Empire CMS でクロステーブル クエリ関連リンクを実装する最も実用的な方法
この記事の例では、Imperial CMS でのクロステーブル クエリ関連リンクの実装方法について説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです:
公式関連リンクは柔軟ではなく、スタイルを任意に変更できず、表をまたぐことができません。多くの人は表をまたいで関連リンクを作成したいと考えています。たとえば、ニュースと情報には複数の記事があります「北京」の場合、同じキーワードを持つこれらの記事をどのように呼び出すのでしょうか?この目的のためにカスタム関数を作成しました。
「Empire cms チュートリアル 」を学習することをお勧めします
このカテゴリでは、狭い範囲の呼び出しが使用できます。もう少し広い範囲であれば同じテーブルを呼び出すことができます 記事が大きければ指定したテーブルの記事を呼び出すことができます 呼び出す記事の数を選択できます 実際には、記事数を指定するなどのアップグレードも可能です特定のテーブルを呼び出すための記事、そのテーブルの順序など 関数にスタイルはありません。少しは理解できます。コードは自分で修正できます。特に難しいことではありません。この関数をアップグレードした人がいれば、みんなと共有できます。
コードは次のとおりです:
<?php function user_OtherLink($tbname,$num,$ck){ global $navinfor,$empire,$dbtbpre,$class_r ; $ck=(int)$ck ; if($ck==1||$ck==2){ $tbname=$class_r[$navinfor['classid']]['tbname'] ; } $num= $num=='' ? 5 : $num ; //缺省获取数量为5 $tag_all=explode(',',$navinfor['infotags']); $tbname_num=explode(',',$tbname) ; $eq_num=ceil($num/count($tag_all)); for($i=0;$i<count($tag_all);$i++){ $r_1_1 =$empire->fetch1("select tagid,tagname,num,isgood,cid from {$dbtbpre}enewstags where tagname='". $tag_all[$i]."' order by tagid limit 1") ; $tag_id[$i]=$r_1_1['tagid'] ; //tag的ID $tag_num[$i]=$r_1_1['num'] ; //tag下的文章数量 if($tag_num[$i]>=$eq_num){//如果TAG下的文章数量比平均的数量大或者等于,那么TAG的文章数量取平均值 $tag_num[$i] = $eq_num ;//重新赋值 }else{//如果TAG下的文章小于平均值,那么TAG取原有的文章数量。同时重新赋值平均值。 $eg_tag= $eq_num-$tag_num[$i] ; $eq_num += $eg_tag ; } //比如说有3个TAG,每个TAG下有4篇文章,现在指定要显示10篇文章,那么每个TAG要拿出4篇,共有12篇文章 //3个TAG,每个TAG下有3篇文章,现在指定要显示10篇文章,那么每个TAG要拿出3篇文章,共有9篇文章 //3个TAG,A有2篇文章,B有5篇文章,C有3篇文章,现在要显示10篇文章,那么A拿出2篇文章,B拿出5篇文章,C拿出3篇文章, 共有10篇文章 //如果 A、B、C中除了当前文章,还有相同的文章,那么会扣除重复的那篇文章,只取一次。所以指定的数量会有偏差 for($i_n=0;$i_n<count($tbname_num);$i_n++){ $sql=$empire->query("select tid,classid,id,mid from {$dbtbpre}enewstagsdata where tagid='".$tag_id[$i]."' order by classid "); $ri=1 ; while($r=$empire->fetch($sql)) { $tbname_all[$r['tid']]=$class_r[$r['classid']]['tbname'] ; if($tbname_all[$r['tid']]==$tbname_num[$i_n] && $ri <= $tag_num[$i] && $navinfor['classid']!=$r['classid'] && $navinfor['id']!=$r['id']){ if($ck==1&&$navinfor['classid']==$r['classid']){ $tbname_all_r[$r['tid']]=$class_r[$r['classid']]['tbname'] ; $classid_id[$r['tid']]=$r['classid'] . '_' . $r['id'] ; $classid_all[$r['tid']]=$r['classid'] ; $id_all[$r['tid']][$r['classid']]=$r['id'] ; }elseif($ck==2&&$class_r[$navinfor['classid']]['tbname']==$class_r[$r['classid']]['tbname']){ $tbname_all_r[$r['tid']]=$class_r[$r['classid']]['tbname'] ; $classid_id[$r['tid']]=$r['classid'] . '_' . $r['id'] ; $classid_all[$r['tid']]=$r['classid'] ; $id_all[$r['tid']][$r['classid']]=$r['id'] ; }elseif($ck==3){ $tbname_all_r[$r['tid']]=$class_r[$r['classid']]['tbname'] ; $classid_id[$r['tid']]=$r['classid'] . '_' . $r['id'] ; $classid_all[$r['tid']]=$r['classid'] ; $id_all[$r['tid']][$r['classid']]=$r['id'] ; } $ri++; } } } } $classid_id_x=array_unique($classid_id);//去除重复的值 //去除重复的值,不同的TAG会有相同的文章。所以去除重复的值。比如A篇文章里面都有"北京","奥运",两个关键词, B篇文章里面也有"北京","奥运"在不去除重复的情况下,A篇的相关链接会出现两次B文章。所以必须去除其中一个。 arsort($classid_id_x); //按键名排列,倒序 $tid_tid=array_keys($classid_id_x) ;//取出键名重新排列,键名即为TAG的ID:tid shuffle($tid_tid);//顺序打乱,重新排 $tid_tid_num=count($tid_tid) ; if($num<$tid_tid_num) $tid_tid_num=$num+1 ;//由于去除了本文章,所以再加一条弥补 for($i_tid=0;$i_tid<$tid_tid_num;$i_tid++){ $tid=$tid_tid[$i_tid]; $classid=$classid_all[$tid]; $id=$id_all[$tid][$classid]; if($id==$navinfor['id']) continue ; //如果是本文章,相关链接里面就不用再放了。 $tbname=$tbname_all_r[$tid]; $r_1_2 =$empire->fetch1("select title,smalltext,titleurl,dp_jt,dp_dwz from {$dbtbpre}ecms_$tbname where id='".$id."' order by newstime limit 1") ; ////////显示样式在这修改 echo $r_1_2['title'].' ' ; //////// } } ?> /** <?php OtherLink('news,info',7,3) ; ?> **/
この記事がすべての人に役立つことを願っています Empire CMS Web サイト ビルダーが役に立ちます。
以上がEmpire CMS でクロステーブル クエリ関連リンクを実装する最も実用的な方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

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

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

ホットトピック









Empire CMS のモバイル設定は、「テンプレート管理」モジュールの「モバイル テンプレート」にあります。具体的な手順には、テンプレートの有効化、アプリケーション チャネルの選択、テンプレート コンテンツの編集、設定の保存が含まれます。

Empire CMS サイトマップは、config.inc.php ファイルにアクセスし、dositemap 設定を確認することで見つけることができます。 「オン」に設定すると、サイトマップが有効になります。サイトマップのパスは sitemapurl 設定にあり、ブラウザ経由でアクセスするか、FTP 経由でダウンロードできます。

Empire CMS テンプレート ファイルの理想的な場所は /e/template/default/skin/default/ です。次に、/e/data/skins/ および /e/skin/ に配置することもできます。フォルダー構造の維持、ファイルのアクセス許可の設定、および定期的なバックアップ。

Imperial CMS データベース構成ファイルは、Web サイトのルート ディレクトリ e/config/db.inc.php にあり、次の構成情報が含まれています。 $dbhost: データベース サーバー アドレス $dbuser: データベース ユーザー名 $dbpass: データベース パスワード $dbname:データベース名 $dbport :データベースポート $dbcharset:データベース文字セット

Empire CMS テンプレートのダウンロード場所: 公式テンプレートのダウンロード: https://www.phome.net/template/ サードパーティのテンプレート Web サイト: https://www.dedecms.com/diy/https://www.0978.com。 cn /https://www.jiaocheng.com/インストール方法: テンプレートをダウンロード テンプレートを解凍 テンプレートをアップロード テンプレートを選択

Empire CMS の自動公開インターフェイスは /e/api/web/postinfo.php にあります。使用手順は次のとおりです。/e/api/web/postinfo.php アドレスにアクセスし、HTTP POST を使用して記事のタイトルを送信します。列 ID、カテゴリ ID、著者および記事 コンテンツおよびその他のデータ インターフェイスは、公開結果と記事 ID を含む JSON 形式の応答を返します。

Imperial CMS Baidu アクティブ プッシュ プラグインは、ルート ディレクトリ /e/api/baidu/push.php にあります。具体的な設定手順は次のとおりです。 1. プラグイン ファイルを指定されたパスにアップロードします。 2. Imperial CMS バックグラウンドで、プッシュ アドレス、API キー、プッシュ間隔などの「Baidu アクティブ プッシュ」オプションを設定します。 3. Baidu プッシュ情報を取得します。プッシュ アドレス: https://data.zz.baidu.com/urls?site=YOUR_SITE&token=YOUR_API_KEY、API キー: Baidu 検索リソース プラットフォームにログインして取得します。 4. API キーを定期的に更新し、適切なプッシュ間隔を設定します。

はい、Empire CMS は無料のオープンソースのコンテンツ管理システム (CMS) です。機能が豊富で使いやすい軽量の CMS です。 Empire CMS は GNU General Public License (GPL) に基づいてライセンスされており、無料でダウンロード、インストール、使用できます。商用利用の場合は、広告管理、オンライン支払い、プレミアム テクニカル サポートなどの追加機能とサポートを提供する有料バージョンが提供されます。
