1

我有一个问题会摧毁我的想法......我不是 PHP 开发人员,所以我找不到任何方法来解决它......

我正在使用 K2(从 2.5.7 更新的 v 2.6.2)用于 CCK(带有大量自定义模板)和部署在 Joomla 1.5.26 安装上的 Joomfish(2.1.7)。

我正在使用以下代码(在我的模板中)以按名称(K2 2.5.7)获取我的个人 k2 额外字段:

$extraFld = array();
if ( $this->item->extra_fields ) {
  foreach ( $this->item->extra_fields as $key=>$extraField ) {
    $extraFld[ $extraField->name ] = $extraField->value;
   }
}

然后我像这样取它:

echo "<li class=\"dinning-cuisine\"><span>" . JText::_('Cuisine') . "</span><br />" . $extraFld['Cuisine'] . "</li>\n";

但从 2.6.2 版本开始,可以选择直接获取额外的字段名称和值:

$this->item-extraFields->ALIASNAME->name $this->item-extraFields->ALIASNAME->value

如 K2 2.6.2 What is new 文档中所述。

问题如下:

我有一个希腊语(默认)和英语语言环境的双语网站。

我在默认语言环境“Πεδίο 1”中创建了一个别名为“field1”的额外字段

如果我尝试翻译它,我唯一的选择是将其名称翻译为“额外字段 1”(不同于其别名)...

然后在我的自定义模板中,如果我尝试像这样获取它:

$this->item->extraFields->field1->value 

只有希腊语言环境有效。在英语语言环境中,我收到一个 NULL 值!

有什么相关的经验和解决办法吗?

4

2 回答 2

0

尝试这样做:

细绳:

JText::_('CUISINE') //should always be Capital letters

翻译(语言文件):

CUISINE=Cuisine

我不确定您使用哪个文件来翻译字符串,但是当您将此代码添加到模板 index.php 时,请将翻译字符串添加到en-GB.tpl_tamplatename.ini

于 2013-01-14T03:28:27.473 回答
0

经过大量测试后,我认为在多语言网站中,使用别名检索单个额外字段值是行不通的。至少对于 Joomla 1.5 来说不是...

应该工作的代码是:

$this->item-extraFields->ALIASNAME->value

我有一个默认语言“希腊语”和第二语言“英语”的网站。

我有一个以希腊语“Πεδίο 1”命名的额外字段,别名为“field1”。

我已将这个额外的字段(使用 Joomfish)用英语翻译为“字段 1”...

如果我尝试使用以下方法获取其值:

$this->item-extraFields->field1->value

该代码仅适用于默认语言“希腊语”,但不适用于英语。

于 2013-02-18T10:23:43.683 回答