Drupal

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

4
根据其他字段自动填充字段
我的情况非常复杂,需要一些建议。我有一个内容类型my_content,它具有一个附加的字段收集字段field_mycollection,它具有一个引用用户的实体引用字段field_my_userreference,一个电话字段field_my_phone,一个文本字段field_my_text和另一个文本字段field_my_anothertext。 My Content |_ field_mycollection |_ field_my_userreference |_ field_my_phone |_ field_my_text |_ field_my_anothertext 该用户实体也有字段field_my_phone,field_my_text并且field_my_yetanothertext其中后者具有不同的机器名。 如果要my_content在field_my_userreference用户中选择“ 编辑/添加”形式,我要执行的操作应从所选用户的数据中自动填充其他字段。自动填充的字段仍应可编辑。 我怎样才能实现这个目标?如果可能的话,我想使用进行一些编码hook_form_FORM_ID_alter()。
10 7  entities 

1
将选项卡/本地任务添加到节点
我创建了一个名为的模块hotel_reviews。 我已经使用hotel_reviews.routing.yml创建了路径节点/ {node} / reviews 。 hotel_reviews.content: path: '/node/{node}/reviews' defaults: _controller: '\Drupal\hotel_reviews\Controller\ReviewsController::content' _title: 'Reviews' requirements: _permission: 'access content' 然后,我尝试使用hotel_reviews.links.task.yml添加本地任务。 hotel_reviews.content: route_name: hotel_reviews.content title: 'Reviews' base_route: node.view weight: 100 现在,我可以访问由我的控制器定义的内容node/1/reviews,但是当我转到时,node/1我看不到评论标签。 我究竟做错了什么? 到目前为止,我一直在使用以下文档: D7到D8升级教程:将hook_menu()和hook_menu_alter()转换为Drupal 8 API 提供模块定义的本地任务 路线结构
10 8  routes 

2
如何以编程方式更新列表字段的允许值?
我在Drupal 7中为Profile2帐户创建了一个选择列表。在允许值列表中,我添加了一些值。现在,我想以编程方式更新该列表中的值(添加,删除或更新)。我不想使用form_alter,因为我希望将这些更新提交给数据库。我的问题是,我似乎找不到这些值在数据库中的存储位置,或者如何从Profile2中提取这些值,更新它们然后保存它们。 我已经在这个特定问题上搜寻了很多内容,但找不到有关如何执行此操作的答案。我希望有人能帮助我。 谢谢。
10 7  forms  users 

6
即使将附加到节点的文件从节点中删除(并且已保存该编辑),也永远不会从服务器中删除它们,Drupal 7
我在网站上注意到了一件奇怪的事情:将文件附加到节点上(通过常规文件字段)后,该文件再也不会从服务器上删除。我从节点上将其删除,并保存了更改,但是我可以看到文件仍在服务器上。 这使替换文件非常困难,因为当用户尝试附加替换文件时,文件名后缀有“ _0”或“ _1”(因为原始文件仍在服务器上,并且使该名称重复) 。这意味着我们需要找到该文件的所有链接,并编辑每个链接以匹配新的文件名/ URL。真是一团糟。 我正在上网,似乎没有人遇到这个问题-一旦从节点中删除了文件,就应该从服务器上删除它们。 任何想法为什么在我的情况下可能会发生?我不确定从哪里开始寻找。当然,“文件系统”配置页没有这种性质,因为它可能已经被选中。而且字段选项本身似乎没有我可能不小心设置的那种性质。还有其他想法吗?
10 7  files 

2
当ssh在所有其他情况下均可工作时,是什么导致远程drush命令失败并出现ssh错误的?
我在所有三台服务器(开发,UAT和生产)上都有公用和专用ssh密钥,因此我可以远程登录,也可以从另一台登录。对于ssh和scp命令,一切都工作正常。 它不工作,但是,对于Drush。drush @dev status例如,如果我从UAT 执行,则会收到服务器的标语,上面写着该系统“仅供授权用户使用,等等 ”,然后我得到 权限被拒绝(公钥,密码,键盘交互)。 我的~/.drush/aliases.drushrc.php文件包含: # Development # $aliases['dev'] = array( 'uri' => 'http://default', 'root' => '/var/www/vhosts/dev.www.company.com/current/', 'remote-host' => 'companya0.company.com', 'remote-user' => 'myusername' ); # UAT # $aliases['uat'] = array( 'uri' => 'http://default', 'root' => '/var/www/vhosts/uat.www.company.com/current/', 'remote-host' => 'companyc6.company.com', 'remote-user' => 'myusername' ); # Production # $aliases['prod'] …
10 drush 

1
在表单api(字段后缀)的输入字段后添加文本
我正在创建一个带有文本字段的表单。在输入字段之后,我想输入一些文本。像这样: Label * |________| some text Field description 我使用的代码是: $form['a_textfield'] = array( '#type' => 'textfield', '#title' => t('A Label'), '#size' => 10, '#maxlength' => 15, '#description' => t('A Field description'), '#required' => TRUE, ); 有没有办法以这种方式在输入字段后添加“一些文本”?我是否可以通过#markup手动输出HTML代码?有什么办法可以通过表单更改来做到这一点?还是主题功能?
10 7  forms 

4
向节点/编辑和其他形式添加JS和CSS的正确方法
我正在制作一个包含很多JS的网站,我想知道应该将JS代码放在哪里。理想情况下,我希望每个模块都保留JS,而不是主题层。某些内容可能显示为块等。 但是我在缓存方面遇到了一些问题。在我的示例中,我需要将JS&CSS添加到节点编辑表单中。我使用过hook_block_view,但已缓存。因此,如果节点编辑表单中存在错误,则不会调用drupal_add_js和drupal_add_css函数。hook_node_prepare似乎也是如此。 您将在哪里输入JS&CSS层?并且即使在节点编辑表单中有错误,也有被调用的钩子吗?
10 theming  hooks 

5
Drupal如何处理类的自动加载?
Drupal如何通过模块处理类的自动加载?例如,如果我有一个“事件”模块,并且声明了一个名为“事件”的类,然后在.info文件中包括了该类文件,该如何注册? 问题是我试图动态获取包含所有已加载类名称的数组。get_declared_classes()不会以这种方式返回我声明的所有类的名称,因此我假设它们以某种方式自动加载。遵循另一个堆栈溢出问题的建议,我尝试使用spl_autoload_functions()获得所有建议,但这也不成功。 有任何想法吗?
10 7  .info 

6
在Windows上运行-命令pm-enable需要更高的引导程序级别才能运行
我安装了aquia drupal并将一个核心drupal文件夹添加到站点列表中。 我还安装了drush的Windows安装程序,可以很好地下载模块,但是当我尝试启用它们时,出现以下屏幕: C:\Documents and Settings\Administrator\Desktop\drupal>drush en ctools Command pm-enable needs a higher bootstrap level to run - you will [error] need invoke drush from a more functional Drupal environment to run this command. The drush command 'en ctools' could not be executed. [error] Drush was not able to start …
10 7  drush 

4
如何使用Drush更新禁用的模块?
有没有一种方法来更新禁用的模块Drush? 当前,当我尝试使用Drush更新禁用的模块时,收到以下消息: 专案没有启用的扩充功能,因此无法更新 启用模块不是一个选择,因为这是一个实时站点,实际上是许多站点。它们都基于相同的Drupal代码库运行。一些模块由某些站点使用,而其他站点则不使用(可能不在主站点上)。 如果Drush无法解决此问题,那么更新模块的简便方法是什么?


4
如何根据角色隐藏视图的字段?
在/ admin / people中,我想隐藏显示名称(即,显示名称一定不能出现在用户列表中),而只是针对特定角色。 在我的.module文件中,我尝试了以下挂钩: function hook_views_data_alter(array &$data) { kint($data['users']);die; } function hook_views_pre_render(\Drupal\views\ViewExecutable $view) { if($view->id() == 'myview'){ print_r($view->result);die; // kint($value->_entity->get('title')->value); } } function hook_views_post_render(\Drupal\views\ViewExecutable $view) { if ($view->id() == 'viewid') { // Set the view title. $field_name = $view->getFields(); } } function hook_field_views_data_views_data_alter(array &$data, \Drupal\field\FieldStorageConfigInterface $field) { $field_name = …
10 views  8  users 

2
如何使用表单元素类型文件以drupal8格式上传文件?
我想上传文件,我必须将表单元素类型用作“文件”。在提交功能中,我无法获取与我正在上传的文件有关的任何适当数据。有人可以帮我解决这个问题吗?请找到以下代码: public function buildForm(array $form, FormStateInterface $form_state) { $form['test_CERTIFICATE'] = [ '#type' => 'file', '#title' => $this->t('Certificate'), '#description' => $this->t('Your Certificate (.pem file)').': '.\Drupal::state()->get('test_CERTIFICATE_NAME'), ]; return parent::buildForm($form, $form_state); } 提交功能: public function submitForm(array &$form, FormStateInterface $form_state) { parent::submitForm($form, $form_state); $validators = array('file_validate_extensions' => array('pem')); $files = file_save_upload('test_CERTIFICATE', $validators, 'public://certfiles', FILE_EXISTS_REPLACE); …
10 8  forms 

1
删除“ Generator”元标记?
在Drupal 8中删除“ Generator”元标记的最简单方法是什么? <meta name="Generator" content="Drupal 8 (https://www.drupal.org)" /> 可以仅用几行代码来完成吗?
10 8  meta-tags 

4
如何创建模式窗口(弹出窗口)?
我正在尝试使用Drupal 8的核心功能在模式窗口中打开页面。不幸的是,很难找到有关它的一些官方文档,而且涉及该主题的大多数博客似乎都已过时。但据我所知,应该可以通过向a元素添加以下属性来创建模式对话框: class="use-ajax” data-dialog-type="modal" 因此,完整的示例如下所示: <a href="/impressum/lizenzen/43" class="use-ajax" data-dialog-type="modal"> <span class="glyphicon glyphicon-copyright-mark" aria-hidden="true"></span> </a> 在我的情况下/impressum/lizenzen/43是指向视图页面的路径。 这似乎有效,但仅当我以管理员身份登录时才有效。因为这似乎不是权限问题,所以我认为它与管理主题(Seven)有关,该主题可能包含一些Bootstrap(我在我的网站上使用的)可能没有的核心库。但是奇怪的是,在模式的标题栏中出现了字符串“ Array”,而不是页面标题,这让我认为是发生了意外的数组与字符串对话: 有人可以吗 带我去看核心模态API的官方文档, 向我解释一下,它仅以管理员身份工作的原因可能是什么。 最后告诉我,为什么实际上发生了一个数组到字符串的对话,称为模式?
10 8  javascript 

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.