ホーム > ブログ [果報は寝て待て]

ブログ [果報は寝て待て]|Blog

RSS

本年も誠にありがとうございました。

2008年12月26日 16:09

こんにちは。
毎日寒くて、こたつから離れられない掛尾です。

今年もあと数日を残すのみとなりましたね。
何かいいことはありましたか?
目標に一歩でも近づきましたか?

僕はというと、shape DESIGNを立ち上げ、いくつものお仕事をさせていただき、PHPはもとより、JavaScript、FLASHやActionScriptなどなど、様々な面で成長する事ができたと思います。
それから、企業に勤めている時ではほとんど味わう事のなかった、お客様との距離の近さ、そして、納品後に「ありがとう」と直接言っていただける喜びも感じる事ができました。

まだまだ至らない所がたくさんありますが、来年も可能な限りの精進をして、お客様に満足していただき、「ありがとう」のお言葉をいただけるように努めたいと思います。

本年も誠にありがとうございました。
そして、来年も何卒よろしくお願いいたします。

----------
年末年始も特にお休みをいただく予定はありませんが、連絡がとりにくい・お返事の遅延等があるかも知れませんので、あらかじめご容赦ください。

消えないフォルダ 〜 久々の初期化(泣)

2008年11月13日 04:54

おはようございます。
何故か眠れずこんな時間に起きてる掛尾です。

少し前までバタバタとしていたのですが、ようやく一段落してちょっとだけゆっくりしています。
僕はMacを使っている訳なんですが、いつからか、何かの拍子に消せないフォルダができてしまって、困りはしないんですがなんか気持ち悪いので、どうにか消してやろうといろいろ試していました。

まずは「確実にゴミ箱を空にする」…。
とりあえず消えないフォルダが使用中だとかって怒られました…。

Finderから消せないんならターミナルからコマンドやっ!
「rm -rf directory」・・・えいっ!これでどうだっ!
…と、気合いを入れてリターンしてみるも空しく、、、「Derectory Not Empty」とかってまたしても怒られました…。

うーん…コマンドで消せないって・・・相当ヤバいような・・・と思ってググってみる。

とある所で、ディスクユーティリティを使って「基になるタスクが終了時に失敗したことが報告されました」ってメッセージが出たら相当ヤバいと。。。
それはないでしょ・・・と思って、ディスクユーティリティで検証・・・

・・・赤い文字で、ハッキリと出ちゃいました(>_<")

で、こうなるとどうも初期化しないと無理らしい・・・。

そう言うわけで、今日・明日くらいは復旧作業に追われているでしょう(泣)

皆さんも、日頃から酷使している愛用のもののメンテナンスはこまめにしましょうね〜(苦笑)

PHPとSmartyでRSSを自動生成

2008年10月15日 19:37

こんばんは。
最近、ActionScript2.0&3.0の勉強に必死な掛尾です。

冒頭にActionScriptとか書いておきながら、今回はPHPとSmartyでRSSを自動生成させる方法について書いてみようと思います。

何はともあれ、RSSの元になるデータがないと話にならないので、例によってデータを取得してきた所から始めます。
RSSの生成には、「サイト(ブログ)タイトル」「サイト(ブログ)URL」「サイト(ブログ)概要」「管理者メールアドレス」「記事タイトル」「記事URL」「記事概要」「登録日時」程度の情報を用意します。
なくても大丈夫なものも含まれていますが、今回はこの8つの情報からRSS2.0用のファイルを作ります。

まず、PHPのスクリプトを以下のような感じで書きます。
変数には、DBもしくはデータファイルから取得したデータが10件程度(あまり多すぎるのもどうかと思いますし・汗)入っているものとします。

<?php
/*
$rss_master配列に含まれる情報(例:$rss_master['site_title'])
site_title      : サイトタイトル;
site_url        : サイトURL;
site_description: サイト概要;
admin_mail_addr : 管理者メールアドレス;
 
$rss_data配列に含まれる情報(例:$rss_data[0]['topic_title'])
topic_title      : 記事タイトル;
topic_url        : 記事URL;
topic_description: 記事概要;
post_datetime    : 登録日時;
 
$smarty: Smartyインスタンス
*/
 
// 取得したデータをSmarty変数へ割り当てる
$smarty->assign( 'rss_master', $rss_master );
$smarty->assign( 'rss_data' , $rss_data );
 
// RSS生成用のSmartyテンプレートを取得
$template = $smarty->fetch( 'rss.tpl' );
 
// 生成されたSmartyテンプレートをファイルとして書き出し
$filePath = '/rss/rss.xml';
$handle = fopen( $filePath, 'w' );
if( $handle ){
// テンプレートを丸ごとUTF-8に変換(自作のクラスです)
fputs( $handle, $conversion->convert2utf8( $template ) );
fclose( $handle );
}
?>

PHPスクリプトは以上です。
Smartyは単に表示させるだけでなく、テンプレートをデータとして取得する事もできます。
[余談]
「$smarty->display」は、Smartyエンジンの内部的には「fetch→echo」となってるんだそうです。(ネタ元忘・汗)
(2008-12-31追記)Smarty.class.phpのdisplayメソッドはfetchメソッドをラップしているだけなのを確認しました。
[/余談]

次に、肝心のRSS用のテンプレートファイルを作成します。
RSSファイルは他の文字コードに対応していないRSSリーダーがないとは限らないので、可能な限りUTF-8にしておきます。
また、HTMLタグは取ってしまうか、エスケープしておきます。

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>{$rss_master.site_title}</title>
    <link>{$rss_master.site_url}</link>
    <description>{$rss_master.site_description}</description>
    <language>ja</language>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <copyright>{$rss_master.site_title}</copyright>
    <webMaster>{$rss_master.master_mail_addr}</webMaster>
    
    {foreach item="item_list" from=$rss_data name="item_list"}
    <item>
      <title>{$item_list.topic_title|strip_tags:false}</title>
      <link>{$item_list.topic_url}</link>
      <description>{$item_list.topic_description|strip_tags:false|jp_truncate:"200"|escape:"html"}</description>
      <pubDate>{$item_list.post_datetime|my_date_format:"r"}</pubDate>
    </item>
    {/foreach}
  </channel>
</rss>

以上を実行すると、rssディレクトリ内にrss.xmlというRSSファイルが出来上がります。
後は、サイトの好きなところに、<a href="rss/rss.xml">RSS購読</a>のように書けば、RSSリーダーへ登録ができます。

RSS1.0や、Atomも情報を送るテンプレートを変えれば作成する事ができます。
ブログ以外にも、メールマガジンのようにインフォメーションや、新着情報を作ったりする事もできますね(*^_^*)
一般の方には、RSSという物自体がなんだかよく知らないって方もまだまだ少なくないと小耳に挟んだりしますが・・・そこら辺は気にせずに(^-^;

では、今回はこの辺で。

※参考URL:www.kanzaki.com: RSS(RDF Site Summary)によるサイト情報の要約と公開
※このスクリプトにおいて、動作の検証は行っていませんので、責任は一切負いません。

Smarty Tips :: テンプレート関数プラグイン

2008年10月10日 20:38

こんばんは。
午前中に、ぷれ大掃除(笑)をした掛尾です。

今回は、意外と知られていない(?)Smartyのプラグインのひとつ、テンプレート関数プラグインについて書いてみようと思います。

Smartyでは、標準で使用できる{assign}や{html_options}といったカスタム関数があります。
でも、そのまま使うとなると、意外と使い勝手が悪かったり、融通が利かなかったりと、まぁ、いろいろ大人の事情ができてきます(笑)

そんなわけで、カスタム関数をもう少しカスタムして、DBからのデータをテンプレート側から直接呼び出せるプラグインを作ってみます。

さて、大人の事情で、例えばWEBページの右サイドにDBから取得してきたインフォメーションのデータを、タイトルにページへのリンクを張った一覧で10件、表示常に表示したいとしましょう。

普通(?)なら、各ページのPHPもしくは、テンプレートに直接書いたりインクルードしたりするでしょうか?
しかし、これではちょっとした修正をするのにも、一苦労になりそうな予感がプンプンしますよね(^-^;

というわけで、テンプレート関数プラグインを作成しましょう。

まず、Smartyの標準プラグイン達は、Smarty/plugins/に入っています。
$plugins_dirで設定もできますが、ここでは忘れます(笑)

その中に、以下のような感じの関数を書いて、plulgins/の中に保存します。
プラグインのファイル名には規則があって、関数名が「smarty_function_AAA()」なら、ファイル名は「function.AAA」としないとダメです。
今回の場合は「smarty_function_info_list」なので、「function.info_list.php」となります。

<?php
function smarty_function_info_list( $params, &amp;$smarty ){
 
// 〜 ここで、DBに接続して、LIMIT 10でデータを取得 〜
// $db_data:取得したデータ配列
 
// smarty変数に割当
$smarty->assign( $params['info_list_assign'], $db_data );
}
?>

これで、プラグインは完成です。
このプラグインをテンプレートの何処からでも呼び出せるようになりました。

次は、呼び出すテンプレート側です。
挿入したい箇所に、以下のように書きます。

{* プラグイン関数からデータを取得 *}
{info_list info_list_assign="list"}
<div>
  <h2>Information</h2>
  <ul>
    {foreach item="list" from=$list}
    <li><a href="info.php?id={$list.id}">{$list.str_title|strip_tags:false}</a></li>
    {/foreach}
  </ul>
</div>

1行目の{info_list info_list_assign="list"}は{関数名 受け取る$paramsのキー名 割り当てる変数}となっています。
あとは、通常通り{foreach}や{section}で配列を回して、一覧を作っていくだけです。
そして、使いたいテンプレートに上記のテンプレートをincludeすれば、修正する時もたった1ヶ所修正すればOKですよね(*^_^*)

プラグインは、使い出すと便利で意外とクセになるので、僕は常用しているのですが、他人がソースを見た時に関連性が解りにくいという理由で嫌う方もいるので、その辺はご注意を(笑)

次回は修飾子プラグインについて…としておきましょうか(笑)

※参考URL:Smarty::テンプレート関数プラグイン
※このスクリプトにおいて、動作の検証は行っていませんので、責任は一切負いません。

影に裏打ちされた光。

2008年10月8日 20:33

こんばんは。
最近、だいたい仕事中はB'zがヘビロテの掛尾です。

先日、NHKスペシャルで「メガヒットの秘密〜20年目のB'z〜」という番組が放送されました。
1ヶ月くらい前にmixiかどこかのニュースで告知されていて、心待ちにしてました。

B'zは僕が高校時代から大好きなアーティストで、その昔音楽の道を選んだのも、その影響は大きいと思います。
B'zの音楽は、心に響く歌詞と、ジャンルの幅の広い曲が絶妙に相まって、いつもすごいなと思います。

20年・・・何をするにも、続けるには相当の努力と、情熱がないと難しいと思います。
特に、音楽の業界で、数え切れない程のアーティストがいる中で、常にトップに君臨しているというのは、並大抵の事じゃないと思います。

番組を見て、ホントにすごいと思いました。
Vo.稲葉さんは、10日間のリハ合宿で、毎日ランニングをしていたり、ツアー中は専属の整体師を動向させていたり、リハのステージには4台もの加湿器を置いていたり・・・。
Gt.松本さんは、たった8小節のフレーズにこだわり、ほんの10数秒のフレーズに1ヶ月間も気に掛ける・・・。

大ヒットの方程式は?という質問に、松本さんは、答えは無いと言っていたけど、野生のカンだとも言っていた。
メガヒットを生み出した楽曲が出来上がった時は、ミリオンを確信しているんだとか。

2人は恐らくもう40代半ば・・・。
その歳になっても、3時間のステージでのあのパワー、そして、人気の秘訣は、やっぱり日常にしっかり裏打ちされたものなんだなと思いました。

何となく何かをやって、結果だけを見て納得しない人達とは既に次元が違うのだと感じました。

恐らくB'zの2人は、いい音楽を作り上げる事しか見えないのだろう・・・。
そう考えると、TVとかでほとんど見る事がないのも納得がいく。

大好きな事を思い切りやる。
それも、中途半端ではなく、他に何も見えなくなるくらいに。

≪ 前へ 1 ... 3 4 5 6 7 次へ ≫ (33件中 21 - 25件を表示)

shape DESIGN - シェイプデザイン, 徳島県徳島市名東町, tel/fax 088-635-5859, 営業時間 平日10:00〜18:00

まずはお気軽にお問い合わせください
お問い合わせ・お見積り・ご相談はこちら
お気軽にご相談ください

徳島県徳島市名東町
tel/fax 088-635-5859
営業時間 平日 10:00〜18:00

※打ち合わせ等で不在の場合は、お電話でのお問い合わせに対応できない場合がありますので、ご了承ください。

フォームからのお問い合わせ

徳島・香川・愛媛・高知および大阪・京都を中心にご依頼を承ります。その他の地域でも、メール・お電話・FAX・Skype等での作業が可能であれば柔軟に対応いたします。

  • Become our fan on Facebook, facebook.com/shape.design