PrestaShop 1.6从非默认目录读取镜像文件



Hello Stack Overflow社区,几周前我为我工作的公司在Xampp服务器上安装了PrestaShop 1.6.0.14。他们有一个web应用程序来处理他们网站上的所有图像文件,例如,当用户用右键单击->在不同选项卡或类似的打开图像时,显示的url类似于:

http://www.example.net/FileViewer/File.aspx?Type=3&File=WebsiteFileDirectory/img/logo.jpg&Width=138&Height=50

可以看到,在&File=部分之后是一个目录结构和一些用于处理图像的参数。这个目录(WebsiteFileDirectory)位于C:/StorageFiles/Volume1/,用于图像处理的web应用程序查找文件源。

我的PrestaShop /img/文件夹需要在该位置,目录结构类似于C:/StorageFolder/Volume1/PrestashopFileDirectory/img。到目前为止,我已经将/img/移动到该位置,并设法使Prestashop 通过编辑config/defines.inc.phpconfig/defines_uri.inc.php

中的常量_PS_IMG_, _PS_IMG_DIR__PS_CORE_IMG_DIR_将写入新位置

但是在那之后,当我试图使PrestaShop 从该位置读取时,我遇到了一个砖墙,我甚至尝试通过硬编码指向前面提到的目录的uri_path值来编辑LinkCore::getImageLink()方法,没有任何结果,PS将尝试从默认位置读取(如myshop/16-small_default/image_filename.jpg)

如何使PrestaShop从该位置读取?有办法做到这一点吗?

提前感谢。

注::为了确保我得到一个直接的答案,我想让你知道,到目前为止,我已经知道了PS 1.6中的图像文件系统是如何工作的,如果图像id是25,PS将把该文件存储在img/p/2/5/中用于产品图像,我对与此相关的任何事情都没有问题。

结果是getImageLink必须得到一个URL(来自我前面提到的图像处理web应用程序),而不是文件系统路径。因此,这个方法中的uri_path变量看起来像:

$uri_path = 'http://www.example.net/FileViewer/File.aspx?Type=3&File='.$my_img_directory.'&Width=138&Height=50';

到目前为止,我认为需要进行类似调整的方法是getMediaLink和getCatImageLink,它们来自classes/Link.php文件中的相同Link类。

最新更新