Drupal

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

8
任意の年の当月の最初の日と最後の日の間でフィルタリングします
ビューに日付フィールドがあり、月の最初の日と最後の日の間でフィルターしようとすると、ビューのプレビューに結果がありません。 これが私の設定です。このフィルターは、登録されているすべてのユーザーの誕生日を比較し、月の最初の日と最後の日の間の値を持つユーザーのみを印刷する必要があるためです。 これが私のビュー設定のスクリーンショットです: 最初にここに私の日付フィールド設定があります: 次に、フィルター設定: 最後に、フィルターオプションを設定して、月の最初の日と最後の日の間の結果を取得します。 これは私が今まで試みたものですが、成功しませんでした。誰かがこれを手伝ってくれる?これにはモジュールを使いたくありません。このフィルターが機能するだけで十分です。

2
認証されたRESTリクエストが匿名ユーザーになる
servicesおよびrest_serverモジュール(およびRESTful API全体)は初めてです。しかし、私が理解しているように、手順は基本的に次のとおりです。 データに設定されたユーザー名とパスワードを使用して/ api / user / loginに投稿リクエストを送信します 取得したトークンを応答に格納します 後続のpostリクエストで、キーX-CSRF-TOKENを使用してトークンをヘッダーに追加します Postman Chrome拡張機能を使用してそれを実行すると、うまく機能します。コードでそれを行うと、api / user / loginは正常に実行され、トークンを取得しますが、/ api / other / endpointにアクセスしようとすると、ユーザーの匿名エラーにより403 Access deniedが返されます。 最初のリクエスト(/ user / login)は次のようになります: POST /api/user/login HTTP/1.0 Content-Type: application/json Accept: application/json User-Agent: Drupal (+http://drupal.org/) Host: mysiteurl.com Content-Length: 41 {"username":"NAME","password":"PASSWORD"} そして、2番目のリクエスト(/ other / endpoint)は次のようになります。 POST /api/other/endpoint HTTP/1.0 Content-Type: …
7 services  8  users 

2
uidの代わりにビューでユーザー名を取得する方法
コンテンツを表示するビューを使用するdrupal 7 Webサイトがあります。コンテンツUIDは表示できるフィールドとして表示されますが、代わりにユーザー名を表示したいと思います。「ユーザーがコンテンツを作成しています。uidよりも多くのフィールドが必要な場合は、content:author関係を追加してください」と表示されますが、これは理解できません。コンテンツ作成者の関係をどこに追加すればよいですか?ありがとうございました、
7 views 

2
CKeditorのソースビューでテキストを折り返す方法
Drupal 7.34でCKeditorバージョン7.x-1.16を使用しています。エディターのソースビューでテキストを強制的に折り返すにはどうすればよいですか。水平スクロールバーを表示したくない。 私はなんとかWYSIWYGビューでそれを実行しました。「ソースビュー」で「Enterキー」を押しても、ビュー間の次の切り替え時に無効になるため、それは解決されません。 違いについては画像を参照してください。これは、「ソースビュー」と「WYSIWYGビュー」を切り替えたときに表示されるテキストと同じです。 これはFirefoxの問題のようです。GoogleChromeブラウザーでは問題ではないためです。
7 wysiwyg 

2
別のフィールド内に含まれるフィールドをレンダリングする
私が使用していますDrupalの段落のあなたが他のフィールド内のフィールドの「バンドル」を作成することができますモジュールを。(これはエンティティを使用して行われます)。各バンドルには、独自のtpl.phpファイルがあります。 さらに、複雑なレイアウトの場合、「メインバンドル」内に「サブバンドル」をネストすることができます。 というメインバンドルを作成しましたfield_panels_content。 内部には、を保持する別の「サブバンドル」がありますfield_body_text。「メインバンドル」は、無制限の「サブバンドル」を保持できます。 私のテーマでfield_body_textは、「main-bundle」用のtpl.phpファイルから複数の「subbundle」のすべてのフィールドにアクセスする必要があります。 devel_themerを使用して、次のfield_body_textようなフィールドにアクセスできることがわかりました。 <?php print render($content['field_panels_content'][0]['entity']['paragraphs_item'][9]['field_body_text']); ?> <?php print render($content['field_panels_content'][2]['entity']['paragraphs_item'][10]['field_body_text']); ?> <?php print render($content['field_panels_content'][2]['entity']['paragraphs_item'][12]['field_body_text']); ?> ご覧のとおり、これを印刷するには2番目の配列の値を知る必要があるため(たとえば[9] [10] [12])、効率的なテーマ設定にはなりません。 ループや他のPHP関数を使用して、知らないうちに2番目の配列値に自動的にアクセスできる場所はありますか? この2番目の配列の値は、コンテンツの新しい部分ごとに変化します(たとえば、新しいサブバンドルを追加すると、値は[13]になります。数値が[10]から[12]にジャンプするのは、以前のサブバンドルを削除したためです[11]。 更新 これが私が試したいくつかのステップです(このページから): 次にループの例を示します。 <?php foreach ( $content['field_panels_content'] as $wrapper) { foreach ( $wrapper['entity']['paragraphs_item'] as $item ) { if ( !empty($item['field_body_text']) ) { print render($item['field_body_text']); } } } …

2
ルールのループを止めるには?
私は条件付きルールモジュールを使用していますが、ループの中に抜け出す必要があるいくつかの条件があります。ただし、ループを停止/終了するためのルールにはアクションはありません。 私は次のことを試みたがそれが機能しないカスタムルールを試しました: function my_module_break_rules_loop() { return FALSE; } function my_module_break_rules_loop() { return 0; } function my_module_break_rules_loop() { break; } ブレークは機能しますが、次のエラーメッセージが表示されます。 PHPの致命的なエラー:1レベルで中断/続行できません 誰でもループを停止/終了する方法を知っていますか?
7 7  rules 

1
ビューのキャッシュ戦略-クエリキャッシュとレンダリングされた出力キャッシュの関係
まず、私はデューデリジェンスを確保し、以前に出てきた質問を重複させないようにしています。stackexchangeやその他のさまざまな場所で、ビューのキャッシュや、さまざまなタイプのビューキャッシュの詳細(例:hereとhere)について説明している投稿が数多くあります。ただし、ビューキャッシュのさまざまなレイヤー間の関係と、それらがケース固有のキャッシュの決定にどのように影響するかを十分に説明している詳細はまだわかりません。簡単にするために、私はこの質問の範囲を、コントリビュートスペースで提供される他のレイヤーとは関係なく、すぐに使える7.x-3.xのキャッシュオプションに焦点を合わせています。 ビューは、ディスプレイごとに「クエリ結果」キャッシュと「レンダリングされた出力」キャッシュの2つの時間ベースのキャッシュレイヤーを公開します。各キャッシュに含まれる生データの詳細は明確ですが、それらの相互作用方法は明確ではありません。レンダリングされたキャッシュへのヒットがクエリキャッシュを完全にバイパスするのか、2つのレイヤーが別々に動作するのか、私は特に疑問に思っています。私は(のような旧主張するいくつかの参照見てきたこの1を)、および(のように後者を主張しているいくつかのこの1)。 理論1-個別のキャッシュレイヤー 最初は、各レイヤーが別々に「連続して」呼び出され、レンダリングされた出力キャッシュがそのCID内の実際のクエリ結果をハッシュするという印象(および期待)を抱いていました。このようにして、新しいコンテンツがビューに即座に反映されるようにしながら、最も負荷の高いクエリ後のロード/ビルド作業をキャッシュするエレガントな方法があります( "クエリ結果"キャッシュがオフで、 "レンダリングされた出力"キャッシュがオン)。いくつかの簡単なテストは、レンダリングされた出力キャッシュが現在のクエリ結果を認識していない可能性があるため、これは不可能かもしれないことを明らかにしています。 理論2-レンダリングされた出力キャッシュがクエリ結果キャッシュを「包括」する もう1つの可能性は、レンダリングされた結果キャッシュが、クエリ自体(結果ではない)のハッシュによってキー設定されることです。この場合、ヒットすると、クエリキャッシュやDBを参照する必要なく、レンダリングされた出力を直接返すことができます。これが事実である場合、「レンダリングされた結果」キャッシュよりも短い時間間隔で「クエリ結果」キャッシュを設定することはあまり意味がないと思います。もちろん、利点は、DBへの直接クエリを回避しながら、レンダリングされた出力をより頻繁に更新できることです(多くの動的テーマロジックまたは頻繁なエンティティ更新がある場合)。ただし、最も複雑なビュークエリを除くすべての場合、この種類の分離はそれほど有利に思えません。 理論2を指す「ブラックボックス」テストをいくつか実行しましたが、他にいくつかの設定が機能しているかどうか、またはビューのバージョンによって答えが異なるかどうかはわかりません。私もコードを少し調べましたが、ほとんどのビューのプラグインメソッドがドキュメント化されておらず、たまに追跡するのが難しいことがイライラしています。とにかく、これに対する答えは、他の人の参考資料として役立つと思います。

3
サードパーティのPHPライブラリからクラスを自動ロードする方法
モジュールでサードパーティのPHPライブラリを使用したいのですが、クラスをオートロードするために何をする必要があるのでしょうか? 例:Drupal \ my_module \ MyClassは、ThirdPartyNamespace \ Something \ Else \ Class1をインスタンス化しようとしています Drupal 8の公式ドキュメントでは、より複雑な名前空間のシナリオを実際に扱っていません。
7 8 

2
コマースチェックアウト-ユーザーが配送オプションを選択した後のカートペインの更新(ajax)
私は1ページのチェックアウトに取り組んでおり、ユーザーが配送オプションを選択している間、カートレビューペインを配送価格で更新しようとしています。 配送オプションが保存されたときにカートのレビューフォームを更新するために、配送オプションに#ajax情報を添付しました。 チェックアウト時のコマース配送ajaxコールバックの変更 if($form_id == 'commerce_checkout_form_checkout') { $form['commerce_shipping']['shipping_service']['#ajax']['callback'] = 'mshop_shipping_pane_service_details_refresh'; } Ajaxコールバック function mshop_shipping_pane_service_details_refresh($form, $form_state) { // Update shipping form $commands[] = ajax_command_replace('#' . $form['commerce_shipping']['service_details']['#id'], render($form['commerce_shipping']['service_details'])); // Update checkout cart review list($view_id, $display_id) = explode('|', variable_get('commerce_cart_contents_pane_view', 'commerce_cart_summary|default')); $commands[] = ajax_command_replace('.view-mshop-cart-shopping-cart-summary', commerce_embed_view($view_id, $display_id, array(arg(1)))); return array('#type' => 'ajax', '#commands' => $commands); …
7 commerce 

3
AJAXコールバック後にフォームがレンダリングされるときにすべてのAJAX機能をエミュレートするにはどうすればよいですか?
Drupalフォームがありますが、AJAXコールバックの結果としてページに追加しています。 新しいコールバックをトリガーするには、このフォームが必要です。以下の私のコード: $form['#suffix'] = '<div id="form-return-message-box">this is the return box</div>'; $form['#attached']['js'] = array('misc/ajax.js'); $form['markup'] = array( '#type' => 'markup', '#markup' => '<h2>This is a form</h2>' ); $form['button'] = array( '#type' => 'button', '#value' => t('Submit'), '#ajax' => array( 'callback' => 'module_myform_callback', 'wrapper' => 'form-return-message-box', 'method' => 'replace', 'effect' => 'fade', …
7 ajax  forms 

4
安全に削除できるモジュールフォルダのリストを取得するにはどうすればよいですか?
最近、を通じて多くの不要なモジュールをアンインストールしましたadmin/modules/uninstall。 次に、モジュールのどのフォルダをから削除できるかを理解したいと思いますsites/all/modules。 試しましたがdrush pmi、情報が多すぎます。 安全に削除できるフォルダのリストを取得するにはどうすればよいですか?ドラッシュコマンドはありますか?
7 7  drush  installing 

2
ページャーをカスタマイズする方法
標準のポケットベルを出力するコードがあります。 print theme('pager'); それはこれを出力します: <h2 class="element-invisible">Pages</h2> <div class="item-list"> <ul class="pager"><li class="pager-current first">1</li> <li class="pager-item"><a title="Go to page 2" href="/drupal/node?page=1">2</a></li> <li class="pager-item"><a title="Go to page 3" href="/drupal/node?page=2">3</a></li> <li class="pager-next"><a title="Go to next page" href="/drupal/node?page=1">next ›</a></li> <li class="pager-last last"><a title="Go to last page" href="/drupal/node?page=5">last »</a></li> </ul> HTMLを次のように変更するにはどうすればよいですか。 <ul class="pagination"> <li><a href="#"><</a></li> <li><a …
7 7  theming  paging 

1
コンテキストフィルターを使用して関連ノードを表示し、複数の値を処理する問題
ビュー付きの関連ノードブロックを作成しました。 すべてが良さそうですが、何日間も解決策を見つけることができなかった1つの問題があります。 ビューにはコンテンツがあります。コンテキストフィルターとして分類用語ID(深さあり)があります。 ノードに分類用語が1つしかない場合、問題はなく、関連するビューブロックには、同じ分類用語でタグ付けされた関連ノードが表示されます。 ただし、ノードに複数の分類用語がある場合、関連するノードブロックには、分類用語のいずれかでタグ付けされたすべてのノードが表示されますが、 [ すべての用語を共有するアイテムにフィルターする ]オプションを選択しました。 この問題を解決する方法はありますか?
7 7  views 

5
匿名にフラグをメールで確認するよう依頼するにはどうすればよいですか?
フラグをコンテンツタイプの1つに追加する必要があります。実際には2種類あります。 お世話します 解決した 2番目のフラグは、ノードの作成者のみが使用でき、最初のフラグが既に発生している場合にのみ使用できます。しかし、それは簡単な部分です。最初の種類のフラグも、ログインしているユーザーにとっては簡単です。 重要なのは-匿名ユーザーも第1種のフラグを使用できるようにする必要があるということです。そして、私は彼らの有効なメールアドレスを持っていることを確認する必要があります。メール内の標準の確認リンクで問題ありません-それを行うにはどうすればよいですか? カスタムモジュールを最初から開発できることはわかっています。必要に応じて開発することもできますが、すぐに使えるソリューションがすでにあることは確かでしたが、今は見つかりません。 いくつかのことを明確にするために: Flag APIは、Session APIをインストールすると、匿名ユーザーに対して機能します。ここで問題ありません。 フラグ自体に添付されたメールフィールドにメールを保持することを計画しました。ログインしているユーザーの場合、デフォルトではメールに設定されます。ユーザーが変更する場合は、変更する場合でも、とにかく連絡をとる方法があります。匿名の場合は、メールのリンクで確認してください。期限内に確認されなかった場合は、フラグを削除します。削除は、CRONとルールまたは単純なヘルパーモジュールを使用すると簡単になります。検証は複雑です(そして、私はすでに解決されていると思います)。
7 emails  flags  users 

2
フィールドテンプレートを上書きするにはどうすればよいですか?
フィールドテンプレートを自分のテンプレートで上書きしようとしています。フィールドはfield_testと呼ばれるので、root-theme-directory / templates /にfield--field-test--mynodetype.html.twigテンプレートファイル `を作成しましたが、Drupalはそれを認識しません。 UIからキャッシュをクリアし、settings.yamlでデバッグモードを有効にして、Develモジュールをインストールし、リクエストごとにテーマレジストリを再生成しましたが、何も役に立たないようです。フィールドは常にデフォルトのfield.html.twigテンプレートでレンダリングされます。 Drupalが使用するフィールドテンプレートをオーバーライドするにはどうすればよいですか?
7 8  theming 

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