- 获取企业会员信息:通过织梦的标签获取当前登录企业会员的资料。
- 调用企业发布的文章/产品信息:在获取到企业会员信息的基础上,进一步调用该企业发布的特定内容(如文章、产品等)。
下面我将分步详细讲解,并提供最常用和最实用的代码示例。

(图片来源网络,侵删)
第一步:理解核心标签
织梦提供了强大的标签系统来调用会员相关信息,核心标签是 {dede:arclist} 和 {dede:sql},但针对会员信息,{dede:global} 和 {dede:field} 结合会员登录判断会更常用。
{dede:global name='cfg_member'}...{/dede:global}: 用于判断会员是否登录,并获取一些全局会员变量。{dede:field}: 用于在会员中心页面(如company/index.php)中直接调用当前会员的信息字段。{dede:sql}: 强大的SQL查询标签,可以灵活地从数据库中提取任何你想要的数据,包括企业信息。
第二步:调用当前登录企业会员的基本信息
这是最基础也是最常见的需求,通常在企业会员中心首页 (/member/company/index.php) 或其他需要展示企业资料的页面使用。
假设你想在页面上显示企业的“公司名称”、“公司简介”、“联系电话”和“公司Logo”。
代码示例:

(图片来源网络,侵删)
{dede:global name='cfg_member' runphp='yes'}
if(@me != ''){
// 会员已登录,获取当前会员的ID
$mid = @me;
// 查询会员信息表,获取企业资料
$row = $GLOBALS['dsql']->GetOne("SELECT * FROM `dede_member_company` WHERE `mid` = $mid");
// 如果查询到企业信息,则输出
if(is_array($row)){
@me = "
<h2>" . $row['companyname'] . "</h2>
<p><strong>公司简介:</strong>" . $row['introduce'] . "</p>
<p><strong>联系电话:</strong>" . $row['tel'] . "</p>
<img src='" . $row['logo'] . "' alt='公司Logo' />
";
} else {
@me = "<p>您还未完善企业信息!</p>";
}
} else {
// 会员未登录
@me = "<p>请先登录!</p>";
}
{/dede:global}
{dede:global name='cfg_member' /}
代码解释:
{dede:global name='cfg_member' runphp='yes'}:runphp='yes'允许我们在标签内执行PHP代码。cfg_member会返回当前登录会员的mid(会员ID)。$mid = @me;: 获取会员ID。$GLOBALS['dsql']->GetOne(...): 使用织梦的全局数据库对象dsql执行一条SQL查询,从dede_member_company表中查找mid对应的记录。if(is_array($row)): 判断查询结果是否存在。@me = "...": 将拼接好的HTML字符串赋值给@me,标签{dede:global}最终会输出这个值。dede_member_company表字段:这个表是存储企业会员额外信息的核心表,常见字段包括:companyname: 公司名称introduce: 公司简介tel: 联系电话linkman: 联系人address: 公司地址logo: 公司Logo地址business: 主营业务- 等等。
第三步:调用当前企业发布的文章或产品
在展示企业信息的同时,我们通常还需要展示该企业发布的动态、新闻或产品,这时,我们需要将企业会员ID作为筛选条件。
场景1:在会员中心调用该企业发布的文章
假设文章模型ID为1,并且文章表中有一个 mid 字段(默认就有,关联会员ID)。
使用 {dede:arclist} 标签 (推荐)
{dede:arclist} 是调用文章列表最常用的标签,它支持按 mid 筛选。
<h3>我发布的文章</h3>
<ul>
{dede:arclist row='10' titlelen='30' orderby='pubdate' mid='~cfg_member~'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:arclist}
</ul>
代码解释:
mid='~cfg_member~': 这是关键!~cfg_member~是织梦的一个特殊用法,它会自动替换为当前登录会员的mid,这样就能确保只调用当前企业自己的文章。row='10': 显示10条记录,len='30'`: 标题长度限制为30个字符。orderby='pubdate': 按发布时间排序。[field:arcurl/]: 文章链接。[field:title/]: 文章标题。[field:pubdate/]: 发布时间,并用function进行格式化。
使用 {dede:sql} 标签 (更灵活)
{dede:arclist} 无法满足复杂需求(比如需要关联其他表),可以使用 {dede:sql}。
<h3>我发布的文章 (SQL调用)</h3>
<ul>
{dede:sql sql="SELECT a.id, a.title, a.pubdate FROM dede_archives a WHERE a.mid=~cfg_member~ AND a.arctypeid=1 ORDER BY a.pubdate DESC LIMIT 10"}
<li>
<a href='/plus/view.php?aid=[id]'>[title]</a>
<span>[pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:sql}
</ul>
代码解释:
sql="...": 直接编写SQL语句。a.mid=~cfg_member~: 同样,~cfg_member~会被替换为当前会员ID。a.arctypeid=1: 可选,指定调用某个栏目ID下的文章。[id]和[title]: 在{dede:sql}中,直接使用SQL查询出的字段名作为标签。
第四步:在网站前台(非会员中心)展示某个企业信息
有时,我们希望在网站的某个页面(如“优秀企业展示”)展示特定企业的信息,这时,我们需要通过某种方式(如URL参数)来指定要查看的企业。
步骤:
- 创建模板文件:
company_show.htm。 - 创建页面:在后台“频道模型” -> “内容管理”中,创建一个“企业展示”页面,关联
company_show.htm模板,并设置其文件名为company.php。 - 修改模板:在
company_show.htm中,通过URL参数获取企业ID,然后调用信息。
company_show.htm 模板代码:
{dede:php}
// 获取URL中的mid参数,company.php?mid=10
$mid = isset($_GET['mid']) ? (int)$_GET['mid'] : 0;
if($mid > 0){
// 查询企业信息
$row = $GLOBALS['dsql']->GetOne("SELECT * FROM `dede_member_company` WHERE `mid` = $mid");
// 查询该企业发布的文章列表
$arcList = $GLOBALS['dsql']->GetOne("SELECT * FROM `dede_archives` WHERE `mid` = $mid ORDER BY `pubdate` DESC");
// 将查询到的数据赋值给环境变量,以便在模板中使用
$GLOBALS['fields'] = $row;
} else {
$GLOBALS['fields'] = array('companyname' => '未知企业', 'introduce' => '未找到该企业信息。');
}
{/dede:php}
<h1>企业名称:{dede:field.name/}</h1>
<p><strong>公司简介:</strong>{dede:field.introduce/}</p>
<p><strong>联系电话:</strong>{dede:field.tel/}</p>
<img src="{dede:field.logo/}" alt="{dede:field.name/}" style="max-width: 200px;">
<hr>
<h2>该企业发布的最新文章</h2>
<ul>
{dede:arclist row='5' mid='~fields.mid~' titlelen='30'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:arclist}
</ul>
代码解释:
{dede:php}...{/dede:php}: 在模板中直接执行PHP代码。$mid = isset($_GET['mid']) ? (int)$_GET['mid'] : 0;: 安全地从URL获取mid参数。$GLOBALS['fields'] = $row;: 将查询到的企业信息存入一个全局变量fields中。{dede:field.name/}: 在模板中调用fields数组里的值,注意,这里不需要写fields.,织梦会自动在全局变量中查找。{dede:arclist mid='~fields.mid~'}: 在调用文章列表时,我们使用~fields.mid~来获取刚才PHP查询到的企业ID,而不是当前登录会员的ID。
总结与注意事项
| 需求场景 | 核心标签/方法 | 关键点 |
|---|---|---|
| 在会员中心调用当前企业信息 | {dede:global} + runphp='yes' 或直接在PHP页面用 $dsql |
查询 dede_member_company 表,条件为 mid = 当前会员ID |
| 在会员中心调用当前企业发布的文章 | {dede:arclist} |
使用 mid='~cfg_member~' 参数 |
| 在前台展示指定企业信息 | {dede:php} + {dede:field} |
通过URL传递 mid,在PHP中查询并赋值给模板变量 |
| 复杂查询(如关联多表) | {dede:sql} |
编写自定义SQL语句,注意数据表前缀(默认为 dede_) |
重要注意事项:
- 数据表前缀:如果你的数据库表前缀不是
dede_,请将所有代码中的dede_替换为你自己的前缀。 - 字段名:请确保你的
dede_member_company表中包含你所使用的字段名,否则会报错。 - 安全:在处理URL参数时,始终进行类型转换(如
(int)$_GET['mid'])或过滤,防止SQL注入。 - 权限:确保调用企业信息的页面逻辑正确,比如企业A不能看到企业B的未公开信息。
希望这份详细的指南能帮助你成功地在织梦CMS中调用企业信息!
