it-swarm.com.de

Den mit einem Beispiel verknüpften Dateinamen im Bereich "Herunterladbare Informationen" in Magento abrufen

Ich arbeite an einer Anpassung des "Samples" -Blocks für Produkte. Grundsätzlich muss ich wissen, wie man den Dateinamen aus einem Beispiel erhält.

Daher kann ich aus meiner Sicht den folgenden Code verwenden, um ein Array von Beispielen abzurufen:

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

... und ich kann diese Samples gut genug durchlaufen. Ich versuche herauszufinden, wie ich den Namen der Datei abrufen kann, die mit diesem Beispiel verknüpft ist. Grundsätzlich möchte ich eine Anpassung der Ansicht vornehmen, bei der, wenn es sich bei der Beispieldatei um eine MP3-Datei handelt, ein eingebetteter Player angezeigt wird. Für alle anderen Dateitypen ist das Standardverhalten (ein Link wird angezeigt, der beim Klicken ein neues Fenster öffnet und das Beispiel anzeigt) vollkommen in Ordnung.

1
jefflunt

Wenn Sie also $ samplePath und $ sampleFile zusammen verketten, erhalten Sie den vollständigen Pfad der Beispieldatei auf der Festplatte. d. h .: $samplePath . $sampleFile holt Sie /path/to/samples/folder/sub-folder/path/to/file.mp3

In diesem Beispiel ist es eigentlich nicht erforderlich, $ samplePath abzurufen, da Sie nur testen können, ob $ sampleFile wie unten gezeigt mit ".mp3" endet oder nicht, aber ich wollte demonstrieren, wie Sie trotzdem zum vollständigen Pfad gelangen.

<?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
Nick