Drupal

Drupal開発者および管理者向けのQ&A

3
DrupalコメントシステムとDisqus
Disqusの複数ログイン機能が気に入っています。facebook、twitter、googleなどでログインできます。一方、コメントはサードパーティのサーバーに存在し、シングルログイン機能を含むパッケージには多くの費用がかかります(つまり、drupalサイトのユーザーはdisqusで再度ログインせずにコメントできますシステムまたは別)。 自分のサイトで同様のシステムをシミュレートするにはどうすればよいですか?ユーザーがFacebook、twitter、google、openidで自分のサイトにサインインしてコメントできるようにするにはどうすればよいですか? drupalモジュールで達成できる複数ログイン以外のdisqusシステムの他の機能はありますか? [3。disqusはサイトの読み込みを遅くしますか?4.コメントをDrupalからDisqusに移動するにはどうすればよいですか?5.コメントをDisqusからDrupalに移動するにはどうすればよいですか?] 編集:長期的には長所と短所が現れるので、両方のシステムを使用している人からの回答をお願いします。彼らは数ヶ月後に彼らが選んだことの不利な点を理解していたため、あるコメントシステムから別のコメントシステムに切り替えるサイトを見てきました。
12 comments 


2
views-view-fields.tpl.phpのオーバーライド
views-view-fields.tpl.php特定のビューのファイルを上書きすることは可能ですか?views-view-fields--view-name.tpl.phpファイルを作成しようとしましたが、テンプレートファイルを再スキャンし、効果なしでキャッシュをクリアしました。ここで報告されている同様の問題:http : //drupal.org/node/1137942 ただしviews-view-fields.tpl.php、テーマフォルダ内のファイルに名前を付けると、テンプレートファイルが再スキャンされるときに新しいファイルが適用されます。しかし、これはすべてのビューに適用されることを意味します。 views-view-fields.tpl.phpは、Viewsが表示するテーマ情報画面にリストされているファイルの1つではないことに気付きました。 誰かがviews-view-fields--view-name.tpl.php(または同様の命名規則に従って)作成することでこのファイルを上書きすることは不可能である/サポートされていないことを明確に教えてもらえますか?
12 views  theming 

2
Drupalデータベースにインデックスを追加しても安全ですか?
私はこれについて検索して読んでいますが、Drupalテーブル(コアとcontribの両方)にインデックスを追加するというトピックについて明確なものを見たことはありません。 私の主な関心事は、コアコードまたはcontribコードを更新し、スキーマが変更されたときにカスタムインデックスで何が起こるかです。この場合はどうなりますか? 編集: 何らかのコンテキストが役立つと思います。主に、サイトのパフォーマンスを調整するためにテーブルにインデックスを追加することに関心があります(クエリがスロークエリログに表示される、ビューが遅いページなど)。これには、他の誰かのモジュールのテーブルにインデックスを追加することが含まれます。例えば モジュールをインストールします foo モジュールfooはテーブルを作成します foo テーブルにインデックスを追加します foo モジュールにfooは、スキーマを変更する更新があります 何が起こるのですか?
12 database 

3
ビューの結果を反復処理するための、プログラムによる最適な方法は何ですか?
'children'という名前のビュー(child_node_idとbirth_order_valueの2つのフィールド)が与えられた場合、display_idが 'default'で、親ノードIDを含む引数が与えられた場合に、ビューの結果セットを反復処理する最適な方法は何ですか? 以前は、次のようなコードを使用してブロックでビューを使用していました。 if ( arg(0) == 'node' && is_numeric(arg(1)) && ! arg(2)) { $node = node_load(arg(1)); $args = array($node->nid); $view = views_get_view('Children'); print $view->preview('default', $args); } ただし、別のブロックでは、ビューで見つかった値に基づいていくつかのロジックを実行します。私の最終要件に基づいたビジネスロジックを推測できるかもしれません。ビューをサポートするコードブロック(「子」)を複数回呼び出す必要があります。ビューデータセットの結果を反復処理するときに、子ノードをクエリして子ノードを再帰的に反復処理する必要があります。
12 views  6 

1
Drupalスタックのパフォーマンスをベンチマークする最良の方法
私は最近、Drupalのパフォーマンスに関する質問をし、いくつかの素晴らしい回答を得ました。 これにより、Drupalをベンチマークするための信頼できる/意味のある方法は何ですか? 「APC、memchached&Varnishをインストール」または「モジュールxまたはyをインストール」と言うのは簡単ですが、各セットアップから得られるパフォーマンスの向上をどのように定量化できますか?基本的に、セットアップを比較し、ボトルネックを見つけてDrupalサイトから最大限のパフォーマンスを引き出す確実な方法です。見つけるための最良の方法は何ですか? Drupalをターゲットにする6。
12 6  performance 


5
インフラストラクチャの監視戦略
最近、私は展開したDrupalサイトのいくつかでダウンタイムに直面しています。サービスやサーバー自体を再起動してダウンタイムに対処するのではなく、積極的に問題にアプローチしたいと思います。サーバー/インフラストラクチャの状態を監視するためのnagios、munin、cactiなどの監視ツールについて読んだことがありますが、実際に運用環境で試したことはありません。私はほぼ99%の時間でDrupalを扱っていますが、サーバーレベルの監視とDrupal(アプリケーションコード)レベルの監視の両方の提案を見つけたいと思います。 基本的に、サーバーの負荷が高い場合、おそらく犯人(または被害者)を指していることを通知されるので、十分な情報に基づいた決定を下すことができます。また、PHPエラー/警告が発生したときに、Drupalレベルの監視(電子メールなど)に使用されるものを知りたいです。(メールサーバー自体がダウンするとどうなりますか?)

1
ビュー3は、宣言されたハンドラーを認識しません。何故なの?
modules / addressfield / addressfield.moduleには次のものがあります。 /** * Implements hook_views_api(). */ function addressfield_views_api() { return array( 'api' => 3, 'path' => drupal_get_path('module', 'addressfield') . '/views', ); } そして /** * Implements hook_field_views_data_alter * * @param mixed $result * @param mixed $field */ function addressfield_field_views_data_alter (&$result, $field) { if (array_key_exists('field_data_field_address', $result)) { …
12 7  views 

3
「エンティティAPI」はDrupal APIに何を追加しますか。また、モジュールがそれに依存するのはなぜですか?
エンティティのAPIモジュールは、Drupalの中で定義されたエンティティのAPIを拡張します。どの場合に、モジュールはそのモジュールから提供されるAPIを使用する必要がありますか?Entity APIモジュールに依存している場合、新しいエンティティを実装するモジュールは簡単に作成できますか? 「作成しやすい」とは、Entity APIを使用するモジュールは、Entity APIを使用しないモジュールと比較して、作成するコードが少ないことを意味します。 プロジェクトページを読みましたが、Drupalコアコードのみに依存するモジュールではなく、Entity APIモジュールに依存するモジュールを作成することを好む理由がまだ完全にはわかりません。ルールを拡張し、エンティティを実装するモジュールは、Entity APIモジュールを使用する必要があることを理解しています。最初のケースでは、理由は、ルールモジュールがエンティティAPIモジュールに依存していることでもあります。
12 entities 

4
バッチAPI操作を高速化する方法は?
私は、サードパーティのcontribモジュールと自分の操作の両方でこれに遭遇しました。バッチ操作を高速化するさまざまな方法に興味がありますか? それらがノード(インポート/更新など)で動作し、10,000以上の範囲のノードのリストを解析していると仮定します(ただし、1500万行を処理する必要がありました。 ) drupals cron.phpジョブにアタッチして「ヘッドレス」を実行する方が速いですか?Drushを使用していますか?または、これは単にコードを開発できる効率的かつ迅速な解析の問題であり、外部の影響やバッチ固有の最適化のヒントはありません ... 現在、私は(多少の大まかな計算を使用して)24時間以上かかる可能性のある操作に遭遇しました... ありがとう!

3
ページテンプレートの提案が機能しない
テーマを作成し、この構造にテンプレートファイルを配置しました /templates/page/page.tpl.php /templates/page/page--node-type.tpl.php カスタムページテンプレートを作成しましたが、何らかの理由でDrupalによって選択されません。キャッシュをクリアし、このプリプロセッサ関数をテーマtemplate.phpファイルに追加しようとしましたが、まだ機能していません。 if (isset($vars['node'])) { // If the node type is "blog" the template suggestion will be "page--blog.tpl.php". $vars['theme_hook_suggestions'][] = 'page__'. str_replace('_', '--', $vars['node']->type); } 任意の助けをいただければ幸いです。
12 7  theming 

3
Drupalサイトでの共同開発を管理するにはどうすればよいですか?
Drupalサイトで別の開発者と仕事をしています。私たちは、お互いに邪魔されることなく、サイトのさまざまな部分で同時に作業する良い方法を見つけるのに苦労しました。私たちはサイトの同じ開発インスタンスで作業を試みましたが、多くの場合、お互いにつま先を踏んだり、悪いコードでサイトを停止したりして、解決されるまで他の人が作業を続けることを不可能にしました。そのため、個別の開発インスタンスに移動しました。しかし、今では、作業をサイトの単一のインスタンスにマージするのは大きな苦痛です。基本的に、共有コピーのすべてをやり直すことになります。 私たちが今抱えている最大の問題は、データベースの変更をどのようにマージするか、そしてソース管理システムにどのようにデータベースを含めるかです。ファイルは簡単で、すべてを追跡し(gitを使用)、作業をマージして、必要に応じて競合を解決します。しかし、これは実際にはデータベースでは機能しません。SQLダンプを取得してgitリポジトリに含めることはできますが、データベースを実際にマージすることはできません。機能モジュールは、私たちはその後、バージョン管理およびマージすることができるコードに当社のデータベースに作業の一部をエクスポートせ、少しのに役立ちます。ただし、すべての機能に対応しているわけではありません。そう... データベースの変更を簡単にマージするには、どのような手順を実行できますか? データベースをどのようにバージョン管理する必要がありますか(ダンプファイルをgitに入れるのが良い方法ですか)。 これらの問題のいくつかに役立つモジュールはありますか? または、同じサイトのコピーに取り組んでいますか?(そうしないでください) 編集:コメントでは、Featuresでエクスポートできないものについて説明しましたが、その1つが分類法でした。それに対処する別の質問があります。
12 7 

3
vidの意味
ビューを設計しましたが、プレビューセクションに次のクエリが表示されます。 SELECT node.nid AS nid, node_data_field_crm_history_brokerid.field_crm_history_brokerid_value AS node_data_field_crm_history_brokerid_field_crm_history_brokerid_value, node.language AS node_language, node.type AS node_type, node.vid AS node_vid, node_data_field_crm_history_brokerid.field_crm_history_caseid_value AS node_data_field_crm_history_brokerid_field_crm_history_caseid_value, node_data_field_crm_history_brokerid.field_crm_history_dateadded_value AS node_data_field_crm_history_brokerid_field_crm_history_dateadded_value, node_data_field_crm_history_brokerid.field_crm_history_entrydesc_value AS node_data_field_crm_history_brokerid_field_crm_history_entrydesc_value FROM node node LEFT JOIN content_type_crm_history node_data_field_crm_history_brokerid ON node.vid = node_data_field_crm_history_brokerid.vid WHERE node.type in ('crm_history') 何がないvidここに意味ですか? このクエリを使用してcrm_historyに行を挿入する単純なルールを挿入しようとすると、実際にこれが必要です。 $result = db_query("INSERT INTO {content_type_crm_history} (vid, nid, …
12 views  database 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.