Drupal

Drupal开发人员和管理员的问答

3
以编程方式在树枝模板中渲染块
我需要在page.html.twig模板中呈现一个views块。在D7中,我会这样做: <?php $block = module_invoke('module_name', 'block_view', 'block_delta'); print render($block['content']); ?> 在Drupal 8中,不建议使用module_invoke,建议使用它:(我已经添加了块的名称作为第二个参数) Drupal::moduleHandler()->invoke($block, 'views_block__blog_block_1', $args = array()); 我尝试了几件事。首先尝试在树枝模板中执行此操作,但我不知道如何在树枝模板中调用php函数,因此结果并不太好。 然后,我在.theme文件的preprocess_page()函数中调用了该函数,但是在使它起作用之前,我尝试了一些简单的方法,只是试图使在twig模板中起作用的变量也不起作用,例如: 在.theme文件的template_preprocess_page(&$ vars)函数中: $test = 'Hello World'; $vars['$my_var'] = $test; 我试图在树枝模板中调用my_var,但是它不起作用,并且收到一条错误消息,提示“该站点有错误,请与管理员联系”。 因此,总而言之,这是我的问题: 如何使变量在树枝模板中可用? 如何在树枝模板内调用函数? 是否在.theme文件或树枝模板内渲染块?
28 blocks  8 

5
表单中的动态选择列表(取决于下拉列表)
我正在使用Drupal七。我想使选择列表中的选项取决于表单中另一个选择列表中选择的值。我敢肯定这已经被问过很多次了,但是我很难找到一个明确的答案。 该表格供用户输入工作历史记录。他们需要选择一个中队,该中队是对中队字段类型的节点引用,并且在下拉列表中。但是,中队取决于城市的下拉列表。用户首先需要选择一个城市,然后将其过滤中队的选项。在中队内容类型中,我为城市创建了一个分类法,并将其标记为中队。 我将非常感谢您提供有关实现此目标的最佳方法(最简单的方法)的任何指示,或任何有帮助的在线有用资源。
28 7  ajax  forms 

7
如何使用Drush执行php脚本?
我是Drush的新手。如何执行此脚本以删除特定用户的评论? $uid = xx // the spam users id; $query = db_query("SELECT cid FROM {comments} WHERE uid = %d", $uid); while($cid = db_result($query)) { comment_delete($cid); } 另外,如果您能告诉我如何完成脚本,使其使用用户名而不是$ uid,那将是很棒的。 谢谢
28 drush 

4
通过Drush将组件添加到功能中
我了解使用'drush fu'查找现有功能的任何组件的更改,但是有没有办法使用drush将组件添加到现有功能?现在,我必须使用/ admin工具来重新创建,下载文件,上传等。如果有一种通过drush进行此过程的方法,那就太好了。
28 drush  features 

8
如何使用db_query()仅获得一个结果
我正在从使用mysql_fetch_array()等的“老派” PHP MySQL方法过渡,并且我通过在模块中使用数据库API尝试变得更加Drupally。 我只想返回并打印出一个值。例如: $query = db_query("SELECT zip FROM {zipcodes} WHERE city = :city LIMIT 1", array(":city" => $city)); 我知道其中存在值,我可以使用数据库API之外的传统方法来访问和打印它。 print $query->zip 不管用。 API文档非常清晰。 有人可以告诉我访问这些值的正确方法吗? 有没有人可以推荐的好教程?
28 7  database 

7
为单个模块更新b
是否可以通过Drush执行单个模块的更新功能?我可以看到drush updatedb哪个不使用模块名作为参数,而是运行所有可用的更新。然后这里drush pm-update也检查新文件。该文件说: (与pm-updatecode + Updatedb相同) 这是否意味着如果我运行drush pm-update所有可用的(更新的update_function出口)更新,就会被执行?有没有办法只(db)更新一个模块?
28 7  drush  updating 

5
如何用视图覆盖分类法/术语/%列表?
我有一个附加到内容类型的词汇表。只能选择一个术语对使用此内容类型创建的节点进行分类。该词汇表称为“车辆”,术语为“汽车,卡车,轮船”。内容类型也称为车辆。 我使用自动路径,以便显示[vocabulary:name] / [term:name],因此在渲染时将显示site.com/vehicles/trucks,例如,将显示所有卡车...典型的Drupal素材。好... 现在,我有一个视图,它是带有路径“车辆”的页面。设置为显示内容类型“车辆”的所有项目。此页面视图还设置为接受参数“分类术语ID”。 请注意,如果存在分类法术语,则为分类法路径生成的url别名与提供了参数的“视图”页面完全相同: URL别名分类路径=车辆/卡车。带有参数=车辆/卡车的视图页面。 这是故意的。我的目标是在不存在参数的情况下显示该内容类型的所有结果,并且当存在参数时,最重要的是根据该分类术语过滤结果,并保持与不使用参数时相同的字段和结构(与site.com/vehicles)。 问题是,这无法正常工作。site.com/vehicles正确显示了我的视图和相关过滤器。site.com/vehicles/trucks仅显示Drupal提供的常规,未格式化的分类法列表。 这是因为分类标准术语ID参数配置不正确吗? 这是在Views之后触发分类法挂钩的重要问题吗?如果是这样,如何在这里重新调整权重,使其正确触发并为我提供所需的结果? 我知道您将要提出的建议-视图带有分类/术语/%视图,以覆盖drupal默认视图。 但是,对于我来说,这是行不通的。我有多种内容类型,每种内容类型都有自己的词汇表,每种都有自己的视图和不同的字段集(例如房屋和汽车,具有非常不同的字段集)。如果所有内容类型都具有相同的字段,则分类法/项/%可以使用,那么我可以模仿那些覆盖的内容,但是既然不是这种情况,我如何正确地获取带有参数的路径以显示基于那个词汇并保持我的领域结构? 抱歉,这令人困惑。该站点的链接以供参考http://www.buyagainbaby.com。该站点当前确实使用了分类法/术语/%作为替代,但是同样,它必须进行更改,以便每个视图都负责根据分类法呈现结果集。

2
视图的上下文过滤器中提供的field:delta内容类型是什么意思?
为视图创建新的上下文过滤器时,类型列表包括诸如content:spec(field_spec:delta)之类的选项,其中spec是我附加到该视图所接受的内容类型的字段名称。它出现在列表中提供的某些但不是全部字段中。我在此字段上找不到参考。这是什么(field_name:delta)?
27 views  7 

11
“网站遇到了意外错误。请稍后再试。”
我在Drupal 7中遇到此错误 如何获得有关此错误的更多信息?任何报告,任何地方的日志?php错误中没有。 如何禁用该消息,并有一条更有用的消息用于调试? 注意:我的问题不是“如何解决此问题”
27 7  8  debugging 


6
调试EntityFieldQuery吗?
我有一个行为异常的模块。EFQ正在重现意想不到的结果,但是我无法仅通过查看代码来了解原因。EFQ是否有dpq()等效项?其他调试方式?
27 7  entities  debugging 


6
如何将模块添加到管理/配置页面?
我正在使用Drupal 7中的模块。我添加了一个hook_menu实现: $items['admin/config/content/mymodule'] = [ 'title' => 'MyModule', 'description' => 'Configure MyModule settings.', 'page callback' => 'mymodule_get_form', 'page arguments' => ['mymodule_admin_settings'], 'file' => 'mymodule.admin.inc', 'access arguments' => ['administer mymodule'], 'menu_name' => 'mymodule', ]; ...以及到mymodule.info的配置行: configure = admin/config/content/mymodule MyModule 的配置链接现在显示在admin / modules页面上,但是如何在admin / config页面上列出该模块?还是仅为核心模块保留了admin / config页?
27 7  routes  navigation 



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.