Skip to main content
Bumped by Community user
Bumped by Community user
Bumped by Community user
adding code
Source Link

Code:

<?php
$_product = $this->getProduct();
$_helper = $this->helper('catalog/output');
$images = $this->getGalleryImages();

$tehurl = $_product->getProductUrl();
$suburl = substr($tehurl, strrpos($tehurl, "/") + 1);
$suburl = str_replace("-", "", $suburl);
?>
<div class="product-image-gallery">
<?php if (file_exists($_SERVER['DOCUMENT_ROOT']."/assets/front/saleimg/productview/tp-1x/".$suburl."-0.png")) { ?>
    <div class="productslider">
        <div class="view">
            <ul>
<?php for ($x = 0; $x <= 2; $x++) { ?>
                <li><img src="/assets/front/saleimg/productview/tp-1x/<?php echo $suburl."-".$x; ?>.png" srcset="/assets/front/saleimg/productview/tp-2x/<?php echo $suburl."-".$x; ?>.png 2x" /></li>
<?php } ?>
            </ul>
        </div>
    </div>
<?php
}
elseif (file_exists($_SERVER['DOCUMENT_ROOT']."/assets/front/saleimg/productview/".$suburl.".jpg")) {
?>
    <img src="/assets/front/saleimg/productview/<?php echo $suburl; ?>.jpg" srcset="/assets/front/saleimg/productview/<?php echo $suburl; ?>-2x.jpg 2x" />
<?php
}
elseif (count($images) > 0) {
    $i = 0;
    foreach ($this->getGalleryImages() as $_image):
        if ($this->isGalleryImageVisible($_image)):
?>
    <img id="image-<?php echo $i; ?>" src="<?php echo $this->getGalleryImageUrl($_image); ?>" />
<?php
        endif;
        $i++;
    endforeach;
}
else {
?>
<!-- <?php
var_dump($_SERVER['DOCUMENT_ROOT']);
var_dump($_SERVER['DOCUMENT_ROOT']."/assets/front/saleimg/productview/tp-1x/".$suburl."-0.png");
$lame = $_SERVER['DOCUMENT_ROOT']."/assets/front/saleimg/productview/tp-1x/".$suburl."-0.png";
var_dump(file_exists($lame));   
var_dump(file_exists($_SERVER['DOCUMENT_ROOT']."/assets/front/saleimg/productview/tp-1x/".$suburl."-0.png")); 
var_dump(is_file($_SERVER['DOCUMENT_ROOT']."/assets/front/saleimg/productview/tp-1x/".$suburl."-0.png")); 
var_dump(is_readable($_SERVER['DOCUMENT_ROOT']."/assets/front/saleimg/productview/tp-1x/".$suburl."-0.png"));
?> -->
    <img src="/assets/front/saleimg/placeholders/productbottles.png" />
<?php } ?>
</div>
<?php echo $this->getChildHtml('after');

Code:

<?php
$_product = $this->getProduct();
$_helper = $this->helper('catalog/output');
$images = $this->getGalleryImages();

$tehurl = $_product->getProductUrl();
$suburl = substr($tehurl, strrpos($tehurl, "/") + 1);
$suburl = str_replace("-", "", $suburl);
?>
<div class="product-image-gallery">
<?php if (file_exists($_SERVER['DOCUMENT_ROOT']."/assets/front/saleimg/productview/tp-1x/".$suburl."-0.png")) { ?>
    <div class="productslider">
        <div class="view">
            <ul>
<?php for ($x = 0; $x <= 2; $x++) { ?>
                <li><img src="/assets/front/saleimg/productview/tp-1x/<?php echo $suburl."-".$x; ?>.png" srcset="/assets/front/saleimg/productview/tp-2x/<?php echo $suburl."-".$x; ?>.png 2x" /></li>
<?php } ?>
            </ul>
        </div>
    </div>
<?php
}
elseif (file_exists($_SERVER['DOCUMENT_ROOT']."/assets/front/saleimg/productview/".$suburl.".jpg")) {
?>
    <img src="/assets/front/saleimg/productview/<?php echo $suburl; ?>.jpg" srcset="/assets/front/saleimg/productview/<?php echo $suburl; ?>-2x.jpg 2x" />
<?php
}
elseif (count($images) > 0) {
    $i = 0;
    foreach ($this->getGalleryImages() as $_image):
        if ($this->isGalleryImageVisible($_image)):
?>
    <img id="image-<?php echo $i; ?>" src="<?php echo $this->getGalleryImageUrl($_image); ?>" />
<?php
        endif;
        $i++;
    endforeach;
}
else {
?>
<!-- <?php
var_dump($_SERVER['DOCUMENT_ROOT']);
var_dump($_SERVER['DOCUMENT_ROOT']."/assets/front/saleimg/productview/tp-1x/".$suburl."-0.png");
$lame = $_SERVER['DOCUMENT_ROOT']."/assets/front/saleimg/productview/tp-1x/".$suburl."-0.png";
var_dump(file_exists($lame));   
var_dump(file_exists($_SERVER['DOCUMENT_ROOT']."/assets/front/saleimg/productview/tp-1x/".$suburl."-0.png")); 
var_dump(is_file($_SERVER['DOCUMENT_ROOT']."/assets/front/saleimg/productview/tp-1x/".$suburl."-0.png")); 
var_dump(is_readable($_SERVER['DOCUMENT_ROOT']."/assets/front/saleimg/productview/tp-1x/".$suburl."-0.png"));
?> -->
    <img src="/assets/front/saleimg/placeholders/productbottles.png" />
<?php } ?>
</div>
<?php echo $this->getChildHtml('after');
Source Link

php file_exists (and is_file and is_readable) not working once cache is enabled

I have developed a theme for a clients magento installation which allows manually uploaded files to be used in catalog/product/view/media.phtml. This is so I can use srcset to load higher resolution images.

The code uses file_exists() to see if the imagery has been uploaded before displaying a placeholder if nothing is present.

As soon as I turn enable the caches, the file_exists() function returns false and my placeholder is shown. If I disable the caches, the correct images return.

I have tried using relative paths as well as getcwd() and $_SERVER['DOCUMENT_ROOT'] to no avail. I have tried the same code with is_file() and is_readable() to no avail.

I have output the calculated path within the cached template to verify that the path it has generated is correct.

The only thing stopping the images from loading is enabling the caches which shaves 2 seconds off the load time so is definitely desirable.

Am I missing something or is this a bug?

Magento CE 1.9.1.0

PHP 5.4