ホームページ > CMS チュートリアル > DEDECMS > Dedecms で使用される重量ソート方法が機能しない場合はどうすればよいですか?

Dedecms で使用される重量ソート方法が機能しない場合はどうすればよいですか?

藏色散人
リリース: 2019-12-11 10:19:27
オリジナル
2036 人が閲覧しました

Dedecms で使用される重量ソート方法が機能しない場合はどうすればよいですか?

dedecms の重みソート方法が無効な場合はどうすればよいですか?

この記事の例では、Dreamweaver の dedecms による重みソートの無効な使用に対する解決策について説明します。皆さんの参考に共有してください。具体的な方法は次のとおりです:

推奨学習: 梦Weavercms

dedecms5.7 には重みのソートにバグがあります。ここでは、その方法を段階的に説明します。無効な重みの問題を解決します。

関係するファイルは、includetaglibarclist.lib.php ファイルの 570 行目あたりです:

コードは次のとおりです:

if ( $isweight=='y')
ログイン後にコピー

このコード行はまったく役に立ちません

コードは次のとおりです:

$orderWeight = list_sort_by($orderWeight,'weight', 'asc');
ログイン後にコピー

$orderWeight を取得する前に、ドキュメント テーブルを取得するステートメントが次のとおりであるため、結果の並べ替えに問題があります:

Theコードは次のとおりです:

SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath 
FROM `dede_archives` arc LEFT JOIN `dede_arctype` tp ON arc.typeid=tp.id WHERE arc.typeid IN (29) AND 
arc.arcrank > -1 ORDER BY arc.sortrank DESC
ログイン後にコピー

タグを記述するときは次のように記述します:

コードは次のとおりです:

{dede:arclist orderby='weight' typeid='29' isweight='y' 
limit='4,1' titlelen='100' infolen='100' }
ログイン後にコピー

本来の意図は、データsortrank によって取得されたデータベースの場合、isweight='y' を指定すると、取得されたデータ セットが重みに従ってソートされるだけです。

したがって、解決策は非常に簡単です。プログラム ファイルの 330 行目に、重みでソートされた処理ステートメントの行を追加します。

コードは次のとおりです。

else if($orderby =='weight') $ordersql = " order by arc.weight asc";
ログイン後にコピー

別の let を分離しましょうリスト タグは重み付けソートをサポートしています:

コードは次のとおりです:

{dede:list pagesize=&#39;10&#39; titlelen=&#39;50&#39; orderby=&#39;weight&#39;} ?[field:textlink/]<br/> {/dede:list}
ログイン後にコピー

解決策:

1. ファイル アークを開きます.listview.class.php

2. 次のように

コードを見つけます:

else if($orderby=="lastpost") {
ログイン後にコピー

ステートメント (おそらく 609 行目)。この行の前で Enter キーを押して、次のステートメントを挿入します:

コードは次のとおりです:

else if($orderby=="weight") { $ordersql = " order by arc.weight $orderWay"; }
ログイン後にコピー

3. 引き続き検索を続けます

コードは次のとおりです

if(ereg(&#39;hot|click|lastpost&#39;,$orderby))
ログイン後にコピー


## ステートメントを次のように変更します:

コードは次のとおりです:

if(ereg(&#39;hot|click|weight|lastpost&#39;,$orderby))
ログイン後にコピー

変更が完了したら、保存します。がターゲットで使用されているため、それを生成すると、ドキュメント リストに重み付けソートがインストールされていることがわかります。

4. テンプレート呼び出し:

コードは次のとおりです:

{dede:arclist row=&#39;10&#39; titlelen=&#39;50&#39; orderby=&#39;weight&#39;} ?[field:textlink/]<br/> {/dede:arclist}
ログイン後にコピー

以上がDedecms で使用される重量ソート方法が機能しない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート