次のようにファイルへのWebパスを取得できます。
$filename = 'elephant.jpg';
$path_to_file = $this->getSkinUrl('manufacturertab');
$full_path = $path_to_file . '/' . $filename;
しかし、ファイルが存在しない場合は、画像リンクが壊れてしまいます。
私はこれを試しました:
if(!file_exists($full_path)) {
Mage::log('File doesn\'t exist.');
} else {
?><img src="<?php echo $full_path ?>" /><?php
}
もちろん、file_exists
URLでは機能しないため、機能しませんでした。
どうすればこれを解決できますか?
1.)MagentoでシステムパスとWeb URLを変換できますか?
例:(擬似コード)のようなもの:
$system_path = $this->getSystemPath('manufacturertab');
それは対称的でポータブルに見えます。
または2.)リモートリソースの存在をチェックするためのPHPまたはMagento関数はありますか?しかし、リソースは本当にローカルであるため、それは無駄に思えます。PHPがhttpメソッドを使用してローカルファイルをチェックするのはばかげているでしょう。
私が現在使用している解決策:
$system_path = Mage::getBaseDir('skin') . '/frontend/default/mytheme/manufacturertab'; // portable, but not pretty
$file_path = $system_path . '/' . $filename;
次に、表示するかどうかfile_exists
を確認し、表示する場合はを表示しimg
ます。しかし、システムパスのパスの一部をハードコーディングする必要があることと、URLパスのメソッドを使用することの非対称性は好きではありません。両方の方法があるといいでしょう。