Drupal

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

3
hook_init()はまだ使用されていますか?使用されなくなった場合、hook_init()を実装するコードをどのように変換しますか?
Drupal.orgのAPIに見ると、私はそれに気づいhook_init()が変更レコードを見るとDrupalの8のために文書化されていない、私が見つかりました。ブートストラップは、もはや存在しフックしないためのポイント、すべての「ブートストラップ」のフックを取り除く、ブートストラップフックをであると言われているhook_boot()とhook_exit()、何も言われていませんhook_init()。 Drupal 8のソースでhook_initを検索したところ、次のコードが見つかりました。1つ目はhook_init()、コメントへの参照です。他の2つはhook_init()実装のように見えますが、どちらも私が予期していないパラメーターを受け取ります。 function overlay_enable() { if (strpos(current_path(), 'admin/modules') === 0) { // Flag for a redirect to <front>#overlay=admin/modules on hook_init(). $_SESSION['overlay_enable_redirect'] = 1; } } /** * Implements hook_init(). */ function phptemplate_init($template) { $file = dirname($template->filename) . '/' . $template->name . '.theme'; if (file_exists($file)) { include_once DRUPAL_ROOT . '/' …
10 8  hooks 

3
管理メニューとしてのカスタムメニュー
カスタムメニューを取得して管理メニューのように表示するモジュールはありますか? カスタムメニューを作成して、それを管理メニューのように表示したい(一部のロールのみ)。 私はいくつかのモジュールを試しましたが: 管理メニューでは、表示するメニューを選択できませんが、管理者用のデフォルトメニューと「編集者」およびその他のカスタムロール用のカスタムメニューを表示したい スーパーフィッシュやニースのメニューでは、管理メニューとは異なり、ページの上部にメニューを配置できません。 別の解決策は、ページの上部にブロックを配置するモジュールであり、修正されたため、「単純な」スーパーフィッシュメニューを使用できましたが、このようなものは見つかりませんでした。 主な質問は、「デフォルト」の管理メニューではなく、カスタムメニューを使用できないことです。
10 routes 

4
書き換えられたフィールドに基づいてビューをソートするにはどうすればよいですか?
2つの異なる日付フィールド(1つは日付の繰り返し、もう1つは複数値の単一の日付)を含むコンテンツタイプのビューがあります。常に1つの日付フィールドのみが入力されます。ビューの表示では、最初の日付フィールドを非表示にし、2番目のフィールドを書き換えて、1番目と2番目の置換トークンを含めて、2つのフィールドを結合しています。書き換えられたフィールドを使用して、この結合された日付フィールドに基づいてビューを昇順に並べ替える方法はありますか?日付フィールドの元の値に基づいてソートされているようです。 私は自分の調査を行い、古い、やや関連のある、行き止まりのあるスレッドのみを見つけました。 書き換えられたフィールドでソートするビュー? テーブルは、書き換えられたフィールドではなく、元のフィールドでソートされます ビュー:並べ替え条件のカスタムフィールド グローバル:カスタムテキストで並べ替えます。出来ますか? これを実現する新しい方法または卑劣な方法があることを願っていました。
10 views 

5
翻訳された用語名をtidで取得する方法は?
私が探している加工方法にする翻訳用語名を取得することによってtid。 次のコードは、元の用語名を返しますが、翻訳は返しません。 global $language; $lang_name = $language->language; // en $term_id = 788; $term = i18n_taxonomy_term_get_translation($term_id, $lang_name); 「翻訳された分類用語をプログラムで取得する方法」で提供されているほとんどの例は、Drupal 7では機能しないようです。

3
Drupalの特定のページに表示するブロックを表示する方法は?
モジュール砂漠について考えてみましょう: ページ1:- deserts/* ページ2:- deserts/*/* page3:- deserts/*/*/* ダイナミックなコンテンツ... 私は3つのブロック、すなわちa、b、cを持っています: ブロックaはページ1にのみ表示されます ブロックbはpage2にのみ表示されます ブロックaはpage3にのみ表示されます その制限はどのようにすべきですか?
10 blocks  7 

2
Drupalマスター/スレーブレプリケーション
drupalデータベース用にマスター/スレーブレプリケーションを備えた2つのMySQLサーバーをセットアップし、データベースが同期して複製されていることを確認しました。 私は今、基本的にフェイルオーバー/冗長性の目的で両方のデータベースをdrupalに向けようとしています。つまり、プライマリデータベースサーバーを再起動する必要がある場合、サイトを停止させたくありません。(読み取り専用にすることは、障害シナリオの間は許容されます) 次の記事に基づく。私はsettings.php次のように変更しました: $databases['default']['default'] = array( 'driver' => 'mysql', 'database' => 'sdrupal', 'username' => 'drupal', 'password' => 'topsecret', 'host' => 'masterdb.ptp.local', ); $databases['default']['slave'][] = array( 'driver' => 'mysql', 'database' => 'sdrupal', 'username' => 'drupal', 'password' => 'topsecret', 'host' => 'slavedb.ptp.local', ); マスターをシャットダウンする(mysqldサービスを停止する)まで設定は問題ありません。そうすると、サイトが起動します。 PDOException:SQLSTATE [HY000] [2013]「初期通信パケットの読み取り」でMySQLサーバーへの接続が失われました。システムエラー:drupal_is_denied()で111(/www/includes/bootstrap.incの1895行目)。追加 PDOException:SQLSTATE [HY000] [2013]「初期通信パケットの読み取り」でMySQLサーバーへの接続が失われました。システムエラー:dblog_watchdog()で111(/www/modules/dblog/dblog.moduleの行141)。 これを機能させるコツは何ですか?



2
エンティティの前処理関数を定義する方法
私のカスタムモジュールは、EntityAPIControllerクラスを拡張するカスタムエンティティを定義します。私はそれを基本的に機能させることができました。つまり、カスタムtpl.phpファイルを介してフィールドなどを表示しました。しかし、私はカスタム変数をtpl.phpファイルに追加するためのmymodule_preprocess_entity関数を作成したいと思います(ここで提案されています)。しかし、そのような関数は実行されていません(呼び出されていません)。 また、このエンティティを表示するとtemplate_preprocess_entity(&$variables)、entity.module の関数も実行されていないことに気付きました。 呼び出されるカスタムエンティティの前処理関数を作成するには、他に何を定義する必要がありますか?
10 7  theming  entities 

4
正規URLにhttpを使用させるにはどうすればよいですか?
このページでは、メタタグモジュールを使用して、正規のメタタグを表示します。構成では、[current-page:url:absolute]トークンを使用します。これは正常に機能しますが、問題は、ページがHTTPまたはHTTPSのどちらでアクセスされるかにかかわらず、このプロトコルが正規URLで使用されることです。 SEOの目的では、正規URLを同じにして、両方のプロトコルでHTTPを使用する必要があります。 どうすればこれを達成できますか?
10 uri  meta-tags 

3
新しいモジュールを、正常に機能させるために必要なDrupal 7の最小バージョンに依存させるにはどうすればよいですか?
まったく新しいモジュールを開発しています(まだ使用しているサイトはありません)。hook_taxonomy_term_view()Drupalコアバージョン7.17で導入されたフックを使用するため、特定のDrupalバージョンが必要です。 たとえば、Drupal 7.16または以前のバージョンのDrupalコアを使用しているサイトでモジュールが有効にならないようにしたい。Drupalのより高いバージョン(7.17以上)で問題ありません。 私の質問:モジュールを最小にするDrupal 7.17バージョンにモジュールを依存させるにはどうすればよいですか? 注:モジュールが既にインストールされているサイトのソリューションは必要ありません(心配する必要はありません)。したがって、このような7.17より前のDrupalバージョンでは、なんらかの方法で無効にする必要はありません。
10 hooks 

2
カレンダーポップアップでクリックできる日をカスタマイズする
Drupal 7でフォームAPIを使用してフォームを作成しています。現在、次のコードで通常のカレンダー入力フィールドを作成できます。 $form['services_tab']['schedule_datepicker'] = array( '#title' => t('Pick the desired date'), '#type' => 'date_popup', '#date_year_range' => '0:0', '#date_format' => 'Y-m-d', '#prefix' => '<div id="datepicker-schedule">', '#suffix' => '</div>', ); 現在、美しいカレンダーポップアップを表示できます。私が達成しようとしているのは、次のようなルールに基づいて特定の日付を有効または無効にすることです。すべての土曜日と日曜日を無効にします。または、祝日のリストに基づいて特定の日付からクリック状態を削除する... これはPHPコーディングで実現できるものですか、それともjQueryで実行する必要がありますか?jQueryが解決策である場合、私はそれを行う方法についてのヒントをいただければ幸いです...カレンダーはテーブルですが、テーブルセルには、ルールに基づいてそれらを見つけて無効にするのに役立つIDまたは何かがありません。 .. ありがとうございました。
10 forms  datetime 




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