Drupal

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

3
プログラムでフィールドの値を更新する
ノードが更新されたときに、ノードフィールドの値を更新したい。 ここで言及したコードを使用して、ノードDrupal 8をプログラムで更新してみました use Drupal\node\Entity\Node; function hello_world_entity_presave(Drupal\Core\Entity\EntityInterface $entity) { $check = \Drupal::routeMatch()->getParameter('node'); if ($check) { $node = Node::load($check->nid->value); $node->title->value = 'testing'; //set value for field $node->save(); } } しかし、うまくいきませんでした。ノードの保存後に500エラーが表示されます。また、ifステートメントを取り出してノードIDを指定してみました$node = Node::load(1); Drupal 8でプログラムでノード/エンティティを更新することも試しました use Drupal\node\Entity\Node; function hello_world_node_update(Drupal\node\NodeInterface $node) { $node = Node::load(1); $node->set("title", 'New value'); // also tried $node->setTitle('The new …
14 8 

3
page.html.twigまたはnode.html.twigで現在のノードタイトルを表示するにはどうすればよいですか?
page.html.twigに現在のノードタイトルを表示したい場合(デフォルトではnode.html.twigでのみ使用可能と思われます)、次のような前処理関数を作成する必要があります。 function theme_preprocess_page(&$variables, $hook) { // Set our page title so we can access it in page.html.twig if ($node = \Drupal::routeMatch()->getParameter('node')) { $variables['my_node_title'] = $node->title->value; } } そして、page-title.html.twigを現在のテーマフォルダーにコピーし、すべてコメント化して上書きする必要があります。 これは「正しい」とは思えません。もっと良い方法はありますか?
14 theming  8 

5
エンティティからバンドルラベルを取得する方法
ロードされたエンティティからバンドルの人間が読めるラベルを取得するにはどうすればよいですか。 私は、バンドルのノードのラベルを取得したいとしましょうmy_articleである「私の素晴らしい記事を」 // Load a node $node = Drupal::entityManager()->getStorage('node')->load(4); print $node->bundle(); // prints the machine-readable name. e.g. 'my_article'. print $node->getEntityType()->getBundleLabel(); // prints 'content type'. バンドルの機械可読名またはエンティティのラベル(「コンテンツタイプ」、「分類用語」など)のみを取得できますが、バンドルのラベルを取得するにはどうすればよいですか? PS非推奨のクラス/関数を使用しないほうがいい
14 8  entities 

5
特定のページがキャッシュされるのを防ぐにはどうすればよいですか?
Drupal 8サイトでキャッシュをアクティブにしましたが、もちろんすべてのページは期待どおりにキャッシュされます。 ただし、特定のページでそのキャッシュをバイパスするようにします。 私のコントローラーでは、次のようにページを作成しました。 public function myPage() { return [ '#markup' => time(), ]; } Drupalにページをキャッシュしないように指示するにはどうすればよいですか?
14 caching  8 

1
共有ホスティングのDrupalサイトに最適なユーザーとアクセス許可レベルは何ですか?
Drupalサイトでは、アクセス許可とセキュリティについて詳細に説明していますが、共有ホスティングへの参照はあいまい/不明確です。Drupalの観点から、共有ホスティングのサイトで最も安全なセットアップ(所有権と許可レベル)は何ですか? 私が探している種類の情報の例として、WordPressは次の共有ホスティング設定を提案しています。 すべてのファイルは、httpdプロセスに使用されるユーザーアカウントではなく、実際のユーザーのアカウントによって所有される必要があります。 グループの所有権は、Webサーバープロセスのアクセス許可チェックに関する特定のグループ要件がない限り、無関係です。これは通常そうではありません。 すべてのディレクトリは755または750である必要があります。 すべてのファイルは644または640である必要があります。例外:サーバー上の他のユーザーが読み取れないように、wp-config.phpは600である必要があります。 ディレクトリをアップロードする場合でも、ディレクトリを777に指定しないでください。phpプロセスはファイルの所有者として実行されているため、所有者のアクセス許可を取得し、755ディレクトリにも書き込むことができます。
14 files 

2
ターミナルでadmin / reports / dblogを表示する方法(cli)
開発中は、すべてのdrupalログメッセージが表示される専用の画面が本当に好きです。Macまたは* nixで作業して新しいターミナルウィンドウを作成し、ログファイルでtail -fを実行すると、本当に便利です。だから私はapache error.logでtail -fを行うことができますが、admin / reports / dblogに表示されるdrupalログを表示したいのですが、どこで見つけることができますか、端末画面に出力できるようにしますもしそうならどのように?

1
Drupal管理者設定フォームでコールバックの送信を使用するにはどうすればよいですか?
私はこのコードを使用して管理フォームを作成しています: function custom_orders_admin(){ $form = array(); $form['custom_ignore_terms']['ignore_terms'] = array( '#type' => 'checkboxes', '#title' => t('Don\'t display these'), '#default_value' => variable_get('custom_ignore_terms', array()), '#options' => drupal_map_assoc($termTypes), '#description' => t("Choose the terms you do not want displayed."), '#required' => FALSE, ); return system_settings_form($form); } しかし、私はこれを行うと気づきます: function custom_orders_admin_submit($form, &$form_state) { exit(var_dump($form_state)); } 終了できません。これはsystem_settings_form()、送信の面倒を見るからだと思います。コントロールを取り戻すにはどうすればよいですか?その_submitハンドラーでカスタム処理を行う必要があります...
14 7  forms 

3
親と子の分類用語を表示する方法は?
次のような語彙があります。 親1 子供1 子供2 子供3 親2 子供1 子供2 次に、ビューを使用して、親用語とその子用語のリストを作成したいと思います。Views UIでこれを実行しようとしましたが、親という用語のみを表示します...子の用語は表示しません。私にとって非常に混乱しています。 誰でもこのケースを手伝うことができますか?ありがとう



7
プログラムでブロックを配置しますか?
Drupal 7を使用しています。現在、Webサイトのヘッダーにメインメニューナビゲーションと言語切り替え機能があります。CMS> Structure> Blocksに移動し、ヘッダー領域にブロックをドラッグして、それらを配置しました。 これらのブロックをプログラムでヘッダーに配置するにはどうすればよいですか?
14 7  blocks 

3
複数の値を持つエンティティフィールド条件でクエリを実行する
ユーザーがそのフィールドに複数の分類用語を追加できるエンティティ参照フィールドを持つコンテンツタイプがあります。そのフィールド内に特定の分類用語のセットを持つノードを取得するクエリを実行しようとしています。 そのフィールドで1つの値を使用すると、うまく機能します。 $query = \Drupal::entityQuery('node') ->condition('status', NODE_PUBLISHED) ->condition('type', 'custom_type') ->condition('custom_taxonomy', 2) ->sort('field_last_name', DESC); ここで、2は検索する用語のIDです。ただし、そのような2つの特定の用語を含むノードを検索しようとすると、 $query = \Drupal::entityQuery('node') ->condition('status', NODE_PUBLISHED) ->condition('type', 'custom_type') ->condition('custom_taxonomy', [2,8]) ->sort('field_last_name', DESC); エラーが表示されます 無効なパラメーター番号:バインドされた変数の数がトークンの数と一致しません: 私も試みました $query = \Drupal::entityQuery('node') ->condition('status', NODE_PUBLISHED) ->condition('type', 'custom_type') ->condition('custom_taxonomy', [2,8], 'IN') ->sort('field_last_name', DESC); これは失敗しませんが、意図した結果を提供しません。これは、どちらかの用語2持っているすべてのノードが表示さOR代わり項2の期間8 と意図される用語8を。ノードのエンティティ参照フィールドに複数の特定の値があるかどうかを確認するクエリを実行するにはどうすればよいですか?
14 8  entities  database 

3
匿名ユーザーをログインページにリダイレクトする
ユーザーがログインせずに、REST VIEWSルーター以外の Webサイトのページにアクセスしたい場合、Drupal 8のログインページにリダイレクトしますが、Drupal 7のこのソリューションは見つかりましたが、Drupal 8のソリューションは見つかりませんでした 匿名ユーザーをログインページにリダイレクトする ルールモジュールを使用して匿名ユーザーをログインページにリダイレクトする方法


4
Drushでコンテンツタイプのリストを取得するにはどうすればよいですか?
drushで既存のコンテンツタイプリストを取得するにはどうすればよいですか?これにより、リストをすばやく作成できます。 私が試した: $ drush @d6 @sites genc --types しかしdevel_generates、このためにモジュールを有効にする必要があります。 コマンドgencを実行するには、devel_generateモジュールを有効にする必要があります。
14 drush 

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