it-swarm-es.tech

Artículo publicado en sitios web multilingües

Tengo un sitio web multilingüe Joomla 2.5 (ua, ru, en).

Quiero cambiar una función, que es responsable de la salida del artículo. Esta función debe recortar el contenido (columna db introtext table _content) por etiquetas <ua>/<ru>/<en> y solo muestra esa parte del artículo, que está encerrada en las etiquetas <en></en> para inglés, <ua></ua> para ucraniano, <ru></ru> para ruso. Asi que:

Los artículos resultantes deberían verse así:

<ua>bla blah</ua><ru>ololo lorem ipsum</ru><en>hello world!</en>

Entonces la función debe verificar $_SERVER['REQUEST_URI'] y poner el idioma en $lang variable.

Después de esa función, se debe eliminar todo el código de la columna introtext, excepto que se incluye en <$lang></$lang> etiquetas.

¿Me pueden ayudar a encontrar dónde está la función de salida del artículo?

4
Alukret

Es posible que desee echar un vistazo a una extensión llamada " Idioma fácil ". No lo he probado yo mismo, pero de acuerdo con la descripción, hace exactamente lo que quieres (excepto que las etiquetas son un poco diferentes). En su caso, su artículo se vería así:

{lang ua}bla blah{/lang}
{lang ru}ololo lorem ipsum{/lang}
{lang en}hello world!{/lang}

Si desea anular la salida del artículo, puede crear una anulación:

Copie el archivo JOOMLAROOT\components\com_content\views\article\tmpl\default.php a \templates\YOURTEMPLATE\html\com_content\article\default.php y edite el archivo según sea necesario.

3
johanpw

Gracias johanpw!
El siguiente código resolvió mi tarea:

$lang = substr($_SERVER['REQUEST_URI'],1,2); echo substr($this->item->text, strpos($this->item->text,'{'.$lang.'}')+4, strpos($this->item->text,'{/'.$lang.'}') - strpos($this->item->text,'{'.$lang.'}')-4);

...en lugar de:
echo $this->item->text;

PD Prometo que intentaré hacer algunos complementos en el futuro.

2
Alukret

Parece que necesitará desarrollar un complemento de contenido para esto y usar el evento onContentPrepare para modificar el resultado según sus necesidades.

0
Dmitry Rekun