Получение имени файла, связанного с образцом, в области "Загружаемая информация" в Magento


Я работаю над настройкой блока "Образцы" на продуктах. В основном мне нужно знать, как получить имя файла из образца.

Итак, я могу использовать следующий код, на мой взгляд, для получения массива образцов:

<?php $_samples = $this->getSamples() ?>

... и я могу достаточно хорошо повторить эти образцы. Я пытаюсь понять, как я могу получить имя файла, связанного с этим образцом? Я в основном хочу сделать настройку для представления, где, если образец файл - это MP3, я показываю встроенный плеер. Для всех других типов файлов поведение по умолчанию (отображается ссылка, при нажатии на которую открывается новое окно и отображается образец) идеально подходит.

Author: paulmorriss, 2011-05-20

1 answers

Итак, если вы объедините $samplepath и $samplefile вместе, вы получите полный путь к файлу образца на диске. т.е.: $samplePath . $sampleFile получает вас /path/to/samples/folder/sub-folder/path/to/file.mp3

В этом примере на самом деле нет необходимости получать путь $samplepath, так как вы можете просто проверить, заканчивается ли файл $samplefile на ".mp3", как показано ниже, но я хотел продемонстрировать, как в любом случае добраться до полного пути.

<?php
if ($this->hasSamples()):
    $_samples = $this->getSamples();

    foreach ($_samples as $_sample):
        $samplePath = $_sample->getBasePath(); // returns "/path/to/samples/folder"
        $sampleFile = $_sample->getSampleFile(); // returns "/sub-folder/path/to/file.mp3"

        // Figure out if the filename ends with ".mp3"
        $_is_mp3 = (bool)(".mp3" == substr($sampleFile, -4));
        if ($_is_mp3):
            //show the mp3 player
        else:
            //show a link to the file
        endif;

    endforeach;

endif;
?>
 1
Author: Nick, 2011-05-23 16:08:18