Heim  >  Artikel  >  CMS-Tutorial  >  Was soll ich tun, wenn die von Dedecms verwendete Gewichtssortierungsmethode nicht funktioniert?

Was soll ich tun, wenn die von Dedecms verwendete Gewichtssortierungsmethode nicht funktioniert?

藏色散人
藏色散人Original
2019-12-11 10:19:271988Durchsuche

Was soll ich tun, wenn die von Dedecms verwendete Gewichtssortierungsmethode nicht funktioniert?

Was soll ich tun, wenn die von DreamWeaver dedecms verwendete Gewichtssortierung ungültig ist?

Das Beispiel in diesem Artikel beschreibt die Lösung für die ungültige Verwendung der Gewichtssortierung durch DreamWeaver dedecms. Teilen Sie es als Referenz mit allen. Die spezifische Methode ist wie folgt:

Empfohlenes Lernen: Dreamweaver cms

dedecms5.7 hat einen Fehler bei der Gewichtssortierung. Hier erkläre ich Ihnen Schritt für Schritt, wie es geht Lösen Sie das Problem der ungültigen Gewichtslösung.

Die betroffene Datei ist die Datei includetaglibarclist.lib.php, etwa Zeile 570:

Der Code lautet wie folgt:

if ( $isweight=='y')

Diese Codezeile ist einfach nutzlos,

Der Code lautet wie folgt:

$orderWeight = list_sort_by($orderWeight,'weight', 'asc');

Sortieren Sie die Ergebnisse. Dies ist problematisch, da vor dem Abrufen von $orderWeight die Anweisung zum Abrufen der Dokumenttabelle lautet:

Der Code lautet wie folgt:

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

Es ist offensichtlich, dass wir beim Schreiben des Tags schreiben:

Der Code lautet wie folgt:

{dede:arclist orderby='weight' typeid='29' isweight='y' 
limit='4,1' titlelen='100' infolen='100' }

Die ursprüngliche Absicht ist, dass die Daten sortiert werden nach Gewicht, und das Verarbeitungsprogramm basiert auf Für die von sortrank abgerufene Datenbank dient die Angabe von isweight='y' nur dazu, die abgerufenen Datensätze nach Gewicht zu sortieren.

Die Lösung ist also sehr einfach: Fügen Sie in Zeile 330 der Programmdatei eine Zeile mit nach Gewicht sortierten Verarbeitungsanweisungen hinzu:

Der Code lautet wie folgt:

else if($orderby =='weight') $ordersql = " order by arc.weight asc";

Trennen wir ein weiteres let. Das Listen-Tag unterstützt die Gewichtssortierung:

Der Code lautet wie folgt:

{dede:list pagesize=&#39;10&#39; titlelen=&#39;50&#39; orderby=&#39;weight&#39;} ?[field:textlink/]<br/> {/dede:list}

Lösung:

1. Öffnen Sie den Dateibogen .listview.class.php

2. Suchen Sie den

-Code wie folgt:

else if($orderby=="lastpost") {

-Anweisung, die sich wahrscheinlich in Zeile 609 befindet. Drücken Sie davor die Eingabetaste Zeile und fügen Sie die folgende Anweisung ein:

Der Code lautet wie folgt:

else if($orderby=="weight") { $ordersql = " order by arc.weight $orderWay"; }

3. Suchen Sie weiter nach dem

-Code wie folgt:

if(ereg(&#39;hot|click|lastpost&#39;,$orderby))


Anweisung, geändert zu:

Der Code lautet wie folgt:

if(ereg(&#39;hot|click|weight|lastpost&#39;,$orderby))

Nach der Änderung speichern Sie ihn, wenn die Gewichtssortierung durchgeführt wurde Im Ziel verwendet, generieren Sie es und Sie können sehen, dass die Gewichtssortierung in der Dokumentenliste installiert wurde

4. Vorlagenaufruf:

Der Code lautet wie folgt:

{dede:arclist row=&#39;10&#39; titlelen=&#39;50&#39; orderby=&#39;weight&#39;} ?[field:textlink/]<br/> {/dede:arclist}

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn die von Dedecms verwendete Gewichtssortierungsmethode nicht funktioniert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn