【问题标题】:Create a page to edit all fields from a custom content type (D7)创建一个页面以编辑自定义内容类型的所有字段 (D7)
【发布时间】:2011-11-29 17:21:27
【问题描述】:

我有一个自定义内容类型,它有一个名为 [stock] 的自定义字段

我希望有一个页面显示列表中的所有节点 [stock] 值,并允许我更改值。这可能吗?

任何建议将不胜感激

【问题讨论】:

标签: drupal drupal-7 cck


【解决方案1】:

好吧,我本来打算为此编写一个模块,但像往常一样使用 Drupal 有人打败了我!

您应该下载并安装Views,以及(坦率地说非常棒)Slick Grid module。它提供了一种视图类型(Slick Grid),它将创建一个目录,并为字段启用内联编辑。对于更复杂的字段类型,它提供了一个用于编辑的模式弹出窗口。

我花了 10 分钟创建了一个具有以下输出的视图,这让我可以通过双击单元格直接在表格中编辑字段:

当您再次单击编辑单元格时,内容会自动保存到数据库中,并且全部通过 AJAX 处理,使用起来非常愉快。

您可以在网格中添加任意数量的字段,所以我认为这正是您所追求的 :)

【讨论】:

  • 我只是得到一个空白框。有任何想法吗?似乎对这个模块没有任何帮助。
  • 我的错,我没有将库目录保留为“slickgrid”......到目前为止一切看起来都很棒。
【解决方案2】:

是的,我已经做了类似的事情来让它工作。在您的情况下,您必须修改 sql 查询以获取您的自定义字段。您还需要修改 $headers$rows 数组以包含您需要显示的内容,但我想您明白了。

 // first I create my own module hooking the menu
 function custom_menu() {
    $items['admin/custom-content'] = array(
        'title' => t('Custom Content'),
        'type' => MENU_NORMAL_ITEM,     
        'access arguments' => array('access content'), 
    );
    $items['admin/custom-content/product'] = array(
        'title' => t('Products'),
        'type' => MENU_NORMAL_ITEM,
        'access arguments' => array('access content'),
        'page callback' => 'custom_view_products'
    );
            return $items;
  }
  // the above will add a new admin menu link called Custom Content
  // then I have a callback method for the menu item
  function custom_view_products() {
         // setup the header for the form
         $headers = array(
        array('data' => 'Title', 'field' => 'title', 'sort' => 'asc'),
        array('data' => 'Published')
     );
         //
         $query = "SELECT n.* FROM {node} n ". 
                  "WHERE n.type = 'product' ORDER BY n.title ASC";

     //
     $rows = array(); 
     if(($results = db_query($query)->fetchAll())) {
        foreach ($results as $node) {
            $rows[] = array(
                'data' => array(
                l($node->title, 'node/'. $node->nid .'/edit'),
                $node->status
                ), 'class' => array('published')
            );
        }
         }
     $html = theme('table',
        array(
            'header' => $headers,
            'rows'=>$rows,
            'caption' => '',
            'sticky' => FALSE,
            'empty' => 'No products located...',
        )
    );
    return $html;
}

【讨论】:

  • 感谢@Krister,但我认为我的drupal 技能还没有完全成熟。不过要留着以备不时之需。
猜你喜欢
  • 1970-01-01
  • 2013-02-26
  • 2021-01-07
  • 2020-04-03
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多