XAMPP et répertoire Magento problèmes de sélection
-
16-10-2019 - |
Question
Ok j'ai un problème ennuyeux. J'ai un code dans un module d'aide personnalisé que j'utiliser pour redimensionner les images et enregistrer une copie en cache. Maintenant, cela ne fonctionne pas. Cependant, si je vais dans mage.php et changer la DS
variable déclarée de DIRECTORY_SEPARATOR
à /
il fonctionne parfaitement. Cependant alors certains modules communautaires cassez qui utilisent le DS
standard.
Voici ma méthode:
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;
}
Et l'application de travail / Mage.php
define('DS', DIRECTORY_SEPARATOR);
Maintenant, si je change que DS '/' il fonctionne très bien.
Je puis essayé ce qui suit:
define('DS2', '/');
Ensuite, change la DS à DS2 dans ma méthode, mais cela n'a pas non plus le travail, ni changer à une chaîne ou variable.
de ma recherche sur le sélecteur Directory est défini par le type de serveur, cela devrait être un serveur linux mais seulement quand je l'utilise moi-même DS il breaks et essayé de sortie \ au lieu de /, partout ailleurs correctement les sorties /.
L'enfer que je fais mal?
La solution
Vous confondez les URL avec des répertoires.
getBaseUrl
est pour les URL qui seront toujours séparés par /
getBaseDir
est pour les répertoires, ce qui aura un DS
variable définie par DIRECTORY_SEPARATOR
variable constante de PHP - qui est ce que Magento raccourcit jusqu'à DS