【开发者】大概算是进阶建议贴

超级版主 沉冰浮水 2019-5-16 3273

根据个人经验和理念,整理出的一些“这样写可能比较好”的内容,或者原来普遍使用方法其实已经有了替代。。

-------------------

初学者Teaching计划

https://bbs.zblogcn.com/thread-102975.html

沉冰浮水.tk | 我的咸鱼心←_←我大概率能够解决你所实际面临的问题(收费),然而”你提出的问题“却往往是另一个问题。

最后于 2020-5-18 被沉冰浮水编辑 ,原因:
最新回复 (13)
全部楼主
  • 超级版主 沉冰浮水 2020-5-18 0
    引用 2

    Z-Blog相关资讯RSS订阅-博友杂谈-ZBlogger技术交流中心

    https://bbs.zblogcn.com/thread-100631.html

    [开发者]正则表达式相关专贴-开发者中心-ZBlogger技术交流中心

    https://bbs.zblogcn.com/thread-101713.html

    ZBLOG应用中心验证回调服务端接收插件-开发者中心-ZBlogger技术交流中心

    https://bbs.zblogcn.com/thread-94905.html

    【开发者】1.6新增应用打包时排除文件(夹)功能专贴-开发者中心-ZBlogger技术交流中心

    https://bbs.zblogcn.com/thread-102780.html

    沉冰浮水.tk | 我的咸鱼心←_←我大概率能够解决你所实际面临的问题(收费),然而”你提出的问题“却往往是另一个问题。

    最后于 2020-6-19 被沉冰浮水编辑 ,原因:
  • 超级版主 沉冰浮水 2020-5-18 0
    引用 3

    ## 不要跨文件闭合HTML标签

    默认主题已按此标准修改:https://github.com/zblogcn/zblogphp/tree/master/zb_users/theme/default/template

    下图是默认模板的结构,除了html和body外,div#divAll之类的结束也在footer.php。很难排查是否正确闭合

    所以“让所有标签在当前文件闭合”感觉会好一些:

    {* Template Name:首页及列表页 *}
    <!DOCTYPE html>
    <html lang="{$lang['lang_bcp47']}">
    <head>
      {template:header}
    </head>
    <body class="multi {$type}">
      <!-- 历史原因,header被上边占了,这里可以用hero,而不是放在在一个文件里 -->
      {template:hero}
      <div id="divNavBar">
        <ul>{module:navbar}</ul>
      </div>
      <div id="divMiddle">
        <div id="divMain">列表索引或正文内容</div>
        <div id="divSidebar">{template:sidebar}</div>
      </div>
      {template:footer}
    </body>
    </html>

    沉冰浮水.tk | 我的咸鱼心←_←我大概率能够解决你所实际面临的问题(收费),然而”你提出的问题“却往往是另一个问题。

    最后于 4月前 被沉冰浮水编辑 ,原因:
  • 超级版主 沉冰浮水 2020-5-18 0
    引用 4

    文章页经常读取Tag作为关键词,然而不知道从什么时候起,都是在模板里遍历然后拼接,其实直接使用$article->TagsToNameString()或者$article->TagsName←←至少在14年就已经有这个方法了。。。

    沉冰浮水.tk | 我的咸鱼心←_←我大概率能够解决你所实际面临的问题(收费),然而”你提出的问题“却往往是另一个问题。

    最后于 2020-5-18 被沉冰浮水编辑 ,原因:
  • 超级版主 沉冰浮水 2020-5-20 0
    引用 5

    tags等系统模块内容的重建:

    zblog支持自定义module-tags等模板,但是在新主题启用时并不会主动更新到相应的模块,可使用下边方法触发重建:

    1、单纯重建相应内容:

    $zbp->AddBuildModule('tags');
    $zbp->AddBuildModule('previous'); // 可以依次添加多个要重建的模块
    $zbp->BuildModule();

    2、对模块其他属性进行设置后重建:

    // 将tags类似改为div
    $mod = $zbp->modulesbyfilename["tags"];
    $mod->Type = "div";
    $mod->Build();
    $mod->Save();

    沉冰浮水.tk | 我的咸鱼心←_←我大概率能够解决你所实际面临的问题(收费),然而”你提出的问题“却往往是另一个问题。

    最后于 2020-5-20 被沉冰浮水编辑 ,原因:
  • 超级版主 沉冰浮水 2020-5-25 0
    引用 6
    jQuery里不能用箭头函数。。

    沉冰浮水.tk | 我的咸鱼心←_←我大概率能够解决你所实际面临的问题(收费),然而”你提出的问题“却往往是另一个问题。

  • 超级版主 沉冰浮水 2020-5-28 0
    引用 7

    【VSCode】【PHP】【扩展】

    PHP DocBlocker - Visual Studio Marketplace

    https://marketplace.visualstudio.com/items?itemName=neilbrayfield.php-docblocker

    更多扩展见:

    【列表】VSCode插件推荐_电脑网络_沉冰浮水

    https://www.wdssmq.com/post/20201120794.html

    其中重点推荐的:

    [Format HTML in PHP]

    [PHP Intelephense]

    [Prettier]

    [Bracket Pair Colorizer]

    沉冰浮水.tk | 我的咸鱼心←_←我大概率能够解决你所实际面临的问题(收费),然而”你提出的问题“却往往是另一个问题。

    最后于 7月前 被沉冰浮水编辑 ,原因:
  • 超级版主 沉冰浮水 2020-5-30 0
    引用 8

    【编辑器】【代码片段】【VSCode】

    一些常用代码可以预先设置为代码片段,比如下边定义可以通过输入zbp快速生成global $zbp;

      "zbp": {
        "prefix": "zbp",
        "body": "global \\$zbp;",
        "description": "函数内调用zbp全局变量"
      }

    wdssmq/snippets: Z-Blog程序编辑器代码提示片段

    https://github.com/wdssmq/snippets

    沉冰浮水.tk | 我的咸鱼心←_←我大概率能够解决你所实际面临的问题(收费),然而”你提出的问题“却往往是另一个问题。

    最后于 12天前 被沉冰浮水编辑 ,原因:
  • 超级版主 沉冰浮水 2020-7-20 0
    引用 9
    【倡议】
    主题开发者可以在事实层面上逐步将commentpost.php改成comment-post.php
    没啥特别的理由,,强迫症使然。。

    沉冰浮水.tk | 我的咸鱼心←_←我大概率能够解决你所实际面临的问题(收费),然而”你提出的问题“却往往是另一个问题。

  • 超级版主 沉冰浮水 10月前 0
    引用 10

    【主题】【tips】

    <!-- 编辑入口 -->
    <span data-id="{$article.ID}" data-type="{$article.Type}" class="js-edt [is-pulled-right is-hidden]">[编辑]</span>

    JS:

        $(".js-edt").each(function () {
          const id = $(this).data("id");
          const type = $(this).data("type");
          const act = type ? "PageEdt" : "ArticleEdt";
          $(this).html(
            '[<a title="编辑" rel="external" href="' +
              window.bloghost +
              `zb_system/cmd.php?act=${act}&id=${id}">编辑</a>]`
          );
        }).removeClass("is-hidden hidden");

    JS部分可以用浏览器脚本引入,类似这样:https://github.com/wdssmq/userscript/blob/master/zblog/edt.user.js

    沉冰浮水.tk | 我的咸鱼心←_←我大概率能够解决你所实际面临的问题(收费),然而”你提出的问题“却往往是另一个问题。

  • 超级版主 沉冰浮水 10月前 0
    引用 11

    【关于应用配置中图片的上传】【来自水水的Diss】

    主题Logo,favicon,二维码等允许用户自行上传的图片,目前大部分都是调用UE的上传组件并且进了附件文件夹。。如果更换主题或者更换二维码内容时旧图片会形成冗余。。虽然也可以复用地址,但是找到旧图片也会很麻烦。所以你们连个move_uploaded_file都不会自己写么,自己写么,写么,么。

    注:实际保存路径应该使用规则文件排除,防止用户更新或重装时被覆盖;参考「zbignore.txt 参考

    -------------------

    mzERK - Z-Blog 应用中心

    https://app.zblogcn.com/?id=2120

    ----------------

    $act = GetVars("act", "GET");
    if ($act === "save") {
      CheckIsRefererValid();
      // 配置项保存 ↓
      foreach ($_POST as $key => $value) {
        $zbp->Config("mzERK")->$key = $value;
      }
      $zbp->SaveConfig("mzERK");
      // 配置项保存结束 ↑
      $extList = "png|jpg|jpeg|ico"; // 上传相关开始
      foreach ($_FILES as $key => $value) {
        if ($_FILES[$key]['error'] === 0) {
          $ext = GetFileExt($_FILES[$key]['name']);
          $file = mzERK_Path("u-{$key}"); // 根据字段返回实际文件路径,参考mzERK主题
          if (!HasNameInString($extList, $ext) || !is_file($file)) {
            continue;
          }
          if (is_uploaded_file($_FILES[$key]['tmp_name'])) {
            move_uploaded_file($_FILES[$key]['tmp_name'], $file);
          }
        }
      } // 上传结束
      $zbp->SetHint('good');
      Redirect('./main.php');
    }

    沉冰浮水.tk | 我的咸鱼心←_←我大概率能够解决你所实际面临的问题(收费),然而”你提出的问题“却往往是另一个问题。

    最后于 2月前 被沉冰浮水编辑 ,原因:
  • 超级版主 沉冰浮水 8月前 0
    引用 12

    【百度事件统计封装】

      // 百度统计事件
      function _hmtLOG(...args) {
        // const args = [].slice.call(arguments, 0);
        if ("undefined" !== typeof _hmt) {
          _hmt.push(["_trackEvent", ...args]);
        }
        console.log(args);
      }
      // 使用,最多支持三个参数
      _hmtLOG("阅读更多", "点击");
      _hmtLOG("阅读更多", "计时结束");
      _hmtLOG("阅读更多", "跳过");


    沉冰浮水.tk | 我的咸鱼心←_←我大概率能够解决你所实际面临的问题(收费),然而”你提出的问题“却往往是另一个问题。

  • 超级版主 沉冰浮水 8月前 0
    引用 13

    “随机”文章函数

    function xnxf_GenRnd($nums)
    {
      // 一种比较节省资源的随机文章获取方法-ZBLOG教程-鸟儿网络
      // https://www.birdol.com/zblogjiaocheng/756.html
      // 有修改和补充,以及list()方法是不是有php版本要求。。
      global $zbp;
      $sql = $zbp->db->sql->Select(
        $zbp->table['Post'],
        array("MIN(log_ID)", "MAX(log_ID)"),
        array(
          array('=', 'log_Type', '0'),
          array('=', 'log_Status', '0'),
        ),
        array('log_PostTime' => 'ASC'),
        null,
        null
      );
      $array = $zbp->db->Query($sql);
      list($min, $max) = explode(':', join(":", $array[0]));
      // list($min, $max) = $array[0]; // ← 这样写取不到值
      // 判断相等时仍然有$min和$min+1两种取法
      if ($max - $nums >= $min) {
        $i = mt_rand($min, $max - $nums + 1);
      } else {
        $i = $min;
      }
      $order = '';
      $where = array(
        array('=', 'log_Status', '0'),
        array('>=', 'log_ID', $i)
      );
      $articles = $zbp->GetArticleList(array('*'), $where, $order, array($nums), '');
      $rltHtml = "<h3 class=\"is-px-14 title\">随机文章</h3><ul class=\"a-color\">";
      foreach ($articles as $article) {
        $rltHtml .= "<li class=\"li-nowrap\"><a href=\"{$article->Url}\" title=\"{$article->Title}\">{$article->Title}</a></li>";
      }
      return $rltHtml . "</ul>";
    }


    沉冰浮水.tk | 我的咸鱼心←_←我大概率能够解决你所实际面临的问题(收费),然而”你提出的问题“却往往是另一个问题。

  • 用户 dokit 6月前 0
    引用 14
    沉冰浮水 文章页经常读取Tag作为关键词,然而不知道从什么时候起,都是在模板里遍历然后拼接,其实直接使用$article-&gt;TagsToNameString()或者$article-&gt ...
    获取带链接的tag,还是需要遍历一下吧?
    • ZBlogger技术交流中心
      15
          
返回