Prodused by SAKI

This site is a personal works of "SAKI".
I hope there will be a much of fun contents and funny dreams.
Of coursse that is a future occurrence.
The Watchword is "Picture Yourself".

Count:15413(0/0)Bot:639912(35/57)
HOME>BLOG > Tips

Attention!! Your Access is doubtful of Bot or Crawler.
 当サイトは日本国内からの正当なアクセスがなされることを前提にページを作成しています。
 BOTによるアクセスであると判断した場合は、画像や書庫ファイル、スタイルシートなどを廃した"情報"のみが表示されます。
 もし、そういった心当たりのない方でこのメッセージが表示された場合は、クッキーが保存されない、ユーザーエージェントにBOTを連想させる文字列が含まれている、海外Ploxy経由などの可能性があります。
 できましたら、正当な環境にてアクセスされますようお願いいたします。
 なお、ご不明な点や、どうしても現在の環境でのアクセスをご希望される場合は、メールフォームにて相談して頂ければ善処させていただきたいと思います。

MODE: ゲストモード

USER ID:
PASS:
ADMIN

TOP PAGE
サイトトップに戻ります

はじめに
このサイトの紹介です

更新履歴
このサイトの更新履歴です

掲示板
足跡を残してくれると嬉しい

リンク
他サイトへのリンクページです

INDEX
入口ページに戻ります

ARCHIVES
検索および過去記事

<前月 2024年03月 次月>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31       

NEW ENTRIES
最近の記事

CATEGORIES
カテゴリ一覧

ACCESS RANK
閲覧回数ランキング

ランキング対象がありません[]

COMMENTS
最近のコメント

POWERED BY

 先ほど久しぶりにBlogn公式フォーラムを覗いたところ、携帯投稿などの際に「タイトル無し」で投稿した場合に記事タイトルが空白になってしまう現象について記述があり、興味本位で動作確認と対処法(「** タイトル無し **」で表示するようにする)を考えてみました。

 最初に驚いたのは「タイトル無し」でも普通に投稿できてしまうってことだったんですけどね。(笑)

続きを読む ≫
 ついさっき、自分でも携帯からタイトルを入力しないで投稿したところ、記事は普通に投稿され、表示もされているようです。やはり不都合は「タイトルが空白になっている」ことだけで、ページのソースを確認したらタイトルリンクもちゃんとAタグでくくってあります。
 ということは単に「タイトルがnull」なだけでそのまんま表示されているだけということになります。

 で「もしタイトルが空白であった場合に『** タイトル無し **』に差し替えてやる」という動作を行わせようと思うわけですが、おおもとの記事データを引っ張ってくる部分に割り込みをかけてやるのが変更箇所も少なくて汎用性もあるように思えるわけですが、実際にはデータベース関係のスクリプトに手を入れる必要が出てきそうなのでやめました。(textモードやSQLモードだとか面倒くさい)

 なので、少々やぼったい手法ですが以下の方法で実現できましたのでご紹介いたします。

 まず、index.phpの最後の方(?>の直前)に次の関数を記述します。


//add by SAKI start
function sx_blogn_nontitle($title){
 if($title){
  return $title;
 }else{
  return "** タイトル無し **";
 }
}
//add by SAKI end



 続いて、エディタの検索機能を使って「$val["title"]」という部分を検索してそのすべてを関数に書き換えてやります。


$val["title"] → sx_blogn_nontitle($val["title"])



 こうすることで、すべてのタイトル呼び出し部分において、もしそれが空白であった場合には「** タイトル無し **」を代わりに使用させるようになります。

 なお、この変更はindex.php内で「空白のタイトル」を強引に差し替えているだけなので、実際の記事データでは相変わらずタイトルは空白のまま保存されているので注意してください。

==========
※このカテゴリは、単に私(SAKI)の好みや興味によるBlognPlusの改造のTipsです。ご使用に当たっては自己責任でお願いいたします。

 個人的には「タイトル(件名)のないメール」というのはあまり感心しないので、余裕があるならちゃんとタイトルをつけてメールするようにする習慣をつけた方がいいとは思います。それだけでスパム扱いする人もいるようですしね。(よほどスパムにひどい目にあったのかな)

 それとも携帯では(non title)が普通なのだろうか? 職場の同僚も以前はよくタイトル無しで送ってきてたし……私自身は入力が面倒くさいので受け取るのはともかく、携帯からメールはあまりしない方なんですけどね。
(携帯メールも使いこなせないようでは立派な女子高生にはなれないぞ……ならへん、ならへん/爆)

==========
補足です。(今気付いた)

 左メニューの「NEW ENTRIES」を見ると、タイトル無し記事がまだ空白になっています。これは、BlognPlus2.6.0以降ではこのあたりの機能はモジュールによって記述されており、index.phpの外にあることによります。
 今回の変更と同様のことを各モジュールに施すことでちゃんと表示されるようになるだろうとは思いますが、とりあえず今は見送っておきますね。(いずれ過去記事の中に埋もれるでしょうし……なんてものぐさ。やはりデータベース関係のスクリプトに手を入れるべきだったのだろうか?)

≪ 続きを隠す

|2010,03,02, Tuesday 12:58 AM | comments (0) | trackback (0) |

 CJさん作の「タグ拡張モジュール」の機能のひとつである「続きの折りたたみ」に対して「続きを隠す」リンクをクリックした際にページ内の任意の場所(たとえば「続き」の最初や記事のタイトル)にジャンプするようにします。
 これにより「続き」が長文であった際でも、それを「隠した」ときに元の記事を見失うことがなくなります。


続きを読む ≫
 まず、一番簡単で、変更箇所の少ないものを紹介します。

[xtratags]ディレクトリ内のfunction.phpの25行目付近

        }

        $continue = '<a name="more-'.$eid.'" id="more-'.$eid.'"></a><div id="+'.$eid.'" class="xt_contshow"><a href="URL" onclick='xt_readmore("'.$eid.'",1);return false'>続きを読む ≫</a><noscript> (JavaScript を無効にしている方は<a href="./?e='.$eid.'">こちら</a>から)</noscript></div>
<div id="-'.$eid.'" class="xt_contmore">'.$more.'
<a href="URL" onclick='xt_readmore("'.$eid.'",0);location.hash="more-'.$eid.'";return false' class="xt_conthide">≪ 続きを隠す</a></div>';
    } else {
        $continue = "";


 赤字の部分を追加するだけです。
 この例では、続きを隠したときのジャンプ先が「続きを読む」の直前になります。これは変更箇所がfunction.phpの中だけで済みますので、お勧めといえばお勧めです。


 続いて、スキンのみを変更する場合です。
 スキンに記述した「続きの折りたたみ」のためのJavaScriptの部分を以下のように変更します。

// 「続きを読む」折りたたみ
function xt_readmore(xt_id,xt_flg){
  var strName;
  var strName0;
  var strName1;
  var strName2;
  if((xt_id=="")||(xt_id==null))return true;
  strName=xt_id;
  strName0 = "-" + strName;
  strName1 = "+" + strName;
  strName2 = "more-" + strName;
  if(xt_flg==0){
    document.getElementById(strName0).style.display="none";
    document.getElementById(strName1).style.display="block";
    location.hash = strName2;
  }else{
    document.getElementById(strName1).style.display="none";
    document.getElementById(strName0).style.display="block";
  }
  return true;
}


さらに、ジャンプ先に指定する場所に以下のようにジャンプ先を記述します。(LOGループの中にすること!)

    <a name="more-{XT_LOG_EID}" id="more-{XT_LOG_EID}"></a>{LOGCATEGORY} | 
    {LOGTITLE}

※{XT_LOG_EID}は記述のため全角の括弧({ })を使ってます。実際には半角で記述してください。

 この例では、ジャンプ先を各記事のタイトル部分に設定しています。
 汎用性という意味では、この方がいいかと思います。(このブログでも最終的にこちらにしました)


※このカテゴリは、単に私(SAKI)の好みや興味によるBlognPlusの改造のTipsです。ご使用に当たっては自己責任でお願いいたします。

------------------------------
 BlognPlusにはオリジナリティ溢れる優れたモジュールがいくつも発表されていますが、CJさん作の「タグ拡張モジュール」を使用されている方は多いかと思います。
 しかしながら「タグ拡張モジュール」が提供する機能のひとつである「続きの折りたたみ」に関しては、それほど使っている方は多くないと予想していました。(あまり見かけないのでそう思っていただけなのですが)

 このブログでもその「折りたたみ」機能を使っているわけですが、つい先ほど「BlognPlus ぶろぐん+ を育てよう!2」に、今回の要望が出されていたのを見て、この際だからということで手を加えてみました。

≪ 続きを隠す

|2009,10,28, Wednesday 12:52 AM | comments (6) | trackback (0) |

BlognPlus上で表示される「月別一覧情報」をJavaScriptによって年別に区分されるようにします。
同時に「年」部分をクリックすることで開閉式メニュー化を行います。
※これはBlognPlusのスキン上での工夫であり、モジュールではありません。

続きを読む ≫
 通常、BlognPlusの標準の「月別一覧情報」(ver2.6.0以降ではモジュールになっています)は、以下のように月別一覧情報は年月がセットで1行になるように構築されています。

(通常表示)
 2009年08月(12)
 2009年07月(12)
  ……
 2009年02月(12)
 2009年01月(12)
 2008年12月(12)
 2008年11月(12)
  ……
 2008年02月(12)
 2008年01月(12)
 2007年12月(12)
 2007年11月(12)
  ……
 2007年02月(12)
 2007年01月(12)
  ……

 長年ブログを使用していくと、これは際限なく行数が増えていきます。もちろん、管理画面(ver2.6.0以降ではモジュールの管理画面)にて表示される行数(年数)を制限することが可能ですが、その場合、それよりも過去の記事を参照することが難しくなってしまいます。
 そこでこれを、年だけの行数に圧縮して表示させてやります。

 2009年
 2008年
 2007年
 ……

 もちろん、それでは個別の月を参照できない、ということになるのですが、この「年」はJavaScriptにより開閉できる階層化メニューになっており、クリックすると、下記のように「月」部分が展開されて表示されます。

(「2009年」をクリックするとメニューが開く)

 2009年
   08月(12)
   07月(12)
   ……
   02月(12)
   01月(12)
 2008年
 2007年
 ……

(次に「2008年」をクリックすると2008年が開き、2009年は閉じる)

 2009年
 2008年
   12月(12)
   11月(12)
   ……
   02月(12)
   01月(12)
 2007年
 ……

 これにより、すべての過去記事に対する「月別一覧」を表示させつつも、必要最小限のスペースしか使わないといったことが可能となります。

 実装方法及び主要なスクリプトは下記のZIPファイルに収められていますので、ご使用になる方はダウンロードしてください。

[LINK]

 「日付別NEWENTRIES」と同様にかなり古いバージョンのBlognPlusから使用しています。(一応動作確認はVer 2.4.0 and 2.5.6 and 2.6.2にて行っています)

 なお、動作にJavaScriptを使っている関係上、携帯等スクリプトの使えないキャリアのスキンには使えませんのでご了承をお願いします。

※このカテゴリは、単に私(SAKI)の好みや興味によるBlognPlusの改造のTipsです。ご使用に当たっては自己責任でお願いいたします。
※実はかなり前に紹介していたTipsです。ファイル自体が消失してしまう前に再度公開させていただきました。(補完ということですね)

※月別一覧の行数の問題については、CJさん作のプルダウンメニュー化モジュールがまた別の方法で解決されておられます。長年BlognPlusをご使用になり、同様のお悩みをお抱えの方は、そちらもご参照してみてはいかがでしょうか。

≪ 続きを隠す

|2009,08,24, Monday 11:27 PM | comments (0) | trackback (0) |

BlognPlus上で表示される「新着情報」をJavaScriptによって日付別に区分されるようにします。
※これはBlognPlusのスキン上での工夫であり、モジュールではありません。


続きを読む ≫
 通常、BlognPlusの標準の「新着情報」(ver2.6.0以降ではモジュールになっています)は、以下のように新着情報は日付と記事タイトルがセットで1行になるように構築されています。

(通常表示)

 8/31 最新の記事
 8/31 2番目の記事
 8/31 3番目の記事
 8/30 4番目の記事
 8/29 5番目の記事
 8/29 6番目の記事
 8/31 7番目の記事

 これを、下記のように日付ごとにまとまるような表示に変更します。
 (実際の表示例は当ブログの左メニュー「NEWENTRIES」を参照)

(日付別表示)
 8/31
    最新の記事
    2番目の記事
    3番目の記事
 8/30
    4番目の記事
 8/29
    5番目の記事
    6番目の記事
 8/31
    7番目の記事

 つまり「カテゴリ一覧」や「新着コメント一覧」と同じ形のツリー表示にしてあげようというものです。表示の統一がはかられることから、例えばスタイルシートなどの工夫によって罫線付のツリー表示にしたりといったことも可能になります。
(というよりも、おおもとはそういった要望の実現のために組んだスクリプトだったりします)

 実装方法及び主要なスクリプトは下記のZIPファイルに収められていますので、ご使用になる方はダウンロードしてください。

[LINK]

 結構古いバージョンのBlognPlusの時からこのブログで使用していますので、今後BlognPlusの仕様が大幅に変わることがない限り使えるかと思います。(一応動作確認はVer 2.4.0 and 2.5.6 and 2.6.2にて行っています)

 なお、動作にJavaScriptを使っている関係上、携帯等スクリプトの使えないキャリアのスキンには使えませんのでご了承をお願いします。

※このカテゴリは、単に私(SAKI)の好みや興味によるBlognPlusの改造のTipsです。ご使用に当たっては自己責任でお願いいたします。
※実はかなり前に紹介していたTipsです。ファイル自体が消失してしまう前に再度公開させていただきました。(補完ということですね)

≪ 続きを隠す

|2009,08,24, Monday 10:53 PM | comments (0) | trackback (0) |

 BlognPlusは携帯からメールによる新規投稿(正確にはメールができれば携帯である必要はない※注)ができますが、その際に画像の添付ファイル(写メール)があった場合にはそれも取り込んで投稿させることができます。
 仕様では、それら添付画像は記事の先頭い配置されることになっていますが、それを「続き」に挿入させるようにするための改造です。

※注 一部メールシステム(Gmailなど)によってはBlognPlusによるメールヘッダ情報の取得に失敗する可能性があるとの報告をいただいています。


続きを読む ≫
BlognPlus2.6.0から画像の複数投稿が可能になったために変更箇所が少々広いです。(後半で2.5.6用を掲載します)

index.php 1940行目付近~(ver2.6.2)

        // 添付ファイルの処理ループ
//add Mail PIC to MoreLast by SAKI start
        $sx_mbileimg = '';
//add Mail PIC to MoreLast by SAKI end

        foreach ($part as $pic_cnt => $multi) {
            list($m_head, $m_body) = split("rnrn", $multi, 2);

    (中略)

                    $width = round($size[0] * $ratio);
                    $height = round($size[1] * $ratio);
//original comment out
//                  $text .= '<a href="'.BLOGN_FILEURL.$upfile_name.'" target="_blank"><img src="'.BLOGN_FILEURL.$upfile_name.'" width="'.$width.'" height="'.$height.'"></a>
';
//add Mail PIC to MoreLast by SAKI start
                    $sx_mbileimg .= '<a href="'.BLOGN_FILEURL.$upfile_name.'" target="_blank"><img src="'.BLOGN_FILEURL.$upfile_name.'" width="'.$width.'" height="'.$height.'"></a>
';
//add Mail PIC to MoreLast by SAKI end

                }else{
//original comment out
//                  $text .= '<img src="'.BLOGN_FILEURL.$upfile_name.'" '.$size[3].'>
';
//add Mail PIC to MoreLast by SAKI start
                    $sx_mbileimg .= '<img src="'.BLOGN_FILEURL.$upfile_name.'" '.$size[3].'>
';
//add Mail PIC to MoreLast by SAKI end

                }
            }

        }
        // 携帯用独自タグ処理

    (中略)

                if (eregi("{more}",$text)) {
                    list($text, $more) = explode("{more}", $text);
                }else{
                    $more = "";
                }
//add Mail PIC to MoreLast by SAKI start
                $more = $sx_mbileimg.$more;
//add Mail PIC to MoreLast by SAKI end

                blogn_mod_db_log_add($key, $now, $mobile_reserve, $mobile_secret, $mobile_cok, $mobile_tok, $mobile_category, $subject, $text, $more, 1);
            }
        }
    }else{
        $debug .= "+OKメッセージ:NGn";



index.php 2045行目付近~(ver2.5.6)

                $width = round($size[0] * $ratio);
                $height = round($size[1] * $ratio);
//original comment out
//              $text = '<a href="'.BLOGN_FILEDIR.$upfile_name.'" target="_blank"><img src="'.BLOGN_FILEDIR.$upfile_name.'" width="'.$width.'" height="'.$height.'"></a>
'.$text;
//add Mail PIC to MoreLast by SAKI start
                $text .= '
{more}<a href="'.BLOGN_FILEDIR.$upfile_name.'" target="_blank"><img src="'.BLOGN_FILEDIR.$upfile_name.'" width="'.$width.'" height="'.$height.'"></a>
';
//add Mail PIC to MoreLast by SAKI end

            }else{
//original comment out
//              $text = '<img src="'.BLOGN_FILEDIR.$upfile_name.'" '.$size[3].'>
'.$text;
//add Mail PIC to MoreLast by SAKI start
                $text .= '
{more}<img src="'.BLOGN_FILEDIR.$upfile_name.'" '.$size[3].'>
';
//add Mail PIC to MoreLast by SAKI end

            }
        }
        // 携帯用独自タグ処理



※このカテゴリは、単に私(SAKI)の好みや興味によるBlognPlusの改造のTipsです。ご使用に当たっては自己責任でお願いいたします。


≪ 続きを隠す

|2009,08,12, Wednesday 12:30 PM | comments (0) | trackback (0) |

 BlognPlusでは、携帯閲覧時に、一定以上のサイズの画像については画面に表示せず、代わりに[PIC]という画像へのリンクが表示されるようになっています。
 携帯の表示速度やパケット代に対する配慮ですが、昨今は定額制や転送速度の向上も見られ、多少は融通を利かせて、記事内で画像を直接表示できるようにしてみました。


続きを読む ≫
 これには、index.phpの改造が必要です。

index.phpの1550行目付近(ver2.6.2) 1620行目付近(ver2.5.6)


    if ($fsize = @round(@filesize($fileDir) / 1024, 1)) {
        if ($fsize < 0.4) {
            $result = '<img src="'.$matches[1].'" />';
        }else{
// original comment out
//          $result = '<a href="'.BLOGN_HOMELINK.'im.php?'.htmlentities(urlencode($matches[1])).'">[PIC]</a>';
//add view pic in Mobile by SAKI start
            $result = '<img src="'.BLOGN_HOMELINK.'im.php?'.htmlentities(urlencode($matches[1])).'" />';
//add view pic in Mobile by SAKI end

        }
    }else{



 つまり、Aタグによってそのリンク先となっていた「im.php~」をIMGタグのソースとしてそのまま使ってやることにしたわけです。

 im.phpは各携帯キャリアの種類を判別してそれに合わせた画像サイズに変換した画像を返すという優れもので、これなら画像を表示するといっても、オリジナルの大きなサイズではなく、転送量も軽減されるのでパケット代にも比較的易しいものとなります。
 それに、もともと画像サイズの小さな携帯では、オリジナルを表示したところで縮小表示されるので、現実的に見栄えは変わりませんしね。


※このカテゴリは、単に私(SAKI)の好みや興味によるBlognPlusの改造のTipsです。ご使用に当たっては自己責任でお願いいたします。

※この改造内容は、以前に公式のコミュニティに投稿したものと同じです。(このTipsは私の覚え書きもかねているのさ)

≪ 続きを隠す

|2009,08,12, Wednesday 11:36 AM | comments (0) | trackback (0) |

 BlognPlus ver2.6.2にバージョンUPして気づいたことなのですが、通常の新規投稿(編集)時に「画像挿入」を行うと、挿入されるimgタグはsrcに「http」から始まる絶対アドレスで挿入されてしまいます。これまで(ver2.5.6以前)は「files/~」と、相対アドレスでした。

 どうやらver2.5.6→2.6.0になった際に、BlognPlus内でのアドレス指定の仕様が変更されたことが原因のようです。

 現実的なブログの表示やアクセスには影響はなく、ログデータの移行を行っても問題はなかったわけですが、画像やその他のデータへのアドレッシングが絶対アドレスで指定されてしまうと、今後何らかの事情でサーバ移転を行ったり、あまり無いとは思いますがミラーサーバを運用したり、はたまた開発用にローカル環境でテストしたりする際に不都合が生じることが考えられます。
 つまりブログ自体のURL(index.phpの場所)が変わった際に、あるべき場所の画像を表示してくれなくなるわけです。

 後から記事を編集して「http~」を削除し、「files/~」にしてもいいのですが、若干の変更でこの画像挿入時のアドレス指定を相対アドレスになるようにできましたのでご紹介いたします。

続きを読む ≫
 当初、画像挿入のときに呼び出される「pict.php」を改造することを考えましたが、実際の挿入にかかるJavaScriptで適用されているアドレス指定(変数)自体がphpによって生成されていることから、挿入段階(サムネイルをクリックした時)にJavaScriptで割り込みをかけて処理させるのはかなりの手間になり、改造内容も煩雑になることから残念しました。

 そこで、もっと簡単な方法として見つけたのが以下になります。

index.phpと同じフォルダにあるconf.phpの97行目付近


// アップロードファイルディレクトリ
//
/* picture directory */
define('BLOGN_FILEDIR', BLOGN_ABSOLUTE_SYSTEMDIR.'files/');
// original comment out
//define('BLOGN_FILEURL', BLOGN_HOMELINK.'files/');
// add change files to relative by SAKI start
define('BLOGN_FILEURL', 'files/');
// add change files to relative by SAKI end

/* icon  directory */
define('BLOGN_ICONDIR', BLOGN_ABSOLUTE_SYSTEMDIR.'ico/');



 これで画像挿入や、おそらくモバイルからの投稿時にも、挿入されるURLは「files/~」というものになるはずです。
 「config.php」はBlognPlusの基本設定ファイルです。必ずバックアップを行ってから上記の編集を行いましょう。

 また、BlognPlusのインストール作業の際にパーミッションを「書き込み不可(404)」にしてあると思われるので、この変更を行う際には、FTPなどによって一時的に「書き込み可(606など)」にして更新を行ってください。(変更後、必ず戻してください)


※このカテゴリは、単に私(SAKI)の好みや興味によるBlognPlusの改造のTipsです。ご使用に当たっては自己責任でお願いいたします。

≪ 続きを隠す

|2009,08,12, Wednesday 10:34 AM | comments (0) | trackback (0) |



Copyright © 2008-2009 The Blue and Violet Storys All Rights Reserved.
当ページに掲載しているコンテンツの再利用(再転載・配布など)は、禁止しています。