Drupal

Drupal7でJQueryを使おうとしたら、$ is not a functionとエラーが出て使えない

他のライブラリとバッティングするため、$の記法が使えないらしい。 Managing JavaScript in Drupal 7 | Drupal 7 guide on Drupal.orgやり方としては、 (function ($) { と })(jQuery); で従来の$で始まるJQueryのソースを囲めばよい。 (function ($) { $(d…

Drupal 7でformを使用する (Drupal 6からの相違点)

Drupal7の環境でDrupal6で作ったフォームを使用すると、うまく行かない点がいくつか出てくる。 1. db_result()が使えない 関数そのものが無くなっているので、db_result()を使用しているところはすべて書き換え2. クエリのプレースホルダーの書き方が違う db…

Drupalで一部が文字化け

Drupalを使ったサイトで文字化けが発生。しかしコンテンツ作成とかからページを作る時にはちゃんと日本語を受け付けている。その場合、Mysqlのテーブルの文字コード、あるいはテーブルのフィールドの文字コードに問題がある。show create table \G *********…

データベースに入れようとすると”Incorrect string value”と、クエリが通らない

フォームからデータベースにINSERTかけるだけの簡単なクエリが通らずに、Incorrect string value: みたいにエラーが出る。 function content_form_submit($form, &$form_state) { $form_values = $form_state['values']; $form_keys = array_keys($form_valu…

drupal_get_form()をノード呼び出したい

フォームはモジュールからだけでなく、どのノードからも呼び出せる。Input Formatは「PHP Code」にして、こんな感じ。 するとちゃんとストーリーとかページとかにフォームを埋め込める。

Drupal フォーム送信後のDB登録とRedirect

questionnaireというテーブルがあり、 uid:int form:text question:text choice:text のフィールドで構成されているとすると、こんな感じ。 function FORM_NAME_submit($form, &$form_state) { $form_values = $form_state['values']; $form_keys = array_ke…

drupal_mail()の使い方

簡単にまとめているものがあまり無かったので、どなたかのお役に立てるようにメモ。公式のAPIドキュメントはこちら。 http://api.drupal.org/api/drupal/includes--mail.inc/function/drupal_mail/6ただし、意味がわかりにくい。 まず留意することとして、単…

データベースとsitesディレクトリごと別のサーバーに引っ越してうまく行かない時

まず何が起きているのかを確認する。画面が真っ白になるなら、php.iniのメモリの可能性が高いので、Apacheのエラーログを確認 http://d.hatena.ne.jp/kyart/20100910/1284117403トップページもだめなら、http://site/user でログイン画面に行けるか確認する…

edit any nodeのパーミッションがあるのにノードを編集できない

パーミッションの設定で、あるロールにedit any nodeの許可を与えているのに、いざそのページに行くと「編集」のタブが出てこないことがある。 その場合、administer filtersの許可も出さないと行けないらしい。

パフォーマンスでキャッシュをクリアしようとすると画面が真っ白

Apacheのエラーログを確認。 [Fri Sep 10 04:00:47 2010] [error] [client 221.254.128.174] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 565884 bytes) in /var/www/html/drupal/includes/database.mysql.inc on…

モジュールを手動で削除

SELECT name,status FROM system WHERE type="module"; UPDATE system SET status="0" WHERE name="module_name"; http://drupal.org/node/157632

drupal_get_form()で存在するフォームを呼んでいるのに、call_user_func_array()のエラーが出る

drupal_get_form()で確実の存在するフォームを呼び出しているにもかかわらず、エラーが出る。 drupal_get_form('user_pass') user_passはコアのuserモジュールに含まれているもので、存在しないわけはない。ところが、 warning: call_user_func_array() [fun…

フォームからfieldsetを丸ごと削除する

アカウント情報のEditから、以下の部分を丸ごと取り除きたい。 1.フォームのIDを調べる ソースコードからformタグを見つけて、そのid属性を確認する。 <form action="/en/user/1/edit" accept-charset="UTF-8" method="post" id="user-profile-form" enctype="multipart/form-data"> であれば、idは「user-profile-form」2.単純かカスタムモジュールを作成し、そのフォームに対するform</form>…

英語サイトなのに日本語が表示

Drupalで多言語サイトを作っている時、英語サイトを表示しているのに日本語が表示されている場合、Translate Interfaceでその言葉を検索してみる。 すると、訳語ではなく、元の言葉のところに日本語が入っている場合がある。その際、その言葉を削除しようと…

theme_tableでTR要素に属性をつける

意外に難しい。theme.incのコードをかなり読み込んでやっと理解できた。 ポイントはテーブルの行を表す変数(ここでは$rowsという配列の各要素)に'data'というキーをつけた連想配列の中身に、その行の各セルの中身を表す連想配列を入れて、それとは別にclas…

Drupal Splashモジュールの設定画面が出てこない

Splashモジュールをインストールしたのに、どうやってそのページを指定するのかわからない。 するとこんなエントリーを見つけた。 http://drupal.org/node/247892 自分でsplash.moduleに、 $items['admin/settings/splash/what'] = array( 'title' => t('Wha…

drupalのトップページが文字化け

drupalのトップページが文字化けしているが、ログインすると見られるし、他のページはちゃんとテーマが適用されている。こんな変な文字化けが生じている。 原因や正体はよくわからないが、update.phpをどのモジュールオプションを選ばなくてもいいのでとりあ…

カレンダーの日表示にノードが表示されない

カレンダーモジュールを使っていると、時々入力した日付にそのノードが表示されないことがある。 週表示や月表示ではまったく問題ないのにである。 それはおそらくタイムゾーンの設定の問題で、通常日本では「日付と時刻」の設定をAsia/Tokyoとかにしている…

管理セクションにアクセスできない(接続できない)

このネタで何度も書いているが、管理セクションだけアクセスできず、Apacheのログにも残らない。そのうちタイムアウトする。 system.admin.incなどにwatchdogでログを出していくと、ログ自体は反応していることに気づく。そして、moduleのupdateをチェックす…

インポートしたデータのノードにコメント数を表示したい

よそのブログからDrupalにデータをインポートしたが、ノードが一覧で表示されるときにコメントの数が表示されない。 こんな風にコメント(数)を表示したい。 Views関連のnode_comment_statisticsというテーブルにコメント数のデータが格納されている。 node…

Drupalのサイトメンテナンスモードのテーマを設定する

サイトのメンテナンスモードにしたら、あのGarlandテーマが表示されるので変更したい。サイトのディレクトリにある、settings.phpを開ける。ex) /drupal/sites/www.yoursite.com/settings.php $conf = array( 'maintenance_theme' => 'yoursitedefaulttheme'…

テーマの領域を増やした.infoファイルをアップロードしたら、管理セクションだけ動かなくなった

http://d.hatena.ne.jp/kyart/20090130 のエントリーでも書いた同じ現象がテーマでも起こった。.infoファイル内のregions[]を増やしたらダメになった。管理セクションだけ動かず、サーバーのログにもエラーは出力されていない。対処法は以下のとおり 該当す…

blog_themeモジュールでユーザーに特定のテーマを見せない

blog_theme.moduleの以下の部分を変更するだけ 変更前 function blog_theme_user($op, &$edit, &$account, $category = NULL) { if ($op == 'form' && $category == 'account') { if (user_access('select different blog theme')) { foreach (list_themes()…

モジュールをアップロードしたら管理セクションにアクセスできなくなった。

securesiteというモジュールをローカルで試して、うまく使えそうだったのでサーバーにアップした。管理画面からモジュールを有効にして送信したところ、一向にサーバーからレスがこない。そのうち「サーバーからの応答がありませんでした。」のエラーが。。…

pathautoを使っているとtrackbackが使えない件

トラックバックを送ろうとしてもどうも送れていない様子。念のためログをチェックしてみることに。すると、 require_once(sites/all/modules/pathauto/pathauto.inc) [<a ref='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory: /var/www…

YUI Editorでアップロードした画像がいつの間にか消えている

DrupalでYUI Editorのファイルアップロード機能を使っているが、アップロードしたはずの記事中の写真がいつの間にか消えている。念のためディレクトリを確認しても、やはり存在しない。どうもcronタスクが実行されるときに消えていると予想。しかし一度消え…

YUI Editorのアップロード先をユーザーごとに分ける

DrupalでYUI Editorのファイルアップロード機能を使っているが、何でもかんでも同じディレクトリにアップロードされるので困ったことがあった。 他の人が同じファイル名のファイルをアップロードすると、上書きされてしまうのだ。単純にアップロードだけの機…

imageapiのファイルのパス

Drupalのモジュールimageapiのメソッドを自作のモジュールで呼んでみた。その際に.infoのdependencieにimageapiを加えると呼び出せるようになる。 そこで以下のimageapi_image_openメソッドの第一引数の$fileを与える必要がある。 function imageapi_image_o…

Cannot modify header information - headers already sent by 解決編

Drupalのモジュールやコアのファイルを自分で少し書き換えて使っていると、ある時からたまにフォームを送信した時に画面が真っ白になることがある。そのとき、ログを調べてみるとこんなようなエラーが出ている。 Cannot modify header information - headers…

BLOB/TEXT column 'xxxxx' can't have a default value

Drupalで新しいモジュールをインストールしようとしたら、 BLOB/TEXT column 'xxxxx' can't have a default valueというエラーが出てはじかれる。とりあえず、module.infoファイルのテーブル定義のところからdefaultを定義している部分を外してエラーを回避…