Selector problemas directorio XAMPP y Magento
-
16-10-2019 - |
Pregunta
Ok tengo un problema molesto. Tengo algo de código en un módulo de ayuda a medida que utilizo para cambiar el tamaño de las imágenes y guardar una copia en caché. Ahora bien, esto no funciona. Sin embargo si entro en mage.php y cambiar el DS
variable declarada de DIRECTORY_SEPARATOR
a /
funciona perfectamente. Sin embargo a continuación, algunos módulos de la comunidad rompen que utilizan el DS
estándar.
Aquí es mi método:
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;
}
Y la aplicación de trabajo / Mage.php
define('DS', DIRECTORY_SEPARATOR);
Ahora si cambio que DS a '/' que trabaja muy bien.
Me trató entonces la siguiente:
define('DS2', '/');
A continuación, cambia la DS a DS2 en mi método, pero esto también no funcionaba, ni el cambio en una cadena o variable.
de mi búsqueda en el selector de directorio se define por el tipo de servidor, este debe ser un servidor Linux y sin embargo, sólo cuando uso DS mismo que se rompe y trataron de salida \ en lugar de /, en todas partes correctamente salidas /.
diablos estoy haciendo mal?
Solución
URL está confundiendo con los directorios.
getBaseUrl
es para URLs, que siempre estarán separados por /
getBaseDir
es para Directorios, que tendrá un DS
variable definida por la constante DIRECTORY_SEPARATOR
variables de PHP - que es lo que Magento acorta hasta DS