Dieser Artikel beschreibt, wie Styles in der ECommerce-Software Gambio2 auch ohne EyeCandy verwendet werden können. Leider war es mir nicht möglich, beim Umzug von Gambio nach Gambio GX2 die Styles einfach zu übernehmen. Daher wechselte ich das Template von EyeCandy zu gambio und führte die unten beschriebenen Änderungen durch.

Die ursprüngliche Datei, die sich zunächst ergeben hat, war ca. 208 KByte groß und enthielt viele Redundanzen (z.B. gleichen Definitionen in unterschiedlichen Hierarchiestufen). Ich habe die Datei auf eine Größe von ca. 110 KByte gebracht, ohne dass die Funktionalität gelitten hat.

Das Ergebnis ist im ConeleK-Shop zu betrachten.

Statisches .css File einlesen

Zunächst muss eine kleine Änderung in der Datei includes/header.php durchgeführt werden, damit die Gambio-Shop-SW die statische .css Datei einliest.

original

ersetzt durch:

Nun wird nicht mehr die Programmdatei gm_dynamic.css.php sondern die Datei /templates/gambio/stylesheet.css aufgerufen.

Eine kleine Version dieser Datei ist schon im System vorhanden, diese reicht jedoch nicht aus, um ein vernünftiges Design zu erstellen.

.css File erstellen

Nun wird ein statisches .css File erstellt. Dieses Stylesheet setzt sich aus dem ursprünglichen Datei templates/gambio/stylesheet.css
und einer selbst erstellten .css Datei zusammen. Diese neue Datei wird an Stelle der ursprünglichen stylesheet.css Datei verwendet. Wir haben hierzu unser altes Stylesheet aus der der alten Gambio Installation benutzt. Diese Datei befindet sich unter:

/cache/__dynamics.css

Sie ist leider für den Menschen nicht gut lesbar, da sie nicht formatiert ist. Wir haben sie mit einem Texteditor (Kate / Kubuntu Linux) und regulären Ausdrücken so bearbeitet, dass sie ein lesbares Format hat. In diese Datei haben wir die Datei templates/gambio/stylesheet.css integriert.

Nun haben wir ein funktionierendes Stylesheet für unseren GX2-Shop, das im wesentlichen auf Styles des alten GX-Shops beruht.

Styles bearbeiten

Wie findet man nun die Bezeichungen der Klassen (class) und IDs (id). Hier hilft ein Addon für den Firefox, der Firebug. Wenn dieser in Firefox installiert ist, kann man jedes Element einer Internet-Seite inzpizieren, Indem man man mit der Maus über das Element fährt und die rechte Maustaste klickt, Im Kontext-Menü, welches dann erscheint, wählt man dann “Inspect Element” und erhält so den Namen der Klasse oder ID. In der Datei lokalen stylesheet.css kann man nun mit Hilfe der Suchfunktion die entsprechende Klasse bzw. ID suchen und die Eigenschaften bearbeiten. Die Datei kann dann nach der Bearbeitung mit Hilfe eines ftp-Programms hoch geladen werden. Wir verwenden hierzu Filezilla stylesheet.css vom Server auf den lokalen Computer heruntergeladen und öffnet sie mit Filezilla mit dem Menüpunkt Maus -> rechts -> edit mit seinem Texteditor, so erscheint bei jeder Änderung / Abspeichern ein Dialog, der fragt, ob man die geänderte Datei hoch laden möchte. Klickt man auf “Yes” geschieht dies an die richtige Stelle.

Man kann nun das Ergebnis der Änderung mit dem Browser anschauen. Nicht vergessen beim Firefox Strg + R zu drücken, um den Cache zu leeren und die Seite neu aufzurufen.

Noch schneller geht es übrigens mit Webdav (Web-based Distributed Authoring and Versioning). Viele lokale Filesystem-Browser beherrschen Webdav. Hat man ein Webdav zu deinem Server und dem Ordner in dem sich das Shopsystem befindet eingerichtet, erscheint dessen Dateisystem im lokalen Filesystem-Browser wie auf dem eigenen Computer. Man kann nun mit einer entfernten Datei, wie z.B. der stylesheet.css arbeiten, wie mit einer Datei auf dem lokalen Computer. Nach Editieren der Datei klickt man auf “Speichern” und die Datei wird direkt auf dem Server geändert und gespeichert.

Download

Unter folgendem Link können Sie das Stylesheet herunterladen. Wir bitten Sie allerdings für Ihren eigenen Style anzupassen und nicht das ConeleK Design zu verwenden. Benennen Sie die Datei in stylesheet.css um: stylesheet_gambio_template_120903.css.zip

Siehe auch

Gambio GX2: Boxen ohne Styleedit platzieren

Dieser Artikel beschreibt, wie die Boxen in Gambio GX2 ohne Styledit platziert werden können.
Leider war es mir nicht möglich, die Platzierung der Boxen einfach aus Gambio in Gambio GX2 zu übernehmen.

Der Vorteil des Templatese gambio und gegenüber des neuen Templates EyeCandy ist, dass Boxen auf beiden Seiten platziert werden können: Links, wo der potentielle Kunde zuerst hin schaut, sollen nur wirklich relevante Informationen stehen. Diese sind das Feld für die Schnellsuche, der Produktkatalog und Links zu diesem Wiki (in dem sich die technischen Informationen für unsere CEK Module befinden) und die Sitemap. Rechts erscheinen Informationen, die nur für Besucher, die in Erwägung ziehen etwas zu kaufen, oder mehr allgemeine Informationen benötigen. Nur das Template gambio bietet die Möglichkeiten von beidseitigen Boxen.

Das Ergebnis kann man sich im Shop von ConeleK ansehen.

Platzierung der Boxen

Die Reihenfolge der Boxen kann in der Datei

/templates/gambio/template_settings.php

verändert werden. Die Information über die Positionierung und den Status der jeweiligen Box finden wir im Array  $t_menubox_array .

Im Folgenden ist das Array so wiedergegeben, wie es für unseren Shop definiert wurde:

Die Kommentare (//) geben den Titel an, unter welchem der Inhalt in der Seite erscheint.

Die Position der jeweiligen Box wird jeweils durch die Konstante 'POSITION' definiert.

Der Status der Box, also ob sie sichtbar oder unsichtbar ist, wird durch die Konstante 'Status' festgelegt.

Beispiel:

In diesem Beispiel handelt es sich um die Box Kategorien. Sie ist eingeschaltet

und befindet sich auf der linken Seite des Shops an Position 2.

Die Boxen für die rechte Seite haben für die Werte ≥ 100.

Die Box Kundenlogin

befindet sich auf der rechten Seite des Shops in der ersten Position 2, da

und ist eingeschaltet, da

Siehe auch

The e-shop software Gambio 2 may display so-called special offers (that is price-reduced articles or such) on its startpage. Whether specials are displayed or not is configured with the option GM_SPECIALS_STARTPAGE (ID=1111):

  • If its value is an integer and greater 0, special offers are displayed.
  • Otherwise, special offers are hidden.

To display special offers. open the Gambio database and run the following SQL query:

To hide special offers, run the following SQL query:

Details (optional)

The following information are technical details, which may change as time passes.

The rendering of the “specials box” is done in the following PHP file: includes/modules/specials_main.php .

The embedding in the center of the page happens in the following PHP file: includes/center_modules.php .

This article describes how to modify the administrator menu in Gambio2. The admin menu builds a 2-level hierarchy:

  1. The first level is called groups and each group has an icon.
  2. The second level is called menu items. Each item has a title that appears in the menu and an associated link.

Files

The following files and directories are relevant for this tutorial:

  • system/conf/AdminMenu/
    Any XML file in this folder starting with menu_ is parsed by the shop in order to build the admin menu. This allows plugins to add menu items to existing menus. The templates are parsed with Smarty.
  • system/data/AdminPermSource.inc.php
    The class AdminPermSource checks whether a user is permitted access to a certain site. Whenever you add a link to the menu, you have to allow your admin user to see it.

The full “traceback” of the admin menu generation process looks like this:

  • admin/start.php
    This is the entry page of the administrator panel. The table cell columLeft2  contains the administrator menu. Its content is loaded by a script called colum_left.php.
  • admin/includes/column_left.php
    This script creates an instance of AdminMenuContentView that renders the administrator view.
  • system/views/AdminMenuContentView
    This class fetches the menu structure from AdminMenuControl and renders it.
  • system/controls/AdminMenuControl.inc.php
    This class is responsible of composing the menu entries with respect to the current user. It queries the AdminPermSource for user permissions and AdminFavoritesSource for the current user’s favorites
  • system/data/AdminPermSource.inc.php
    This class does the permission management for the administrator views. It queries the database table admin_access.
  • system/data/AdminMenuSource.inc.php
    This class parses the XML files in system/conf/AdminMenu and builds the menu structure regardless of user permissions.
  • system/data/AdminFavoritesSource.inc.php
    This class reads favorite menus from the database table gm_admin_favorites.

Tutorial

In this section, I provide step-by-step instructions on how to add a menu item to the Layout/Design menu that simply show the output of phpinfo.

The dummy script

First, we create a tiny script called phpinfo.php in the admin folder of the shop and add the following content:

Adding a menu item

Afterwards, we create an XML file for our custom menu entry in conf/AdminMenu/menu_roland.xml:

This will add a new menu item to the Layout/Design menu. Other menus can be found in the file conf/AdminMenu/gambio_menu.xml. The sort attribute defines a relative ordering, the lower the number, the earlier the item appears within a group. The link target is appended to www.your-shop.com/admin/ when the menu item is clicked and the title is the text that appears as menu item.

Permitting access

This part is a little ugly: We will hard-code the access permissions into the shop system.

The regular way of granting access to a new menu item is done in the database: The table admin_access contains one column for a user or group id and for any menu entry/view there exists a column which has a 1 in a user’s row if the user may see the column and 0 otherwise.

In our scenario we would need to add a column called phpinfo (without the .php extension).

Another option is to hardcode the permission check. For this, we open the file system/data/AdminPermSource.inc.php and modify the method is_permitted as follows:

This hack only shows the way how you can circumvent the database-based access control –  the code may be refined, of course.

Cleaning the cache

Before seeing the results of your work, you have to visit www.your-shop.com/admin/clear_cache.php and then clear the cache (both for generated pages and for module information).

Done

When you now reload the admin panel and take a look at the Design/Layout menu, you should find a menu item called PHPinfo there.