hallo...
also ich hab da ein kleines/großes Problem...
Hab mir für das Opensorce-Script "gallery" das Modul "cart" runtergeladen und versuch dies zu erweitern.
Das Modul "cart" kann folgendes: Die Bilder von der Gallery in einen Warenkorb legen...
so und folgende Erweiterung versuch ich einfügen:
Das man die Bilder bestellen kann und zwar in unterschiedlichen Grössen.
Das heisst ich bau ein Formular dazu das mir die Name, Adresse etc. - Bildnummer und die gewünschte Größe per e-mail übermittelt. Nur ist das Modul mit tpl Datein aufgebaut...und ich komm da nicht zurecht.
link: Ihren Warenkorb anzeigen es sind auch zwei Bilder online zum testen
Kennt das Modul jemand und kann mir da jemand Rat geben?
das ist die Datei viewcart.tpl:
und das die viewcart.inc
also ich hab da ein kleines/großes Problem...
Hab mir für das Opensorce-Script "gallery" das Modul "cart" runtergeladen und versuch dies zu erweitern.
Das Modul "cart" kann folgendes: Die Bilder von der Gallery in einen Warenkorb legen...
so und folgende Erweiterung versuch ich einfügen:
Das man die Bilder bestellen kann und zwar in unterschiedlichen Grössen.
Das heisst ich bau ein Formular dazu das mir die Name, Adresse etc. - Bildnummer und die gewünschte Größe per e-mail übermittelt. Nur ist das Modul mit tpl Datein aufgebaut...und ich komm da nicht zurecht.
link: Ihren Warenkorb anzeigen es sind auch zwei Bilder online zum testen
Kennt das Modul jemand und kann mir da jemand Rat geben?
das ist die Datei viewcart.tpl:
PHP:
{*
* $Revision: 1.39 $
* If you want to customize this file, do not edit it directly since future upgrades
* may overwrite it. Instead, copy it into a new directory called "local" and edit that
* version. Gallery will look for that file first and use it if it exists.
*}
<div class="gbBlock gcBackground1">
<h2> {g->text text="Items Currently in Your Cart"} </h2>
</div>
{if !empty($ViewCart.items)}
<form action="{g->url}" method="post">
<div>
{g->hiddenFormVars}
<input type="hidden" name="{g->formVar var="controller"}" value="{$ViewCart.controller}"/>
<input type="hidden" name="{g->formVar var="form[formName]"}" value="{$form.formName}"/>
</div>
<div class="gbBlock gcBackground2" style="text-align: right; white-space: nowrap">
<select name="{g->formVar var="form[pluginId]"}">
<option label="{g->text text="« cart actions »"}"
value="" selected="selected">{g->text text="« cart actions »"}</option>
<option label="{g->text text="Empty Cart"}"
value="emptyCart"> {g->text text="Empty Cart"} </option>
{foreach from=$ViewCart.plugins key=pluginId item=pluginData}
<option label="{$pluginData.actionDisplayName}"
value="{$pluginId}"> {$pluginData.actionDisplayName} </option>
{/foreach}
</select>
<input type="submit" class="inputTypeSubmit"
name="{g->formVar var="form[action][modify]"}" value="{g->text text="Go"}"/>
</div>
{/if}
</form>
{if isset($status.cartModified)}
<div class="gbBlock"><h2 class="giSuccess">
{g->text text="Cart updated successfully"}
</h2></div>
{/if}
<form action="main.php?g2_view=cart.ViewCart&send=ok" method="POST">
{if empty($ViewCart.items)}
<div class="gbBlock"><strong>
<p> {g->text text="Your cart is empty."} </p>
<p>
{g->text text="To add items, browse the gallery and select 'Add to cart' from the item's action menu."}
</p>
</strong>
</div>
{else}
<div class="gbBlock">
<table class="gbDataTable" width="400px"><tr>
<th colspan="2" align="center"> {g->text text="Item"} </th>
<th> Formate - Anzahl </th>
</tr>
{foreach from=$ViewCart.items item=item}
<tr class="{cycle values="gbEven,gbOdd"}">
<td>
<center><a href="{g->url arg1="view=core.ShowItem" arg2="itemId=`$item.id`"}">
{if isset($ViewCart.thumbnails[$item.id])}
{g->image item=$ViewCart.items[$item.id] image=$ViewCart.thumbnails[$item.id]
maxSize=90}
{else}
{g->text text="No thumbnail"}
{/if}
</a></center>
</td><td>
<ul>
<li>
<strong>{g->text text="Title:"}</strong>
{$item.title|markup}
</li>
</ul>
</td><td align="center">
10x15: <input type="text" value="0" name="10x15_{$item.title|markup}" size="2" /><br>
13x18: <input type="text" value="0" name="13x18_{$item.title|markup}" size="2" /><br>
15x21: <input type="text" value="0" name="15x21_{$item.title|markup}" size="2" /><br>
20x30: <input type="text" value="0" name="20x30_{$item.title|markup}" size="2" /><br>
</td>
</tr>
{/foreach}
{/if}
<tr><td></td><td></td><td><br> <center><input type="submit" value="--> next -->" /></center> </td></tr>
</table>
</div>
<br><br>
</form>
und das die viewcart.inc
PHP:
<?php
/*
* $RCSfile: ViewCart.inc,v $
*
* Gallery - a web based photo album viewer and editor
* Copyright (C) 2000-2006 Bharat Mediratta
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
/**
* @version $Revision: 1.19 $ $Date: 2006/01/10 04:38:59 $
* @package Cart
* @subpackage UserInterface
* @author Bharat Mediratta <bharat@menalto.com>
*/
/**
* Required classes
*/
GalleryCoreApi::requireOnce('modules/cart/classes/CartHelper.class');
/**
* This view will allow users to view their individual carts
*
* @package Comment
* @subpackage UserInterface
*/
class ViewCartView extends GalleryView {
/**
* @see GalleryView::loadTemplate
*/
function loadTemplate(&$template, &$form) {
global $gallery;
list ($ret, $itemList) = CartHelper::loadCartItems();
if ($ret) {
return array($ret->wrap(__FILE__, __LINE__), null);
}
list ($ret, $cartItemIds) = CartHelper::fetchCartItemCounts();
if ($ret) {
return array($ret->wrap(__FILE__, __LINE__), null);
}
if ($form['formName'] != 'ViewCart') {
/* First time around, initialize the cart counts */
foreach ($cartItemIds as $itemId => $count) {
$form['counts'][$itemId] = $count;
}
$form['formName'] = 'ViewCart';
}
$ViewCart = array();
/* Bring in the root album information for the breadcrumb */
list ($ret, $rootAlbumId) =
GalleryCoreApi::getPluginParameter('module', 'core', 'id.rootAlbum');
if ($ret) {
return array($ret->wrap(__FILE__, __LINE__), null);
}
list ($ret, $rootAlbum) = GalleryCoreApi::loadEntitiesById($rootAlbumId);
if ($ret) {
return array($ret->wrap(__FILE__, __LINE__), null);
}
$ViewCart['rootAlbum'] = (array)$rootAlbum;
/* Find all our cart plugins */
GalleryCoreApi::requireOnce('modules/cart/classes/CartPluginInterface_1_0.class');
list ($ret, $ids) =
GalleryCoreApi::getAllFactoryImplementationIds('CartPluginInterface_1_0');
if ($ret) {
return array($ret->wrap(__FILE__, __LINE__), null);
}
$plugins = array();
foreach ($ids as $id => $className) {
list ($ret, $instances[$id]) =
GalleryCoreApi::newFactoryInstance('CartPluginInterface_1_0', $className);
if ($ret) {
return array($ret->wrap(__FILE__, __LINE__), null);
}
/*
* Figure out what types each plugin can handle so that we can cue the UI
* to only send it the ones of the appropriate types.
*/
$plugins[$id]['supportedItemTypes'] = $instances[$id]->getSupportedItemTypes();
list ($ret, $plugins[$id]['actionDisplayName']) =
$instances[$id]->getActionDisplayName();
if ($ret) {
return array($ret->wrap(__FILE__, __LINE__), null);
}
}
$items = array();
$thumbnails = array();
$itemTypeNames = array();
if (!empty($cartItemIds)) {
foreach ($itemList as $item) {
$items[$item->getId()] = (array)$item;
/* TODO: This is a O(N^3) operation -- probably should be optimized */
foreach ($plugins as $pluginId => $pluginData) {
foreach ($pluginData['supportedItemTypes'] as $type) {
if ($type == '*') {
$plugins[$id]['supported'][$item->getId()] = 1;
break;
} else {
if (GalleryUtilities::isA($item, $type)) {
$plugins[$id]['supported'][$item->getId()] = 1;
break;
}
}
}
}
$itemTypeNames[$item->getId()] = $item->itemTypeName();
}
/* Fetch thumbnails */
list ($ret, $thumbnailList) =
GalleryCoreApi::fetchThumbnailsByItemIds(array_keys($cartItemIds));
if ($ret) {
return array($ret->wrap(__FILE__, __LINE__), null);
}
foreach ($thumbnailList as $thumbnail) {
$thumbnails[$thumbnail->getParentId()] = (array)$thumbnail;
}
}
$ViewCart['items'] = $items;
$ViewCart['itemTypeNames'] = $itemTypeNames;
$ViewCart['thumbnails'] = $thumbnails;
$ViewCart['plugins'] = $plugins;
$ViewCart['controller'] = 'cart.ModifyCart';
$template->setVariable('ViewCart', $ViewCart);
$urlGenerator =& $gallery->getUrlGenerator();
list ($ret, $navigationLinks) = $urlGenerator->getNavigationLinks();
if ($ret) {
return array($ret->wrap(__FILE__, __LINE__), null);
}
$template->setVariable('navigationLinks', $navigationLinks);
list ($ret, $module) = GalleryCoreApi::loadPlugin('module', 'cart');
if ($ret) {
return array($ret->wrap(__FILE__, __LINE__), null);
}
$template->title($module->translate('View Your Cart'));
return array(null,
array('body' => 'modules/cart/templates/ViewCart.tpl'));
}
/**
* @see GalleryView::getViewDescription()
*/
function getViewDescription() {
list ($ret, $module) = GalleryCoreApi::loadPlugin('module', 'cart');
if ($ret) {
return array($ret->wrap(__FILE__, __LINE__), null);
}
return array(null, $module->translate('view cart'));
}
}
?>
Zuletzt bearbeitet: