DEDECMS で無制限の列サブカテゴリを取得する方法
DEDECMS で無制限の列サブカテゴリを取得するにはどうすればよいですか?
ほとんどの企業 Web サイトでは DEDECMS が使用されています。今日、クライアント向けの Web サイトを設計していたとき、DEDE の自動内部リンクと完全な URL スペル フォーマットを完了した後、ほとんどの製品が存在するため、小さな問題に遭遇しました。カテゴリには 4 つのレベルがあります。顧客は、各レベルでサブカテゴリを呼び出すための左側のポップアップ メニューがあるように要求しましたが、DEDECMS はデフォルトで第 1 レベルのカテゴリのみを呼び出すことができます。苦労の末、Baidu GOOGLE がついにこのことを理解しました。私はこのことを内に秘めておく勇気がなかったので、困っている友達と共有するために送信しました。
推奨学習: Dream Weaver cms
まず、/include/taglib/channerl.lib.php ファイルのコードを次のように変更します。
コードは次のとおりです:
<?php function lib_channel(&$ctag,&$refObj) { global $_sys_globals,$envs,$dsql; $attlist = “typeid|0,reid|0,row|100,col|1,type|son,currentstyle|”; FillAttsDefault($ctag->CAttribute->Items,$attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $innertext = $ctag->GetInnerText(); if(empty($typeid) && $envs['typeid']!=0) { $typeid = $envs['typeid']; $reid = $envs['reid']; }else{ $reid=0; } if($type==”||$type==’sun’) $type=”son”; if($innertext==”) $innertext = GetSysTemplets(“channel_list.htm”); if($reid==0 && $typeid>0) { $dbrow = $dsql->GetOne(“Select reid From ying_arctype where id=’$typeid’ “); if(is_array($dbrow)) $reid = $dbrow['reid']; } $likeType = ”; if($type==’top’) { $sql = “Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From ying_arctype where reid=0 And ishidden<>1 order by sortrank asc limit 0,$row”; } else if($type==”son”) { //if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid']; if($typeid==0) { return ”; } $sql = “Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From ying_arctype where reid=’$typeid’ And ishidden<>1 order by sortrank asc limit 0,$row”; } else if($type==”self”) { if($reid==0) { return ”; } $sql = “Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From ‘ying_arctype’ where reid=’$reid’ And ishidden<>1 order by sortrank asc limit 0,$row”; } //And id<>’$typeid’ $dtp2 = new DedeTagParse(); $dtp2->SetNameSpace(“field”,”[","]“); $dtp2->LoadSource($innertext); $dsql2 = clone $dsql; $dsql->SetQuery($sql); $dsql->Execute(); $line = $row; $GLOBALS['autoindex'] = 0; for($i=0;$i < $line;$i++) { if($col>1) $likeType .= “<dl>\r\n”; for($j=0;$j<$col;$j++) { if($col>1) $likeType .= “<dd>\r\n”; if($row=$dsql->GetArray()) { if($type==’self’ && $row['id']==$typeid) //处理同级栏目中,当前栏目的样式 { if($currentstyle!=”) { $linkOkstr = $currentstyle; $row['typelink'] = GetOneTypeUrlA($row); $linkOkstr = str_replace(“~typelink~”,$row['typelink'],$linkOkstr); $linkOkstr = str_replace(“~typename~”,$row['typename'],$linkOkstr); $likeType .= $linkOkstr; } }else { $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row); if(is_array($dtp2->CTags)) { foreach($dtp2->CTags as $tagid=>$ctag){ if(isset($row[$ctag->GetName()])) { $dtp2->Assign($tagid,$row[$ctag->GetName()]); } elseif (preg_match(‘/^sonchannel[0-9]*$/’,$ctag->GetName())) { $dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql2)); } } } $likeType .= $dtp2->GetResult(); } } if($col>1) $likeType .= “</dd>\r\n”; $GLOBALS['autoindex']++; }//Loop Col if($col>1) { $i += $col – 1; $likeType .= ” </dl>\r\n”; } }//Loop for $i reset($dsql2); $dsql->FreeResult(); return $likeType; } function lib_channel_son($ctag,$typeid = 0,$dsql2) { $attlist = “row|100,col|1,currentstyle|”; FillAttsDefault($ctag->CAttribute->Items,$attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $innertext = $ctag->GetInnerText(); $dsql3 = clone $dsql2; $likeType = ”; //if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid']; if($typeid==0) { return ”; } $sql = “Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From ying_arctype where reid=’$typeid’ And ishidden<>1 order by sortrank asc limit 0,$row”; //And id<>’$typeid’ $dtp2 = new DedeTagParse(); $dtp2->SetNameSpace(“field”,”[","]“); $dtp2->LoadSource($innertext); $dsql2->SetQuery($sql); $dsql2->Execute(); $line = $row; for($i=0;$i < $line;$i++) { if($col>1) $likeType .= “<dl>\r\n”; for($j=0;$j<$col;$j++) { if($col>1) $likeType .= “<dd>\r\n”; if($row=$dsql2->GetArray()) { $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row); if(is_array($dtp2->CTags)) { foreach($dtp2->CTags as $tagid=>$ctag){ if(isset($row[$ctag->GetName()])) { $dtp2->Assign($tagid,$row[$ctag->GetName()]); } elseif (preg_match(‘/^sonchannel[0-9]*$/’,$ctag->GetName())) { $dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql3)); } } } $likeType .= $dtp2->GetResult(); } if($col>1) $likeType .= “</dd>\r\n”; }//Loop Col if($col>1) { $i += $col – 1; $likeType .= ” </dl>\r\n”; } }//Loop for $i reset($dsql3); $dsql2->FreeResult(); return $likeType; } ?>
[field:sonchannel0] [/field:sonchannel0] を使用してテンプレートを呼び出します。これは、サブ列を取得するために使用されます ([sonchannel 番号] をラベル名は埋め込みを防止するためのものです (適用時にタグを正しく解析できません)。これの目的は、列に無限レベルのサブ列が多数ある場合に、サブ列を選択しやすくすることです。例を見てみましょう:
コードは次のとおりです:
<ul id="left_nav"> {dede:channel type='son' typeid='16'} <li><a href="[field:typelink/]“>[field:typename/]</a> <ul> [field:sonchannel0] <li><a href="[field:typelink/]“>[field:typename/]</a> <ul> [field:sonchannel1] <li><a href="[field:typelink/]“>[field:typename/]</a> <ul> [field:sonchannel2] <li><a href="[field:typelink/]“>[field:typename/]</a> <ul> [field:sonchannel3] <li><a href="[field:typelink/]“>[field:typename/]</a></li> [/field:sonchannel3] </ul> </li> [/field:sonchannel2] </ul> </li> [/field:sonchannel1] </ul> </li> [/field:sonchannel0] </ul> </li> {/dede:channel} </ul>
上記の typeid の数字を主要カテゴリの ID に変更するだけです。DEDE で見つからなかったためです。公式フォーラム、こちらに投稿させていただきました、お役に立てれば幸いです、便利です。
注: エラーが発生した場合に備えて、ファイルを変更する前にバックアップを作成してください。上記のコード内の一部の引用符は自動的に全角に変換される場合があります。半角に変更してください。または、Xiao に問い合わせてください。 Han は変更されたファイルを取得します。
以上がDEDECMS で無制限の列サブカテゴリを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Empire CMS テンプレートのダウンロード場所: 公式テンプレートのダウンロード: https://www.phome.net/template/ サードパーティのテンプレート Web サイト: https://www.dedecms.com/diy/https://www.0978.com。 cn /https://www.jiaocheng.com/インストール方法: テンプレートをダウンロード テンプレートを解凍 テンプレートをアップロード テンプレートを選択

テンプレートの置換は、次の手順で Dedecms に実装できます: global.cfg ファイルを変更し、必要な言語パックを設定します。 taglib.inc.php フック ファイルを変更し、言語サフィックス テンプレート ファイルのサポートを追加します。言語サフィックスを含む新しいテンプレート ファイルを作成し、必要な内容を変更します。 Dececms キャッシュをクリアします。

Dedecms を使用してローカルビデオをアップロードするにはどうすればよいですか? Dedecms がサポートする形式のビデオ ファイルを準備します。 Dedecms 管理バックエンドにログインし、新しいビデオ カテゴリを作成します。動画管理ページで動画ファイルをアップロードし、関連情報を入力して動画カテゴリを選択します。記事の編集中にビデオを埋め込むには、アップロードしたビデオのファイル名を入力し、サイズを調整します。

Dedecms は、ニュース Web サイト、ブログ、電子商取引 Web サイト、フォーラムおよびコミュニティ Web サイト、教育 Web サイト、ポータル、その他のタイプの Web サイト (企業 Web サイト、個人 Web サイトなど) を含む、さまざまなタイプの Web サイトの作成に使用できるオープン ソース CMS です。ウェブサイト、フォトアルバムウェブサイト、ビデオ共有ウェブサイト)

Dedecms は、コンテンツ管理、テンプレート システム、セキュリティ保護を提供するオープン ソースの中国製 CMS システムです。具体的な使用方法には次の手順が含まれます。 1. Dedecms をインストールします。 2. データベースを構成します。 3. 管理インターフェイスにログインします。 4. コンテンツを作成します。 5. テンプレートを設定します。 6. ユーザーを管理します。 7. システムを保守します。

DedeCMS はオープン ソースのコンテンツ管理システムであり、潜在的な脆弱性とセキュリティ リスクがいくつかあります: 1. SQL インジェクションの脆弱性。攻撃者は悪意のある SQL クエリ ステートメントを構築することで、不正な操作を実行したり、機密データを取得したりできます。2. ファイル アップロードの脆弱性。攻撃者は、次の内容を含むファイルをアップロードできます。悪意のあるコードをサーバーに送信して任意のコードを実行したり、サーバーの権限を取得したりする; 3. 機密情報の漏洩; 4. 認証されていない脆弱性の悪用。

正確で信頼性の高い dedecms 変換ツール評価レポート インターネット時代の急速な発展に伴い、Web サイト構築は多くの企業や個人にとって必要なツールの 1 つになりました。 Web サイト構築において、コンテンツ管理システム (CMS) を使用すると、Web サイトのコンテンツと機能をより便利かつ効率的に管理できます。中でもdedecmsは有名なCMSシステムとして様々なWebサイト構築プロジェクトで広く利用されています。ただし、dedecms Web サイトを他の形式に変換する必要がある場合があります。その場合、変換ツールを使用する必要があります。

dedecms エンコード変換関数の学習は複雑ではなく、簡単なコード例を使用すると、このスキルをすぐに習得できます。 dedecms では、通常、システムの正常な動作とデータの正確性を確保するために、中国語の文字化けや特殊文字などの問題に対処するためにエンコード変換機能が使用されます。ここでは、エンコードに関するさまざまなニーズに簡単に対応できる dedecms のエンコード変換機能の使い方を詳しく紹介します。 1.UTF-8 から GBK UTF-8 でエンコードされた文字列を G に変換する必要がある場合、dedecms で
