東港研究所給湯室-海のルアーフィッシング休憩室-

エントリー

カテゴリー「WebDiaryPro」の検索結果は以下のとおりです。

[改造]記事タイトルにリンクを貼る-WebDiaryPro

記事タイトルに記事のリンク先を入れてみたいと思います。
記事下段の「この記事のURL」と同じですが、内部リンクが増えるので若干の効果があるかと・・・

skin/diary.html

13行目付近

<!--SKIN_DIARY_START-->
<div class="diary">
<h3>${ARTICLE_SUBJ}">${ARTICLE_SUBJ}</h3>
<div class="text">

<!--SKIN_DIARY_START-->
<div class="diary">
<h3><a href="${INFO_PATH}?mode=edit&${ARTICLE_SUBJ}">${ARTICLE_SUBJ}</a></h3>
<div class="text">


このままでは、リンクにアンダーラインが入ってしまうので、
スタイルシートに次の文を書き加えます。

skin/common.css

div#diary h3 {
margin: 5px 5px 20px 5px;
padding: 5px;
}

←ここに追加

div#diary h3 {
margin: 5px 5px 20px 5px;
padding: 5px;
}

div#diary h3 a {
color : #ffffff;
text-decoration : none;
}


以上!

携帯ページでのコメント件数の表示-WebDiaryPro

 Wdpではデフォルトの携帯トップページにコメント件数が表示されません。

 そこで、コメント表示件数を追加してみたいと思います。

改造前

タイトル-07/02-20:25


改造後

タイトル(2)-07/02-20:25


/skin/Mobile_list.html

<!--SKIN_LIST_START-->
▼<a href="${ARTICLE_URL}">${ARTICLE_SUBJ}</a>-${ARTICLE_MONTH}/${ARTICLE_DAY}-${ARTICLE_HOUR}:${ARTICLE_MINUTE}<br>
<!--SKIN_LIST_END-->



<!--SKIN_LIST_START-->
▼<a href="${ARTICLE_URL}">${ARTICLE_SUBJ}<a href="${ARTICLE_URL}#comm">(${ARTICLE_COMMENT})</a>-${ARTICLE_MONTH}/${ARTICLE_DAY}-${ARTICLE_HOUR}:${ARTICLE_MINUTE}<br>
<!--SKIN_LIST_END-->

次に携帯表示用のスキンを改造します。

mobile_view.html


<!--SKIN_COMTNAVI_HEAD_START-->
<hr>
■コメント<br>
<br>
<!--SKIN_COMTNAVI_HEAD_END-->


<!--SKIN_COMTNAVI_HEAD_START-->
<hr>
<a name="comm">■コメント</a><br>
<br>
<!--SKIN_COMTNAVI_HEAD_END-->


これでコメント件数が表示されると共に、コメント部分をクリックすると、直接コメントを送ることができるようになります。

以上!

UTF-8のencode、decodeで小一時間悩む-CGI,Perl

 先日、トップページをJavaScriptで自動書き換えするコードを公開しましたが、タイトルが長い場合にレイアウトを崩してしまう現象が発生しました。

 回避するためのコードを見つけるのにチョッと悩むw

UTF-8ベースだとlength、substrを使うと場合によっては文字化けしてしまう。

Win2000からは、UNICODEが標準とされたため、今まで作ってたEUCベースから転換しなければならないのかも。

少し脱線しましたが、UTF8を始めて扱って気が付いたんですが、EUC、SHIFT-JISは全角文字を2バイト、半角文字を1バイトで計算するだけど、UTF8で計算すると全角文字が3バイト、半角が1バイトなんだよね。

 技術的な事はググってくださいw


要するに、

1111 は4バイト
あいうえお は15バイトになってしまうわけで・・・
あ1も 4バイト

バイト数で区切ってしまうと端数が出てきて文字化けするみたいですね。 もう少し研究してみます(汗)

 

そこで一旦、UTF-8をデコードして計算後にエンコードする方法をとってみました。


utf8::decode($str);

utf8::encode($str);

これで、バイト数ではなく文字数をカウントして、SubStr関数を使えば、文字数で区切ることが可能となります。


忘れないように記録しておこう。

参考サイト


以上!

javascriptでトップページ更新

 このブログスクリプトは本当に良くできています。
 

 JavaScliptを使ったトップページの更新を記録しておきたいと思います。

とりあえずJAVAを吐き出す設定。


  • 環境設定でjavaスクリプトの書き出しをON

  • 書き出し件数を1件に設定

次に
/diarypro/skin/js_title.html

の書き換え

<!--SKIN_JSTITLE_START-->
<li>${INFO_TITLE}====${ARTICLE_YEAR}年${ARTICLE_MONTH}月${ARTICLE_DAY}日 ${ARTICLE_HOUR}:${ARTICLE_MINUTE} ... <a href="${ARTICLE_URL}">${ARTICLE_SUBJ}</a></li>
< !--SKIN_JSTITLE_END-->

<!--SKIN_JSTITLE_START-->
${ARTICLE_YEAR}/${ARTICLE_MONTH}/${ARTICLE_DAY}  <A href="http://s-fishing.com/diary/">Column</A> <STRONG class="acc">New</STRONG> <a href="${ARTICLE_URL}">${ARTICLE_SUBJ}</a>
<!--SKIN_JSTITLE_END-->


diary/data/にtitle.jsが吐き出されますので、Javaスクリプトを使ってこのファイルを呼び出します。


<script type="text/javascript" src="./diarypro/data/title.js" charset="utf-8"></script>

表示したい部分にタグを入れるだけです。

※UTF-8以外で書かれている、サイトは必ずcharset="utf-8"></script>を入れてください。

このサイトのトップページのようになります。

2009/07/07 Column New 7周年

以上!

メール投稿でのエラーの対処法

BugFixの落書き


 さくらインターネットのサーバーを使用していますが、どうやらサーバーのバージョンアップに伴って、メール関係の仕様も変更されたようですね。


 同時にWeb Diary Professionalのメール投稿機能も停止してしまいました。
 さて、今回はその対処法です。


様々LOGをあさってみると、ありました。
Pealバージョンで関数pack→sockaddr_inの仕様変更があったんですね。


Web Diary Professional Ver 4.72
lib/webliberty/POP3.pm
40行目付近

改造前

if (!$self->{pop_port}) {
$self->{pop_port} = '110';
}
socket(webliberty_POP3, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
my $server_ip = gethostbyname($self->{pop_server});
my $server_addr = pack('Sna4x8', AF_INET, $self->{pop_port}, $server_ip);
my $socket_mesg;

改造後

if (!$self->{pop_port}) {
$self->{pop_port} = '110';
}
use Socket;
socket(webliberty_POP3, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
my $server_addr = sockaddr_in($self->{pop_port}, inet_aton($self->{pop_server}));
my $socket_mesg;

大変勉強になりました。


Tamboさん、ありがとうございます。

サブジェクトの書き出し

うーんJavaScriptで更新情報などを表示できるのですが、なぜかサブジェクト(題名)が表示できない。

そこで、題名をJavaSを使って表示できるようにしてみたいと思います。

デフォルトの設定は、date、ID、ins、分類、nameしか吐出しされませんので、サブジェクトを追加してみます。

./lib/webliberty/App/admin.pm

689行目

my $index = "$now\t$new_no\t" . $id_ins->get_string . "\t" . $stat_ins->get_string . "\t$new_field\t" . $name_ins->get_string;


my $index = "$now\t$new_no\t" . $id_ins->get_string . "\t" . $stat_ins->get_string . "\t$new_field\t" . $name_ins->get_string . "\t" . $subj_ins->get_string;

873行目

push(@new_index, "$new_date\t$no\t" . $id_ins->get_string . "\t" . $stat_ins->get_string . "\t$new_field\t" . $name_ins->get_string . "\n");


push(@new_index, "$new_date\t$no\t" . $id_ins->get_string . "\t" . $stat_ins->get_string . "\t$new_field\t" . $name_ins->get_string . "\t" . $subj_ins->get_string . "\n");


 次はプラグインでの作成。

プラグインは、タイトル吐き出しようのスクリプトを改造しています。

ダウンロード

解凍したファイルをPluginフォルダに投げ込んで終わりです。


モジュールの呼び出しは、cgi?plugin=SubjTitle

変数での呼び出しは、${SubjTitle}です。

任意のskinに貼り付けて使用してください。


 このブログシステムは本当に良くできてますね。

分類テスト

テスト分類テスト

ページ移動

  • 前のページ
  • 次のページ
  • ページ
  • 1


ユーティリティ

検索

エントリー検索フォーム
キーワード

ページ

  • ページが登録されていません。

新着画像

新着エントリー

11月29日、今日のランチ
2017/11/29 12:09
相模国の夜
2017/11/26 18:20
11月24日、今日のランチ
2017/11/24 12:14
11月22日のランチ
2017/11/22 13:08
今日のランチ
2017/11/18 14:37

Feed