V1.0.10 gunnart v1: Unterschied zwischen den Versionen

Aus WEB-Shop Software Wiki
Zur Navigation springenZur Suche springen
Zeile 136: Zeile 136:
 
{/foreach}
 
{/foreach}
 
<!-- more images eof -->
 
<!-- more images eof -->
</pre> und ersetzte diesen durch <pre>{product_images prd_id=$PRODUCTS_ID}
+
</pre> und ersetzte diesen durch <pre>{foreach from=$PRODUCTS_IMAGES item=image key=id}
{debug}
 
{foreach from=$PRODUCTS_IMAGES item=image key=id}
 
 
<tr class="TODO">
 
<tr class="TODO">
 
   <td{if $id > 0} style="border-top: 1px solid; border-color: #cccccc;"{/if}><a href="{img
 
   <td{if $id > 0} style="border-top: 1px solid; border-color: #cccccc;"{/if}><a href="{img

Version vom 15. Mai 2011, 13:38 Uhr

Beschreibung der nötigen Anpassungen damit ein auf gunnart_v1 basierendes Template mit der V1.0.10 funktioniert

class template

Bisher wurde smarty immer über die Klasse "smarty" implementiert, was zur folge hatte das man jedes mal diverse Einstellungen setzten mußte. Nun gibt es eine Klasse "template" welche diese Default-Einstellungen übernimmt. Damit das Template funktioniert sollten alle Vorkommen von "new smarty" durch "new template" ersetzt werden:

$smarty = new smarty;

wird zu

$smarty = new template;


Zuweisungen zur Sprache und zum Templatepfad sollten entfernt werden:

$box_smarty->assign('language', $_SESSION['language']);
$box_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');

In diesen Dateien wird außerdem beim Zugriff auf das Template der Pfad zur Templatedatei i.d.R. mit CURRENT_TEMLATE.'/ angegeben, was nun ebenfalls entfallen muss:

$box_admin = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_admin.html');

wird zu

$box_admin = $box_smarty->fetch('boxes/box_admin.html');

Folgende Dateien sind so zu ändern:

source/boxes/
  • add_a_quickie.php
  • admin.php
  • best_sellers.php
  • categories.php
  • content.php
  • currencies.php
  • infobox.php
  • information.php
  • languages.php
  • last_viewed.php
  • live_shopping.php
  • loginbox.php
  • manufacturer_info.php
  • manufacturers.php
  • newsletter.php
  • order_history.php
  • reviews.php
  • search.php
  • search_top.php
  • shopping_cart.php
  • sofortueberweisung.php
  • specials.php
  • whats_new.php

header

Die header.php ist nun ins Template verschoben - hierfür ist folgendes zu tun. Zunächst in der index.html die Zeile

{config_load file="$language/lang_$language.conf" section="index"}

durch folgendes ersetzen:

{header}
{config_load file="$language/lang_$language.conf" section="index"}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html{if $HTML_PARAMS} {$HTML_PARAMS}{/if}>
<head>
<title>{$META.title}</title>
{foreach from=$META.http_equiv item=m key=k}
{if $m}
<meta http-equiv="{$k}" content="{$m}" />
{/if}
{/foreach}
{foreach from=$META.name item=m key=k}
{if $m}
<meta name="{$k}" content="{$m}" />
{/if}
{/foreach}
<base href="{$BASE_HREF}" />
{css}
<link rel="shortcut icon" href="/favicon.ico" />
{* googleAnalytics account=UA-XXXXXXX-X trackOrders=true *}
{* piwik url=piwik.example.com id=1 goal=1 *}
</head>
<body>

{if $smarty.session.customers_status.customers_status_id == 0} 

{if $MESSAGES.warning}
<div class="messages warnings">
{foreach from=$MESSAGES.warning item=item}
<div class="warning">{$item}</div>
{/foreach}
</div>
{/if}
{/if}

Nun noch eine source/temlate_defaults.php mit folgendem Inhalt anlegen:

<?php
                                                          
// define CSS files for CS compressor

$css_files = array(
    'all' => array(
        'stylesheet.css',
        'boxes.css',
        'thickbox.css',
    ),
);

$js_files = array(
        'javascript/bottom.js.php',
        'javascript/general.js.php',
        'javascript/jquery-1.4.2.min.js',
        'javascript/jquery.countdown-de.js',
        'javascript/jquery.countdown.js',
        'javascript/template.js',
        'javascript/thickbox.js',
);

Produktbilder

Es gibt eine neue Smartyfunktion um die Produktbilder darzustellen. Dieser wurde von den Entwicklern {img} genannt. Im Gunnart-Template gibt es leider auch schon eine Smartyfunktion mit Namen {img}. Diese muss zunächst zu img_gunnart umgenannt werden. Hierfür muss sowohl die Datei als auch die funktion in der Datei umgenannt werden:

smarty/function.img.php => smarty/function.img_gunnart.php

in dieser Datei nun noch die folgende Zeile

function smarty_function_img($params, &$smarty) {

auf

function smarty_function_img_gunnart($params, &$smarty) {

ändern.

modules/product_info

Damit die Produktbilder in der Produktinformation angezeigt werden sind zwei änderungen an der product_info Vorlage nötig. Die entsprechende Datei befindet sich im Verzeichnis modules/product_info/ und heißt im original-Template product_info_v1.html

In jeder Datei in diesem Verzeichnis sind nun die folgenden Änderungen durchzuführen: Füge folgende Zeile am Anfang der Datei ein:

{product_images prd_id=$PRODUCTS_ID}

Suche nun folgenden Block

<tr>
<td><a href="{$PRODUCTS_IMAGES.0.popup}" title="{$PRODUCTS_NAME}" class="thickbox"><img src="{$PRODUCTS_IMAGES.0.info}" alt="{$PRODUCTS_NAME}" /></a></td>
</tr>

<!-- more images -->
{foreach from=$PRODUCTS_IMAGES item=IMG name=images}
{if !$smarty.foreach.images.first}
<tr>
<td style="border-top: 1px solid; border-color: #cccccc;">
<a href="{$IMG.popup}" title="{$PRODUCTS_NAME}" class="thickbox"><img src="{$IMG.info}" alt="{$PRODUCTS_NAME}" /></a>
</td>
</tr>
{/if}
{/foreach}
<!-- more images eof -->

und ersetzte diesen durch

{foreach from=$PRODUCTS_IMAGES item=image key=id}

<tr class="TODO">

 <td{if $id > 0} style="border-top: 1px solid; border-color: #cccccc;"{/if}><a href="{img
              img_id=$image.ID
              src=$image.FILE
              preset="POPUP"
              prd_id=$PRODUCTS_ID
              path_only=true}" title="{$PRODUCTS_NAME}" class="thickbox">
 {img
    img_id=$image.ID
    src=$image.FILE
    preset="INFO"
    prd_id=$PRODUCTS_ID
    alt=$image.ALT
  title=$image.TITLE}</a></td>

</tr>

{/foreach}

modules/product_info