top-image

OLDER ARTICLES

错误信息:
未检测到您服务器环境的sqlite3数据库扩展,请检查php.ini中是否已经开启该扩展!另外,检测到您服务器支持pdo_sqlite扩展,您也可以修改数据库配置连接驱动为pdo_sqlite试试!

解决方法:
1. **第一种方法**:把数据库配置连接驱动改为pdo_sqlite
   - 打开数据库配置文件 `/apps/config/database.php`
   - 找到 `'type'` 这一行,把 `sqlite` 改为 `pdo_sqlite`

2. **第二种方法**:修改php.ini开启sqlite3扩展
   - 按照提示信息操作,检查php.ini中是否已经开启sqlite3扩展,未开启则开启之。
   - 用phpstudy pro来做个演示:
     1. 打开软件,找到设置-配置文件-php.ini-php7.3.4nts(网站使用的php版本,具体按照自己的选择)
     2. 快捷键 `ctrl+f` 调出查找框,输入 `sqlite3` 点击查找,找到 `;extension=sqlite3`,然后去掉前面的分号(`;`)接着快捷键 `ctrl+s` 保存。
     3. 重启服务,看使用的服务,选择apache重启或者nginx,服务重启后就ok了。

 

  • 问题:PbootCMS面包屑导航样式修改和自定义的设置方法。
  • 答案
    • 面包屑调用:
      {pboot:position}
    • 自定义参数:
      • separator=*:分隔符,默认为 >>
      • separatoricon=*:分割图标,例如 separatoricon='fa fa-angle-double-right'
      • indextext=*:首页文本,默认为“首页”。
      • indexicon=*:首页图标,例如 indexicon='fa fa-home'
  1. 修改 SitemapModel.php 文件

    • 打开 /apps/home/model/SitemapModel.php 文件
    • 在 78 行后面增加以下代码:
      public function getSortTags($scode) {
          $join = array(
              array('ay_content_sort b', 'a.scode=b.scode', 'LEFT'),
              array('ay_model c', 'b.mcode=c.mcode', 'LEFT')
          );
          $scode_arr = array();
          if ($scode) {
              $this->scodes = array();
              $scodes = $this->getSubScodes(trim($scode));
              $scode_arr = array(
                  "a.scode in (" . implode_quot(',', $scodes) . ")",
                  "a.subscode='$scode'"
              );
          }
          $result = parent::table('ay_content a')
              ->where('a.status=1')
              ->where("c.type=2 AND a.tags<>'")
              ->where($scode_arr, 'OR')
              ->join($join)
              ->order('a.visits DESC')
              ->column('a.tags');
          return $result;
      }

      修改 SitemapController.php 文件

    • 打开 /apps/home/controller/SitemapController.php 文件
    • 在 73 行后面增加以下代码:
      if (!empty($rs = $this->model->getSortTags(''))) {
          $tags = implode(',', $rs);
          $tags = array_unique(explode(',', $tags));
          foreach ($tags as $key2 => $value2) {
              if (!in_array($value2, array_column($data, 'tags'))) {
                  $url_rule_type = $this->config('url_rule_type') ?: 3;
                  if ($url_rule_type == 3) {
                      $link2 = Url::home('tag=' . urlencode($value2), '');
                  } else {
                      $link2 = Url::home('tag/' . urlencode($value2));
                  }
                  $str .= $this->makeNode($link2, date('Y-m-d'), '0.80');
              }
          }
      }
  • 访问 sitemap.xml 即可看到生成的带有 tag 的链接地址。
  • PbootCMS V3.2.5 版本对 URL 参数添加了判断:
    if(stripos(URL, '?') !== false && stripos(URL, '/?tag=') == false && stripos(URL, '/?page=') == false && stripos(URL, '/?ext_') == false){
        _404('您访问的内容不存在,请核对后重试!');
    }
  • 解决方法:
    • 打开 /apps/home/controller/IndexController.php 文件
    • 搜索 //默认地址跳转首页,大约在 218 行处
    • 将其修改为:
      $this->getIndexPage();

       

  • 问题描述
    • 在tag相关结果的列表中使用分页代码,点击分页地址栏会无限叠加参数。
  • 解决方案
    1. 修改 Paging.php 文件
      • 路径:core/view/Paging.php
      • 找到 buildBasicPage 方法。
      • 在 $qs = preg_replace('/[&\?]?page=([0-9]+)?/i', '', $qs); 下面加入:
        if (C == 'Tag') {
            // 优化 TAG分页 URL地址叠加
            $qs = false;
        }

         

  • 适用范围:全站任意地方均可使用。
  • 标签作用:用于调取指定ID的内容。
  • 调用示例
    html
     
    {pboot:content id=*}
    [content:title]
    {/pboot:content}
  • 控制参数
    • id=*:内容的ID号,必填。
    • scode=*:单页的分类编码,必填,仅适用于单页内容。
  • 可用标签
    • [content:id]:编号
    • [content:scode]:栏目编码
    • [content:subscode]:副栏目编码
    • [content:sortname]:栏目名称
    • [content:subsortname]:副栏目名称
    • [content:sortlink]:栏目链接
    • [content:subsortlink]:副栏目链接
    • [content:title]:标题
    • [content:titlecolor]:标题颜色
    • [content:subtitle]:副标题
    • [content:author]:作者
    • [content:source]:来源
    • [content:link]:链接
    • [content:outlink]:外部链接
    • [content:date]:发布日期
    • [content:ico]:缩略图
    • [content:pics]:图集
    • [content:content]:内容
    • [content:tags]:标签
    • [content:enclosure]:附件
    • [content:enclosuresize]:附件大小
    • [content:keywords]:关键词
    • [content:description]:描述
    • [content:istop]:是否置顶
    • [content:isrecommend]:是否推荐
    • [content:isheadline]:是否头条
    • [content:visits]:访问数量
    • [content:likes]:点赞数量
    • [content:oppose]:反对数量
    • [content:likeslink]:点赞链接
    • [content:opposelink]:反对链接
    • [content:ext_***]:调取扩展字段内容
{pboot:nav num=40 parent={sort:tcode}}
[nav:name]
{/pboot:nav}
  • num=40:显示的子栏目数量。
  • parent={sort:tcode}:当前栏目的顶级栏目编码。
  1. esub截取

     
     
    <?=esub($bqr[classname], 4)?>
  2. substr截取

     
     
    <?=substr($bqr[classname], 4, 4)?>
  1. 基本使用

     
     
    <?=date('Y-m-d H:i:s', $bqr[newstime])?>
  2. 只显示日期

     
     
    <?=date('Y-m-d', $bqr[newstime])?>
  3. 只显示时间

     
     
    <?=date('H:i:s', $bqr[newstime])?>
  4. 内容页使用

     
     
    <?=date('Y-m-d', $navinfor[newstime])?>
  1. 找到分页函数

    • 文件路径:e/class/connect.php
    • 搜索 function page1,找到分页代码段。
  2. 修改分页代码

    • 根据模板需求修改分页代码,增加或修改CSS样式,改变选中状态等。
Page 593 of 1049:« First« 590 591 592 593 594 595 596 »Last »
bottom-img