本篇文章给大家谈谈最新phpcms教程,以及开源phpcms对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、如何配置phpcms v9整合Discuz X3同步登陆和退出
- 2、[PHPCms教程] 标签JS如何调用管理
- 3、phpcms 如何调用指定栏目下最新文章
- 4、PHPCMS如何调用多个分类栏目的最新文章
如何配置phpcms v9整合Discuz X3同步登陆和退出
本教程是以UCenter 为服务端,phpsso 与 Discuz! X3分别作 UCenter 的客户端应用。phpsso 与 Discuz! X3通过 UCenter 发生交互;而Phpcms v9 通过 phpsso 与 Discuz! X3发生交互。整合步骤如下:
第一步:完全安装Phpcms v9 和 Discuz! X3的最新版
小编是将Phpcms v9安装在根目录,然后在根目录新建一个bbs目录安装Discuz! X3,本教程中的路径是以此安装目录为例的,站长们操作时应该以自己实际情况更改路径。另小编制作测试本教程时使用的是最新版的程序,所以不保证所有版本按照本教程都能整合成功,建议将程序升级到最新版。
第二步:在 UCenter 中添加“phpsso 应用”
登录Discuz! X3后台,进入“UCenter”,点击“应用管理”后点击“添加新应用”进入应用添加界面,设置如下:
1、安装方式选择“自定义安装”
2、应用类型选择“其他”
3、应用名称填“phpsso”
4、应用的主 URL, 即phpsso_server的路径,视实际情况而定,注意最后不要带斜杠。如本教程填写为
5、通信密钥,任意填写64字节以内的英文字母及数字,不过要记住,因为phpcms 的通信密钥必须与此设置保持一致,否则 phpsso 将无法与 UCenter 正常通信。如本教程设置通信密钥为:chinaz
6、应用IP、应用的物理路径、查看个人资料页面地址默认留空即可,而应用接口文件名称默认uc.php即可。
7、标签单条显示模板、标签模板标记说明两项默认留空即可。
8、是否开启同步登录:是。只有开启后,两款程序才能实现同步登录。
9、完成后提交,将生成新的应用ID。(记住这个应用ID,在”第三步“中将用到它。)
10、进入后台“站长”,“UCenter 设置”选项。”是否允许直接激活”一项,选择“是”。
下面去Phpcms v9中配置phpsso。
第三步:配置phpsso
登录Phpcms v9后台,进入“phpsso”,点击“系统设置”,进入“UCenter配置”设置界面,设置如下:
注意:数据库前面的符号 `ucenter`.uc_ 请复制符号
1、是否启用:是
2、Ucenter api 地址,即uc_server的路径,根据你的安装情况而定,注意最后不要带斜杠。如本教程填写为:
3、Ucenter 数据库信息:根据自己情况填写数据库的信息。其中数据库表前缀的格式为“`数据库名`.数据库前缀”,注意数据库名的不是单引号。
4、应用id(APP ID),即第二步创建的 phpsso 应用时自动生成的应用ID。
5、Ucenter 通信密钥,即第二步中设置的“通信密钥”,这两个值一定要确保一致,否则会导致无法通信。
第四步:查看通信状态
登录Discuz! X3后台,进入“UCenter”,点击“应用管理”查看第二步中创建的 phpsso 应用与 UCenter 通信是否成功。如果通信失败,请检查“第二步”与“第三步”中的各项参数配置是否正确。
第五步:修改 Discuz! X3会员登录相关。
若不修改此处则在Phpcms v9登录后可以同步登录到Discuz! X3,但是在Discuz! X3登录却无法同步登录到Phpcms v9。修改步骤如下:
1、找到discuz目录下 template/default/member/login.htm,删除
onsubmit="{if $this-setting['pwdsafety']}pwmd5('password3_$loginhash');
{/if}pwdclear = 1;ajaxpost('loginform_$loginhash', 'returnmessage_
$loginhash', 'returnmessage_$loginhash', 'onerror');return false;"
注意还有一个,不删除绝对不同步;(我测试过的)
onsubmit="ajaxpost('lostpwform_$loginhash', 'returnmessage3_$loginhash', 'returnmessage3_$loginhash', 'onerror');return false;"
2、找到discuz目录下 templatedefaultmemberlogin_s imple.htm ,删除
onsubmit="{if $_G['setting']['pwdsafety']}pwmd5('ls_password');{/if}return
lsSubmit();"
3、找到discuz目录下 /source/function/function_message.php ,查找
$param['header'] = true;
替换为
$param['header'] = false;
第六步:整合完成
小编整合到这就木有再做任何修改了,经测试完全实现了同步注册、同步登录、同步退出。只是因为程序的原因,在phpcms注册的账号是需要在Discuz登录一次之后才可以实现同步,这个是程序限制,没有办法解决的。另外发现不少站长整合后通信成功,但是出现注册和登录操作失败的问题,请注意第三步中数据库表前缀的格式。
常见问题解答:
1、整合完成后,在 phpcms 注册、登录均“失败”怎么办?
答:这可能是由于无法连接到 UCenter 的原因。可以尝试修改文件
phpsso_server/api/uc_client/model/base.php
将第 74 行的 $this-db-connect(UC_DBHOST, UC_DBUSER, UC_DBPW, ”, UC_DBCHARSET, UC_DBCONNECT, UC_DBTABLEPRE);
替换为: $this-db-connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCHARSET, UC_DBCONNECT, UC_DBTABLEPRE);
2、为什么不使用官方自带的 UCenter 客户端?
答:官方自带的 UCenter 客户端版本为 1.5.1 Release 20100501 ,而 Discuz! X3 使用的版本为 1.6.0 。版本不一致,无法整合成功。
3、整合成功后,能达到怎样的效果?
答:实现 phpcms 与 Discuz! 会员的双向同步注册、登录、退出等。
4、第一次在 phpcms 注册的会员必须在 Discuz! 登录一次,下次才会同步登录。这正常吗?
答:正常。因为 phpsso 作为 UCenter 的第三方应用,是需要在 Discuz! 登录激活的。
如果您嫌在 Discuz! 激活麻烦,可以与我联系,我们将提供商业服务,帮您解决这个问题。
5、会员在 phpcms 登录后,没有同步登录到 Discuz! 怎么办?
答:这很可能是由于 phpsso 的“UCenter配置”有误引起的,请仔细检查各项参数设置。
6、会员在 Discuz! 登录后,没有同步登录到 phpcms 怎么办?
答:这很可能是由于 UCenter 的 phpsso 应用配置有误引起的,请仔细检查各项参数设置。
注意事项:
如Discuz配置过$_config['cookie']['cookiedomain'] = ”; 那phpcms相应的也必须同样的设置,要不同步登陆退出会失败
[PHPCms教程] 标签JS如何调用管理
打开系统设置,在左栏下方的“模板风格”里我们看到有一项“标签JS调用治理”
在这里我们可以生成系统中预置的公共标签和JS调用。
公共标签调用治理 包含:
栏目标签、专题标签 、 专题幻灯片标签、 公告标签、 友情链接标签、 评论标签
PHPCMS教程:
下面以栏目调用为例介绍一下使用过程:
首先点击“公共标签调用治理”中的“栏目标签”
在下方出现“栏目目录列表调用标签治理”
点击“添加栏目目录列表调用标签” 进入参数设置状态
“配置名称”中填入由字母、数字和下划线组成的唯一名称
“配置说明”对标签进行简单描述(可用中文)方便以后治理
下面就是具体的参数设置了“标签参数设置”
设置好各项参数后点下面的“保存”即生成相应的标签和JS调用。
我们再打开“栏目目录列表调用标签治理”中的“治理栏目目录列表调用标签”
就可以看到我们添加的标签和JS调用代码
这里系统为我们提供了长、短标签和JS调用,您可以根据自己的需要选择不同的调用方式。
我们还可以在“治理操作”进行“预览”“ 修改” “ 删除”的操作。
最后把标签或者JS代码复制粘贴到模板中的相应位置,这样就可以在该位置显示我们设置好的信息了。
您可以先设置好参数,然后把标签或者JS代码复制粘贴到模板中的相应位置,这样就可以在该位置显示信息。
标签和JS调用显示的结果相同,您需要根据实际情况来决定选择哪一种调用方式。
下面就标签调用与JS调用特点做一下讲解:
标签调用:
优点:在调用页产生html,有利于搜索收录,下载速度快
缺点:假如您设置了生成html,html生成速度慢,需要经常更新页面才能保持最新,不能跨站或者跨频道调用
JS调用:
优点:可以跨站调用,自动更新,html生成速度快
缺点:搜索收录差,速度相对html要慢一点(相差不大)
我们的建议:
在首页、栏目首页、专题首页使用标签调用;
栏目信息列表、信息具体页中的推荐信息、热点信息等
phpcms 如何调用指定栏目下最新文章
在前台模板中使用phpcms标签调取文章列表:
{pc:content action="lists" catid="1" num="10" order="inputtime desc"}
!--使用catid制定栏目,使用order属性设置添加时间倒序获取最新文章--
{loop $data $v}
a href="{$v['url']}"{$v['title']}/a
{/loop}
{/pc}
在后端php程序里获取最新文章列表,引入文章模型,select方法读取列表数据:
$db = pc_base::load_model("content_model");
$db-set_catid($catid); //$catid代表栏目id
$datas = $db-select(array('catid'=$catid,'status'=99),"*",10,'inputtime desc'); //$datas便是文章列表数组数据了
PS:标签与二次开发的使用可参看phpcms官方使用手册以及iphpcms的视频教程。
PHPCMS如何调用多个分类栏目的最新文章
这里不知道你说的多个分类具体是指什么情况,所以给出两种我们使用phpcms网站建设中常见的调用多个栏目的情况:
一、多个栏目正好是某个栏目下的子栏目,例如在“phpcms教程”(catid:1)栏目中有“使用教程”(catid:2)和“二次开发”(catid:3)两个子栏目,你想同时调用两个子栏目中的内容,这种情况下,直接指定父级栏目id即可,跟普通调用一样,因为phpcms系统会自动判断指定的栏目有无子栏目,如果有,获取所有子栏目下内容。
演示:
{pc:content action="lists" catid="1" num="10" order="id desc"}
ul
{loop $data $v}
lia href="{$v[url]}"{$v[title]}/a/li
{/loop}
/ul
{/pc}
二、“多个栏目”是离散的无规律范围,例如有两个栏目它们不是同父级,catid分别是2和5,可能是你随机指定的两个,同时调用它们下面的文章就不能直接使用pc标签里的catid属性去指定了,我们使用where属性来直接限定数据读取条件。
演示:
{pc:content action="lists" catid="2" num="10" order="id desc" where="catid=2 or catid=5"}
!--这里的如果有where属性,catid属性指定的栏目范围已经无效了,但是还是要写上,不然会出错,所以这里catid属性的值可以随便写,但是保证其栏目的数据模型相同即可--
ul
{loop $data $v}
lia href="{$v[url]}"{$v[title]}/a/li
{/loop}
/ul
{/pc}
PS:
如果你了解php编程和mysql数据库,会发现在第二种情况下实际上就是使用where属性直接指定sql命令中的where条件。你可以通过二次开发phpcms的标签解析方法来扩展更丰富的功能,这里的相关程序目录是 /phpcms/modules/content/class/content_tag.class.php里面的lists方法。
phpcms的详细使用开发教程可参考官方说明文档或到 iphpcms里来学习~
关于最新phpcms教程和开源phpcms的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。