我对Drupal的了解越深,我就越需要在其他人的模块中更改代码。这些通常是小的更改,到目前为止,根据我自己的需要重写模块的功能没有意义。我尽量不对Drupal核心进行任何修改,因为这似乎是在自找麻烦。但迟早,我需要用新版本更新这些模块,然后重新修补我的更改。在进行这些更改、升级模块和重新应用您的代码时,您如何保持井井有条?变回来了?我正在尽可能多地做笔记,但蜘蛛网正在我周围生长! 最佳答案 另一个关键是为您所做的任何更改维护明确的.patch文件,并在其中包含文档。如果您必须升级到模块的新版本,请安装干净的副本并重新应用补丁。如果它
我正在为一个基于drupal的客户创建一个站点,该客户希望匿名用户(未登录)能够创建一个新节点,但只能创建一个未发布的节点。然后管理员可以在自己发布之前查看节点并更改它。我已经研究过使用触发器和操作,但是编写自定义触发器模块似乎有点令人生畏,因为我目前对DrupalAPI不是很熟练。任何想法表示赞赏。 最佳答案 对于Drupal7,您可以通过这种方式应用@Mirzu解决方案:function_node_presave($node){if(user_is_anonymous())$node->status=FALSE;//meansu
我正在使用SelectQuery对象来检索和显示用户列表,但我不知道从哪里获取用户的图片。users表有一个名为picture的列,但其中的数据只是一个整数。图片是否存储在某处的blob字段中,或者是否存在指向另一个表中图片的链接? 最佳答案 图像文件本身(通常)存储在/sites/default/files中的某处。对该图像的引用存储在file_managed表中,users表中的picture列包含fid图片的(文件ID)。你可以像这样加载文件对象:$file=file_load($fid);然后像这样获取图像的输出:$imag
我是Drupal的新手。我正在使用Megamenu下拉菜单来显示我正在处理的站点中的主菜单。但是我需要重写Megamenu模块文件中的一个函数(megamenu_theme_menu_tree)以将一些html添加到megamenu输出。编辑模块文件对我有用,但我不确定这样做的正确方法。还有其他方法吗?请帮忙谢谢 最佳答案 在文件themes/[your_theme]/template.php中,尝试创建一个函数来覆盖它。对于命名功能,说明here顺便说一句,你永远不应该将一个函数覆盖到它的模块中。你必须createyourcust
我应该在Drupal中将ImageMagick或GD2与ImageAPI一起使用吗?有什么优点和缺点? 最佳答案 图像魔术更快可以处理更多格式imagick二进制文件在PHP的内存限制之外工作(据我所知-如果我错了请纠正我)至少可以从CMYK文件中得到一些东西(尽管结果通常看起来像是有人在你的源图像上呕吐,颜色配置文件处理很糟糕)调整透明GIF的大小没有问题,这在某些GD版本中是个问题在从TrueType或其他字体呈现文本时更好、更一致-不同版本的FreeType以略微不同的方式呈现相同的字体没有麻烦。不利的一面是,它并非随处可用,
我正在寻找有关如何使用一个Drupal实例(使用Pressflow6.x)最好地为多个站点提供服务的专家建议。让我们考虑需要这个的公司称为“ABCGroupofCompanies”,它有3个姊妹公司。因此,总共将有四个站点:www.abcgroup.comwww.company-a.comwww.company-b.comwww.company-c.com以下是最有趣的事情:用户将在所有人之间共享网站每个站点将“大部分”托管自己的内容(例如主页上的欢迎文字或菜单项-每个站点都不同)某些内容将显示在所有站点中(例如,公司范围内的通知......或员工名录)每个站点的主题都会不同现在,我正
drupal中有一些消息。当出现php警告时,会引发错误消息,但模块也可以使用drupal_set_message()引发消息。问题是:有没有办法改变这些消息?例如,将每条消息中的每个“a”替换为“b”。谢谢! 最佳答案 虽然设置上没有消息更改,但您可以通过hook_preprocess_status_messages在显示时更改它们,参见http://api.drupal.org/api/drupal/includes--theme.inc/function/theme/7关于预处理和http://api.drupal.org/a
我在使用Drupal7提交表单后访问发布的值时遇到问题。假设我有一个简单的表单,其中包含一个文本字段和一个提交按钮。functionsample_form($form,&$form_state){$form['sample']['name']=array('#description'=>'Name','#value'=>'Name','#type'=>'textfield',);$form['sample']['sample_submit']=array('#type'=>'submit','#value'=>'SUBMIT','#submit'=>array('sample_form
我一直在浏览drupal文档和论坛,但这有点让人望而生畏。如果有人有简单或直接的方法将字段添加到管理部分的站点信息页面,我将非常感激。作为背景,我只是想添加用户可自定义的字段站点范围的字段/值。 最佳答案 在自定义模块中,您可以使用hook_form_alter()向该表单添加额外的字段。例如:functionmymodule_form_alter(&$form,$form_state,$form_id){if($form_id=='system_site_information_settings'){$form['my_modul
我在Drupal中打开了所有错误(error_reporting(-1)),但由于某些原因,大多数错误不会出现在日志或屏幕上。我可以通过简单地将函数名称更改为其他名称来复制问题,并且我希望看到函数不存在错误,但我只是得到一个白屏。我曾尝试在Drupal框架之外复制它,但我做不到-所以它让我相信这不是我的PHP设置(ZendServer/Apache2/PHP/Windows),而是在Drupal的某个地方......有什么想法吗? 最佳答案 我知道这可能会迟到,但它对我有帮助。大多数情况下,一个模块会导致WSOD,我不能只禁用模块来