Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Boxen sind die einfachste Möglichkeit eine Ausgabe im Template zu erzeugen, da die Box im Gegensatz zur Page weder Registriert werden noch ein Template zugewiesen werden muss.

Um eine Box zu realisieren erstellen Sie eine php-Datei im Ordner /plugins/my_plugin/boxes/ sowie eine Templatedatei im Ordner /plugins/my_plugin/templates/boxes/. Der Name der php-Datei muss dabei identisch zum Namen des Plugins (zzgl. der Endung ".php") sein. Ähnlich ist es bei der Template-Datei, lediglich muss dieses eine HTML-Datei sein und den Suffix "box_" haben.

Beispiel:

Plugin: /plugins/my_testplugin/

php-Datei: /plugins/my_testplugin/boxes/my_testplugin.php

Template-Datei: /plugins/my_testplugin/templates/boxes/box_my_testplugin.html

 

Beispiel der php-Datei:

Code Block
languagexml
title/plugins/xt_bestseller_products/boxes/xt_bestseller_products.php
defined('_VALID_CALL') or die('Direct Access is not allowed.');
// Datei vor direktaufruf schützen

if (ACTIVATE_XT_BESTSELLER_PRODUCTS_BOX == 'true' && isset($xtPlugin->active_modules['xt_bestseller_products'])) {
// Abfrage ob das Plugin aktiviert ist und die Box mit der Option "ACTIVATE_XT_BESTSELLER_PRODUCTS_BOX" aktiviert wurde

    require_once _SRV_WEBROOT . _SRV_WEB_PLUGINS . '/xt_bestseller_products/classes/class.bestseller_products.php';
// Einbinden der Klasse

    if ($params['limit']) {
        $limit = $params['limit'];
    } else {
        $limit = XT_BESTSELLER_PRODUCTS_BOX_LIMIT;
    }
// laden der Produktmenge aus Option bzw. params (siehe info unten bzgl. params)

    $bestseller_products_data_array = array
    (
        'limit' => $limit,
        'sorting' => $params['order_by'],
        'paging' => false
    );
    $bestseller_products_box = new bestseller_products($current_category_id);
    $bestseller_products_list = $bestseller_products_box->getbestsellerProductListing($bestseller_products_data_array);
// Generieren der Produktliste

    if (count($bestseller_products_list) != 0) {
        if (ACTIVATE_XT_BESTSELLER_PRODUCTS_PAGE == true) {
            $show_more_link = true;
        } else {
            $show_more_link = false;
        }
// Wenn die Page "Top-Produkte" aktiviert wurde, wird eine Verlinkung zu dieser generiert


        $tpl_data = array
        (
            '_bestseller_products' => $bestseller_products_list,
            '_show_more_link' => $show_more_link
        );

// $tpl_data wird durch den Framework an das Template übergeben.

        $show_box = true;


    } else {
        $show_box = false;
    }
} else {
    $show_box = false;
}
// $show_box de/aktiviert Boxen

?>

 

Beispiel HTML-Datei

Code Block
languagexml
title/plugins/xt_bestseller_products/templates/boxes/box_xt_bestseller_products.html
<div class="sidebar-box">
    {if $_show_more_link == true}
{*<!-- $_show_more_link wurde via $tpl_data an das Template übergeben und kann über {$_show_more_link} genutzt werden -->*}
	<p class="headline"><a href="{link page='bestseller_products' conn=SSL}">{txt key=TEXT_HEADING_BESTSELLER_PRODUCTS}</a></p>
    {else}
    <p class="headline">{txt key=TEXT_HEADING_BESTSELLER_PRODUCTS}</p>
    {/if}
    <div class="box">

{*<!-- $_bestseller_products wurde via $tpl_data an das Template übergeben, hier wird das Array via Schleife als Liste im Template ausgegben -->*}
 {foreach name=aussen item=bestseller_products_data from=$_bestseller_products}
        {if $bestseller_products_data.products_image == 'product:noimage.gif'}
        <p class="product-image"><a href="{$bestseller_products_data.products_link}"><img src="{$tpl_url_path}img/no_image.png" alt="{$bestseller_products_data.products_name}" /></a></p>
        {else}
        <p class="product-image"><a href="{$bestseller_products_data.products_link}">{img img=$bestseller_products_data.products_image type=m_sidebar class="productImageBorder" alt=$bestseller_products_data.products_name}</a></p>
        {/if}
        <p class="product-name"><a href="{$bestseller_products_data.products_link}">{$bestseller_products_data.products_name}</a></p>
        <p class="product-price">{$bestseller_products_data.products_price.formated}</p>
        {if $bestseller_products_data.products_shipping_link}
        <p class="product-tax-shipping">{$bestseller_products_data.products_tax_info.tax_desc}&nbsp;<a href="{$bestseller_products_data.products_shipping_link}" target="_blank" rel="nofollow">{txt key=TEXT_EXCL_SHIPPING}</a></p>
        {else}
        <p class="product-tax-shipping">{$bestseller_products_data.products_tax_info.tax_desc}&nbsp;{txt key=TEXT_EXCL_SHIPPING}</p>
        {/if}
        {/foreach}
    </div><!-- .box -->
</div><!-- .sidebar-box -->