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