Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2009-11-01 22:38:21

yama
Administrator
登録日: 2005-07-07
投稿: 1,243
ウェブサイト

Re: NP_ZenHan - 記事中の全角英数字を半角にそろえる

記事中の全角英数字を、新規投稿または更新のタイミングで半角に揃えます。単純な処理なので、プラグイン作りの参考にもどうぞ

コードも貼り付けておきます

<?php
class NP_ZenHan extends NucleusPlugin
{
    function getName()              {return 'NP_ZenHan';}
    function getURL()               {return 'http://japan.nucleuscms.org/';}
    function getVersion()           {return '0.1';}
    function getMinNucleusVersion() {return 300;}
    function getDescription()       {return '';}
    function supportsFeature($w)    {return ($w == 'SqlTablePrefix') ? 1 : 0; }
    function getAuthor()            {return 'yama';}
    function getEventList()         {return array('PreAddItem', 'PreUpdateItem');}
    
    function event_PreAddItem(&$item)    { $this->zenhan($item);}
    function event_PreUpdateItem(&$item) { $this->zenhan($item);}
    function zenhan(&$item)
    {
        foreach(array('title', 'body', 'more') as $i)
        {
            $item[$i] = mb_convert_kana($item[$i], 'rnsKV', _CHARSET);
        }
        return $item;
    }
}

Attachments:
zip NP_ZenHan01.zip, Size: 517 B, Downloads: 289

オフライン

#2 2010-04-19 23:26:52

nshown
メンバー
登録日: 2008-01-05
投稿: 98

Re: NP_ZenHan - 記事中の全角英数字を半角にそろえる

yama.kyms様、

当方、znitemfieldexで拡張したフィールドのあるブログを複数人で運用しているのですが、
人によっては、全角半角がごちゃごちゃで見栄えがひどく悪いのが悩みです。

そういったフィールドにも、記事中の全角英数字を半角に揃えるようにしたいのですが、
これは可能でしょうか?

オフライン

#3 2010-04-19 23:47:33

yama
Administrator
登録日: 2005-07-07
投稿: 1,243
ウェブサイト

Re: NP_ZenHan - 記事中の全角英数字を半角にそろえる

NP_znitemfieldexを改造する必要がありますね。create_sqlファンクションの中に
$textareabody = ($blog->convertBreaks()) ? addBreaks($textareabody) : $textareabody;
という行があるので、その次の行に
$textareabody = mb_convert_kana($textareabody, 'rnsKV', _CHARSET);
を追加するとよさそうに思います。

オフライン

#4 2010-04-20 16:54:54

nshown
メンバー
登録日: 2008-01-05
投稿: 98

Re: NP_ZenHan - 記事中の全角英数字を半角にそろえる

yama.kyms様、お教え頂きましたこのコードを追加してみました。

$textareabody = mb_convert_kana($textareabody, 'rnsKV', _CHARSET); 

全く問題なく、期待通りの結果を得ることができました。
これで、見栄えの統一感を出すのに道が拓けますし、
さらにサイト検索したときの漏れも減ってくれるのかなと思います。
ありがとうございました!

オフライン

#5 2016-04-30 16:30:39

nshown
メンバー
登録日: 2008-01-05
投稿: 98

Re: NP_ZenHan - 記事中の全角英数字を半角にそろえる

NP_znitemfieldexで追加した「テキストエリア」の場合についてお教え頂きましたので、「テキストボックス」についても全角半角変換をさせたいと思いまして、現在はNP_znitemfieldexのcreate_sqlファンクション内のcase文のdefault以下を次のように改造して使っています。

default:
    $textbox = mb_convert_kana(requestVar("f__".$row["fname"]), 'rnsKV', _CHARSET); 
    $setArray[] = "f__".$row["fname"]."='".sql_real_escape_string($textbox)."'";

オフライン

Board footer