Drupal

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

2
多言語コンテンツをCSVからDrupal 8に移行する方法
私は読んでから来た新しいDrupalの8移行APIを使用して/モジュールおよびコンテンツ移行:Drupalの8へのCSV移行を作成するためのプロセスは非常に明確で、その作品が、私はどのように多言語サイトに移行するコンテンツに見つけることができません。移行APIの概要私はこれについての情報を見つけることができません。 では、どうすれば多言語コンテンツを移行できますか? 更新: 私は例を見つけました:https : //github.com/drupal/drupal/tree/8.3.x/core/modules/migrate/tests/modules/migrate_external_translated_test 今のところ、英語のコンテンツは移行できましたが、翻訳は移行できませんでした。

3
メニューリンクのタイトルを変更するにはどうすればよいですか?
私のウェブサイトでは、ユーザーは時間の経過とともにいくつかの「ポイント」を収集できます。いくつかのリンク(「ホーム」、「プロファイル」、「ログアウト」など)を含むトップバーメニューがあります。メニュー項目「プロファイル」を変更し、現在接続しているユーザーが所有するポイントを追加したい。 私はいくつかのフックを試しましたが、私が望んでいたものを得るのにほぼ成功しましたhook_link_alter()。 function mycustommodule_link_alter(&$variables) { if ($variables['text'] == "profile") { // Do some work. $variables['text'] = $variables['text'] . " (you have $nb_points points)"; } } (を使用してdrush cr)キャッシュをクリアしました。メニュー項目に必要な値が表示されます。ただし、なんらかの理由で値が変更された場合は、古い値が表示されます。値を更新するには、常にキャッシュをクリアする必要があります。 ユーザーから獲得したポイントが変わるたびにメニュータイトルを更新するためにキャッシュを消去しないようにするにはどうすればよいですか?

1
Drupal 8でキャッシュをクリアするワイルドカードの方法は?
Drupal 7では、これを行うことができました。 cache_clear_all('state:', 'cache', TRUE) これは、文字列で始まるキャッシュビン全体を削除しますstate:(state:infoおよびなどの一致するキャッシュID state:nebraska)。 https://www.drupal.org/node/1272696の変更レコードは、Drupal 7の例でこの使用例を示していますが、実際にD8でそれを複製する方法の例を提供していません。 キャッシュタグを使用することになっているようですが、これは単純なユースケースを考えると、より高価な変換のようです。CacheBackendInterfaceに適用される一致するメソッドはありません。これは、キャッシュビン内のすべてのアイテムを削除することではなく、deleteAll()で明確にカバーされていることに注意してください。
8 8  caching 


3
ノードのタイトルにノードのNIDを埋め込むにはどうすればよいですか?
Automatic Nodetitlesモジュールが存在することは知っていますが、これはDrupal 7専用です。 [送信]をクリックしたときにタイトルにNIDを自動的に割り当てる方法はありますか?NIDは、送信ボタンが押されるまで存在しないことを知っています。タイトルにNIDを埋め込むにはどうすればよいですか? どのフックを使用しますか?
8 8  hooks  nodes 


1
Drushで複数の文字列を翻訳する方法は?
Drupalで複数の文字列を翻訳したい場合は、format_plural()関数を使用できます。 Drushコマンドをプログラミングしている場合は、dt()関数を使用して文字列を翻訳できますが、Drushで複数の文字列を翻訳したい場合は、これを実行する関数ですか?

4
module_existsとfunction_existsをどのように決めるのですか?
私はmodule_existsモジュールでの使用と、次のような状況での使用に精通しています。 サイトで他のモジュールも使用できる場合は、モジュールでいくつかの追加機能を有効にします。予約:メールモジュールは例が含まれているその中に示すように、(実際にはこの例の多くがあります)モジュールのソース:(電子メールの本文に)トークンを使用するようにする必要があり、トークンモジュールが有効になっています。 「テーマにモジュールの依存関係を実装し、テーマにモジュールをパッケージ化する方法」への回答に示されているように、テーマにモジュールの依存関係を実装します。 ただし、「Hook.infoでJavaScriptライブラリの依存関係を宣言することはできますか?」function_existsの回答に示されているようなものもあります。 を使用することfunction_existsは、に比べてより堅牢な(安全な)アプローチであるという印象がありますmodule_exists。特に、(新しいバージョンのモジュールに追加された)いくつかの関数が利用可能であることを確認したい場合は、を使用するだけでmodule_exists、次のようなエラーが発生する危険性があります。 サイトがされている場合、まだ使用して古いその機能を持っていない、モジュールのバージョンをまだ(あなたがそれを使用しようとするべきではありませんので、 まだ)。 サイトがすでに新しいバージョンのモジュールを使用している場合、そのモジュールにはその機能はありません(したがって、もう使用し ないでください)。 私の質問:一般的な基準、または長所/短所は何ですか、いずれかを使用するために決定する module_exists対function_exists?

2
メニューリンクを変更するためのhook_translated_menu_link_alter()に相当するものは何ですか?[重複]
この質問にはすでに回答があります: レンダリングする前にメニューリンクのアクセスを変更する (3つの回答) 先月休業。 Drupal 8のメニューリンクを変更したいのですが、Drupal 7ではを使用してこれを実現できhook_translated_menu_link_alter()ます。 function module_translated_menu_link_alter(&$item, $map) { global $user; if (!empty($item['access'])) { // Administrator will access all menu's. if (strpos(current_path(), 'admin/structure/menu/manage/' . $item['menu_name']) === 0 && user_access('administer menu')) { return; } // If userid is equal to menu user id. if ($user->uid == 1) { $access …
8 8  routes 

3
テンプレートファイルを上書きするよりもパフォーマンスの高い代替手段はありますか?
ビューで不要なマークアップをたくさん取り除く必要があります。一般的には、テーマのテンプレートファイルを上書きすることで実現しますが、今回はビューが非常に大きくなり、パフォーマンスが低下します。マークアップを削減するためのより高性能な方法があるかどうか、私は疑問に思いましたか?ノードのマークアップを変更する場合、前処理機能の方がテンプレートファイルを上書きするよりも高速ですが、ビューに類似のメカニズムはありますか? 編集1:確かに、パフォーマンスが低下する理由は、そもそもテンプレートファイルを上書きすることではありませんが、そこで少し最適化できる場合は、それを実行する必要があります。さらに、ビューのUI自体でマークアップを無効にすることで、定期的に問題が発生します。たとえば、Omegaサブテーマを使用すると、行スタイルの無効化は無視されます… 編集2:ビュー UI 内の可能性を認識しています。私が探しているのは、細かく制御できる手動の方法です。
8 views  theming 

2
機能と構成管理
私はDrupal 8サイトを構築しています。構成管理または機能を使用して構成をエクスポートし、プロファイルに含める必要がある場合は、常に調査を行っています。あるサイトから別のサイトに構成管理を使用して構成をエクスポートおよびインポートするには、サイトが同じUUIDを持っている必要があります。それは、それらがお互いのクローンでなければならないことを意味します。これを達成するには2つの方法があります。 同じUUIDを取得するために、あるサイトから別のサイトにDBを複製します プログラムでUUIDを変更して、構成のUUIDと一致させる 作成するサイトには独自のプロファイルがインストールされており、私の意図は、構成または機能をプロファイル内に保持することです。私はすでにプロファイルインストールを作成しましたが、UUIDに依存しない方法で構成を含める必要があるため、次のことができます。 プロファイルインストールを使用して新しい開発環境を起動する 新しい機能を開発する プロファイルの新しい機能をエクスポートする それを製品に展開し、サイトを再インストールせずに新しい機能を適用します 構成をエクスポートしてプロファイルに追加するにはどうすればよいですか?構成管理を使用してUUIDを手動で削除する必要がありますか、それともフィーチャーを使用してプロファイルに追加する必要がありますか? 機能モジュールを使用して、機能の宛先を設定できません。すべての機能をprofiles / my_profile / featureに配置したいと思います。作成すると、宛先を設定できないため、モジュール/カスタムに保存されます。私は手動でmodules / customからprofile / my_profile / featuresに移動しました。更新した場合、移動した機能は更新されませんが、modules / customの下に同じ名前の新しい機能が作成されます。カスタム宛先を設定するにはどうすればよいですか?

2
プログラムでデフォルトのテーマを設定する方法
インストールプロファイルを作成しようとしています。カスタムテーマを有効にして、インストール後にデフォルトで設定したいと思います。 MYPROFILE.info.ymlに追加しています... theme: - my_theme ...十分ではありません。これはインストールするだけですが、デフォルトのテーマとして設定されていません。 私はMYPROFILE.installファイルで何か他のことをする必要があると思います function MYPROFILE_install() { // how to set as default my custom theme } ありがとうございました

1
プログラムで時間型フィールドを設定するにはどうすればよいですか?
カスタムコンテンツエンティティタイプを作成します。 イベント時間に1つのフィールドが必要です。 時間フィールドはありませんが、dataTime_typeがあるため、カスタムフィールドのプラグインを作成します。 FieldType:TimeItem.php /** * Plugin implementation of the 'time' field type. * * @FieldType( * id = "time", * label = @Translation("Time Field"), * description = @Translation("Permet la creation d'un champ de type time"), * default_widget = "time_widget", * default_formatter = "time_formatter" * ) */ /** * {@inheritdoc} …


3
リンクのテーマを設定するにはどうすればよいですか?
Drupal 7ではこれが可能でした。 $link = array( '#type' => 'link', '#title' => t('My Title'), '#href' => 'node/1', ); drupal_render($link); しかし、私はこれをDrupal 8で試しましたが、何も出力しません。 $link = array( '#type' => 'link', '#title' => t('test'), '#url' => 'node/1', ); drupal_render($link); Linkプラグインを直接呼び出さずにリンクをレンダリングしたり、独自のテーマ関数を作成したりする方法はありますか? レンダー配列を出力する必要があるフィールドグループフォーマッターのテーマを設定しています。 の使用drupal_render()は非推奨であり、直接呼び出すことはできません。ここでは、例をわかりやすくするために使用しています。
8 theming  8 

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