Domanda

Ok Ho un problema fastidioso. Ho qualche codice in un modulo di supporto personalizzato che io uso per ridimensionare le immagini e salvare una copia cache. Ora, questo non funziona. Tuttavia, se entro in mage.php e cambiare la DS variabile dichiarata da DIRECTORY_SEPARATOR a / funziona perfettamente. Comunque poi alcuni moduli della comunità delle interruzioni che usano il DS standard.

Ecco il mio metodo:

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;
}

E l'applicazione di lavoro / Mage.php

define('DS', DIRECTORY_SEPARATOR);

Ora, se cambio che DS a '/' funziona benissimo.

Allora ho provato il seguente:

define('DS2', '/');

Poi cambia il DS a DS2 nel mio metodo, ma anche questo non ha funzionato, né la modifica in una stringa o variabile.

dalla mia ricerca sul selettore di directory è definita dal tipo di server, questo dovrebbe essere un server linux ma solo quando uso DS mi si rompe e ha cercato di uscita \ invece di /, ovunque in modo corretto le uscite /.

Il diavolo sto facendo di sbagliato?

È stato utile?

Soluzione

Stai confondendo gli URL con le directory.

getBaseUrl è per gli URL, che sarà sempre separate da /

getBaseDir è per Directory, che avrà un DS variabile definita dalla variabile costante DIRECTORY_SEPARATOR di PHP - che è ciò che Magento accorcia fino a DS

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top