Drupal

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


1
カスタムキャッシュタグの実装
D8の新しいキャッシュタグを使用して、さまざまな種類(エンティティ、ノード、ブロックなど)の関連コンテンツの同期を維持できるようにします。しかし、この機能の現在利用可能なドキュメントを読んでいると、コンテンツのアイテムを作成/更新するときにコンテンツのアイテムに独自のキャッシュタグを追加する方法がわかりません。 たとえば、ストアタイプの新しいノードを作成するときに、キャッシュタグlocation:new_york_123とaaブロックに同じものを追加します。次に、New York 123の場所の表示名をSoHoに変更した場合、キャッシュタグを無効にして、関連するすべてのコンテンツを更新できます。
13 8  caching 

4
データベースに保存されたキャッシュを手動でクリアするとき、どのテーブルを空にする必要がありますか?
D8より前に手動でキャッシュをクリアするには、で始まるすべてのテーブルを切り捨てることができましたcache_。 Drupal 8にはまだで始まるテーブルcache_がありcachetagsますが、テーブルもあります。 cache_*キャッシュを手動でクリアする必要がある場合、D8のアドバイスはまだ切り捨てられますか?cachetagsテーブルと一緒にcache_*テーブルを切り捨てることは安全/必要/推奨ですか? contribモジュールが物事を異なる方法で行う可能性があることを知っています。私は主にコアが何をするか、そして一般的にDrupal 8の「ベストプラクティス」と見なされるものに興味があります。
13 8  caching 

3
hook_form_FORM_ID_alterでノードオブジェクトを取得する
この質問にフォローアップします が、コメントで説明を求めるのに十分な評判がありません。 寄稿されたモジュールをDrupal 8に移植しています。上記のCRおよび投稿で推測されたコードは機能していません。 $node = $form_state->getFormObject()->getEntity(); $ node変数には何もロードされません。 PHPStorm IDEがgetEntity()に対して警告を表示します。メソッド 'getEntity'がクラスDrupal \ Core \ Form \ FormInterfaceで見つかりませんless ...参照メソッドがサブジェクトクラスで見つかりません。 また、コード補完のためにこのメソッドを提示していません。 使用原因では、私は参照しています: use Drupal\Core\Entity; use Drupal\Core\Entity\EntityInterface; use Drupal\node\Entity\Node; use Drupal\Core\Render\Element;
13 8  forms 

6
403エラーの後に匿名ユーザーをログインフォームにリダイレクトする方法
匿名ユーザーが403エラーに遭遇した場合、匿名ユーザーをログインフォームにリダイレクトしたいと思います。 イベントサブスクライバーを作成しましたが、これが私のコードですが、現在のページでループが発生します。 /** * Redirect anonymous user to login page if he encounters 404 or 403 * response. * * @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $response * The created response object that will be returned. * @param string $event * The string representation of the event. * @param \Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher $event_dispatcher * Event dispatcher …
13 8  routes  redirection 

1
フィールドタイプ:テキストとロングテキスト
Drupal 7の「テキスト」と「ロングテキスト」の違いは何ですか? 単にデータベースの文字長である場合、入力値の可能性のあるドメインが正確にわからない状況では、注意してデフォルトでロングテキストを使用する方が良いでしょうか?
13 7  entities 

2
hook_preprocess_pageとhook_preprocess_htmlの違いは何ですか?
私は両方のことを確認hook_preprocess_page()してhook_preprocess_html()の実装ですhook_preprocess_HOOK()が、これを使用するときに私は理解していません。 hook_preprocess_page が最初に呼び出されますが、だれがそれを呼び出しているのかを理解するのにはあまり役立ちません。 debug_print_backtrace()出力を見ると、から呼び出されtheme()ていますが、実際には答えが得られません。 それは単に渡される配列によって定義されていdrupal_render()ますか?
13 7  theming 

4
プログラムでフィールドを更新する、hook_node_update
現在、ノードが作成または更新されるたびにフィールドを更新しようとしています。ただし、値はノード内に入力されていません。この特定のフックを使用してノードオブジェクトにアクセスできますか?何が欠けているのでしょうか? function vbtoken_node_update($node) { entity_get_controller('node')->resetCache(array($node->nid)); $types = node_type_get_types(); //What are the current Node Content Types? $yes = ($types['volunteer_project']->type); if($node->type === $yes){ $hash = md5($node->title . $node->nid . $node->nid); $hashed = substr($hash, 0, 6); $node = node_load($node->nid); $node->tcode[$node->language][0]['value'] = $hashed; node_save($node); watchdog('vbtoken', 'Added a new Token code to %nid', array('%nid' => …
13 7  entities 


3
drushまたはPHPmyadminからの集約を無効にする方法は?
私はこれを探していて、Drupal 7に関する取引をすべて見つけました。古いdrushコマンドdrush vset preprocess_js 0はDrupal 8では機能せず、DBの「変数」テーブルが8に存在しません... それでも、なんらかの理由でD8サイトの集約を無効にできず、drushまたはDBのいずれかからそれを無効にしたいと考えています。 方法を知っていますか?

2
PhpStormにdrupal {table} SQL構文を認識するように教える方法は?
私は、SQLクエリでいっぱいの本当に古いdrupalプロジェクトを扱っています。PhpStormのSQLの理解は非常に便利ですが、私はのようなドルパリズムに問題があり{table_name}ます。IDEは不平を言う<reference> expected, got '{'。 中括弧内の文字列が単なるテーブル名であることを理解するようにPhpStormを設定するにはどうすればよいですか?または、少なくとも中括弧を無視しますか?
13 database 


4
カスタムブロックにキャッシュコンテキストを設定する正しい方法は何ですか?
ページごとに固有でなければならないブロックがログアウトしたユーザーのものではないという問題に遭遇しました。問題は、カスタムフィルターを含むビュー検索ページにあるカスタムブロックプラグインです(公開されたフィルターのカスタム置換のようなものです。ブロックは/ admin / structure / blockを介して配置されます)。 Drupal 8について学んだことに基づいて、キャッシュコンテキストをビルドアレイに追加しました。 public function build() { $search_form = \Drupal::formBuilder()->getForm('Drupal\mymodule\Form\SearchForm'); return [ 'search_form' => $search_form, '#cache' => ['contexts' => ['url.path', 'url.query_args']] ]; } ただし、ログアウトするとブロックが最初のビューにキャッシュされ、URLが変更されてもブロックの新しいバージョンが表示されなかったため、これは正しくないようです。 問題の原因となっているのはビューページの可能性があると思いましたが、ビューページのキャッシュをオフにしても問題は解決しませんでした。 たとえば、preprocess_blockフックを使用して、問題をいくつかの方法で修正できました。 function mymodule_preprocess_block__mycustomsearchblock(&$variables) { $variables['#cache']['contexts'][] = 'url.path'; $variables['#cache']['contexts'][] = 'url.query_args'; } しかし、それは私が自分のブロックのビルド配列にキャッシュコンテキストを単に入れることができなかったことを気にしました。 私のブロックはBlockBaseを拡張しているので、特にコア内の一部のモジュールがこの方法で実行しているのを見たので、getCacheContexts()メソッドを試すことにしました。 public function getCacheContexts() { return Cache::mergeContexts(parent::getCacheContexts(), ['url.path', …
13 8  blocks  caching 

4
カスタムユーザーフィールドの値を取得する
カスタムユーザーフィールドのデフォルト値を表示する必要があるカスタムフォームがあります。フィールドは/ admin / config / people / accounts / fieldsの下に作成され、そのマシン名はfield_r_period_length_secです。 //get user $userCurrent = \Drupal::currentUser(); $uid = $userCurrent->id(); $r_period = $userCurrent->field_r_period_length_sec; ただし、値は表示されず、次のエラーが発生します。 通知:未定義のプロパティ:Drupal \ Core \ Session \ AccountProxy :: $ field_r_period_length_sec 何が悪いのですか?
13 users  8 

6
hook_form_alterを使用してフィールドを読み取り専用にする方法
編集モードでは、Drupalプロファイルフォームフィールドの一部を読み取り専用にしようとしています。hook_alterで次のコードを使用しています $form[field_organisation_company_name][und][0]['#after_build'][]='_build_element_readonly'; function _build_element_readonly($element, &$form_state) { $element['value']['#attributes']['readonly'] = 'readonly'; return $element; } UIでは、フィールドは読み取り専用として表示されますが、それでも、firebugとsaveを使用して値を変更できます。この動作を防ぐ方法はありますか?
12 7  forms 

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