mudskipperのブログ
やればやるほどDrupal。
Drupalでサイトの作成を行う上でのネックになりそうな携帯電話への対応。
以前から、モバイル対応のモジュールやテーマ等もありましたが、それだけで充分な携帯対応ができてたかと言えば、ほぼNOだったと思います。
今回、あるサイトをDrupalで作成し、携帯への対応もかなりがんばりました。
そこで一番よく働いてくれたのがコンテンツテンプレートモジュールです。
このコンテンツテンプレートモジュールは、コンテンツタイプ毎に出力するコードの制御を行えるモジュールで、ティーザー・本文・RSSとそれぞれを違った形で出力させる事もできちゃうモジュールです。
コンテンツテンプレートモジュールを利用するにはCCKモジュールの使用が前提となります。
CCKで定義したフィールドのデータを整形して出力させる事が可能になります。
Drupalの場合、CCKで定義したフィールドのデータにそれぞれ個別のクラスが与えられた形でHTMLコードが出力されますが、無駄にタグが増えてしまいますので、それらの不要なタグを削除したり、任意のタグや文字列を追加して出力させられるようになりますので、CSSでの表示の整形もかなり好き放題やれるようになります。
この、コンテンツテンプレートモジュールでも、PHPコードを利用できますので、独自の処理を追加したりという事も可能になってきます。
今回のサイトでは、このコンテンツテンプレートモジュールの中で、携帯とPCとで違うコードを出力させる処理を入れる事で振分けを行う事ができるようになりました。
そして、その次に頑張ってくれたモジュールはVIEWSモジュールです。
VIEWSモジュールは、このモジュールを使わなければ、Drupalの魅力に気づく事ができないほど、必要不可欠なモジュールです。
記事一覧の生成などにもって来いのモジュールなのですが、こちらもCCKで定義したフィールドをチョイスして表示させる事ができるモジュールです。
今回のサイトでは、PC用と携帯用とそれぞれ別々の記事一覧を生成させ、PC用・携帯用でそれぞれどちらを表示させるかをメニューやブロック、そしてテーマで切替えるようにしました。
今回、携帯用に使用したテーマはjp_mobileというテーマで、内部はUTF-8、入出力はS-JISに変換するという、日本の携帯電話事情に合わせた素晴らしいテーマです。
また、このテーマは、携帯キャリア毎に出力するヘッダをも変えてくれる機能まで備わっています。
そしてそして。PC・ケータイの振分けを行ってくれるモジュールはMobile Toolsモジュール。
こちらのモジュールで、どのテーマを適用するかの判定を行うのですが、ケータイでも今ではiPhoneやExperiaなどのスマートフォンが多くなってきて、その判定で困るかな?とも思ったのですが、それらもOS毎に判定を行い、どのテーマで出力させるかを細かく設定できるようになってます。
今回のサイトの制作をやってみて、Drupalでは、最初は無理か?なんて思った事もできてしまう柔軟さを再確認しました。
とにもかくにも、CCK・コンテンツテンプレート・Views。この三つのモジュールは必須中の必須です。
このモジュールがあれば、だいたいの事ができてしまうのがDrupalです。
SEO屋さんがSEOを否定しちゃったようです。
このところ、FAXDMやら営業電話やらがやたらと来ます。
それが、SEO屋さんから来るんですよ。
でも、ちょっと待って下さいよ?
SEOをやって、順位が上がれば、そこからどんどん売り上げが上がるというようなお話をよくされるんですけど、、、
じゃあ、なぜ。電話で営業掛けて来るのでしょうか?
FAXDMを送ってくるのでしょうか?
因みに、マッドスキッパーのサイトは、狙ったキーワードでGoogleでは2年近く1位ですし、YAHOOでも1ページ目に定住するようになってしばらく経ちます。
SEO屋さんから、電話が掛かってきた時にはちょっと聞いて見るんですよ。
「何で調べてご連絡なさってますか?」と。
そうすると「検索エンジンで検索しました」なんて言う業者は今まで1個もありませんでした。
SEOを全面的に否定するつもりはありませんが、表示順位と売り上げには直接の関係はありません。
上位表示を実現できたとしても、そのサイトに魅力が無ければ、何の意味も無いんですよね。
以前、ある著名な方が仰ってましたが、自社のサイトを持たずして、上位に出た記事に名前がある事。これ以上のSEOは無い。と。
飲食店等の場合、顕著なのですが、各個人が書いているブログの中で褒められる事が記事としての信憑性が高い。
通常、自社サイトでは自社を持ち上げるような記事になるのが当たり前ですので、どんな良い事を書いていても、信憑性の点で難がありますね。
そして、サイトに訪れた人の心理モードとしても、買う気マンマンの人は、殆どの場合、ヤフオクか楽天市場、価格.COMなんかで一円でも安く、一分一秒でも早く買えるページを探しているはずです。
その商品の詳細な情報を調べて、サイトにたどりついた人というのは、心理的なモードとしては、買う気マンマンではなく、商品についてより深く知りたいというモードの方です。
少々話が逸れましたが、、、、
SEO業者が自社サイトで思うように売り上げが上がっていないからこそ、電話営業やFAXDMを送ったりなどの営業をしているんですよね。
それって、SEOなんてやったって売り上げには繋がらないって事をSEO業者自らが証明している事になるのではないかぃ?と真剣に思います。
ActionScriptでテキストのアンダーラインの太さを自由自在に。
ActionScriptで開発をする際には、リファレンス本を片手に、それでも不足であれば、検索して探し出すのが普通だと思いますが、
ちょっと面倒な処理について検索すると、Adobeのサポートサイトしか見当たらないのも事実ですね。
そして大変申し訳ないのですが、Adobeに限らず、メーカーのサポートページというのは、なぜか理解不能なコンテンツが満載で、殆ど使えないのも事実ではないでしょうか?
「その説明」を理解する為に、ある程度のスキルが必要になっているので、サポートサイトとしての目的は殆ど果たせていないような気がします。
そんな中、現在製作中のActionSriptのシステムでクライアント様からテキストのアンダーラインを太くしてほしいとの要望を受けました。
ActionScriptでのアンダーラインの設定というのはあるのですが、太さは一定で変化させる事ができません。
flash.text.engineを使えば、underlinethicknessで太さを制御する事も可能ですが、面倒な処理を入れないと文字化け必至ですので却下。
あれこれと考えてるうちに、クライアントさまからの要望は、アンダーラインとして見えれば、要素としてはなんでも良いのだという事に気がつきました。
今回のシステムの場合、表示させるテキストは外部ファイルから動的に取得したテキストになりますので、その時々で全体の長さは変化します。
ですので、一定の長さのラインを常設するという手法は使えない。
そこで浮かんだ結論。
表示させるテキストと同じフォント同じサイズで背景色を文字色と同じものにし、その上に本来表示させるべきテキストを少し上にずらして表示させるという考え方です。
以下がその部分のソース
まず、テキストフィールドを一つ宣言
var txt_b_Name1:TextField = new TextField();
txt_b_Name1.text = no_name;
txt_b_Name1.setTextFormat(bnmFmt);
txt_b_Name1.x = 1.00
txt_b_Name1.y = 43.65 // ここで縦方向の座標位置を決める。
txt_b_Name1.width = 574.95
txt_b_Name1.height = 77.85
表示するテキストに合わせて、テキストフィールド大きさをリサイズ。
txt_b_Name1.autoSize =TextFieldAutoSize.CENTER;
txt_b_Name1.background = true;
背景色をテキストと同じ色に設定。
txt_b_Name1.backgroundColor = 0xFFFFFF;
その部分を表示させる
addChild(txt_b_Name1);
もう一つのテキストフィールドを定義
var txt_b_Name:TextField = new TextField();//
txt_b_Name.text = no_name;
txt_b_Name.setTextFormat(bnmFmt); ←同じテキストを表示
txt_b_Name.x = 1.00
y座標の設定でアンダーラインの太さを制御。
txt_b_Name.y = 41.65 ←2ほど上にずらす。
txt_b_Name.width = 574.95
txt_b_Name.height = 77.85
txt_b_Name.background = true;
ここでは、テキストの背景色を本来の色に設定
txt_b_Name.backgroundColor = 0x550000;
定義したテキストフィールドを表示させる
addChild(txt_b_Name);
上記の手法でアンダーラインの太さの制御を簡単にする事ができました。
この方法の利点は、まず、カンタンな事。
そして、本来のアンダーラインとは違うものなので、アンダーラインであるが故の制限を受けないのも利点ではないかな?
※本来のアンダーラインの場合、テキストと同じ色でしか出せませんが、この手法の場合は、色も好きに変更できます。
静的なHTMLファイルによるサイトの脆弱性
ウェブサイトのファイルを改ざんするガンブラー(Gumblar)の流行で思った事。 ご存知の通り、このガンブラーはサイト内(サーバー内でアクセス可能な部分)に設置されたファイルに特定のコードを挿入します。 挿入されるコードは /*LGPL*/ try から始まるコードですが上記の文字列でコード挿入が行われるのはJavascriptファイル(*.js)です。ディレクトリの位置は関係なく、FTPで接続した際にアクセス可能なファイル全てにコードを挿入します。 そして、indexとdefaultという文字列を持つファイルにも同様にコードの挿入を行いますが JAVASCRIPT以外のファイルには、<script>LGPL*/ tryと、スクリプトタグから始まるコードとなります。 例えば、このコードの挿入が行われたファイルがPHPファイルの場合、ファイルの最後の閉じタグ「 ?> 」を入れない事でスクリプトの実行を阻止できますね。 なぜ阻止できるのか。 PHPファイルであれば、<script>/*LGPL*/ tryの最初の「<」の部分でエラーとなってしまい、ページ自体を表示させる事ができなくなってしまいます。 これが、静的なHTMLファイルの場合、、<script>/*LGPL*/ tryの部分はファイルの構文にどんなミスがあろうともブラウザに吐き出しますので、セキュリティホールのあるPCで閲覧された場合には、感染させてしまう事になります。 静的なHTMLファイルで作成されたサイトは、こんなにも脆いものなんです。
注意喚起: Web サイト改ざん及びいわゆる Gumblar ウイルス感染拡大に関する注意喚起 (更新)
これは大変なウイルスです。
PCからFTP情報を取得し、ウェブサーバー内のjavascriptにコードを追加してしまう。
コードを追加されたサイトを見たPCが対策をされていない場合には感染してしまいますので、更に被害拡大。
PCにはウイルスソフトを入れて居ない方は少ないとは思いますが、今回のウイルスはWindowsマシンだけではなくMACにも感染してしまうとの噂です。
WEB製作者の中にはMACユーザーがかなり多いので、猛烈な勢いで拡大するのではないかと、危惧されます。
注意喚起: Web サイト改ざん及びいわゆる Gumblar ウイルス感染拡大に関する注意喚起 (更新) - [JPCERTセキュリティ情報]
DrupalでタクソノミータームのRSSを隠す。
DrupalはRSS配信の機能がモノスゴク長けています。
タクソノミーモジュールで定義したターム毎にページを自動生成し、更にはそのターム毎のRSSも配信します。
そのRSSを受ける側にとっては、大変便利な機能ではあるのですが。
レアなケースですが、RSSのURLを隠したい場合もサイトの運営の手法によっては発生しますね。
ただ今、当方で作成しているウェブサービスのサイトがありますが、このサイトの場合、ターム毎のRSSは配信して欲しくないんです。
という事でどこをどういじれば、ターム毎のRSSのURL隠せるか。
なんとか解決する事ができました。
タクソノミーモジュールの中のtaxonomy.pages.incの45行目(6.15)
drupal_add_feed(url('taxonomy/term/'. $str_tids .'/'. $depth .'/feed'), 'RSS - '. $title);
ここをコメントアウトする事でOKです。
但し、ターム毎のページにエイリアスを適用して、そもそものタームのURLも隠さないと、Drupalを知っている人には、RSSのURLがバレてしまいますので、ご注意下さい。
ターム毎のRSSのURLは隠しますが、生成はされていますので、ご心配なく。
さくらインターネットでDrupal(運用編)
以前、このブログの中でさくらインターネットのサーバーでdrupalを利用するにはという記事を書きましたが、更にもう一つ。
インストールするにもコツが必要なのですが、実運用するにもコツが必要だという事が判明いたしました。
サイトルートに設置するhtaccessとphp.iniはさくらに合わせたものが必要という事があちこちのサイトでも言われていましたが、
運用を始めてみると、/sites/default/files 以下のディレクトリに変更を加えるモジュールを設置している場合に不具合が発生します。
/sites/default/filesにhtaccessが作成され、それのおかげでそのディレクトリにアクセスができなくなってしまう為に、CSSや画像が呼び出せない状況になります。
作られたhtaccessを削除してしまえば、問題なくアクセスできるのですが、例えば画像をアップロードしたりした際に、またhtacceessが作成されてしまいますので、その度に作られたhtaccessを削除しなければならなくなってしまいますので、運用なんてできたもんじゃありません。
回避方法。
/sites/default/filesにhtaccessが作成される前に、中身が空っぽのhtaccessを設置してしまい、パーミッションを444に設定。
これで、システムが新たなhtaccessを作成する事ができなくなりますので、問題なく運用できるようになります。
それでは皆様、良いお年を。
LAN内のIPアドレスを変更後にネットワークプリンタが利用不能になる。
企業内のネットワークで、複数拠点を結ぶVPNを利用されている企業の多いかと思います。
本日、とあるクライアント様で、ネットワークプリンタが使えなくなったとの事でサポートに行ってまいりました。
ネットワークプリンタが利用できなくなってしまった原因は単純な事で、LAN側のIPアドレスが変更になった為でした。
恐らく、ネットワーク管理会社で、機器の変更を行い、その際に変更になってしまったのだと思われますす。
変更されても、それに合わせてプリンタの設定を変えれば良いだけの話でもあるのですが、比較的古いプリンタでは、それが出来ない場合も出てきます。
TCP/IPプロトコルしか使えない環境では、ゲートウェイのアドレスが変わってしまった場合に、変更していないプリンタの管理をPCからは行えなくなってしまうのです。
特に、古いプリンタでは、ネットワークに対応させるカードやボードがサードパーティ製である事も多々あります。
そういう場合には、プリンタの管理メニューに、ネットワーク設定の項目が出てこない場合もあります。
今回がまさにそのケースだったのでした。
CANONのLBPでしたが、ネットワークカードがサードパーティー製。
どう頑張っても、新環境では管理画面に入る事ができず。
苦肉の策で、ルータを一つ持参。そのルータに古い環境の時のゲートウェイのアドレスを付与。
プリンタのアドレスを変更し、新しい環境のネットワークに戻してあげるという手順で解決しました。
めでたしめでたし。
宮城県、電子入札システムを変更。
宮城県の電子入札のシステムが変更になります。
それに伴い、現在の電子入札用の設定の変更を行わなければ、今後入札に参加できなくなってしまいます。
変更点
電子入札システムのJAVAポリシーの変更。
電子入札を行う際のURLの変更。
詳しくは
http://www.pref.miyagi.jp/keiyaku/ksn27.htm
また、設定変更や電子入札用のPCセットアップは当事務所でも承っております。
ディレクトリ登録は本当に必要なのか?
久方ぶりの投稿です。
SEOの成功の秘訣は、ハッキリ言ってしまえば「そんなモンは無い」などと思ってしまいました。
当サイトの場合、ディレクトリ登録というものには一切掲載してません。
Google・DMOZのは行ってますが、有料のディレクトリ登録はやってません。
それでいて、「仙台・システム開発」のキーワードで検索結果は、Googleで1位、Yahooでも3位、BINGで7位と1ページ目への表示が実現できています。
この事実から、ディレクトリ登録はしなくてもOKなのではないでしょうか?
確かに、やらないよりはやった方が良いという事は否定しませんが、しない事で圧倒的に不利になるという事は無いという事をこのサイトが証明していると思います。
当方では、SEOを行う上で最も重要な事はページボリュームだと考えています。
これは、静的に作られた紙芝居サイトではほぼ不可能な事ではあるとは思います。
静的な紙芝居サイトの場合、1ページ増やす度に、その他のページも書き換えなければ、新規に追加したページへの誘導が不可能です。
そこの問題をクリアしてくれるのがCMS(コンテンツマネジメントシステム)という事になります。
多くのCMSは、ページを追加すれば、自動的にそのページへのリンクが作られます。
また、モノによっては、PINGサーバーにPINGを送ってくますので、検索エンジンへの登録も速やかに行われます。
(当方での実験結果では、Googleへの登録は最短1分でブログ検索に反映、通常のWEB検索にも1時間程度で反映されるようになります。)
しかし、静的に作られた紙芝居サイトの場合、新規ページの追加が反映されるまで10日や2週間などというタイムラグが発生する事が往々にしてあります。
この部分だけを比較しても、CMSを利用しない理由は無いと思いますし、逆にCMSを利用する事で得られるアドバンテージの大きさは比較するまでも無い事であると信じています。
少々話しが逸れてしまいましたが、ディレクトリ登録はしなくても問題ない。と、結論付けさせていただきます。




