2009年7月3日金曜日

crontabの設定

何回設定してもすぐ忘れるのでメモ。
毎時0分に実行する場合。

00 * * * * ~/www/cron-curl.sh

※SPPDでは、curlはok、lynxは不可。

2009年5月10日日曜日

操作すべきテーブル追加

nodeとタクソノミーを一括で増やしたいときには、先に挙げた7つのテーブルと、
もう1つ忘れていた。_node_access。
逆に、_node_accessテーブルをバッチ更新すれば、いちいちページを開いて
grant設定しなくても良いので便利。

2009年5月1日金曜日

nodeaccessモジュールはIEで使えない

某サイトで、トップページだけは一般公開してログインを促し、ログイン後はIDによって見せる先を分けるような仕掛けが必要になった。
調べると、nodeaccessモジュールとlogin destinationモジュールの組み合わせで実現できそう。
特に、このページは親切でわかり易い。→http://drupal.0829.info/module/nodeaccess

ところが、モジュールインストール後、「ユーザ管理」→「ノードアクセス」で動かしても、anonymous userに対する権限設定とかが出てこない。上記の参考サイトのページと表示が違う!

何か忘れている前提条件とかあったかな・・・とか、権限設定で変なことをしていたか・・・など悩むこと1時間!!ところが、思い余ってノードアクセスの管理画面を表示しているときにそれをソース表示させると、ソースの中にはロール毎の選択記述とかがしっかり入ってる。

え?なんでそれが見えないの?と思って試しにchromeで表示させるとバッチリ表示。

よもやIEのバグというか、IEを無視していたnodeaccess君のこんな不具合に遭遇していたとは・・・

IEはコワイ・・・

2009年4月11日土曜日

TIPS

オリジナルのテーマを使うときは、sites/all/themesの下に置いて
本体とは分離管理することが推奨されているが、その逆、
つまりGarlandなどのテーマをsites/all/themesに置いてしまうと、
update.phpで「file not found」が出る。(出た)

こういうとき、sshなどでログインできるサーバーだとディレクトリの
張替えはmvで一瞬だが、ファイル転送しかできないと
不便だろうなあ。。

テーブルの直接更新

大量のコンテンツを登録しないといけない場合は、テーブルを直接いじったほうが早い。

以下、ノードIDをnid、タクソノミーIDをtidとして、

(1)_term_data
  タクソノミーの語彙(と表示順)
(2)_term_node
  tidとnidの関連付け
(3)_taxonomy_breadcrumb_term
  tidに対応するURLalias
(4)_term_hierarchy
  tidの親子(階層)関係付け
(5)_node
  nidごとの基本情報
(6)_node_revisions
  nidごとの収録コンテンツ、リビジョン情報、teaserも。
(7)_url_alias
  nidごとのURLalias

以上の7テーブルを、現状と矛盾が無いように(要するに現状テーブルを
いったんexportし、内容確認してから)新規登録分をappendして再登録。

100件ほどのページ、タクソノミー、URLalliasがあっという間に登録
できるのはちょっと快感。

2009年4月7日火曜日

オーバーライドさせなくても

O社のサイトで、編集画面に「削除」ボタンがあると危険なのでなくして欲しいという要望。
手っ取り早く、該当のクラスをcssでdisplay:none;にして解決。

考えてみれば、以前、検索結果のユーザープロフィールを消去するのにオーバーライド関数を
作ったわけだが、そんなことしなくてもCSSで一発消去のほうが簡単だった。

これは他のCMSにも使えそう。

2009年4月3日金曜日

わりと大事かもしれない.htaccess

hat.co.jpとmirai1.hat.co.jpを現在仮環境で新構築中だが、
.htaccessでコメントアウトされているRewriteBaseを、
Rewritebase /mirai1
とかしておかないとクリーンURLが機能しないことが判明。
逆に、DNS移行したときは再設定が必要なのかも。

一瞬、apacheのmod_rewriteが無いのか?とスタジオマップを
疑ってごめんなさい。

2009年3月29日日曜日

トップページだけにタイトルが表示される

6.10だけの問題なのかどうか今となっては定かで無いが、
とにかく、node.tpl.phpの該当箇所(h2タグを出してるところ)を
コメントアウト。taxonomy表示のコメントアウトと併せてこれで2箇所。

あと、「投稿の設定」でティーザーを無制限にしておかないと
記事が途中で切れてしまう。(当たり前といえば当たり前だが、
トップページ以外はティーザー600文字(デフォルト)でも
問題なく表示されるんだけどな・・・)

2009年3月12日木曜日

2サイト目

手順はだいたいわかっているつもりだが、復習をかねて。

1:Garlandをコピーしてテーマフォルダを作成。
  garland.infoのかわりにxxxx.infoでテーマを定義

2:URL aliasesを使えるようにするには
  .htaccessでクリーンURL有効になっているという前提で、
  path モジュールを有効化

3:URL aliasにもとづいたテンプレートを使えるようにするために
  template.php のコード変更(リプレース)

4:管理者ログインした際にeditボタンが使えるように
  node.tpl.phpのコード変更(リプレース)

2009年1月17日土曜日

6.9に移行開始

sakuraでの5.7からsppdでの6.9へと移行開始。

(1)6.9のインストール。
  日本語も同梱されており、sakuraのようにphp.iniのおまじないも不要で、インストールはあっけなく終了。しかしここで失敗が。tableのprefixを「新しく」設定してしまっていたのだった。

(2)5,7、6.9共に「backup and migrate」モジュールを導入。
  5.7のほうではDBの中身を吐き出し。(7MBほど)。6.9のほうではそれを取り込み。

(3)(1)の失敗により、drupalが二重にできてしまった。orz。
  仕方が無いので、MySQLで直接、「新しい」ほうのprefix付テーブルを削除。
  6.9も削除して今度は「古い」prefixを指定して再インストール。
  update.phpを実行して終了。

(4)画像ファイルなども移行して動かしてみると、どうもおかしい。
  サブメニュー毎のテンプレートが機能していない。
  ・・・で、このブログを読み返してみると、そういえば「URLalias」にもとづいたテンプレートを使うには、template.phpをいじる必要があるのであった。

(5)template.php
  「Different page templates depending on URL aliases」の記事を読み返してみると、5.xと6.xでは書換方法が全く違う。ふむふむ・・・と6.x用のsnippetをコピーしてみたところ、画面が全く表示されなくなってしまった。なんで!?
  ・・・6.xは、6.7以降とそれ以前で微妙に仕様が違うようなので、記事のsnippetが6.9には無力なのか??しかし自分で調べてコードを書くような力は無いぞ!
  それともpage-xxxx.tpl.phpの記述方法を6.xでは変更しないといけないのか!?
  ・・・・などと、悩みに悩んだ約2時間。
  ところが、コードを切り刻んでここが悪いのかあれが悪いのかとやっているうちに、 コードをほとんど削り取ってもやっぱり画面表示しないことが判明。
  あと残っている部分は、<?php ?> と関数名くらいしかないではないか。
  ん?ちょっと待て!! phpのファイルに ?php とは???

(6)そう。あまりの間抜けに茫然自失。snippetを「そのまんま」貼り付けてどうする・・・・
    ただ、細かい課題(というかソースレベルでの未移行点)はまだあるのだが、それはまた明日・・・