.




うぇブログ2
最新エントリ
トップ : 

« 1 (2) 3 4 5 ... 54 »

2007/09/06
カテゴリ : Ethnaメモ

執筆者: itoh (1:05 pm)
前述のエントリを使って、作りました。

http://pukiwiki.junoe.jp/index.php?Ethna%2FPlugin
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (1882)
2007/09/06
カテゴリ : PHPメモ

執筆者: itoh (12:19 pm)
UTF-8のカタカナの正規表現
http://www.itt-web.net/xeblog/index/action_xeblog_details.1/blog_id.459.html

がコメントをもらってたとおり、ひらがなを一部含んでたので、書き直し。
itohさんのブログを読む | コメント (1) | トラックバック数 (0) | 閲覧数 (12459)
2007/09/04
カテゴリ : 管理人日記

執筆者: itoh (12:55 pm)
ネットワークパスワードを忘れて3年ほど。
電話代がかなり安くなるらしいという、最近のプランにしたいのだけど、iモードから申し込むには、ネットワークパスワードが必要らしく、DoCoMoショップに行った。


店員の対応はいいですね。

99年に加入して以来のDoCoMoユーザーなんだけど、そのときに申し込んだプラン「おはなしプラスM」はもうなくなってて、この安いサービス受けるには「プランM」というコースにしないといけなくなってた。

あと、会費無料のプレミアクラブと、固定電話登録でファミリー割引追加っていうのができてたので、それにも加入。


んで、目的の「いきなり基本料金半額」のプランだけど、すでに8年目+ファミリー+今回入ったの=38%になってて、12%の割引にしかならなかった。月額にすると、1000円いかないくらい。無料通話分が増えるとかはないからね。


安くなったからには代償がある。


それは、2年以内の解約は9800円の違約金。

ということは、1年使えば、解約金を払っても元は取れるというところか。まぁ1年なら良いか。

ちなみに、10年つかうと、1年割りになって、1年以内の解約で3800円の違約金。


これって、長期利用者にはあまりメリット感じられない施策だね。これまでの長期利用者もこれからの長期利用者も。

まぁ、「いきなり半額」は乗り換えユーザー対策だからしょうがないけど。
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (2418)
2007/08/29
カテゴリ : PHPメモ

執筆者: itoh (10:26 pm)
環境によるんだろうけど、初めて出たのでメモ。

[ethna-users:0588] Windows版PHPとqmailでEthna_MailSenderから送信できず

あたりの議論とも組み合わせて。

上鍵さんの言うPHPのmail()のできの悪さって言うのも影響してる。
http://blog.poyo.jp/archives.php/id-1139994430


で、Ethna_MailSenderは、送信する直前で
<?php
       // 改行コードを CRLF に
        if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
            $body = str_replace("\n", "\r\n", $body);
        }
        $header_line = str_replace("\n", "\r\n", $header_line);

ってやってるんだけど、
引用:

$ dpkg --list|grep qmail
ii qmail 1.03-14 Secure, reliable, efficient, simple mail tra
ii qmail-src 1.03-24 Source only package for building qmail binar
ii vchkpw 3.1.2-9 Virtual POP-domains and users for qmail

な環境では、余計なお世話になってて、
$header_line = str_replace("\n", "\r\n", $header_line);
をコメントアウトしないとExtraHeaderがダブル改行されてしまって、あふれる。

うーん。どうしたもんかな。原因がわからないからMLにもよく投げられん。
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (1985)
2007/08/17
カテゴリ : Javascript

執筆者: itoh (10:53 am)
http://blog.livedoor.jp/dankogai/archives/50797726.html
より。

   for (var i = 0, l = spans.length; i < l ; i++){
      var span = spans[i];
      if (span.className != 'monta') continue;
      span.setAttribute('title', 'ここをクリックすると...');
      span['onclick'] = function(){ this.style.backgroundColor = "transparent" };


for (var i = 0, l = spans.length; i < l ; i++){
って、毎回spans.lengthにアクセスするのが重いということで、一度lに格納してるんだけど、だけど、カンマ区切りでなんでこんな箇所で変数宣言できるのか・・・。よく見てみると、var i=0って宣言できてる時点で「あぁ」って感じだけど、これは気が付かない。



span['onclick'] = function(){ this.style.backgroundColor = "transparent" };
って、DOM Elementにイベントハンドラをくくりつける方法なんだけど、setAttributeとか、、attachEventとかよりもこの方法のほうがクロスブラウザっぽいらしい。うそ〜ん。って感じだけど。
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (1518)
2007/08/07
カテゴリ : Ethnaメモ

執筆者: itoh (7:36 pm)
よく忘れるのでメモ

<?php
    /**
     *  アプリケーションのエントリポイント
     *
     *  @access public
     *  @param  string  $class_name     アプリケーションコントローラのクラス名
     *  @param  mixed   $action_name    指定のアクション名(省略可)
     *  @param  mixed   $fallback_action_name   アクションが決定できなかった場合に実行されるアクション名(省略可)
     *  @static
     */
    function main($class_name, $action_name = "", $fallback_action_name = "")


$class_nameは、問題ないとして。


$action_nameは、配列で与えるといい。

たとえば、
array('inquery_index', 'inquery_*')
見たいにした場合、actionは、この中のモノに強制される。
つまり、inquery_***********っていう感じ。


で、たとえば、外からのFormでinquery_nodefined_actionとか「まだActionClassに定義していない」アクションが指定で来てしまった場合は、先頭のinquery_indexがアクションとしてFIXされる。



ここまでで十分だと思うんだけど、Fail-Safe的にEthnaは第三の引数をとる。それは、inquery_indexが仮のFallbackにしたけれども、開発中の何かのきっかけで、inquery_indexを消してしまった場合。

そんなときは、第三の引数のActionにFallbackする。ここには、絶対無くならないActionを書いておくと、fail safeなアプリケーションになるということ。
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (1404)
2007/07/25
カテゴリ : Ethnaメモ

執筆者: itoh (3:54 pm)
AppObjectをいちいちNewするのってコストかかるじゃないですか。

そこで、Managerで
<?php
	function getObject($forum_id)
	{
		static $__cache ;
		
		if (!isset($__cache)){
			$__cache = array();
		}
		if (!isset($__cache[$forum_id])){
			$__cache[$forum_id] =& new Xanhte_NewbbForum(&$this->backend, 'forum_id', $forum_id);
		}
		
		return $__cache[$forum_id];
	}

ってなキャッシュを作っていたんです。

普通はこれで問題ないでしょう。


ところが、私はXOOPSで使っていたので、
XOOPSのBlock処理(Ethnaで処理)

XOOPSのメインページの処理(もちろんEthnaで処理)
と1回のパースで2回Ethnaを起動させていました。
(Actionチェインとかじゃなくて、CMSのフローとして)


すると、Block処理で作ったAppObjectのキャッシュがメインページでの処理にも生きてくるんですね・・・。



これ、AppObject内のメソッドでActionFormを呼び出さなければOKです。


ところが、AppObject内のメソッドでActionFormと連携するもの・・・たとえば、
・AppObject->exportForm()
・AppObject->importForm()
とかは、NGです。


何がって、Block処理で作られたAppObjectは、その内部参照変数afにBlock処理のActionFormを収めるからです。

そして、キャッシュ機構により、メインページでのActionFormはafに収められず、exportFormは想定外のActionFormへのExportを実行してしまう・・・・。



AppObject自体のキャッシュ機構(Ethnaネイティブの$filterや$orderが同じときにはDBアクセスしないでキャッシュしておく)とは別です。

ちなみに、Ethna2.3ではAppObjectは、newしないでEthna_Backend->getObject()するようになっているけど、こんなキャッシュの仕方はしていない。

あくまで、このちょっと特殊な状況下でのワナ。
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (1412)
2007/07/24
カテゴリ : Javascript

執筆者: itoh (3:35 pm)
ToolTipsというそうだ。


とりあえず、ここにいろいろあったので、リンク先をクリックしまくってみる。


んで、最終的に候補に残ったのは、
tooltips.js
http://tooltip.crtx.org/

glt.js
http://www.robertnyman.com/glt/

nicetitle.js
http://kryogenix.org/code/browser/nicetitle/


要望としては、
・ポップさせた画面は、HTML+CSSで制御したい
・Prototype.jsベースならなんとなく
・Ajax使ってとってくるまででもない

ということで、
http://www.nickstakenburg.com/playground/scriptaculous/tooltip/
とかもあったんだけど、Jsだけで見栄え部分も設定というのが抵抗あってパス。その辺は、glt.jsも同じ。

nicetitle.jsは、なかなかいいなーと思ったんだけど、Jsコードが関数ベースでうーん・・・。ってそれはたいしたことない話なのかも。
(そういうところにこだわるのってJavaScript初心者っぽい・・・)


ということで、tooltips.jsになりそうな感じ。
itohさんのブログを読む | コメント (1) | トラックバック数 (0) | 閲覧数 (2651)
2007/06/19
カテゴリ : PHPメモ

執筆者: itoh (10:09 am)
$_SERVER['DOCUMENT_ROOT']使うときって、最後に"/"が付いているのが普通と思いますか?


どうも、ApacheのDocumentRootを抜き出しているだけなので、/が付いてたり付いてなかったり。Confに拠るのね。

ということで、自分ルール「/は着いてないものとする」
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (3458)
2007/06/06
カテゴリ : Javascript

執筆者: itoh (6:07 pm)
minahitoさんのポジティブシンキングサービス、riafさんのネガティブシンキングサービスに続く、日本人的文章変換サービス。


Bookmarkletで提供します。

java script:with(document.body)innerHTML=innerHTML.replace(/(です|だ|ます|である)。/g,'だと思われます。').replace(/ない。/g,'なさそうです。').replace(/(ある)。/g,'ありそうです。').replace(/(ないか|ないのか|ではないか)(\?|?)?/g,'と思いますがいかがでしょう?');focus();


これで、言い切り口調のブログも心穏やかに読めることでしょう。




いえ、私は使いませんが。
itohさんのブログを読む | コメント (10) | トラックバック数 (0) | 閲覧数 (2208)

« 1 (2) 3 4 5 ... 54 »



 





メインメニュー

Google Adsense

XoopsCube Ring
Amethyst Blue - BULLETIN


カテゴリ一覧
うぇブログ カレンダー


.