wecenter如何自定义文章和问题的链接

wecenter系统的文章模块,链接都是 /artiacle/id 的格式,而问题模块,链接都是 /question/id的格式,那么可不可以自定义链接的格式?例如:文章模块,链接改为 /post/id 的格式,问题模块,链接改为 /ask/id的格式呢?答案...
继续阅读 »

wecenter系统的文章模块,链接都是 /artiacle/id 的格式,而问题模块,链接都是 /question/id的格式,

那么可不可以自定义链接的格式?例如:文章模块,链接改为 /post/id 的格式,问题模块,链接改为 /ask/id的格式呢?


答案是可以的!


我们可以通过wecenter系统本身自带的伪静态功能,

先通过在服务器上,配置好伪静态,

然后在后台里开启伪静态功能,并设置好伪静态链接即可。

413cd5fd156bc1181b1605bb5cb5a137.jpg


通过这样的设置,我们就可以把平常是通过 

article/id 访问的链接,变成 addon/id  的形式访问了


收起阅读 »

wecenter系统自定义默认首页的方法

很多人都想知道wecenter系统如何自定义默认首页,其实很简单,只需要在网站后台->前台菜单里设置即可,今天就分享wecenter自定义首页的教程给大家。首先,打开网站后台->内容管理->前台菜单,然后添加把我们想要设置自定义的首页加入到菜...
继续阅读 »

很多人都想知道wecenter系统如何自定义默认首页,其实很简单,只需要在网站后台->前台菜单里设置即可,今天就分享wecenter自定义首页的教程给大家。


首先,打开网站后台->内容管理->前台菜单,

65d8f21b83909b7370b6f094c60e0f5b.jpg


然后添加把我们想要设置自定义的首页加入到菜单中。例如设置文章模块为首页

d6a95921ba34fcf681ed5291c493e51f.jpg


只需要在这里选择设置为首页,即可完成自定义首页的设置。


需要注意的是,自定义首页只能是站内链接,不能填写外链,不然可能会造成网站无法打开哦!

收起阅读 »

wecenter侧边栏的推荐内容丢失原因和解决方案

在wecenter详情页的侧边栏,有一个推荐内容,但是升级到3.6以后,很多人发现不见了,其实不是不见了,是需要登录后才可见,我们可以通过简单的修改代码,让未登录的人也看到打开/app/question/main.php 大约319行的位置,找到以下代码  i...
继续阅读 »

在wecenter详情页的侧边栏,有一个推荐内容,但是升级到3.6以后,很多人发现不见了,

其实不是不见了,是需要登录后才可见,我们可以通过简单的修改代码,让未登录的人也看到


打开/app/question/main.php 大约319行的位置,找到以下代码

  if ($question_topics)
{
foreach ($question_topics AS $key => $val)
{
$question_topic_ids[] = $val['topic_id'];
}
}

并把他移出 if 外层,即放在317行的 $this->user_id 上面,这样即使未登录,也可以看到推荐内容了

收起阅读 »

wecenter默认模板 认证图标 icon-v 颜色不一致bug

在默认模板中,其中默认皮肤的认证图标icon-v,css颜色是这样的 .icon-v{color: #ffca3f;font-size: 16px;}/* 黄V */ .icon-v.i-ve{color: #a3d700;}/* 绿V */ 但是使用换肤功...
继续阅读 »

在默认模板中,其中默认皮肤的认证图标icon-v,css颜色是这样的


.icon-v{color: #ffca3f;font-size: 16px;}/* 黄V */
.icon-v.i-ve{color: #a3d700;}/* 绿V */

但是使用换肤功能,切换到绿色时,却是


.icon-v{color: #5bbf5a;font-size: 16px;}/* 绿V */
/* 这里icon-v绿V使用的是#5bbf5a,考虑到其他地方的icon-v还有同个#5bbf5a颜色代码,所以这里就不建议改为#a3d700了*/
.icon-v.i-ve{color: #ffca3f;}/* 黄V */

而把皮肤切换到橙色时,却是


.icon-v{color: #a3d700;font-size: 16px;}/* 绿V */
.icon-v.i-ve{color: #ffca3f;}/* 黄V */

这里面,默认皮肤 和 绿色皮肤、橙色皮肤中,颜色值是相反了。


也就是说,你在默认皮肤里是黄V,


当你切换成绿色皮肤或者橙色皮肤时,你是会变成绿V的,


这样很容易造成误会,所以我们要把颜色值统一一下。



因为wecenter系统中,绿色v代表个人认证,黄色v代表企业机构认证


(因为看到默认模板的static/css/default/img/icon-v.png是绿色的,如果我没搞错的话,应该是绿色v代表个人认证,黄色v代表企业机构认证。)


所以我们需要把static/css/default/common.css的色值对调下,


在大约180行的位置就能找到对应代码修改为以下示例:


.icon-v{color: #a3d700;font-size: 16px;}/* 个人绿V */
.icon-v.i-ve{color: #ffca3f;}/* 企业黄V */
收起阅读 »

wecenter3.6.1移动端手机版缺失的插件钩子

wecenter3.6.1移动端手机版部分页面缺失了一些插件钩子,大家可以根据需要自己添加进去 问题详情页 打开 views/default/m/question/index.tpl.htm 大约81行的位置,添加 <!--问题详情页钩子--> &...
继续阅读 »

wecenter3.6.1移动端手机版部分页面缺失了一些插件钩子,大家可以根据需要自己添加进去



问题详情页


打开 views/default/m/question/index.tpl.htm 大约81行的位置,添加


<!--问题详情页钩子-->
<?php run_hook('page_content_hook',['page'=>'question_detail','area'=>'content_detail_bottom','question_info'=>$this->question_info,'platform'=>'mobile']);?>

收起阅读 »

WeCenter邮件设置要怎么设置

WeCenter系统的邮件设置要怎么填? QQ邮箱填写示例 发送方式:通过SOCKET链 连接 SMTP服务器发送 邮件编码:UTF-8 主 SMTP 服务器:smtp.qq.com 使用安全链接(SSL)连接主服务器:是 主 SMTP 端口:465 主 S...
继续阅读 »

WeCenter系统的邮件设置要怎么填?


QQ邮箱填写示例


0ffbe31f83c893a7a736426e81e544c3.png


发送方式:通过SOCKET链 连接 SMTP服务器发送


邮件编码:UTF-8


主 SMTP 服务器:smtp.qq.com


使用安全链接(SSL)连接主服务器:


主 SMTP 端口:465


主 SMTP 帐户:QQ号@qq.com


主 SMTP 密码:这里不是QQ密码,而是进入QQ邮箱后台获取的授权码



QQ邮箱授权码


登录QQ邮箱->设置->账户


ebb8761da5a72074b30cc144503fcbab.png


拉到底部就会看到 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务


1.我们要先开启: POP3/SMTP服务 


2.获取授权码:这个授权码是用来代替QQ密码的


894f9c7a0c07b44faa94b03770db79c6.png



QQ邮箱失败原因


很多人使用QQ邮箱作为wecenter程序的发信邮箱,但是一直失败的原因,其实就是因为这2个原因:


1、端口号填错了:QQ邮箱发信是改为了使用安全链接(SSL),所以端口号要填465


2、SMTP 密码填错了:为了安全,QQ邮箱改用了授权码代替QQ密码,所以不能填QQ密码,而是要生成一个授权码


3、没有开启POP3/SMTP服务



如果你的QQ邮箱设置不成功,请着重检查这3个设置!!!

收起阅读 »

WeCenter在php7环境下,公众号功能无反应、出错解决方案

出错原因 出现这个问题是由于mcrypt_decrypt、等函数已自 PHP 7.1.0 起废弃,并将自 PHP 7.2.0 起移除。 但是由于wecenter3.6.1以及之前的版本还在使用mcrypt_decrypt等函数,所以会导致在php7.2 + 的...
继续阅读 »

出错原因


出现这个问题是由于mcrypt_decrypt、等函数已自 PHP 7.1.0 起废弃,并将自 PHP 7.2.0 起移除


但是由于wecenter3.6.1以及之前的版本还在使用mcrypt_decrypt等函数,所以会导致在php7.2 + 的环境下,wecenter公众号功能会出现错误,导致无法使用公众号回复功能。



解决方案


用openssl_decrypt替换mcrypt_decrypt等函数


打开system/Services/Weixin/Prpcrypt.php,


找到encrypt函数,替换为


    /**
* 对明文进行加密
* @param string $text 需要加密的明文
* @return string 加密后的密文
*/
public function encrypt($text, $appid)
{
try {
//获得16位随机字符串,填充到明文之前
$random = $this->getRandomStr();
$text = $random . pack("N", strlen($text)) . $text . $appid;

$iv = substr($this->key, 0, 16);
//使用自定义的填充方式对明文进行补位填充
$pkc_encoder = new Services_Weixin_PKCS7Encoder;
$text = $pkc_encoder->encode($text);

$encrypted = openssl_encrypt($text, 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $this->hexToStr($iv));

//使用BASE64对加密后的字符串进行编码
return array(Services_Weixin_ErrorCode::$OK, base64_encode($encrypted));

} catch (Exception $e) {
//print $e;
return array(Services_Weixin_ErrorCode::$EncryptAESError, null);
}
}

找到decrypt函数,替换为


    /**
* 对密文进行解密
* @param string $encrypted 需要解密的密文
* @return string 解密得到的明文
*/
public function decrypt($encrypted, $appid)
{

try {
//使用BASE64对需要解密的字符串进行解码
$ciphertext_dec = base64_decode($encrypted);
$iv = substr($this->key, 0, 16);

//解密
$decrypted = openssl_decrypt($ciphertext_dec, 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $this->hexToStr($iv));

} catch (Exception $e) {
return array(Services_Weixin_ErrorCode::$DecryptAESError, null);
}


try {
//去除补位字符
$pkc_encoder = new Services_Weixin_PKCS7Encoder;
$result = $pkc_encoder->decode($decrypted);
//去除16位随机字符串,网络字节序和AppId
if (strlen($result) < 16)
return "";
$content = substr($result, 16, strlen($result));
$len_list = unpack("N", substr($content, 0, 4));
$xml_len = $len_list[1];
$xml_content = substr($content, 4, $xml_len);
$from_appid = substr($content, $xml_len + 4);
if (!$appid)
$appid = $from_appid;
} catch (Exception $e) {
//print $e;
return array(Services_Weixin_ErrorCode::$IllegalBuffer, null);
}
if ($from_appid != $appid)
return array(Services_Weixin_ErrorCode::$ValidateAppidError, null);
return array(0, $xml_content, $appid);
}

同时在下方增加一个自定义函数hexToStr


    public function hexToStr($hex)
{
$string='';
for ($i=0; $i < strlen($hex)-1; $i+=2)
{
$string .= chr(hexdec($hex[$i].$hex[$i+1]));
}
return $string;
}



下载修改后的文件


这里给大家整理好了修改后的文件,


可以下载后覆盖到自己网站system/Services/Weixin/Prpcrypt.php即可在php7环境下使用WeCenter的公众号功能了


Prpcrypt.php.zip

收起阅读 »