#phpcm の並べ替えが変わらない場(chǎng)合はどうすればよいですか?
phpcms 関連記事のソートが変更されていない問題を修正する方法:
phpcms/modules/content/classes/content_tag.class.php コンテンツ モデルを開くtag class を使用すると、このタグは、コンテンツに関連する読みが人為的に設(shè)定されている場(chǎng)合にのみ、order パラメーターに従ってソートされることがわかります。コンテンツに人為的に設(shè)定された関連読みが存在しない場(chǎng)合、クエリはキーワードに基づいて実行されますが、このとき順序パラメータは並べ替えられません。代わりに、ソートされません。記事によって呼び出される関連する読み物が常に非常に古いのはこのためです。
この問題を修正する方法は次のとおりです。
phpcms/modules/content/classes/content_tag.class.php コンテンツ モデル タグ クラス ファイルを変更し、リレーションを変更します。 content_tag クラスのメソッドを :
コードは次のとおりです:
/** * 相關(guān)文章標(biāo)簽 * @param $data */ public function relation($data) { $catid = intval($data['catid']); if(!$this->set_modelid($catid)) return false; $order = $data['order']; $sql = "`status`=99"; $limit = $data['id'] ? $data['limit']+1 : $data['limit']; if($data['relation']) { $relations = explode('|',trim($data['relation'],'|')); $relations = array_diff($relations, array(null)); $relations = implode(',',$relations); $sql = " `id` IN ($relations)"; $key_array = $this->db->select($sql, '*', $limit, $order,'','id'); } elseif($data['keywords']) { $keywords = str_replace('%', '',$data['keywords']); $keywords_arr = explode(' ',$keywords); $key_array = array(); $number = 0; $i =1; foreach ($keywords_arr as $_k) { $sql2 = $sql." AND `keywords` LIKE '%$_k%'".(isset($data['id']) && intval($data['id']) ? " AND `id` != '".abs(intval($data['id']))."'" : ''); $r = $this->db->select($sql2, '*', $limit, $order,'','id'); $number += count($r); foreach ($r as $id=>$v) { if($i<= $data['limit'] && !in_array($id, $key_array)) $key_array[$id] = $v; $i++; } if($data['limit']<$number) break; } } if($data['id']) unset($key_array[$data['id']]); return $key_array; }
実際には、単に $r = $this->db->select($sql2, ' *', $limit, '','', 'id'); $r = $this->db->select($sql2, '*', $limit, $order,'',' に置き換えられますid'); そして、order パラメータをクエリメソッドに渡します。
テンプレートで、次のタグを使用し、並べ替えを?qū)g現(xiàn)するために order パラメーターを追加します。
コードは次のとおりです。
{pc:content action="relation" relation="$relation" id="$id" catid="$catid" num="5" keywords="$rs[keywords]" order="id DESC"} {loop $data $r} {/loop} {/pc}
あなたが潔癖癥の友人で、PC を直接変更すると將來のアップグレードに影響するのではないかと心配している場(chǎng)合は、コードを個(gè)別に抽出できます。テンプレートに入れて関數(shù)として使用します。コードは次のとおりです:
コードは次のとおりです:
<?php /** * 內(nèi)容模型 - 相關(guān)文章標(biāo)簽(修正排序異常問題) * @param $data */ function mk1_content_tag_relation($data) { $db = pc_base::load_model('content_model'); $catid = intval($data['catid']); $siteids = getcache('category_content','commons'); if(!$siteids[$catid]) return false; $siteid = $siteids[$catid]; $category = getcache('category_content_'.$siteid,'commons'); if(empty($category)) return false; if($category[$catid]['type']!=0) return false; $db->set_model($category[$catid]['modelid']); $order = $data['order']; $sql = "`status`=99"; $limit = $data['id'] ? $data['limit']+1 : $data['limit']; if($data['relation']) { $relations = explode('|',trim($data['relation'],'|')); $relations = array_diff($relations, array(null)); $relations = implode(',',$relations); $sql = " `id` IN ($relations)"; $key_array = $db->select($sql, '*', $limit, $order,'','id'); } elseif($data['keywords']) { $keywords = str_replace('%', '',$data['keywords']); $keywords_arr = explode(' ',$keywords); $key_array = array(); $number = 0; $i =1; foreach ($keywords_arr as $_k) { $sql2 = $sql." AND `keywords` LIKE '%$_k%'".(isset($data['id']) && intval($data['id']) ? " AND `id` != '".abs(intval($data['id']))."'" : ''); $r = $db->select($sql2, '*', $limit, $order,'','id'); $number += count($r); foreach ($r as $id=>$v) { if($i<= $data['limit'] && !in_array($id, $key_array)) $key_array[$id] = $v; $i++; } if($data['limit']<$number) break; } } if($data['id']) unset($key_array[$data['id']]); return $key_array; } ?>
テンプレートでは、次の PHP コードを使用して取得します。
コードは次のとおりです:
{php $data = mk1_content_tag_relation(array('relation'=>$relation,'id'=>$id,'catid'=>$catid,'keywords'=>$rs['keywords'],'order'=>'id DESC','limit'=>'4')); } {loop $data $r} {/loop}
実は、これは小さな問題です。將來的に PC を修正する必要があります。上記の方法は、心配している Web マスターの友人に提供されます。
推奨チュートリアル: 「PHP ビデオ チュートリアル 」
以上がphpcms関連記事の順番が変わらない場(chǎng)合はどうすればよいですか?の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語 Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國(guó)語版
中國(guó)語版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)