[wp-trac] [WordPress Trac] #28458: wp.mce.view: simplify things a bit

WordPress Trac noreply at wordpress.org
Thu Jun 5 18:55:25 UTC 2014


#28458: wp.mce.view: simplify things a bit
--------------------------+-------------------------
 Reporter:  avryl         |       Owner:
     Type:  defect (bug)  |      Status:  new
 Priority:  normal        |   Milestone:  4.0
Component:  TinyMCE       |     Version:  3.9
 Severity:  normal        |  Resolution:
 Keywords:  has-patch     |     Focuses:  javascript
--------------------------+-------------------------

Comment (by gcorne):

 Everything seems to be working after [28680], but I have a couple thoughts
 on the code changes:

 1. I think that the {{{type}}} property should be reverted to shortcode.
 It can still default to being identical to the {{{type}}} as passed into
 {{{register()}}}.

 2. I don't think that the creation of the wpview View constructor should
 be done in {{{register()}}}. Doing so takes some control away from the
 code registering the wpview.

 3. I wonder if we should rename the parameter {{{constructor}}} to
 {{{wpview}}}. The parameter isn't really a {{{constructor}}}; it's is a
 module expressed in the form of an object literal. The hard part is coming
 up with a name since there are two different types of views: 1) the wpview
 (aka content block?) and 2) the View that used to construct an individual
 instance of a wpview that is tied to a particular shortcode or other
 substring from the post content. Since the tinymce plugin is named
 {{{wpview}}} maybe that works?

 So {{{register()}}} would end up looking something like:

 {{{
         register: function( type, wpview ) {
                 var defaults = {
                         shortcode: type,
                         View: {},
                         toView: function( content ) {
                                 var match = wp.shortcode.next(
 this.shortcode, content );
                                 if ( ! match ) {
                                         return;
                                 }
                                 return {
                                         index: match.index,
                                         content: match.content,
                                         options: {
                                                 shortcode: match.shortcode
                                         }
                                 };
                         }
                 };

                 wpview = _.defaults( wpview, defaults );

                 views[ type ] = wpview;
         },
 }}}

 And, the other bits would be adjusted accordingly.

--
Ticket URL: <https://core.trac.wordpress.org/ticket/28458#comment:11>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list