Drupal

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

6
nodeidを取得するには?
ページのURLからの情報を使用せずに現在のページのDrupalでノードIDを取得する方法 すなわち: if(arg(0)=='node' && is_numeric(arg(1))){ $nid = arg(1); } 上記のアプローチは使いたくありません。
7 nodes 

4
JavaScriptへの値の送信
Drupalでフォームのテーマハンドラーを設定しました。このハンドラーにはテンプレートファイルがあります。そのインクルードファイルでPHPからJavaScriptに値を送信する最も簡単な方法は何ですか?


1
$ promotion-> apply($ order)が機能しない
クーポンコードを入力したいので、注文は自動的に作成され、クーポンコードも注文に適用されます。 注文は正常に作成されますが、$promotion->apply($order)機能しません。 上の画像にあるように、クーポンコードを含むプロモーションがありますZ-8FDA5A218B44。条件セクションでは、このプロモーションはと呼ばれる製品に限定されていますMonthly。 ユーザーがクーポンコードを入力すると、注文と、私の製品(月次)を含む注文アイテムが自動的に作成される引き換えフォームを作成したいと思います。(下の写真) クーポンコードを含むクーポン利用フォームを送信するとわかるように、注文が作成されますが、注文にもクーポンコードを適用したいと思います。 これが私のコードです: namespace Drupal\my_subscription\Form; use Symfony\Component\DependencyInjection\ContainerInterface; use Drupal\Core\Form\FormBase; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Session\AccountProxy; use Drupal\commerce_product\Plugin\Commerce\Condition\OrderItemProduct as OrderItemProductCondition; use Drupal\commerce_order\Entity\Order; use Drupal\commerce_product\Entity\ProductVariation; /** * Class RedemptionForm. * * @package Drupal\my_subscription\Form */ class RedemptionForm extends FormBase { /** * Drupal\Core\Session\AccountProxy definition. * * @var \Drupal\Core\Session\AccountProxy */ protected $currentUser; public …
6 8  commerce 

2
Xdebug / PhpstormでDrushスクリプトがブレークポイントで停止しない
私は別のDrupal VMでこれを機能させていましたが、何らかの理由でそれをもう機能させることができません。Drush移行スクリプトをデバッグしようとしていますが、いくつかのブレークポイントが設定されていますが、ブレークポイントで停止しません。ここに示す手順に従いました。 Vagrantのconfig.ymlのXdebugセクションは次のとおりです。 # XDebug configuration. XDebug is disabled by default for better performance. php_xdebug_default_enable: 1 php_xdebug_coverage_enable: 1 php_xdebug_cli_enable: 1 php_xdebug_remote_enable: 1 php_xdebug_remote_connect_back: 1 php_xdebug_remote_host: xxx.xxx.xx.xx // My Vagrant IP is really here. # Use PHPSTORM for PHPStorm, sublime.xdebug for Sublime Text. php_xdebug_idekey: PHPSTORM php_xdebug_max_nesting_level: 256 Webサーバーのデバッグ検証により、すべてが良好であることが示されます。また、ブラウザーからアクセスしたページをデバッグすると、ブレークポイントで停止するため、確実に機能することも確認しました。 また、PHP CLIにはXdebugがあります。 PHP …

2
フロントページのみのライブラリーのロード
サイトのホームページにのみJavaScriptをロードしたい。この前処理関数を見つけましたが、ホームページ用にカスタマイズする方法がわかりません。 function mytheme_preprocess_maintenance_page(&$variables) { $variables['#attached']['library'][] = 'mytheme/cuddly-slider'; } 私は当初、必要なライブラリをサイトのすべてのページに含めていましたが、ホームページにのみ必要なので、これを理解する必要があります。 もともとは.info.ymlファイルに次のようにありました: libraries: - 'themename/library' どんな助けでもありがたいです。
6 8  javascript 

2
複数値フィールドのgetvalue()は最初の値のみを返します
フィールド管理ユーザーページに新しいフィールドを追加しました。これは、サンプルの複数値フィールドです。(複数の整数を入力できます) 管理者ユーザーのプロファイルを編集しました。このフィールドにいくつかの値を追加(および保存)しました。 42 66 23 77 カスタムモジュールで、現在のユーザーを読み込んで、整数の複数値フィールドのすべての値を表示します。 // Load the current user. $user = \Drupal\user\Entity\User::load(\Drupal::currentUser()->id()); // Get field data from that user. $mycustomfield = $user->get('field_mycustomfield'); しかし、$ mycustomfield-> getValue()を出力すると、最初の値のみが取得されます。 // Display values kint($mycustomfield->getValue()); // return only 42, but I want get 42, 66, 23, 77 カスタムフィールドのすべての値を取得するにはどうすればよいですか? ありがとう:) 編集 私はこれを試します... // Load …
6 8  entities 

1
ビューで使用されるajaxは前処理フックを呼び出しますか?
たくさんのフィールドがあるビューがあり、それらのフィールドを次のようにスタイリングしています: views-view-fields.html.twig 私の.themeファイルでは、前処理関数を使用して上記のテンプレートに追加の変数を渡しています。 function theme_preprocess_views_view_fields(&$vars) { $vars['my_var'] = 'hello'; } したがって、twigテンプレートでは、次のようなことができます。 {% for field in fields -%} {{my_var}} {%- endfor %} これは、最初にロードされたフィールドのチャームのように機能しますが、[さらに読み込む]をクリックするか、公開されたフィルターを使用してビューをフィルタリングすると、ロードされた他の要素にはmy_varがなくなります。 ここで、my_varをテンプレートファイルに直接「キンティング」します。Ajaxで読み込まれた他のすべての要素ではmy_varがNULLであることを確認しました。これにより、問題は、theme_preprocess_views_view_fieldsが1回呼び出され、ページが初めて読み込まれ、Ajax呼び出しから完全に無視されることにあると思いました 。 この前処理は、Drupalがビュー自体で実行しているAjax呼び出しによって呼び出されて処理されるべきではありませんか? そうでない場合、他の要素がロードされたときにDrupalにクエリを実行してこのフックを再実行する方法はありますか? ありがとう!
6 views  theming  8  ajax 

1
フォームAPI画像プレビュー
でのfapiでの画像プレビューに関する多くの議論を読みました'managed_file'が、D8でこれを適切に行う方法について決定的な答えを見つけることができません。 明白な解決策はを再利用することですがDrupal\image\Plugin\Field\FieldWidget\ImageWidget、これを達成する方法がわかりません。 だから私の質問は、D8のフォームに画像プレビュー付きの画像アップロードフィールドをどのように持つことができ、buildForm関数の連想配列はどのようになるのでしょうか。
6 8  forms  media 

4
タイトルと代替テキストを画像に自動的に追加しますか?
私のサイトでは、ユーザーはコンテンツと画像もアップロードできます。 私の目標は、ユーザーがサイトにコンテンツをアップロードするときに、画像も含めることです。コンテンツのタイトルは、画像のタイトルと画像の代替テキストにもなります。現在、コア画像フィールドを使用しています。 それをすべて達成できる方法またはモジュールはありますか?
6 7  media 

4
どのようにしてMakeファイルにDevモジュールを含めますか?
Drushのmakeファイルを使用して、サイト開発を自動化しています。 このチュートリアルに従って、 DrushでMakeファイルを作成しました。 メイクファイルを実行したときを除いて、すべてが正常に動作しますが、Drushはモジュールの開発バージョン(Devバージョンを使用したモジュールの場合)が見つからないと言っています。 このチュートリアルによると、これはモジュールのGitアドレスとリビジョンIDを指定する必要があるためです。どうやってやるの? 私がとったステップ たとえば、Fencesモジュールの7.x-1.x-devリリースを含めたいとしましょう。この開発モジュールは2013年9月30日にリリースされました。 プロジェクトページには、[すべてのリリースを表示]というオプションがあります。ただし、このページでは、2013年9月30日付けのリリースはありません。プロジェクトページには、プロジェクトのGitページへのリンクもあります。ただし、最新の更新は15か月前だったため、しばらく更新されていないようです。 この開発モジュールのGitアドレスを見つけるにはどうすればよいですか?それをメイクファイルに含める別の方法はありますか?

3
フルサイトパスでDrushコマンドを実行する方法
Drushを動作させようとしています。端末に「drush」と入力すると、コマンドのリストが表示されるので、インストールされていることがわかります。 パスエイリアスをまだ設定していないので、フルパスを使用しようとしています。端末に次のように入力すると: cd path-to-my-site drush dl views 私はこのメッセージを受け取ります: unknown:omegav3 my-user-name$ サイトへのパスをベースパスにする必要がありますか?私はローカルでMAMPを使用しています。私はルートフォルダーに含まれていない別のサイトを持っているので、ターゲットにしようとしているこのサイトのローカルURLは次のとおりです http://localhost:8888/omega/omegav3/
6 drush 


5
カスタムフィールドラベルを翻訳する方法
カスタムフィールドのラベルと説明をオランダ語に翻訳したいのですが、何をしようとしても常に英語(作成に使用する言語)のままにしておきます。なぜ機能しないのかわからないので、以下の手順が理にかなっているといいのですが。 (サイトの言語を英語に設定して)フィールドをプロファイル(プロファイル2モジュールを使用)またはアカウントに直接作成します。 次に、フィールドを編集し、翻訳ボタン(i18nのフィールド翻訳で提供)を使用してオランダ語の翻訳を追加します。しかし、サイトの言語をオランダ語に切り替えても、フィールドのラベルと説明は英語のままです。 (サイトの言語をオランダ語に設定したまま)フィールドを再度編集すると、翻訳タブにオランダ語の翻訳が表示され、ステータスがオリジナルと英語で「niet vertaald」または翻訳されていません。オランダ語の翻訳を編集すると、英語版が表示されます。 これを再びオランダ語のテキストに変更すると、正しく表示されます(オランダ語で)。いいですが、サイトを英語に戻してもフィールドはオランダのままです。フィールドを編集すると、翻訳タブにオランダ語のテキストが英語で表示されますが、英語のステータスは元に戻ります。 これの表と裏は作れません。私は何かを完全に欠落していますか、これはおそらくバグですか?私はDrupal 7を使用しています。
6 7  entities  i18n-l10n 

2
ルールで日付をフォーマットする
ノードの作成時にメールを送信するルールを使用しています。Action and Message bodyの下に、[node:field_calendar_date]を挿入します。トークンは(たとえば)電子メールメッセージで「2012-12-14T08:00:00」に置き換えられますが、「12月14日金曜日の午前8:00」(同じ日付ですが、別の形式)。 format_date()を試してみましたが、うまくいきません。 必要な形式を取得するにはどうすればよいですか?

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