• Super User

    [WordPress] Riassunto Opzionale e TinyMCE

    Vorrei sapere se c'è la possibilità di abilitare il menu con le iconcine anche sul campo "Riassunto Opzionale" e non solo sulla Text area per scrivere il post.

    Sapete dell' esistenza di qualche plugin per questo scopo?


  • Super User

    Non è mio solito fare degli up ma vorrei ritirare in ballo questo 3d che non ha avuto molte risposte per vedere se qualcuno può ancora consigliarmi qualcosa 🙂


  • Super User

    eventualmente non dovrebbe essere molto difficile abilitarla a mano aggiungendo un parametro nella form


  • Super User

    Allora mi sono messo giù con la capa sul codice ed ho editato il file che si trova nella dir wp-admin/ e precisamente il file edit-form-advanced.php

    Codice da sostituire (partenza dalla riga 235)

    <div class="dbx-box-wrapper">
    <fieldset id="postexcerpt" class="dbx-box">
    <div class="dbx-handle-wrapper">
    <h3 class="dbx-handle"><?php _e('Optional Excerpt') ?></h3>
    </div>
    <div class="dbx-content-wrapper">
    <div class="dbx-content"><textarea rows="1" cols="40" name="excerpt" tabindex="6" id="excerpt"><?php echo $post->post_excerpt ?></textarea></div>
    </div>  
    </fieldset>
    </div>
    

    Codice da inserire

    <div class="dbx-box-wrapper">
    <fieldset id="postexcerpt" class="dbx-box">
    <div class="dbx-handle-wrapper">
    <h3 class="dbx-handle"><?php _e('Optional Excerpt') ?></h3>
    </div>
    <div class="dbx-content-wrapper">
    <div class="dbx-content">
    <?php
     $rows = get_settings('default_post_edit_rows');
     if (($rows < 10) || ($rows > 100)) {
         $rows = 12;
     }
    ?>
    <?php the_quicktags(); ?>
    <div><textarea <?php if ( user_can_richedit() ) echo 'title="true" '; ?>rows="<?php echo $rows; ?>" cols="40" name="excerpt" tabindex="2" id="excerpt"><?php echo $post->post_excerpt ?></textarea></div>
    <script type="text/javascript">
    // <![CDATA[
    edCanvas = document.getElementById('content');
    <?php if ( user_can_richedit() ) : ?>
    // This code is meant to allow tabbing from Title to Post (TinyMCE).
    if ( tinyMCE.isMSIE )
            document.getElementById('title').onkeydown = function (e)
                    {
                            e = e ? e : window.event;
                            if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
                                    var i = tinyMCE.selectedInstance;
                                    if(typeof i ==  'undefined')
                                            return true;
                                    tinyMCE.execCommand("mceStartTyping");
                                    this.blur();
                                    i.contentWindow.focus();
                                    e.returnValue = false;
                                    return false;
                            }
                    }
    else
            document.getElementById('title').onkeypress = function (e)
                    {
                            e = e ? e : window.event;
                            if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
                                    var i = tinyMCE.selectedInstance;
                                    if(typeof i ==  'undefined')
                                            return true;
                                    tinyMCE.execCommand("mceStartTyping");
                                    this.blur();
                                    i.contentWindow.focus();
                                    e.returnValue = false;
                                    return false;
                            }
                    }
    <?php endif; ?>
    // ]]>
    </script>
    </div>
    </div>
    </fieldset>
    </div>
    
    

    :yuppy:


  • User Attivo

    io ho provato a farlo tramite Javascript, che non è la mia specialità, quindi è un po' un pastrocchio. Lo script viene aggiunto con un plugin. Testato solo con WP2.1 e Firefox.

    [php]<?php
    /*
    Plugin Name: Quicktags for Excerpt
    */

    function excerptToolBarScript(){
    ?>
    <script type="text/javascript">
    function clone (trueCloning) { // presa da http://forum.html.it/forum/showthread/t-820573.html
    var objectClone = new this.constructor();
    for (var property in this)
    if (!trueCloning)
    objectClone[property] = this[property];
    else if (typeof this[property] == 'object')
    objectClone[property] = this[property].clone(trueCloning);
    else
    objectClone[property] = this[property];
    return objectClone;
    }

    Object.prototype.clone = clone;

    function edCloseAllExcerptTags() {
    var count = edOpenTags.length;
    for (o = 0; o < count; o++) {
    edInsertTag(edExcerpt, edOpenTags[edOpenTags.length - 1]);
    }
    }

    function excerptToolBar(){

    if( ! document.getElementById('quicktags') )
         return;
    
    // Scope pubblico
    edExcerpt = document.getElementById('excerpt');
    
    var QTCopy = document.getElementById('quicktags').cloneNode(true),
        tags = QTCopy.getElementsByTagName('input');
    
    for(var i = 0; i < tags.length; i++){
    
        if(tags*.getAttribute('id') == 'ed_spell')
            tags*.setAttribute('onclick', tags*.getAttribute('onclick').replace('edCanvas', 'edExcerpt'));
    
        else if(tags*.id == 'ed_close')
            tags*.onclick=function(){edCloseAllExcerptTags()};
    
        else {
            var m = edButtons.length;
    
            edButtons[m] = edButtons*.clone();
    
            if( edButtons[m] ){
                if (edButtons*.id == 'ed_link')
                    tags*.setAttribute('onclick', 'edInsertLink(edExcerpt, ' + m + ')');
    
                else if (edButtons*.id == 'ed_img')
                    tags*.setAttribute('onclick', tags*.getAttribute('id').replace('edCanvas', 'edExcerpt'));
    
                else
                    tags*.setAttribute('onclick', 'edInsertTag(edExcerpt, ' + m + ')');
    
                edButtons[m].id = 'exp_'+edButtons*.id;
            }
        }
        tags*.setAttribute('id', 'exp_'+tags*.getAttribute('id'));
    
    };
    document.getElementById('postexcerpt').appendChild(QTCopy);
    

    };
    window.onload=excerptToolBar;
    </script>
    <style type='text/css'>#exp_ed_strong{font-weight:bold}#exp_ed_em{font-style:italic}#exp_ed_link{color:#00f}</style>
    <?php
    }
    if(is_admin())
    add_filter('admin_head', 'excerptToolBarScript');
    ?>[/php]


  • Super User

    Grande Fra_T 🙂

    Un po ma avresti dei link veloci in cui viene spiegato come crearsi i plugin da 0?
    E' comlicato? A quanto sembra imho non si direbbe 😉


  • User Attivo

    Sì, può essere molto semplice... in questo caso è fatto tutto con javascript, e uso le API solo per inserirlo nell'head dell'amministrazione 🙂

    So che non è la risposta che ti aspetti 😄 ma su codex ed il wiki di wordpress-it c'è molta documentazione utile, tra cui risorse dedicate proprio alla creazione dei plugin.

    Per "esplorare" il codice io trovo comodo questo: http://phpxref.com/xref/wordpress/nav.html.gz?index.html.gz

    • che altro per la possibilità di cercare funzioni, classi, ecc... e per il fatto che ogni funzione che vedi nel codice può essere ritrovata con un click

    Per gli "agganci" c'è questo blog: http://wphooks.flatearth.org/
    (agganci, hooks in inglese: nel codice che ho postato c'è il codice add_filter('admin_head', 'excerptToolBarScript'); in questo caso ho usato l'aggancio admin_head.

    Qualcosa lo starei scrivendo anch'io a riguardo... però è più su "come funzionano" (che è comunque interessante :D)


  • Super User

    @KING_Hack said:

    E' comlicato? A quanto sembra imho non si direbbe 😉

    non sottovalutare la potenza di Fra_T :vaiii: :vaiii: 😄


  • Super User

    Grazie 1000 Fra_T

    Tambu condivido in pieno 😉


  • Super User

    Mi faccio avanti con un' ulteriore domanda.
    Ho installato ImageManager che mi fa comparire un0 iconcina sul menu di editing avanzato sopra la text area del contenuto del post, ma non la vedo nel menu dei quicktag che viene visualizzato per il riassunto opzionale.

    E' tutto il pomeriggio che mi sto cercando... qualche suggerimento?


  • User Attivo

    Non so, lo dovrei provare... magari prima o poi... 😄