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?
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.
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.
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.