PHPCMS v9栏目添加扩展字段或者(描述改成编辑器)

不得不说 PHPCMS v9是个东西

由于栏目列表展示的地方需要展示一段长文本内容,PCv9的栏目默认是没有文本字段的,加起来超级方便。

1,在数据库中添加一个字段content用来存放栏目详情

ALTER TABLE `category`
ADD COLUMN `content` text NULL;

2,修改栏目新增和修改的模板,添加字段,我一般是放在description下面
/cloud/phpcms/modules/admin/templates/category_add.tpl.php
/cloud/phpcms/modules/admin/templates/category_edit.tpl.php

	<tr>
        <th><?php echo L('页面内容')?>:</th>
        <td>
		<textarea name="info[content]" style="width:300px;height:60px;"><?php echo $content;?></textarea>
		<?php echo form::editor('info[content]','full','','','',1,1)?>
		</td>
	</tr>

完工

PHPCMSV9相关文章自动调用的实现方法:模板标签实现,无需修改代码

PHPCMSV9的相关文章默认需要在后台设置,前台才能正常调用,如果我们没有统一设置相关文章,那怎么来实现相关文章的调用呢。

阅读本文的同时,我假设你的文档均未设置相关文章,调用方法如下:

实现效果如下:

代码于此:

<div class="numlist wid300">
<div class="h4"> &laquo; 相同类型手机图片推荐</div>
    <ul class="text" id="Larclist">
    	<!--组合模糊搜索SQL字串-->
    	{php $where = '(title like "%'.join('%"  OR title like "%', explode(",", $rs[keywords])).'")';}
        {pc:get sql="SELECT * FROM `www.4wei.cn` where catid ='$catid' and  $where order by id desc" cache="100" num="5" page=""}
        {loop $data $r}
        {php $index++}
        <li>
            {if $index < 4}<span class='num active'>{$index}</span>{else}<span class='num'>{$index}</span>{/if}
            <span class='tit'><a href="{$r['url']}">我是真正的相关文章</A></span>
        </li>
        {/loop}
        {/pc}

        <!--如果相关文章不够,则从相同栏目获取几条数据,开始-->
        {if $index < 5}
        {pc:get sql="SELECT * FROM `www.4wei.cn` where catid ='$catid' order by id desc" cache="100" num="5" page=""}
        {loop $data $r}
        {php $index++}
        <li>
            {if $index < 4}<span class='num active'>{$index}</span>{else}<span class='num'>{$index}</span>{/if}
            <span class='tit'><a href="{$r['url']}">我是相同栏目下的候补文章</A></span>
        </li>
        {/loop}
        {/pc}
        {/if}
        <!--如果相关文章不够,则从相同栏目获取几条数据,结束-->
        <!--
        www.4wei.cn版权所有,盗版没法究
        -->
        {php unset($index);}
    </ul>
</div>
<div class="numlist wid300">
<div class="h4"> &laquo; 其它类型手机图片推荐</div>
    <ul class="text" id="Larclist">
    	{php $where = '(title like "%'.join('%"  OR title like "%', explode(",", $rs[keywords])).'")';}
        {pc:get sql="SELECT * FROM `www.4wei.cn` where catid <>'$catid' and  $where order by id desc" cache="100" num="10" page=""}
        {loop $data $r}
        {$index++}
        <li>
            {if $index < 4}<span class='num active'>{$index}</span>{else}<span class='num'>{$index}</span>{/if}
            <span class='tit'><a href="{$r['url']}">我是其它栏目下的相关文章</A></span>
        </li>
        {/loop}
        {/pc}
    </ul>
</div>

详解于此:

  1. 根据文章的关键字组合模糊搜索SQL
  2. 使用PC的Get标签获取数条相关结果
  3. 假如相关文章数量不足,再从相同栏目获取数条结果充数
  4. 如果你的文章有在后台添加相关文章,如果数量不够,也可以使用这个方法进行补充调用

感谢V9强大的模板标签功能,相信PC会越来越好。

PHPCMS V9 正式版初使用心得

两个月没有登陆DEDE网站,这两天上去发现plus目录下又多了N个木马程序,一阵纠结之后,果段的转移到PC V9上。

PCV9带了DEDE5.6的转换程序,本人使用了转换程序以后,虽然能将DEDE的模型和内容转换到PC,但不能将原栏目的ID,原文章的ID和会员转换到PC中。后经过本人的DIY,暂时实现了原栏目和文章ID的转换,可以方便的实现整站数据的迁移。

继续阅读PHPCMS V9 正式版初使用心得

PHPCMS问吧采集程序

尘缘于3年前开发了DEDE的问答程序发布接口,受到不少用户好评。

因为此接口是尘缘早期的接口,技术与代码规范尚不成熟,加上DEDE的模型设计并不十分优秀,所以,一直想用PHPCMS来创建一个负载量好的问答自动采集程序。

这段时间受用户委托,开发了这样一个程序,现将一些思路和功能展示于后。

  1. 要实现无人值守,无须开机,自动采集更新问题,添加问题回复,添加问题最佳答案;
  2. 同步实现问答栏目自动创建,用户自动创建;
  3. 实现采集过程缓存化,以实现快速除重并更新已有问题
  4. 智能判断问题状态,如果问题已经存在、回答已经存在、问题过期或者已经解决的分析

经过一定时间的研究,已经将上述功能一一实现,以下列出一定的技术思路

  1. 使PHP能在用户关闭浏览器的状态下继续执行程序,不限制超时,这样可以让PHP程序在服务器上不间断执行采集过程;
  2. 添加事件触发功能,当PHP后台程序检测到停止运行的命令时,停止后台运行,并释放资源;
  3. 添加问题时,将问题编号和回复编号做为缓存条件,最佳答案以发布时间为判断条件实现数据自动更新

以上核心功能实现以后,就是按部就班的开发其它小功能了,如添加栏目,添加问题,添加用户,添加回答等。

火车群里有部分同志给我建议加上一个多语言翻译和生成静态的功能,那稍后也会考虑慢慢加上这个功能。

经过数天的开发,我发现PHPCMS真的模型设计比较合理,相当DEDE来说,确实在不同的层次,二次开发非常容易,我接触到的几个功能,基本上无需拿PHPCMS核心代码开刀。PHPCMS的模块开发非常容易,开发过程真的很简单,很惬意。

这么几年一直没用PHPCMS,这里表示下对自己的遗憾。

以下是采集程序的安装方法:

安装方法:
1,登陆PHPCMS后台,安装问答模块,设置Ucenter通行证
2,将c.sql中的SQL在Mysql中执行一下,注意表前缀请根据实际情况修改,默认为phpcms_
3,将压缩包中所有文件上传到phpcms/Ask目录下
4,使用浏览器访问phpcms/ask/control.php或者在模板中使用Js调用phpcms/ask/control.php

使用说明:
1,本程序理论上可以365天无人值守运行,但遇到采集出错、数据为空、服务器当机等情况,需要人工重新启动采集进程,可以使用浏览器访问phpcms/ask/control.php
2,如果在模板中使用Js调用则可以避免上述问题,调用方法为
3,程序自动根据问题所属分类,自动创建多级分类,请定期登陆后台手工更新问吧栏目缓存

注意事项:
1,当百度知道的采集规则发生变化时,请不要继续采集操作,以免采集到错误的数据
2,有问题请联系尘缘,QQ:130775

程序开发半个月完成,部署到客户服务器上以后,出现了线程问题、内存占用等问题,经过一个月的跟踪修复,目前这套程序运行正常。然后尘缘才敢拿出来叫卖。

目前程序只能采集百度知道,详细功能如下:

  1. 全自动采集入库功能:实时循环采集问题,问题回复,可以准确采集用户信息和时间;
  2. 全自动跟踪更新功能:可以跟踪问题解决状态,添加最佳答案,解决问题;
  3. 个性化需求采集功能:可以自定义采集分类、问题类型,采集线程和间隔时间;
  4. 全程无人值守采集,无需人工干预,需要了解购买程序的同学请加QQ:130775。

程序效果预览:

使用火车采集器实现PHP168“批量发图”的功能

说几句闲话先,一年前,Php168离开Ku6,南下广州时,曾疯狂的支持过P8一段时间,但是终因其功能的不完善而转战DEDE。近期,PHPcms的创始人离职,意味着PHPcms正式沦为一个商业化运作的商品,暂时不说PHPcms以后的发展到底是好是坏,也不发表什么个人意见。

就在众多CMS用户起哄之时,PHP168起来冒皮皮,打着“国内头号CMS” 的小旗呐喊,“要重振PHP的CMS行业”。

这则新闻是在“全国知名站长群”里看到的,当时还和发布此文的站长嘴了几句。要不是看着自己挂着公司的头衔,差点撕破脸皮了。当时就觉得,这些个家伙们要不就是“乱世造英雄”,要不就是企图“混水摸鱼”。

很奇怪当时会那么热血青年,但是PHP168确实“忽略”了很现实的现实。

就目前PHP的CMS行业来说,DEDE和Discuz无疑是用户最多的CMS。PHP168竟然能无视两位大哥,甚至前辈就能如此造次,确实有些汗人。 继续阅读使用火车采集器实现PHP168“批量发图”的功能