web-dev-qa-db-fra.com

Publication d'articles sur des sites Web multilingues

J'ai un site Web multilingue Joomla 2.5 (ua, ru, en).

Je souhaite modifier une fonction responsable de la sortie de l'article. Cette fonction devrait couper le contenu (db column introtext table _content) par balises <ua>/<ru>/<en> et n’affiche que la partie de l’article qui est placée entre les balises <en></en> pour l'anglais, <ua></ua> pour ukrainien, <ru></ru> pour le russe. Alors:

Les articles de résultats doivent ressembler à:

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

Ensuite, la fonction devrait vérifier $_SERVER['REQUEST_URI'] et mettre la langue dans $lang variable.

Après cette fonction devrait supprimer tout le code de la colonne introtext sauf que celle-ci est incluse dans <$lang></$lang> Mots clés.

Pouvez-vous m'aider à trouver où se trouve la fonction de sortie d'article?

4
Alukret

Vous voudrez peut-être jeter un coup d'œil à une extension appelée " Easy Language ". Je ne l'ai pas essayé moi-même, mais selon la description, il fait exactement ce que vous voulez (sauf que les balises sont un peu différentes). Dans votre cas, votre article ressemblerait à ceci:

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

Si vous souhaitez remplacer la sortie de l'article, vous pouvez créer un remplacement:

Copier le fichier JOOMLAROOT\components\com_content\views\article\tmpl\default.php à \templates\YOURTEMPLATE\html\com_content\article\default.php et éditez le fichier selon vos besoins.

3
johanpw

Merci, johanpw!
Le code suivant a résolu ma tâche:

$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);

...au lieu de:
echo $this->item->text;

P.S. Je promets que je vais essayer de créer des plugins à l'avenir.

2
Alukret

Il semble que vous ayez besoin de développer un plugin de conten pour cela et utilisez l'événement onContentPrepare pour modifier la sortie en fonction de vos besoins.

0
Dmitry Rekun