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='10' titlelen='50' orderby='weight'} ?[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('hot|click|lastpost',$orderby))
문을 다음과 같이 수정하세요. :
코드는 다음과 같습니다.
if(ereg('hot|click|weight|lastpost',$orderby))
수정 완료 후 대상이 내부에 있으면 저장합니다. 생성 후에는 가중치 정렬이 적용된 문서 목록이 설치된 것을 볼 수 있습니다
4. 템플릿 호출:
코드는 다음과 같습니다:
{dede:arclist row='10' titlelen='50' orderby='weight'} ?[field:textlink/]<br/> {/dede:arclist}
위 내용은 Dedecms에서 사용하는 가중치 정렬 방식이 작동하지 않으면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!