- Home
- Categorie
- Coding e Sistemistica
- WordPress
- [WordPress] Riassunto Opzionale e TinyMCE
-
[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?
-
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
-
eventualmente non dovrebbe essere molto difficile abilitarla a mano aggiungendo un parametro nella form
-
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:
-
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]
-
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
-
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)
-
@KING_Hack said:
E' comlicato? A quanto sembra imho non si direbbe
non sottovalutare la potenza di Fra_T
-
Grazie 1000 Fra_T
Tambu condivido in pieno
-
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?
-
Non so, lo dovrei provare... magari prima o poi...