ホームページ >php教程 >php手册 >dedecms での一般的な問題修正方法のまとめ

dedecms での一般的な問題修正方法のまとめ

WBOY
WBOYオリジナル
2016-06-13 12:32:03839ブラウズ

初心者向けのよくある質問。この投稿は正式バージョン 3.1 で私が以前に投稿したもので、いくつかの問題は修正されていますが、修正や学習の参考として使用できます。
辛抱強く読んでください。多くの問題があります。なぜ質問を投稿し続けるのでしょうか?
さらに、これを読んだ後、自分のバックエンドにアクセスして、特に arclist タグのパラメーターの説明を読んでください。問題についてもっと考えて、タグを試してみてください。学習できなければ、誰も助けてくれません。
多くのタグについては、システムのを参照してください。デフォルトのテンプレートとテンプレート領域。各タグの使用法を理解するには、タグの詳細を参照してください。
以下に投稿がある場合は...DEDE の叏江冷凍? をありがとうございます。
最新バージョン 3.1 lit は、第 1 レベルの列としての最終リストです。その下位列の記事の変更をリストに表示します。
include/inc_arclist_view.php
80 行目:
$addSql .= " そして (typeid ='".$this->TypeID." ' または typeid2='".$this->TypeID."') ";

に変更しました// 上の問題を解決するために追加されました-level リストは下位レベルのリストを呼び出すことはできません
$ssid = TypeGetSunID($this->TypeID,$this->dsql)
$ssid2 = str_replace('typeid','typeid2',$ ssid);
//追加された
を終了します $ addSql .= " And (typeid='".$this->TypeID."' または ".$ssid." または typeid2='".$this ->TypeID."' または ".$ssid2.") ";//この文も修正されました
上記の部分はページングの問題を解決するために使用されます
include/inc/inc_fun_SpGetArcList.php
70 行目から:
if($ridnum>1){
$tpsql = "";
for($i=0;$i if ($tpsql=="") $tpsql .= " And (".TypeGetSunID( $reids[$i],$dsql,'arc');
else $tpsql .= " Or ".TypeGetSunID($reids [$i],$dsql,'arc');
}
$tpsql .= ") ";
$orwhere .= $tpsql;
}
else{
$orwhere .= " And ".TypeGetSunID( $typeid,$dsql,'arc');
}
次のように変更されました:
if($ridnum>1) {
$tpsql = "";
for($i=0 ;$i<$ridnum;$i ){
if($tpsql=="") {
// 変更を開始記事の 2 番目の列は、問題を呼び出しています
$ssid = TypeGetSunID($reids[$i ],$dsql,'arc');
$ssid2 = str_replace('typeid','typeid2',$ssid) ;
$tpsql .= " And (".$ssid." または ".$ ssid2;}
else {
$tpsql .= " または ".TypeGetSunID($reids[$i],$ dsql,'arc');
$tpsql .= str_replace('typeid',' typeid2',$tpsql);}
}
$tpsql .= ") "; = $tpsql;
unset($tpsql);
else {
$ssid = TypeGetSunID($typeid,$dsql,'arc'); typeid','typeid2',$ssid);
$orwhere .= " And ( ".$ssid." または ".$ssid2.") ";// 記事の 2 番目の列の変更を終了します
を発行します }
この部分は、下位レベルのコラム記事リストを呼び出す問題を解決するために使用されます
私が書いた置き換えコードは非常に荒いので、一時的に使用し、正式な解決策が出てから置き換えることができます
include/inc_arclist_view.php 内で、もう 1 つ変更する必要があります:
//単一列のドキュメント リストを取得します

//カテゴリ ID の条件
$orwhere .= " And (dede_archives .typeid='".$this->TypeID."' または dede_archives.typeid2='".$this->TypeID."') ";
次のように変更します:
//カテゴリ ID の条件
$ssid = TypeGetSunID($ this->TypeID,$this->dsql);
$orwhere .= " And (dede_archives.typeid='".$this->TypeID."' または".$ssid." または dede_archives.typeid2='".$this->TypeID."') ";
それ以外の場合、80 行目は Select count(*) であるため、ページが存在します。
その列パス {cmspath} について質問があります。
まず、バックグラウンドで「システム構成パラメーター」を開くと、2 番目の項目が表示されます。 DedeCms インストール ディレクトリ:
これは {cmspath} によって解析されたパスです。
beta2 が lit にアップグレードされる場合は、手動で列の属性を変更し、{cmspath} を削除する必要があります。または、セットアップとアップグレードを実行してから行うこともできます。以前の B2 のすべてのファイルを lit
のすべてのファイルに置き換えます。これにより、{cmspath} が正常に動作できるようになります。 これを Web サイトのパスに解析します
パラメーター {cmspath} を使用しない場合は、次のように変更できます。
に従って SQL を実行します: update dede_arctype set typedir=replace(typeidr,'{cmspath}','');
データベース内の {cmspath} を削除します
次に $ を見つけるようにファイル category_add.php を変更しますtrue_typedir = str_replace("{cmspath}",$cfg_cmspath,$typedir);

$true_typedir = str_replace ("",$cfg_cmspath,$typedir);
大丈夫です
[フィールド] :description /]このタグの単語数を制限するにはどうすればよいですか?
[field:description function='cn_substr(@me,80)'/]
dede のすべてのタグは、この方法での関数の使用をサポートしています。
バージョン 3.1 でフレンドリーリンクを追加してもホームページに表示されない問題について
主な原因は、BLT が書き込み時にテーブル dede_flink の ischeck を変更するためです。
3.01 では、ischeck=1 はホームページ リンクを意味します。2 は内部ページ リンクを意味しますが、3.1 はその逆です。
これを変更する最も簡単な方法は、inc_fun_SpGetFriendLink.php を開くことです。
13 行目を見つけます。
コード:
$wsql = " where ischeck=1 ";
[クリップボードにコピー]
1 を 2 に変更するだけです。
11.11 更新 その後、inc_fun_SpGetFriendLink.php ファイルへの呼び出しはキャンセルされました。
したがって、inc_arcpart_view.php
行 410 付近
コード:
$wsql = " where ischeck=1 "
if($type=="p_w_picpath") $ を開くだけです。 wsql .= " そしてロゴ<>'' ";
else if($type=="text") $wsql .= " そしてロゴ='' ";
else $wsql .= "";
[クリップボードにコピー]
同様にischeck=1の箇所を2に変更
3.1 LIT版の広告名変更後の無効化の解決策
http://bbs.dedecms.com/read .php?tid=7135
4階の返信を参照
dedeの新バージョンで記事概要をリストから削除する方法
[field:info/]を削除
修正についてバックグラウンドのログイン確認コード スタイルに変更します
http://bbs.dedecms.com/read.php?tid=6244
記事の説明に表示される英語の長さが表の幅より大きい場合、問題を引き起こす醜い
[field:textlink /]

[field:title function='cn_substr(@me,30)' に変更されました/]
新しいチャネル モデルのチュートリアル
http://bbs.dedecms.com/read.php?tid=5972
dedecms はリスト ページの二重スタイルを実装します



{/dede:list}
[field:typelink /] [field:textlink /]Click:[field:click /]([field:stime /])

記事一覧(テンプレート list_article)にサムネイルを表示する機能を実装したい記事にサムネイルがある場合は、「サムネイルなし」画像を表示せずに記事一覧が直接表示されます。
dedecms の拡張は関数の形式になっています。これは、if 構造を追加すると大量のリソースが必要になるためです。
[field:picname function="GetMyPic('@me) ')"/ ]
inc_functions.php で関数を定義します
function GetMyPic($img)
{
if($img=="") return "";
else return " ";
}
この方法で処理します
この方法は少し不便かもしれません、しかし利点は、多くのリソースを消費したり、テンプレート構造に影響を与えたりすることなく拡張の目的を達成し、テンプレートとコードの真の分離を実現することです
画像をクリックすると次のページに移動します
include/inc_archives_view.php を開きます
444 行目あたりの左右で、
$this->Fields[$this->SplitPageField]=$this->Fields[$this->SplitPageField]; を見つけます。
コメントアウトして
$this->Fields[$this->SplitPageField]=$this->ClickPicNext($this->Fields[$this->SplitPageField]);
次に、最後に関数を追加します。最後の括弧内に注目してください。
//画像をリンクに置き換えます
//--------------- ------------
関数 ClickPicNext (&$body)
{
if($this->NowPage!=$this->TotalPage){
$lPage=$this->NowPage 1;
$body= preg_replace("/ //$body="". $body." ";
}else{
if($this->GetNext()){
$body=preg_replace("/<(img|IMG)( .*)(src|SRC)=["|'| ]{0,}((.*)>)/isU","< ;a href='".$this->GetNext()." '>"."${0}"."",$body);
//$body=" ".$body." ";
}
}
return $body;
}
記事内の画像を次の画像に自動的に置き換えます。ページへのリンクは、最後のページの場合、次の記事になります。
注: まず、前の記事と次の記事を変更する必要があります。
[dede3.1][変更方法] 前の記事と次の記事を別々に呼び出し、現在のサイト全体ではなく、記事が配置されている列に限定します。
http://bbs.dedecms.com/read.php?tid=5051
記事リストで、一部のタイトルが切り詰められていますが、マウスを置いたときにタイトルを完全に表示するにはどのようなコードを使用できますか。 ? ファイル名は?
{dede:arclist row=16 orderby=pubdatecol=1 typeid=3}
  • · [field:title function="cn_substr('@me',30)" /]

  • {/dede:arclist}
    方法about 記事名の前に記事列を表示しますか?
    {dede:arclist row=10 orderby=pubdate}
    ·[field:typelink/] [field:textlink/]
    /dede:arclist}
    生成された記事のファイル名に MD5 暗号化を追加できますか?
    これは典型的な退屈な要件です。
    include/inc_channel_unit_functions.php
    [フィールド] :writer /]なぜ役に立たないのですか
    inc_arcpart_view.php の lit バージョンは追加のテーブルを読み取りません
    includeincinc_fun_SpGetArcList.php の 120 行目を変更し、最後に arc.writer を追加します。
    もちろん、できます。導入したい場合は追加してください。 追加のテーブルの内容は次のとおりです:
    arc.writer、arc.source、arc.shorttitle、
    新しくインストールされた DEDECMS3.0.1、初めてログインしたとき、私のパスワードが間違っていると言われました!
    dede_admin テーブルがある場合は、データがあるかどうかを確認してください。
    ユーザー名とパスワードに含まれていない記号が含まれていないかどうかを確認してください。
    一般に、サーバーがインストールの SQL インポートを完了できないため、ユーザー名が存在しないというメッセージが表示されることがあります。
    ユーザーを手動で追加しても問題ありません。
    可能です。また、データベース内のテーブル dede_admin を削除して再インストールします。
    リストページのページネーションについては、生成中にテーブルの変更が行われます。
    検索
    //静的ページング リストの取得
    でいくつかのページング情報を確認できます。次の行
    複数の列スタイルとシステムの基礎となるテンプレートの問題について
    Use arclist
    {dede:arclist
    typeid= '' row=''col='' titlelen=''
    infolen='' imgwidth='' imgheight='' listtype='' orderby=''Keyword=''}
    カスタム スタイル テンプレート ( InnerText) //ここで表示するスタイルを定義します。
    {/dede:arclist}
    他の列のテンプレートはシステムのデフォルトの {style}/list_article.htm を使用する必要はありません。
    カバー テンプレートまたはリストを手動で指定できます。例: {style}/list_class1.htm
    {style}/list_class2.htm
    など。これにより、dedecms を使用して、より多くのスタイルを作成できます。新しい Web サイトを構築する
    1. 2 つの新しいモデルを作成します
    ブック モデルと章モデル
    2. ファイル公開プログラムを書き換えます。現在、コンテンツ モデルを提供している cmsware と dede を関連付けます。はこれを行うことはできませんが、dede の自作チャネルによって提供されるファイル公開プログラム アイテムを有効に活用できます。これら 4 つのファイル (2 つのインターフェイスと 2 つのポストサブミット処理プログラム) を再インストールするだけです。
    3. Qidian 中国語 Web サイトのモデルを作成する場合は、会員ディレクトリに提出するプログラムを作成し、Plus で課金、ポイントカウントなどのビジネス モデルのプログラムを作成する必要があります。
    実際、dede は単なるコンテンツ公開フレームワークであり、提供されるバックグラウンド ツールは管理者のみが使用できますが、ユーザーは dede に精通している必要があります。
    プログラムが書ける方は挑戦してみるのも良いかもしれません。
    カスタム タグが常にテキストとして出力されるのはなぜですか?
    タグに ismake='yes' 属性を追加します
    画像 SEO についての考え、
    [field:title /]< + 上に移動プロンプトが表示されます。形式を指定せずに貼り付けます。
    ラベルの定義はどこに配置されますか?
    インクルード内の任意のファイル ***view.php がビューを制御します
    自動の問題についてページング
    自動ページングのサイズは 2 ~ 5 より前のみです
    3 は、各ページングが 3K であることを意味します。
    これは Dongyi とは異なります。Dongyi はバイト単位なので、2000 または 3000 を書き込めます。DEDE は K なので、2 または 3 しか書き込めません。私の間違いは、2000K と書いてしまったことです。申し訳ありません。
    これは、DEDE では 1 ページングが 2M まで許容されることを意味します。当然失敗
    ページネーションタイトルについて
    コンテンツ部分は次の形式にすることができます:
    ページタイトル 1#e#
    ページ 1 の内容