Проблемы селектора каталогов Xampp и Magento

magento.stackexchange https://magento.stackexchange.com/questions/1255

  •  16-10-2019
  •  | 
  •  

Вопрос

Хорошо, у меня есть раздражающая проблема. У меня есть какой -то код в пользовательском вспомогательном модуле, который я использую для изменения размера изображений и сохранения кэшированной копии. Теперь это не работает. Однако, если я захожу в mage.php и изменю объявленную переменную DS из DIRECTORY_SEPARATOR к / Это работает отлично. Однако тогда некоторые модули сообщества ломаются, которые используют стандарт DS.

Вот мой метод:

public function resizeImg($fileName, $width, $height, $constrain = false, $ratio = false)
{
    $folderURL = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
    $imageURL = $folderURL . $fileName;

    $basePath = Mage::getBaseDir(Mage_Core_Model_Store::URL_TYPE_MEDIA) . DS . $fileName;
    $newPath = Mage::getBaseDir(Mage_Core_Model_Store::URL_TYPE_MEDIA) . DS . "resized" . DS . $width . DS . $fileName;
    //if width empty then return original size image's URL
    if ($width != '') {
        //if image has already resized then just return URL
        if (file_exists($basePath) && is_file($basePath)/* && !file_exists($newPath)*/) {
            $imageObj = new Varien_Image($basePath);
            $imageObj->constrainOnly($constrain);
            $imageObj->keepAspectRatio($ratio);
            $imageObj->keepFrame(FALSE);
            $imageObj->resize($width, $height);
            $imageObj->save($newPath);
        }
        $resizedURL = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . "resized" . DS . $width . DS . $fileName;
     } else {
        $resizedURL = $imageURL;
     }
     return $resizedURL;
}

И рабочее приложение/mage.php

define('DS', DIRECTORY_SEPARATOR);

Теперь, если я изменю это DS на '/', это работает нормально.

Затем я попробовал следующее:

define('DS2', '/');

Затем изменяет DS на DS2 в моем методе, но это также не сработало, и не изменяет его на строку или переменную.

Из моего поиска селектор каталогов определяется типом сервера, это должен быть сервер Linux, и все же только тогда, когда я использую DS, он ломается и пытался выводить вместо /, везде, он правильно выводит /.

Черт, я делаю не так?

Это было полезно?

Решение

Вы сбиваете с толку URL -адреса с каталогами.

getBaseUrl для URL, которые всегда будут разделены /

getBaseDir для каталогов, которые будут иметь переменную DS определяется постоянной переменной PHP DIRECTORY_SEPARATOR - Что и Magento сокращается до DS

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top