Maison > Tutoriel CMS > DEDECMS > Que faire si la méthode de tri par poids utilisée par Dedecms ne fonctionne pas ?

Que faire si la méthode de tri par poids utilisée par Dedecms ne fonctionne pas ?

藏色散人
Libérer: 2019-12-11 10:19:27
original
2025 Les gens l'ont consulté

Que faire si la méthode de tri par poids utilisée par Dedecms ne fonctionne pas ?

Que dois-je faire si le tri par poids utilisé par les dedecms DreamWeaver n'est pas valide ?

L'exemple de cet article décrit la solution à l'utilisation non valide du tri par poids par les dedecms de DreamWeaver. Partagez-le avec tout le monde pour votre référence. La méthode spécifique est la suivante :

Apprentissage recommandé : Dreamweaver cms

dedecms5.7 a un bug dans le tri des poids. Ici, je vais vous expliquer étape par étape comment procéder. résoudre le problème de la solution de poids invalide.

Le fichier concerné est le fichier includetaglibarclist.lib.php, autour de la ligne 570 :

Le code est le suivant :

if ( $isweight=='y')
Copier après la connexion

Cette ligne de code est tout simplement inutile,

Le code est le suivant :

$orderWeight = list_sort_by($orderWeight,'weight', 'asc');
Copier après la connexion

Trier les résultats C'est problématique car avant d'obtenir le $orderWeight, l'instruction pour récupérer la table du document est :

Le code est. comme suit :

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
Copier après la connexion

C'est évident Quand on écrit la balise, on écrit :

Le code est le suivant :

{dede:arclist orderby='weight' typeid='29' isweight='y' 
limit='4,1' titlelen='100' infolen='100' }
Copier après la connexion

L'intention initiale est que les données soient triées. en fonction du poids, et le programme de traitement est basé sur Pour la base de données récupérée par sortrank, spécifier isweight='y' ne sert qu'à trier les ensembles de données récupérés en fonction du poids.

La solution est donc très simple : à la ligne 330 du fichier programme, ajoutez une ligne d'instructions de traitement triées par poids :

Le code est le suivant :

else if($orderby =='weight') $ordersql = " order by arc.weight asc";
Copier après la connexion

Séparons un autre let La balise list prend en charge le tri par poids :

Le code est le suivant :

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

Solution :

1 Ouvrez l'arc de fichier. .listview.class.php

2. Recherchez le code

comme suit :

else if($orderby=="lastpost") {
Copier après la connexion

, qui se trouve probablement à la ligne 609. Appuyez sur la touche Entrée devant cela. ligne et insérez la déclaration suivante :

Le code est le suivant :

else if($orderby=="weight") { $ordersql = " order by arc.weight $orderWay"; }
Copier après la connexion

3. Continuez à rechercher le code

comme suit :

if(ereg(&#39;hot|click|lastpost&#39;,$orderby))
Copier après la connexion


déclaration, modifiée en :

Le code est le suivant :

if(ereg(&#39;hot|click|weight|lastpost&#39;,$orderby))
Copier après la connexion

Après modification, enregistrez-le Si le tri par poids a été. utilisé dans la cible, générez-le et vous pouvez voir que le tri par poids a été installé dans la liste des documents

4. Appel du modèle :

Le code est le suivant :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal