以编程方式执行节点搜索 -- 8 领域 和 search 领域 drupal 相关 的问题

Programmatically executing a node search


5
vote

问题

中文

是否可以以编程方式执行节点搜索?也许通过 nodesearch 或 drupal search ?

最接近的我可以得到以编程方式做诸如:

  Drupal::service('search.index')->clear();  echo Drupal::service('plugin.manager.search')->getCacheMaxAge();   

请注意,我不想使用 search_api ,但只是drupal 8提供的框中作为对 /search/node?keys=test 的响应。另请注意,我不希望通过HTTP集成。

英文原文

Is it possible to programmatically execute a node search? Maybe via NodeSearch or Drupal\search?

The closest I could get was to programmatically do stuff such as:

\Drupal::service('search.index')->clear();  echo \Drupal::service('plugin.manager.search')->getCacheMaxAge(); 

Note that I don't want to use search_api but simply what Drupal 8 provides out of the box as a response to /search/node?keys=test. Also note that I don't wish to integrate via HTTP.

     
       
       

回答列表

7
 
vote
vote
最佳答案
 

您可以使用搜索页面实体使用的搜索插件与 node_search ID一起实现。

  use DrupalsearchEntitySearchPage;  // Default is the node_search page. $id = Drupal::service('search.search_page_repository')->getDefaultSearchPage(); $defaultSearchPage = SearchPage::load($id); $searchPlugin = $defaultSearchPage->getPlugin(); $searchPlugin->setSearch($keywords, $parameters, $arguments); $searchPlugin->buildResults(); // $searchPlugin->execute() works too if you want raw results   
 

You can achieve that with the search plugin used by the search page entity with the node_search id.

use Drupal\search\Entity\SearchPage;  // Default is the node_search page. $id = \Drupal::service('search.search_page_repository')->getDefaultSearchPage(); $defaultSearchPage = SearchPage::load($id); $searchPlugin = $defaultSearchPage->getPlugin(); $searchPlugin->setSearch($keywords, $parameters, $arguments); $searchPlugin->buildResults(); // $searchPlugin->execute() works too if you want raw results 
 
 
 
 

相关问题

1  如何在Ajax视图的公开日期过滤器中更改日期格式,该过滤器使用Bef?  ( How to change date format in an ajax views exposed date filter that uses bef ) 
我有一个使用ajax选项的视图,并使用带有更好的暴露过滤器(最新版本)的一些日期过滤器。我想做的是将日期过滤器的默认日期格式从mm / dd / yy更改为dd / mm / yy。 我试图实现这个解决方案。格式更改,弹出窗口工作正常,但在应用过滤器时出现问题,似乎日期过滤器值似乎没有验证。 如何在AJAX视图中更改...

0  测试保存某些配置的函数 - NULL上调用设置的错误  ( Testing a function which save some configuration error called set on null ) 
我有一个2-3件事的函数,其中一个活动是保存配置。 function processProps($data) { $config = $this->configFactory->getEditable('mymodule.settings'); $config ->set('some_settin...

0  如何从Ajax表单中保存实体  ( How to save entity from a ajax form ) 
我正在运行drupal 8.8.x 问题 在通过AJAX提交表单时,未保存实体。示例: 构建形式 public function buildForm(array $form, FormStateInterface $form_state, EntityInterface $entity = NULL) ...

0  Hook_Node_Presave期间如何重新排序实体引用版本字段?  ( How do you reorder an entity reference revisions field during hook node presave ) 
我正在尝试根据节点保存的文本字段重新排序一些段落,因此作者不需要手动维护字母顺序,但是当我保存节点时,所有值都丢失。我尝试匹配$ node-> get('field_paragraphs') - > getValue(),但这似乎没有工作。 function mymodule_node_presave...

0  如何将来自DrupalSettings的变量的值传递给同一页面中的iframe?  ( How can you pass the value of a variable from drupalsettings to an iframe in the ) 
我在drupal设置中有一个变量,从php获得它的值。 (function ($, Drupal, drupalSettings) { /** * @namespace */ Drupal.behaviors.pdf_appAccessData = { attach: function (cont...

0  用分类权重排序  ( Sort by taxonomy weight ) 
我有一个内容类型"成员" ,带有一个名为"成员角色" 的分类术语,它是一个多价值字段。每个成员最多可包含3个成员角色。 我已经创建了一个视图,以参考分类场与分类学术语重量排序的成员。但问题是每个成员在视图结果页面中重复3次。 我的问题是如何删除重复项,并且仅在多价字段(成员角色)中的最后一个值排序。 ...

0  如何将jQuery验证添加到自定义表单并将错误设置为字段?  ( How to add jquery validation to custom form and set error to field ) 
我想在我的自定义表单上使用jQuery实现客户端验证。 我已经启用了客户端验证贡献模块 我已使用以下代码成功附加了自定义JS文件: mysql> select nid, uid, created, changed from node; +-----+-----+------------+------------+...

2  使用PathAuto <8.x-1.6升级后,网站已损坏  ( Site broken after upgrading with pathauto 8 x 1 6 ) 
我最近升级到Drupal 8.8。不幸的是,我错过了需要升级PathaUto的备忘录,现在我的网站被打破了。大多数页面给出了消息"网站遇到意外错误。请稍后再试。" 我可以到达/用户并使用管理员帐户登录,我可以得到/ update.php,告诉我"pathauto模块与Drupal Core的当前版本不兼容。将Pat...

0  从自定义块中消耗外部API  ( Consume external api from custom block ) 
我目前正在编写一个自定义模块 - 用于 drupal 8 - 如何使用块(使用块显示它们并显示它们)来进行消费/发送外部API数据强> 是标准方法 - 直接或通过控制器通过插件消耗/发送外部API数据,并将其输出到Twig模板? 如果是的话,如何将数据从控制器发送到自定义插件块? 欢迎任何建议。谢谢你。 ...

2  如何在自定义字段中使用替换模式?  ( How can i use a replacement pattern in a custom field ) 
我刚刚在视图中创建了一个新的自定义字段,但我想在该字段中使用替换模式。是否有可能这样做? class CustomButtonField extends FieldPluginBase { /** * {@inheritdoc} */ public function usesGroupBy(...

0  如何在复合组件中的组件上设置验证错误?  ( How do i set a validation error on a component inside a composite component ) 
我有一个webform,一个复合组件允许添加多行。这种结构是这样的,因为它更清楚: webform. sample_details - 复合组件,允许多个"行" ,包含: sample_ref. date_sampled(字段我想要设置错误) 我遵循"方法2 - WebForm处理程序"...

0  只在首页上完全显示最近的帖子,其他人  ( Fully display only most recent post on front page furl the others ) 
目前我的首页只会为我所有新帖子显示一款预告片。 我知道我可以转到 Structure > Views > Frontpage 并将其更改为 show Content | Full ,它将在首页上显示每个帖子的完整帖子。 我想做的是,虽然只是我最近的帖子的全部帖子,然后是所有其他帖子的速度。 是可以这样做吗? ...

1  如何在多站安装中使用一组全局和每个子部分权限?  ( How to use a set of global and per subsite permissions in a multisite installati ) 
用例: 我有一个多功能安装,其中我想定义所有子部门可用的全局配置。我在 default 站点中定义此配置。对于这个例子,让我们说是: 一个角色编辑器 内容类型文章 内容类型页面 现在.. 在所有子区域中,角色编辑器需要有权"使用工具栏" 。全球许可。 在 subsite-a 中,我想允许编辑器只添加...

2  使用#states以复选框  ( Using states in a form with checkboxes ) 
我想当客户端检查一个复选框时,会出现文本字段。示例:如果他点击3个复选框,则为3的所有文本字段都会关闭。 我的#Checkboxes: $form['input']['livraison'] = [ '#title' => t('Options de livraison (à la charge de...

0  不要缓存自定义前页域  ( Dont cache custom front page domain ) 
我正在研究一个模块,该模块显示每个角色不同的FrontPage。我有三个FrontPages: 基本 www.domain.nl anonymous 用户,在基本站点设置中设置 为 role_1 他们转到 sub1.domain.nldashboard 为具有 role_2 他们转到 sub2.domain....

2  创建/编辑节点时如何将字段添加到侧栏菜单?  ( How do i add fields to the sidebar menu when creating editing nodes ) 
我想在Create / Edit节点页面上添加到侧栏菜单。我该怎么办? 我想这样做,以使内容创建/编辑一个小清洁器,更容易理解内容编辑器。 见附加图片... 谢谢。 ...

0  在模态对话框中从表单处理数据  ( Handling data from form in modal dialog ) 
我正在构建一个包含几个点击区域的工具。每个区域都有一个与 theme/template.php5 指向自定义表单路由的链接。 一切正常工作,我能够从表单中获取数据并存储它。然而,我需要用户在这种模态形式中的选择来反映在他们最初单击的区域中。 我忘记了在localstorage或其他东西中存储他们的选择并在关闭每个模...

0  在主和中学和次级语言之间或只是显示错误的URL翻译  ( Url translations transposing between primary and secondary languages or just dis ) 
我们有一个drupal 8.7.10网站,多语言(17个国家,每个人都有2种或更多语言)。 在我附加的例子中,我们有一个"人们" 页面,我们在这个国家列出了我们公司的人。 URL路径应显示"Insalar" 而不是土耳其土耳其翻译的"人民" 。路径的表单字段显示正确。但"查看" 选项卡以及管理员列表中的列表显示"人员...

1  如何从Preprocess函数中从链接字段中获取URL  ( How to get the url from a link field in preprocess function ) 
我有一个内容类型事件。 它有一个链接 field field_event_location_link 链接文本和URL都是可选的 默认情况下,如果没有键入的标题,则使用URL作为标题。 如果标题未填写,我想展示"位置" 。 如何使用预处理功能来查看是否有标题,如果没有,请使用我的字符串。 我尝试过... ...

1  如何在视图模板中单独访问链接字段(URL和文本)值?  ( How to access link fields url and text value separately in views template ) 
我的视图块有一个名为 field_link 的链接字段,附加到内容类型命名为 products ,和我正在尝试在视图模板 views-view-unformatted.html.twig 中单独访问链接字段值(URL和Text)。 以下代码给出格式化的html。 {{ row.content['#view']....




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.