tutorials.de-Buchverschenkaktion 08/2010
+ Auf Thema antworten
  1. #1
    digifoho digifoho ist offline Mitglied digifoho hat eine blütenweiße Weste
    Registriert seit
    May 2006
    Beiträge
    17
    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:
    PHP-Code:
    {*
     * 
    $Revision1.39 $
     * If 
    you want to customize this file, do not edit it directly since future upgrades
     
    may overwrite it.  Insteadcopy 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="&laquocart actions &raquo;"}"
           
    value="" selected="selected">{g->text text="&laquo; cart actions &raquo;"}</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>
        <
    thFormate 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.idimage=$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-Code:
    <?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'));
        }

    }
    ?>
    Geändert von digifoho (10.07.06 um 12:50 Uhr)

  2. PHP 5 / MySQL 5 Seminar (22 Stunden Video-Training)

    Preis: früher: 39,95€ - jetzt nur: 7,99€
    Innerhalb Deutschlands versandkostenfrei!

    PHP 5 / MySQL 5 Lernkurs – 22 Stunden Video-Training auf DVD
    - PHP-, MySQL- und PHPMyAdmin-Grundlagen
    - Datenbankprogrammierung, objektorientierte Programmierung
    - Geeignet für Windows XP und Windows Vista


    Hier geht es zum Angebot

    Über 1.000 weitere IT-Bücher zum Sonderpreis lieferbar!


  3. #2
    Benutzerbild von Felix Jacobi
    Felix Jacobi Felix Jacobi ist offline do ut des Felix Jacobi hat die Renommee-Anzeige deaktiviert
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    4.965
    Blog-Einträge
    65
    1. Halte dich bitte wie die Forenregeln vorgeben an die deutsche Rechtschreibung, dazu zählt auch die Groß- & Kleinschreibung.
    2. Benutze bitte die richtigen Highlight Tags, in deinem Fall [ php] [/ php] (Natürlich ohne Leerzeichen)
    3. Für solche Module empfiehlt es sicher eher die offiziellen Supportforen der jeweiligen Software zu benutzen, z. B. das hier:
    Forum | Gallery
    KIDS Kinderbetreuungsdienst
    Xing

    They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety.
    Benjamin Franklin

  4. #3
    digifoho digifoho ist offline Mitglied digifoho hat eine blütenweiße Weste
    Registriert seit
    May 2006
    Beiträge
    17
    zu 1. Sorry - erledigt. (restliche Rechtschreibfehler/Tippfehler geschenkt)
    zu 2. Sorry - erledigt.
    zu 3. Ich hab mich da auch schon umgesehen und nichts gefunden. Und mein English ist nicht das beste

  5. #4
    digifoho digifoho ist offline Mitglied digifoho hat eine blütenweiße Weste
    Registriert seit
    May 2006
    Beiträge
    17
    Was mir auch weiter helfen würde: Ein Tutorial zu *.tpl Datein.
    Finde dazu nichts.

    Danke lg Simon

  6. #5
    Benutzerbild von Felix Jacobi
    Felix Jacobi Felix Jacobi ist offline do ut des Felix Jacobi hat die Renommee-Anzeige deaktiviert
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    4.965
    Blog-Einträge
    65
    tpl Dateien sind nichts anderes als Template Dateien und für Template Systeme gibt es keine General Tutorials, da jedes System unterschiedlich ist.
    Das Problem ist, dass ich bezweifle dass es hier irgendwelche Spezialisten für dieses Gallery Project geben wird. Und man kann schwierig helfen, wenn man kein Backgroundwissen hat.
    Und um die meisten Module zu verstehen brauch man eben dieses Wissen der Basisklasse was in deinem Fall die Gallery ist.

    Ich kann dir nur raten, dich durch die Documentation zu arbeiten oder ggf. auf ein anderes System umzusteigen, auch wenn es schwierig sein wird

    Hier was vorallem für dich interessant sein dürfte:
    Gallery2:Tpl Reference - Gallery Codex

    Übrigens benutzt deine Gallery das Smarty Template System, für das es auch eine deutsche Dokumentation gibt:
    Smarty
    KIDS Kinderbetreuungsdienst
    Xing

    They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety.
    Benjamin Franklin

  7. #6
    digifoho digifoho ist offline Mitglied digifoho hat eine blütenweiße Weste
    Registriert seit
    May 2006
    Beiträge
    17
    Das klingt ja ziemlich doof...
    aber danke trotzdem ich werd mir das mal anschaun

  8. #7
    digifoho digifoho ist offline Mitglied digifoho hat eine blütenweiße Weste
    Registriert seit
    May 2006
    Beiträge
    17
    danke felx für den Link!!
    Der hilft ich glaub ich schaff das
    Es ist gar nicht so schwer recht unkompliziert !!

    DANKE DANKE DANKE DANKE

  9. #8
    Benutzerbild von Felix Jacobi
    Felix Jacobi Felix Jacobi ist offline do ut des Felix Jacobi hat die Renommee-Anzeige deaktiviert
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    4.965
    Blog-Einträge
    65
    Kein Problem, erledige das Thema bitte noch als 'Erledigt', danke.
    KIDS Kinderbetreuungsdienst
    Xing

    They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety.
    Benjamin Franklin

Ähnliche Themen

  1. Problem ein Modul zu machen
    Von downset04 im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 3
    Letzter Beitrag: 24.10.06, 11:17
  2. Gallery Problem
    Von tschimo im Forum PHP
    Antworten: 13
    Letzter Beitrag: 05.12.05, 10:27
  3. Problem mit Perl Modul in CGI Script
    Von blackbirdthefirst im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 1
    Letzter Beitrag: 26.11.04, 12:26
  4. Problem mit mod_auth_mysql Modul
    Von DJ_Apfel im Forum Hosting & Webserver
    Antworten: 0
    Letzter Beitrag: 07.06.04, 13:05
  5. gallery script Problem
    Von Perforator im Forum PHP
    Antworten: 1
    Letzter Beitrag: 31.01.03, 13:33

Lesezeichen

Lesezeichen