Drupal と Civicrm は初めてです。私が使用している CMS は Drupal です。civicrm ナビゲーション メニューのいくつかのメニュー項目を削除しました。civicrm の元のナビゲーション メニューを復元したいと考えています。管理 -> データと画面のカスタマイズ -> ナビゲーション メニュー -> メニュー項目の追加のようなオプションがあります。しかし、ここでの問題は、新しいアイテムがいくつかのリンクの子として追加されていることです。すべてのナビゲーション メニューをインストール後の状態に戻したいと考えています。
2 に答える
CiviCRM メニュー項目はすべて、CiviCRM データベースの civicrm_navigation テーブルにあります。次の方法でそれらを再設定できるはずです(大規模に行ったことはありませんが、原則は同じです)。実際のサイトに変更を加える前に、サイトのコピーでこれを試してください。
データベースをバックアップします。深刻な作業を行っているため、ロールバックが必要になる場合があります。
CiviCRM のインストールに使用されるクエリを見つけます。それらは、sites/all/modules/civicrm/sql/civicrm_data.mysql の 18847 行目あたりから見つかります (「INSERT INTO civicrm_navigation」の最初の行が表示されます)。civicrm_navigation に挿入される最後のクエリから、次の 500 行ほどをコピーします。4.4.4 では、
INSERT INTO civicrm_navigation ( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight ) VALUES ( @domainID, 'civicrm/report/list&reset=1', 'All Reports', 'All Reports', 'access CiviReport', '', @reportlastID, '1', 1, 10 );
これをテキスト エディタに貼り付けます。各行に「@domainID」が含まれていることがわかります。これらは、インストールされているドメインを参照します。ほとんどの場合、これは「1」になりますが、civicrm_domain を調べて、唯一のドメインが ID 1 であることを確認してください。
検索と置換を実行し、@domainID のすべてのインスタンスを 1 (またはドメイン ID が何であれ) に置き換えます。(途中で他の値が設定および使用されることもわかります。これらにより、ネストが確実に機能します。)
次に、civicrm_navigation テーブルを空にして、MySQL でクエリを実行します。これにより、テーブルに適切にデータが入力されるはずです。
最後に、CiviCRM でメニュー キャッシュを再構築する必要があります。これを行うには、http: //yourdevsite.org/civicrm/menu/rebuild ? reset=1にアクセスしてください。
これが適切に機能したと仮定して、本番サイトで手順 1 ~ 6 を繰り返します。
CiviCRM は Drupal CRM を使用しているため、Drupal メニュー項目または特定のメニュー ブロックの場所を変更している可能性があります。
デフォルトのテーマを Garland や Seven などに変更してテストします
([sitename]/admin/appearance)
ナビゲーション(またはその他の)メニューブロックのリージョンを変更します
([sitename]/admin/structure/block)