在我的Drupal驱动的网站上,我想列出节点页面顶部的可用下载(在一个狭窄的浮动内:右边<div>),而不是它们通常出现的底部.
在我的主题中,我已经覆盖了theme_upload_attachments()函数以生成<div>宽度为40%的函数,但这显示在页面底部.
在该upload.module文件中是控制页面上列出附件的位置的代码:
// function upload_nodeapi(), line #284 of upload.module
$node->content['files'] = array(
'#value' => theme('upload_attachments', $node->files),
'#weight' => 50,
);
Run Code Online (Sandbox Code Playgroud)
如果我手动将这个#weight修改为-1,我的自定义附件列表会显示我想要的位置,浮动在内容区域顶部的右侧.
但是,我不想手动破解核心文件upload.module,因为我的更改将在下次应用升级时丢失(例如,对于安全补丁).
如何/在哪里修改content['files']主题代码中的#weight ?
或者,我是否采取了错误的方式?
我是Drupal dev的新手,并且正在尝试将现有的区域变量添加到我的模块的预处理器函数中.
基本上,我已经为我的网站创建了一个新区域(这里是我主题的.info文件中的定义):
regions[feeds] = Feeds
Run Code Online (Sandbox Code Playgroud)
从Administer-> Blocks,我已将我想要的块添加到新的"Feeds"区域.
然后,从另一个模块,"高级前页"模块,我正在尝试将一些PHP添加到此模块中的"首页".高级前端页面模块只允许站点具有登录页面,而不是立即查看其他站点内容的列表等.我已为内容区域启用了PHP,然后添加了以下内容:
<div>
<?php print $feeds; ?>
</div>
Run Code Online (Sandbox Code Playgroud)
它不打印"Feeds"区域,我相信这是因为该区域变量不能从page.tpl.php文件的外部访问.所以环顾四周后,我发现了这些链接:
从那里,我试图为模块"Advanced Front Page"添加一个预处理器功能,模块名称为"front_page"(或者可能只是"front",我不是100%肯定).这是我的预处理器函数,我试图将其添加到我的template.php文件和/modules/front/front_page.module文件中(请不要同时注意):
function front_preprocess(&$vars)
{
$vars['feeds'] = theme('blocks', 'feeds');
}
Run Code Online (Sandbox Code Playgroud)
无论我在哪里放置此文件(template.php或front_page.module),它似乎都没有做任何事情.知道我可能会出错吗?
我有一个Excel文件,我需要将数据发送到我的Drupal MySql数据库.为此,我在Excel工作表的VBA中使用HTTP POST,如下所示:
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "http://localhost:8082/acquia-drupal/node/2"
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send ("string=testdata")
Run Code Online (Sandbox Code Playgroud)
我想使用Drupal页面来解析POST数据并将其写入Drupal MySql数据库中的表.
这是我开始的,
<?php
if (isset($_POST['string']))
{
$trans = $_POST['string'];
db_query("INSERT INTO {excel} (ExcelData) VALUES (%d')",
$trans);
}
Run Code Online (Sandbox Code Playgroud)
这是正确的方向吗?此外,有人可以提供一些代码片段指导正确解析POST数据吗?
我正在为Drupal站点创建批量上传功能.使用flash我可以将文件上传到特定的URL然后处理文件.我想要做的不仅仅是上传文件,而是创建一个特定类型的节点,并将文件保存到已使用CCK设置的文件字段中.由于这些是音频文件,因此文件字段处理文件非常重要,因此可以使用getid3模块提供附加元数据.
现在我已经查看了一些代码,因为我无法找到API文档,但我不清楚我应该如何处理它.理想情况下,我可以将文件传递给函数,只使用保存节点时返回的数据,但我无法找到该函数.
如果任何人有这方面的经验,我会提出一些关于如何处理这个问题的指示.
内容类型事件有intro,body和"event date"字段(使用Date模块).在页面视图中,我想过滤节点,以便只显示将来带有"事件日期"的项目.
问题是,当我尝试添加过滤器字段时,此"事件日期"不会出现在列表中.
我正在尝试做什么?看起来很简单,但即使在清除所有缓存等之后,我也看不到这个字段.
我想创建一个视图,其中显示我的所有5个分类术语,然后显示已发布的最新节点,但这受限于1.例如:
税期1
已发布最新节点税期2
最新节点发布等等
目前我按分类学术语分组,因此它显示所有发布的节点,然后按发布日期desc排序.我无法弄清楚如何限制节点只显示每个分类术语一个项目.
任何帮助将不胜感激.
我正在寻找一个解决方案,可以从/admin/reports/dblogDrupal 6中的网站向我发送错误.最好的是每日摘要.
是否有任何模块或触发器+动作解决方案?
我想在将表单保存到数据库之前验证表单的输入,以防止Sql注入和XSS.
我不想直接修改模块的代码,所以我创建了一个自定义模块来做这种事情,但我不确定如何使用#validate元素来调用验证函数.
在我的自定义模块中,我有这个函数实现了这个逻辑:
function mymodule_form_alter(&$form, $form_state, $form_id) {
switch ($form_id) {
case 'myform':
drupal_set_message('this message is printed :D');
$form['#validate'] = array('my_validation_function');
break;
}
}
function my_validation_function($form, &$form_state) {
drupal_set_message('not printed :(');
watchdog('not printed :___(', 'not printed :___(');
}
Run Code Online (Sandbox Code Playgroud)
我不确切知道它是如何工作的但是当我提交表单时似乎从未调用过第二个函数.
编辑(解决方案):
我终于找到了验证放在模块中的位置:
$form['mod_name']['submit']['#validate'][] = 'my_validation_function';
Run Code Online (Sandbox Code Playgroud)
我认为只要添加表单['#validify']就可以使用$ form变量上的内容了,但是如果你没有将#validate元素放在预期的地方,它似乎取决于模块的实现.
如何在Drupal 7中拥有特定于浏览器的css.如果浏览器是chrome,我想加载chrome.css.请帮忙
如何在Drupal的下拉列表中添加onchange处理程序?使用hook_form()添加下拉列表.我必须根据onchange功能执行一个功能.有没有办法做到这一点?
drupal-6 ×10
drupal ×8
themes ×2
cck ×1
drupal-7 ×1
drupal-files ×1
drupal-views ×1
email ×1
forms ×1
php ×1
preprocessor ×1
validation ×1
views ×1