Drupal

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

5
利用可能なパブリックメソッドを見つけるにはどうすればよいですか?
Drupal 8を使用する上での最大の問題は、必要なデータを取得できないことです。Drupal 8は、オブジェクトを手動でドリルダウンするのではなく、パブリックメソッドを使用することを望んでいます。問題は、使用可能なメソッドのリストを取得するための一貫した方法を理解できないことです。(それらは魔法のように存在し、私はそれらについて知っているだけのように思われます)= この例では、ビデオフィールドを持つコンテンツタイプがあるとします。そのフィールドで動画ファイルの生のURLを取得する必要があります。 したがって、ノードID($ nid)から始め、どういうわけかノードをロードする方法を理解する必要があります。たくさんの例があるので、これは悪くないです。だから私はのようなことをし$node = \Drupal\node\Entity\Node::load($nid);ます。 ここまでは順調ですね。次に、ビデオフィールド(field_main_video)の値を取得する必要があります。'ネットの周りに矛盾するドキュメントがあるので、これは私が理解するのに永遠にかかりました。最後に、私は次のようなことをしなければならないことを理解しました(これは複数値アイテムであるため)。 $video = \Drupal\node\Entity\Node::load($nid)->field_main_video->getValue(); ...次に、配列などをループします。kintを使用しても、これを見つけるのに役立ちませんでした。たとえば、kint($node)メソッドの下を見ると、getValue()がアイテムとして表示されていないからです。それを理解するのに十分な例が周りにあったので、それでもひどくはありません。 しかし、さらに深く見ていくと、ビデオフィールドのエンティティIDを取得してエンティティをロードし、エンティティ内の「uri」フィールドを見つけるのではなく(これは重要な部分です)、知りませんでした。私はD7にいます):この同じコード行ですべてのURIを取得できるメソッドがありました! $url = \Drupal\node\Entity\Node::load($nid)->field_main_video->entity->getFileUri(); しかし、どうすればこのgetFileUri()が存在することがわかったのでしょうか。 たまたまブログの投稿で偶然見つけました。これにより、D7よりもURIを簡単に取得できるようになります。 結局、この例で私が求めているのは、オブジェクトの各レベルのすべてのパブリックメソッドを、読みやすく理解しやすい方法でどのように見つけるかです。 手動でapi.drupal.orgを検索したり、IDE固有の何かを使用したりするのではなく、これを行うにはdrupal中心(つまり、開発モジュール)の方法があるはずです。
9 8  entities 

1
「システムのタイムゾーン設定に依存するのは安全ではありません。」
最近のログメッセージレポートで次のエラーが見つかりました。 警告:DateTime :: createFromFormat():システムのタイムゾーン設定に依存するのは安全ではありません。date.timezone設定またはdate_default_timezone_set()関数を使用する必要があります。これらの方法のいずれかを使用してもまだこの警告が表示される場合は、タイムゾーン識別子のスペルを間違えている可能性があります。現時点ではタイムゾーン「UTC」を選択しましたが、date.timezoneを設定してタイムゾーンを選択してください。Symfony \ Component \ HttpFoundation \ Response-> sendHeaders()内(/var/www/drupal/drupal-8.1.1/vendor/symfony/http-foundation/Response.phpの331行目)。 私のサイトにはカスタムモジュールが含まれていますが、私の知る限り、呼び出す日付関数はだけですtime()。Drupalはタイムゾーン設定を処理すべきではありませんか? この関数がどこから呼び出されているのかを特定する方法はありますか? これは大きな問題ではありませんが、ログの不要な警告を最小限に抑えたいと思います。
9 8 

4
ユーザーIDからユーザー名を取得するにはどうすればよいですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 9か月前に閉鎖。 ユーザーIDだけを知っているユーザー名を印刷したい。どうすればこれを達成できますか?
9 users  8 

4
Element :: children()のような小枝の子要素をループします。
PHPでレンダリング可能な配列を処理する場合、Element :: children()を使用して、#プロパティではなく下位のレンダリング可能な要素(フィールドセット内のフォームアイテム、フィールドウィジェット内のアイテムなど)にアクセスできます。たとえば、file.moduleの次のスニペット: <?php if ($element['#multiple']) { foreach (Element::children($element) as $name) { // ... } } ?> Twigテンプレートで同じことをするにはどうすればよいですか?すると、など{% for child in element %}も含まれます。#type#cache
9 8  theming 

2
モジュールをアンインストールするときにすべての変数を削除する最良の方法
私はいくつかの変数(コンテンツタイプごとに3つ、4つの変数など)を書き込むモジュールを作成しています。 hook_uninstallでそれらを削除するには、どの方法を使用すればよいですか? 「mymodule_ *」変数を検索してクエリを実行しても安全ですか? または、コンテンツタイプと検索変数をループする必要があるので、variable_delを何度も呼び出しますか?

6
Drushがインストールされ、実行されています。URIを指定してもDrupalサイトが見つかりません
多くの試練と苦難の後、私はすべての準備ができていると思いました。多くの興奮。しかし、その後、喜びはありません... Drushが機能しています。サイトはMAMP経由で正常に動作します。いずれにせよ、「drush cc all」コマンドは以下を返します。 No Drupal site found, only 'drush' cache was cleared. [warning] 'all' cache was cleared. [success] この質問はdrupalconの参加者と非常に経験豊富な開発者を困らせました。何か案は? MAMP(無料)バージョン3.0.5を使用しているMac OS 10.9.3を使用しています。 ここに私のdrushステータスがあります: Drupal version : 7.29-dev Site URI : http://default Database driver : mysql Database hostname : localhost Database username : db_user Database name : db_name PHP executable …
9 7  drush  mamp 


6
WYSIWYG + CKEditorがHTMLクラスを削除しないようにする
CKEditorでWYSIWYGエディターを使用しています。「ソース」ビューから要素にカスタムクラスを追加すると、ソースビューから切り替えるときにCKEditorがそれらのクラスを取り除きます。 これに対する解決策を探しているときに、CKEditorを単独で使用する場合の修正方法を説明するCKEditorモジュールのページを見つけました。(基本的に、config.allowedContent = true高度なコンテンツフィルター設定でJS構成を設定する必要があります)。 ただし、WYSIWYGを介してCKEditorを使用する場合、これらの設定は管理インターフェースで公開されません。WYSIWYGを介してCKEditorを使用する場合、同じことをどのように実現しますか? PS:CKEditorはメディアプラグインと統合されていないため、単独では使用できません。
9 7  wysiwyg 

2
既存のフィールドに追加のフィールドフォーマッタを作成するにはどうすればよいですか
既存のフィールドタイプ用の新しいフィールドフォーマッタを記述したいと思います。既存のフォーマッタを置き換えたくありませんが、新しいオプションを提供します。 または、私はtheme_preprocess_field()を使用して小さな変更を行う方が良いですか?しかし、これは維持するのが難しいようです。コンテンツエディターのオプションを(およびGUIで)開いたままにしたいと思います。 誰かがこれを行う適切な方法の例を私に指摘できますか?
9 entities 

1
Drupal 6検索モジュールのダブルID [終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? Drupal Answersのトピックとなるように質問を更新してください。 4年前休業。 現在、貸衣装のウェブサイトで忙しい。このWebサイトはW3Cで検証されている必要があります。ダブルIDのサイトの検索ページに問題がありました: <div class="form-item" id="edit-keys-wrapper"> <label for="edit-keys">Enter your keywords: </label> <div class="container-inline"><div class="form-item" id="edit-keys-wrapper"> <input type="text" maxlength="255" name="keys" id="edit-keys" size="40" value="" class="form-text" /> </div> ID:id="edit-keys-wrapper"2回登場!これはW3Cで許可されていません。 クリーンなDrupal 6.28をダウンロードしてインストールし、テーマエラーではないことを確認しました。 この「問題」に対するパッチはありますか?そうでない場合、コアを台無しにせずにこれを修正するための最良のオプションは何ですか?
9 search 

2
「コンテンツが表示されます」のルールイベントをティーザービューの除外から設定する方法
「コンテンツが表示されました」イベント中に実行されるルールを設定し、アクションはシステムメッセージを表示することでした。 それが機能し、ノードを表示したときにトリガーされました。しかし、ホームページに移動すると、N回トリガーされました。ここで、Nは/ nodeページ上のノードの数です。 これを防ぐにはどうすればよいですか?ルールはコンテンツ全体のビューのみを通過し、ティーザービューを除外する必要があります。
9 rules  nodes 


3
ユーザーがパスワードを変更したかどうかを確認するにはどうすればよいですか?
パスワードが変更された後、ユーザーに基本的な通知メールを送信して、パスワードの変更を通知したいと考えていました。 Rulesそのためにモジュールを使用しています。しかし、ユーザーがパスワードを変更した場合の条件を追加するオプションは見つかりません。 ユーザーがルールを使用して、または実用的にパスワードを変更したかどうかを確認できる方法はありますか? -お時間をいただきありがとうございます。
9 7  users  rules 

1
NginxでクリーンURLを有効にするにはどうすればよいですか?
Drupal 7.xを使用しています。クリーンなURLがなくても機能するようになりました。 調査したところ、次のコードを使用して各drupalサイトの仮想ホストを作成し、クリーンなURLを有効にする必要があることを理解しました。 if (-e $ REQUEST_FILENAME) { rewrite ^ / (. *) $ / index.php? q = $ 1 last; } または、このコードを使用することもできます。 location / { [... ] error_page 404 = @ drupal; [... ] } location @ drupal { rewrite ^ (. *) $ / index.php? q = $ …
9 7  uri  nginx 

1
フックがDrupalによって呼び出されない
モジュールを開発していますが、追加しているフックはDrupalから呼び出されません。複数のフックで発生します。 フックのドキュメントを読みましたが、これが発生する理由を説明するものは何も見つかりません。正しいパラメーターを使用していて、正しい値を返していることを確認しました。 何が悪いのですか?不足しているものはありますか?
9 hooks 

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