top-image

OLDER ARTICLES

  • 编辑 /include/taglib/arclist.lib.php 和 /include/arc.listview.class.php 文件,将其中的 http:// 修改为 (http|https)://

PbootCMS 织梦无法上传ico图标文件的解决办法

  1. 后台设置

    • 进入后台 -> 系统 -> 系统基本参数 -> 附件设置,向“图片浏览器文件类型”中添加 |ico
  2. 编辑文件

    • 编辑 /include/dialog/select_images_post.php 文件,将44行的 $sparr 数组中添加 image/xicon
    • 编辑 /include/dialog/select_images.php 文件,将193行的正则表达式中添加 ico
  • 后台切换语言

    • 在后台–网站设置–网站语言中选择所需语言,后台语言会即时变化。
  • 前台语言支持

    • 主题需支持多语言,具体步骤如下:

    1. 编写语言包文件

      • 在主题文件目录下创建language目录,并根据语言版本命名文件,如en.phpzh-cn.phpzh-tw.php
      • 文件内容格式示例:
        // zh-cn.php
        <?php
        return array(
            'closemenu' => '收起菜单',
        );
        ?>
        // zh-tw.php
        <?php
        return array(
            'closemenu' => '收起選單',
        );
        ?>
        // en.php
        <?php
        return array(
            'closemenu' => 'Stow menu',
        );
        ?>
    2. 载入语言包

      • 在主题的include.php文件中添加以下代码:
        $zbp->LoadLanguage('theme', '主题id');
    3. 使用语言包

      • 在模板中使用$lang[主题ID][KEY]引用语言包中的内容,例如:
        {$lang['主题id']['closemenu']}

         

  • 问题现象

    • 服务器迁移后,网站提示“502 Bad Gateway”。
  • 排查步骤

    • 检查服务器是否正常连通。
    • 查看Nginx错误日志。
    • 检查PHP版本是否正确。
  • 解决方法

    • 旧服务器上每个网站的PHP版本可能不一致,迁移到新服务器后需要手动调整PHP版本。
    • 重新选择正确的PHP版本并保存。
  1. 添加函数

    • 在 /e/class/userfun.php 文件中添加以下代码:
    function tagslink($aid, $num = 5, $tbname = 'news') {
        global $public_r, $dbtbpre, $empire, $navinfor, $class_r;
        $qr = $empire->fetch1("select rewritetags from {$dbtbpre}enewspublic limit 1");
        $sr = $empire->fetch1("select stb from {$dbtbpre}ecms_{$tbname} where id=$aid");
        $fr = $empire->fetch1("select infotags from {$dbtbpre}ecms_{$tbname}_data_{$sr[stb]} where id=$aid");
        $tagstr = '' . $fr[infotags] . '';
        $tagarr = explode(",", $tagstr);
        for ($i = 0; $i < count($tagarr) && $i < $num; $i++) {
            if ($tagarr[$i]) {
                if ($qr[rewritetags]) { // 开启伪静态时的链接
                    $link = $public_r[newsurl] . "tags-" . urlencode($tagarr[$i]) . "-0.html";
                } else { // 动态的tags链接
                    $link = $public_r[newsurl] . "e/tags/?tagname=" . urlencode($tagarr[$i]);
                }
                $tags .= "<a href='$link' target='_blank'>" . $tagarr[$i] . "</a> ";
            }
        }
        return $tags;
    }
  2. 调用方法

    • 首页、列表页:
       
       
      <?=tagslink($bqr[id])?>
    • 内容页:
       
       
      <?=tagslink($navinfor[id])?>
  1. 伪静态设置

    • 后台:系统 – 系统设置 – 伪静态参数设置。
    • 修改静态规则:
       
       
      RewriteRule ^tags-(.+?)-(.+?)\.html$ /e/tags/index\.php\?tagid=$1&page=$2
  2. 调用tagid

    • 调用tagid的静态链接。
  1. 方法一:使用 titlelen 属性

    • 在 {dede:arclist} 标签中使用 titlelen 属性,例如:
       
       
      {dede:arclist typeid='2' row='6' titlelen='40' flag='c'}
      [field:title/]
      {/dede:arclist}
  2. 方法二:使用 cn_substr() 函数

    • 在 {dede:arclist} 或其他标签中使用 cn_substr() 函数,例如:
       
       
      [field:title function="cn_substr(@me,20)"/]

问题

  • 导入数据库时提示 dede_purview 错误,原因是MySQL版本不兼容。

解决方法

  1. 删除 USING BTREE 关键字

    • 打开 SQL 文件,找到以下代码:
       
       
      KEY `pkey` (`pkey`) USING BTREE
    • 修改为:
       
       
      KEY `pkey` (`pkey`)
  2. 修改表结构

    • 打开 SQL 文件,找到以下代码:
       
       
      KEY `pkey` (`pkey`) USING BTREE
    • 修改为:
       
       
      KEY `pkey` USING BTREE (`pkey`)
  1. 使用 SQL 查询
    • 在首页模板中使用以下代码:
      {dede:loop table='dede_member_company' row='10'}
      <div>
          <img src="[field:comface/]" alt="[field:company/]" /> <!-- 调用企业logo -->
          <h2>[field:company/]</h2> <!-- 调用企业名称 -->
          <p>[field:introduce/]</p> <!-- 调用企业简介 -->
      </div>
      {/dede:loop}

       

  1. 添加缺失的函数
    • 编辑 include/common.func.php 文件,添加以下代码:
      function make_hash() {
          $rand = dede_random_bytes(16);
          $_SESSION['token'] = ($rand === FALSE)
              ? md5(uniqid(mt_rand(), TRUE))
              : bin2hex($rand);
          return $_SESSION['token'];
      }
      
      function dede_random_bytes($length) {
          if (empty($length) OR !ctype_digit((string) $length)) {
              return FALSE;
          }
          if (function_exists('random_bytes')) {
              try {
                  return random_bytes((int) $length);
              } catch (Exception $e) {
                  return FALSE;
              }
          }
          if (defined('MCRYPT_DEV_URANDOM') && ($output = mcrypt_create_iv($length, MCRYPT_DEV_URANDOM)) !== FALSE) {
              return $output;
          }
          if (is_readable('/dev/urandom') && ($fp = fopen('/dev/urandom', 'rb')) !== FALSE) {
              is_php('5.4') && stream_set_chunk_size($fp, $length);
              $output = fread($fp, $length);
              fclose($fp);
              if ($output !== FALSE) {
                  return $output;
              }
          }
          if (function_exists('openssl_random_pseudo_bytes')) {
              return openssl_random_pseudo_bytes($length);
          }
          return FALSE;
      }

       

  1. 控制友链长度

    • 在调用友链的标签中使用titlelen属性,例如:
       
       
      {dede:flink titlelen='20' /}
  2. 控制链接类型

    • 使用type属性,例如:
       
       
      {dede:flink type='image' /} <!-- 图片链接 -->
      {dede:flink type='text' /} <!-- 文字链接 -->
Page 561 of 1049:« First« 558 559 560 561 562 563 564 »Last »
bottom-img