在我的网站上度过了许多漫长的夜晚,现在我开始进行各种安全检查,并偶然发现以下情况:
www.mysite.com/node
Run Code Online (Sandbox Code Playgroud)
这显示了用户可以访问的最新x节点.我不希望这个视图对用户可见.我当然不希望任何其他类似的观点可用.所以,我的问题是:
我有一个带有5k帖子的wordpress网站,每篇帖子平均有25条评论.所以必须添加125k个节点.
我需要将这些帖子和评论导入到drupal 6中.
我写了一个脚本,用drupal的cron服务将这些帖子/评论导入drupal.
但是cron服务可以节省时间.因为逐个导入125k节点非常慢.我能做些什么来改善drupal导入速度?
我使用drupal内置node_save(),comment_save()方法来做到这一点.
我还没有找到一种方法来使用自定义SQL查询来提高导入速度.
我通过drupals的cron.php执行我的脚本,这意味着即使我已将'max_execute_time'设置为无限制,但这只影响PHP,apache服务器有自己的超时设置.
PS:
注释不是drupal中的节点,但这意味着,仍然会调用很多comment_save(),这使得这个导入过程非常慢.
我需要修改一个查询视图生成,以便我可以使用高度自定义的过滤器.由于这个问题,我已经使用一些OR实现了add_where()函数:Drupal View Filters中的OR运算符
然而,这只能解决我的一部分问题.有些字段我无法过滤,因为我需要在查询中添加额外的JOIN.
有什么东西沿着这条线
$view->query->add_where()
Run Code Online (Sandbox Code Playgroud)
可以插入JOIN语句吗?
我可以在登录Drupal时将用户发送回上一页吗?
他可以从我网站的不同页面登录.不仅有一个登录节点.我想把他送回他所在的页面.
谢谢
在我的网站上使用Drupal几个月后,我注意到模块列表中的模块卸载选项卡.
我总是通过从文件系统中删除他们的文件夹来卸载我的模块(在禁用它们之后).我想知道这是否是错误的删除方法.
谢谢
我刚刚安装了Drupal 6.19的新副本,以加快如何编写模块的速度.但由于某种原因,重写模块不适用于Drupal.
我检查了什么:
apachectl -M >> 已安装php_info()在当前服务器上>> 说还安装了重写.htaccessDrupal根文件夹中的文件AllowOverride All我在这里选择了.到处看,但Drupal设置不允许我启用设置,他们的测试只是访问一个应该工作的站点,如果重写模块在那里.
我的规格:Mac OS X 10.6 Snow Leopard使用PHP5内置Apache
谢谢!
嗨麻烦有点混淆如何使用此代码检索节点标题
node_load($ NID); $标题= $ nid->标题;
我已经在块中完成了这个编码,我想从节点id中检索以显示图像.这些图像通常使用filezilla上传到站点,并且它与节点title一致.我尝试过多种形式的node_load(),但我失败了.请告诉我正确的选择.谢谢大家.- Pranoti
我需要在标题中添加一个标记.我打开page.tpl.php,我看到这一行:
<?php print $head; ?>
Run Code Online (Sandbox Code Playgroud)
我想我应该在其他地方写那个标签.添加它的正确方法是什么?感谢您的帮助.
我知道令牌(令牌模块)可用于填写令牌.
但是对于我的文章(节点类型页面),我如何使用令牌以便我的网站名称等可以自动替换?
我希望我的模块覆盖另一个模块设置的路径
例:
模块A已注册路径:
$menu['node/%id/test'] = array(
'title' => 'Test',
'page callback' => 'test_A',
'page arguments' => array(1),
'access callback' => 'test_access',
'access arguments' => array(1),
'type' => MENU_LOCAL_TASK,
)
Run Code Online (Sandbox Code Playgroud)
现在我创建模块B并注册相同的路径.
$menu['node/%id/test'] = array(
'title' => 'Test',
'page callback' => 'test_B',
'page arguments' => array(1),
'access callback' => 'test_access',
'access arguments' => array(1),
'type' => MENU_LOCAL_TASK,
)
Run Code Online (Sandbox Code Playgroud)
对此路径的每个请求
www.mysite.com/node/1/test
将路由到模块B而不是A.
覆盖现有路径的最佳方法是由其他模块设置的?