ホームページ CMS チュートリアル DEDECMS DEDECMS で無制限の列サブカテゴリを取得する方法

DEDECMS で無制限の列サブカテゴリを取得する方法

Dec 19, 2019 am 09:34 AM
dedecms

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[&#39;typeid&#39;]!=0) 
{ 
$typeid = $envs[&#39;typeid&#39;]; 
$reid = $envs[&#39;reid&#39;]; 
}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[&#39;reid&#39;]; 
} 
$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[&#39;typeid&#39;]>0) $typeid = $_sys_globals[&#39;typeid&#39;]; 
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[&#39;autoindex&#39;] = 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[&#39;id&#39;]==$typeid) //处理同级栏目中,当前栏目的样式 
{ 
if($currentstyle!=”) 
{ 
$linkOkstr = $currentstyle; 
$row[&#39;typelink&#39;] = GetOneTypeUrlA($row); 
$linkOkstr = str_replace(“~typelink~”,$row[&#39;typelink&#39;],$linkOkstr); 
$linkOkstr = str_replace(“~typename~”,$row[&#39;typename&#39;],$linkOkstr); 
$likeType .= $linkOkstr; 
} 
}else 
{ 
$row[&#39;typelink&#39;] = $row[&#39;typeurl&#39;] = 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[&#39;id&#39;],$dsql2)); 
} 
} 
} 
$likeType .= $dtp2->GetResult(); 
} 
} 
if($col>1) $likeType .= “</dd>\r\n”; 
$GLOBALS[&#39;autoindex&#39;]++; 
}//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[&#39;typeid&#39;]>0) $typeid = $_sys_globals[&#39;typeid&#39;]; 
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[&#39;typelink&#39;] = $row[&#39;typeurl&#39;] = 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[&#39;id&#39;],$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=&#39;son&#39; typeid=&#39;16&#39;} 
<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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

インペリアル cms リソース ネットワーク テンプレートはどこにありますか? インペリアル cms リソース ネットワーク テンプレートはどこにありますか? Apr 17, 2024 am 10:00 AM

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

dedecms がテンプレート置換を実装する方法 dedecms がテンプレート置換を実装する方法 Apr 16, 2024 pm 12:12 PM

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

ローカルビデオを dedecms にアップロードする方法 ローカルビデオを dedecms にアップロードする方法 Apr 16, 2024 pm 12:39 PM

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

dedecms でできる Web サイトは何ですか? dedecms でできる Web サイトは何ですか? Apr 16, 2024 pm 12:24 PM

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

dedecmの使い方 dedecmの使い方 Apr 16, 2024 pm 12:15 PM

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

dedecmsにはどのような抜け穴があるのでしょうか? dedecmsにはどのような抜け穴があるのでしょうか? Aug 03, 2023 pm 03:56 PM

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

正確で信頼性の高い dedecms 変換ツールの評価レポート 正確で信頼性の高い dedecms 変換ツールの評価レポート Mar 12, 2024 pm 07:03 PM

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

dedecmsエンコード変換関数を学ぶ簡単な方法 dedecmsエンコード変換関数を学ぶ簡単な方法 Mar 14, 2024 pm 02:09 PM

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

See all articles