DedeCMS はマルチレベルの列とコンテンツ リストをどのように循環的に呼び出すのですか?
複数レベルの列とコンテンツ リストを呼び出す DedeCMS ループ
推奨される学習: Dreamweavercms
Dedecms は、もちろん非常に優れています。フォーラムの技術的な返信スピードに加えて! !今日は、サブカラムとその内容リストを循環的に呼び出すための比較的実用的な小さなコードを共有します。実際、それはタグのマニュアルを見てもわかりますが、結局のところ、怠け者はまだいます!
タグマニュアルによると、DedeCMS システムでは、channelartlist タグを使用してサブカラムとそのカラムデータを循環させることができ、DedeCMS システムで唯一タグをサポートしているとも言われています。呼び出しタグの基本的な使用法は次のとおりですが、必要に応じて変更できます:
<div> {dede:channelartlist} <dl> <dt><strong><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></strong> <span><a href="{dede:field name='typeurl'/}">更多...</a></span></dt> <dd> <ul> {dede:arclist titlelen='60' row='8'} <li><span>[field:pubdate function="MyDate('m-d',@me)'/]</span><a href="[field:arcurl /]"> [field:title /]</a></li> {/dede:arclist} </ul> </dd> </dl> {/dede:channelartlist} </div>
上記のコードは、ホームページ上のサブ列とサブ列コンテンツ リストの呼び出しを実現できます。リスト ページとコンテンツ ページでの channelartlist タグの使用について説明します。
1. パラメータの紹介
channelartlist タグは、上位レベルの列 ID を制限するための
typeid='0' という 3 つのパラメータを一時的にサポートします。 " をサポートする top を使用します。" は複数の列を示します
row='20' 循環する列の数、デフォルトは 20;
cacheid = '' タグ キャッシュ ID、通常は空です
しかし、上記のコードを変更せずにコピーして究極の列ページまたはコンテンツ ページに貼り付けるだけでは、呼び出し結果は表示されません。これは、タグ channelartlist で typeid が空の場合、それは現在の列を意味するためです。ただし、究極の列リストとコンテンツ ページには従属列がないため、エラーが発生します。
2. 呼び出し例
最終的なリスト ページまたはコンテンツ ページでは、正しい呼び出し方法は次のようになります:
{dede:channelartlist typeid='top'}
ここには typed='top' があります。先頭の値は必要な上位レベルの列 ID に置き換えることができますが、空であってはなりません。誰もがこれに注意する必要があります!
3. 列の強調表示と特殊効果の呼び出し
このラベルの下では、それぞれ {dede:field name='typename'/} と {dede:field name='typeurl' を直接使用できます。 . /} を使用して列名と列リンクを表します。もちろん、ここで紹介されている他の特別な変数もあります。
{dede:field name='id'/}与{dede:field name='typeid'/} 均表示循环中的栏目ID; {dede:global name='itemindex'} 表示循环递增变量,从1开始; {dede:global name='itemparity'} 表示循环魔法变量,单数为1,双数为2;
上記は、channelartlist に直接適用できます。特別な注意が必要です。これら 2 つの変数を使用すると、1 行おきに列の色を変更するなど、非常にカスタマイズされたさまざまな効果を簡単に作成できます。
この列のハイライトに関しては、channelartlist.lib.php は付属していませんが、以下の DIY により、現在の列をハイライトすることができます。方法 (dedecms 5.6 を例にします):
channelartlist.lib.php ファイルを開き、次のコードを見つけます:
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
次のコードを次の行に追加します:
if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id']){ $pv->Fields['currentstyle'] = ' id="pic_focus"'; } else{ $pv->Fields['currentstyle'] = ''; }
その後、{dede:field name='currentstyle'/} を使用してテンプレート内で呼び出すことができます。
以上がDedeCMS はどのようにしてマルチレベルの列とコンテンツ リストを循環的に呼び出すのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。