我是 Drupal 的新手,但是我一直在研究模块开发,并且我设法使用块和 jQuery 完成了一些功能。但是需求变得更大了,在某些情况下,用户想要上传和图像,并裁剪它以创建将在其他块中呈现的缩略图。我知道这个确切的行为已经在一些社区模块中完成,特别是 ImageFieldCrop,所以我想使用它......但是我想将上传的图像和裁剪的图像保存在我的自定义模块内的文件夹中。那么问题来了?我该如何扩展该模块?...是否有必要重写代码以指向正确的路径???或者有没有办法拦截钩子方法?由于我是drupal开发的新手,如果这听起来像是一个基本问题,我深表歉意...... 无论如何,如果有人能给我提供一些链接或教程来展示如何拦截钩子或在我创建的模块上使用其他模块代码,那就太好了。非常感谢
问问题
477 次
1 回答
0
如果您希望允许用户上传图像和文件,这可能最好使用“文件字段”来实现,它在 D7 中成为其核心模块集的一部分。当您添加和配置字段时(作为内容类型创建过程的一部分),您有机会设置您希望文件保存到的路径。
JS 裁剪和图像样式
在作物解决方案方面,我可以推荐EPSA Crop模块。这允许您的用户为每个上传的图像定义多个不同的裁剪区域,并使用交互式 JS 小部件来实现。它符合 D7 的“图像样式”(D6 中的正式图像缓存)的约定,允许有效地重用和操作图像;例如,您的用户上传了一张高分辨率图像,并且可以创建变体以在您网站的各个地方使用。
创建样式后,您可以使用 API 主题调用 ( theme_image_style )以编程方式添加它们
避免忽略既定的约定
然而,Drupal 作为一个系统设置了许多约定,理想情况下应该遵循这些约定。
对于用户创建的文件,最好将它们存储在站点的文件目录中。Drupal 使用两种类型的文件访问——公共的,它不关注任何类型的访问权限和私有的——它允许应用访问限制。通过选择将文件存储在模块目录中,您可能会给自己或任何未来的开发人员带来问题。
我建议不要将这些文件保存在您的模块目录中,除非您有充分的理由这样做。
于 2012-06-28T16:37:44.983 回答