> CMS 튜토리얼 > Dedecms > Dedecms에서 사용하는 가중치 정렬 방식이 작동하지 않으면 어떻게 해야 하나요?

Dedecms에서 사용하는 가중치 정렬 방식이 작동하지 않으면 어떻게 해야 하나요?

藏色散人
풀어 주다: 2019-12-11 10:19:27
원래의
2026명이 탐색했습니다.

Dedecms에서 사용하는 가중치 정렬 방식이 작동하지 않으면 어떻게 해야 하나요?

dedecms에서 사용하는 가중치 정렬이 작동하지 않으면 어떻게 해야 하나요?

이 문서의 예에서는 Dedecms의 잘못된 가중치 정렬 사용에 대한 솔루션을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 방법은 다음과 같습니다.

추천 연구: Dreamweaver cms

dedecms5.7에는 가중치 정렬에 버그가 있습니다. 여기서는 잘못된 가중치 문제를 해결하는 방법을 단계별로 알려 드리겠습니다.

관련 파일은 라인 570 부근의 includetaglibarclist.lib.php 파일입니다:

코드는 다음과 같습니다:

if ( $isweight=='y')
로그인 후 복사

이 코드 라인은 단순히 쓸모가 없습니다.

코드는 다음과 같습니다:

$orderWeight = list_sort_by($orderWeight,'weight', 'asc');
로그인 후 복사

정렬 $orderWeight를 가져오기 전에 문서 테이블을 검색하는 문은 다음과 같습니다.

코드는 다음과 같습니다.

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
로그인 후 복사

분명히 라벨을 작성할 때 다음과 같이 작성합니다.

The 코드는 다음과 같습니다:

{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";
로그인 후 복사

목록 태그가 무게 정렬을 지원하도록 또 다른 코드를 분리합니다. :

코드는 다음과 같습니다.

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

해결책:

1. arc.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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿