分类 教程 下的文章

Css学习日记:导航第二版样式

再次更新了一下导航的CSS,代码如下,演示如我。

阅读

Css学习日记:更好导航菜单样式

大苏虽然是计算机专业毕业的,但是二十年前我们的学的什么,,,HTML大学学的是相当扎实,PHP还是当初泡 K666 的时候自学的,但是也只是局限于一知半解,Css更别提了。自从进了做主题这个坑,Css就成了逃不过去的一道坎,只能慢慢摸索了,今天写了个导航菜单样式表,还行,嘿嘿!

阅读

在markdown中直接添加html代码

众所周知,typecho采用的是markdown文章编辑器,使用起来比较方便。

但是对于像我这样的新手来说,在markdown中要进行对齐方式、颜色等属性设置,或者想添加一段html长代码时,就不知道怎么弄了。

经过一番了解,原来在markdown中添加html代码的方法非常简单,只需要使用三个英文半角感叹号!!!在前后将html代码包起来就可以了。

阅读

Typecho友链插件启用错误

今天晚上咋地也睡不着了,想着把友链弄一下,后来还是打算用插件吧,省事,谁知道启动插件提示错误信息:数据表建立失败,友情链接插件启用失败。错误号:42S01,想着可能就是原来用友人C的时候插件写入了数据库,导致了数据库表重复,只能修改数据库表了。

  1. 进数据库把 typecho_links 这张表备份到本地(或者把整个数据库备份);
  2. 备份好了之后,把typecho_links这张表删除;
  3. 再进入网站后台,重新启用插件(这时候不报错了);
  4. 最后把刚刚备份在本地的typecho_links表重新导入到数据库里。

后来百度了一下,还有一种简单的解决办法,加个判断语句就行了

$code = $e->getCode();
    if(('Mysql' == $type && 1050 == $code) ||
            ('SQLite' == $type && ('HY000' == $code || 1 == $code))) {
        try {
            $script = 'SELECT `lid`, `name`, `url`, `sort`, `image`, `description`, `user`, `order` from `' . $prefix . 'links`';
            $installDb->query($script, Typecho_Db::READ);
            return '检测到友情链接数据表,友情链接插件启用成功';                    
        } catch (Typecho_Db_Exception $e) {
            $code = $e->getCode();
            if(('Mysql' == $type && 1054 == $code) ||
                    ('SQLite' == $type && ('HY000' == $code || 1 == $code))) {
                return Links_Plugin::linksUpdate($installDb, $type, $prefix);
            }
            throw new Typecho_Plugin_Exception('数据表检测失败,友情链接插件启用失败。错误号:'.$code);
        }
    } else if('Mysql' == $type && '42S01' == $code){
        /* 如果数据库存在 */
        $script = 'SELECT `lid`, `name`, `url`, `sort`, `image`, `description`, `user`, `order` from `' . $prefix . 'links`';
        $installDb->query($script, Typecho_Db::READ);
        return '检测到友情链接数据表,友情链接插件启用成功';**
    } else {
        throw new Typecho_Plugin_Exception('数据表建立失败,友情链接插件启用失败。错误号:'.$code);
    }

我是直接删除了数据库的typecho_links表,此问题完美解决。

个人博客运行时间统计代码

做统计时间的思路就是从你开始建站的时间戳到现在的时间戳的差,然后除以1年内多少秒就得到运行的年,月、天以此例推。但话又说回来这还是有点偏差,因为一年有闰年和闰月之说,所有多一天和少一天的时间戳是有误差的,这点大家要明白。知道原理了,下面来看看代码吧

<script>
    function secondToDate(second) {
        if (!second) {
            return 0;
        }
        var time = new Array(0, 0, 0, 0, 0);
        if (second >= 365 * 24 * 3600) {
            time[0] = parseInt(second / (365 * 24 * 3600));
            second %= 365 * 24 * 3600;
        }
        if (second >= 24 * 3600) {
            time[1] = parseInt(second / (24 * 3600));
            second %= 24 * 3600;
        }
        if (second >= 3600) {
            time[2] = parseInt(second / 3600);
            second %= 3600;
        }
        if (second >= 60) {
            time[3] = parseInt(second / 60);
            second %= 60;
        }
        if (second > 0) {
            time[4] = second;
        }
        return time;
    }
</script>
<script type="text/javascript" language="javascript">
    function setTime() {
        // 博客创建时间秒数,时间格式中,月比较特殊,是从0开始的,所以想要显示5月,得写4才行,如下
        var create_time = Math.round(new Date(Date.UTC(2013, 4, 22, 0, 0, 0))
                .getTime() / 1000);
        // 当前时间秒数,增加时区的差异
        var timestamp = Math.round((new Date().getTime() + 8 * 60 * 60 * 1000) / 1000);
        currentTime = secondToDate((timestamp - create_time));
        currentTimeHtml = currentTime[0] + '年' + currentTime[1] + '天'
                + currentTime[2] + '时' + currentTime[3] + '分' + currentTime[4]
                + '秒';
        document.getElementById("htmer_time").innerHTML = currentTimeHtml;
    }
    setInterval(setTime, 1000);
</script>
   运行时间:<span id="htmer_time" style="color: red;"></span>

阅读