WordPress.org

Ready to get started?Download WordPress

Make WordPress Core

Updates from Andrew Ozz Toggle Comment Threads | Keyboard Shortcuts

  • Andrew Ozz 6:33 pm on January 18, 2014 Permalink | Log in to leave a Comment
    Tags: , , ,   

    TinyMCE 4.0 is in core 

    This is a major upgrade for the WordPress editor. There are many changes in 4.0:

    • New UI and UI API.
    • New theme.
    • Revamped events system/API.
    • Better code quality, readability and build process.
    • Lots of (inline) documentation.
    • And generally many improvements everywhere.

    All default TinyMCE plugins have been upgraded. The WordPress implementation custom plugins  were upgraded too. Looking in the plugin repository, there are a lot of WordPress plugins  that add a TinyMCE plugin. Because of all the API changes, most of these plugins would need an update too. If you are the author of such plugin, please test it in trunk now.

    Generally there are three groups of TinyMCE plugins added by WordPress plugins:

    • Custom plugin created specifically for the WordPress plugin. If you’ve developed this kind of plugin, please see the 3.x to 4.0 migration guide and the 4.0 API documentation.
    • WordPress plugins that add third-party or default TinyMCE plugins would (of course) need to be updated to include the 4.0 version of the plugin. The PHP global $tinymce_version can be used to determine which plugin to load.
    • Mini-plugins that only add a button to the toolbar. This works pretty much the same. It is advisable to update to use the ‘dashicons’ icon font instead of image icon.

    TinyMCE 4.0 includes a ‘compat3x’ plugin that should prevent all fatal errors caused by old plugins and adds compatibility for most of the 3.x API methods. If there are any editor related Javascript errors while running trunk, please open a trac ticket quoting the first error from the browser console.

     
    • Shapeshifter 3 7:24 pm on January 18, 2014 Permalink | Log in to Reply

      Mr. Ozz,

      I’ve been using the TinyMCE Spellchecker plugin but recently disabled it while reviewing your progress with TinyMCE 4.0. I was going to leave it installed (but disabled) until the developer updates it. Would you recommend that I completely uninstall it instead?

      • Andrew Ozz 9:03 pm on January 18, 2014 Permalink | Log in to Reply

        The updated ‘spellchecker’ plugin currently doesn’t work with the (old) PHP back-end. This is a somewhat moot problem as all newer browsers have built-in spellcheckers. Furthermore Jetpack includes the After the Deadline module which also checks grammar.

        I know that the TinyMCE team has plans for the ‘spellchecker’ plugin, but for now it has been removed from the default editor configuration.

    • PeterRKnight 7:31 pm on January 18, 2014 Permalink | Log in to Reply

      I’ve been looking forward to this so bad. Awesome news!!

    • Jeremy Felt 7:43 pm on January 18, 2014 Permalink | Log in to Reply

      Great news, thanks @azaozz!

    • Mike Schinkel 9:04 pm on January 18, 2014 Permalink | Log in to Reply

      Hi @azaozz,

      This is indeed good news!

      Do you (or anyone else) know if it will make it easier to have more than one TinyMCE instance in a single admin page?

      • Andrew Ozz 9:15 pm on January 18, 2014 Permalink | Log in to Reply

        Creating multiple TinyMCE instances has been quite easy for some time :)

        From PHP all that’s needed is to call `wp_editor()` and pass any initial content and an unique HTML ID. From JS you can simply call `tinymce.init({ my_settings_obj })`. TinyMCE 4.0 also supports “inline” instances, so any part of the screen can be made editable (of course that would need some more JS to handle saving).

    • adamsilverstein 5:06 am on January 19, 2014 Permalink | Log in to Reply

      Thanks again Sir Ozz for your diligent work on this. Its going to make a huge difference for everyone editing content every day in WordPress ! Even if they don’t notice how much has improved, the improvements will benefit them. Its a bit of open heart surgery at the core of WordPress and you are the man to handle it!

      So cheers to you from the untold masses who benefit from your work! Thank you!

    • emzo 11:21 pm on January 19, 2014 Permalink | Log in to Reply

      Great work on this!

      Do you happen to know if TinyMCE 4.x can be moved around in the DOM without breaking? With the 3.x release, dragging/moveing a WP metabox containing a TinyMCE instance it causes TinyMCE to break. I believe it’s down to how certain browsers deal with moving iframes within the DOM, and it is possible to circumvent the problem by removing the TinyMCE instance then re-adding it after moving, but it is a bit of a faff. Does TinyMCE 4.x help with this issue in any way?

      • Andrew Ozz 12:02 am on January 20, 2014 Permalink | Log in to Reply

        Haven’t tried that yet, but 4.0 is more resilient than 3.5, so hopefully it works. If not, a relatively simple workaround would be to not initialize the instance on page load and have a button/link “Edit”. Then on initialization lock down the postboxes so they cannot be moved: $( selector ).sortable('disable');.

    • Piet 1:16 am on January 20, 2014 Permalink | Log in to Reply

      Great stuff, reading the 4.x documentation now.

      After downloading current core from git and trying it out, I noticed that a tooltip has been added to the buttons. Does anyone know how to include that tooltip as my plugin now shows the tooltip en.undefined

      • Andrew Ozz 1:37 am on January 20, 2014 Permalink | Log in to Reply

        IMHO the best way to learn the new API is to check the default plugins. Most of them add a button and also a menu item (4.0 can show a menubar too). The menubar is not shown by default in WordPress but that might change.

        The translations API in 4.0 is changed too. All strings are in English and are matched directly against the loaded translation. The ‘compat3x’ plugin patches it to make it back-compat. If you see ‘undefined’ perhaps refresh the browser cache again (just in case) and trace where it comes from. You should be seeing some kind of a string.

    • Jeff Chandler 7:38 pm on January 20, 2014 Permalink | Log in to Reply

      Using the bleeding edge nightlies for 3.9, am I suppose to see a noticeable different between the visual editor of WordPress 3.8 and what was added to WordPress with TinyMCE 4.0? I don’t see much of a difference except for a dark background tooltip when hovering over the buttons and the removal of the Paste From Word button.

    • Paal Joachim Romdahl 12:46 pm on January 21, 2014 Permalink | Log in to Reply

      Looking at the interface for 4.0 the use of tables is still much in use (from what I saw that the tinyMCE web site). It would be nice to create columns/boxes in a similar way to creating tables. As one would be able to place content inside the cells (dashed lined area) create buffers between the cells as a margin.

      This way one would be able to create boxes/columns in an easy visual way using the table look and feel.

      Perhaps even add a background color, curved lines, shadow etc..:)

    • needle 11:33 am on January 22, 2014 Permalink | Log in to Reply

      My existing wp_editor() code defines the buttons that I want to have appear by populating the ‘tinymce’ array that is passed to wp_editor() as part of the $settings array. But now, because the ‘advanced’ theme is no longer present, the editor no longer works. What’s the procedure for recreating this functionality with TinyMCE 4.0?

    • David Wells 8:56 pm on April 16, 2014 Permalink | Log in to Reply

      Our tinymce button is done from the tinymce toolbar with the 3.9 update and tinyMCE 4.0

      I’ve read http://www.tinymce.com/wiki.php/Tutorial:Migration_guide_from_3.x but don’t see any thing specific to our case.

      Our code was adding an additional button to the toolbar: https://github.com/inboundnow/leads/blob/master/shared/inbound-shortcodes/js/tinymce.js#L41-L183

      Can anyone see what the issue might be? or can you point me in the right direction to fix?

      Many thanks

    • Mr. Vibe 9:47 am on April 17, 2014 Permalink | Log in to Reply

      +1, similar case as @David wells. Tried the compact3x plugin and it does not work. Any ideas ? The codex is not updated and we’re hanging in the middle of nowhere.

    • Jacob N. Breetvelt 10:13 am on April 17, 2014 Permalink | Log in to Reply

      Can you lease help me in fixing this?

      /* wppa-tinymce.js

      • Pachkage: wp-photo-album-plus
      • Version 5.2.17
      • /

      // closure to avoid namespace collision
      (function(){
      // creates the plugin
      tinymce.create(‘tinymce.plugins.mygallery’, {
      // creates control instances based on the control’s id.
      // our button’s id is “mygallery_button”
      createControl : function(id, controlManager) {
      if (id == ‘mygallery_button’) {
      // creates the button
      var button = controlManager.createButton(‘mygallery_button’, {
      title : ‘WPPA+ Shortcode Generator’, // title of the button
      image : wppaImageDirectory+’albumnew32.png’, // path to the button’s image
      onclick : function() {
      // triggers the thickbox
      var width = jQuery(window).width(), H = jQuery(window).height(), W = ( 720 < width ) ? 720 : width;
      W = W – 80;
      H = jQuery(window).height();
      H = H – 115;
      tb_show( 'WPPA+ Shortcode Generator', '#TB_inline?width=' + W + '&height=' + H + '&inlineId=mygallery-form' );

      var isNew = wppa_getCookie('wppanewstyle') == 'on';
      if (isNew) document.getElementById('mygallery-newstyle').checked = 'checked';
      }
      });
      return button;
      }
      return null;
      }
      });

      // registers the plugin. DON'T MISS THIS STEP!!!
      tinymce.PluginManager.add('mygallery', tinymce.plugins.mygallery);

      // executes this when the DOM is ready
      jQuery(function(){
      // creates a form to be displayed everytime the button is clicked
      // you should achieve this using AJAX instead of direct html code like this
      var xmlhttp = wppaGetXmlHttp(); // located in wppa-admin-scripts.js
      // wppa-ajax.php calls wppa_make_tinymce_dialog(); which is located in wppa-tinymce.php

      var url = wppaAjaxUrl+'?action=wppa&wppa-action=tinymcedialog';
      xmlhttp.open("GET",url,true);
      xmlhttp.send();
      xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState == 4 && xmlhttp.status!=404 ) {
      var formtext = xmlhttp.responseText;

      var form = jQuery(formtext);

      var table = form.find('table');
      form.appendTo('body').hide();

      // handles the click event of the submit button
      form.find('#mygallery-submit').click(function(){

      var type = table.find('#mygallery-type').val();
      var temp1;
      if (table.find('#mygallery-album').val()) temp1 = table.find('#mygallery-album').val().split('|');
      else temp1 = [''];
      var album = temp1[0];
      var tags = table.find('#mygallery-tags').val();
      var andor = document.getElementById('mygallery-andor').checked;
      var size = table.find('#mygallery-size').val();
      var align = table.find('#mygallery-align').val();
      var temp2;
      if (table.find('#mygallery-photo').val()) temp2 = table.find('#mygallery-photo').val().split('.');
      else temp2 = [''];
      var photo = temp2[0];
      var temp3 = photo.split('/');
      photo = '';
      for ( i=0; i 0) {} // Ok, positive number
      else if (size == ‘auto’) {} // Ok, auto
      else {
      alert(‘Sorry, you made a mistake\n\nSize must be a positive number or auto\nA number less than 100 will be interpreted as a percentage of the current column width\n\nPlease try again’);
      return;
      }
      if (size < 100) size=size/100;

      // Check for inconsistencies
      if ( type == 'cover' ) {
      if ( album == '#topten' || album == '#lasten' || album == '#comten' || album == '#featen' || album == '#tags' || album == '#all' ) {
      alert('Sorry, you made a mistake\n\nA — special — selection has no album cover\n\nPlease try again');
      return;
      }
      }
      if ( type != 'photo' && type != 'mphoto' && type != 'slphoto' && type != 'generic' && type != 'upload' ) {
      if ( album == 0 ) {
      alert('Sorry, you made a mistake\n\nPlease select an album\n\nPlease try again');
      return;
      }
      }
      if ( type == 'photo' || type == 'mphoto' || type == 'slphoto' ) {
      if ( photo == 0 ) {
      alert('Sorry, you made a mistake\n\nPlease select a photo\n\nPlease try again');
      return;
      }
      }
      if ( type == 'filmonly' && ! newstyle ) {
      alert('Sorry, filmonly is as newstyle shortcode available only.\n\nPlease check the new style checkbox and try again.');
      return;
      }
      if ( type == 'upload' && ! newstyle ) {
      alert('Sorry, the upload box is as newstyle shortcode available only.\n\nPlease check the new style checkbox and try again.');
      return;
      }
      if ( album == '#tags' && ! tags ) {
      alert('Select at least one tag and try again.');
      return;
      }

      // Make the shortcode
      var shortcode = '%%wppa%%';

      if ( type == 'generic' ) {
      }
      else if ( type == 'photo' || type == 'mphoto' || type == 'slphoto' ) {
      shortcode += ' %%'+type+'='+photo+'%%';
      }
      else if ( album == '#tags' ) {
      shortcode += ' %%album=#tags,';
      var sep = andor ? ',' : ';';
      var last = tags.length – 1;
      for (var tag in tags) {
      shortcode += tags[tag];
      if ( tag != last ) shortcode += sep;
      }
      shortcode += '%%';
      }
      else {
      var temp = album.split('|');
      if ( temp[0] == '#topten'|| temp[0] == '#lasten' || temp[0] == '#comten' || temp[0] == '#featen' ) {
      if ( cnt != '0' ) {
      shortcode += ' %%'+type+'='+temp[0]+','+alb+','+cnt+'%%';
      }
      else if ( alb != '0' ) {
      shortcode += ' %%'+type+'='+temp[0]+','+alb+'%%';
      }
      else {
      shortcode += ' %%'+type+'='+album+'%%';
      }
      }
      else {
      shortcode += ' %%'+type+'='+album+'%%';
      }
      }

      if ( size != 0 )
      shortcode += ' %%size='+size+'%%';

      if ( align != 'none' )
      shortcode += ' %%align='+align+'%%';

      // Make the new shortcode
      var newShortcode = '[wppa type="'+type+'"';

      if ( type == 'generic' ) {
      }
      else if ( type == 'photo' || type == 'mphoto' || type == 'slphoto' ) {
      newShortcode += ' photo="'+photo+'"';
      }
      else if ( album == '#tags' ) {
      newShortcode += ' album="#tags,';
      var sep = andor ? ',' : ';';
      var last = tags.length - 1;
      for (var tag in tags) {
      newShortcode += tags[tag];
      if ( tag != last ) newShortcode += sep;
      }
      newShortcode += '"';
      }
      else {
      var temp = album.split('|');
      if ( temp[0] == '#topten' || temp[0] == '#lasten' || temp[0] == '#comten' || temp[0] == '#featen' ) {
      if ( cnt != '0' ) {
      newShortcode += ' album="'+temp[0]+','+alb+','+cnt+'"';
      }
      else if ( alb != '0' ) {
      newShortcode += ' album="'+temp[0]+','+alb+'"';
      }
      else {
      newShortcode += ' album="'+temp[0]+'"';
      }
      }
      else {
      if ( album || type != 'upload' ) {
      newShortcode += ' album="'+album+'"';
      }
      }
      }

      if ( size != 0 ) newShortcode += ' size="'+size+'"';
      if ( align != 'none' ) newShortcode += ' align="'+align+'"';
      newShortcode += '][/wppa]';

      // inserts the shortcode into the active editor and save the newstyle checkbox
      if (newstyle) {
      tinyMCE.activeEditor.execCommand('mceInsertContent', 0, newShortcode);
      wppa_setCookie('wppanewstyle', 'on', '365');
      }
      else {
      tinyMCE.activeEditor.execCommand('mceInsertContent', 0, shortcode);
      wppa_setCookie('wppanewstyle', 'off', '365');
      }

      // closes Thickbox
      tb_remove();
      });
      }
      }
      });
      })()

      function wppaGalleryTypeChange(value) {

      if (value == 'generic' ) {
      jQuery('.mygallery-photo').hide();
      jQuery('.mygallery-album').hide();
      jQuery('.mygallery-help').show();
      }
      else if (value == 'photo' || value == 'mphoto' || value == 'slphoto' ) {
      jQuery('.mygallery-photo').show();
      jQuery('.mygallery-album').hide();
      jQuery('.mygallery-help').hide();
      }
      else {
      jQuery('.mygallery-photo').hide();
      jQuery('.mygallery-album').show();
      jQuery('.mygallery-help').hide();
      }
      }

      function wppaTinyMcePhotoPreview(id) {
      jQuery('#mygallery-photo-preview').html('‘);
      }

      function wppaTinyMceAlbumPreview(id) {
      var html = ”;
      var temp = id.split(‘|’);
      var count = temp.length – 1;

      if (count > 0) for (var i = 1; i <= count; i++) {
      if ( temp[i] != '' ) html += '‘;
      }
      else {
      html = ‘

      ‘+wppaNoPreview;
      }
      jQuery(‘#mygallery-album-preview’).html(html);

      if ( temp[0] == ‘#topten’ || temp[0] == ‘#lasten’ || temp[0] == ‘#comten’ || temp[0] == ‘#featen’ ) {
      jQuery(‘.mygallery-extra’).show();
      }
      else {
      jQuery(‘.mygallery-extra’).hide();
      }
      }

      function wppaGalleryAlbumChange(value) {
      if ( value == ‘#tags’ ) jQuery(‘.mygallery-tags’).css(‘display’, ”);
      else jQuery(‘.mygallery-tags’).css(‘display’, ‘none’);
      }

    • llazarus 11:23 am on April 17, 2014 Permalink | Log in to Reply

      Upgraded to 3.9 and tinyMCE 4.0. I am unable to Edit a hyperlink – if I select the link and click Insert/Edit Hyperlink, the existing link is erased.

      Also, when pasting a link from Word that has a target=”_blank”, the extra code is removed – this making more work for me as I specifically generate the link to open in a new window. Is there anyway to stop the target=”_blank” being removed?

      Many thanks

    • TTBoS 10:22 pm on April 17, 2014 Permalink | Log in to Reply

      A similar problem is with onmouseover and onmouseout WP removes the html code from the article / news.

  • Andrew Ozz 8:20 pm on January 25, 2013 Permalink
    Tags: ,   

    Agenda for today’s autosave and post locking team meeting at 21:00 UTC:

    • Assign contributors for each component: Autosave in the browser storage, Post locking, Login expiration warning.
    • Further discussion on workflow for post locking, perhaps look at the plugin by jayminkapish on #18515.
    • Free-form Q&A.
     
  • Andrew Ozz 12:58 am on January 19, 2013 Permalink
    Tags: ,   

    Autosave and Post Locking 

    Components and design

    As Mark pointed out earlier, this task includes several different components:

    “WP Heartbeat” API, #23216. This will do polling or long-polling so the server is able to send data and notifications to the browser. The primary use will be for setting, monitoring or taking over a post lock. Additionally it will be used to send autosave data to the server. It looks like we won’t need long-polling for now as post locks are not that time sensitive. A “standard” polling every 15 seconds would be sufficient.

    Post locking. How exactly to lock a post and how a user can take over the lock? Best would be to prevent user B from being able to edit the post while user A is still writing or editing. Some ideas discussed at the IRC meetup yesterday are to overlay a transparent div over the editor and/or set the form fields to read-only. There will be a button for user B to take over the lock, clicking it will prompt user A to save the post and close the browser tab. While user B is waiting to take over, we could show a non-editable “preview” of the content (even inside the editor) updated with every “heartbeat”.

    In addition we would show whether a post is being edited on the Posts screen (list table) , perhaps with the same type of button to request taking over. Other ideas welcome.

    Autosave to the browser’s local storage, #23220. Keep several revisions of the content on the user’s hard drive, saving every 10 seconds and “flushing” to the server every 2 minutes (same as currently). After saving to the server (including saving a draft or publishing), empty the local storage and start again. So at the end of creating or editing a post, the local storage will be empty.

    This will require “plugging into” the revisions API for restoring revisions from the local storage and some UI for letting the user recover the last revision from local storage when it exists.

    Log-in expiration warnings. Update the current functionality to use the new heartbeat API and improve the UX and UI. We can detect cookies expiration earlier and show a warning that would open an iframe so the user can log in again. After that interim log-in, we will need to update all nonces.

    Office hours

    The first feature team meeting in IRC will be next Tuesday, 22 January at 1pm PST / 21:00 UTC. Please join us if you’re interested in participating in the development of any of the above components.

     
  • Andrew Ozz 3:50 am on August 11, 2012 Permalink
    Tags:   

    A bunch of unused images were removed from core in changeset 21498. Several of them were background gradients that were replaced with CSS 3 gradients. The rest have been unused in core for few releases.

    However there are some plugins that use a few of these images and would need updating. Best thing to do would be to copy the images locally as that makes a plugin independent from core changes. If the images were gradients, best would be to use CSS 3 gradients (example).

     
  • Andrew Ozz 7:53 am on February 14, 2012 Permalink  

    Team update: Editorial 

    The first cycle finished yesterday. First run patch for supporting HTML in image captions is on #18311. Includes handling of the HTML in both editors and basic UI for inserting a link in the image properties tab in the gallery.

    For the second cycle: testing, refining and committing HTML support for image captions, finishing up DFW support for editors not on the write screen, other editor enhancements and code improvements for example using the native MCE dialogs for our plugins instead of thickbox.

     
  • Andrew Ozz 9:36 pm on February 9, 2012 Permalink  

    Team update: Tableteers 

    Cycle ending on February 22.
    (George Stephanis and Zach Abernathy)

    1. Admin Left Nav Menu Scroll Independently ( Enhancement )
    The idea is for the Main Left Nav to scroll independently of the body, and metaboxes on the right to create the most usable interface for tablet users. This will create more of an “app” effect best for navigating and using the WordPress admin without the use of an actual app. It was decided not to go this way in #19994.

    2. Clean Up Touch UI for Left NavMenu / Flyouts ( Bugfixes )
    While the flyout is mostly usable in it’s current state, it is not as intuitive as it needs to be for the best user experience. They are ineffective at best on the Kindle Fire’s Silk Browser, but work pretty well on the iPad. We need to examine all target devices to ensure interactivity is supported cross-device.

    3. Possibly add support for dragging of meta boxes
    In the desktop version of WordPress a user has the ability to move metaboxes around to customize their interface. However, touch-and-drag support is not as intuitive on a tablet. There are possible work-arounds that need to be explored. Alternately, there is the possibility of pre-determining the number of columns and not support drag-and-drop.

    4. Dashboard and write screen columns (with @media)
    Determining the number of columns that are present in landscape view versus portrait view. This would need to be tested on a per device basis to determine the optimum number of columns. In WP 3.3 this effect was generated via JS. We should be able to yield better performance by handling this via CSS.

    5. Resolve Amazon Silk Browser ( Kindle Fire ) WYSIWYG Incompatibility
    Currently, the WordPress WYSIWYG (TinyMCE) does not work in the Android Fire Silk Browser, but it does on the native Android browser. This is due to the Silk browser still not supporting the `contentEditable` attribute properly.

     
  • Andrew Ozz 6:47 am on September 23, 2011 Permalink
    Tags: ,   

    Javascript changes in 3.3 

    Now that WordPress 3.3 is in feature freeze, it’s time to have a look at some new Javascript goodies for developers:

    • jQuery 1.6.4 and jQuery UI 1.8.16. And that’s the full UI including widgets and effects. This will make it a lot easier and simpler for plugins using UI components that are not used in core as they will be able to just enqueue whatever they need.
      Note: there is a known bug/regression in UI Draggable since version 1.8.13. When connecting a draggable item to a sortable container, the HTML ID of the item is removed, #17952.
    • WordPress Editor API. This is an updated API for both TinyMCE and Quicktags that outputs all parts of both editors in the same way as used on the Add / Edit Post screens, #17144. Plugins will be able to use the WordPress editor anywhere including the Visual/HTML tabs and the links to upload files and show the media library.
    • Quicktags refactoring. This was necessary in order to make it fully multi-instance compatible, #16695.
      Note: if your plugin adds a Quicktags button please enhance it to use the new methods in quicktags.js.
    • New multi-file uploader. Plupload was included as a result of Google Summer of Code project, #18206. It’s more stable and has a lot more features as well as chooses the best available interface that the current browser supports: HTML 5, Silverlight or Flash.
      Note: two actions that were specific to SWFUpload were renamed and there is a new filter ‘plupload_init’ that gives access to all initialization options.
    • Other enhancements: wp_enqueue_script() now works mid-page and prints the late enqueued scripts in the footer #9346, wp_localize_script() uses json_encode to properly escape and output all strings, #11520.
     
    • Scott Kingsley Clark 2:18 pm on September 23, 2011 Permalink | Log in to Reply

      We were using a very early version of #2 and it’s been working great, excited to integrate the full 3.3 Editor API and have it work to the full extent we and plenty of other hungry developers have waited for :)

    • Conor Hughes 2:00 pm on September 26, 2011 Permalink | Log in to Reply

      Question about plupload, Does it include the option to spilt the upload in to samller chunks? So basicly does core included all the feature of the wplupload plugin https://wordpress.org/extend/plugins/wplupload/

      • Andrew Ozz 7:17 pm on September 28, 2011 Permalink | Log in to Reply

        No that’s not enabled by default but can be set by a plugin. Seems only Chrome handles splitting the file into chunks properly at the moment. It would have been nice to remove the upload size limit :)

        When more browsers start to support this reliably we can enable it by default, probably 3.4.

        • Conor Hughes 7:39 pm on September 28, 2011 Permalink | Log in to Reply

          Currently using the plugin and file spliting works in opera and Firefox 6+, However I am using the flash runtime not HTML5.

    • Stas Sușcov 7:47 pm on September 27, 2011 Permalink | Log in to Reply

      Great news on Editor API and `wp_localize_script()`!!!

    • Jason Penney 8:05 pm on September 28, 2011 Permalink | Log in to Reply

      Glad to see the full jQuery UI (also, looks like I picked the correct script names in Use Google Libraries way back, so I won’t need to make changes in there when 3.3 comes out).

    • Joerg 9:59 am on September 30, 2011 Permalink | Log in to Reply

      I hope the TinyMCE editor will offer tables in WP by standard so that I would not need to install any plugins anymore….

      • Andrew Ozz 4:10 pm on September 30, 2011 Permalink | Log in to Reply

        No, the default TinyMCE configuration in core has not changed. Most functions related to it were combined in WP_Editor class.

    • Max 9:14 am on November 4, 2011 Permalink | Log in to Reply

      Too late for jQuery 1.7?

  • Andrew Ozz 11:40 pm on July 1, 2011 Permalink  

    To all that responded to the idea for CSS cleanup in 3.3: have your say at The big CSS overhaul in 3.3, part II.

     
  • Andrew Ozz 5:41 pm on May 25, 2011 Permalink  

    jQuery updates in WordPress 3.2 

    There have been two major releases of the jQuery library during this release cycle. WordPress 3.1 includes jQuery 1.4.4. WordPress 3.2 will include jQuery 1.6.1. The new jQuery is faster and better but also has some major changes. The two most important changes that all plugin and theme authors must test for are:

    • Selectors that include [property=value] now require quotes. So
      $('input[name=submit]')

      will not work. It needs to be

      $('input[name="submit"]')
    • All ‘selected’, ‘checked’ and ‘disabled’ properties should use the new .prop() method introduced in jQuery 1.6 instead of .attr(). In most cases .attr() will still work but for example
      .attr('checked', '')

      fails (that used to remove the checked=”checked” from checkboxes). More details and a list of all affected properties are on the jQuery’s blog.

     
  • Andrew Ozz 7:54 pm on April 27, 2011 Permalink
    Tags: ,   

    Calling all CSS “Gurus”, well everybody that is interested in CSS to voice their opinions about The big CSS overhaul in 3.3.

     
c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
shift + esc
cancel