Typecho搬家至TP-log过程吐槽

by 叶开楗 · 2021-04-27 · 0 次阅读

前言

看标题按道理来说应该是记录吧?但是为什么是吐槽呢?因为我不会写长文,我喜欢吐槽那样想到啥写啥分段的那种哈哈。

再次要感谢“TP-log”作者“老司机(FLYER)”指导和答复才能让我又节省了几天时间哈哈,不会代码的小白就是这样难受o(╥﹏╥)o

起因

最开始我是因为想换个主题【新主题?怕你们不能接受诶】,又怕用户体验不太好,发表后得到很多博友的支持(ps:然后我就飘了)。在寻找的新的主题模板过程中发现了“TP-log”这个博客程序,看介绍和图片感觉很nice,而且目前版本才1.0我个人很喜欢体验新鲜的事物,然后就有了现在的文章了。

本地安装

没错我第一步安装就碰到问题了,提示报错如下:

创建数据表tp\_blog成功 SQL语句执行失败SQLSTATE\[HY000\]: General error: 1366 Incorrect integer value: '' for column 'view' at row 3

这一步骤卡了我1小时,期间重复安装3次,百度半小时无果,最终我悟了可能mysql版本不支持,后切换mysql5.5版本安装成功!

 title=

成功安装以后,本地体验一番各种,感觉很不错,就研究起了怎么迁移数据库,具体看我发表的“为了不负你们的支持,我绝对把程序给换了~

转移数据库

这个是我最难得地方,花了我2、3天,真的是纯手动复制粘贴,没办法小白不会写代码,作者也说了没时间给我写转移数据库工具,只能自己来。

 title=

 title=

对这个数据库ID排序都是我手动排的哈哈,都是一列列复制粘贴的,但也是因为这个原因很多旧的ID连续不上去,导致二级回复出现了问题o(╥﹏╥)o

二级回复

前面的数据库在我慢慢的折腾中慢慢差不多了,于是我又测试了一下程序一些地方,结果就是发现二级回复了不了,提示500报错,我又去作者博客试了一下发现他也是一样的问题,为此我个给了作者发了邮件期待回复(3封),也因为前面折腾数据库身心俱乏不想折腾了,就有了“好吧我承认折腾失败了,休息休息”。

 title=

后面又因为“凡哥”评论我又折腾了起来,这次我终于被我搞定了二级评论出错的问题了。

 title=

我最开始分析,提示错误500是没有这个问题,我打开路径一看有啊?那就奇怪了,又百度了很久才知道这是ThinkPHP ajax 500请求 也找到一个办法“thinkphp5.0未定义变量模板中提示错误”大概就是无视报错继续运行吧。

//在config.php文件顶部添加:
error\_reporting(E\_ERROR | E\_WARNING | E\_PARSE);

加上了这行代码以后成功评论,当我又发现了一个就是二级评论默认会带个@,虽然评论成功了没有@xxx让我不舒服不爽斯基,我又开始折腾起来,因为前面百度的时候顺便知道ThinkPHP 怎么开启调试,这次是终于让我找到原因了。

 title=

8] ErrorException in Comment.php line 331
未定义变量: author

        $date['gid'] = $data['gid'];
        $date['pid'] = $data['pid'];
        $date['date'] = time();
        $date['poster'] = $data['poster'];
        if ($data['author'] != 0 || $data['author'] != '') {        
            $content = '@' . addslashes($author ) . ':' . $data['comment'];
            $date['comment'] = $content;
        }else{
        $date['comment'] = $data['comment'];
        }
        
        
        $date['mail'] = $data['mail'];
        $date['url'] = $data['url']?$data['url']:Core::loadAction("Setting/getSetting",['column'=>"site_host"]);
        $date['ip'] = Request::instance()->ip();

这样报错以后顺着报错找到问题,定位到这个地方,终于是解决了!!给 $author 定义成功解决~

$author=$data\['author'\];

 title=

markdown转html

typecho的文章都是markdown格式,这里要么就是在数据库全给转成html格式,要么就是前段输出的时候改markdown格式,这里凡哥也是给我参考答案了“php 解析markdown
”但是那时候不懂这些模块的啥的,也折腾了几小时不懂就放弃了(ps:现在我估计有点思路能搞定了),最终方案手动转换,就是我复制出来这转换好,在粘贴回去。o(╥﹏╥)o

 title=

首页缩略图

主题默认的是,你需要自己手动上传缩略图,如果没上传就是没有,那就输默认图片。但是我想改成,先判断是否存在上传的缩略图,不存在就输出取文章第一张图片作为缩略图,都没有呢?那就输出随机缩略图~

为此我也是百度了一大堆,但是一点实用性都没有,我小白看不懂,但是最终还是被我搞定了~

 title=

代码如下:

application\\common.php 添加以下代码

//取文章内容第一张图片作为缩略图,没有就输出随机缩略图
// postimg($vo\['content'\]);
//{$vo.content|postimg}
//'{empty name="vo.thumb"}{$vo.content|postimg}{else/}{$vo.thumb}{/empty}'

function postimg($content){
$str = $content;
preg\_match('/\]\*?src="(\[^"\]\*?)"\[^>\]\*?>/i', $str, $match);
if (!isset($match\[1\])) {
    echo "https://picsum.photos/200/150";
} else {
    echo $match\[1\];
}

}

在修改: \\default\\index\\index.html 文件

把:

{empty name="vo.thumb"}\_\_THEMES\_\_/img/00.png{else/}{$vo.thumb}{/empty}

修改为:

{empty name="vo.thumb"}{$vo.content|postimg}{else/}{$vo.thumb}{/empty}

这里我也是修改了语法,不然原本我是直接在index.html 套用下面的语法

\]\*?src="(\[^"\]\*?)"\[^>\]\*?>/i',$str,$match); 


if (!isset($match\[1\])) {
echo "https://picsum.photos/200/150";
}else{
echo $match\[1\]; 
}
?>

搬家开始

上面都折腾差不多的时候,我已经开始准备搬家了,这次是一点问题都没有哈哈哈,我都规划了好了,考虑到以前的文章可能URL不一样,我考虑了两种方案:

一:使用百度网站改版URL匹配

这种方案就是麻烦了点,访问以前的文章跳转到新的地址,当然nginx设置301也可以但是我感觉麻烦。

 title=

二:下载整站为html

我这里是用了这个方案,就一个字简单方便,保持了原有的一切不变哈哈哈,我这里用了这个软件。

 title=

效果如下:

 title=

这个方案是最完美的哈哈,百度一些搜索引擎的收录不会掉,我又不用那么麻烦去设置301。

邮件通知

其实昨天3点就搞定了,但是我又发现了一件事情就算邮件通知没反应!!!我就又开始折腾了,各种找原因,一直从下午三点折腾到晚上7、8点简直了!

期间我也是各种排查换QQ邮箱,谷歌邮箱,换端口25、456、587、都没反应。于是我自己单端php发送邮件测试,这不是可以吗?

 title=

其他排查过程省略..... 太难了。

最终无奈,我只能写邮件给作者了,估计很忙前面的邮件没有回复,我也没抱啥期望,但是这次作者给我回的很及时 哈哈

 title=

作者给我回了一句“还有,你评论通知开始了吗?”卧槽,一语提醒梦中人,我没注意看,好家伙折腾几小时就是眼瞎,没开你在怎么折腾也没用

 title=

然后它重要可以了o(╥﹏╥)o,对了记得防火墙开放下端口,不然还是有你折腾的。

 title=

编辑器

昨天要写文章的时候,我又出问题了,这次我学聪明了,发邮件 哈哈 事实证明我是对的!

期间我也是以为php版本不兼容导致报错,就从7.4切换7.3还报错,切换5.6报错更严重了,切换回来发邮件给作者。

 title=

 title=

作者给我答复:

 title=

好家伙,原来可以切换编辑器的,然后今天按照作者的给的步骤切换了ueditor编辑器,因为以前用过,切换好了没问题,我就写这篇文章了。(ps:这个tp和typechp真的是各种不一样,不习惯 哈哈)

其实本来想自己折腾个markdown插件,但是看了作者给我发的两个插件源码,没思路啊,我小白,不然搞个新的编辑器,习惯了markdown编辑器,富文本编辑器虽然多,但是不习惯了。

最后的最后,我给我鸽了快一星期的博友们道个歉!一直没回复,我是个不折腾好坚决不继续其他的人,我就是除了在折腾博客会这样,其他呵呵没感觉,能不折腾就不折腾哈哈哈!

抱歉!抱歉!抱歉!

这里也是要感谢博客作者的,邮件回复!感觉经常打扰到他不好意思了!

 title=

标签:#

最后编辑于:2021-04-27 15:20:55