Joomla 2.5多言語ウェブサイト(ua、ru、en)を持っています。
記事の出力を担当する機能を変更したい。この関数は、コンテンツ(db列introtext
テーブル_content
)をタグ<ua>/<ru>/<en>
でトリミングし、記事のその部分のみを出力する必要があります。記事のその部分は、英語の場合は<en></en>
、ウクライナ語の場合は<ua></ua>
、ロシア語の場合は<ru></ru>
で囲まれています。そう:
結果の記事は次のようになります。
<ua>bla blah</ua><ru>ololo lorem ipsum</ru><en>hello world!</en>
次に、関数は$_SERVER['REQUEST_URI']
をチェックし、$lang
変数に言語を入力する必要があります。
その後、関数は、<$lang></$lang>
タグで囲まれているものを除いて、introtext
列からすべてのコードを削除する必要があります。
記事出力の機能がどこにあるかを見つけるのを手伝ってくれませんか?
" Easy Language "と呼ばれる拡張機能を確認してください。私はそれを自分で試したことはありませんが、説明によると、それはあなたが望んでいることとまったく同じです(タグが少し異なることを除いて)。あなたの場合、あなたの記事は次のようになります:
{lang ua}bla blah{/lang}
{lang ru}ololo lorem ipsum{/lang}
{lang en}hello world!{/lang}
記事の出力をオーバーライドする場合は、オーバーライドを作成できます。
ファイルをコピーJOOMLAROOT\components\com_content\views\article\tmpl\default.php
から\templates\YOURTEMPLATE\html\com_content\article\default.php
し、必要に応じてファイルを編集します。
ありがとう、ヨハンプ!
次のコードは私の仕事を解決しました:
$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);
...の代わりに:echo $this->item->text;
追伸将来的には、いくつかのプラグインを作成することを約束します。
これには コンテンツプラグインを開発する が必要であり、必要に応じて onContentPrepare イベントを使用して出力を変更する必要があるようです。