Drupal

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

7
単一フィールド値の高速保存
私のサイトには、指定されたタイプの約70kのノードがあります。それらに対して更新を実行する必要があります。いくつかの操作と1つのフィールドを目的の値に設定します。node_saveは本当に遅く、クラッシュを引き起こします(呼び出しスタックが長すぎる)。この特定のフィールドに情報を書き込むより速い方法はありますか? そこたfield_attach_updateつのポストで述べたが、それははるかに高速ではありません。 編集:このノードタイプに構築された非常に複雑なビューがありますが、更新したいこのフィールドでは動作していません。
19 7  entities  nodes 

4
支払いページにリダイレクトする匿名ユーザーのために、Drupal Commerceでプログラムで注文を作成する
ライアンには、プログラムで注文を作成できる素晴らしいコードがいくつかあります <?php global $user; $product_id = 1; // Create the new order in checkout; you might also check first to // see if your user already has an order to use instead of a new one. $order = commerce_order_new($user->uid, 'checkout_checkout'); // Save the order to get its ID. commerce_order_save($order); // …
19 7  commerce 

2
3開発環境で機能モジュールを使用する方法は?
Featuresを多用してプロジェクトに取り組んでいるとき、このアプリケーションには3人の開発者がいることがあります。 いくつかのアプローチを試しましたが、gitブランチをマージすると、お互いの機能の変更を「上書き」することが多いようです。競合がたくさんあり、機能モジュールが壊れて使用するのが苦痛になっているようです。 機能は、プロジェクトでの設定のための本当に素晴らしい時間節約であり、私はこれに取り組む方法があると確信しています。 競合や上書きのリスクを減らすワークフローまたは手順はありますか? 機能に関する手がかりは大歓迎です。

2
D7のdb_queryでLIKEを使用する
Drupal 6には次のようなクエリがあります。 $sql = 'SELECT sid, score FROM search_index WHERE word LIKE "%%%s%%"'; $result = db_query($sql,$search_term); そして、うまくいきましたが、今はDr​​upal 7にアップグレードしています。 私が読んで、これはうまくいくはずですが、そうではありません: $sql = 'SELECT sid, score FROM search_index WHERE word LIKE "%:term"'; $result = db_query($sql,array(':term'=>$search_term)); 誰かが私が間違っていることを知っていますか?
19 7  database 

2
パネルのメリットは何ですか?
私は自分のテーマを書くことに常に慣れていたので、パネルについてあまり考えたことはありませんでした。 ただし、Lullabot&Active Lampから)パネルの美徳を主張する記事をたくさん見たので、特にPanelsがDrupal 8に登場するので、再訪する時が来ると思いました。 私はそれを広範囲にわたっていじり、この便利なスクリーンキャストシリーズを見ました。しかし、そのメリットを理解することはできません。 私は通常、非技術者がノードを編集できるWebサイトを構築します。通常、各ノードフォームには、ユーザーがそのページのすべてのコンテンツを追加できる複数のフィールドがあります。 パネルを最大限に活用するには、ページを1つのコンテンツを保持する個別のノードに分割し、パネルを使用して個別のノードをまとめる必要があるようです。Webデザイナーのみが編集するサイトを作成している場合、これは問題ないかもしれません。 ただし、コンテンツを追加するために非技術者にサイトを提供すると、問題が発生します。ほとんどの非技術者は、すべてのページ作成を1つの画面で行いたいと考えています。多数の異なるノードを作成してから、Panelsにそれらをすべて持たせる必要がある場合、それらは混乱しているようです。 PanelsはBlocksと比較してパフォーマンスとコンテキストのサポートが優れていることを知っています。ただし、多くの複雑さと抽象化が追加されるようです。 私はそれが非熱心な人にとってどのように信じられないほど有用であるかを見ることができますが、テーマを持つことができる人にとってどのような利点があるのか​​わかりません。 誰かが私を啓発してもらえますか。ありがとう!
19 theming  panels 

1
タイプ「text_format」のフィールドをシステム設定変数として保存する
コンテンツエディターにカスタムモジュールの変数を変更する機能を提供しようとしています。この変数にはhtmlを含めることができます。HTMLの知識は必要ありませんので、wysiwyg(CKEditorモジュールが提供するCKEditor)を自由に使用できるようにしたいと思います。ただし、現時点では、データは変数として保存されません。私はこのようなことをする必要があることをいくつかの場所(Do、stackexchange)で読みました。 $form['foo']['bar'] = array( '#type' => 'text_format', '#title' => 'Bar', '#definition' => 'Foo Bar', '#default_value' => variable_get('bar', ''), '#weight' => 1, '#format' => 'filtered_html', '#required' => FALSE, ); これは、system_settings_form($ form)ではすぐに使用できません。var_dumpは、保存後にこれを示します。 array (size=7) '#type' => string 'text_format' (length=11) '#title' => string 'Bar' (length=7) '#definition' => string 'Foo Bar' (length=74) '#default_value' => …
19 7  forms  wysiwyg 

4
ノードにビューモードを追加するにはどうすればよいですか?
カスタムコンテンツタイプを作成しています。デフォルトでは、ノードは2つの表示モード(fullおよびteaser)のみをサポートします。 function mymodule_view($node, $view_mode) { if ($view_mode == 'full') { $node->content['#theme']= 'my_full_node_view_theme'; } if ($view_mode == 'teaser') { $node->content['#theme']= 'my_teaser_node_view_theme'; } return $node; } このノードタイプに、次のような他のビューモードをいくつか追加します。 small_box small_box_with_user_pic big_box そして、次のようなコードでノードをレンダリングしたい: $node = node_load($my_nid); $output = drupal_render(node_view($node, 'big_box')); 助言がありますか?
19 7  nodes 


2
カスタムテーブル/スキーマでビューを使用する
作成したカスタムテーブルからデータを取得するビューを設定する必要があります。一部のビューは、通常の方法で、カスタムテーブル(特定のnidなどをクエリできる場所)からコンテンツをプルする必要があります。 これをどのように行うのですか、または研究するのに適した場所はどこですか?
19 7  views 

1
結合してNULL値を探す
このサイトでの動作と同様に、フラグモジュールを使用して、ユーザーが質問に解決済みのマークを付けられるようにします。したがって、ユーザーに投稿をフィルター処理して、未解決の質問のみを表示できるようにします。また、一部の投稿はまったく質問にならない場合があります。したがって、「解決済み」フラグを使用することはできませんが、未解決の質問のみでフィルタリングする場合は結果に表示されません。したがって、ノードテーブルを他の2つと結合する必要があります。flag_contentそしてfield_data_field_question(この後者のテーブルは、投稿が質問かどうかを示すものです)。 私が試している現在のコードは次のとおりです。 $query->join('flag_content', 'f', 'f.content_id = n.nid AND f.content_type = "node" AND f.fid = 5'); $query->join('field_data_field_question', 'q', 'q.entity_id = n.nid AND q.field_question_value = 1'); $query->condition('f.fid', 'NULL', 'IS'); $query->condition('q.field_question_value', 'NULL', 'IS NOT'); ただし、これにより次のエラーが発生します。 PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the …
19 7  database 

5
複数のインストールにわたってカスタムモジュールを管理する
複数のサイトに使用されるいくつかのカスタムモジュールがあります。これらは、たとえばクライアント固有であるため、提供されたモジュールとしてリリースすることはできません。提供されたモジュールなどでは機能しないという仮定を立てます。 これに対処する次の可能性について知っています。 コピーして貼り付けます。すべてのインストールでモジュールを最新の状態に保つのが明らかに難しくなります。 単一のマルチサイトインストールがありますが、これは常に可能とは限りません。 gitサブモジュールを使用しますが、それらは厄介な場合があり、更新するのを忘れがちであり、常にサポートされているわけではありません(例:Pantheon) 一般的なgitリポジトリからチェックアウトするmakeスクリプトを削除します。そのためには、サイト全体でdrush makeを使用する必要がありますが、現在は使用していません。 http://drupal.org/project/fserver。まだ試していませんが、十分に安定しているかどうかを誰かが知っていますか?プロジェクトの説明はあまり有望ではなく、7.xバージョンはありません。 他に何か良いですか?何が好きで、なぜですか?

1
ブロックビューのコンテキストフィルター
分類用語であるトピック(「ニュース/デザイン」、「ニュース/コーディング」...)のコンテキストフィルターを備えたページビュー(「/ニュース」)があり、これは正常に機能しました。モバイルテーマの変更により、ページビューの代わりにブロックビューが必要になりますが、フィルターで動作させることができません。 古いフィルター設定では、すべての記事を「/ news」で取得しますが、使用しているフィルターはデフォルト値をフィルターから「taxonomy term ID from url」に変更しました。「/ news」の空のページ(これはブロックビューを含む単純なページです)および「/ news / design」などの「site not found」などが表示されます。ビューのプレビューでは、すべてが正常に機能します。 。 これらはビューの設定です。
19 blocks  views 

4
特定のコンテンツタイプを削除できないのはなぜですか?
Drupal 7サイトがあり、[コンテンツタイプ]メニューの[操作]列に[削除]リンクがあるのは特定のタイプのみです。 すべてのコンテンツタイプには、「編集」、「フィールドの管理」、および「表示の管理」へのリンクがありますが、「削除」があるのはそうでないものもあります。 ユーザーのアクセス許可を確認しましたが、Administer content typesすべてのコンテンツタイプに対して1つのグローバルアクセス許可であるように見えるため、一部のコンテンツが削除可能である一方で他のコンテンツは削除できない理由がまだわかりません。 特定のコンテンツタイプのみに削除操作があるのはなぜですか?
19 7  nodes 

4
EntityFieldQueryでいくつかのフィールドのみを取得しますか?
Drupal 7には、EntityFieldQueryを使用した非常に有望なORMのようなクエリシステムがあります。 現在、ノードの選択方法を理解していますが、結果には、探しているフィールドなどの特定の情報は含まれていません。 $query = new EntityFieldQuery(); $entities = $query->entityCondition('entity_type', 'node') ->entityCondition('bundle', 'event') ->propertyCondition('status', 1) ->fieldCondition('field_date', 'value', array('2011-03-01', '2011-03-31'), 'BETWEEN') ->fieldOrderBy('field_date', 'value', 'ASC') ->execute(); したがって、現在の例の「field_date」など、1つのフィールドの値のみを取得する場合は、ノードのデータ全体をロードする必要があります。 $nodes = entity_load('node', array_keys($entities['node'])); フィールドの値を取得する方法があり、代わりにすべてのノードの完全なデータをロードする方法がある場合、メモリのオーバーロードが発生します。 $nodesFieldDates = ???
19 7  entities 

3
フォーム選択オプション項目にクラスを追加します
JSなしでフォームオプションタグにクラスを追加するにはどうすればよいですか?現時点では、Form APIでこのようなキー配列を渡すことができます array( '0' => 'option 0', '1' => 'option 1', ) そして、私はこのようなHTMLを取得します <option value="0">option 0</option> <option value="1">option 1</option> このようなことをする方法はありますか: array( array( 'value' => 0, 'text' => 'option 0', 'class' => 'bob 0', ), array( 'value' => 1, 'text' => 'option 1', 'class' => 'bob 1', ), ) そして、これを取得 <option …
19 theming  forms 

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