我知道如何检查用户是否通过PHP登录,但我需要在事件发生时做一些样式,并为此创建了一个单独的JavaScript文件.这是Drupal变量还是我可以引用的东西?
我正在创建一个Drupal模块,它不一定依赖于其他模块,但是如果启用了Path模块,则可以提供其他选项.
我想知道的,通过搜索似乎无法找到,是否有可能从另一个模块检测当前启用的模块,以便该模块可以提供使用这些模块的选项?
如何在不修改现有模块的情况下扩展现有模块?实际上它是一个贡献的模块,所以我不想破解它.但我想改变并添加某些功能.我是drupal的新手,当我阅读有关它的教程时,我一次又一次地听到一件事 - 不要破解核心......而且我相信同样适用于模块.
我目前正在研究Drupal 6主题,设计师明确要求使用大量的圆角.
我当然可以创建圆角 - 传统上 - 用图像.但我知道必须有更好更简单的方法来创建圆角.
最理想的情况是,我想将我的CSS编写为符合标准的CSS3,选择器如下:
Run Code Online (Sandbox Code Playgroud)h2 {border-radius: 8px;}
使用浏览器特定的CSS也很好,就像
Run Code Online (Sandbox Code Playgroud)h2 {-moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px;}
如果需要,我也可以手动插入一些自定义JavaScript.我只想避免在我的标记中添加另外100个圆角图像.
关于最佳方法的任何建议?
作为对这个问题的更具体的看法:
如何在模块内检查节点是否是某种类型,以便能够对节点执行某些操作.
谢谢
上下文:
我正在尝试调整此代码,以便它不是在"my_page"上工作,而是在节点类型上工作.
function MYMODULE_preprocess_page(&$variables, $arg = 'my_page', $delta=0) {
// I needed a one hit wonder. Can be altered to use function arguments
// to increase it's flexibility.
if(arg($delta) == $arg) {
$scripts = drupal_add_js();
$css = drupal_add_css();
// Only do this for pages that have JavaScript on them.
if (!empty($variables['scripts'])) {
$path = drupal_get_path('module', 'admin_menu');
unset($scripts['module'][$path . '/admin_menu.js']);
$variables['scripts'] = drupal_get_js('header', $scripts);
}
// Similar process for CSS but there are 2 Css …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Drupal 7的实体和字段API来正确构建一个新模块.我从文档中无法理解的是使用新API创建具有许多设置字段的"内容类型"(不是节点类型)的正确方法,例如Body.
我正在尝试使用hook_entity_info设置实体,然后我相信我需要使用field_create_instance添加body字段,但我似乎无法让它工作.
在mycontenttype.module中:
/**
* Implements hook_entity_info().
*/
function mycontenttype_entity_info() {
$return = array(
'mycontenttype' => array(
'label' => t('My Content Type'),
'controller class' => 'MyContentTypeEntityController',
'base table' => 'content_type',
'uri callback' => 'content_type_uri',
'entity keys' => array(
'id' => 'cid',
'label' => 'title',
),
'bundles' => array(
'mycontenttype' => array(
'label' => 'My Content Type',
'admin' => array(
'path' => 'admin/contenttype',
'access arguments' => array('administer contenttype'),
),
),
),
'fieldable' => true,
),
);
return $return;
}
/** …Run Code Online (Sandbox Code Playgroud) 我有一个从hook_form实现的表单,名为simplequiz_form()我想在下面提交之后访问它的数据是我写的代码但是我提交后似乎无法访问它的数据.我究竟做错了什么 ?
function simplequiz_form_validate($form, &$form_state) {
// here is where we will validate the data and save it in the db.
$thid = db_insert('simplequiz')
->fields(array(
'questions' => &$form_state['question'],
**I can't seem to access the value of a field questions**
))
->execute();
return $thid;
}
Run Code Online (Sandbox Code Playgroud)
下面是我对hook_form()的实现
function simplequiz_form($form, &$form_submit)
{
$form['question'] = array(
'#title' => t('Please input your question'),
'#type' => 'text_format',
'#required' => FALSE,
'#description' => t('Here is where you can enter your questions'),
);
$form['submit'] = array(
'#type' => …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个自定义小部件但是当我提交时,Drupal似乎没有保存任何数据.当hook_field_attach_submit()用于显示我粘贴的数据时,它被列为null.
奇怪的是,如果我将其更改#type为单个文本字段而不是字段集,则它将仅保存已输入的字符串的第一个字符.
这似乎是一个验证问题,但我不确定如何挂钩或调试问题.我在哪里可以离开?
<?php
function guide_field_widget_info(){
dpm("guide_field_widget_info");
return array(
'guide_text_textfield' => array(
'label' => t('test Text field'),
'field types' => array('text'),
'settings' => array('size' => 60),
'behaviors' => array(
'multiple values' => FIELD_BEHAVIOR_CUSTOM,
'default value' => FIELD_BEHAVIOR_DEFAULT,
),
)
);
}
function guide_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
$field_name = $instance['field_name'];
$required = $element['#required'];
$item =& $items[$delta];
$element += array(
'#type' => 'fieldset',
'#title' => t('helloooooooo'),
);
$required = $element['#required'];
$item =& $items[$delta]; …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个模块,通过url路径找出父菜单项,然后通过查找顶部父项显示该相关菜单的当前树结构,最重要的是仅显示该菜单中的菜单项和子菜单.
一个简单的解决方案是通过所有项目或包含所有项目作为键的数组进行foreach循环.
path = '/system/menu/submenu';
parent = 'system';
output = parent + parent submenus.
Run Code Online (Sandbox Code Playgroud)
"自定义菜单"中的所有菜单项:
- System
- Menu wrapper
- SubMenu 1A
- SubMenu 2A
- SubMenu 3A
- Main
- SubMenu 1B
- SubMenu 2B
- SubChildMenu 3B
Run Code Online (Sandbox Code Playgroud)
PHP代码应该返回:
- System
- Menu wrapper
- SubMenu 1A
- SubMenu 2A
- SubMenu 3A
Run Code Online (Sandbox Code Playgroud)
我的代码(目前无效):
$menu = menu_tree('my-custom-menu');
return = theme('my_custom_menu', array('system' => $menu_tree));
Run Code Online (Sandbox Code Playgroud)
注意:这只需要php代码和php代码,所有其他模块不支持通过手动选择.内容通过块显示.
"对于导航,Drupal将通过menu_navigation_links调用menu_tree_page_data, 这只会返回一个级别的链接.您可以在此之前使用menu_main_menu,然后是template_preprocess_page(这是它最终作为page.tpl.php中的变量的方式). )
但是,如果你插入一个菜单作为块,menu_tree会调用menu_tree_page_data(它会立即调用 …
我有一些附加到节点类型的字段集合,我正在使用Drupal的Form API编写自定义表单.
如何将这些字段集合字段加载到表单中?我应该使用hook_form,hook_field或其他什么?
有人能给我一个简单的例子来编写一个表单元素,这是一个具有无限基数的字段集合吗?