当前位置:首页 > 行业动态 > 正文

如何在DedeCMS中调用列表页和文章页下的图集中的所有图片?

在dede列表页及文章页中,调用图集里的所有图片可以通过以下代码实现:,,“ php,{dede:field name='body' function='GetImageUrl(@me)'/},“

在DedeCMS(织梦内容管理系统)中,调用列表页及文章页下的图集中的所有图片可以通过编写特定的PHP函数和标签来实现,以下是详细步骤和代码示例:

如何在DedeCMS中调用列表页和文章页下的图集中的所有图片?  第1张

列表页下调用图集里的所有图片

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的列表页和文章页中成功调用图集里的所有图片。

0