帝国CMS自动加图片水印最全面的方案

在帝国CMS上传图片时,让程序自动加水印,原理就是让上传图片的地方的加水印复选框进行默认勾选!

一,在正文中插入我们自己做的图片时,一般来说100%要求加水印。因此我在编辑器上面自动勾选了加水印,这样不用每次都去人工勾选。
帝国CMS自动加图片水印最全面的方案1.png

修改方法:
1,找到文件e/admin/ecmseditor/infoeditor/epage/TranImg.php
2,查找到<input name="getmark" type="checkbox" id="getmark" value="1">
3,修改为<input name="getmark" type="checkbox" id="getmark" value="1" checked>





阅读剩余部分

帝国CMS解决图片水印位置太靠边的问题

帝国CMS后台 → 系统设置 → 系统参数设置 → 图片设置,可以设置图片水印的位置,如下图:
帝国CMS图片水印设置.png

除了随机位置,还可以设置指定的9个位置,比如我们通常设置在底端居右。问题就在于,水印位置一直在图片最底端最右侧,完全没有空隙,这样很不爽,一般来说,我们要求距离底端和右端有一定的间隙,看起来才美观。

帝国CMS解决图片水印位置太靠边的问题,有2个方法:
一,水印图片制作的时候,水印LOGO的底端和右端刻意留一些距离。

二,打开/e/class/gd.php文件,搜索:switch($waterPos)
注意看代码的注释说明,我选择的水印位置在底端居右,所以定位到代码:case 9,然后在X和Y位置分别增加了10px的距离,如下图:
帝国CMS解决图片水印位置太靠边的问题2.png

注意,是减去10,不是加10

MySQL递归查询树形结构的栏目

一般的栏目都是树形结构,在表结构通常会采用id、parent_id这种设计方案。比如帝国CMS的栏目也是这种方案。

查询帝国CMS一个栏目下所有的下级栏目,案例代码:

SELECT t1.classid,t1.classname,t2.classid,t2.bclassid,t2.classname,t3.classid,t3.bclassid,t3.classname,t4.classid,t4.bclassid,t4.classname
FROM phome_enewsclass t1
LEFT JOIN phome_enewsclass t2 ON t1.classid = t2.bclassid
LEFT JOIN phome_enewsclass t3 ON t2.classid = t3.bclassid
LEFT JOIN phome_enewsclass t4 ON t3.classid = t4.bclassid
WHERE t1.classid = '4968';

上述案例中,层级为四级。

解决Mysql同一个表不能同时进行update和select操作的问题

我要更改帝国CMS栏目ID=583的下级栏目模板ID,用下面SQL语句,没毛病:

UPDATE `phome_enewsclass` SET `listtempid` = 2 WHERE bclassid = 583

我要更改帝国CMS栏目ID=583的下下级栏目模板ID,用下面SQL语句:

UPDATE `phome_enewsclass` SET `listtempid` = 2 WHERE bclassid in (SELECT classid FROM `phome_enewsclass` WHERE bclassid = 583)

执行报错:#1093 - You can't specify target table 'phome_enewsclass' for update in FROM clause,意思是在同一张表上,你不能先select了再执行update操作。

改用下面SQL语句,可以修改指定栏目下的第三级栏目的模板ID:

UPDATE `phome_enewsclass` AS A INNER JOIN (SELECT classid FROM `phome_enewsclass` WHERE bclassid in(SELECT classid FROM `phome_enewsclass` WHERE bclassid = 583)) AS B ON A.classid = B.classid SET A.listtempid = 2