ビューのマシン名を表示/編集するにはどうすればよいですか?
質問の理由は、ビューのクローンを作成しようとしたが、指定した名前はすでに使用されていたために拒否されたため、どこにあるのかわかりませんでした。
ビューのエクスポート、値の変更、元のビューの削除、ビューのインポートを行うことができます。
ビューリストページにインポートオプションがあります。このURLを現在のURLの後に貼り付けるだけで、インポートビューページが表示されます。タグを確認することで、Drupal 7を使用していると想定しているため、以下のURLはDrupal 7。
追加するURLは次のとおりです。
#overlay=admin/structure/views/import
ビューをエクスポートするには:
/ admin/structure/viewsに移動します
「操作」列の下の矢印をクリックして、「エクスポート」を選択します
コードをコピーして外部エディターで編集/変更
/ admin/structure/views/importに移動し、変更されたビューをインポートする最初に既存のビューを削除するか、インポート設定で[同じ名前のビューが存在する場合は既存のビューを置き換える]を選択します–
少なくともUIでは、ビューのマシン名を変更できないと思います。 「リンクの編集」の上にマウスを置くと、URLにマシン名が表示されます。
新しいマシン名でクローンを作成できます。
更新:ビューのマシン名を表示する方法。
このコードを使用して、Drupalインストールですべてのビューのリストを表示できます:
$views = views_get_all_views();
// Optional: views objects are big so unset large members
foreach ($views as $machine_name => $view) {
unset($view->display, $view->localization_plugin);
$views[$machine_name] = $view;
}
// Print array keyed by views machine name
dpm($views);
このコードはdevel/php
ページで実行できます( Devel モジュールが必要)。
マシン名でキー付けされたビューの印刷された配列があり、失われたビューを見つけることができます。
更新:ビューリストビューページDrupal 7.でマシン名でビューを検索できます。これを行うには、 [ビューの設定]の[ビューのリストにフィルターを表示する]フラグ。
$page["#views_contextual_links_info"]["views_ui"]["view_name"]
-この変数を使用すると、ビューのマシン名を取得できます。
いったん作成したビューのマシン名を変更して、マシン名を見つけることはまったく直感的ではないと思います。これは、マシン名が必要なのはプログラマーと、他の誰にとってもインターフェースを理解しやすくするために難読化を処理できるかなり高度なパワーユーザーだけであるためだと思います。
ビューのマシン名を見つけるには、ビューリストに移動し、行の任意の部分の上にマウスを置きます。編集ボタンである必要はありません。これは公式のJavaScriptマウスオーバーではないので、ブラウザは、私が見ているのとは異なる方法でレンダリングするか、まったくレンダリングしないことを選択する可能性があります。このような場合、HTMLソースを確認すると、表示しているビュー行のタグに、のようなタイトル属性があることに気づくでしょう。
ビュー内のディスプレイのマシン名が必要な場合は、少し簡単です。これは、ビュー編集インターフェースのAdvancedブロックにあります。それはどこかにあり、「machine_name」というラベルが付いているため、それを明らかにする特別なトリックはありません。ビューのマシン名とは異なり、これは変更できます。
では、ビューのマシン名を変更する必要がある場合はどうしますか?まあ、データベースを使いこなして手動で編集して、使用されているすべての場所でマシン名を更新することもできますが、これは私の意見ではあまりにも面倒です。はるかに簡単な方法があります。ビューを複製して、本当に欲しいマシン名を付けます。それが複製された後、間違ったマシン名を持つ元のものを削除できます。
データベースのviews_viewテーブルのnameフィールドのvalueを変更できます。パネルなど、サイトの一部でブロック/ページへの参照を壊してしまう可能性があるため、常に最良のアイデアとは限りません。