Drupal

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

2
パブリックパスディレクトリを取得する
プログラムでパブリックパスにファイルを保存したいと思いますPublic Directory path。また、Drupal 8で取得する方法を知りたいのですが、Drupal 7では、次のコードを使用します。 drupal_realpath(file_default_scheme() . '://') Drupal 8で同等のものは何ですか?
8 8  files 


2
エンティティ参照のオートコンプリートリストにタイトルとともにノードIDを表示する
Entityreferenceフィールドのオートコンプリートウィジェットにこの機能を追加して、ドロップダウンリストのタイトルの横にノードIDを表示します。このアイデアの背後にある理由は、同じタイトルを持つ複数のノードを区別するためです。 例: これはタイトルです(3) これはタイトルです(2) これはタイトルです(1) 選択するとノードIDが表示されることはわかっていますが、ノードIDに基づいて適切なノードをすばやく選択するために、ドロップダウンリストに表示したいです。
8 7  views  nodes  entities  ajax 

2
TwigのURIからスタイルURLの画像を取得する
4k4のおかげで、最終的にフィールドテンプレートで元の画像URIを取得することができました。 item.content['#item'].entity.uri.value と {{ file_url(item.content['#item'].entity.uri.value) }} 元のファイルのURLを取得します。 私は画像スタイル情報を持っています item.content['#item']['#image-style'] その「媒体」が要求されている PHPソリューションはすでにここで利用できますが、TWIGでこれを行うにはどうすればよいですか ここで8.1のフィルターを作成する試みがいくつかありますが、それは現在私には役立ちません。
8 theming  8  uri  media 

3
/ admin / configページへのリンクの追加[終了]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 3年前休業。 Drupal 8のモジュールを作成する方法を学んでいます。多数の基本的なチュートリアルを読みましたが、/ admin / configページへのリンクの追加について話しているチュートリアルを見たことはありません。 具体的には、WEB SERVICESエリアの下にリンクを追加したいと思います。
8 8 

3
D7で別のユーザーをプログラムでログアウトするにはどうすればよいですか?
私たちのサイトには、クライアントアカウントがあり、それぞれにそのアカウントに属するスーパー管理者とサブユーザーがいます。 特権管理者がサブユーザーにログアウトを強制できるようにしたい。セッション情報がRedis、Memcache、またはデータベースのどちらに保存されているかに関係なく機能するDrupalでユーザーのセッションを破棄する最良の方法は何ですか? 誰かがuser_logout()を提案するように誘惑される前に、それは現在のユーザーのセッションを破壊します。現在のユーザーが別のユーザーのセッションを破棄できるようにしたいのですが。
8 sessions  users 


3
単一のルートパラメータのスラッシュ、または動的な数のパラメータを持つメニューテールを処理する他の方法
Symfonyのドキュメントによると、以下のように定義されたルートは、/hello/bobとの両方に対して指定されたコントローラーをトリガーする必要があります/hello/bob/bobby: _hello: path: /hello/{names} defaults: { _controller: \Drupal\mymodule\Controller\Main::Controller } requirements: _access: 'TRUE' names: .+ param へ/hello/bob/bobbyのリクエストの場合、{names}"bob / bobby"(スラッシュはそのまま)であり、それを複数の変数に分割するか、単一の文字列のままにするかは、コントローラー次第です。そのトリックは、その{names}パラメーターをフィルターするために使用される変更された正規表現( "。+")です。 このstackoverflowの投稿は、カスタムregexを使用してルートパラメータでスラッシュを許可できることも意味します(少なくともSymfony 2では)。 Drupal 8.0.0-beta15に対してこれを試しても機能せず、指定されたコントローラーはへの要求に対してのみトリガーされます/hello/bob。しかし、私はこれがあることを確認することができますに使用し、以前のベータ版での仕事(私は〜beta13までだと思います)。 DrupalがSymfonyルーティングコンポーネントと統合する方法に、これを説明するような変更がありましたか?おそらく、ルーティングパラメータでスラッシュを渡す別の方法がありますか?コアでSymfony 3.0への動きがあることは知っていますが、それが説明できるかどうかはわかりません。 また、ルートサブスクライバーが動的ルート構造を管理できることも知っています。ただし、私が取り組んでいるケースでは、基本パスの最後にほぼ無限の組み合わせ/数の動的パラメーターが必要です(ただし、コントローラーで解析するのは簡単です)。また/hello?names[]=bob&names[]=bobby、この場合はクエリ文字列(など)を回避しようとしています。 主に、Symfonyのドキュメントとの切断について混乱しています。 その他の注意事項 この質問を投稿した後、私はD8コア・キューにこの議論を発見しました:[ディスカッション]ドロップが追加の引数を渡すの自動化:Y / N。「メニューテール」サポート(基本的に私が求めているもの)は正式にD8で廃止されると結論付けているようです。その議論は3年前に終わったので、より一般化された実装の詳細の一部は最近まで完全に実現されていなかったと推測できます(〜beta13)。これが、この変更に気づいたのはなぜかを説明しているのかもしれません。 Drupal(Symfonyではない)が、symfony固有のルーティングロジックがルート(およびparam固有の正規表現など)をさらに分析する前に、スラッシュで区切られた生のリクエストに基づいて404応答を生成していると思います。この場合、上記の手法が機能しなくなった理由を説明できます。ただし、クエリパラメーターとカスタムルートサブスクライバーの使用を回避する、このニーズに対処する別の方法があるかどうかはまだ疑問です。
8 8  routes 

2
プログラムで既存のモジュールのルールを更新する正しい方法は何ですか?
カスタムモジュールの更新を提供したいと考えています。これには、を介して提供されるいくつかのルールもありますhook_default_rules_configuration。 これらの既存のルールを更新するにはどうすればよいですか?再インポートできますか?どういうわけかそれらをオーバーライドしますか?ドキュメンタリーまたはそれぞれのフックでこれについて何も見つけることができません。 更新されているルールに応答するためのフックがあるようですので、カスタムルールの更新を提供する方法が必要だと思います... 最初はhook_default_rules_configuration_alterだと思っていましたが、JSONをインポートしたいだけなので、期待どおりに動作しないようです。 たとえば、ビューを使用.incするとviews_save_view 、この質問のようにすべてのファイルをロードして保存できます-ルールに同様の方法はありませんか?

3
時刻に基づいてホームページを変更するにはどうすればよいですか?
私はこれについて高低を検索しました。時刻に基づいてホームページを変更するにはどうすればよいですか?完全に明確にするために、私は欲しい: 午前8時から午後7時-ホームページ1(node / 4) 午後7時から午前8時-ホームページ2(ノード/ 5) だから私は二つの完全に異なるホームページをデザインしたいのですが、それらは時間帯に応じて変化します。 私はいくつかのコードを試しましたが、それはうまくいかないようです: $current_front = variable_get('site_frontpage'); if($current_front== 'node/4'){ variable_set('site_frontpage','node/5'); }else{ variable_set('site_frontpage','node/4'); } 注:私はコードの専門家ではないので、どこからフックを開始すればよいかわからないので、自分のモジュールを作成するのには数百万年もかかります。
8 nodes 

1
どこにレンダリングしますか?前処理またはテンプレート?
コーディングパフォーマンスは常に改善されており、すべてのページの読み込みを監視して、Webサイトでの読み込み時間を最適化しています。 上記のステートメントを念頭に置いて、レンダリング可能な配列をどこにレンダリングすればよいかという疑問に遭遇しました。 それらをプリプロセッサーでレンダリングする場合、変数を出力するだけなので、テンプレートはかなりきれいに保たれます。 プリプロセッサ: function template_preprocess_node__faq(&$variables) { $node = node_load($variables['nid']); $node_style = node_view($node, $variables['view_mode']); $faq_sets = array( '#theme' => 'my_module_faq_set', '#sets' => $variables['field_faq_set'], ); $variables['faq_image'] = render($node_style['field_faq_image']); } テンプレート: <div class="faq_image"> <?php print $faq_image; ?> </div> ただし、これが変数を前処理して出力する適切な/最速/最も近い方法であるかどうかはわかりません。 Drupalもこの問題で構成されていないと思います...デフォルトのnode.tpl.php変数ではレンダリングされますが、他のデフォルトのテンプレート(などhtml.php.php)では、変数が出力されるだけです。 誰もがこの問題に最もクリーンで最速の方法で取り組む方法に関するルールやいくつかのヒントやアドバイスを持っていますか?

1
フィールドを作成するための日付、日付(ISO形式)、日付(Unixタイムスタンプ)の基本的な違い
フィールドタイプDate(Unix timestamp)としてフィールドを作成しました。 上記で作成したフィールドに入力値を含むコンテンツを編集すると、以下のようなエラーが表示されます: PDOException: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'field_reprisal_date_value' at row 1: INSERT INTO {field_data_field_reprisal_date} (entity_type, entity_id, revision_id, bundle, delta, language, field_reprisal_date_value) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6); Array ( [:db_insert_placeholder_0] => node [:db_insert_placeholder_1] => 258985 [:db_insert_placeholder_2] => 245170 [:db_insert_placeholder_3] => embedded_video [:db_insert_placeholder_4] => 0 …
8 datetime 

1
composer経由でパッケージをインストールする方法?
drupal 7カスタムモジュールにライブラリを追加したいと思います。ライブラリはcomposer経由でインストールできますが、インストールの解決策が見つかりませんか?このライブラリをインストールするにはどうすればよいですか?「コンポーザーマネージャー」をインストールしましたが、まだ実行できません。

1
D8のテーマでプログラムによって連絡先フォームをレンダリングする方法
横方向の連絡フォーム(フィードバック)をカスタムブロックまたは他のページ(/ contact(例、frontpage))に個別に表示するにはどうすればよいですか? 私はこのコードを試しましたが、機能していません(連絡先フォームエンティティですか?): // get default form // get the entity object $default_form = \Drupal::config('contact.settings')->get('default_form'); $entity = \Drupal::entityManager()->getStorage('contact_form')->load($default_form); // get view builder // render view $view_builder = \Drupal::entityManager()->getViewBuilder('contact_form'); $full_output = $view_builder->view($entity);
8 8  entities  theming  emails 

5
1日に3回ノードを公開する方法は?
Viewsモジュールで作成された非公開ノードのリストがあります。タスクを1日に3回、指定した時間に実行したい。タスクが実行されるたびに、リスト上のノードの1つだけが公開されます。これどうやってするの? 私が試した手順 スケジューラー スケジューラモジュールを使用すると、ノードが公開されることはしたい正確な時刻を指定する必要があります。これにより、各ノードが公開されることになっているときに計算する必要があるため、複雑になります。 一括操作+ルール+ルールスケジューラの表示 ビューは、Operationsバルクモジュールを、あなたがにさらされているノードのリストを作成することができますルールモジュールを。その後、ルールはリストに作用し、ノードをリストに公開できます。特定の数のノードのみを公開するようにルールに指示できます。 これは完全に機能します。ただし、ルールを1日に3回実行するようにスケジュールすることはできません。 ルールをメインサイトのCronジョブにリンクできますが、Cronジョブが3回以上実行される可能性があるため、これはあまり正確ではないようです。 ルールスケジューラモジュール(ルールのサブモジュール)がありますが、これをルール条件に使用できるようには見えません。また、実行時間を指定する方法がないようです。 ジョブスケジューラ これにより時間を設定できますが、ルールやビューと統合されていないようです。
8 views  nodes  rules 

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