Drupal

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

4
CKEDitor删除类名,即使config中有例外
当我在HTML视图和RTF视图之间切换时,CKEditor似乎正在剥离类名称。 根据网络上的许多建议,我在config.js文件中添加了以下内容: config.allowedContent = true; 上传,清除缓存,甚至直接转到JS文件以检查它是否不在我的计算机上缓存,但仍在删除类。 还有其他解决方案吗?
17 wysiwyg 

1
有没有办法进行并发编辑?
是否有类似MediaWiki的方法来支持在Drupal 7中同时编辑文本主体? 如果当前不存在任何功能,那么可以由能够完成此任务的Drupal模块包装一些不错的PHP差异库?
17 7 

1
与域访问共享内容?
我设置了一个具有域访问权限的站点。它有2个子站点。我想将内容从主站点发布到子站点。发送到会员已经很好用了。但是我希望子站点上的一些本地管理员有权决定他们是否要使用该内容。甚至可以通过域访问还是从上到下的一种方法?

3
如何在不使用Drupal提供的任何管理页面的情况下更改临时目录?
我已经将实时的Drupal网站移至Windows localhost(XAMPP),但是出现了很多“无法创建文件”错误。如果我以管理员身份登录该站点,则根本无法返回更多页面。如果我不登录,我会看到错误信息。 有没有一种方法可以更改临时文件位置,而无需通过界面或使用任何管理页面登录?
17 files 

6
我们为什么不破解核心?
我不敢相信这个问题尚未在此站点上得到解答,但是我在搜索时没有找到,所以... 为什么是这样一个坏主意违反自然罪黑客核心是什么? 能够升级核心版本真的很棒吗?无论如何,我的大多数站点最终都拥有可怕的过时核心,所以为什么要打扰呢? 即使对站点所有者来说很糟糕,为什么社区会如此关心呢?为什么将其称为“杀死小猫”?那不是双曲线吗? 黑客核心是如此简单,我们不喜欢走更简单的途径来解决问题吗? 难道不是只有通过破解内核才能解决的问题吗?然后怎样呢?


3
如何在Bean,Box和Fieldable面板窗格之间进行选择?
Bean,Box和Fieldable Panels窗格均提供类似的功能。我很难理解它们之间到底有什么区别。 彼此相比,它们的优缺点是什么?他们是否针对不同的用例? 我想在面板中使用某种块来添加自定义内容-内容编辑器还需要能够添加内容,从这个意义上说,我需要的块不是纯配置。但是我也使用功能... 编辑:我将添加似乎是主要区别 盒子 最大的用户群(〜11500) 将块视为配置(即,内容最终出现在您的功能中) 提供集成的模块 豆子 最近很流行,安装了约1000次 将块视为内容,但允许通过计算机名称(例如,通过Bean Panels)导出其配置 提供集成的模块 现场面板窗格 最小的用户群(〜400) 来自Panels / Views / etc的作者。 在主题区域(例如bean或盒子)中,窗格不能用作常规块(我认为) 我想知道这里提到的与Bean相比的优点是什么(“提供附加功能,使内容管理员可以更轻松地布置某些页面”)

4
第三方基于PHP类的库的最佳实践
我目前正在开发一个需要第三方PHP库的模块,该库本质上是一个PHP类。通常,我会将其放置在include /子目录中并添加 files[] = includes/Foo.php 到我的.info文件,并在我执行$foo = new Foo()。时让Drupal 7类自动加载器完成它的工作 。 不过,我有权向公众发布此模块,而不希望将库与模块一起使用。我非常了解许可的复杂性,但是出于这个问题,我想忽略它。 还有一个类似的问题,如何包含PHP库?,但我真的不认为这可以解决我的难题。 这个回答这个问题本质上说,使用库API,但每一个模块,我已经发现,使用这只是做一个libraries_get_path()得到基本路径(包括备用路径时,不可用),然后再执行require或include一些错误检查(或不检查)。都做类似的事情: if (!class_exists('Foo')) { $path = function_exists('libraries_get_path') ? libraries_get_path('foo') : 'sites/all/libraries/foo'; if (!include($path . '/Foo.php')) { // handle this error } } 在这种情况下,Libraries API实际上并没有做任何事情。与要求用户下载副本并将其放置在模块文件夹本身中的旧方法相比,我看不出使用此方法的优势。而且,仍然存在模块开发人员仍然需要使用/ 手动进行加载的问题。例如,Facebook模块只是将库加载到中,而HTML Purifier模块具有内部功能,可在每次需要该库时进行检查和加载。includerequirehook_init 这可能是一种普遍的做法,但似乎不是最佳做法。 我的模块应该主动声明一个a hook_libraries_info以便我使用libraries_load('foo')吗?这似乎也很奇怪。
17 7  theming 

2
实现自定义缓存的最佳做法?
对于每种实体类型的每个实例,我都会生成许多缓存,它们的名称如下: [module_name]__[entity_type]__[entity_id]__[string_depending_on_where_the_cache_came_from] 现在,无论何时更新实体,我都希望删除所有从相关实体类型和ID开始的缓存。 我应该如何存储/清除这些缓存? 当前,我只是cache_set(),但是在我要清除时出现了一个问题,因为我不知道所有相关缓存的名称。使用db_delete()删除缓存条目是否安全?
17 7  caching 

3
直接在“产品展示”中管理“产品:图像”字段的显示?
我有一个“产品显示”节点,显示“产品”(由Drupal Commerce模块提供支持)。 我已经安装了Display Suite模块,并为“产品展示”内容类型创建了新的查看模式。 问题在于此新模式与“产品”的默认查看模式相关联,我看不出有任何方法可以对此进行更改。 我需要为“产品”创建一个新模式,并获得与此新模式关联的“产品展示”的查看模式。 反正有做吗?

2
按节点类型覆盖html.tpl.php
在我主题的template.php文件中,我尝试了以下操作: function media_preprocess_page(&$vars, $hook) { if (isset($vars['node'])) { // If the node type is "blog" the template suggestion will be "html--blog.tpl.php". $vars['theme_hook_suggestions'][] = 'html__'.$vars['node']->type; // If the node type is "blog" the template suggestion will be "page--blog.tpl.php". $vars['theme_hook_suggestions'][] = 'page__'.$vars['node']->type; // If the node id is "33" the template suggestion …
17 7  theming 


5
如何删除所有节点/字段修订版?
我有一个drupal 7个站点,其中保留节点和字段修订。如果错误地保存了一个新的有问题的版本,而我想恢复原状,则我会进行修订。 但是,现在我想清理和优化数据库,以减少硬盘空间。 对于站点的所有节点/字段,删除当前版本以外的所有修订有哪些方法?
17 7  database  nodes 

1
如何在分阶段环境中正确删除模块?
一些模块具有取消安装例程。通常会删除该模块的数据库表,变量表中的变量以及该模块引入的语言环境。这些例程位于该.install模块的中。 因此,如果没有该模块,则无法运行它们。所以这是我们当前的步骤。我的问题是:这可以更简单,更有效地完成吗?说我删除foo_bar模块。 在RCS中,准备一个新版本,其中: 删除了在foo_bar之上使用或构建的所有css和主题覆盖。 取决于foo_bar的模块的所有css和theme-overrides均被删除。 将该发布推送到接受状态。(使用admin / modules)使用生产数据库的最新副本测试取消安装。 如果一切顺利,则将新的代码库部署到生产环境中,然后在其中释放foo_bar及其依赖项。这将在各个模块中调用卸载,以清理数据库。 在RCS(git)中,准备一个新发行版,其中的代码实际上已被删除。 将其部署到接受测试的地方,以便我们测试是否意外地依赖于此(一些丑陋的模块或主题功能直接包含来自其他模块的文件。最著名的是CSS,JS或图像文件)。 如果接受,则将新版本部署到生产中。生产现在有一个干净的数据库和一个干净的代码库。 我看不到如何解决的问题是,这总是需要两个版本。由于在Drupal中,一个发行版要求站点处于离线状态,这意味着两次停机仅删除一个模块。它还需要两个发布过程,在专业托管环境中,这可能是非常昂贵,费时或令人沮丧的。 如果在第一次迭代中从代码库中删除模块,则无法运行卸载钩子,从而在数据库中保留了很多皮棉;不仅是几个表,而且大多数是变量和语言环境。如果我们不从代码库中删除模块,这意味着代码库将随着陈旧的未使用代码一起增长;这不会产生性能开销,但是会使维护代码越来越难。 您如何处理? [编辑:经常添加关于部署过程很困难的说明]
17 nodes  deployment 

3
如何处理/清理过时的聚合CSS / JS?
我只使用内置于CSS / JS聚合中的Drupal 7,但是css.gz和js.gz文件所在的文件文件夹正在以相当快的速度填充,尽管我敢肯定这会需要一段时间在它完全充满驱动器之前,现在是任何时候处理这​​种情况的好时机。 / js中的当前文件数为335 / css中的当前文件数为451 我应该采用任何标准方法来处理这种情况吗?我更喜欢一个解决方案,使drupal处于循环中。 此外,我发现许多gz文件都有非gz副本。是否同时保留.css和.css.gz文件有什么原因?可能会gr废? 谢谢

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.