如何在DedeCMS中调用列表页和文章页下的图集中的所有图片?
- 行业动态
- 2024-10-06
- 1
在dede列表页及文章页中,调用图集里的所有图片可以通过以下代码实现:,,“ php,{dede:field name='body' function='GetImageUrl(@me)'/},“
在DedeCMS(织梦内容管理系统)中,调用列表页及文章页下的图集中的所有图片可以通过编写特定的PHP函数和标签来实现,以下是详细步骤和代码示例:
列表页下调用图集里的所有图片
1、解析文章图片集:
“`php
function getAllImg($typeid){
global $dsql;
$sql_arc = "SELECT imgurls FROMidea_addonimages where typeid=".$typeid." order by aid asc limit 1";
$row = $dsql>GetOne($sql_arc);
$arr = explode(‘{dede:img’,$row[‘imgurls’]);
unset($arr[‘0’]);
$pic = array();
for($i = 1; $i<=count($arr);$i++){
$str = substr($arr[$i],0,strpos($arr[$i],’}’));
$arr_small = explode(‘ ‘,$str);
unset($arr_small[‘0’]);
for($j=1;$j<=count($arr_small);$j++){
$name =substr($arr_small[$j],0,strpos($arr_small[$j],’=’));
$val = $arr_small[$j];
$pic[$i][$name] = trim(strstr($val,"’"),"’");
}
$begin = strpos($arr[$i],"}")+1;
$over = strpos($arr[$i],"{")$begin;
$img = substr($arr[$i],$begin,$over);
$pic[$i][‘img’]=trim($img);
}
return $pic;
}
“`
2、生成HTML列表:
“`php
function getArtImg($id){
$pic = getAllImg($id);
$Div = "";
for($i=1;$i<=count($pic);$i++){
$Div .="<li>
//列表页用 arcurl
<a href="".$pic[$i][‘arcurl’]."" title="".$pic[$i][‘text’]."">
<img src="".$pic[$i][‘ddimg’]."" width="150" alt="".$pic[$i][‘text’]."" />
</a><h5>".$pic[$i][‘text’]."</h5>
</li>";
}
return $Div;
}
“`
3、在列表模板中使用标签和函数:
“`html
{dede:field.id function="getArtImg(@me)"/}
“`
文章页下调用图集里的所有图片
1、解析文章图片集:
“`php
function getAllImg($aid){
global $dsql;
$sql_arc = "SELECT imgurls FROMidea_addonimages where aid=".$aid." ";
$row = $dsql>GetOne($sql_arc);
$arr = explode(‘{dede:img’,$row[‘imgurls’]);
unset($arr[‘0’]);
$pic = array();
for($i = 1; $i<=count($arr);$i++){
$str = substr($arr[$i],0,strpos($arr[$i],’}’));
$arr_small = explode(‘ ‘,$str);
unset($arr_small[‘0’]);
for($j=1;$j<=count($arr_small);$j++){
$name =substr($arr_small[$j],0,strpos($arr_small[$j],’=’));
$val = $arr_small[$j];
$pic[$i][$name] = trim(strstr($val,"’"),"’");
}
$begin = strpos($arr[$i],"}")+1;
$over = strpos($arr[$i],"{")$begin;
$img = substr($arr[$i],$begin,$over);
$pic[$i][‘img’]=trim($img);
}
return $pic;
}
“`
2、生成HTML列表:
“`php
function getArtImg($id){
$pic = getAllImg($id);
$Div = "";
for($i=1;$i<=count($pic);$i++){
$Div .="<li>
//列表页用 img
<a href="".$pic[$i][‘img’]."" title="".$pic[$i][‘text’]."">
<img src="".$pic[$i][‘ddimg’]."" width="150" alt="".$pic[$i][‘text’]."" />
</a><h5>".$pic[$i][‘text’]."</h5>
</li>";
}
return $Div;
}
“`
相关问答FAQs
1. 如何在DEDECMS首页调用图片集里的多张图片?
在DEDECMS的首页调用图片集里的多张图片,可以按照以下步骤操作:
1、找到并打开include/common.inc.php文件。
2、将以下代码粘贴到文件末尾:
“`php
function Getimg($aid,$imgwith,$imgheight)
{
global $dsql;
$imgurls = ”;
$row =$dsql>getone( "select imgurls from dede_addonimages where aid=’$aid’ ");
$imgurls= $row[‘imgurls’];//获取字段数据
preg_match_all("/}.+jpg/",$imgurls,$matches);//取出符合条件的
$new_arr=array_unique($matches[0]);//去除数组中重复的值
$pic_num1="
";
foreach($new_arr as $key){
$pic_list.="
";
}
$pic_end="
";
return $pic_num1.$pic_list.$pic_end;//返回结果
}
“`
3、在首页模板中使用以下标签进行调用:
“`html
[field:id function="Getimg(@me,80,80,7)" /]
“`
这里的80和80是图片的宽度和高度,7是要显示的图片数量,如果有多个图片集,可以加上图片集的类目id。
2. 如何在文章内页调用图片集多张图片?
在DEDECMS的文章内页调用图片集多张图片,可以按照以下步骤操作:
1、找到并打开include/common.func.php文件。
2、将以下代码粘贴到文件末尾:
“`php
function Getimgs($aid, $num = 0){
global $dsql;
$imgurls = ”;
$row =$dsql>getone( "Select imgurls Fromdede_addonimages where aid=’$aid’ ");
$imgurls = $row[‘imgurls’];//获取字段数据
preg_match_all("/}.+jpg/",$imgurls,$matches);//取出符合条件的
$new_arr=array_unique($matches[0]);//去除数组中重复的值
$pic_list = "";
foreach($new_arr as $key){
$pic_list .= "<img src=’".$key."’ alt=” />";
}
return $pic_list;//返回结果
}
“`
3、在文章内页模板中使用以下标签进行调用:
“`html
{dede:field.id function="Getimgs(@me)" /}
“`
DedeCMS(织梦CMS)列表页及文章页调用图集图片方法详解
准备工作
1、安装DedeCMS:确保您的网站已安装并配置好DedeCMS。
2、上传图集图片:将图集图片上传到网站的服务器上,通常放置在网站根目录下的“uploads”文件夹中。
调用图集图片步骤
1. 列表页调用图集图片
代码示例:
<?php // 引入DedeCMS函数库 require_once(DEDEINC.'/dede.php'); // 获取图集ID $albumId = 123; // 假设图集ID为123 // 获取图集图片列表 $query = "SELECT arc.id, arc.title, arc.litpic FROM#@__archives arc WHERE arc.mid = '$albumId'"; $dsql>SetQuery($query); $dsql>Execute(); while ($row = $dsql>GetArray()) { // 输出图集图片 echo '<img src="' . $row['litpic'] . '" alt="' . $row['title'] . '" />'; } ?>
说明:
#@$__archives 是图集内容存储的表。
mid 是图集所属的模型ID。
litpic 是存储图片链接的字段。
2. 文章页调用图集图片
代码示例:
<?php // 引入DedeCMS函数库 require_once(DEDEINC.'/dede.php'); // 获取文章ID $articleId = 123; // 假设文章ID为123 // 获取文章中包含的图集图片 $query = "SELECT * FROM#@__arctype WHERE id = (SELECT typeid FROM#@__archives WHERE id = '$articleId')"; $dsql>SetQuery($query); $dsql>Execute(); $row = $dsql>GetArray(); $albumId = $row['mid']; // 获取图集ID // 获取图集图片列表 $query = "SELECT arc.id, arc.title, arc.litpic FROM#@__archives arc WHERE arc.mid = '$albumId'"; $dsql>SetQuery($query); $dsql>Execute(); while ($row = $dsql>GetArray()) { // 输出图集图片 echo '<img src="' . $row['litpic'] . '" alt="' . $row['title'] . '" />'; } ?>
说明:
#@$__arctype 是文章分类存储的表。
typeid 是文章所属的分类ID,这里用来获取关联的图集ID。
注意事项
确保您的数据库配置正确,能够连接到DedeCMS的数据库。
图集图片的路径需要正确,通常是uploads 文件夹下的路径。
上述代码中的表名和字段名可能因DedeCMS版本不同而有所差异,请根据实际情况调整。
通过以上步骤,您可以在DedeCMS的列表页和文章页中成功调用图集里的所有图片。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/115862.html