Drupal commonsに関する質問です。

Events happening in the community are now at Drupal community events on www.drupal.org.
iwachan2525's picture

Drupal commonsに関する質問です。
私はかねてから、コミュニティサイトを作りたいと思い、Drupal commonsに行き着きました。
最初、XAMPPにインストールした際には、default themeが機能しておりサンプルユーザーも登録されている状態でした(以後、これを「完全版」と称します)。drupal7.38にcommons-3.28を上書きしてインストールしたと記憶しています。
しかし、訳あってインストールし直しますと、(commons-3.28単独の場合も含めて)再現性が得られず、概ね、default themeが機能しない(というか存在しない)という、完全版とは程遠い状態になってしまいます。
Drupal.orgのようなサイトでも問題なく、Open Atriumなど、似たような機能を持っているディストリビューション?も存在はしますが、まずはDrupal commonsにおける解決を目指したいと思います。
解決に向けて、どうぞよろしくお願いします。
Drupal.org(配布サイト)とAcquia(Drupal commonsの製作元)とで内容が違うなんて言うことはありませんよね?

Comments

追記します。どうやら、原因はcommons

iwachan2525's picture

追記します。
どうやら、原因はcommons originテーマにエラーが存在することにあるようです(しかも2つ!)。

「Invalid argument supplied for foreach() 」に関するエラー(PHP配列に関するエラー)は、簡単に解決しましたが、
「Parse error: syntax error, unexpected '}' in C:\xampp\htdocs\drupalcommons\themes\commons_origins\template.php on line 106」は、全くわかりません。

おそらく、他のエラーから類推するに、94~106行に原因がありそうですが…。ちなみに、その記述は

if (at_get_setting('extra_menu_classes', $theme_name) == 1 && !empty($element['#original_link'])) {
if (!empty($element['#original_link']['depth'])) {
$element['#attributes']['class'][] = 'menu-depth-' . $element['#original_link']['depth'];
}
if (!empty($element['#original_link']['mlid'])) {
$element['#attributes']['class'][] = 'menu-item-' . $element['#original_link']['mlid'];
}
}

if (at_get_setting('menu_item_span_elements', $theme_name) == 1 && !empty($element['#title'])) {
$element['#title'] = '' . $element['#title'] . '';
$element['#localized_options']['html'] = TRUE;
}
です。
ご支援のほどをよろしくお願いします(エラー内容が変わったので変更しました)。

hgoto's picture

こんにちは。

しかし、訳あってインストールし直しますと、(commons-3.28単独の場合も含めて)再現性が得られず、概ね、default themeが機能しない(というか存在しない)という、完全版とは程遠い状態になってしまいます。

おそらく、他のエラーから類推するに、94~106行に原因がありそうですが…。ちなみに、その記述は

そうなんですね。
このあたり、具体的にはどういう問題が発生している感じなのでしょう?サイトが全く表示されないのでしょうか?それとも、テーマが有効化できないのでしょうか?ページは表示されるけれどスタイルが崩れている、というような状態なのでしょうか?

どういう問題が発生しているのかをより具体的にご共有いただくとより他の方の協力が得られやすいかと思います!

(ちなみに、はりつけていただいているコードをパッと見せていただいたところではこの中には Parse Error はないように思います)

また、

どうやら、原因はcommons originテーマにエラーが存在することにあるようです(しかも2つ!)。

このあたりの情報源( URL など)をお示しいただくと今後他の方の役に立つ情報にもなるかと思いますので、よろしければぜひお願いいたします。

iwachan2525's picture

hgoto様
いつもご親切にありがとうございます。
取り急ぎ、概要だけでも説明させていただきます。
インストール時にデフォルトテーマのカラーの選択をするのは良いにせよ、インストール後にレイアウトが不自然であり、appearanceをクリックすると何もテーマが選択されていない状態であります。これに関しては、他のテーマをset and defaultに選択すれば、そのテーマが適用されます。
残り、その他詳細は深夜頃に書き込みします。

iwachan2525's picture

こんばんは。iwachan2525です。

インストールを試みましたところ、違うエラーが出たので以下に記します。

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'データべース名.field_data_field_original_og_membership' doesn't exist.

追記:インストールはその後できましたが、やはり、冒頭のエラーが出ました。詳細は、本日(7/16)の日本時間17時か18時頃に記入させていただきます。

追記2:諸事情により、詳細の記入は遅れます。遅くとも、20時頃には記入できると思いますが…。

iwachan2525's picture

大変遅くなり、申し訳ありませんでした。

エラーは2つ出ています。
インストール直後は問題なかったのですが、"appearance"に入ると、noticeエラーが出て(短時間で次のエラーが出るため省略)、その後、数回のクリックで以下に記述するエラーが出てきます。
背景は真っ白。エラーは黒文字です。

1.Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\仮ドメイン\includes\module.inc on line 1079
先にも述べましたが、1.に関しては簡単に解決しました。

2.Fatal error: Call to undefined function at_get_setting() in C:\xampp\htdocs\仮ドメイン\themes\commons_origins\template.php on line 230

230行目~237行目は1つのプログラムの塊のようですので、まとめて記述します。掲示板の関係上、適切に改行等が行われていないようであることを予めご容赦ください。

(line 230)if (at_get_setting('extra_menu_classes', $theme_name) == 1 && !empty($element['#original_link'])) {
if (!empty($element['#original_link']['depth'])) {
$element['#attributes']['class'][] = 'menu-depth-' . $element['#original_link']['depth'];
}
if (!empty($element['#original_link']['mlid'])) {
$element['#attributes']['class'][] = 'menu-item-' . $element['#original_link']['mlid'];
}
}

以上です。ご支援よろしくお願いします。

"Fatal error: Call to

dokumori's picture

"Fatal error: Call to undefined function at_get_setting()" は、Adaptive Theme に含まれる at_get_setting() が見つからないことで起こるエラーです。Adaptive Theme は有効になっていますか?(または存在しますか?)

また、field_data_field_original_og_membership というテーブルが見つからないというのは、Drupal Commons のインストールが正しく行われていないのが原因ではないかと思います。何か根本的な部分に問題があるような気がします。

インストールしている Commons のコードは、どこからダウンロードしたものですか?

また、この Commons は、XAMPP 上にインストールされているのでしょうか?その環境では他の Drupal サイトは問題なく動作するのでしょうか?

iwachan2525's picture

dokumori様
回答ありがとうございます。

以下に(順番は少々異なりますが)回答をさせていただきます。

field_data_field_original_og_membershipについて。
時間が経過したら解決しました。今回に限らず、エラーが出ても更新を押せば解決、ということがしばしば起こるのですが…。

Adaptive Theme は有効になっていますか?(または存在しますか?)
存在はしていますが、有効化されているかどうかはわかりません。
場所:C:xampp/htdocs/仮ドメイン/sites/default/files

XAMPP 上にインストールされているのでしょうか?その環境では他の Drupal サイトは問題なく動作するのでしょうか?
現在使っているxamppはv3.2.1と書いてあります。他のdrupalについては調べていません。

上手くいかないようなら、別の手段を考えます。ご協力してくださっているのに申し訳ありませんが。

Adaptive Theme

dokumori's picture

Adaptive Theme を有効にしてください。有効になっていない場合、 at_get_setting() が見つからないので、この関数に関連するエラーは消えません。

時間が経過したら解決しました。

エラーのページをブラウザーがキャッシュしている場合もあるので、ブラウザのキャッシュを頻繁にクリアすることも試してください。

Drupal のキャッシュもクリアしてみてください。/admin/config/development/performance にて行えます。

また、ブラウザから update.php を開いて、適用されていないアップデートが残っていないかどうか見てみてください。

iwachan2525's picture

dokumori様 回答ありがとうございます。

お答えくださった内容も含めて、様々な方法を検討してみたいと思います。
後日、この件に関する回答を行うことになると思いますが、気長にお待ちいただければと思います。

hgoto's picture

その後コメントを投稿させていただいたつもりだったのですがコメントできていなかったようで、質問させていただきながら途中で抜ける形となってしまいました。。失礼いたしました。。

ちなみに私も状況を再現しようと Drupal commons の 7.x-3.28 をインストールして試してみましたが、同じ現象を再現することができませんでしたので、参考になる情報がお出しできなさそうです。。

途中からファイルを上書く形で他のディストリビューションに変更したりすると、よくわからないところでハマってしまうこともあるかと思いますので、 Drupal commons をゼロから立ち上げ直して、今まで構築されたコンテンツタイプなどは FeaturesBundle copyNode export などを使って移行される方が楽かもしれません。

スッキリ解決できるといいですね。

iwachan2525's picture

質問させていただきながら途中で抜ける形となってしまいました。失礼いたしました。
いえいえ、全く気にしておりません。こちらも教えていただく立場でございますので。

Drupal commons をゼロから立ち上げ直して
XAMPPに入れただけですので、挽回はいくらでも可能です。ただし、XAMPPの方はApachが不安定なようですが…。

ただ、少しdrupalを離れようかとは思います。一方的で申し訳ありませんが、いつの日か、再びお会いした際にまたよろしくお願いします。

iwachan2525's picture

 今日の昼頃、Buddypressに浮気し、管理人をスパム扱いとするあるまじきエラー?を吐いたので、夕方頃、再びdrupalcommonsに挑戦しましたが、やはりダメでした。
 drupal.orgからcommons-7.x-3.28-coreをダウンロードし、そのまま解凍。当然ファイルもそのままxamppに移行し、インストールまでは何とか行えましたが、ここから雲行きが怪しくなります。
 php.iniのmax execution timeを120にしたものの、時間超過の?エラーが頻発したので途中で300に変更。インストール直後に何かデータベースでエラーが出たようだが、local/仮ドメインを打ち込んだらdrupal commonsに移行したのでそのまま継続。
 しかし、やはりappearanceでエラー発生。毎回出ていると思われるエラーで、

Notice: Undefined index: enabled in system_themes_page() (line 239 of C:\xampp\htdocs\仮ドメイン\modules\system\system.admin.inc).

Warning: uasort() expects parameter 1 to be array, null given in system_themes_page() (line 245 of C:\xampp\htdocs\仮ドメイン\modules\system\system.admin.inc).

Notice: Undefined index: ember in theme_get_setting() (line 1439 of
C:\xampp\htdocs\仮ドメイン\includes\theme.inc).

Notice: Trying to get property of non-object in theme_get_setting() (line 1476 of C:\xampp\htdocs\仮ドメイン\includes\theme.inc).

Notice: Trying to get property of non-object in theme_get_setting() (line 1486 of C:\xampp\htdocs\仮ドメイン\includes\theme.inc).

が出ました。commonsのテーマのデータは存在せず、今現在においてテーマに関しては、宙ぶらりんの状態です。

Drupal 以外にも solution

dokumori's picture

Drupal 以外にも solution は色々あるので、それぞれ試されるのが良いと思います。以下は試されなくても構いませんがご参考まで:

Commons を試そうとしている段階では、PHP の notice は無視して問題ありません。Notices がログされないよう設定を変更することも可能です。settings.php に ini_set('error_reporting', E_ALL & ~E_NOTICE); を追加するか、php.ini を変更することで変更出来ます。

commonsのテーマのデータは存在せず

という表現の具体的な意味が分からないのですが、commons の提供するテーマが一覧に表示されないという意味でしょうか。もしかしたら commons が格納されているディレクトリの権限が問題になっているかもしれません。全てのディレクトリとファイルが apache / xampp によって読み込み可能になっていないのかもしれません。

詳細に検証しないと分かりませんが、個人的には iwachan2525 さんの利用されている環境が問題を引き起こしているように感じられるので、別の環境を利用するのも手ではないかと思います。

Commons を他の環境で手っ取り早く試したい場合、Acquia Dev Desktop 2 をインストールするのが良いと思います。

VM が問題なく扱える場合は VDD (https://www.drupal.org/project/vdd ) をお勧めします。プロジェクトによっては僕自身も利用しています。ただし VM なので、SSD を搭載しているマシンでないと速度が遅く、実用に耐えません。

あとは、Acquia Cloud Free を利用する手もあります。この方法を使えば、環境に依る問題を心配する必要がなくないります。無料でアカウントを作成すると、彼らの提供する AWS 上のサーバーを利用できます。Live Development モードを有効にすると、サーバーに直接ログインしてコードを変更することも可能です。

どの solution を利用されるのであれ、問題なくシステムが動いてくれると良いですね。

iwachan2525's picture

dokumori様、毎度回答ありがとうございます。

commonsのテーマのデータは存在せずという表現の具体的な意味が分からない

 インストール直後の画面はdrupalcommonsのデフォルトテーマと思しき画面なのですが、appearanceに行ってみると、全てがDisabled themesとなっており、画面に存在するのがBartik 7.38,Garland 7.38,Seven 7.38,Stark 7.38だけという状態です。以前、成功した際にはcommons default theme(commons_origin)というテーマが登録されていましたが。
 一応、C/xampp/htdocs/仮ドメイン/profiles/commons/themes/commnonsにcommons_originは登録されていますが、正規のthemeのフォルダにコピー&ペーストしてもダメだったので、そこは本質的な部分ではないように感じます。

別の環境を利用するのも手ではないかと思います。
そうですね。是非とも参考にさせていただきます。

とりあえずは以上です。

日本 コミュニティ: Drupal Japan User Group

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: