Agregar soporte para plantillas en tinyMCE dentro de Joomla 1.5.12

Escribiré este post para no volver a olvidar como realizar ésto, pues ya es la segunda vez que me pregunto como agregar soporte para plantillas de tinyMCE en el editor de joomla y después de activar la funcionalidad extendida de este plugin en

Extensiones > Gestor de plugins > Editor – TinyMCE

Pues me dirijo a crear un artículo y no puedo ver ningún indicio de los templates que puede soportar TinyMCE, y como un completo desentendido intento recordar que hice para hacer funcionar esta característica en otra instalación de joomla (Claro que aún no podrán ver los templates funcionando porque, y aquí viene lo peor, por defecto la instalación de joomla/tinyMCE viene con el botón para insertar templates en el editor de artículos, pero no tiene código de soporte para especificar la ubicación de estos templates).

Entonces, despues de revisar el código de mi instalación pasada pues pensé que lo tenía todo, hay que modificar:

joomlapluginseditorstinymce.php

joomlapluginseditorstinymce.xml

Y después ya podemos especificar la ruta de los templates en la configuración del plugin, pero no es tan simple con la nueva versión de joomla con la que estoy trabajando:

Joomla! 1.5.12 Stable [ Wojmamni Ama Woi ] (Por cierto, alguien sabía que wojmammi ama… es el número de la versión en idioma yaqui?)

En fin, creo que ya es hora de que veamos el código que debemos modificar para esta nueva versión:

joomlapluginseditorstinymce.php (alrededor de la linea 318)


// template
 $template = $this->params->def( 'template', 1 );
 if ( $template ) {
 $plugins[]    = 'template';
 $buttons4[]    = 'template';
 }

 //---- new custom code start ----

 $templates = $this->params->get('templates');
 if(!empty($templates)) {
 $templates = explode("n", $templates);

 $templatesJS = ',
 template_templates : [  ';

 foreach($templates as $template) {

 $template = explode(";", $template);

 // new change here
 $templatesJS .= '
 {
 title: '' . pathinfo($template[0], PATHINFO_FILENAME) . '',
 src: '' . $template[0] . '',
 description: '' . (isset($template[1]) ? $template[1] : '') . ''
 },';

 }

 $templatesJS = substr($templatesJS, 0, -1) . "n  ]";
 }

//---- new custom code end ----

 // tinybrowser
 $tinybrowser    = $this->params->def( 'tinybrowser', 1 );

joomlapluginseditorstinymce.php (ahora alrededor de la linea 560)


theme_advanced_buttons4 : "$buttons4",

plugin_insertdate_dateFormat : "$format_date",

plugin_insertdate_timeFormat : "$format_time",

fullscreen_settings : {

theme_advanced_path_location : "top"

}

// ---- new custom code start ----

$templatesJS

// ---- new custom code end ----

});

</script>";

if ( $tinybrowser ) {

$return .="t<script type="text/javascript" src="".JURI::root()."plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/tb_tinymce.js.php"></script>n";

setcookie('tinybrowser_lang', $langPrefix, 0, "/");

}

break;

}
<pre>

Y ahora:

joomlapluginseditorstinymce.xml (alrededor de la linea 165)

</pre>
<param name="template" type="radio" default="1" label="Template" description="PARAMTEMPLATE">

<option value="0">Hide</option>

<option value="1">Show</option>

</param>

<!-- new custom code start -->

<param name="templates" type="textarea" cols="60" rows="6" label="Templates paths" description="Paths to templates. One template per line, use absolute paths." />

<!-- new custom code end -->
 <param name="@spacer" type="spacer" default="" label="" description="" />
<pre>
<pre>

Después de esto ya deberíamos ser capaces de crear nuestros propios templates y especificar la ruta donde encontrarlos desde:

Extensiones > Gestor de plugins > Editor – TinyMCE (Bajo la pestaña: Paramétros avanzados)

Para los que no lo notaron, añadimos este campo de texto al editar tinymce.xml, usando el elemento xml ‘param’, ahora solo queda añadir la ruta y descripción (separadas por un punto y coma) hacia nuestros propios templates que no son más que un esqueleto en html como el siguiente que yo uso para crear un artículo de portada. (aunque es completamente aceptable que alguno de ustedes le vaya a dar un mejor uso )

</pre>
<div>
<h1>TITULO</h1>
<div>
IMAGEN1

IMAGEN2
</div>
<p>
PARRAFO1
</p>
<p>
PARRAFO2
</p>
<div>
IMAGEN3

IMAGEN4
</div>
<div>
<span>Oficina de </span><br>
<i>Fecha de Actualizacion: </i>
</div>
</div>

Leave a Reply

Your email address will not be published. Required fields are marked *