「Z-BlogPHP」数据库透析插件 DIY 演示

吐槽/反馈/建议:我的咸鱼心  爱发电-@wdssmq

感觉自己做很多事都是靠感觉上想做的那种感觉.jpg

数据库透析【基础依赖】 - Z-Blog 应用中心:

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

↑ 这个插件的功能描述就是「取出数据,处理后存回去」,适用于一些不适合直接用 SQL 实现的修改管理;

插件本身只是将待操作数据的遍历读取进行了封装,具体修改需要另行注册调用函数来实现;

为此我写了另一个插件——

数据库透析【功能定制】 - Z-Blog 应用中心:

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

↑ 本质上仍然是把一些东西先写好,然后用一个可定制的 /usr/xxx.php 来实现具体的用户需求,而不是为每种用户需求创建维护一个完整的插件;「此插件收费,可根据你的需求实现相应数据修改功能」

其实更早之前我已经写过一个「将不特定功能塞进一个插件」的插件——

DIY Something - Z-Blog 应用中心:

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

↑ 同样可以配合「数据库透析【基础依赖】」插件来实现数据库批量操作;

  • 按说明在/zb_users/plugin/diySth/usr/内创建一个文件夹DiyForDataBaseHD
  • 通过刷新「管理页」自动创建内部文件,会同时生成 CSS、JS 文件,不用理会;
  • DiyForDataBaseHD.php内写入下边内容,通过刷新「diySth插件管理页」加载功能;
  • 换到「数据库透析【基础依赖】」的管理页,应该就能看到添加的功能按钮;
<?php
// ----
// DiyForDataBaseHD_Filter
Add_Filter_Plugin('Filter_Plugin_Admin_Header', 'DiyForDataBaseHD_AddHook');

// ----
// DiyForDataBaseHD_Function
function DiyForDataBaseHD_AddHook()
{
  global $zbp;
  $fnList = $zbp->Config('DataBaseHD')->fnList;
  $fnList[] = array("fn" => "DiyForDataBaseHD_UpAlias", "mod" => "Post", "name" => "另名规范");
  $zbp->Config('DataBaseHD')->fnList = $fnList;
}

// 历史原因,一些文章的别名长度只有 10 位,对其筛选补一位
function DiyForDataBaseHD_UpAlias(&$post, $csrfToken = "")
{
  $tpl = "<p style='color:-color-;'>-id- 丨 -url- 丨 -oldHash- 丨 -newHash- | -Save- | 「-edit-」「-del-」</p>\n";

  $arrData = array();
  $arrData["-color-"] = "-black-";
  $arrData["-id-"] = $post->ID;
  $arrData["-url-"] = DataBaseHD_DIY_a($post->Url, $post->Title);
  $arrData["-oldHash-"] = crc32($post->Content);

  // 编辑或删除按钮
  $arrData["-edit-"] = "<a class=\"style-visited\" title=\"{$post->Title}\" target=\"_blank\" href='../../../zb_system/admin/edit.php?act=ArticleEdt&id={$post->ID}'>编辑</a>";
  // $arrData["-del-"] = "<a class=\"style-visited\" title=\"{$post->Title}\" target=\"_blank\" onclick=\"return window.confirm('即将删除「{$post->Title}」,请确认!');\" href=\"../../../zb_system/cmd.php?act=ArticleDel&id={$post->ID}&csrfToken={$csrfToken}\">删除</a>";

  // 主要功能代码 ↓

  $intDefLen = strlen("20220806158") - 1;

  // 跳过不符合条件的文章
  if (strlen($post->Alias) !== $intDefLen || !is_numeric($post->Alias)) {
    return;
  }
  // 更新别名
  $post->Alias = $post->Alias . "4";
  $bolRlt = $post->Save();
  // 更新链接
  $arrData["-url-"] = DataBaseHD_DIY_a($post->Url, $post->Title);
  // 保存操作的结果
  $arrData["-Save-"] = $bolRlt ? "保存成功" : "保存失败";

  // 主要功能代码 ↑

  echo strtr($tpl, $arrData);
}


爱发电

本文标题:《「Z-BlogPHP」数据库透析插件 DIY 演示》作者:沉冰浮水
原文链接:https://www.wdssmq.com/post/20220806158.html
特别注明外均为原创,转载请注明。

分享到微信

扫描二维码

可在微信查看或分享至朋友圈。

相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

网站分类

  • 订阅本站的 RSS 2.0 新闻聚合

搜索

本周旧文

近期观影记录:超级马里奥,死侍与金刚狼。。

搬家也告一段落,虽然搬过来的东西还得归置,新衣柜虽说已经散俩月味儿了,但还是不想放衣服进去。

要不我每年汇总整理一次??碎雨集_沉冰浮水_第1页

所以,不带这条的话,2024 年目前只发了 13 条嘟????

VSCode 内 git 操作卡住的时候没办法主动取消一直是个痛点,一般都是推送或拉取,今天连提交都卡了。。

又一个夏天过去了,所以今年也没买防水鞋套;然后天凉了,为了应对踢被子买了睡袋,不知道 1.2 米会不会略窄。。

《五至七时的克莱奥》,2018 年 6 月加入列表,21 年 11 月底发现 B 站上线了这部,直到前几天才看完,还是分两次看的。。接下来有五项是 2019 年的,都是电影 —— 略长的待办列表。。

有用程序自动抓取自己带 tag 的嘟,然后按年备份后从线上删除;刚发现去年的数据有备份但是没删线上??和本地数据对比后发现线上的还少一条,Why??

本质上,每个人需要的是「让自己面临的问题得到解决」的能力。。

这又涉及到直接能力和间接能力,,缺乏直接能力很正常,视情况可以通过学习来掌握直接能力,或者「请」有直接能力的人来帮自己解决。。

缺乏间接能力的情况是真没救,尤其是对「这是**我自己**面临的问题」这一前提没有明确认知的人。。

其实,在认知意义上,焦虑时我知道这种情绪对应「焦虑」这个文法词汇,此外还有「压抑」「悲伤」等等,然而「抑郁」其实是个我认知体系外的词,虽然经常一些情绪感受我找不到对应的语言词汇来表述,却也只能将其实表述为「找不到对应的语言词汇来表述」的某些感受。。

爱发电支持者

最新留言

友情链接