“插件” 标签页面:

  • WordPress取消英文标点符号自动替换中文标点符号的优雅方法

    众所周知,WordPress中文版有个特性,会将每一处英文引号("")都稀里哗啦转化为中文引号(“”)。不仅仅是英文引号,在WordPress翻译文件定义了不少自动转换符号,具体可以参考这里

    对文字博客来说,这是个好功能,这样会避免用错英文标点。

    然而,WordPress是独立的php程序,中文社区中懂得使用者,大部分都是技术博客。而技术博客会经常贴出代码,里面包含各种英文标点是再正常不过的事情。这时候,英文标点符号自动转换就是一个恼人的画蛇添足功能了。

    网上很多文章都是让该WordPress核心文件。只不过,WordPress是一个高度模块化的系统,肯定有更优雅的解决方案。

    一番搜寻之后,发现最简单的办法,就是安装一个叫Quotmarks Replacer的插件,地址在这里

    插件很简单,就是将WordPress自动转换标点符号的函数用系统接口去掉。核心代码如下:

    <?php
    /*
    Plugin Name: Quotmarks Replacer
    Plugin URI: http://sparanoid.com/work/quotmarks-replacer/
    Description: Quotmarks Replacer disables wptexturize function that keeps all quotation marks and suspension points in half-width form.
    Version: 2.6.17
    Author: Tunghsiao Liu
    Author URI: http://sparanoid.com/
    Author Email: t@sparanoid.com
    License: GPLv2 or later

    Copyright 2016 Tunghsiao Liu, aka. Sparanoid (t@sparanoid.com)

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License, version 2, as
    published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    */

    $qmr_work_tags = array(
    'the_title',             // http://codex.wordpress.org/Function_Reference/the_title
    'the_content',           // http://codex.wordpress.org/Function_Reference/the_content
    'the_excerpt',           // http://codex.wordpress.org/Function_Reference/the_excerpt
    // 'list_cats',          Deprecated. http://codex.wordpress.org/Function_Reference/list_cats
    'single_post_title',     // http://codex.wordpress.org/Function_Reference/single_post_title
    'comment_author',        // http://codex.wordpress.org/Function_Reference/comment_author
    'comment_text',          // http://codex.wordpress.org/Function_Reference/comment_text
    // 'link_name',          Deprecated.
    // 'link_notes',         Deprecated.
    'link_description',      // Deprecated, but still widely used.
    'bloginfo',              // http://codex.wordpress.org/Function_Reference/bloginfo
    'wp_title',              // http://codex.wordpress.org/Function_Reference/wp_title
    'term_description',      // http://codex.wordpress.org/Function_Reference/term_description
    'category_description',  // http://codex.wordpress.org/Function_Reference/category_description
    'widget_title',          // Used by all widgets in themes
    'widget_text'            // Used by all widgets in themes
    );

    foreach ( $qmr_work_tags as $qmr_work_tag ) {
    remove_filter ($qmr_work_tag, 'wptexturize');
    }

     

    2016.09.01 / 2 条评论 / 1,450 次点击 / 分类: 所谓技术

  • OpenVPN使用纯插件通过MySQL进行用户验证(不使用PAM与FreeRadius)

    OpenVPN通过MySQL进行用户验证有很多种方案,比较常见的是自编写脚本、PAM和FreeRadius等。各有各的缺点,如PAM只能验证而不能监控流量;自写脚本太麻烦,效率不够高;FreeRaduis配置麻烦,消耗资源有点大,等等。

    有个“openvpn-mysql-auth”插件可以单独完成用户验证,并且可以自定义SQL语句,且各种具备事件前后执行的功能,相当强大好用。

    假设已经根据《Linux下OpenVPN服务安装记》一文编译安装好了OpenVPN服务端。

    首先,从https://github.com/chantra/openvpn-mysql-auth获得源代码,进入源代码目录。运行

    ./autogen.sh

    ./configure

    make

    如果出现“undefined reference to 'mysql_init'”或者相关的mysql函数未定义的错误,则运行

    ln -s /usr/lib/mysql/libmysqlclient.so /usr/lib/libmysqlclient.so

    然后再make一次。

    接着,执行命令将编译好的库放到OpenVPN目录:

    cp -a src/.libs/libopenvpn-mysql-auth.so* /etc/openvpn/mysql-auth/

    进入OpenVPN的目录,生成tls-auth key:

    cd /usr/local/openvpn/

    sbin/openvpn --genkey --secret ta.key

    mv ta.key etc/

    在etc/server.conf对应位置加上:

    tls-auth /usr/local/openvpn/etc/ta.key 0

    在etc/server.conf最后加上

    plugin /usr/local/openvpn/plugin/libopenvpn-mysql-auth.so -c /usr/local/openvpn/etc/plugin/mysql-auth.conf

    其中的mysql-auth.conf根据自己需要和实际的账户数据库进行填写,具体可以参考它的README。比如我的实现登录验证和登录日志功能,非常简单:

    hostname blog.creke.net
    port 3306
    login creke
    password creke
    db creke
    s_path none

    auth_user_pass_verify_query SELECT uid FROM creke_users WHERE usr='{{escaped_username}}' AND pwd=MD5('{{escaped_password}}') AND

    client_connect_query INSERT INTO creke_log (usr, ip, time) VALUES ('{{escaped_username}}', '{{trusted_ip}}', {{time_unix}})

    PS:如果希望不用client证书验证而仅通过用户名密码加TLS认证,可以只给用户ca和tls-auth对应的文件,在客户端配置中将cert和key注释。但服务器端不能将cert和key注释,否则会报错。并在server.conf最后加上

    client-cert-not-required

    username-as-common-name

    2012.11.05 / 2 条评论 / 2,915 次点击 / 分类: 所谓技术

  • Firefox插件“DownThemAll!”同时使用有线和无线网络进行下载技巧

    对于常用的Firefox插件“DownThemAll!”从单一源使用多个网卡同时下载有个技巧,这样可以同时使用两种网络的带宽,使下载速度翻倍!

    首先,需要配置混合网络环境(有线+无线)中同时使用多个网卡

    然后,启动“DownThemAll!”进行下载,在任务管理器看看这时数据流向那个网卡。

    接着,停止“DownThemAll!”下载,把没有数据流的网卡跃点数减一。

    重新开始“DownThemAll!”下载,这时可以看到,刚刚没有数据流的网卡这时有了数据流,而另外一个网卡这时则没有流量。

    把刚刚更改的跃点数加一,使得两个网卡的出口IP的跃点数像第一步之后一样,是相同的。

    最后,在“DownThemAll!”对应的下载任务的中,选择增加下载块数。

    这时,旧的数据连接在旧网卡不中断,新的数据连接走新网卡,实现同时使用多个网络,翻倍下载速度。

    2011.07.17 / 暂无评论 / 991 次点击 / 分类: 所谓技术