Antworten auf deine Fragen:
Neues Thema erstellen

Musik mittels php-Code in Shop integrieren

Tease

wissensdurstig

Hallo zusammen,

bin gerade dabei einen Magento Shop einzurichten und stolper nun über ein PHP-Problem. Ich kenn mich zwar mit HTML, CSS und auch Magento ansich aus, aber mit PHP happerts noch etwas. Deswegen erhoffe ich mir Hilfe hier aus dem Forum. Der Shop basiert zwar auf Magento, aber ich denke, dass man auch ohne Magento-Kenntnisse, mir hier weiterhelfen kann, denn mein Problem liegt ausschließlich am php-Code.

Und zwar möchte ich für einen Shop, auf dem Musik-Stücke verkauft werden soll, eine kleine Musik-Vorschau dargestellt werden.
Dazu habe ich ein Attribute mit dem Namen "preview" erstellt, in dem ein Link zu der Musik-Datei hinterlegt ist. (Siehe Screenshot Nr.1)

Okay, nun möchte ich, dass in der Übersicht aller Produkte, also auf der Seite, auf der alle Produkte mit kleinem Vorschau-Bild, Namen des Produktes etc, erscheinen, eine kleine Vorschau dieser Datei abgespielt werden kann. Also, ein eingebauter "M.P.3-Player".
Bei meier schrittweisen Annäherung an das Thema, wollte ich zuerst mal einfach einen Link in die Site einbauen, um zu testen, ob das überhaupt geht.
Dazu habe ich folgenden Code in den bereits bestehenden Quellcode eingefügt:
PHP:
<a href="<?php echo $this->htmlEscape($_product->getpreview()) ?>"><?php echo $this->__('Vorschau') ?></a><li class="item">
Okay, das geht. (Screenshot Nr.2)

Nun wollte ich diesen Text-Link mit einer "Embed-Audio" Funktion ersetzen, aber hier scheiter ich leider momentan.
Mit folgendem Code hat's leider nicht funktioniert:
PHP:
echo "<embed src=\"media/fool.mp3\" autostart=\"true\" loop=\"true\" hidden=\"true\"></embed>\n"
    ."<noembed><bgsound src=\"media/fool.mp3\" loop=\"infinite\"></noembed>";

Hier ist der ganze php-Code der Datei, falls das weiterhilft:

PHP:
<?php
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    design
 * @package     base_default
 * @copyright   Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
?>
<?php
/**
 * Product list template
 *
 * @see Mage_Catalog_Block_Product_List
 */
?>
<?php
    $_productCollection=$this->getLoadedProductCollection();
    $_helper = $this->helper('catalog/output');
?>
<?php if(!$_productCollection->count()): ?>
<p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
<?php else: ?>
<div class="category-products">
    <?php echo $this->getToolbarHtml() ?>
    <?php // List mode ?>
    <?php if($this->getMode()!='grid'): ?>
    <?php $_iterator = 0; ?>
    <ol class="products-list" id="products-list">
    <?php foreach ($_productCollection as $_product): ?>
        <li class="item<?php if( ++$_iterator == sizeof($_productCollection) ): ?> last<?php endif; ?>">
            <?php // Product Image ?>
            <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135); ?>" width="135" height="135" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>
            <?php // Product description ?>
            <div class="product-shop">
                <div class="f-fix">
                    <?php $_productNameStripped = $this->stripTags($_product->getName(), null, true); ?>
                    <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped; ?>"><?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?></a></h2>
                    <?php if($_product->getRatingSummary()): ?>
                    <?php echo $this->getReviewsSummaryHtml($_product) ?>
                    <?php endif; ?>
                    <?php echo $this->getPriceHtml($_product, true) ?>
                    <?php if($_product->isSaleable()): ?>
                        <p><button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></p>
                    <?php else: ?>
                        <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
                    <?php endif; ?>
                    <div class="desc std">
                        <?php echo $_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description') ?>
                        <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped ?>" class="link-learn"><?php echo $this->__('Learn More') ?></a>
                    </div>
                    <ul class="add-to-links">
                        <?php if ($this->helper('wishlist')->isAllow()) : ?>
                            <li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
                        <?php endif; ?>
                        <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
                            <li><span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
                        <?php endif; ?>
                    </ul>
                </div>
            </div>
        </li>
    <?php endforeach; ?>
    </ol>
    <script type="text/javascript">decorateList('products-list', 'none-recursive')</script>
    <?php else: ?>
    <?php // Grid Mode ?>
    <?php $_collectionSize = $_productCollection->count() ?>
    <?php $_columnCount = $this->getColumnCount(); ?>
    <?php $i=0; foreach ($_productCollection as $_product): ?>
        <?php if ($i++%$_columnCount==0): ?>
        <ul class="products-grid">
        <?php endif ?>
            <li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">
                <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135); ?>" width="135" height="135" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>
                <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></a></h2>
<a href="<?php echo $this->htmlEscape($_product->getpreview()) ?>"><?php echo $this->__('Vorschau') ?></a><li class="item">
                <?php if($_product->getRatingSummary()): ?>
                <?php echo $this->getReviewsSummaryHtml($_product, 'short') ?>
                <?php endif; ?>
                <?php echo $this->getPriceHtml($_product, true) ?>
                <div class="actions">
                    <?php if($_product->isSaleable()): ?>
                        <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
                    <?php else: ?>
                        <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
                    <?php endif; ?>
                    <ul class="add-to-links">
                        <?php if ($this->helper('wishlist')->isAllow()) : ?>
                            <li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
                        <?php endif; ?>
                        <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
                            <li><span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
                        <?php endif; ?>
                    </ul>
</li>
                </div>
            </li>
        <?php if ($i%$_columnCount==0 || $i==$_collectionSize): ?>
        </ul>
        <?php endif ?>
        <?php endforeach ?>
        <script type="text/javascript">decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])</script>
    <?php endif; ?>
    <div class="toolbar-bottom">
        <?php echo $this->getToolbarHtml() ?>
    </div>
</div>
<?php endif; ?>

Wäre euch für jegliche Hilfe sehr dankbar!


Screenshot Nr.1:

Uploaded with

Screenshot Nr.2:

Uploaded with

Uploaded with
 

AW: Musik mittels php-Code in Shop integrieren

Also erstmal: Hast du error_reporting an?
Außerdem: Du bindest den Code per echo ... ein, benutzt allerdings keine php tags, da sich in dem Code ansich auch immer Php Tags befinden, denke ich mal, dass an der Stelle wo du dein echo benutzt keine php Tags geöffnet sind, d.h. versuch mal statt
Code:
[COLOR=#000000]<a href="[COLOR=#0000BB]<?php [/COLOR][COLOR=#007700]echo [/COLOR][COLOR=#0000BB]$this[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]htmlEscape[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$_product[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]getpreview[/COLOR][COLOR=#007700]()) [/COLOR][COLOR=#0000BB]?>[/COLOR]">[COLOR=#0000BB]<?php [/COLOR][COLOR=#007700]echo [/COLOR][COLOR=#0000BB]$this[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]__[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]'Vorschau'[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]?>[/COLOR]</a>[/COLOR]
Code:
<?php [COLOR=#000000][COLOR=#007700]echo [/COLOR][COLOR=#DD0000]"<embed src=\"media/fool.mp3\" autostart=\"true\" loop=\"true\" hidden=\"true\"></embed>\n"
    [/COLOR][COLOR=#007700].[/COLOR][COLOR=#DD0000]"<noembed><bgsound src=\"media/fool.mp3\" loop=\"infinite\"></noembed>"[/COLOR][COLOR=#007700];
[/COLOR][/COLOR]?>
Ist untested aber sollte dem Problem nahe kommen :)

Gruß

Pendrake
 
AW: Musik mittels php-Code in Shop integrieren

Danke, das geht schon mal in die richtige Richtung.
Bei deinem php-Code ist es jetzt so, dass die Musik automatisch startet sobald die Seite geladen wird, was ja auch logisch ist, da autostart=true angegeben ist. Aber wenn ich auf "false" stelle, habe ich keine Ahnung wie ich die Musik einstarten könnte, es fehlt ja ein Player mit Start-Audio Funktion. Am liebsten hätte ich einen integrierten Player, wie so etwas hier:
HTML:
<OBJECT ID="MediaPlayer" WIDTH="110" HEIGHT="50" 
CLASSID="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
STANDBY="Loading Windows Media Player components..."
TYPE="application/x-oleobject">
<PARAM name="FileName" value=".../mpp/media/fool.mp3">
<PARAM name="autostart" value="true">
<PARAM name="ShowControls" value="true">
<param name="ShowStatusBar" value="true">
<EMBED TYPE="application/x-mplayer2" src="..../mpp/media/fool.mp3"
NAME="MediaPlayer" WIDTH="110" HEIGHT="50" ShowControls="1" ShowStatusBar="1" autostart="1">
</EMBED>
</OBJECT>

Das ist eigentlich genau das was ich suche, nur bei dieser Lösung kann man ja nur eine statische URL angeben. Ich möchte, dass sich die Seite den Song irgendwie per php-code "get" das bei Magento eingegebene Attribute holt, das von Song zu Song natürlich unterschiedlich ist.

Nachtrag::
Ich hab jetzt einfach mal probiert, bei dem oben angegebenen Code die statische URL mit
PHP:
<PARAM name="FileName" value="<?php echo $this->htmlEscape($_product->getpreview()) ?>">
zu ersetzen und eigentlich funktioniert jetzt alles so wie gewünscht. :nick:
Aber irgendiwe bin ich mir nicht sicher, ob man das so machen kann, oder gibts da Probleme mit irgendwelchen Broswern? Kommt mir jetzt etwas sehr zusammengeschustert vor. ;)
 
AW: Musik mittels php-Code in Shop integrieren

Hi,

auch wenn die Antwort spät kommt: Mach dir da mal keine Gedanken, Probleme sollte es da keine geben, eine value so zu "belegen" ist ganz normal, also das man value="<?php echo .. ?>" schreibt.

Gruß

Pendrake
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.965
Beiträge
1.540.137
Mitglieder
68.145
Neuestes Mitglied
filmzeugs
Oben