Drupal

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

5
すべてのノード/フィールドリビジョンを削除するにはどうすればよいですか?
私は、ノードとフィールドのリビジョンを保持するdrupal 7サイトを持っています。誤って新しい障害バージョンが保存され、元に戻したい場合に備えて、リビジョンを保持しています。 しかし、今度はデータベースをクリーンアップして最適化し、ハードディスクのスペースを節約したいと思います。 サイトのすべてのノード/フィールドについて、現在のリビジョンを除くすべてのリビジョンを削除する方法は何ですか?
17 7  database  nodes 

5
開発中にサイトへのアクセスを制限する方法は?
新しいDrupal 7ベースのサイトを作成しています。 開発は、公的にアクセス可能なサーバーで行われます。私はマルチサイト環境で働いています。 許可されたユーザー以外のすべてのユーザーへのサイトへのアクセスを完全にブロックしたいと思います。サイト名、テーマなどへのアクセスを含む... 以前、同様のタスクにセキュアサイトを使用しました。HTTPレベルの認証を行い、認証に失敗すると403を返しました。D7バージョンはありません。 これを行う最も簡単な方法は何ですか?
17 7  users 

2
ノードが「公開」から「非公開」に変更されたことを検出するにはどうすればよいですか?
でhook_node_update()が更新されていた後、私は簡単に(それが公表されるかどうかにかかわらず)のノードの「状況」を伝えることができます。 ただし、更新されたノードが公開されたかどうかを確認する簡単な方法はありますか?(またはその逆)? ルールには「ノード値が変更された」などの条件があるかもしれないと思いますが、プログラムでこれを実行したいと思います。 drupal.orgでfago(ルールの開発者)がこの問題を見つけましたが、これはDrupal 7でこれに対処しているようですが、良い説明をいただければ幸いです。
17 7  nodes  entities  hooks 

3
フロントページのメインコンテンツブロックを削除する
私はDrupal 7を初めて使用main content blockし、フロントページのデフォルトを、Viewsから生成された同等のブロックに置き換えたいと考えています(そうすることで、ブロックをさらに制御できるようになります)。 ビューで新しいフロントページブロックを正常に生成し、コンテンツセクションに追加しましたが、ホームページには元のビューブロックと新しいビューブロックの両方が表示されます。 main content block表示しないように設定してを削除しようとしても機能し<front>ません。現在のところ、次のCSSのみが回避策として見つかりました。 .front #block-system-main { display:none; } 私は、ハックのようなソリューションを好まないでしょう。誰でも提案できますか?
17 7  views  blocks 


9
メニュー関係に基づいて子ノードのビューを作成するにはどうすればよいですか?
メニューツリーに次のページがあるとします。 プロジェクト プロジェクト1 プロジェクト2 プロジェクト3 プロジェクト(親)ページに埋め込まれ、子ページの写真、タイトル、およびテキスト(概要)を表示するビューを作成する方法を探しています。 親と子の間の関係は、メニューツリーで定義されます。 私はノード参照を使用できることを知っていますが、それは誰かがページを作成するたびに、メニュー関係とノード参照関係を定義する必要があることを意味します。 また、別のコンテンツタイプを作成できることも知っていますが、すべてのコンテンツページが同じように見えるため、これはやり過ぎだと思います。
17 7  routes  views  nodes 

2
すべてがdrupalページの実行時間に寄与するものは何ですか?
私は、memcacheを使用して、数と合計実行時間(3秒から230ミリ秒)の両方でクエリの数を減らすことができましたが、ページ実行時間は私を避けています開発によって出力された値を見て)私の理解は、ページ実行時間= phpの実行にかかる時間ですので、APCをインストールし、キャッシュされているphp opcodeとAPCコントロールパネルでヒットを示す統計を見ることができます(APCに付属のapc.php)ページの実行時間は短縮されません。だから、私の質問は2つあると思う: すべてがページ実行時間に貢献します(より遅くなります)。phpを実行するのにちょうど時間がかかりますか? ページの実行時間を短縮するには、どのようなアプローチをとるべきですか。APCを試しましたが、あまり役に立ちません このサイトで使用されているPSのモジュール数は膨大な数(168)ですが、現時点ではそのような推奨事項を立てる立場にはありません。 編集:ローカルインスタンスで実行されたxhprofの出力(mikeytownが推奨)、これはおかしいようです。後の結果はスラッシングによるものだと思いますか?同じURLに対するdiffの実行には大きな違いがあり、リソースの使用量が多すぎます。また、なぜ今日からではない値を示しているのか分かりません:| (このラップトップにxhprofをインストールしました)

4
同じ機能に複数のオプションがある場合、使用するモジュールを選択するにはどうすればよいですか?
基本的に同じ機能を提供する複数のモジュールを見つけることはまったく珍しいことではありません。たとえば、非常に類似した機能を提供するSPAM制御モジュールが多数あります(SpamicideやHidden CAPTCHAなど)。そして、同様のことを行う分類モジュールがたくさんあります。したがって、複数のモジュールが要件を満たしている場合、使用するモジュールをどのように選択すればよいですか?
17 7 

5
メニュー項目にアクセス条件を追加するにはどうすればよいですか?
メニュー項目が表示されるかどうかを決定する既存の条件の上に新しい条件を追加するにはどうすればよいですか?これらの条件は、アクセス許可の設定に限定されるべきではありません。 ユースケースの例として(必ずしもこの質問の理由ではありません):ユーザーが1つのノードのみを作成できるコンテンツタイプがあるとします。そのタイプのコンテンツを追加するためのメニュー項目があります。しかし、ユーザーが既にそのコンテンツタイプのノードを作成している場合は、メニュー項目を非表示にします。最初に考えたのは、現在のユーザーが作成した特定のコンテンツタイプのノードの存在を確認するクエリを実行することです。存在する場合は、メニュー項目を非表示にします。 このタイプの機能はhook_menu_alter()、そこに必要なロジックを追加する必要があると思います。しかし、ユーザーがその種類のコンテンツを作成する権限を持っているかどうかを確認するなど、既存のチェックをバイパスせずにそれを行う方法がわかりません。自分の条件にそのロジックを含める必要がありますか?または、既存のアクセスロジックを上書きせずに追加できますか? 編集:「コンテンツタイプのノードを1つだけ作成するようにユーザーを制限するにはどうすればよいか」という質問に集中する人もいます。ここでの質問ではありません。問題は、メニュー項目にカスタムアクセス条件を追加する方法です。
17 routes 


3
「Drupal呼び出しはクラスでは避け、代わりに依存性注入を使用する必要があります」
私のモジュールでは、指定されたURLのURLエイリアスを取得するための以下のコードを使用しています: $alias = \Drupal::service('path.alias_manager')->getPathByAlias($_POST['url']); しかし、私のモジュールで自動レビュー(http://pareview.sh/)を実行すると、次の警告が表示されます。 16 | 警告| \ Drupal呼び出しはクラスでは避け、代わりに依存性注入を使用する必要があります 依存性注入を使用して上記のコードを更新するにはどうすればよいですか?クラスコード全体を以下に示します。 <?php namespace Drupal\my_module\Controller; use Drupal\Core\Controller\ControllerBase; /** * MyModule Class defines ajax callback function. */ class MyModule extends ControllerBase { /** * Callback function for ajax request. */ public function getUserContent() { $alias = \Drupal::service('path.alias_manager')->getPathByAlias($_POST['url']); $alias = explode('/', $alias); $my_module_views …




2
デッドロックとロックタイムアウトタイプの問題を取り除く方法は?
複数のブログを読んで、グーグルで検索しようとしましたが、解決策に満足していませんでした。次の問題があります。 PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction: DELETE FROM {cache_field} WHERE (cid LIKE :db_condition_placeholder_0 ESCAPE '\\') ; Array ( [:db_condition_placeholder_0] => field\_info:% ) in cache_clear_all() (line 163 of \includes\cache.inc). PDOException: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction: …

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