Dream Weaver CMS で列ピクチャを追加する方法: 1. 追加する列ピクチャ フィールドに「typeimg」という名前を付け、実行コードは「alter table dede_arctype add typeimg varchar(100)」です。 "catelog_add" .php" および "catelog_edit.php" ファイルの内容 3. チャネル タグを使用して列を呼び出し、現在の列の最上位の列イメージを取得します。
このチュートリアルの動作環境: Windows 10 システム、DedeCMS バージョン 5.7、Dell G3 コンピューター。
DreamWeaver cms に列の画像を追加するにはどうすればよいですか?
dedecms (Dreamweaver CMS) コードで列イメージを背景に追加する方法
インターネット上の方法は正しいですが、細部がうまく処理されていないため、多くの初心者は問題に遭遇するでしょう。次にまとめてみましょう。
最初のステップは、列イメージ フィールドを追加することです。ここではフィールドに typeimg という名前を付けます。バックグラウンドでコードを追加し、コードを実行できます。操作は次のとおりです:
"システム -> SQL コマンド ツール」、SQL ステートメントを挿入
alter table dede_arctype add typeimg varchar(100)
ステップ 2: バックグラウンド管理ファイル ディレクトリ (デフォルト: dede ディレクトリ) に入り、「catelog_add」の下のいくつかの場所を見つけます。 php」を変更します。
1. $queryTemplate を見つけます (約 65 行)
変更したコードは次のとおりです:
$queryTemplate = "INSERT INTO `#@__arctype`(reid,topid,sortrank,typename,typedir,isdefault,defaultname,issend,channeltype, tempindex,templist,temparticle,modname,namerule,namerule2,ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`content`,`smalltypes`,`typeimg`) VALUES('~reid~','~topid~','~rank~','~typename~','~typedir~','$isdefault','$defaultname','$issend','$channeltype', '$tempindex','$templist','$temparticle','default','$namerule','$namerule2','0','0','','','~typename~','0','','','0','0','0','','','~typeimg~')";
2. $in_query を見つけます (約 227 行)
全体を変更します$in_query
$in_query = "INSERT INTO `#@__arctype`(reid,topid,sortrank,typename,typedir,isdefault,defaultname,issend,channeltype, tempindex,templist,temparticle,modname,namerule,namerule2, ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`content`,`smalltypes`,`typeimg`) VALUES('$reid','$topid','$sortrank','$typename','$typedir','$isdefault','$defaultname','$issend','$channeltype', '$tempindex','$templist','$temparticle','default','$namerule','$namerule2', '$ispart','$corank','$description','$keywords','$seotitle','$moresite','$siteurl','$sitepath','$ishidden','$cross','$crossid','$content','$smalltypes','$typeimg')";
実は、これは難しいことではありません。初心者はコピーして貼り付けることができ、ベテランはステートメントに typeimg フィールドを追加するだけで自分で変更できます。
ステップ 3: 同様に、「catelog_edit.php」の下で $upquery を見つけます (約 38 行目)
コードを次のように変更します
$upquery = "UPDATE `#@__arctype` SET issend='$issend', sortrank='$sortrank', typename='$typename', typedir='$typedir', isdefault='$isdefault', defaultname='$defaultname', issend='$issend', ishidden='$ishidden', channeltype='$channeltype', tempindex='$tempindex', templist='$templist', temparticle='$temparticle', namerule='$namerule', namerule2='$namerule2', ispart='$ispart', corank='$corank', description='$description', keywords='$keywords', seotitle='$seotitle', moresite='$moresite', `cross`='$cross', `content`='$content', `crossid`='$crossid', `typeimg`='$typeimg', `smalltypes`='$smalltypes' $uptopsql WHERE id='$id' ";
ステップ 4: バックグラウンド管理ファイルのディレクトリに入ります (デフォルトは : dede ディレクトリ)/templets/ 「catalog_add.htm およびcatalog_edit.htm」ファイルの下に、次のコードを追加します。
<script language='javascript' src="js/main.js"></script>
catalog_add.htm 次のコードを追加します。
<!--加入栏目--> <tr> <td class="bline" height="26" style="padding-left:10px;">栏目图片:</td> <td class="bline"> <input type="text" name="typeimg" id="imgmm" style="width:300px" class="text" /> <input name="imgmm_bt" type="button" class="inputbut" value="浏览..." onclick="SelectImage('form1.imgmm','big')" /> </td> <input type="hidden" name="dede_addonfields" value="imgmm,img" /> </tr>
catalog_edit .htm 次のコードを追加します
<!--加入栏目--> <tr> <td class="bline" height="26" style="padding-left:10px;">栏目图片:</td> <td class="bline"> <input type="text" name="typeimg" id="imgmm" style="width:300px" class="text" value="<?php echo $myrow['typeimg']?>" /> <input name="imgmm_bt" type="button" class="inputbut" value="浏览..." onclick="SelectImage('form1.imgmm','big')" /> </td> <input type="hidden" name="dede_addonfields" value="imgmm,img" /> </tr>
注: これら 2 つのファイルのコードは異なるため、別々に追加する必要があります。
ステップ 5: チャネル タグを使用して列を呼び出す場合は、/include/taglib/channel.lib.php ファイルを変更し、次のコードを見つけて置き換える必要があります。
if($type=='top') { $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typeimg From `#@__arctype` WHERE reid=0 And ishidden<>1 order by sortrank asc limit 0, $line "; } else if($type=='son') { if($typeid==0) return ''; $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typeimg From `#@__arctype` WHERE reid='$typeid' And ishidden<>1 order by sortrank asc limit 0, $line "; } else if($type=='self') { if($reid==0) return ''; $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typeimg FROM `#@__arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line "; }
実際には、SQL ステートメントに typeimg フィールドが追加されます。
6 番目のステップは、
{dede:channel type='self' typeid='15' row='8' currentstyle="<li><a href='~typelink~' class='thisclass'>~typename~</a> </li>"}<li><a href='[field:typelink/]'>[field:typename/]</a> <img src='[field:typeimg/]' /></li>{/dede:channel}
を呼び出すことです。上記のコードはオンラインです。私が望むのは、この効果ではありません。現在の列の一番上の列の画像を取得する場合
2 つ使用しますこの問題を解決する方法:
テストしてみたところ、うまくいきました
最初の方法:
ファイルを変更します include/helpers/extend.helper.php
gettoptype 関数を見つけて、それに次のコードを追加しますコード。目的は列の画像を取得することです。
//增加栏目图片 $toptypeimg=$row['typeimg']; if($action="images") return $toptypeimg;
フロントエンド呼び出しメソッド:
<img src="{dede:field.typeid function=gettoptype(@me,images)/}">
この方法で呼び出すことができます。完璧! !
2 番目の方法:
include/common.func.php
ファイルを変更します。次のように、最後に関数を追加するだけです。
//获取顶级栏目的栏目图片 李国平更新于2021.3.11 function GetTopTypeimg($id) { global $dsql; $row = $dsql->GetOne("SELECT typeimg,topid FROM dede_arctype WHERE id= $id"); if ($row['topid'] == '0') { return $row['typeimg']; } else { $row1 = $dsql->GetOne("SELECT typeimg FROM dede_arctype WHERE id= $row[topid]"); return $row1['typeimg']; } }
フロントエンドの呼び出しメソッドは次のとおりです。 :
<img src="{dede:field name='typeid' function="GetTopTypeimg(@me)" /}">
これも呼び出せます。完璧! !
推奨学習: dedecms チュートリアル
以上がDreamweaver CMS で列の画像を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。