私はJoomla 3.7用のテンプレートをカスタマイズして、Joomla 3.7、カスタムフィールド(com_fields)の新機能を使用して、必要なテンプレートにCSSを使用して表示および書式設定できますそれらを表示します。テンプレート内のJoomlaカスタムフィールド
フィールドを表示するためにテンプレートで使用するPHPコードを教えてもらえますか、いくつかの例を挙げてください。
ありがとうございます。
私はJoomla 3.7用のテンプレートをカスタマイズして、Joomla 3.7、カスタムフィールド(com_fields)の新機能を使用して、必要なテンプレートにCSSを使用して表示および書式設定できますそれらを表示します。テンプレート内のJoomlaカスタムフィールド
フィールドを表示するためにテンプレートで使用するPHPコードを教えてもらえますか、いくつかの例を挙げてください。
ありがとうございます。
ない、それを行うための正しい方法が、私は同じニーズを持っていたし、私の周り/components/com_content/views/article/tmpl/default.phpからhttps://www.giudansky.com/news/12-coding/146-joomla-custom-fields
Copieのdefault.phpに基づいて仕事を見つけました テンプレート/ YOUR_THEME/HTML/com_content /記事/ default.php
追加次のコード行25に:
$myCustomFields = array();
foreach($this->item->jcfields as $field) {
$myCustomFields[$field->name] = $field->value;
}
$GLOBALS['myCustomFields'] = $myCustomFields;
は、通常は、グローバルVARにあなたの記事に添付フィールドの内容を置きます。 テンプレートページでは、検索したフィールドの価値を知ることができます。 print_r($ GLOBALS ['myCustomFields']);配列の内容を表示します。良い答えを待っているトリックを行います
..
これは絶対にこれを行うには間違った方法であると思いますが、私は私の髪を引き裂くたので、私はカスタム戻すには、この迅速なDBクエリを思い付いテンプレート内のフィールド値。確かに、これは何らかのjoomlaプロトコルに違反していますか? 明らかに、これはあなたのテンプレートの$ articleidをあなたの記事のCurrent IDであるとみなしていることを前提としています。
私もよりよい解決策を待っているが、これは誰もがパーティーに遅れて取得するための
$db =& JFactory::getDBO();
$sql = "select * from #__fields_values where `item_id` = $articleid";
$db->setQuery($sql);
$fieldslist = $db->loadObjectList();
echo $fieldslist[0]->value;
echo $fieldslist[1]->value;
echo $fieldslist[your field ID here]->value;
を役に立てば幸いしています。
<?php
JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');
$jcFields = FieldsHelper::getFields('com_content.article', $item, true);
$itemCustomFields = array();
foreach($jcFields as $field) {
$itemCustomFields[$field->name] = $field->rawvalue;
}
?>
:場合は、あなたがこの便利なスニペットを使用することができます(!-templates本当にJを変更する唯一の方法であるので、「Joomlaのテンプレートのオーバーライド」をグーグル)モジュール・オーバーライドでカスタムフォームフィールドを使用したいです
これでカスタムフィールドを使用できます:itemCustomFields['customFieldName1']
記事の上書きはテストされていません。すぐに、もしそうなら、これは更新されます。
com_fieldsがどのようにレンダリングコードでそれを行うのかがわかりました。 Joomla!3.7以降では、[joomla_root] /components/com_fields/layouts/fields/render.phpにあります。ここで
あなたはJoomlaのは、持っている書式設定を再現するために必要な主な部品です:
JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');
<dl class="fields-container">
<?php foreach ($this->item->jcfields as $field) : ?>
<?php // If the value is empty do nothing ?>
<?php if (!isset($field->value) || $field->value == '') : ?>
<?php continue; ?>
<?php endif; ?>
<?php $class = $field->params->get('render_class'); ?>
<dd class="field-entry <?php echo $class; ?>">
<?php echo FieldsHelper::render($context, 'field.render', array('field' => $field)); ?>
</dd>
<?php endforeach; ?>
</dl>
これは、コンポーネントまたはアーティクルで使用可能なすべてのタグをループ。このメソッドの素晴らしい点は、フィールドにインクルードするレンダリングクラスがまだ適用されていることです。
は自動的にフィールド上を表示しませんに自動表示を設定してください。それ以外の場合は、ページビューに2回表示されます。
表示する特定のフィールドをターゲットにする場合は、フィールドの名前を使用してターゲットを表示できます。 (ラベルと値のペアは下にあります)。詳細についてはthe field Joomla docsを参照してください。