欢迎光临
我们一直在努力

phpcms v9后台登陆验证码无法显示,怎么取消验证码

liuying阅读(235)评论(0)

phpcms v9后台登陆验证码无法显示论坛里关于这个问题貌似一直没有解决,查看源代码后发现,关键一点是获取验证码的图片与全局变量SITE_URL相关,也就是网站的目录,

所以只要修改cache/configs/system.php文件中的网站路径变量 ‘web_path’ 即可。
   举例说明(本地域名http://localhost)
   如果所有的文件都在根目录下(例如apache下的htdocs),此时,默认访问地址应该是http://localhost/,则‘web_path’=>'/',若网
站默认的访问地址不是根目录,则需要将变量‘web_path’的值改为新的目录地址,例如是在根目录下的install子目录里,那么应该
是'web_path'=>'/install/',注意,最后一个'/'不能省略。
 
如果还是无法显示验证码 还着急登陆后台 可以直接把验证码取消~~~{我就是这么做的}
 
phpcms v9 后台登陆取消验证码
主要更改以下文件
   phpcms/modules/admin/index.php——-后台登陆界面主文件{【取消了验证码】}
   phpcms/modules/admin/templates/login.tpl.php———-后台登陆界面模板文件
第一步
找到文件phpcmsmodulesadminindex.php
注释掉第32行到第35行
  1. $code = isset($_POST['code']) && trim($_POST['code']) ?trim($_POST['code']) : showmessage(L('input_code'), HTTP_REFERER); 
  2. if ($_SESSION['code'] != strtolower($code)) { 
  3. showmessage(L('code_error'), HTTP_REFERER); 

第二步

找到文件phpcmsmodulesadmin emplateslogin.tpl.php
注释掉第38行
  1. <label><?php echo L('security_code')?>:</label><inputname="code" type="text" class="ipt 
  2. ipt_reg"onfocus="document.getElementByIdx_x('yzm').style.display='block'"/> 

注释掉第39行

  1. <div id="yzm" class="yzm"><?php echoform::checkcode('code_img')?><br /><ahref="javascript:document.getElementByIdx_x 
  2. ('code_img').src='<?php echoSITE_PROTOCOL.SITE_URL.WEB_PATH;?>api.php? 
  3. op=checkcode&m=admin&c=index&a=checkcode&time='+Math.random();void(0);"><?phpecho L('click_change_validate')?></a></div> 

 

phpcms V9导航当前–高亮代码

liuying阅读(249)评论(0)

  1. <map> 
  2.      {pc:content action="category" catid="0" num="25" siteid="$siteid" order="listorder ASC"
  3.          <ul class="nav-site"> 
  4.    <li><a{if !$catid} style="color:#000"{/if} href="{siteurl($siteid)}"><span>首页</span></a></li> 
  5.    {loop $data $r} 
  6.    <li class="line">|</li> 
  7.    <li><a href="{$r[url]}"{if $catid==$r[catid] || $top_parentid==$r[catid]} style="color:#000"{/if}><span>{$r[catname]}</a></span></a></li> 
  8.    {/loop} 
  9.             </ul> 
  10.         {/pc} 
  11. </map>  

 

解决模板文件无法调用$CATEGORYS变量的方法

liuying阅读(291)评论(0)

解决方案一:
以下这段代码,是检查$CATEGORYS变量是否存在,如果不存在则进行声明。  这样自然也就不会重复获取栏目,而浪费不必要的资源了。

  1. if(!isset($CATEGORYS)) { $CATEGORYS = getcache('category_content_'.$siteid,'commons'); } ?> 

一般我是习惯直接放到通用的头部模板里,这样,调用头部的页面就都会有$CATEGORYS这个栏目信息的变量了。

方案一亲测,成功!

解决方案二:
在你模板文件中最上面部分加上

  1. {php $CATEGORYS = getcache('category_content_'.$siteid,'commons');} 

如果还没出来,就用下面的

  1. {php $siteid =  $_GET['siteid'] ? $_GET['siteid'] : get_siteid();$CATEGORYS = getcache('category_content_'.$siteid,'commons');} 

解决方案三:
今天改模板,改到search模板这里,发现头部导航条没有内容了,只剩下首页,去对比modules中content和search各自的index.php文件,发现search的init方法中,少了

  1. $CATEGORYS = getcache('category_content_'.$siteid,'commons'); 

这句,所以加到了

  1. include        template('search','list'); 
  2. else { 
  3. include        template('search','index'); 

 

最新PHPCMS V9编辑器代码高亮显示(附插件)

liuying阅读(319)评论(0)

以下是教程及相关代码:

【第一步】 下载phpcms v9代码高亮(gbk版)压缩包,里面有所需要的文件

【第二步】 将codeblock文件夹复制到 /statics/js/ckeditor/plugins 文件夹下

【第三步】 将content.css复制到 /statics/js/ckeditor 文件夹下(如果有,请覆盖)

【第四步】 打开 /statics/js/ckeditor/ckeditor.js 文件,找到以下代码,进行修改

  1. tabletools,templates,toolbar,undo,wsc,wysiwygarea// 
  2. 添加 codeblok 
  3. 修改为tabletools,templates,toolbar,undo,wsc,wysiwygarea,codeblock 

【第五步】 打开 /phpcms/libs/classes/form.class.php 文件,查找以下代码(大约22行),进行修改

  1. ['Table','HorizontalRule','Smiley','SpecialChar','PageBreak'], 
  2. //增加 CodeBlock 
  3. 修改为['Table','HorizontalRule','Smiley','SpecialChar','PageBreak','CodeBlock'], 

【第六步】 打开 /phpcms/templates/default/content/header.html模板文件,在head部分引用CSS文件

  1. <link href="{JS_PATH}ckeditor/contents.css" rel="stylesheet" type="text/css" /> 

 

如何调用phpcms v9中的广告中的循环代码参数

liuying阅读(318)评论(0)

以下是关高模块循环调用方法:
调用代码:

  1. {pc:get sql="SELECT setting FROM v9_poster WHERE spaceid = 12 AND type='images' AND disabled=0 ORDER BY listorder ASC" num="5"}  
  2. {loop $data $r}  
  3. <?php  
  4. eval("$narry =$r[setting];"); 
  5. ?> 
  6. <a href="{$narry[1][linkurl]}" target="_blank"><img src="{$narry[1][imageurl]}" alt="{$narry[1][alt]}" width="940" height="300"/></a>  
  7. {/loop}  
  8. {/pc} 

在上面的调用代码中,关键的参数有:spaceid = 12、type=’images’、{$narry[1][具体数据名称]}这三种类。

经过对数据的分析,不同广告类型的循环数据名称不同,下面依次列出来:

广告type有三种:text、image、flash,矩形横幅、固定位置、漂浮移动、对联广告、图片轮换广告、图片列表广告、文字广告和代码广告这8类广告中不同类别可选不同的type。

循环数据中$narry可以调用的数据有这么几个:

{$narry[1][paddleft]}、

{$narry[1][paddtop]}、

{$narry[1][linkurl]}、

{$narry[1][imageurl]}、

{$narry[1][alt]}、

{$narry[1][flashurl]}、

{$narry[1][code]}

注:如果是对联广告会有{$narry[2][linkurl]}、{$narry[2][imageurl]}、{$narry[2][alt]}。

phpcms v9单页面栏目的当前导航不高亮怎么解决教程

liuying阅读(244)评论(0)

我们在做网站的时候,经常碰到导航栏高亮功能,或者侧栏高亮,这个会涉及到几个问题:
1.栏目列表页子栏目高亮判断,如果当前页面为子栏目,他的顶级栏目如果在导航栏也要高亮。
2.内容页高亮,这个phpcms一般没有问题。
3.单页高亮判断。
主要问题就在这里,一般我们直接用$top_parentid参数来判断就可以。但是由于phpcms的设计问题,单页没有$top_parentid参数,如果单页为多级单页,那么这个办法就行不通了。
如何解决?
其实也比较简单,就是多加几个判断,由于单页有个$parentid参数,那么我们就可以以此来判断。
以下为参考代码:
导航栏带子导航菜单并且高亮
 

  1. <ul class="nav clearfix"
  2.         <li class="m {if !$catid} on{/if}" ><h3><a href="{siteurl($siteid)}"  title="网站首页">网站首页</a></h3></li> 
  3.         {pc:content action="category" catid="0" num="25" siteid="$siteid" order="listorder ASC"
  4.         {loop $data $k $v
  5.         <li class="s">|</li> 
  6.         <li class="m {if $top_parentid == $v[catid]||$catid==$v[catid]||$parentid==$v[catid]} on{/if}"
  7.         <h3><a href="{$v[url]}"title="{$v[catname]}">{$v[catname]}</a></h3> 
  8.         {if $v[child]==1} 
  9.         {pc:content action="category" catid="$k" num="10" siteid="$siteid" order="listorder ASC"
  10.         <ul class="sub"
  11.         {loop $data $r
  12.         <li> <a href="{$r[url]}" title="{$r[catname]}">{$r[catname]}</a></li> 
  13.         {/loop} 
  14.         </ul> 
  15.         {/pc} 
  16.         {/if}       
  17.         </li> 
  18.         {/loop} 
  19.         {/pc} 
  20.     <li class="block" style=""></li> 
  21.     </ul> 

当然这个属于普遍通用的,对于特殊情况可能仍有一些bug,比如单页为3级以上的,那么这个可能失效了,但是对于一般的网站够用了,而且这个的好处是不用修改phpcms的程序了。

phpcms v9文章列表页调用组图标签写法

liuying阅读(251)评论(0)

今天该模版的时候有这个需求 循环组图字段的时候 发现没有输出 也没报错. 捣腾了半天 var_dump($r['pictureurls']) 发现array被转成string了.
下面是代码.

  1. {pc:content action="lists" catid="$catid" num="10" order="listorder DESC" moreinfo="1" page="$page"
  2.         <div class=""
  3.             {loop $data $n $r
  4.                 <ul class="content dh-02" style="border-bottom:0;"
  5.                     <li><a href="{$r[url]}">{$r[title]}</a></li> 
  6.                 </ul> 
  7.                 <div class="col-auto"
  8.                     {loop string2array($r['pictureurls']) $pic_k $v
  9.                         {if $pic_k>3} 
  10.                                   {php break
  11.                         {/if
  12.                         <a href="{$r[url]}"><img src="{thumb($v[url],175,120)}" width="175" height="120" alt="{$v[alt]}"/></a> 
  13.                     {/loop} 
  14.                 </div> 
  15.             {/loop} 
  16. </div> 
  17.     {/pc} 

上面代码中的这段代码的作用是只输出组图的前4个图片. 需要更多的自己改. 不做限制的请把这段代码删掉.

  1. {if $pic_k>3} 
  2.        {php break
  3. {/if

方法二:
已下标签是调用全部组图

  1. {pc:content action="lists" catid="$catid" num="1" moreinfo="1" order="id DESC" " page="$page"} 
  2. {loop $data $v
  3. {$v[title]} 
  4. <?php 
  5. $arr = $v[pictureurls]; 
  6. $arr ="$arr =$arr ;"
  7. eval($arr ); 
  8. ?> 
  9. {loop $arr $r
  10.  <img src="{thumb($r[url], 100, 137, 0)}" alt="{$r[alt]}" rel="{$r[url]}"/> 
  11.  
  12. {/loop} 
  13. {/loop} 
  14. {/pc} 

 

phpcms v9 box类型输出选项名称无效解决办法

liuying阅读(346)评论(0)

要用到box涵数,调用方法如下:
{box('fenlei',$r[fenlei],$modelid)}

前提你在使用BOX函数前必须要安装信息模块
如果不想安装那么就自己增加一下BOX函数放到这个文件里就可以:extention.func.php
phpcmslibsfunctionsextention.func.php

  1. /** 
  2. * 根据box类型字段获取显示名称 
  3. * @param $field 字段名称 
  4. * @param $value 字段值 
  5. * @param $modelid 字段所在模型id 
  6. */ 
  7. function box($field$value$modelid='') { 
  8.         $fields = getcache('model_field_'.$modelid,'model'); 
  9.         extract(string2array($fields[$field]['setting'])); 
  10.         $options = explode("
    "
    ,$fields[$field]['options']); 
  11.         foreach($options as $_k) { 
  12.                 $v = explode("|",$_k); 
  13.                 $k = trim($v[1]); 
  14.                 $option[$k] = $v[0]; 
  15.         } 
  16.         $string = ''
  17.         switch($fields[$field]['boxtype']) { 
  18.                         case 'radio'
  19.                                 $string = $option[$value]; 
  20.                         break
  21.  
  22.                         case 'checkbox'
  23.                                 $value_arr = explode(',',$value); 
  24.                                 foreach($value_arr as $_v) { 
  25.                                         if($_v$string .= $option[$_v].' 、'
  26.                                 } 
  27.                         break
  28.  
  29.                         case 'select'
  30.                                 $string = $option[$value]; 
  31.                         break
  32.  
  33.                         case 'multiple'
  34.                                 $value_arr = explode(',',$value); 
  35.                                 foreach($value_arr as $_v) { 
  36.                                         if($_v$string .= $option[$_v].' 、'
  37.                                 } 
  38.                         break
  39.                 } 
  40.                         return $string

以上填加完毕就可以调用了
{box('fenlei',$r[fenlei],$modelid)}

phpcms v9 全站搜索方法

liuying阅读(309)评论(0)

简单修改一下v9默认的搜索功能,可以不按模型搜索全站内容
下面是被修改后的search模块中的index.php文件

  1. defined('IN_PHPCMS'or exit('No permission resources.'); 
  2. pc_base::load_sys_class('form','',0); 
  3. pc_base::load_sys_class('format','',0); 
  4. class index { 
  5.     function __construct() { 
  6.         $this->db = pc_base::load_model('search_model'); 
  7.         $this->content_db = pc_base::load_model('content_model'); 
  8.     } 
  9.      
  10.     /** 
  11.      * 关键词搜索 
  12.      */ 
  13.     public function init() { 
  14.         //获取siteid 
  15.         $siteid = isset($_REQUEST['siteid']) && trim($_REQUEST['siteid']) ? intval($_REQUEST['siteid']) : 1; 
  16.         $SEO = seo($siteid); 
  17.   
  18.         //搜索配置 
  19.         $search_setting = getcache('search'); 
  20.         $setting = $search_setting[$siteid]; 
  21.   
  22.         $search_model = getcache('search_model_'.$siteid); 
  23.         $type_module = getcache('type_module_'.$siteid); 
  24.   
  25.         if(isset($_GET['q'])) { 
  26.             if(trim($_GET['q'])=='') { 
  27.                 header('Location: '.APP_PATH.'index.php?m=search');exit
  28.             } 
  29.             $typeid = emptyempty($_GET['typeid']) ? 0 : intval($_GET['typeid']); 
  30.             $time = emptyempty($_GET['time']) || !in_array($_GET['time'],array('all','day','month','year','week')) ? 'all' : trim($_GET['time']); 
  31.             $page = isset($_GET['page']) ? intval($_GET['page']) : 1; 
  32.             $pagesize = 10; 
  33.             $q = safe_replace(trim($_GET['q'])); 
  34.             $q = new_html_special_chars(strip_tags($q)); 
  35.             $q = str_replace('%'''$q);    //过滤'%',用户全文搜索 
  36.             $search_q = $q;    //搜索原内容 
  37.   
  38.             $sql_time = $sql_tid = ''
  39.             if($typeid$sql_tid = ' AND typeid = '.$typeid
  40.             //按时间搜索 
  41.             if($time == 'day') { 
  42.                 $search_time = SYS_TIME – 86400; 
  43.                 $sql_time = ' AND adddate > '.$search_time
  44.             } elseif($time == 'week') { 
  45.                 $search_time = SYS_TIME – 604800; 
  46.                 $sql_time = ' AND adddate > '.$search_time
  47.             } elseif($time == 'month') { 
  48.                 $search_time = SYS_TIME – 2592000; 
  49.                 $sql_time = ' AND adddate > '.$search_time
  50.             } elseif($time == 'year') { 
  51.                 $search_time = SYS_TIME – 31536000; 
  52.                 $sql_time = ' AND adddate > '.$search_time
  53.             } else { 
  54.                 $search_time = 0; 
  55.                 $sql_time = ''
  56.             } 
  57.             if($page==1 && !$setting['sphinxenable']) { 
  58.                 //精确搜索 
  59.                 $commend = $this->db->get_one("`siteid`= '$siteid' $sql_tid $sql_time AND `data` like '%$q%'"); 
  60.             } else { 
  61.                 $commend = ''
  62.             } 
  63.             //如果开启sphinx 
  64.             if($setting['sphinxenable']) { 
  65.                 $sphinx = pc_base::load_app_class('search_interface''', 0); 
  66.                 $sphinx = new search_interface(); 
  67.                  
  68.                 $offset = $pagesize*($page-1); 
  69.                 $res = $sphinx->search($qarray($siteid), array($typeid), array($search_time, SYS_TIME), $offset$pagesize'@weight desc'); 
  70.                 $totalnums = $res['total']; 
  71.                 //如果结果不为空 
  72.                 if(!emptyempty($res['matches'])) { 
  73.                     $result = $res['matches']; 
  74.                 } 
  75.             } else { 
  76.                  
  77.                 $sql = "`siteid`= '$siteid' $sql_tid $sql_time AND `data` like '%$q%'"
  78.                  
  79.   
  80.                 $result = $this->db->listinfo($sql'searchid DESC'$page, 10); 
  81.             } 
  82.            
  83.             //如果结果不为空 
  84.             if(!emptyempty($result) || !emptyempty($commend['id'])) { 
  85.                 foreach($result as $_v) { 
  86.                     if($_v['typeid']) $sids[$_v['typeid']][] = $_v['id']; 
  87.                 } 
  88.   
  89.                 if(!emptyempty($commend['id'])) { 
  90.                     if($commend['typeid']) $sids[$commend['typeid']][] = $commend['id']; 
  91.                 } 
  92.                 $model_type_cache = getcache('type_model_'.$siteid,'search'); 
  93.                 $model_type_cache = array_flip($model_type_cache); 
  94.                 $data = array(); 
  95.                 foreach($sids as $_k=>$_val) { 
  96.                     $tid = $_k
  97.                     $ids = array_unique($_val); 
  98.   
  99.                     $where = to_sqls($ids'''id'); 
  100.                     //获取模型id 
  101.                     $modelid = $model_type_cache[$tid]; 
  102.   
  103.                     //是否读取其他模块接口 
  104.                     if($modelid) { 
  105.                         $this->content_db->set_model($modelid); 
  106.                      
  107.                         /** 
  108.                         * 如果表名为空,则为黄页模型 
  109.                         */ 
  110.                         if(emptyempty($this->content_db->model_tablename)) { 
  111.                             $this->content_db = pc_base::load_model('yp_content_model'); 
  112.                             $this->content_db->set_model($modelid); 
  113.   
  114.                         } 
  115.                         $datas = $this->content_db->select($where'*'); 
  116.                     } 
  117.                     $data = array_merge($data,$datas); 
  118.                 } 
  119.                 $pages = $this->db->pages; 
  120.                 $totalnums = $this->db->number; 
  121.             
  122.                 //如果分词结果为空 
  123.                 if(!emptyempty($segment_q)) { 
  124.                     $replace = explode(' '$segment_q); 
  125.                     foreach($replace as $replace_arr_v) { 
  126.                         $replace_arr[] =  ''.$replace_arr_v.''
  127.                     } 
  128.                     foreach($data as $_k=>$_v) { 
  129.                         $data[$_k]['title'] = str_replace($replace$replace_arr$_v['title']); 
  130.                         $data[$_k]['description'] = str_replace($replace$replace_arr$_v['description']); 
  131.                     } 
  132.                 } else { 
  133.                     foreach($data as $_k=>$_v) { 
  134.                         $data[$_k]['title'] = str_replace($q''.$q.''$_v['title']); 
  135.                         $data[$_k]['description'] = str_replace($q''.$q.''$_v['description']); 
  136.                     } 
  137.                 } 
  138.             } 
  139.             $execute_time = execute_time(); 
  140.             $pages = isset($pages) ? $pages : ''
  141.             $totalnums = isset($totalnums) ? $totalnums : 0; 
  142.             $data = isset($data) ? $data : ''
  143.              
  144.             include    template('search','list'); 
  145.         } else { 
  146.             include    template('search','index'); 
  147.         } 
  148.     } 
  149.   
  150.      
  151.     public function public_get_suggest_keyword() { 
  152.         $url = $_GET['url'].'&q='.$_GET['q']; 
  153.         $trust_url = array('c8430fcf851e85818b546addf5bc4dd3'); 
  154.         $urm_md5 = md5($url); 
  155.         if (!in_array($urm_md5$trust_url)) exit
  156.          
  157.         $res = @file_get_contents($url); 
  158.         if(CHARSET != 'gbk') { 
  159.             $res = iconv('gbk', CHARSET, $res); 
  160.         } 
  161.         echo $res
  162.     } 
  163.      
  164.     /** 
  165.      * 提示搜索接口 
  166.      * TODO 暂时未启用,用的是google的接口 
  167.      */ 
  168.     public function public_suggest_search() { 
  169.         //关键词转换为拼音 
  170.         pc_base::load_sys_func('iconv'); 
  171.         $pinyin = gbk_to_pinyin($q); 
  172.         if(is_array($pinyin)) { 
  173.             $pinyin = implode(''$pinyin); 
  174.         } 
  175.         $this->keyword_db = pc_base::load_model('search_keyword_model'); 
  176.         $suggest = $this->keyword_db->select("pinyin like '$pinyin%'"'*', 10, 'searchnums DESC'); 
  177.          
  178.         foreach($suggest as $v) { 
  179.             echo $v['keyword']."
    "
  180.         } 
  181.   
  182.          
  183.     } 
  184. ?> 

然后在header.html模板上面增加一个“不限”的搜索条件,typeid对应的值为0,search中的index.html和lists.html也做相同处理,效果如本站,这样只要不选择模型那么搜索出来的结果就是所有模型中符合条件的数据

因为复制代码可能导致代码错误,请使用下面的压缩包中的文件

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活