<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>omnioo lab.</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/" />
    <link rel="self" type="application/atom+xml" href="http://www.omnioo.com/omnioolab/atom.xml" />
    <id>tag:www.omnioo.com,2009-11-07:/omnioolab//31</id>
    <updated>2012-02-03T17:40:51Z</updated>
    <subtitle>オムニオ・ラボ</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 5.12</generator>

<entry>
    <title>Mac OSXで隠しファイルを表示する方法</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/machintosh/mac-osx.php" />
    <id>tag:www.omnioo.com,2012:/omnioolab//31.1353</id>

    <published>2012-02-03T17:36:10Z</published>
    <updated>2012-02-03T17:40:51Z</updated>

    <summary><![CDATA[&nbsp;Macを買う目的は、いろいろあると思いますが、私は殆どWEBの開発に...]]></summary>
    <author>
        <name>omnioo</name>
        
    </author>
    
        <category term="Machintosh" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.omnioo.com/omnioolab/">
        <![CDATA[&nbsp;Macを買う目的は、いろいろあると思いますが、私は殆どWEBの開発に使っています。開発目的のマシンとしてはかなりいいです。WIndowsは結構クソなので、会社でしか使いません。<br />　というわけで、Mac OSXでも隠しファイルを表示させないと開発が全然できないので、ドットではじまる隠しファイルを表示する方法を紹介します。<br />　ターミナルを使ってコマンドを叩くだけです。<br /><br />隠しファイルを見れるようにする<br /><blockquote>defaults write com.apple.finder AppleShowAllFiles TRUE

</blockquote><p>デフォルトの状態（隠しファイルが見えない状態）に戻す</p><blockquote><p>defaults write com.apple.finder AppleShowAllFiles FALSE

</p></blockquote><br />killall FinderとするとFinderが再起動しますので、設定が反映されます。<br /> ]]>
        
    </content>
</entry>

<entry>
    <title>MTタグで相対パスを作る</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/movable-type/mt-1.php" />
    <id>tag:www.omnioo.com,2012:/omnioolab//31.1352</id>

    <published>2012-02-01T14:00:12Z</published>
    <updated>2012-02-01T14:01:12Z</updated>

    <summary>　Movable Typeは基本的にはフルパスというか絶対パスというかそういうも...</summary>
    <author>
        <name>omnioo</name>
        
    </author>
    
        <category term="Movable Type" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Template Tag" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.omnioo.com/omnioolab/">
        <![CDATA[<div>　Movable Typeは基本的にはフルパスというか絶対パスというかそういうものでリンクを設定するというのがデフォルトの設定になっています。かつてはhttp://からのアクセスはネットワークリソースがうんちゃらかんちゃらでアクセスを控えていたなんて時代もあったのですが、今はそんなこと全然ないです。隣のファイルにリンクするのもhttp://からアクセスするのだって兵器な時代になりました。</div><div>　しかしながら相対パスで設定しなくてはならない場合も多々あります。本日ぶち当たったのはサーバー環境の以降の問題でした。サーバーがコロコロ変わる上にサーバー管理のできない人が管理者とかお客さんとかで、サーバーのファイルをそれごとどっかに移しちゃったりなんなり...。フルパスを取得してMTを操作するとリンクがすべて切れてしまうのでそこらを全部相対パスでやってやるという感じです。</div><div>　基本的にはプラグインでやる方法とMTタグを作成して自分で相対パスをパブリッシングしてやる方法とありますが、ここではまず最初にMTタグを使って相対パスを作成する方法です。</div><div>　しかしリンクというのは抽象的な意味でもありますし、そのリンクも無数にあるわけなので、ここではトップページからブログ記事アーカイブに結びつけるリンクということで話を進めます。</div><div>　ブログ記事アーカイブは、そのアーカイブのパス（アーカイブマッピング）もいろいろと種類があるので、それによって相対パスが変わってくるということになります。デフォルトでは日付をベースにした</div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>http://www.omnioo.com/omnioo/omnioolab/2012/02/01/basename.html</div></blockquote><div>というようなパスがいわゆるパーマリンクということになります。日付とファイル名でマッピングしておるというわけです。</div><div>これを、"./2012/02/01/basename.html"という状態で相対パスを生成すると、http://www.omnioo.com/omnioo/omnioolab/index.htmlからアクセスが可能になるというわけです。</div><div>&lt;$mt:EntryPermalink$&gt;</div><div>ですと、デフォルトですでにフルパスになってしまうので、これを相対化します。相対化というよりもむしろ個々のディレクトリを個別にパブリッシングしてつなげるといったベタ方法です。</div><div>&lt;mt:BlogRelativeURL /&gt;&lt;$mt:EntryDate format="%Y/%m/"$&gt;&lt;mt:EntryBasename separator="-" /&gt;&lt;mt:BlogFileExtension /&gt;</div><div>で基本的にはOKです。&lt;mt:BlogFileExtension /&gt;は面倒だけど、これにしておいた方が無難です。後から拡張子を変えるなんてことは結構頻繁にありますので。</div><div>　注意すべきは、&lt;mt:BlogRelativeURL /&gt;は"ウェブページ/ブログ/"というパスになります。MT特有の癖で/（スラッシュ）で終わるようになっています。</div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>相対パス: &lt;mt:BlogRelativeURL /&gt;&lt;br /&gt;</div><div>日付: &lt;$mt:EntryDate format="%Y/%m/"$&gt;&lt;br /&gt;</div><div>ブログのベース名: &lt;mt:EntryBasename separator="-" /&gt;&lt;br /&gt;</div><div>拡張子: &lt;mt:BlogFileExtension /&gt;&lt;br /&gt;</div></blockquote><div>という風に一回バラバラにして見てみるといいです。</div><div><br /></div> ]]>
        
    </content>
</entry>

<entry>
    <title>WordpressでECサイト構築プラグイン</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/wordpress/wordpressec.php" />
    <id>tag:www.omnioo.com,2012:/omnioolab//31.1346</id>

    <published>2012-01-30T22:53:27Z</published>
    <updated>2012-01-31T00:32:41Z</updated>

    <summary><![CDATA[&nbsp;Wordpressでできないことはない...といわれるようになって久...]]></summary>
    <author>
        <name>omnioo</name>
        
    </author>
    
        <category term="Plugin" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="WordPress" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.omnioo.com/omnioolab/">
        <![CDATA[&nbsp;Wordpressでできないことはない...といわれるようになって久しいですが、Wordpressとプラグインだけで結構簡単にECサイト構築ができます。おすすめなのが、<a href="http://www.welcart.com/">Welcart</a>です。このプラグインは設定も簡単で、通常のECサイト機能がそこそこ揃っていて、足りない機能もないし、しつこくもないという感じです。普通にECサイトやるのだったらかなりおすすめです。WP共々、Welcartも無償のプラグインなのでコストパフォーマンスもいいです。急ぎの場合は、Welcartホームページから有料のWelcartのテーマを購入できます。これもかなり安価なので、買った方が早いかもです。<br />　デザインがだっさいですが、「Welcart Default Theme 1.0」というデフォルトのテーマもプラグインの中に付属しています。<br /><br /><blockquote><a href="http://www.welcart.com/">Welcat Download</a><br /></blockquote><br />&nbsp;Welcartがおもしろいのは、プラグインのプラグインがあることです。Welcartそれ自体は基本的な機能を備えてはいますが、その機能に更にカスタマイズを加える場合は、Welcartのプラグン、すなわちプラグインのプラグインがダウンロード可能です。<br /><br />　プラグインを有効にすると、<br /><blockquote>Welcart Shop<br />Welcart Manegement<br /></blockquote>という二つの項目が左側メニューに現れて、設定自体はそこで全部できます。<br />　商品の登録はWelcart Shopから登録します。商品はWPループで拾っているみたいで、ブログ記事のように表示されます。カート機能は、プラグインを有効にした時点ですべて自動的にデザイン済なので、ショッピングカートのデザインはCSSを触るだけで変更可能です。<br />　Welcartもどんどんアップデートしているので、サーバー環境とかWPのバージョンとかいろいろ管理するのは面倒ですが、現在のデフォルトのZencartよりは全然ましです。<br />]]>
        
    </content>
</entry>

<entry>
    <title>WPのお問い合わせフォーム　contact-form</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/wordpress/plugin-1/wpcontact-form.php" />
    <id>tag:www.omnioo.com,2012:/omnioolab//31.1344</id>

    <published>2012-01-24T16:54:22Z</published>
    <updated>2012-01-24T16:56:54Z</updated>

    <summary>Wordpressのお問い合せフォームhttp://wordpress.org/...</summary>
    <author>
        <name>omnioo</name>
        
    </author>
    
        <category term="Plugin" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="WordPress" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.omnioo.com/omnioolab/">
        <![CDATA[Wordpressのお問い合せフォーム<br /><br /><a href="http://wordpress.org/extend/plugins/contact-form-7/">http://wordpress.org/extend/plugins/contact-form-7/</a><br />contact-form-7.3.0.2.1.zipをダウンロードします。2012.01現在です。<br /><br /><ol><li>wp-content/plugins/にアップロード</li><li>プラグインを有効化</li><li>ダッシュボードのサイドバーに「お問い合わせ」という項目ができています。</li><li>その項目からそれぞれのフォーム内容を設定してゆきます。</li></ol><br />タグの作成という部分からフォームのそれぞれのアイテムを作成してゆきます。<br />お問い合わせフォームだったらデフォルトのものをそのまま使っても大丈夫です。<br />作成したら、茶色のバックのタグを固定ページ作成時に貼って保存すれば、もうお問い合わせフォームができてしまいます。MTよりおそろしく簡単で早くできる。 ]]>
        
    </content>
</entry>

<entry>
    <title>Firefoxのアドオン</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/news/firefox-1.php" />
    <id>tag:www.omnioo.com,2012:/omnioolab//31.1343</id>

    <published>2012-01-24T13:25:41Z</published>
    <updated>2012-01-24T13:26:59Z</updated>

    <summary>開発しているなら、Firefoxアドオンの、Live Http Headerを入...</summary>
    <author>
        <name>omnioo</name>
        
    </author>
    
        <category term="Twitter的memo" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="開発メモ&amp;NEWS" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.omnioo.com/omnioolab/">
        開発しているなら、Firefoxアドオンの、Live Http Headerを入れるべし。 
        
    </content>
</entry>

<entry>
    <title>mailコマンドで端末からメール送信</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/ubuntu-910/mail.php" />
    <id>tag:omnioo.com,2010:/omnioolab//31.984</id>

    <published>2012-01-23T01:22:08Z</published>
    <updated>2012-01-23T12:29:23Z</updated>

    <summary>送信メールサーバーが設定してある場合は端末からメール送信ができます。mailコマンドを使います。</summary>
    <author>
        <name>omnioo</name>
        
    </author>
    
        <category term="Command" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu 9.10/10.04" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mail" label="mail" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="skill" label="Skill" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.omnioo.com/omnioolab/">
        <![CDATA[　送信メールサーバーが設定してある場合は端末からメール送信ができます。mailコマンドを使います。<br /><ul><li>mail &lt;送信先のメールアドレス&gt;</li></ul><blockquote>$ mail omnioo@example.com　(*1)<br />Subject: test mail 　(*2)<br />こんにちは。テストメールです。　(*3)<br />.　(*4)<br />Cc: omnioo2@example.com　(*5)</blockquote>これだけです。<br /><ol><li>mailの後に送信先のメールアドレスを入力してからEnterを押します。</li><li>Subject:が出てくるので適当なタイトルをつけてEnterを押します。</li><li>次の行で本文を入力します。改行をしても大丈夫です。</li><li>本文を終了させるときには、ピリオドを打ってEnterを押します。これでメール本文が終了します。</li><li>Cc:が出てくるので複数のアドレスに送信したい時はメールアドレスを入力します。Enterを押して終了です。</li></ol>もしくは、<br /><blockquote>echo test | mail info@example.com<br /></blockquote>でもタイトルなしで簡単に送信できます。<br /><br />そもそもmailコマンドが入っていない場合は、apt-getでインストールします。<br /><blockquote># apt-get install mailx&nbsp;&nbsp; (または、mailutils)<br /></blockquote>でインストールできます。特に再起動とか何もしなくても大丈夫なようです。<br /> ]]>
        
    </content>
</entry>

<entry>
    <title>mb_send_mail</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/php/mb-send-mail.php" />
    <id>tag:omnioo.com,2010:/omnioolab//31.858</id>

    <published>2012-01-22T01:42:41Z</published>
    <updated>2012-01-23T12:20:14Z</updated>

    <summary> mb_send_mailはマルチバイト文字を正しく解釈してくれるありがたい関数...</summary>
    <author>
        <name>omnioo</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="関数" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="skill" label="Skill" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.omnioo.com/omnioolab/">
        <![CDATA[ mb_send_mailはマルチバイト文字を正しく解釈してくれるありがたい関数です。コマンドのsendmailに比べてとても簡単に使えます。<br />　しかし、php導入をしたばかりの時など時としてmb_send_mailが使えない設定になっている時がありますので、その設定と導入から。<br /><br />

<h1>設定</h1>
　/etc/php5/apache2/php.iniという場所にphpの設定ファイルがあります。php的には Configuration Fileという名前みたいです。すでにphpを使用している場合は&lt;? phpinfo(); ?&gt;からそのファイルパスを探すことができます。適当なエディタで開いてから、mailセクションの項目を編集・設定します。<br />　[mail function]というタイトル以下にメールに関する設定項目郡があります。<br /><br /><blockquote>[mail function]<br />; For Win32 only.<br />SMTP = localhost<br />smtp_port = 25<br /><br />; For Win32 only.<br />;sendmail_from = me@example.com<br /><br />; For Unix only.&nbsp; You may supply arguments as well (default: "sendmail -t -i").<br /><b>sendmail_path = /usr/sbin/sendmail -t -i</b><br /><br />; Force the addition of the specified parameters to be passed as extra parameters<br />; to the sendmail binary. These parameters will always replace the value of<br />; the 5th parameter to mail(), even in safe mode.<br />;mail.force_extra_parameters =<br /><br />;<br />; マルチバイトの文字列を扱う際の設定<br />; mb_send_mailで使用する。たぶん初期設定にはないので自分で書いてください。<br /><b>mbstring.internal_encode = UTF-8</b><br /><b>mbstring.language = Japanese</b><br /></blockquote><b><br />　</b>太字の部分を編集します。;sendmail_path = となっている場合は、コメントアウト(;)を外して正しいsendmailパスを書き込みます。sendmailパスは、端末などから「which sendmail [Enter]」で表示されます。私の環境では/usr/sbin/sendmailでした。（/usr/lib/sendmailというパスも一般的なので、リンクを貼っておいてもいいかもです。って思って確かめたらもう貼ってありました...）<br />　次にマルチバイト文字を日本語で使えるように設定します。mbstring.internal_encode = utf8 は自分の使っている文字コードを書きます。EUCの場合やShift_JISの場合は便宜書き換えてください。このディレクティブはphpのマルチバイトコード全般に影響する設定です。マルチバイトの正規表現なども正しくできるようになります。同時にメール送信でも文字コードを正しく扱ってくれるようになります。mbstring.language = Japanese ではmb_send_mailで使用する言語を設定します。普通は日本語なのでJapaneseを設定。<br />　以上を書き込んで保存したら、/etc/init.d/apache2 restart で再起動します。これでmb_send_mail()が使えるようになると思います。<br /><br />

<h1>mb_send_mail</h1>

　mb_send_mailの形式は以下のようになります。<br /><br /><blockquote>mb_send_mail (&lt;送信先&gt;, &lt;メールの件名&gt;, &lt;メール本文&gt;, &lt;追加するヘッダ&gt;, &lt;追加するパラメーター&gt;);<br /></blockquote><br /><ul><li>送信先：：送信先には送信先を指定します。</li><li>メールの件名：：メールのタイトルです。</li><li>メールの本文：：メールの本文を入れます。</li><li>追加するヘッダ：：ここには、送信元の情報などを埋め込みます。送信先のメール送信サーバー元と送信者本人のメールアドレスが違う場合などにヘッダを追加します。$header = "From:user@example.com";というような感じで指定します。これがないと送信サーバーのメールアドレスが返信メール先になってしまいます。</li><li>追加するパラメーター：：ここではいわゆるReturn-Pathを入れておくといいです。-fオプションをつけて、もしメールが配信されなかった場合の返ってくるメールアドレスを付加します。受信メールサーバーによってはこのReturn-Pathがないメールをスパムと判断するフィルターもあるようで通常"-f user@example.com"という感じで入れておいた方がいいかも。</li></ul>　余談ですが、これは真っ当なスパム判断の材料ではないです。しかし、Return-Pathに架空のアドレス（example.com)を設定して送信したものと、きちんと実在するメールアドレスを入れて送信したものとをGmailで実験したら、前者はスパム、後者は普通にメールボックスに入ってきました。さすがGmailですね。<br />　と思って2012.01現在にもう一度機会があったので試してみたら、どちらも「このメッセージは次のアドレスから送信されたものではない可能性があります：」といわれてしまいました。とほほ。<br /><br />　しかし、自動送信しなくてはいけない機能が多いので、それはそれでしかたないということで。<br /><br />　実際にmb_send_mailを利用してphp.iniの設定を変えてさえも文字化けが発生してしまったら、コードにいくつか内部エンコードなんかを加えるときちんと日本語でも送信できるようになりました。<br /><br /><blockquote>&lt;?php<br />mb_language("uni");&nbsp; <br />mb_internal_encoding("utf-8"); <br />mb_http_input("auto"); <br />mb_http_output("utf-8");<br />&nbsp; <br />mb_send_mail ("to@example.com","テスト","テスト送信","From:from@example.com","-f&nbsp; testuser@gmail.com");<br /><br />print "sended !";<br />?&gt;<br /></blockquote>なかなか面倒です。<br />]]>
        
    </content>
</entry>

<entry>
    <title>HTMLの文字コード宣言</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/web-design/html-5.php" />
    <id>tag:www.omnioo.com,2012:/omnioolab//31.1342</id>

    <published>2012-01-20T22:31:05Z</published>
    <updated>2012-01-20T22:33:25Z</updated>

    <summary>　HTML書くときは、文字コード宣言しましょう。必ず。ここ最近のブラウザーは文字...</summary>
    <author>
        <name>omnioo</name>
        
    </author>
    
        <category term="Web Design" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="その他の技術" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.omnioo.com/omnioolab/">
        <![CDATA[　HTML書くときは、文字コード宣言しましょう。必ず。ここ最近のブラウザーは文字コードにうるさいですが、宣言しておけば確実に文字化けはなくなりますよ。<br /><br /><blockquote><div align="left">ISO-2022-JP(いわゆるJIS)<br />&lt;meta http-equiv="Content-Type" content="text/html; charset=iso-2022-jp"&gt;<br /><br />Shift_JIS(Windowsではこの文字コードがよく使われます)<br />&lt;meta http-equiv="Content-Type" content="text/html; charset=shift_jis"&gt;<br /><br />EUC-JP(UNIX系OSではこの文字コードがよく使われていましたが、今はもう廃れています。)<br />&lt;meta http-equiv="Content-Type" content="text/html; charset=euc-jp"&gt; <br /><br />UTF8(UNIX系OS、Mac、一般的には今はこの文字コードがよく使われます)<br />&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt; </div></blockquote>]]>
        
    </content>
</entry>

<entry>
    <title>PHPのクラス継承</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/php/php-17.php" />
    <id>tag:www.omnioo.com,2012:/omnioolab//31.1337</id>

    <published>2012-01-18T01:23:58Z</published>
    <updated>2012-01-18T02:19:01Z</updated>

    <summary><![CDATA[&nbsp;PHPのクラスの継承は結構簡単ですよ。ただクラスについてわからないと...]]></summary>
    <author>
        <name>omnioo</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="class" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.omnioo.com/omnioolab/">
        <![CDATA[&nbsp;PHPのクラスの継承は結構簡単ですよ。ただクラスについてわからないと全くわからないので最初にクラスについてよく理解しておく必要があります。で、この継承というものなのですが、たしかC言語だったら何度でも継承できたというような記憶がありますが、どうだったでしょうか。PHPはそういった意味では結構制約がたくさんあります。<br />　で、継承とは何かというと、<br /><ul><li>親クラス（継承するクラス）のプロパティとメソッドをすべてそのまま引き継ぐ。</li><li>親クラスにある関数を子クラスでも同名で設定すると上書きされる（オーバーライド）</li></ul>　まず継承（Inheritance）できるのは1つのクラスにつき１つです。子クラスでもって複数の親クラスを継承できないということです。クラスという膨大な関数のライブラリーのことを考えると特に問題ないです。１つのクラスで１つのクラスを引き継ぐことができれば十分でしょ、というところです。<br />　第二にオーバーライドも一回しかできなかったと思います。これでも特に問題ないです。親クラスと同じプロパティー名（変数名）、メソッド名（関数名）を子クラスで使用すると子クラスのものが優先されて親クラスの値を上書きします。<br />　PHPの関数は簡単なので、だいたいこんなもんです。これ以上の機能を求めることも殆どないので、一応かゆいところには手が届きます。<br /><br />

<h1>実際の継承の具体的な方法</h1>

<h2>親クラスを継承する</h2>　以下のコードで見てみると、結構単純なのですぐに覚えられます。まずは親クラスにあたる普通のクラスがあります。プロパティとメソッドが普通にあるという感じです。それらの機能を子クラスで継承したいという場合には、単純に子クラス名の後ろに、<br /><blockquote>extends &lt;親クラス&gt;<br /></blockquote>という形式で書きます(*1)。これだけでその子クラスに親クラスのすべての機能を持ってくることができます。ここでは、親クラス名が「class_test」になっているので、extends class_testとなります。これだけで、親クラスの機能をすべて引き継いでいるわけですが、実際にその値を取り出す方法はまたちょっと別な方法になります。<br />

<h2>親クラスの値を取り出す</h2>&nbsp;親クラスの値を取り出すには、子クラスのプロパティで何らかの受け皿を作っておくと楽です。いずれにしろデータを加工したりする場合には受け皿作らないとなんにもできませんし。もちろん、クラスの外側で、子クラスからオブジェクトして親クラスの値を直接呼び出すこともできます。（が、私はあんまりそれはやりません。後から分けわからなくなりますので...）<br />　ここではpublic $var6;　public $var7;としてプロパティを設定しています。なので親クラスを受けるときは、当然、$this-&gt;var6、$this-&gt;var7ということになります。このプロパティに親クラスの値を入れてやります。やり方は二種類あります。<br />　１つは親クラスの名称を、parentとしてそのクラスのメソッドを呼び出して上げる方法。<br /><blockquote>$this-&gt;var6 = <b>parent</b>::&lt;メソッド名&gt;(); 　　(*2)<br /></blockquote>もう一つは、クラス名をそのまま直接書いて、その中のメソッド名を書いてあげる方法。<br /><blockquote>$this-&gt;var7 = &lt;親クラス名&gt;::&lt;メソッド名&gt;(); 　　　#(*3)<br /></blockquote>　どちらの方法も機能に差はないのですが、私的には後者の方が多用するかもしれません。というのは、先のextends ...で親クラス名を確認しなくてもこのひとつのフレーズで親クラス名がわかるからです。しかし、parentももちろんメリットがあって親クラス名が長かったり複雑だったりするとかだったらparentで書いた方がすっきりしますし。一長一短です。<br /><br /><blockquote>&lt;?php<br /><br /># 親クラス<br />$ob = new class_test();<br />print $ob-&gt;var1."&lt;br /&gt;";<br />$re = $ob-&gt;test_function1();<br />print $re."&lt;br /&gt;";<br />$re = $ob-&gt;test_function2();<br />print $re."&lt;br /&gt;";<br /><br />#子クラス<br />$ob = new child_class();<br />print $ob-&gt;var4."&lt;br /&gt;";<br />$re = $ob-&gt;ch_test_function3();<br />print $re."&lt;br /&gt;";<br />$re = $ob-&gt;ch_test_function4();<br />print $re."&lt;br /&gt;";<br />$re = $ob-&gt;ch_test_function5();<br />print $re."&lt;br /&gt;";<br /><br /><br />class class_test {<br />&nbsp;&nbsp;&nbsp; public $var1 = 1;<br />&nbsp;&nbsp;&nbsp; public $var2 = 2;<br />&nbsp;&nbsp;&nbsp; public $var3;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; function test_function1() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $re = 'test_function1';<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return $re;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; function test_function2() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $re = 'test_function2';<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return $re;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}<br /><br />class child_class <b>extends class_test</b> {　# (*1)<br />&nbsp;&nbsp;&nbsp; public $var4 = 4;<br />&nbsp;&nbsp;&nbsp; public $var5 = 5;<br />&nbsp;&nbsp;&nbsp; public $var6;<br />&nbsp;&nbsp;&nbsp; public $var7;<br />&nbsp;&nbsp;&nbsp; function ch_test_function3() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $re = 'ch_test_function3';<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return $re;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; function ch_test_function4() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $re = 'ch_test_function4';<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <b>$this-&gt;var6 = parent::test_function2(); #(*2)</b><br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return $this-&gt;var6;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; function ch_test_function5() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $re = 'ch_test_function5';<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <b>$this-&gt;var7 = class_test::test_function1();</b> #(*3)<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return $this-&gt;var7;<br />&nbsp;&nbsp;&nbsp; }<br />}<br /><br />?&gt;<br /></blockquote><br />出力結果は、<br /><blockquote>1<br />test_function1<br />test_function2<br />4<br />ch_test_function3<br />test_function2<br />test_function1<br /></blockquote>]]>
        
    </content>
</entry>

<entry>
    <title>PHPでiPhoneのブラウザーの判定</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/php/php-16.php" />
    <id>tag:www.omnioo.com,2012:/omnioolab//31.1336</id>

    <published>2012-01-17T02:39:41Z</published>
    <updated>2012-01-17T06:25:07Z</updated>

    <summary>　PHPでブラウザーの判定をすることができますが、最近はもういろんなブラウザーが...</summary>
    <author>
        <name>omnioo</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.omnioo.com/omnioolab/">
        <![CDATA[　PHPでブラウザーの判定をすることができますが、最近はもういろんなブラウザーが乱立しているので、一応私が試した結果を書いておこうと思います。PHPでは環境変数の<br />getenv( "HTTP_USER_AGENT" )<br />を利用してブラウザー情報を取得することができます。<br /><blockquote>&lt;?php<br />&nbsp;&nbsp; $Agent = getenv( "HTTP_USER_AGENT" );<br />&nbsp;&nbsp;&nbsp; print $Agent;<br />?&gt;<br /></blockquote>　各ブラウザーの判定は、ぞれそれの文字列に正規表現マッチさせればいい感じでありますが、
<table>
<tbody><tr><th>ブラウザー</th><th>マッチする文字列</th></tr>
<tr><td>Firefox</td><td>Firefox</td></tr>
<tr><td>Chrome</td><td>Chrome &amp; Safari<br /></td></tr>
<tr><td>Safari</td><td>Safari not Chrome<br /></td></tr>
<tr><td>Opera</td><td>Opera</td></tr>
<tr><td>IE</td><td>MSIE</td></tr>
<tr><td>iPhone</td><td>iPhone</td></tr>
<tr><td>iPad</td><td>iPad</td></tr>
<tr><td>Android</td><td>Android</td></tr>
</tbody></table>



　ということになっているみたいです。全部のブラウザーとOSでブラウザー情報取得できる環境がなかったのですみません。だいたいこのような文字列にマッチすればよいみたいです。Chromeがちょっと変でSafariの情報が入ってます。おそらくWebKit系のブラウザーってことで同じような情報を重複して載せているんじゃないかと思われます。いずれにしろ主なブラウザーの判断はこのような形になっています。<br /><br />汚いコードですが、こんなので大丈夫です。が、AndriodとiPadについては手元にないので確認していませんので、ご自身で確認してください。<br /><br /><blockquote>&lt;?php<br />&nbsp;&nbsp;&nbsp; $Agent = getenv( "HTTP_USER_AGENT" );<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; if (preg_match("/iPhone/",$Agent)) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; print "iPhone";<br />&nbsp;&nbsp;&nbsp; } elseif (preg_match("/iPad/",$Agent)) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; print "iPad";<br />&nbsp;&nbsp;&nbsp; } elseif (preg_match("/Android/",$Agent)) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; print "Android";<br />&nbsp;&nbsp;&nbsp; } elseif (preg_match("/Chrome/",$Agent) &amp;&amp; preg_match("/Safari/",$Agent)) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; print "Chrome";<br />&nbsp;&nbsp;&nbsp; } elseif (preg_match("/Safari/",$Agent) &amp;&amp; !preg_match("/Chrome/",$Agent)) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; print "Safari";<br />&nbsp;&nbsp;&nbsp; } elseif (preg_match("/Opera/",$Agent)) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; print "Opera";<br />&nbsp;&nbsp;&nbsp; } elseif (preg_match("/Firefox/",$Agent)) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; print "Firefox";<br />&nbsp;&nbsp;&nbsp; }<br />?&gt;<br /></blockquote><br /><br />参考までに取得した文字列を載せておきます。<br /><br />

<h2>iPhone</h2>
iPhone4S　Safari<br />Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) 
AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 
Safari/7534.48.3<br /><br />iPhone4S　Opera mini<br />Opera/9.80 (iPhone; Opera Mini/6.5.1.23995/26.1374; U; ja) Presto/2.8.119 Version/10.54<br /><br />

<h2>Windows</h2>
Windows XP Firefox 9.0.1<br />Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1<br /><br />Windows XP IE8<br />Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 
1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; MDDS; .NET CLR 
3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1; AskTbDVS2/5.14.1.20007; msn 
OptimizedIE8;JAJP)<br /><br />Windows XP Chrome 16.0.912.75<br />Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7<br />

<h2>Mac</h2>
Mac(Lion) Firefox 9.0.1<br />Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:9.0.1) Gecko/20100101<br />
Firefox/9.0.1 FirePHP/0.6<br /><br />Mac(Lion) Chrome 16.0.912.75<br />Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.7<br />
(KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7<br /><br />Mac(Lion) Safari 5.1.2<br />Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.52.7<br />
(KHTML, like Gecko) Version/5.1.2 Safari/534.52.7<br /><br />Mac(Lion) Opera 11.6.0<br />Opera/9.80 (Macintosh; Intel Mac OS X 10.7.2; U; ja) Presto/2.10.229<br />
Version/11.60<br /><div class="yj6qo ajU"><div data-tooltip="短縮されたコンテンツを表示する" id=":8k" class="ajR" role="button" tabindex="0"><img class="ajT" src="https://mail.google.com/mail/u/0/images/cleardot.gif" /></div></div><br />]]>
        
    </content>
</entry>

<entry>
    <title>jQueryでインクルードする</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/web-design/javascript/jquery-15.php" />
    <id>tag:www.omnioo.com,2012:/omnioolab//31.1335</id>

    <published>2012-01-12T10:02:35Z</published>
    <updated>2012-01-12T10:14:59Z</updated>

    <summary>　むかしの話ですが、サーバーサイドインクルードなんていうものがあってサーバー重く...</summary>
    <author>
        <name>omnioo</name>
        
    </author>
    
        <category term="JavaScript &amp; Ajax" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="jQuery" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="javascript" label="JavaScript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jquery" label="jQuery" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.omnioo.com/omnioolab/">
        <![CDATA[　むかしの話ですが、サーバーサイドインクルードなんていうものがあってサーバー重くなるので禁止とか何とかよく言っていたものですが、最近はインクルードそのものがハチャメチャな時代になりまして特に「インクルード」なんて言わなくなってきたような気がします。私の仕事の文脈では主によそのライブラリーを読み込む際に「インクルード」するという言い方している時があります。（本当はrequireしていたりするんですが、そういうのはどうでもいい感じです。）<br />　WEBページは基本的にはだいたいがインクルードで出来ていると言っても最近hは過言ではないのでインクルードが何を指すのかというのが本当に不可解な時代になってしまいましたが、かつてWEBページの合成といいますか...そういうものにはiframeなんてものを使っていました。検索エンジンなどでインデックスの部分だけ表示されるとかSEO的には駄目とかいろいろあって、ひどい場合には文字コードが違っていたりしてもうなんとかっこうわるいことかと。<br />　iframeを使うのが悪いわけじゃないんですが、これ使っていること自体がなんかものすごい時代錯誤のような気がしているのは僕だけでしょうか。<br />　いずれにしろiframe風なやり方は全然スマートなやり方ではないんですが、そういうことをやらざる得ない場合には、jQueryでやった方がスマートなんじゃないかと思います。しかし、SSIやiframeと同様にSEO的にあんまりよくないです。何せクライアント側で読み込むことになるわけですから。<br /><br /><a href="http://www.tinybeans.net/blog/2008/11/10-173717.html">http://www.tinybeans.net/blog/2008/11/10-173717.html</a><br />　jQuery_inc.jsというとっても便利なソースを公開してくれています。これが便利なのはjQueryの機能を生かしてセレクターでもってその内容をインクルードできるというところです。別のWebサーバーからファイルを呼び出してからセレクターでインクルードしたブロックを指定するといった感じです。そのブロック内の内容が読み込まれるといった仕様になっています。とても便利です。<br /><br />

<h1>jQueryを使えるようにする準備</h1>
1. jqueryライブラリーを何らの方法で読み込む。<br /><blockquote>&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"&gt;&lt;/script&gt;<br /></blockquote><br />2. jquery_inc.jsを読み込む。<br /><blockquote>&lt;script type="text/javascript" src="./js/jquery_inc.js"&gt;&lt;/script&gt;<br /></blockquote><br />　22行目辺りに/* &lt;== Edit it first */という部分があるので、ここにインクルードしたいファイルを記述します。PHPファイルも読み込んでくれました。（当たり前か。）<br /><blockquote>jQuery(document).ready(function(){<br />&nbsp; jQuery('.jquery_inc').each(function(){<br />&nbsp;&nbsp;&nbsp; var inc_url = 'http://www.example.jp/index.php';&nbsp;&nbsp; /* &lt;== Edit it first */<br />&nbsp;&nbsp;&nbsp; var inc_selector = jQuery(this).attr('title');<br />&nbsp;&nbsp;&nbsp; ...<br /></blockquote><br />

<h1>使用方法に従って、タグを埋め込んでインクルードする。</h1><blockquote>&lt;Element class="xxxxxx" title="zzzzzz"&gt;&lt;/Element&gt;<br /></blockquote>というタグをインクルードさせる部分に貼付けます。xxxxxにはjQueryのクラス名を指定していろいろと機能を選択します。コマンドみたいなもんです。zzzzzには読み込み先のセレクターを指定します。<br /><br />1. 基本的な使い方（子要素がない場合、または一つの場合）<br />　読み込ませたい場所に、<br /><blockquote>&lt;Element class="jquery_inc" title="#alpha"&gt;&lt;/Element&gt;<br /></blockquote>という感じで、記述します。このタグの意味は、「jquery_incクラスを使って、 指定した読み込み先のファイル内の#alpha（id='alpha'）の部分を読み込む」という意味になります。これが最も基本的な使い方です。#alpha以下のタグをすべて読み込んでくれます。<br />　タイトル（title=''）には、セレクターを書きます。idの場合はそのまま「#〜」、classの場合は「.〜」と書けばいいみたいです。勿論「p.〜」みたいな書き方も可能です。jQueryのセレクタの書き方ってことです。<br /><br />2.　基本的な使い方（子要素が複数ある場合）<br />&nbsp;　子要素をまとめて読み込みたい場合は、child_incクラスを使います。jquery_incクラスに続けて半角空けてから記述します。<br /><blockquote>&lt;Element class="jquery_inc child_inc" title="#alpha"&gt;&lt;/Element&gt;<br /></blockquote><br />3. 基本的な使い方（複数の読み込み先ファイルがある場合）<br />　 jquery_inc.jsで読み込むファイルは一つしかないので、これは困ったなという人のためにかどうかはわかりませんが、複数読み込める仕様になっています。file_incクラスを使います。　<br /><blockquote>&lt;Element class="jquery_inc file_inc" title="http://www.example.jp/else.php #alpha a.link"&gt;&lt;/Element&gt;<br /></blockquote>という感じでしょうか。URLと複数のセレクターは半角スペースで区切って書きます。じゃ、最初の jquery_inc.jsに記述したファイルは何じゃということになりますが、形式的に書いておかないと駄目といったところでしょうか。<br /><br />　リプレイス機能もありますが、私自身全然使わないので割愛します。<br /><br />jquery_inc.jsのソースは以下のようになっています。<br /><blockquote>/*<br />&nbsp;* jQuery_inc.js<br />&nbsp;*<br />&nbsp;* Copyright (c) 2008 Tomohiro Okuwaki (http://www.tinybeans.net/blog/)<br />&nbsp;* Licensed under the MIT License:<br />&nbsp;* http://www.opensource.org/licenses/mit-license.php<br />&nbsp;*<br />&nbsp;* Modified: 2008-11-10<br />&nbsp;* Document: http://www.tinybeans.net/blog/2008/11/10-173717.html<br />&nbsp;*<br />&nbsp;*/<br /><br />function strRef (text) {<br />&nbsp;&nbsp; &nbsp;text = text.replace(/&amp;amp;/g,'&amp;');<br />&nbsp;&nbsp; &nbsp;text = text.replace(/&amp;lt;/g,'&lt;');<br />&nbsp;&nbsp; &nbsp;text = text.replace(/&amp;gt;/g,'&gt;');<br />&nbsp;&nbsp; &nbsp;text = text.replace(/&amp;quot;/g,'"');<br />&nbsp;&nbsp; &nbsp;return text;<br />}<br />jQuery(document).ready(function(){<br />&nbsp;&nbsp; &nbsp;jQuery('.jquery_inc').each(function(){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var inc_url = '/jquery_inc.html';&nbsp;&nbsp; /* &lt;== Edit it first */<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var inc_selector = jQuery(this).attr('title');<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var replace_inc = jQuery(this).filter('.replace_inc').size();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var file_inc = jQuery(this).filter('.file_inc').size();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var child_inc = jQuery(this).filter('.child_inc').size();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;inc_selector = strRef(inc_selector);<br /><br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (jQuery.browser.msie) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;/* for IE [start] */<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (file_inc) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;inc_selector = inc_selector.replace(/ ?/,':');<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;inc_selector = inc_selector.split(':');<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;inc_url = inc_selector[0];<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;inc_selector = inc_selector[1];<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (child_inc) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var matchStr = inc_url.match(' ');<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (matchStr) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;inc_selector = inc_selector + '&gt;*';<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;jQuery.ajax({cache: false});<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (replace_inc) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;jQuery(this).load(<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;inc_url,<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;function () {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var default_content = jQuery(this).clone();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var inc_content = default_content.find(inc_selector);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;jQuery(this).replaceWith(inc_content);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} else {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;jQuery(this).load(<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;inc_url,<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;function () {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var default_content = jQuery(this).clone();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var inc_content = default_content.find(inc_selector);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;jQuery(this).html(inc_content);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;/* for IE [ end ] */<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} else {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (file_inc) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;inc_url = inc_selector;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} else {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;inc_url = inc_url + ' ' + inc_selector;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (child_inc) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var matchStr = inc_url.match(' ');<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (matchStr) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;inc_url = inc_url + '&gt;*';<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;jQuery.ajax({cache: false});<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (replace_inc) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;jQuery(this).load(<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;inc_url,<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;function () {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var default_content = jQuery(this).clone();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var inc_content = default_content.html();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;jQuery(this).replaceWith(inc_content);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} else {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;jQuery(this).load(inc_url);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;});<br />});<br /></blockquote><br /><br />　<br />　<br /><br /> ]]>
        
    </content>
</entry>

<entry>
    <title>CSSだけで作る横並びのナビゲーションメニューの作り方</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/web-design/css-4.php" />
    <id>tag:www.omnioo.com,2012:/omnioolab//31.1334</id>

    <published>2012-01-08T03:04:44Z</published>
    <updated>2012-01-08T03:06:05Z</updated>

    <summary>　横並びのなナビゲーションは何度となく作っているのにCSSだとなめてかかっている...</summary>
    <author>
        <name>omnioo</name>
        
    </author>
    
        <category term="CSS" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web Design" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.omnioo.com/omnioolab/">
        <![CDATA[　横並びのなナビゲーションは何度となく作っているのにCSSだとなめてかかっているので結構忘れてしまうんです。リストを横並びのボックスにして、さらにリストを入れ子にしてプルダウンにすると案外見やすいデザインになるので、ページ数が多いサイトなんかは積極的に採用すべきかと思います。<br />　ここで作るメニューはメニューの文字数によってボックスが伸縮するようにします。幅が決まっているような場合は等間隔で分割して綺麗に見せる方法がいいかもしれませんが、ここではメニューが増えたり減ったりということを予測して、伸縮できるようにしたいと思います。<br />　<br />1. HTMLにて以下のようなソースが吐き出されるようにしておきます。ゴリゴリHTMLで直接書くというのは希だと思うのでRubyなりPHPなりで出力できるようになっていればOKです。<br /><blockquote>&lt;div id="menu"&gt;<br />　&lt;div id="menu-inner"&gt;<br />　　&lt;ul&gt;<br />　　　&lt;li&gt;&lt;a href="#"&gt;ホーム&lt;/a&gt;&lt;/li&gt;<br />　　　&lt;li&gt;&lt;a href="#"&gt;このサイトについて&lt;/a&gt;&lt;/li&gt;<br />　　　&lt;li&gt;&lt;a href="#"&gt;サービス&lt;/a&gt;&lt;/li&gt;<br />　　　&lt;li&gt;&lt;a href="#"&gt;サポート&lt;/a&gt;&lt;/li&gt;<br />　　　&lt;li&gt;&lt;a href="#"&gt;お問い合わせ&lt;/a&gt;&lt;/li&gt;<br />　　&lt;/ul&gt;<br />　&lt;/div&gt;<br />&lt;/div&gt;<br />&lt;div class="clear"&gt;&lt;/div&gt;<br /></blockquote><br />　このHTMLソースにCSSを当て込んでゆくわけですが、まずはリストを横並びにしてリストマークとか余計なものを取ってしまうのです。ここでのコツは、リストマークを削除するのは簡単なんですが、横並びにする時にfloatを何らかの方法で解除しておくことです。やり方いろいろあると思うのでお好みで。<br /><blockquote>/*ナビゲーションメニュー　トップ*/<br />#menu ul, #menu li {<br />　margin: 0;<br />　padding: 0;<br />　list-style:none;<br />}<br />#menu li {<br />　float:left;<br />}<br />.clear {<br />　margin:0; padding: 0;<br />　clear: both;<br />}<br /></blockquote><br />　これで綺麗にテキストの横並びになるのですが、まだまだ全然モノにならない感じです。ちょっと小細工ですが、連続するテキストを分割するために少しだけpaddingを入れておきます。<br /><blockquote>#menu li {<br />　float:left;<br />　margin-right:1px;<br />}<br /></blockquote><br />&nbsp;ここまで大分らしくなってきました。次にアンカーの設定でいろいろやります。コツはアンカーの設定でいろいろ設定してあげることです。liでやっちゃうと自由度が低くなってしまってデザインこわれます。<br />&nbsp;アンカーはデフォルトでinlineなので、ここではblockにしてやります。これで個々のメニューをボックスにしてそれぞれボタンのように設定が可能になります。またフォントサイズや高さなんかもここで調整してやるといいです。親セレクタも連動して広がってくれます。<br />&nbsp;各メニューの背景色を指定すると結構いい感じになってきます。ここでは適当な色にしているので適宜おしゃれ色でお願いします。<br /><blockquote>#menu a, #menu a:link, #menu a:visited {<br />　text-decoration:none;<br />　color:#fff;<br />　background-color:#f00;<br />　padding: 2px 10px;<br />　display:block;<br />　height:20px;<br />　font-size:13px;<br />}<br /></blockquote>　hover属性を加えるとオンマウス時にエフェクトっぽくなるので一応指定しておきます。個人的にはちょっとアンダーラインが入るぐらいが好きなのですが、巷では多げさなエフェクトが好きという人が少なからずいるので、そういう場合はjQueryなんかでオンマウスすると花火が上がるとか...ガンガンやってください。<br /><blockquote>#menu a:hover {<br />　color:#f0f;<br />　background-color:#000;<br />}<br /></blockquote><br />　背景色がいまく指定できない場合は、1番外側の#menuに適切なwidthとheightを指定するといいみたいです。paddingと各メニューのblockの関係がバランスをとるのにちょこちょこ調整しないとダメなのでいろいろやってみてください。しかしここまでで概ねできている感じになります。後はいろいろ自分でお好きなようにできる感じです。 ]]>
        
    </content>
</entry>

<entry>
    <title>WordPress3.3以降のインストールでやっておきたいこと</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/wordpress/wordpress33.php" />
    <id>tag:www.omnioo.com,2012:/omnioolab//31.1333</id>

    <published>2012-01-08T02:43:02Z</published>
    <updated>2012-01-08T02:52:56Z</updated>

    <summary>　WordPressはソースも完全に無償で自由に使えますしプラグインの数も今では...</summary>
    <author>
        <name>omnioo</name>
        
    </author>
    
        <category term="WordPress" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="導入と概要と設定" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.omnioo.com/omnioolab/">
        <![CDATA[　WordPressはソースも完全に無償で自由に使えますしプラグインの数も今ではないものはないといわれているぐらいのCMSなんですが、難点といえば今のところマルチサイトというか複数のブログを作成するのにはあんまり向いていない感じです。しかしながら何でもかんでもカスタマイズできるので最初から最後まで自分でコーディングするという苦労を考えればWordPressは充分にその機能を果たしてくれると思います。<br />　インストール方法ですが、本家（http://ja.wordpress.org/）にいってwordpress-3.3-ja.zipをダウンロードします。適当なところで解凍展開し所定のWEBサーバーにアップロードします。必要なモジュールとか複雑なサーバー環境とかはなかったと思うのでレンタルサーバーだったらまず間違いなくそのままアップロードして問題なく動きます。<br />　サーバーではMySQLのデータベースを1つWordPress用に作成しておきます。その他のものとデータベースを共有しても大丈夫は大丈夫なんですが、できれば専用のものの方が後々管理しやすいかと思います。またデータベース管理するのだったらついでにPHPMyAdminを入れておいた方がよいと思います。端末からコマンドバリバリの人は必要ないかもしれないけど、あった方が心に優しい感じです。<br /><blockquote>phpMyAdmin-3.4.9-all-languages.zip &nbsp;&nbsp; &nbsp;5.6 MiB<br /></blockquote>あたりをダウンロード＆インストールしておけばいいと思います。<br /><a href="http://www.phpmyadmin.net/home_page/downloads.php">http://www.phpmyadmin.net/home_page/downloads.php</a><br /><br />　いずれにしろMySQLとPHPでもって高速化を実現しているプログラムなので、データベース管理はどっちにしろできるようにしておかないとダメな感じです。インストールの方法は、今までと同じ。<br /><br />

<h1>ネットワーク機能（マルチサイト）</h1>　複数のブログを同じデータベースで管理する方法はMTなどではもうすでにお馴染みなのですが、WPはこれがあんまり得意ではない。しかしいずれMTと同等の機能を持ちあわせることになるんじゃなかろうかと思っておりますが、現時点では結構ダメダメです。しかし、これを使わない手はないです。せっかく使えるので使いたい人は使ってみてください。<br /><br /><blockquote>wp-config.phpを開いて以下の定義を追加<br />/**<br />&nbsp;ネットワーク（マルチブログ）の設定<br />*/<br />define('WP_ALLOW_MULTISITE', true);<br /></blockquote><br />/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */と書いてある箇所があるので、ここら辺りに書いておけばいいです。<br />　これを保存してダッシュボードを再読み込みすると、ツールの中に「ネットワークの設定」という新しい項目が出てくるので、ここから設定画面に従っていろいろ編集します。<br /><br />　まずは、mod_rewriteを有効化。レンタルサーバーなどでわからない場合は管理者に問い合わせてください。以下のようなメッセージが出ている筈です。出ていない場合は、たいていの場合モジュールがすでに有効になっていると思われます。（確認してませんが）<br />メモ: Apache mod_rewrite モジュールがインストールされているか必ず確認してください。インストールの最後に必要になります。<br />mod_rewrite が無効化されている場合は、システム管理者に有効化を依頼してください。または、Apache の解説やその他を読んで設定を行ってください。<br />　私の環境はUbuntu/Debianなので以下のようなコマンドでOK。その他のOSも似たような感じでできます。<br /><blockquote># a2enmod rewrite&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />Enabling module rewrite.<br />Run '/etc/init.d/apache2 restart' to activate new configuration!<br /># /etc/init.d/apache2 restart<br />&nbsp;* Restarting web server apache2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... waiting<br />#<br /></blockquote>で、やりました。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />rewriteのモジュールを有効化させたところで、再読み込みすると上記のメッセージが消えます。<br /><br />　次に構造上の頂点にあたるサイトの設定をします。サイトは複数のブログを束ねるための頂点にあたるものだと理解しておけばいいです。ここでは名前をつけるだけなのでわかりやすい名前にしておきます。メールアドレスもそのままでいいと思います。またURLをexample.comにしてくれ...というようなことを言われますが問題ないので無視。<br /><br />次に指示に従って、wp-config.phpに指定の文句を付け加えます。先ほどのものとあわせるとこんな感じ<br /><blockquote>#------------------------------------------<br />#ネットワーク（マルチブログ）の設定　20120103<br />#------------------------------------------<br />define('WP_ALLOW_MULTISITE', true);<br /><br /># ネットワークのトップの設定<br />define( 'MULTISITE', true );<br />define( 'SUBDOMAIN_INSTALL', false );<br />$base = '/site-name/';<br />define( 'DOMAIN_CURRENT_SITE', 'www.example.com' );<br />define( 'PATH_CURRENT_SITE', '/site-name/' );<br />define( 'SITE_ID_CURRENT_SITE', 1 );<br />define( 'BLOG_ID_CURRENT_SITE', 1 );<br /></blockquote>.htaccessファイルに指示された内容を書いておきます。<br /><blockquote>RewriteEngine On<br />RewriteBase /site-name/<br />RewriteRule ^index\.php$ - [L]<br /><br /># uploaded files<br />RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]<br /><br /># add a trailing slash to /wp-admin<br />RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]<br /><br />RewriteCond %{REQUEST_FILENAME} -f [OR]<br />RewriteCond %{REQUEST_FILENAME} -d<br />RewriteRule ^ - [L]<br />RewriteRule&nbsp; ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]<br />RewriteRule&nbsp; ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]<br />RewriteRule . index.php [L]<br /></blockquote><br />　ここまで設定できたらOK。一度ログアウトしてから、もう一度ログインするとネットワークが有効になっています。（ネットワークという言い方はややこしいので、マルチサイトとかマルチブログという風にしてほしいですね。しかも新規で作成したブログは「サイト」になっていますし...。初心者だったらもうお手上げですね。）<br /><br />&nbsp;再ログインすると、先ほどのツールからのネットワーク設定はすでに消えています。その代わり、ダッシュボートに「参加サイト」という項目が追加されています。参加サイトには最も最初にインストールした時のブログが「基本のブログ」として登録されています。<br />また最も上端のメニューに「参加サイト」というメニューが追加されています。<br /><br />　二つ目のブログを作成するには、その上端の「参加サイト」というメニューから、「ネットワーク管理者」→「サイト」と進み、新しいブログを追加することができます。<br />で、ブログを作成するとデフォルトでは英語で出てきてしまいます。これじゃ使えないという方は、二つ目のブログのダッシュボードに移動（「参加サイト」→該当の二つ目のブログ→「ダッシュボード」）してから、英語になっている部分の左側のメニューの「Setting（設定）」から、「General（一般）」に進んで、設定画面の下方にある「Langage（サイトの言語）」をJapaneseに変更して保存してください。これで日本語になります。<br /><br />　ダッシュボードがごちゃごちゃと面倒ですが、ここまでくるとテーマとかいろんなものがそれぞれ別々で有効化できてなかなかいい感じになります。しかし、これやるといろいろと制限が出てきたりして結構面倒なことにもなるので注意が必要です。例えば、WordPressのインストールディレクトリとブログのディレクトリを別々にしたい...みたいなことはできるにはできるんですが、正しく作動しないみたいなことになっています。<br /><br />


<h1>管理画面のアクセス制限をする</h1>　特にWPの認証機能を疑うわけではないのですが、ハック技術は日に日に向上するという嬉しいんだか悲しいんだかという事実がありますので、wp-admin/以下にアクセスする際にはIP制限をかけておいた方が無難かもしれないです。なので、<br />&lt;WPのインストールディレクトリ&gt;/wp-admin/直下に.htaccessファイルを作成して、<br /><blockquote>#WordPressの管理画面「wp-admin」へのアクセスを制限する<br />Order Deny,Allow<br />Allow from 192.168.11.6 121.xxx.xxx.xxx<br />Deny from all<br /></blockquote>という感じで、環境にはよりますが、LAN内のIPとグローバルIPの両方で設定しておくとよいです。グローバルIPは固定IPアドレスじゃないと時折変化してしまいますのでご注意。私の経験ですと固定IPじゃなくても滅多に変化しない...というのがありますが、変化するとうたっている以上、本当に変化するんだと思います。<br /><br />

<h1>php5-gdをいれておく</h1>　<a href="http://www.phpmyadmin.net/home_page/downloads.php">これ参照</a><br /><br />　 ]]>
        
    </content>
</entry>

<entry>
    <title>WordPress サムネイルが選択できない</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/wordpress/cat667/-wordpress-wp-httpjaforumswordpressorgtopic1041-wprootphp-apt-get-install.php" />
    <id>tag:www.omnioo.com,2012:/omnioolab//31.1332</id>

    <published>2012-01-08T02:24:56Z</published>
    <updated>2012-01-08T02:26:43Z</updated>

    <summary>　Wordpressは画像の投稿というか貼り込みというか...がドロップダウンで...</summary>
    <author>
        <name>omnioo</name>
        
    </author>
    
        <category term="WordPress" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="使い方" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.omnioo.com/omnioolab/">
        <![CDATA[<p>　Wordpressは画像の投稿というか貼り込みというか...がドロップダウンでできるので大変便利です。選択とか参照...とかいってサムネイル表示
もされないフォルダを階層を追って見つけるのは日常の仕事にするともう面倒くさくてやってられないものです。その点WPはとっても楽です。更にサムネイル
表示も小・中・大と選択できます。しかしデフォルトではその機能がバグのため無効になってしまっているので、それを改善。なんかいろんな人が困っているよ
うです。<br /> <a href="http://ja.forums.wordpress.org/topic/1041" data-mce-href="http://ja.forums.wordpress.org/topic/1041">http://ja.forums.wordpress.org/topic/1041</a><br />&nbsp; という件で私も同じような症状で困っていました。WPは無償だし使いやすいのですが時々そういうバグがあります。ここでは自分なりにまとめたものを書いておきます。</p><p>ROOT権限をもっているサーバーでしたらPHPのモジュールをいれることで解決できるみたいです。<br /> </p><blockquote><code># apt-get install php5-gd</code><br /></blockquote><p> でApache2を再起動でOKです。#apt-get -y php-gd5ではなく、#apt-get -y php5-gdです。</p><p>サムネイルのサイズは、設定のところからメディアを選択すると小・中・大と任意のサイズに指定することができます。<br /> 最初、インストールがうまくいかなかったのですが、<br /> </p><blockquote><code># apt-get update</code><br /></blockquote><p> してからインストールしたらうまくいきました。</p> ]]>
        
    </content>
</entry>

<entry>
    <title>時代変化の流れが急速に早まる問題</title>
    <link rel="alternate" type="text/html" href="http://www.omnioo.com/omnioolab/cat391/cat395/post-124.php" />
    <id>tag:www.omnioo.com,2011:/omnioolab//31.1331</id>

    <published>2011-12-29T14:05:44Z</published>
    <updated>2011-12-29T14:08:21Z</updated>

    <summary>　時代変化の流れが急速に早まるというのは専ら嘘だと思っているのは私だけじゃないと...</summary>
    <author>
        <name>omnioo</name>
        
    </author>
    
        <category term="エッセイ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="芸術・美術・哲学" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.omnioo.com/omnioolab/">
        <![CDATA[　時代変化の流れが急速に早まるというのは専ら嘘だと思っているのは私だけじゃないと思うのですが、いったいどこの誰が過去のいつしかの時代と比較してそういうこと言ってるんだろうと...ちょっと嘲笑すらしてしまいかねないこの「時代の流れが早まる」というようなインチキ占い師のような文句であるわけですが、実際に歴史なんかをきちんと研究している人なんかはさほど驚かないと思いますが、豊臣秀吉全盛期のあの有名なド派手でむちゃくちゃな酒池肉林ぶりから大阪夏の陣で豊臣家滅亡までたったの25年です。私の感覚と重ね合わせると、おニャン子クラブとモーニング娘とAKB48までで豊臣は滅亡です。聚楽第、北野のお茶会、太閤検地、大阪夏の陣で終わりです。サザンオールスターズや松任谷由実と同じぐらいの歴史の幅です。いずれにしろいつの時代でもコロコロといろんなものが変化していて特に今現在が物凄い変化の幅が減少してむちゃくちゃなことになっているなんていうことはないです。同様にして1961年にインターネットのデータ通信に関するパケットの論文が出てから25年後の1986年にはもう世界はインターネットで結ばれて世界共通のプロトコルが確立されています。これが遅いのか速いのかというのは本当にその本人の体内時計の問題でしかない筈です。<br />　変化が急速に感じられるのはただ単に若い世代がおっさん世代に移り変わり、自分たちがこれまで学んできたことがすべからく更新され刷新され、ついていけなくなっているだけの話で、ついていけなくなったおっさん集が「時代の流れが急速に変化している」みたいなことを言い出しているだけに過ぎないと思います。要するに理解の抽象度が非常に低い連中の戯言だということです。それは一種の危機感と不安の表れであって特にその実際の現実のスピードとは全く関係がないということです。<br />　数学の世界によく慣れ親しんでいる方々は、ある乗数が最終的に爆発的な増幅をするというのはよく知っています。例えば細菌（人間も同じですが）生存曲線なんかはある一定時期を過ぎると爆発的な増幅の仕方をします。勿論環境抵抗なるもので頭打ちになり、また平均化されてゆくのですが、最後の爆発的なその伸び率というのがバブル崩壊の金融市場の動きだったり、ものすごい成長率の会社がいきなり潰れるといったようなそんな現象と相まっているということでさほど驚くべきことでもありません。ドラムソロをご披露するドラマーも最終的に自分が叩き出したハイスピードについて行けなくなってブレイクするもんです。ブレイクしたところでかなり盛り上がる...ということもあるわけですが...。実世界でブレイクするとかなりいろいろなことが起こってしまうのでそれは大変です。終盤では実体験としてかなりのスピード感を感じるというのも事実ですが、これはブレイク寸前のその人物にとっての終盤であって、周囲が一緒になって「激変」だの「時代の移り変わり」だのといったことに同感するものではないと思います。<br />　私はこの問題を「おっさんのスピード地獄（OSJ）」ということにして、人々は実際の自分の体内時計の流れに耳を傾けるべきだと思います。OSJに巻き込まれると結構シンドイです。やってもやっても追いつけない焦燥感と苛立ち、サドンデスを待つしか対処のしようがないという内部表現だけが拡張してその人物を支配してゆくので、周囲の流れが実に隠遁でゆるやかで...殆どサボっているか死んでいるように見えるわけです。しかし実際に死んでいるのはその人物本人の内部表現というだけで、世間のどこにもそのようなことが実際に起こっているわけではないのです。<br />　OSJに巻き込まれるというのは、私はオーム真理教の事件を思い起こさせます。終末論や最終的な審判と世界の滅亡という姿を思い描く人間の内部表現は、つまるところOSJと大して変わりがないということです。先ほど述べたドラムソロのブレイク寸前なのです。初速は自分の体全体を前へ押し進めるために下半身の筋肉で走りだしますが、最終的に上半身の慣性の法則と重力によるベクトルの方向とスピードに今度は下半身がついていかなくなるという状況です。それが乗数として加算されてゆけばやがて近い将来に転んでしまうのは目に見えている問題です。それがハルマゲドンであるとしたら非常に愚鈍です。<br />　しかしながら、OSJが単なる個人的な妄想と定義できないのは、それらが自らに起こった場合には相当の苦しみを受けることになるだろうということです。誰にも理解できない焦燥感と不安、恐怖感と周囲に対する疑心暗鬼、それらが複合しながら時代が進むにつれて賢い人間はいち早く自分の立ち位置に戻り安全を確保します。つまり見捨てます。そういう中で一人道端で転ぶのはなかなか悲しい話でもあり、他人ごとではないということなのです。<br />　高度経済成長を終えて世界が増々グローバル化してゆく中で、時代変化のスピードは速度を増し、世界が次々に変わってゆくのは、実際問題として本人の「死」という内部表現と表裏一体であって、そういった内部表現を持つ者は同じ内部表現をもった者を引き寄せ、やがて近いうちに死んでゆくんです。もう終わりだな...と思っている方はともかく、普通に健康に生きている方は、そういう世界から離れた方がいいでしょう。私もそうします。 ]]>
        
    </content>
</entry>

</feed>

