如何显示/编辑视图的机器名称?


18

如何显示/编辑视图的机器名称?

问原因是我尝试克隆视图,但是给我的名称被拒绝了,因为它已经被使用了,但是我看不到哪里。

Answers:


16

您可以导出视图,更改值,删除原始视图并重新导入视图。

视图列表页面中有一个导入选项。只要将此网址粘贴到当前网址之后,您就会看到导入视图页面。通过查看您的标签,我假设您正在使用Drupal 7,因此下面给出的url仅适用于Drupal 7。

以下是要添加的网址:

#overlay=admin/structure/views/import

导出视图:

  1. 转到/ admin / structure / views

  2. 在“操作”列下,单击箭头,然后选择“导出”

  3. 复制代码并在外部编辑器中进行编辑/更改

  4. 转到/ admin / structure / views / import并导入更改的视图您可以先在导入设置上删除现有视图或选择“如果存在相同名称的视图,则替换现有视图” –


您能解释一下导出视图的过程吗?
niksmac

快捷方式
monymirza

/ admin / structure / views / import
Zdenko Vujasinovic

1
@ nikhil-m导出视图:1.转到/ admin / structure / views 2.在“操作”列下,单击箭头并选择“导出”。3.复制代码并在外部编辑器中进行编辑/更改4.得到了/ admin /结构/视图/导入和导入更改的视图您可以首先在导入设置上删除现有视图或选择“如果存在相同名称的视图,则替换现有视图”
Zdenko Vujasinovic

+1将此更改为可接受的答案,因为它可以完全回答我的问题:1.查看计算机名称,然后2.编辑它。我也喜欢这种解决方案,因为它只需要最少的代码和设置即可(无需编写代码,也无需依赖)。此外,还显示了如何导出视图本身-我认为这对于Drupal站点的自动构建(使用drush,drush make),源代码管理以及快速从现有视图中创建相似视图非常有用。谢谢!
therobyouknow 2012年

9

我认为您不能更改视图的计算机名称,至少不能在UI中更改。如果将鼠标悬停在“编辑链接”上,则可以在URL中看到计算机名称。


我会检查一下。
therobyouknow 2011年

+1并接受@mototribe,这有效。可惜他们不能永久显示它,而不必悬停。
therobyouknow 2011年

更新:很好的部分解决方案-谢谢-我将接受的标志移到了另一个答案,该答案提供了更改计算机名称的解决方案。
therobyouknow 2012年

6

您可以使用新的计算机名称克隆它。

更新:如何显示视图的计算机名称。
您可以使用以下代码在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的视图列表页面中按机器名称搜索视图。为此,您应该在视图设置中打开标志“在视图列表上显示过滤器”。


1
问题是,“如何显示/编辑视图的计算机名称?”
kiamlaluno

+1 @kiamlaluno。kalabro我很惊讶需要一些自定义代码才能实现这一目标。
therobyouknow 2011年

这是一次调试代码,您可以运行该代码以查看视图。标准视图列表中没有包含视图的machine_name的列。而且,没有包含所有视图的DB表,因为某些视图存储在代码中。
kalabro 2011年

4

$page["#views_contextual_links_info"]["views_ui"]["view_name"] -通过使用此变量,您可以获得视图的计算机名称。


0

您可以更改的的名称在该领域views_view数据库中的表。并非总是最好的主意,因为您最终可能会破坏对站点中某些部分(例如面板)中的块/页面的引用。


糟糕的建议,这将破坏您的网站。
丹尼·英格兰

如果您很聪明,请更换块/窗格/等,不然。和克隆一样多的工作
Mark Cameron

0

我不认为一旦创建视图,您就不能更改它的机器名称,而发现机器名称根本就不直观。我想这可能是因为唯一需要机器名称的人是程序员和相当高级的高级用户,他们可以处理一些混淆问题,以使界面对于其他所有人来说更容易理解。

要查找视图的机器名称,只需转到视图列表,然后将鼠标悬停在该行的任何部分上。不必是编辑按钮。这不是官方的JavaScript鼠标悬停,因此您的浏览器可能选择以不同于我所见的方式呈现它,甚至根本不呈现它。在这些情况下,您可以查看HTML源代码,您会注意到在查看的视图行的标记中,有一个title属性,其内容类似于。

如果要在视图内显示计算机的名称,那会容易一些。那是在视图编辑界面的Advanced块中。它在某处,并被标记为“ machine_name”,因此没有任何特殊的技巧可以发现它。与视图的计算机名称不同,您可以更改此名称。

那么,如果您需要更改视图的计算机名称怎么办?好吧,您可能对数据库不满意,并手动对其进行编辑以在使用该数据库的任何地方更新计算机名称,但是在我看来,这太麻烦了。有一种简单得多的方法。只需克隆您的视图并为其提供您真正想要的机器名称即可。克隆后,您可以删除计算机名称错误的原始计算机。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.