Zu den Aufzeichnungen der tutorials.de-Live-Workshops
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
419
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    digifoho digifoho ist offline Mitglied
    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. #2
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    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

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  3. #3
    digifoho digifoho ist offline Mitglied
    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
     

  4. #4
    digifoho digifoho ist offline Mitglied
    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
     

  5. #5
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    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

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  6. #6
    digifoho digifoho ist offline Mitglied
    Registriert seit
    May 2006
    Beiträge
    17
    Das klingt ja ziemlich doof...
    aber danke trotzdem ich werd mir das mal anschaun
     

  7. #7
    digifoho digifoho ist offline Mitglied
    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
     

  8. #8
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Kein Problem, erledige das Thema bitte noch als 'Erledigt', danke.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

Ähnliche Themen

  1. Problem mit SSH2 modul
    Von J0hn B0y im Forum Hosting & Webserver
    Antworten: 0
    Letzter Beitrag: 25.11.10, 12:31
  2. Problem ein Modul zu machen
    Von downset04 im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 3
    Letzter Beitrag: 24.10.06, 11:17
  3. Problem mit der Gallery
    Von ReenOne im Forum Flash Plattform
    Antworten: 10
    Letzter Beitrag: 07.06.05, 14:42
  4. 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
  5. Problem mit mod_auth_mysql Modul
    Von DJ_Apfel im Forum Hosting & Webserver
    Antworten: 0
    Letzter Beitrag: 07.06.04, 13:05