質問

わかりました、私には迷惑な問題があります。画像のサイズを変更し、キャッシュコピーを保存するために使用するカスタムヘルパーモジュールにコードがあります。今、これは機能しません。ただし、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