ICMS7模板制作及系统使用问题汇总1
官方手册:
https://www.icmsdev.com/doc/iCMS/modifiers.html 老
https://www.icmsdev.com/docs/ 新
icms_article表的值 提交时都会被转义 修改哪个文件能取消呢?
如: "
答:
iSecurity.class.php 144,147行
public static function escapeStr() {
if (is_array()) {
= array_map(array(__CLASS__,'escapeStr'), );
else{
= str_replace(array("\0","%00","\r"),'',);
= preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F]/','', );
//& => &
= preg_replace('/&(?!(#[0-9]+|[a-z]+);)/is', '&', );
//&#xA9 => ©
= preg_replace('/&#x([a-fA-F0-9]{2,4});/', '&#x\1',);
// = str_replace(array('\"',"\'","\\"), array('"',''','\'), );
= str_replace(array("%3C", '<'), '<', );
= str_replace(array("%3E", '>'), '>', );
// = str_replace(array('"',"'"), array('"','''), );
}
return ;
}}
icms7 文章列表页标题优化添加翻页号
据我说只没有直接的标签调用当前页面号,而列表页必定有很多页,不利于seo
答:
有关分页功能的文件
\iPHP\core\iPages.class.php
\iPHP\core\iPagination.class.php
目前没有预留直接可用的代码
若不改动的情况使用
<!--{if $_GET.page}->第<!--{$_GET.page}-->页<!--{/if}->
可以在列表输出当前页码
列表页如何调用多图字段 多图字段如何转数组 如何调用值
<!--{iCMS:article:list loop="true"}-->
<!--{"$url_json=json_decode($article_list.morepic, true)"}-->
<!--{foreach key=key value=alist from="$url_json"}-->
<p><img src="<!--{$alist }-->"></p>
<!--{/foreach}-->
<!--{/iCMS}-->
列表页截取10位数字后转为日期格式
<!--{$article_list.deliveryTime|cut:'5'|date:"Y-m-d H:i:s"}-->
deliveryTime是字段名 存储了13为时间戳
专题调用相关实例
如果专题文章字段值是今天就减去一天,是明天就不变
<!-- 限制精确的时间范围可以这样调用列表 -->
<!--{iCMS:article:list row="100" loop="true" startdate="2021-01-08 00:00:01" enddate="2021-01-08 23:59:59"}-->
<!-- 专题列表打印参数 -->
<!--{$topic|print_R}-->
<!--{$iCMS.NOW|date:'Y-m-d'|assign:'r'}-->
<!--{$iCMS.NOW|date:'Y年m月d'}-->
系统当前时间
根据专题文章自定义链接值生成今天和昨天时间 $t来调用
<!--生成今天$t和昨天$y时间-->
<!--{"$t=date('Y-m-d',time())"}-->
<!--{"$y=date('Y-m-d',strtotime('-1 day'))"}-->
<!--根据自定义链接值生成今天和昨天时间-->
<!--{if $topic.clink=="today"}-->
<!--{"$t=date('Y-m-d',strtotime('-1 day'))"}-->
<!--{elseif $topic.clink=="tomorrow"}-->
<!--{"$t=date('Y-m-d',time())"}-->
<!--{else}-->
<!--{"$t=date('Y-m-d',time())"}-->
<!--{/if}-->
按专题文章页自定义链接值所设精确时间调用制定标签的文章列表
<!--{iCMS:article:list row="100" loop="true" tids="9" startdate="$t 00:00:01" enddate="$t 23:59:59"}-->
<!--{$article_list.description}--><!--{$article_list.pubdate|date:'Y-m-d H:i:s'}--><!--{$article_list.tags}--><br>
<!--{/iCMS}-->
如何打印当前数据集合
查看所有属性
<!--{|print_r-->
<!--{|print_r}--> //栏目内看
<!--{|print_R}--> //栏目内看数组
<!--{|print_r}--> //栏目列表看
<!--{$应用名_方法|print_R}--> //使用print_R查看所有属性
<!--{|print_r}--> //文章内容看
<!--{|print_r}--> //文章列表看
<!--{|print_r}--> //tags模板看
<!--{|print_r}--> //tags列表模板看}
自定义伪静态
rewrite "^/\w+/(\d+)$" /article.php?id=$1 last;
rewrite "^/n/(\d+)/$" /category.php?dir=$1 last;
rewrite "^/u/(.+)$" /tag.php?tkey=$1 last;
rewrite "^/n/(\d+)/(\d+)/$" /category.php?dir=$1&page=$2 last;
rewrite "^/jm/(.+)$" /topic.php?clink=$1 last;
这里之用了栏目及栏目分页、标签、文章、专题
专题这里用的是自定义链接 所以clink进行解析
自定义应用 实例
先新建一个自定义应用 设置好自定义字段 提交
再新建一个栏目到该应用,然后新建一篇文章抓包查看字段及信息
appid: 100
REFERER: /admincp.php?app=article&do=add
id:
cid: 2
status: 1
title: 精简列表
saleAmt:
inlimit:
marketAmt:
unlimit:
buytime:
praid:
vesName:
prid:
ucid:
_orig_pid:
editor: admin
userid: 1
scores:
credit:
postime:
mobile: 0
postype: 1
pubdate:
clink:
tpl:
hits:
hits_today:
hits_yday:
hits_week:
hits_month:
favorite:
comments:
good:
bad:
sortnum:
weight:
``
添加处理地址
/admincp.php?app=xssp&do=save&frame=iPHP&CSRF_TOKEN=
内容页处理地址
/index.php?app=xssp&id=1
也就是说只需要以上参数或者几个自定义字段即可
发布接口插件修改行已经注释
第一项改为应用名
第二项就改为我这个
define('ADMINCP', 'admincp.php?app');
//定义为指定应用名即可xssp
define('APP_URI', ADMINCP . '=xssp');
define('APP_FURI', APP_URI );
define('APP_DOURI', APP_URI .'&do=save');
//设置自定义应用contentAdmincp即可
$keywordsAdmincp= new contentAdmincp();
$keywordsAdmincp->do_save();
## 待解决问题集
尚无
#### 本地问题数据库
/d/54/13
**外部icms数据**
https://www.lanbu.net/d/133/11