Shopware Knowledgebase

Minor-Update 3.5.x auf 3.5.3

Allgemein

Status: Stable Version: 3.5.3 Release-Datum: 09.12.2010 Geeignet für: 3.5.0 / 3.5.1 / 3.5.2

Hinweis

Dieses Update ist kumulativ und ermöglicht die Aktualisierung der Versionen 3.5.0 / 3.5.1 / 3.5.2

Hinweis: Die Durchführung des Updates erfordert technische Kenntnisse. Die Shopware AG übernimmt keine Gewährleistung und keinen Support für selbst durchgeführte Updates und daraus resultierende Probleme. Vor dem Update sollte auf jeden Fall ein Backup der Datenbank und der Shopware Dateien erfolgen!

Download - Packages

Achten Sie unbedingt darauf, dass Sie die für Ihr System passende Version wählen!

Falls Sie sich nicht sicher sind, welchen Encoder Sie verwenden, prüfen Sie unter Einstellungen > Systeminfo > PhpInfo ob Sie Ioncube oder Zend-Optimizer verwenden!

Datum Bezeichnung Link
09.12.2010 Update für Zend-Optimizer Package Download
09.12.2010 Update für Ioncube Package Download

Backup

  • Erstellen Sie ein Backup Ihrer Datenbank (Beschreibung unter http://wiki.shopware.de/Wie-kann-ich-die-Datenbank-exportieren%253F_detail_595_164.html)
  • Sichern Sie die Dateien, die Sie im System modifiziert haben. (Zum Bespiel Templates / Plugins / Module etc.)
  • Prüfen Sie die Liste der geänderten Dateien - stellen Sie sicher, dass keine Dateien enthalten sind, die Sie selbst modifiziert haben!
  • Führen Sie das Update erst durch, nach dem Sie die Sicherung durchgeführt haben!

Installation

Datenbank-Update

Führen Sie per PHPMyAdmin folgende SQL-Anweisungen aus:

 
# 351 Changes
DELETE FROM `s_core_config_mails` WHERE `name` LIKE 'sSERVICE%';
DELETE FROM `s_core_config_mails` WHERE `name` LIKE 'sCHEAPER';
 
INSERT IGNORE INTO `s_cms_support` (`id`, `name`, `text`, `email`, `email_template`, `email_subject`, `text2`, `ticket_typeID`, `isocode`) VALUES
(10, 'Rückgabe', '<h2>Hier k&ouml;nnen Sie Informationen zur R&uuml;ckgabe einstellen...</h2>', 'info@example.de', 'Rückgabe - Shopware Demoshop\r\n \r\nKundennummer: {sVars.kdnr}\r\neMail: {sVars.email}\r\n \r\nRechnungsnummer: {sVars.rechnung}\r\nArtikelnummer: {sVars.artikel}\r\n \r\nKommentar:\r\n \r\n{sVars.info}', 'Rückgabe', '<p>Formular erfolgreich versandt.</p>', 0, 'de');
 
INSERT IGNORE INTO `s_cms_support_fields` (`id`, `error_msg`, `name`, `note`, `typ`, `required`, `supportID`, `label`, `class`, `value`, `vtyp`, `added`, `position`, `ticket_task`) VALUES
(60, '', 'kdnr', '', 'text', 1, 10, 'KdNr.(siehe Rechnung)', 'normal', '', '', '2007-11-06 17:31:38', 1, ''),
(61, '', 'email', '', 'text', 1, 10, 'eMail-Adresse', 'normal', '', '', '2007-11-06 17:31:51', 2, ''),
(62, '', 'rechnung', '', 'text', 1, 10, 'Rechnungsnummer', 'normal', '', '', '2007-11-06 17:32:02', 3, ''),
(63, '', 'artikel', '', 'textarea', 1, 10, 'Artikelnummer(n)', 'normal', '', '', '2007-11-06 17:32:17', 4, ''),
(64, '', 'info', '', 'textarea', 0, 10, 'Kommentar', 'normal', '', '', '2007-11-06 17:32:42', 5, '');
 
UPDATE `s_core_snippets` SET `value` = '{link file=''frontend/_resources/favicon.ico''}' WHERE `value` = '{link file=''resources/favicon.ico''}';
DELETE FROM `s_core_snippets` WHERE `namespace` LIKE 'templates/_default/%';
DELETE FROM `s_core_config_groups` WHERE `name` = 'Debugging';
 
# Crontab Changes
UPDATE `s_crontab` SET `interval` = 86400 WHERE `interval` IN (1, 10, 100);
 
# Snippet Changes
UPDATE `s_core_snippets` SET `value` = 'Ich habe die <a href="{url controller=custom sCustom=4 forceSecure}" title="AGB"><span style="text-decoration:underline;">AGB</span></a> Ihres Shops gelesen und bin mit deren Geltung einverstanden.' WHERE `name` = 'ConfirmTerms';
UPDATE `s_core_snippets` SET `value` = 'Nachdem Sie die erste Bestellung durchgeführt haben, können Sie hier auf vorherige Rechnungsadressen zugreifen.' WHERE `name` = 'SelectBillingInfoEmpty';
 
INSERT IGNORE INTO `s_core_snippets` (`namespace`, `shopID`, `localeID`, `name`, `value`, `created`, `updated`) VALUES
('frontend/listing/box_article', 1, 1, 'Star', '*', '2010-12-08 02:51:26', '2010-12-08 02:51:26'),
('frontend/listing/box_article', 1, 1, 'reducedPrice', 'Statt: ', '2010-12-08 02:52:32', '2010-12-08 02:52:32');
 
UPDATE `s_core_snippets` SET `value` = 'Prüfen und Bestellen' WHERE `value` = 'Bestellung abschließen';
 
# Seo Changes
UPDATE `s_core_config` SET `value` = CONCAT(`value`, ',search,account,checkout,register') WHERE `name` = 'sSEOVIEWPORTBLACKLIST' AND `value` NOT LIKE '%checkout%';
 
# PayPal Changes
UPDATE `s_core_config` SET `multilanguage` = '1' WHERE `name` IN ('sXPRESS', 'sPaypalLogo');
 
# Max. Suppliers Config
SET @parent = (SELECT `id` FROM `s_core_config_groups` WHERE `name` = 'Kategorien / Listen');
INSERT IGNORE INTO `s_core_config` (`group`,`name`,`value`,`description`)
VALUES (@parent, 'sMAXSUPPLIERSCATEGORY', '30', 'Max. Anzahl Hersteller in Sidebar');
 
# Plugin Changes
CREATE TABLE IF NOT EXISTS `s_core_plugin_configs_copy` (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `value` text NOT NULL,
  `pluginID` int(11) UNSIGNED NOT NULL,
  `localeID` int(11) UNSIGNED NOT NULL,
  `shopID` int(11) UNSIGNED NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`,`pluginID`,`localeID`,`shopID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
 
INSERT IGNORE INTO `s_core_plugin_configs_copy` (`name`, `value`, `pluginID`, `localeID`, `shopID`)
SELECT `name`, `value`, `pluginID`, `localeID`, `shopID`
FROM `s_core_plugin_configs`
ORDER BY `pluginID`, `shopID`, `name`, `id` DESC;
 
DROP TABLE IF EXISTS `s_core_plugin_configs`;
RENAME TABLE `s_core_plugin_configs_copy` TO `s_core_plugin_configs`;
 
# Filter Changes
CREATE TABLE IF NOT EXISTS `s_filter_values_copy` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `groupID` int(11) NOT NULL,
  `optionID` int(11) NOT NULL,
  `articleID` int(11) NOT NULL,
  `value` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `groupID` (`groupID`),
  KEY `optionID` (`optionID`,`articleID`,`value`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
 
INSERT IGNORE INTO `s_filter_values_copy` (`id`, `groupID`, `optionID`, `articleID`, `value`)
SELECT `id`, `groupID`, `optionID`, `articleID`, `value`
FROM `s_filter_values`;
 
DROP TABLE IF EXISTS `s_filter_values`;
RENAME TABLE `s_filter_values_copy` TO `s_filter_values`;
 
# Table Changes
 
ALTER TABLE `s_crontab` ADD `pluginID` INT( 11 ) UNSIGNED NULL;
 

Diese befinden sich ebenfalls in der Datei 353.sql im jeweiligen Download-Archiv!

Aktualisierte Dateien

  • Stellen Sie sicher, dass Sie die SQL-Anweisungen ausgeführt haben!
  • Downloaden Sie das zu Ihrer Version passende Update-Archiv
  • Entpacken Sie das Archiv
  • Wechseln Sie in das Verzeichnis encode_zend bzw. encode_ioncube
  • Stellen Sie sicher, dass Ihr FTP-Programm die Dateien im Binär-Modus überträgt! Andernfalls ist der Shop nach dem Update ggf. nicht mehr funktionsfähig!
  • Kopieren Sie von dort aus alle Dateien in Ihr Shop-Verzeichnis und überschreiben Sie die bestehenden Dateien
  • Rufen Sie das Backend auf und löschen Sie alle Shop-Caches!
  • Fertig!

Changelog:

(Beeinhaltet Changelog 3.5.1 / 3.5.2)

  • Suchparameter die Slashes enthalten wurden nicht korrekt maskiert
  • Formulare konnten ohne Bezeichnung angelegt werden - dies konnte zu Routing-Problemen führen
  • Anlegen von Artikeln - Sonderzeichen im Artikelnamen & nicht ausgefüllte Pflichtfelder führten im Backend zu einem Anzeigeproblem
  • Plugin-Manager Unterstützung kleinerer Auflösungen
  • Rückgabe-Formular entfernt
  • Deaktivierung von Kategorien
  • Verbesserung Paging einfache Suche
  • Stripe-Funktion (Javascript) für Tabellen entfernt
  • Variantenwechsel & Anzeige Verfügbarkeit / Pseudopreis
  • Import-Probleme bei einigen Hostern (z.B. Domain-Factory)
  • Frontend - Probleme mit dynamischer Komprimierung bei einigen Hostern
  • Kurzbeschreibung in 4col Listing entfernt
  • Leere Gruppen in den Grundeinstellungen entfernt
  • Umlautprobleme bei eMail-Formularen
  • Entfernen von Übersetzungen optimiert
  • Partnerprogramm - Umsatzauswertung, Korrektur der Übersicht
  • Hersteller-Anzeige (Artikel des gleichen Herstellers) mit Paging
  • Intelligente Suche - Fehler bei "leerer" Ergebnisseite
  • Liveshopping - Unterstützung von Einkaufswelten
  • Optimierung Cookie-Handling Merkzettel
  • Ticketsystem - Farbige Darstellung Tickettypen im Grid
  • Entfernen von HTML-Code aus der Artikelbezeichnung im Warenkorb-Ausklapper
  • Integration "Block-Replace-Plugin"

Standardmäßig kann man keine Modifier auf $smarty.block.parent anwenden, da dieses keine Smarty-Variablen im herkömlichen Sinne sind, sondern Platzhalter.

 
{block name='frontend_index_content'}
{replace search='grid_12' replace='grid_13'}
{$smarty.block.parent}Suche Suche
{/replace}
{/block}
 

  • Verbesserung Top-Seller Berechnung
  • Fehler Anzeige der aktuellen Besucher / Warenkörbe
  • Blog-Artikel Listing im Backend - Artikel wurden bei falscher Sortierung nicht angezeigt
  • Externer Link in Shopseiten wird wieder berücksichtigt
  • Ausgabe der Konfigurationen / Varianten in den Produkt-Exporten
  • Verlagerung der Auswahl der Zahlungsart auf die Kassenseite
    • Unterstützung von dynamischer Länder/Versandart-Sperre
    • Unterstützung von Risk-Management Funktionen
  • Diverse CSS-Fixes für den Internet-Explorer
  • Verbesserung der einfachen Suche bei mehreren Suchbegriffen

Vorher: Ipod Zubehör - Findet nur Artikel, in der die Begriffe in genau dieser Reihenfolge auftauchen Jetzt: Zubehör Ipod - mehrere Begriffe werden per UND verknüpft - die Reihenfolge der Begriffe ist hierbei unerheblich

  • Hersteller-Slider Startseite - Blog-Autoren werden nun ausgeschlossen
  • Shopware API - Export - sGetOpenOrders / Korrektur Ausgabe paymentID
  • Gestaffelte Warenkorb-Rabatte - Unterstützung mehrerer Staffeln
  • Unterstützung von Cross-Selling Artikeln bei Blog-Artikeln
  • Namespace Optimierungen
    • Namespaces per Baustein erben - Syntax: {s name="x" namespace="x/y/z"}{/s}
    • Namespaces per Template global erben - Syntax: (Zu Anfang der Datei) {namespace name="frontend_index"}
    • Namespaces per Template global deaktivieren - Syntax: (Zu Anfang der Datei) {namespace ignore}
    • Namespaces komplett deaktivieren - application.php

 
	'template' => array(
...
		'ignoreNamespace' => false
	),
 

  • Korrektur Rechtschreibfehler Textbaustein "SelectBillingInfoEmpty"
  • Falsche Bild-Beschreibung im Magig-Zoom
  • Funktions-Hooks: Korrektur in der Type-Referenzierung
  • Ausbleden von Breadcrumbs - Floating Korrekturen
  • Ausgabe des Controllers als Body-Klasse ()
  • Cronjob - Plugins ließen sich ggf. nicht installieren / aktivieren
  • Unique-Index für Plugin-Konfigurationen
  • Neue Funktionen im Plugin-System
    • Direktes Anlegen von Cronjobs möglich

 
// In install() Methode Bootstrap
$this->subscribeCron("abc","abc");
// Parameter 1: Name
// Parameter 2: Name Controller
 

  • API - Import - sArticle - Entfernen nicht benötigter SQL-Befehle
  • API - Import - sDeleteArticle - Entfernen nicht benötigter SQL-Befehle
  • Benchmark-Erweiterung (Custom-Benchmarks)

 
$b = Shopware()->Benchmark()->Start("Test"); 
// Code der gemessen werden soll
$b->Stop();
 

  • Korrektur Länder-Auswahl Registrierung
  • FirePHP Ausgabe lässt sich auf IP beschränken
  • Optimierungen EOS/Clickpay-Schnittstelle
  • Varianten abhängige Bilder: Unterstützung von Sonderzeichen
  • Entfernen des nicht mehr benötigten Blog-Templates in der Template-Auswahl
  • Neue Blöcke - u.a. in der Menü-Leiste im Kundenkonto - so lassen sich dort einzelne Menüpunkte per Override deaktivieren
  • Backend Modul Textbausteine - Verbesserungen für kleine Auflösungen
  • Lightbox Detailseite - Close-Button nach oben Rechts verschoben - Klick in den Layer schließt das Fenster
  • Subshop-Unterstützung bei folgenden Plugins hinzugefügt:
    • Recommendation
    • Facebook
    • Advanced Menu
    • Paypal
    • Ticketsystem
    • Artikel-Vergleiche (Compare)
  • (Achtung! Plugins einmal neu neu installieren, damit die Änderungen wirksam werden!)
  • Entfernen von autocomplete=off aus dem Shopware jQuery Code
  • Auslagerung von CSS-Attributen aus jQuery
  • Textbausteine - Modifizierung einiger Baustein-Typen (von {se nach {s) zur Unterstützung von HTML
  • Plugin-Templates, verschieben der Templates in den _Default Space
    • AdvancedMenu
    • Compare
    • Google
    • PayPal
    • Seo
  • Neuer Controller: Ausgabe der zuletzt hinzugefügten Artikel (Link: http://www.ihrshop.de/shopware.php/sViewport,search/sSearch,Neuheiten/sSearchMode,newest/sSearchText,Neuheiten/sPage,1
  • Korrekturen PayPal-Schnittstelle - Übermittlung des Warenkorbs entfernt -
  • Ausgabe der aktuellen Cache-Größe im Backend
  • Performance-Verbesserung SEO-Routen Erkennung
  • Backend-Module lassen sich nun dynamisch austauschen / dafür notwendige Verzeichnisstruktur eingebunden
  • Unterstützung von nicht ISO-8859-1 konformen Sprachen im Frontend (z.B. kyrillisch)
  • Memcache Support für Filecache & Sessions
    • Bessere Performance bei vielen Artikeln / Besuchern
    • Beispiel-Konfiguration für File-Cache

 
return array(
...
	'cache' => array(
..
    	'backend' => 'Memcached',
    	'backendOptions' => array(
			'servers' => array(
				array(
					'host' => 'localhost',
					'port' => 11212,
					'persistent' => true,
					'weight' => 1,
					'timeout' => 5,
					'retry_interval' => 15,
					'status' => true,
					'failure_callback' => null
				)
			),
			'compression' => false,
			'compatibility' => false
		)
	),
...
);
 

    • Beispiel-Konfiguration für Sessions

 
'session' => array( //Standard
		'name' => 'SHOPWARESID',
		'cookie_lifetime' => 0,
		'use_trans_sid' => false,
		'gc_probability' => 1,
		'gc_divisor' => 100,
		'save_handler' => 'db'
	),
	/*
	'session' => array( //Memcache
		...
		'save_handler' => 'memcache',
		'save_path' => 'tcp://localhost:11211?persistent=1&weight=1&timeout=1&retry_interval=15'
	),
	'session' => array( //Dateien
		...
		'save_handler' => 'files'
	),
	*/
 

  • Kategorie-Darstellung Links auf Detailseite fixiert
  • Bilder ohne explizite Varianten-Zuordnung werden nun bei jeder Variante angezeigt
  • Max. Anzahl an Konfigurator-Kombinationen lässt sich konfigurieren
  • Alte Template-Basis: eMail-Formulare werden mit falsch kodiertem Inhalt verschickt
  • Indizierung von Recommendations verhindern
  • Konfigurierbarkeit der max. Anzahl von Herstellern im Listing Links
  • UVP / Statt & Sternchen-Hinweis bei Pseudopreisen hinzugefügt
  • Unterstützung von OL-Listen auf Shopseiten
  • Korrektur Versandkosten-Ausgabe Produkt-Exporte
  • Korrektur Ausgabe Einheiten bei Grundpreis-Berechnung
  • Aktualisierung Zend-Framework auf Version 1.11.1

Nicht mehr benötigte Dateien

Können gefahrlos entfernt werden

  • engine/backend/js/getSkeleton.php
  • templates/gradient/frontend/_resources/javascript
  • templates/clean/frontend/_resources/javascript
  • engine/Shopware/Plugins/Default/Frontend/Compare/templates
  • engine/Shopware/Plugins/Default/Frontend/Seo/templates
  • engine/Shopware/Plugins/Default/Frontend/AdvancedMenu/templates
  • engine/Shopware/Plugins/Default/Frontend/Paypal/templates
  • engine/Shopware/Plugins/Default/Frontend/Google/templates

Liste modifizierter Template-Dateien

  • templates/green/frontend/_resources/styles/green.css
  • templates/turquoise/frontend/_resources/styles/turquoise.css
  • templates/dark/frontend/_resources/styles/dark.css
  • templates/pink/frontend/_resources/styles/pink.css
  • templates/clean/frontend/_resources/styles/clean.css
  • templates/gray/frontend/_resources/styles/gray.css
  • templates/_default/frontend/plugins/recommendation/blocks_index.tpl
  • templates/_default/frontend/plugins/recommendation/blocks_detail.tpl
  • templates/_default/frontend/plugins/compare/index.tpl
  • templates/_default/frontend/plugins/notification/index.tpl
  • templates/_default/frontend/plugins/paypal/index.tpl
  • templates/_default/frontend/plugins/paypal/basket.tpl
  • templates/_default/frontend/plugins/paypal/logo.tpl
  • templates/_default/frontend/plugins/seo/index.tpl
  • templates/_default/frontend/plugins/advanced_menu/index.tpl
  • templates/_default/frontend/plugins/advanced_menu/advanced_menu.tpl
  • templates/_default/frontend/plugins/google/adwords.tpl
  • templates/_default/frontend/plugins/google/analytics.tpl
  • templates/_default/frontend/plugins/google/index.tpl
  • templates/_default/frontend/plugins/payment/paypalexpress.tpl
  • templates/_default/frontend/blog/box.tpl
  • templates/_default/frontend/register/index.tpl
  • templates/_default/frontend/paypal/error_api.tpl
  • templates/_default/frontend/paypal/pending.tpl
  • templates/_default/frontend/paypal/error.tpl
  • templates/_default/frontend/compare/overlay.tpl
  • templates/_default/frontend/compare/index.tpl
  • templates/_default/frontend/compare/add_article.tpl
  • templates/_default/frontend/compare/col.tpl
  • templates/_default/frontend/compare/col_description.tpl
  • templates/_default/frontend/forms/elements.tpl
  • templates/_default/frontend/account/content_right.tpl
  • templates/_default/frontend/detail/config_upprice.tpl
  • templates/_default/frontend/detail/buy.tpl
  • templates/_default/frontend/detail/config_step.tpl
  • templates/_default/frontend/detail/comment.tpl
  • templates/_default/frontend/detail/data.tpl
  • templates/_default/frontend/detail/bundle/box_bundle.tpl
  • templates/_default/frontend/detail/bundle/box_related.tpl
  • templates/_default/frontend/note/item.tpl
  • templates/_default/frontend/checkout/cart_footer_left.tpl
  • templates/_default/frontend/checkout/confirm_payment.tpl
  • templates/_default/frontend/checkout/ajax_cart.tpl
  • templates/_default/frontend/checkout/confirm.tpl
  • templates/_default/frontend/checkout/ajax_add_article.tpl
  • templates/_default/frontend/checkout/premiums.tpl
  • templates/_default/frontend/checkout/confirm_left.tpl
  • templates/_default/frontend/checkout/confirm_item.tpl
  • templates/_default/frontend/checkout/confirm_dispatch.tpl
  • templates/_default/frontend/search/fuzzy.tpl
  • templates/_default/frontend/search/index.tpl
  • templates/_default/frontend/index/menu_footer.tpl
  • templates/_default/frontend/index/index.tpl
  • templates/_default/frontend/index/header.tpl
  • templates/_default/frontend/index/menu_left.tpl
  • templates/_default/frontend/listing/header.tpl
  • templates/_default/frontend/listing/box_article.tpl
  • templates/_default/frontend/listing/listing.tpl
  • templates/_default/frontend/_resources/styles/style.css
  • templates/_default/frontend/_resources/styles/colors.css
  • templates/_default/frontend/_resources/styles/plugins.css
  • templates/_default/frontend/_resources/styles/ie6.css
  • templates/_default/frontend/_resources/javascript/jquery.shopware.js
  • templates/_default/backend/snippet/index.tpl
  • templates/_default/backend/cache/index.tpl
  • templates/_default/backend/index/index.tpl
  • templates/_default/backend/index/index_ext.tpl
  • templates/_default/backend/plugin/detail.tpl
  • templates/_default/backend/plugin/skeleton.tpl
  • templates/_default/backend/plugin/upload.tpl
  • templates/_default/backend/plugin/list.tpl
  • templates/_default/backend/plugin/viewport.tpl
  • templates/blue/frontend/_resources/styles/blue.css
  • templates/brown/frontend/_resources/styles/brown.css
  • templates/red/frontend/_resources/styles/red.css
  • templates/black/frontend/_resources/styles/black.css
  • templates/gradient/frontend/_resources/styles/gradient.css

Liste sonstiger Dateien

  • engine/auth.php
  • engine/backend/ajax/getTranslation.php
  • engine/backend/ajax/renameCategory.php
  • engine/backend/ajax/setTranslation.php
  • engine/backend/ajax/getCategories.php
  • engine/backend/php/sCacheTemplate.php
  • engine/backend/modules/useradd/skeleton.php
  • engine/backend/modules/mailcampaignspreview/skeleton.php
  • engine/backend/modules/start/resetshop.php
  • engine/backend/modules/import/export/csv.articles.php
  • engine/backend/modules/import/export.php
  • engine/backend/modules/import/import/articles_images.php
  • engine/backend/modules/partner/partner.php
  • engine/backend/modules/blog/blogEdit.php
  • engine/backend/modules/blog/getArticles.php
  • engine/backend/modules/userdetails/main.php
  • engine/backend/modules/categories/ajax/getCategories.php
  • engine/backend/modules/categories/categoryedit.php
  • engine/backend/modules/articles/skeleton.php
  • engine/backend/modules/articles/artikeln1.inc.php
  • engine/backend/modules/articles/class_articles.inc.php
  • engine/backend/modules/support/detailsArt.php
  • engine/backend/js/getSkeleton.php
  • engine/backend/js/framework.php
  • engine/backend/js/translations.php
  • engine/backend/js/include.php
  • engine/Shopware/Plugins/Default/Frontend/RouterOld/Bootstrap.php
  • engine/Shopware/Plugins/Default/Frontend/CronRefresh/Bootstrap.php
  • engine/Shopware/Plugins/Default/Frontend/RouterRewrite/Bootstrap.php
  • engine/Shopware/Plugins/Default/Frontend/Ticket/Bootstrap.php
  • engine/Shopware/Plugins/Default/Frontend/ViewportDispatcher/Bootstrap.php
  • engine/Shopware/Plugins/Default/Frontend/Compare/Bootstrap.php
  • engine/Shopware/Plugins/Default/Frontend/Notification/Bootstrap.php
  • engine/Shopware/Plugins/Default/Frontend/Paypal/Bootstrap.php
  • engine/Shopware/Plugins/Default/Frontend/Seo/Bootstrap.php
  • engine/Shopware/Plugins/Default/Frontend/AdvancedMenu/Bootstrap.php
  • engine/Shopware/Plugins/Default/Frontend/LastArticles/Bootstrap.php
  • engine/Shopware/Plugins/Default/Frontend/Statistics/Bootstrap.php
  • engine/Shopware/Plugins/Default/Frontend/Recommendation/Bootstrap.php
  • engine/Shopware/Plugins/Default/Frontend/Recommendation/Recommendation.php
  • engine/Shopware/Plugins/Default/Frontend/Facebook/Bootstrap.php
  • engine/Shopware/Plugins/Default/Frontend/Google/Bootstrap.php
  • engine/Shopware/Plugins/Default/Backend/Auth/Bootstrap.php
  • engine/Shopware/Plugins/Default/Core/Router/Bootstrap.php
  • engine/Shopware/Plugins/Default/Core/License/Bootstrap.php
  • engine/Shopware/Plugins/Default/Core/Debug/Bootstrap.php
  • engine/Shopware/Plugins/Default/Core/Benchmark/Bootstrap.php
  • engine/Shopware/Plugins/Default/Core/Cron/Bootstrap.php
  • engine/Shopware/Plugins/Default/Core/ViewportForward/Bootstrap.php
  • engine/Shopware/Plugins/Default/Core/CronStock/Bootstrap.php
  • engine/Shopware/Plugins/Default/Core/CronRating/Bootstrap.php
  • engine/Shopware/Plugins/Default/Core/Api/Bootstrap.php
  • engine/Shopware/Plugins/Default/Core/ControllerBase/Bootstrap.php
  • engine/Shopware/Bootstrap.php
  • engine/Shopware/Models/Shop.php
  • engine/Shopware/Models/Snippet.php
  • engine/Shopware/Components/Cron/CronManager.php
  • engine/Shopware/Components/Snippet/SnippetManager.php
  • engine/Shopware/Components/Document.php
  • engine/Shopware/Components/Benchmark/Point.php
  • engine/Shopware/Components/Benchmark/Container.php
  • engine/Shopware/Components/Plugin/Bootstrap.php
  • engine/Shopware/Controllers/Frontend/Newsletter.php
  • engine/Shopware/Controllers/Frontend/Search.php
  • engine/Shopware/Controllers/Frontend/Checkout.php
  • engine/Shopware/Controllers/Frontend/Note.php
  • engine/Shopware/Controllers/Frontend/Ticket.php
  • engine/Shopware/Controllers/Frontend/Register.php
  • engine/Shopware/Controllers/Frontend/Forms.php
  • engine/Shopware/Controllers/Backend/Newsletter.php
  • engine/Shopware/Controllers/Backend/Plugin.php
  • engine/Shopware/Controllers/Backend/Auth.php
  • engine/Shopware/Controllers/Backend/Export.php
  • engine/Shopware/Controllers/Backend/Snippet.php
  • engine/Shopware/Controllers/Backend/Cache.php
  • engine/Shopware/Controllers/Backend/Index.php
  • engine/core/class/sArticles.php
  • engine/core/class/sBasket.php
  • engine/core/class/sExport.php
  • engine/core/class/sCategories.php
  • engine/core/class/sAdmin.php
  • engine/core/class/sCore.php
  • engine/core/class/sRewriteTable.php
  • engine/core/class/viewports/s_support.php
  • engine/core/class/sSearch.php
  • engine/Enlight/Enlight/Hook/HookManager.php
  • engine/Enlight/Enlight/Template/Plugins/modifier.escape.php
  • engine/Enlight/Enlight/Template/Plugins/block.replace.php
  • engine/Enlight/Enlight/Template/Plugins/modifier.truncate.php
  • engine/Enlight/Enlight/Template/TemplateResource.php
  • engine/Enlight/Enlight/Template/TemplateManager.php
  • engine/connectors/clickpay/clickpay.class.php
  • engine/connectors/clickpay/form.php
  • engine/connectors/paypalexpress/DoExpressCheckoutPayment.php
  • engine/connectors/paypalexpress/doPaymentSUser.php
  • engine/connectors/export/.htaccess
  • engine/connectors/api/api.php
  • engine/connectors/api/export/shopware.php
  • engine/connectors/api/import/shopware.php
  • engine/connectors/saferpay/doPayment.php
  • engine/index.php
  • .htaccess

Unified Diff Template

/shopware/trunk/templates/green/frontend/_resources/styles/green.css

@@ -26,6 +26,7 @@

------------------------ */
html, a, a:link, a:active, a:hover, a:visted {color: #333;}
html {background-color:#E9EBED}
.container_20 {background-color: #fff; border-color: #cdcdcd}
html {padding-top: 0px;}
body {padding-top: 30px;}
.container_20 {background-color: #fff; border-color: #cdcdcd;margin-top: 0;}
h2, h3 {color:#999}
div.ico_new, div.ico_tipp, div.ico_esd {color: #fff;}

@@ -165,5 +166,5 @@

.artbox p.desc {color: #777;}
.artbox .actions a, #related .listing .artbox .actions a, .listing_actions .offers {color: #696969;border-color: #e3e3e3;}
.artbox .actions a.buynow, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #72a425;}
.artbox .actions a.more, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #72a425;}
.artbox p.pseudoprice span.price {color:#990000;}
.artbox span.pseudo {color: #777;}

@@ -521,5 +522,5 @@

/* COLOR SPECIFIC IMAGES
------------------------ */
html {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
body {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
#detail #detailinfo {background-image: url("../images/backgrounds/bg_detailinfo.png")}
#shopnavi .icon a {background-image: url("../images/icons/ico_basket.png")}

@@ -538,3 +539,3 @@

#shopnavi .ajax_basket_container {background-image: url("../images/backgrounds/bg_ajaxbasket.png")}
.ajaxSlider .leftArrow, .ajaxSlider .rightArrow, .bannerSlider .leftArrow, .bannerSlider .rightArrow {background-image: url("../images/sprite_slider_arrows.png")}
#buybox #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png"); cursor:pointer}
#content #detail #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png") !important; cursor:pointer}


/shopware/trunk/templates/turquoise/frontend/_resources/styles/turquoise.css

@@ -26,6 +26,7 @@

------------------------ */
html, a, a:link, a:active, a:hover, a:visted {color: #333;}
html {background-color:#E9EBED}
.container_20 {background-color: #fff; border-color: #cdcdcd}
html {padding-top: 0px;}
body {padding-top: 30px;}
.container_20 {background-color: #fff; border-color: #cdcdcd;margin-top: 0;}
h2, h3 {color:#999}
div.ico_new, div.ico_tipp, div.ico_esd {color: #fff;}

@@ -165,5 +166,5 @@

.artbox p.desc {color: #777;}
.artbox .actions a, #related .listing .artbox .actions a, .listing_actions .offers {color: #696969;border-color: #e3e3e3;}
.artbox .actions a.buynow, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #1db3b8;}
.artbox .actions a.more, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #1db3b8;}
.artbox p.pseudoprice span.price {color:#990000;}
.artbox span.pseudo {color: #777;}

@@ -521,5 +522,5 @@

/* COLOR SPECIFIC IMAGES
------------------------ */
html {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
body {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
#detail #detailinfo {background-image: url("../images/backgrounds/bg_detailinfo.png")}
#shopnavi .icon a {background-image: url("../images/icons/ico_basket.png")}

@@ -538,3 +539,3 @@

#shopnavi .ajax_basket_container {background-image: url("../images/backgrounds/bg_ajaxbasket.png")}
.ajaxSlider .leftArrow, .ajaxSlider .rightArrow, .bannerSlider .leftArrow, .bannerSlider .rightArrow {background-image: url("../images/sprite_slider_arrows.png")}
#buybox #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png"); cursor:pointer}
#content #detail #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png") !important; cursor:pointer}


/shopware/trunk/templates/dark/frontend/_resources/styles/dark.css

@@ -26,5 +26,4 @@

------------------------ */
html, a, a:link, a:active, a:hover, a:visted {color: #333;}
html {background-color:#E9EBED}
.container_20 {background-color: #fff; border-color: #cdcdcd}
h2, h3 {color:#999}

@@ -165,5 +164,5 @@

.artbox p.desc {color: #777;}
.artbox .actions a, #related .listing .artbox .actions a, .listing_actions .offers {color: #696969;border-color: #e3e3e3;}
.artbox .actions a.buynow, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #000000;}
.artbox .actions a.more, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #000000;}
.artbox p.pseudoprice span.price {color:#990000;}
.artbox span.pseudo {color: #777;}

@@ -521,5 +520,5 @@

/* COLOR SPECIFIC IMAGES
------------------------ */
body {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
body {background-color:#383838;background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
#detail #detailinfo {background-image: url("../images/backgrounds/bg_detailinfo.png")}
/*#shopnavi .icon a {background-image: url("../images/icons/ico_basket.png")}*/

@@ -538,13 +537,9 @@

#shopnavi .ajax_basket_container {background-image: url("../images/backgrounds/bg_ajaxbasket.png");}
.ajaxSlider .leftArrow, .ajaxSlider .rightArrow, .bannerSlider .leftArrow, .bannerSlider .rightArrow {background-image: url("../images/sprite_slider_arrows.png");}
#buybox #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png"); cursor:pointer}
#content #detail #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png") !important; cursor:pointer}
/* Template SPECIFIC Styles
------------------------ */
html {
background-color:#383838;
padding-top:0;
}
html {padding-top:0;}
.container_20 {background-image: url("../images/backgrounds/bg_container20.png");background-repeat: repeat-x;margin:0px auto 0;border:0 none;padding-bottom:20px;}

@@ -569,5 +564,4 @@

div.ico_tipp {background-image: url("../images/sprite_listing.gif");}
div#footer {background:#000 url(../images/backgrounds/bg_footer.gif) repeat-x scroll 0 0;padding-top:40px;}
#footer .footer_menu {background-image: none; border:0 none; color:#555;margin-bottom: 30px;}

@@ -578,4 +572,2 @@

#footer a {color:#888;}


/shopware/trunk/templates/pink/frontend/_resources/styles/pink.css

@@ -26,6 +26,7 @@

------------------------ */
html, a, a:link, a:active, a:hover, a:visted {color: #333;}
html {background-color:#E9EBED}
.container_20 {background-color: #fff; border-color: #cdcdcd}
html {padding-top: 0px;}
body {padding-top: 30px;}
.container_20 {background-color: #fff; border-color: #cdcdcd;margin-top: 0;}
h2, h3 {color:#999}
div.ico_new, div.ico_tipp, div.ico_esd {color: #fff;}

@@ -165,5 +166,5 @@

.artbox p.desc {color: #777;}
.artbox .actions a, #related .listing .artbox .actions a, .listing_actions .offers {color: #696969;border-color: #e3e3e3;}
.artbox .actions a.buynow, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #d31e81;}
.artbox .actions a.more, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #d31e81;}
.artbox p.pseudoprice span.price {color:#990000;}
.artbox span.pseudo {color: #777;}

@@ -521,5 +522,5 @@

/* COLOR SPECIFIC IMAGES
------------------------ */
html {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
body {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
#detail #detailinfo {background-image: url("../images/backgrounds/bg_detailinfo.png")}
#shopnavi .icon a {background-image: url("../images/icons/ico_basket.png")}

@@ -538,3 +539,3 @@

#shopnavi .ajax_basket_container {background-image: url("../images/backgrounds/bg_ajaxbasket.png")}
.ajaxSlider .leftArrow, .ajaxSlider .rightArrow, .bannerSlider .leftArrow, .bannerSlider .rightArrow {background-image: url("../images/sprite_slider_arrows.png")}
#buybox #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png"); cursor:pointer}
#content #detail #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png") !important; cursor:pointer}


/shopware/trunk/templates/clean/frontend/_resources/styles/clean.css

@@ -165,5 +165,5 @@

.artbox p.desc {color: #777;}
.artbox .actions a, #related .listing .artbox .actions a, .listing_actions .offers {color: #696969;border-color: #e3e3e3;}
.artbox .actions a.buynow, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #be0a30;}
.artbox .actions a.more, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #be0a30;}
.artbox p.pseudoprice span.price {color:#990000;}
.artbox span.pseudo {color: #777;}

@@ -366,5 +366,5 @@

/* VIEWLAST
------------------------ */
.viewlast {border-color:#c7c7c7 #c7c7c7 #c7c7c7 #fff;}
.viewlast {border-color:#c7c7c7;}
.viewlast .heading {color: #636363;border-color: #e3e3e3}
.viewlast .article_image {border-color: #e7e7e7;}

@@ -538,5 +538,5 @@

#shopnavi .ajax_basket_container {background: transparent;}
.ajaxSlider .leftArrow, .ajaxSlider .rightArrow, .bannerSlider .leftArrow, .bannerSlider .rightArrow {background-image: url("../images/sprite_slider_arrows.png")}
#buybox #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png"); cursor:pointer}
#content #detail #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png") !important; cursor:pointer}
#content .headingbox {background:transparent; border-bottom: 1px solid #c7c7c7;height:20px;}

@@ -555,5 +555,5 @@

#detail #detailinfo {background: none; }
ul.categories {border: 1px solid #ddd;}
ul.categories {border: 1px solid #ddd;display: inline-block;width: 178px}
#content #left ul li.active {border-left: 0 none; border-right:0 none; }
#content #left ul li.active a.flag {font-weight:bold; }

@@ -585,2 +585,6 @@

div.inner_searchcontainer .ajax_loader {left: 175px;}
div#searchresults {
left: 535px;
top: 25px;
}


/shopware/trunk/templates/gray/frontend/_resources/styles/gray.css

@@ -26,6 +26,7 @@

------------------------ */
html, a, a:link, a:active, a:hover, a:visted {color: #333;}
html {background-color:#E9EBED}
.container_20 {background-color: #fff; border-color: #cdcdcd}
html {padding-top: 0px;}
body {padding-top: 30px;}
.container_20 {background-color: #fff; border-color: #cdcdcd;margin-top: 0;}
h2, h3 {color:#999}
div.ico_new, div.ico_tipp, div.ico_esd {color: #fff;}

@@ -165,5 +166,5 @@

.artbox p.desc {color: #777;}
.artbox .actions a, #related .listing .artbox .actions a, .listing_actions .offers {color: #696969;border-color: #e3e3e3;}
.artbox .actions a.buynow, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #7c7c7c;}
.artbox .actions a.more, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #7c7c7c;}
.artbox p.pseudoprice span.price {color:#990000;}
.artbox span.pseudo {color: #777;}

@@ -521,5 +522,5 @@

/* COLOR SPECIFIC IMAGES
------------------------ */
html {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
body {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
#detail #detailinfo {background-image: url("../images/backgrounds/bg_detailinfo.png")}
#shopnavi .icon a {background-image: url("../images/icons/ico_basket.png")}

@@ -538,3 +539,3 @@

#shopnavi .ajax_basket_container {background-image: url("../images/backgrounds/bg_ajaxbasket.png")}
.ajaxSlider .leftArrow, .ajaxSlider .rightArrow, .bannerSlider .leftArrow, .bannerSlider .rightArrow {background-image: url("../images/sprite_slider_arrows.png")}
#buybox #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png"); cursor:pointer}
#content #detail #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png") !important; cursor:pointer}


/shopware/trunk/templates/_default/frontend/plugins/recommendation/blocks_index.tpl

@@ -1,20 +1,21 @@

{block name='frontend_index_header_javascript_inline' prepend}
{block name='frontend_index_header_javascript' append}
<script type="text/javascript">
//<![CDATA[
jQuery(document).ready(function($) {
{if $new_active}
$('.slider').ajaxSlider('ajax', {
'url': '{url controller=recommendation action=new category=$sCategoryContent.id}',
'title': '{s name="IndexNewArticlesSlider"}Neu im Sortiment:{/s}',
'headline': true,
'navigation': false,
'scrollSpeed': 800,
'rotate': false,
'width':628,
'containerCSS': { 'marginTop': '0px', 'marginBottom': '15px' }
'url': unescape('{"{url controller=recommendation action=new category=$sCategoryContent.id}"|escape:url}'),
'title': '{s name="IndexNewArticlesSlider"}Neu im Sortiment:{/s}',
'headline': true,
'navigation': false,
'scrollSpeed': 800,
'rotate': false,
'width':628,
'containerCSS': { 'marginTop': '0px', 'marginBottom': '15px' }
});
{/if}
{if $bought_active}
$('.slider2').ajaxSlider('ajax', {
'url': '{url controller=recommendation action=similaryViewed category=$sCategoryContent.id}',
'url': unescape('{"{url controller=recommendation action=similaryViewed category=$sCategoryContent.id}"|escape:url}'),
'title': '{s name="IndexSimilaryArticlesSlider"}Ähnliche Artikel wie die, die Sie sich angesehen haben:{/s}',
'headline': true,

@@ -26,5 +27,4 @@

});
{/if}
{if $banner_active}
$('.slider_banner').ajaxSlider('locale', {

@@ -57,4 +57,6 @@

{/if}
});
//]]>
</script>
{/block}

@@ -99,13 +101,10 @@

{block name="frontend_home_index_blog" prepend}
{if $supplier_active}
<!-- Supplier slider -->
<div class="supplier_slider">
{foreach from=$suppliers item=slide}
<!-- Slide container -->
<div class="slide">
{foreach from=$slide item=supplier}
<!-- Hersteller Logo -->
<div {if $supplier.image}class="logo"{else}class="text"{/if}>
<a href="{$supplier.link}" title="{$supplier.name}" {if $supplier.image}style="background-image:url({$supplier.image});"{/if}>
<a href="{$supplier.link}" title="{$supplier.name}"{if $supplier.image} style="background-image:url({$supplier.image});"{/if}>
{if $supplier.image}
<img src="{$supplier.image}" alt="{$supplier.name}" />

@@ -113,11 +112,10 @@

{$supplier.name}
{/if}
</a>
</div>
{/foreach}
</div> <!-- //Slide container -->
</div>
{/foreach}
</div> <!-- //Supplier slider -->
</div>
{/if}
{/block}


/shopware/trunk/templates/_default/frontend/plugins/recommendation/blocks_detail.tpl

@@ -1,21 +1,9 @@

{block name='frontend_index_header_javascript_inline' prepend}
{block name='frontend_index_header_javascript' append}
<script type="text/javascript">
//<![CDATA[
jQuery(document).ready(function($) {
$('.slider').ajaxSlider('ajax', {
'url': '{url controller=recommendation action=bought article=$sArticle.articleID}',
'title': 'Kunden kauften auch:',
'headline': true,
'navigation': false,
'scrollSpeed': 800,
'rotateSpeed': 3000,
'rotate': false,
'containerCSS': {
'marginBottom': '20px'
}
});
$('.slider2').ajaxSlider('ajax', {
'url': '{url controller=recommendation action=viewed article=$sArticle.articleID}',
'title': 'Kunden haben sich ebenfalls angesehen:',
'url': unescape('{"{url controller=recommendation action=bought article=$sArticle.articleID}"|escape:url}'),
'title': '{s name="DetailBoughtArticlesSlider"}Kunden kauften auch:{/s}',
'headline': true,
'navigation': false,

@@ -27,11 +15,19 @@

}
});
$('.slider2').ajaxSlider('ajax', {
'url': unescape('{"{url controller=recommendation action=viewed article=$sArticle.articleID}"|escape:url}'),
'title': '{s name="DetailViewedArticlesSlider"}Kunden haben sich ebenfalls angesehen:{/s}',
'headline': true,
'navigation': false,
'scrollSpeed': 800,
'rotateSpeed': 3000,
'rotate': false,
'containerCSS': {
'marginBottom': '20px'
}
});
});
//]]>
</script>
{/block}
{block name="frontend_detail_index_tabs" append}
{/block}
{block name="frontend_detail_index_tabs" append}{/block}


/shopware/trunk/templates/_default/frontend/plugins/compare/index.tpl

@@ -0,0 +1,37 @@

{* Compare container *}
{block name='frontend_index_navigation_inline' append}
<div id="compareContainerAjax">
{include file='frontend/compare/index.tpl'}
</div>
{/block}
{* Compare result *}
{block name='frontend_index_body_inline' append}
<div id="compare_bigbox"></div>
{/block}
{* Compare button *}
{block name='frontend_listing_box_article_actions_inline' prepend}
<a href="{url controller='compare' action='add_article' articleID=$sArticle.articleID}" rel="nofollow" title="{s name='ListingBoxLinkCompare'}vergleichen{/s}" class="compare_add_article hide_script">{se name='ListingBoxLinkCompare'}{/se}</a>
{/block}
{* Compare javascript *}
{block name='frontend_index_header_javascript_inline' prepend}
var compareCount = '{$sComparisons|count}';
var compareMaxCount = '{config name="MaxComparisons"}';
{literal}
jQuery(document).ready(function() {
jQuery.compare.setup();
});
{/literal}
{/block}
{* Compare button 2 *}
{block name='frontend_detail_actions_contact' append}
<li>
<a href="{url controller='compare' action='add_article' articleID=$sArticle.articleID}" rel="nofollow" title="{s name='DetailActionLinkCompare'}Artikel vergleichen{/s}" class="compare_add_article hide_script">
{se name="DetailActionLinkCompare"}{/se}
</a>
</li>
{/block}


/shopware/trunk/templates/_default/frontend/plugins/notification/index.tpl

@@ -23,13 +23,13 @@

</div>
{else}
{if $NotifyValid != true}
<div class="notice">
{if $NotifyValid != true}
<div class="center">
<div class="center">
<strong>
{se name='DetailNotifyHeader'}{/se}
</strong>
</div>
</div>
{/if}
</div>
{/if}

@@ -48,7 +48,6 @@

</div>
</fieldset>
<div class="doublespace">&nbsp;</div>
</form>
<div class="doublespace">&nbsp;</div>
<div id="articleNotificationWasSend" class="displaynone">


/shopware/trunk/templates/_default/frontend/plugins/paypal/index.tpl

@@ -0,0 +1,13 @@

{* PayPal logo *}
{block name='frontend_index_left_menu' append}
{if {config name="PaypalLogo"}}
{include file='frontend/plugins/paypal/logo.tpl'}
{/if}
{/block}
{* PayPal button *}
{block name="frontend_checkout_actions_confirm" append}
{if {config name="Xpress"} && !$sUserLoggedIn}
{include file='frontend/plugins/paypal/basket.tpl'}
{/if}
{/block}


/shopware/trunk/templates/_default/frontend/plugins/paypal/basket.tpl

@@ -0,0 +1,4 @@

<div class="basket_bottom_paypal">
<a href="engine/connectors/paypalexpress/doPaymentGuest.php">
<img src="https://www.paypal.com/{$Locale}/i/btn/btn_xpressCheckout.gif" /></a>
</div>


/shopware/trunk/templates/_default/frontend/plugins/paypal/logo.tpl

@@ -0,0 +1,10 @@

<div id="paypalLogo">
<div class="inner_container">
<a href="#" onclick="javascript:window.open('https://www.paypal.com/de/cgi-bin/webscr?cmd=xpt/Marketing/popup/OLCWhatIsPayPal-outside','olcwhatispaypal','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=400, height=500');">
<img src="{link file='frontend/_resources/images/logo_paypal.gif'}" border="0" alt="{s name='PaypalLogoAlt'}{/s}" />
</a>
<p>
{se name="PaypalLogoText"}{/se}
</p>
</div>
</div>


/shopware/trunk/templates/_default/frontend/plugins/seo/index.tpl

@@ -0,0 +1,2 @@

{block name='frontend_index_header_meta_robots'}{if $SeoMetaRobots}{$SeoMetaRobots}{else}{$smarty.block.parent}{/if}{/block}
{block name='frontend_index_header_meta_description'}{if $SeoMetaDescription}{$SeoMetaDescription}{else}{$smarty.block.parent}{/if}{/block}


/shopware/trunk/templates/_default/frontend/plugins/advanced_menu/index.tpl

@@ -0,0 +1,3 @@

{block name="frontend_index_navigation_categories_top"}
{include file=$sAdvancedMenuConfig.template}
{/block}


/shopware/trunk/templates/_default/frontend/plugins/advanced_menu/advanced_menu.tpl

@@ -0,0 +1,32 @@

{function name=categories_top level=0}
<ul class="{if !$level}dropdown{else}droplevel{/if} droplevel{$level}">
{foreach from=$categories item=category}
<li class="{if $category.flag}active{/if}{if $category.sub} sub{/if}">
<a href="{$category.link}" class="{if $category.flag} active{/if}">{$category.name}</a>
{if $category.sub}
{call name=categories_top categories=$category.sub level=$level+1}
{/if}
</li>
{/foreach}
</ul>
{/function}
<div id="mainNavigation" class="grid_20">
<ul>
<li class="{if $sCategoryCurrent eq $sCategoryStart}active{/if}">
<a href="{url controller='index'}" title="{s name='IndexLinkHome'}Home{/s}" class="first{if $sCategoryCurrent eq $sCategoryStart} active{/if}">
{se name='IndexLinkHome'}{/se}
</a>
</li>
{foreach from=$sAdvancedMenu item=sCategory}
<li class="{if $sCategory.flag}active{/if}{if $sCategory.sub} dropactive{/if}">
<a href="{$sCategory.link}" title="{$sCategory.description}" {if $sCategory.flag} class="active"{/if}>
{$sCategory.description}
</a>
{if $sCategory.sub}
{call name=categories_top categories=$sCategory.sub}
{/if}
</li>
{/foreach}
</ul>
</div>


/shopware/trunk/templates/_default/frontend/plugins/google/adwords.tpl

@@ -0,0 +1,22 @@

{if $GoogleConversionID}
{if $sAmountWithTax}
{assign var="sRealAmount" value=$sAmountWithTax|replace:",":"."}
{else}
{assign var="sRealAmount" value=$sAmount|replace:",":"."}
{/if}
<script type="text/javascript">
//<![CDATA[
var google_conversion_id = "{$GoogleConversionID}";
var google_conversion_language = "{$GoogleConversionLanguage}";
var google_conversion_format = "1";
var google_conversion_color = "FFFFFF";
var google_conversion_value = {$sRealAmount};
var google_conversion_label = "purchase";
//]]>
</script>
<script type="text/javascript" src="https://www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<img height=1 width=1 border=0 src="https://www.googleadservices.com/pagead/conversion/{$GoogleConversionID}/imp.gif?value={$sRealAmount}&label=purchase&script=0">
</noscript>
{/if}


/shopware/trunk/templates/_default/frontend/plugins/google/analytics.tpl

@@ -0,0 +1,53 @@

<script type="text/javascript">
//<![CDATA[
var _gaq = _gaq || [];
_gaq.push(['_setAccount', "{$GoogleTrackingID|escape:'javascript'}"]);
_gaq.push(['_trackPageview']);
{if $sBasket.content && $sOrderNumber}
{if $sAmountWithTax}
{assign var="sAmountTax" value=$sAmountWithTax|replace:",":"."}
{else}
{assign var="sAmountTax" value=$sAmount|replace:",":"."}
{/if}
{if $sAmountNet}
{assign var="sAmountNumeric" value=$sAmountNet|replace:",":"."}
{else}
{assign var="sAmountNumeric" value=$sAmount|replace:",":"."}
{/if}
{assign var="sAmountTax" value=$sAmountTax-$sAmountNumeric}
_gaq.push(['_addTrans',
"{$sOrderNumber|round}",
"{$sShopname|escape:'javascript'}",
"{$sAmountNumeric|round:2}",
"{$sAmountTax|round:2}",
"{$sShippingcosts|replace:',':'.'|round:2}",
"{$sUserData.billingaddress.city|escape}",
"",
"{$sUserData.additional.country.countryen|escape}"
]);
{foreach from=$sBasket.content item=sBasketItem}{if !$sBasketItem.modus}
_gaq.push(['_addItem',
"{$sOrderNumber|round}",
"{$sBasketItem.articleID|round}",
"{$sBasketItem.articlename|escape:'javascript'}",
"",
"{$sBasketItem.priceNumeric|round:2}",
"{$sBasketItem.quantity|round}"
]);
{/if}{/foreach}
_gaq.push(['_trackTrans']);
{/if}
{literal}
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
})();
{/literal}
//]]>
</script>


/shopware/trunk/templates/_default/frontend/plugins/google/index.tpl

@@ -0,0 +1,10 @@

{block name='frontend_index_header_javascript' append}
{if $GoogleTrackingID}
{include file="frontend/plugins/google/analytics.tpl"}
{/if}
{/block}
{block name='frontend_checkout_finishs_transaction_number' append}
{if $GoogleConversionID}
{include file="frontend/plugins/google/adwords.tpl"}
{/if}
{/block}


/shopware/trunk/templates/_default/frontend/plugins/payment/paypalexpress.tpl

@@ -0,0 +1,4 @@

<p class="paypal">
<a href="#" onclick="javascript:window.open('https://www.paypal.com/de/cgi-bin/webscr?cmd=xpt/Marketing/popup/OLCWhatIsPayPal-outside','olcwhatispaypal','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=400, height=500');">
<img src="https://www.paypal.com/de_DE/DE/i/logo/lockbox_100x45.gif" border="0" alt="PayPal-Bezahlmethoden-Logo"></a>
</p>


/shopware/trunk/templates/_default/frontend/blog/box.tpl

@@ -52,5 +52,5 @@

{block name='frontend_blog_col_read_more'}
<p>
<a href="{$sArticle.linkDetails}" title="{$sArticle.articleName}" class="more_info">{se name="BlogLinkMore"}{/se}</a>
<a href="{url controller=detail sArticle=$sArticle.articleID}" title="{$sArticle.articleName}" class="more_info">{se name="BlogLinkMore"}{/se}</a>
</p>
{/block}


/shopware/trunk/templates/_default/frontend/register/index.tpl

@@ -50,7 +50,10 @@

{include file="frontend/register/error_message.tpl" error_messages=$register->shipping->error_messages}
{include file="frontend/register/shipping_fieldset.tpl" form_data=$register->shipping->form_data error_flags=$register->shipping->error_flags country_list=$register->shipping->country_list}
<div class="payment_method register_last"></div>
{*
{include file="frontend/register/error_message.tpl" error_messages=$register->payment->error_messages}
{include file="frontend/register/payment_fieldset.tpl" form_data=$register->payment->form_data error_flags=$register->payment->error_flags payment_means=$register->payment->payment_means}
*}
{* Privacy checkbox *}


/shopware/trunk/templates/_default/frontend/paypal/pending.tpl

@@ -0,0 +1,25 @@

{extends file='frontend/index/index.tpl'}
{* Breadcrumb *}
{block name='frontend_index_start' prepend}
{assign var='sBreadcrumb' value=[['name'=>'Paypal Express Order Pending Page'|snippet:'PalpalPendingTitle']]}
{/block}
{block name='frontend_index_content'}
<div class="grid_16" id="center">
<h2>{se name="PalpalPendingTitle"}Vielen Dank für Ihre Bestellung.{/se}</h2>
<div>
{s name="PalpalPendingInfo"}
<p>
Sobald Ihre Überweisung bei PayPal eingegangen ist, werden wir informiert – und verschicken die Ware dann umgehend.<br /><br />
Sie haben den Betrag noch nicht überwiesen? Kein Problem. Die Bankverbindung von PayPal können Sie jederzeit in Ihrem PayPal-Konto abrufen.
Klicken Sie in der Kontoübersicht direkt neben der Zahlung auf den Link "Details".
Auf der nächsten Seite finden Sie unter dem Link "So schließen Sie Ihre PayPal-Zahlung per Banküberweisung ab“ alle nötigen Informationen.
</p>
{/s}
</div>
<a href="{url controller='index'}" title="{s name='PalpalPendingLinkHomepage'}{/s}" class="button-left large modal_close">
{se name="PalpalPendingLinkHomepage"}{/se}
</a>
</div>
{/block}


/shopware/trunk/templates/_default/frontend/compare/overlay.tpl

@@ -0,0 +1,17 @@

<div class="heading">
{* Headline *}
<h2>{se name='CompareHeader'}{/se}</h2>
<a href="#close_compare" onclick="$.compare.hideCompareList()" class="modal_close" title="{s name='LoginActionClose'}{/s}">
{s name='CompareActionClose'}{/s}
</a>
</div>
<div class="space">&nbsp;</div>
<div class="inner_container">
{include file="frontend/compare/col_description.tpl" sArticle=$sComparison.articles sProperties=$sComparison.properties}
{foreach from=$sComparisonsList.articles item=sComparison key=key name="counter"}
{include file="frontend/compare/col.tpl" sArticle=$sComparison sProperties=$sComparison.properties}
{/foreach}
</div>
<div class="clear">&nbsp;</div>


/shopware/trunk/templates/_default/frontend/compare/index.tpl

@@ -0,0 +1,17 @@

{if $sComparisons}
<div id="compareContainer" onmouseover="jQuery.compare.showCompare();" onmouseout="jQuery.compare.hideCompare();">
<span id="compareHighlight">{se name="CompareInfoCount"}Mein Vergleich{/se} ({$sComparisons|@count})</span>
</div>
<div id="compareContainerResults" onmouseover="jQuery.compare.showCompare();" onmouseout="jQuery.compare.hideCompare()">
<ul>
{foreach from=$sComparisons item=compare}
<li>
<div>{$compare.articlename|truncate:30}</div> <a href="{url controller='compare' action='delete_article' articleID=$compare.articleID}" rel="nofollow" class="del_comp compare_delete_article">&nbsp;</a>
</li>
{/foreach}
<li><a href="{url controller='compare' action='overlay'}" rel="nofollow" class="bt_compare compare_get_overlay" onclick="return false;">{se name="CompareActionStart"}{/se}</a></li>
<li class="last"><a href="{url controller='compare' action='delete_all'}" rel="nofollow" class="bt_compare_del compare_delete_all" onclick="return false;">{se name="CompareActionDelete"}{/se}</a></li>
</ul>
</div>
{/if}


/shopware/trunk/templates/_default/frontend/compare/add_article.tpl

@@ -0,0 +1,15 @@

{if $sCompareAddResult|is_bool}
{include file="frontend/compare/index.tpl"}
{else}
<div class="heading">
<h2>{s name="CompareHeaderTitle"}{/s}</h2>
<a href="#" class="modal_close" title="{s name='LoginActionClose'}{/s}">
{s name='CompareActionClose'}{/s}
</a>
</div>
<p class="text">
{s name='CompareInfoMaxReached'}{/s}
</p>
{/if}


/shopware/trunk/templates/_default/frontend/compare/col.tpl

@@ -0,0 +1,57 @@

<div class="grid_3 compare_article">
{* Picture *}
<div class="picture">
{block name="frontend_compare_article_picture"}
<a href="{$sArticle.linkDetails}" title="{$sArticle.articleName}">
{if $sArticle.image.src}
<img src="{$sArticle.image.src.2}" alt="{$sArticle.articleName}" />
{else}
<img src="{link file='frontend/_resources/images/no_picture.jpg'}" alt="{$sArticle.articleName}" />
{/if}
</a>
{/block}
</div>
{* Name *}
<div class="name">
{block name='frontend_compare_article_name'}
<h3><a href="{$sArticle.linkDetails}" title="{$sArticle.articleName}">{$sArticle.articleName|truncate:47}</a></h3>
{/block}
</div>
{* User Votings *}
<div class="votes">
{block name='frontend_compare_votings'}
<div class="star star{$sArticle.sVoteAverange.averange*2|round}">Star Rating</div>
{/block}
</div>
{* Description *}
<div class="desc">
{block name='frontend_compare_description'}
<p>
{$sArticle.description_long|truncate:150}
</p>
{/block}
</div>
{* Price *}
<div class="price">
{block name='frontend_compare_price'}
<p {if $sArticle.pseudoprice} class="article-price2" {else} class="article-price"{/if}>
{if $sArticle.pseudoprice}<s>{$sArticle.pseudoprice|currency}</s><br />{/if}
<strong>{if $sArticle.priceStartingFrom}ab {/if}{$sArticle.price|currency}</strong>*
</p>
{/block}
</div>
{* Properties *}
{foreach from=$sArticle.sProperties item=property}
{block name='frontend_compare_properties'}
<div class="property" style="background-color:{if $property@iteration%2}#f5f5f5{else}#e3e3e3{/if};">
{if $property.value}{$property.value}{else}-{/if}
</div>
{/block}
{/foreach}
</div>


/shopware/trunk/templates/_default/frontend/compare/col_description.tpl

@@ -0,0 +1,42 @@

{* Compare Description *}
<div class="grid_3 compare_desc first">
<div class="picture">
{block name='frontend_article_picture'}
{se name="CompareColumnPicture"}{/se}
{/block}
</div>
<div class="name">
{block name='frontend_compare_article_name'}
{se name="CompareColumnName"}{/se}
{/block}
</div>
<div class="votes">
{block name='frontend_compare_votings'}
{se name="CompareColumnRating"}{/se}
{/block}
</div>
<div class="desc">
{block name='frontend_compare_description'}
{se name="CompareColumnDescription"}{/se}
{/block}
</div>
<div class="price">
{block name='frontend_compare_price'}
{se name="CompareColumnPrice"}{/se}
{/block}
</div>
{foreach from=$sComparisonsList.properties item=property}
{block name='frontend_compare_properties'}
<div class="property">
{if $property}{$property}:{/if}
</div>
{/block}
{/foreach}
</div>


/shopware/trunk/templates/_default/frontend/forms/elements.tpl

@@ -21,8 +21,9 @@

{foreach from=$sSupport.sElements item=sElement key=sKey}
{if $sSupport.sFields[$sKey]||$sElement.note}
<p {if $sSupport.sElements[$sKey].typ eq 'textarea'}class="textarea"{elseif $sSupport.sElements[$sKey].typ eq 'checkbox'}class="checkbox"{/if}>
{$sSupport.sLabels.$sKey}
{eval var=$sSupport.sFields[$sKey]}
</p>
<div {if $sSupport.sElements[$sKey].typ eq 'textarea'}class="textarea"{elseif $sSupport.sElements[$sKey].typ eq 'checkbox'}class="checkbox"{/if}>
{$sSupport.sLabels.$sKey}
{eval var=$sSupport.sFields[$sKey]}
</div>
{if $sElement.note}
<p class="description">


/shopware/trunk/templates/_default/frontend/account/content_right.tpl

@@ -1,6 +1,8 @@

<h2 class="headingbox largesize">{se name="AccountHeaderNavigation"}{/se}</h2>
<div class="adminbox">
{block name="frontend_account_content_right_start"}
{/block}
<ul>
{block name="frontend_account_content_right_overview"}
{* Overview *}
<li>

@@ -9,5 +11,6 @@

</a>
</li>
{/block}
{block name="frontend_account_content_right_orders"}
{* My orders *}
<li>

@@ -16,5 +19,6 @@

</a>
</li>
{/block}
{block name="frontend_account_content_right_downloads"}
{* My esd articles *}
<li>

@@ -23,5 +27,6 @@

</a>
</li>
{/block}
{block name="frontend_account_content_right_billing"}
{* Change billing address *}
<li>

@@ -30,5 +35,6 @@

</a>
</li>
{/block}
{block name="frontend_account_content_right_shipping"}
{* Change shipping address *}
<li>

@@ -37,5 +43,6 @@

</a>
</li>
{/block}
{block name="frontend_account_content_right_payment"}
{* Change payment method *}
<li>

@@ -44,5 +51,6 @@

</a>
</li>
{/block}
{block name="frontend_account_content_right_support"}
{* Supportmanagement *}
{if $sTicketLicensed}

@@ -55,5 +63,6 @@

<li class="sub"><a href="{url controller='ticket' action='request'}">{s name='TicketLinkSupport'}{/s}</a></li>
{/if}
{/block}
{block name="frontend_account_content_right_notes"}
{* Leaflet *}
<li>

@@ -62,5 +71,6 @@

</a>
</li>
{/block}
{block name="frontend_account_content_right_logout"}
{* Logout *}
<li class="last">

@@ -69,4 +79,7 @@

</a>
</li>
{/block}
</ul>
{block name="frontend_account_content_right_end"}
{/block}
</div>


/shopware/trunk/templates/_default/frontend/detail/config_upprice.tpl

@@ -1,3 +1,3 @@

<form method="post" action="{url sArticle=$sArticle.articleID}" class="upprice_config">
<form method="post" action="{url sArticle=$sArticle.articleID sCategory=$sArticle.categoryID}" class="upprice_config">
{foreach from=$sArticle.sConfigurator item=sConfigurator}


/shopware/trunk/templates/_default/frontend/detail/buy.tpl

@@ -79,14 +79,18 @@

{assign var="sCountConfigurator" value=$sArticle.sConfigurator|@count}
{if ($sArticle.sConfiguratorSettings.type!=1 || $sArticle.sConfigurator[$sCountConfigurator-1].user_selected) && (!isset($sArticle.active) || $sArticle.active)}
{if $sArticle.laststock && $sArticle.instock <= 0}
{block name='frontend_detail_buy_laststock'}
{block name='frontend_detail_buy_laststock'}
{if $sArticle.laststock}
<div id="detailBuyInfoNotAvailable"{if $sArticle.instock > 0} style="display: none;"{/if}>
<div class="space">&nbsp;</div>
<div class="error bold center">
{s name="DetailBuyInfoNotAvailable"}{/s}
</div>
{/block}
{else}
<div {if $NotifyHideBasket && $sArticle.notification} id="detailCartButton" {/if} {if $NotifyHideBasket && $sArticle.notification && $sArticle.instock <= 0}style="display: none;"{/if}>
</div>
{/if}
{/block}
{if !$sArticle.laststock || $sArticle.sVariants || $sArticle.instock>0}
<div id="detailCartButton" {if $NotifyHideBasket && $sArticle.notification && $sArticle.instock <= 0}style="display: none;"{/if}>
{block name='frontend_detail_buy_quantity'}
{if $sArticle.laststock==true}
{if $sArticle.laststock && !$sArticle.sVariants}
{assign var=maxQuantity value=$sArticle.instock+1}
{else}

@@ -96,5 +100,5 @@

<select id="sQuantity" name="sQuantity">
{section name="i" start=$sArticle.minpurchase loop=$maxQuantity step=$sArticle.purchasesteps}
<option value="{$smarty.section.i.index}">{$smarty.section.i.index}{if $sArticle.packunit} {$sArticle.packunit}{elseif $sArticle.sUnit.description} {$sArticle.sUnit.description}{/if}</option>
<option value="{$smarty.section.i.index}">{$smarty.section.i.index}{if $sArticle.packunit} {$sArticle.packunit}{/if}</option>
{/section}
</select>

@@ -102,5 +106,4 @@

<div class="space">&nbsp;</div>
{* Cart button *}

@@ -111,6 +114,6 @@

<div class="space">&nbsp;</div>
</div>
{/if}
<div class="space">&nbsp;</div>
{/if}
{/if}
</form>


/shopware/trunk/templates/_default/frontend/detail/config_step.tpl

@@ -1,3 +1,3 @@

<form method="post" action="{url sArticle=$sArticle.articleID}" class="config_select">
<form method="post" action="{url sArticle=$sArticle.articleID sCategory=$sArticle.categoryID}" class="config_select">
{foreach from=$sArticle.sConfigurator item=sConfigurator name=group key=groupID}


/shopware/trunk/templates/_default/frontend/detail/comment.tpl

@@ -9,5 +9,5 @@

</div>
{else}
{if $this->config('OptinVote') && !$_GET.sConfirmation}
{if {config name="OptinVote"} && !$_GET.sConfirmation}
<div class="success bold center">
{se name="DetailCommentInfoSuccessOptin"}{/se}

@@ -100,5 +100,5 @@

{se name="DetailCommentHeaderWriteReview"}{/se}
</h2>
<form method="post" action="{url action='rating' sArticle=$sArticle.articleID}">
<form method="post" action="{url action='rating' sArticle=$sArticle.articleID sCategory=$sArticle.categoryID}">
<div>
<a name="tabbox"></a>


/shopware/trunk/templates/_default/frontend/detail/data.tpl

@@ -1,3 +1,4 @@

{block name="frontend_detail_data"}
{* Caching instock status *}
{if !$sView}

@@ -44,37 +45,42 @@

{* Graduated prices *}
{if $sArticle.sBlockPrices && (!$sArticle.sConfigurator || $sArticle.pricegroupActive) && $sArticle.sConfiguratorSettings.type!=2 && !$sArticle.liveshoppingData.valid_to_ts}
<div class="clear">&nbsp;</div>
{block name='frontend_detail_data_block_prices_start'}
<div class="space">&nbsp;</div>
<h5 class="bold">{se name="DetailDataHeaderBlockprices"}{/se}</h5>
<table width="220" border="0" cellspacing="0" cellpadding="0" class="text">
<tr>
<td width="90">
<strong>{se name="DetailDataColumnQuantity"}{/se}</strong>
</td>
<td width='70'>
<strong>{se name="DetailDataColumnPrice"}{/se}</strong>
</td>
</tr>
{foreach from=$sArticle.sBlockPrices item=row key=key}
{block name='frontend_detail_data_block_prices'}
<tr valign="top">
<td>
{if $row.from=="1"}
{se name="DetailDataInfoUntil"}{/se} {$row.to}
{else}
{se name="DetailDataInfoFrom"}{/se} {$row.from}
{/if}
<thead>
<tr>
<td width="90">
<strong>{se name="DetailDataColumnQuantity"}{/se}</strong>
</td>
<td>
<strong>
{$row.price|currency}*
</strong>
<td width='70'>
<strong>{se name="DetailDataColumnPrice"}{/se}</strong>
</td>
</tr>
{/block}
{/foreach}
</thead>
<tbody>
{foreach from=$sArticle.sBlockPrices item=row key=key}
{block name='frontend_detail_data_block_prices'}
<tr valign="top">
<td>
{if $row.from=="1"}
{se name="DetailDataInfoUntil"}{/se} {$row.to}
{else}
{se name="DetailDataInfoFrom"}{/se} {$row.from}
{/if}
</td>
<td>
<strong>
{$row.price|currency}*
</strong>
</td>
</tr>
{/block}
{/foreach}
</tbody>
</table>
{/block}
{* Article price *}

@@ -91,5 +97,7 @@

{block name='frontend_detail_data_pseudo_price'}
{if $sArticle.pseudoprice}
<em>{$sArticle.pseudoprice|currency}</em>
{* if $sArticle.sVariants || $sArticle.priceStartingFrom*}
<div class="PseudoPrice{if $sArticle.sVariants} displaynone{/if}">
<em>{s name="reducedPrice" namespace="frontend/listing/box_article"}{/s} {$sArticle.pseudoprice|currency} {s name="Star" namespace="frontend/listing/box_article"}{/s}</em>
{if $sArticle.pseudopricePercent.float}
<span>

@@ -97,4 +105,6 @@

</span>
{/if}
</div>
{*/if*}
{/if}
{/block}

@@ -102,10 +112,10 @@

{* Article price configurator *}
{block name='frontend_detail_data_price_configurator'}
<strong>
{if $sArticle.priceStartingFrom && !$sArticle.sConfigurator}
<strong {if $sArticle.priceStartingFrom && $sView} class="starting_price"{/if}>
{if $sArticle.priceStartingFrom && !$sArticle.sConfigurator && $sView}
<span id="DetailDataInfoFrom">{se name="DetailDataInfoFrom"}{/se}</span>
{$sArticle.priceStartingFrom|currency}
{$sArticle.priceStartingFrom|currency} {s name="Star" namespace="frontend/listing/box_article"}{/s}
{else}
{$sArticle.price|currency}
{$sArticle.price|currency} {s name="Star" namespace="frontend/listing/box_article"}{/s}
{/if}
</strong>

@@ -135,5 +145,5 @@

<span class="smallsize">
{if $sArticle.referenceunit}
{se name="DetailDataInfoBaseprice"}{/se} {$sArticle.referenceunit} {$sArticle.sUnit.description} = {$sArticle.referenceprice} {$this->config('CURRENCYHTML')}
{se name="DetailDataInfoBaseprice"}{/se} {$sArticle.referenceunit} {$sArticle.sUnit.description} = {$sArticle.referenceprice|currency} {s name="Star" namespace="frontend/listing/box_article"}{/s}
{/if}
</span>


/shopware/trunk/templates/_default/frontend/detail/bundle/box_bundle.tpl

@@ -3,7 +3,7 @@

{* Needed informations *}
<div class="bundle_bundles_details displaynone">{$sBundles|json_encode|htmlentities}
<div class="bundle_bundles_details displaynone">{$sBundles|json_encode|escape}
</div>
<div class="bundle_article_details displaynone">{$sArticle|json_encode|htmlentities}</div>
<div class="bundle_article_details displaynone">{$sArticle|json_encode|escape}</div>
{* Headline *}


/shopware/trunk/templates/_default/frontend/detail/bundle/box_related.tpl

@@ -3,6 +3,6 @@

{* Needed informations *}
<div class="bundle_related_articles displaynone">{$sRelatedArticles|json_encode|htmlentities}</div>
<div class="bundle_article_details displaynone">{$sArticle|json_encode|htmlentities}</div>
<div class="bundle_related_articles displaynone">{$sRelatedArticles|json_encode|escape}</div>
<div class="bundle_article_details displaynone">{$sArticle|json_encode|escape}</div>
{* Heading *}


/shopware/trunk/templates/_default/frontend/note/item.tpl

@@ -36,5 +36,5 @@

{* Article name *}
<a class="title" href="{$sBasketItem.linkDetails}" title="{$sBasketItem.articlename}">
{$sBasketItem.articlename}
{$sBasketItem.articlename|truncate:40}
</a>


/shopware/trunk/templates/_default/frontend/checkout/cart_footer_left.tpl

@@ -17,5 +17,5 @@

<div class="add_article">
<form method="post" action="{url action='addArticle' sTargetAction=$sTargetAction}">
<label for="basket_add_article">{s name='CheckoutFooterLabelAddArticle'}{/s}":</label>
<label for="basket_add_article">{s name='CheckoutFooterLabelAddArticle'}{/s}:</label>
<input id="basket_add_article" name="sAdd" type="text" value="{s name='CheckoutFooterIdLabelInline'}{/s}" onfocus="this.value='';" class="ordernum text" />
<input type="submit" class="button_tablefoot" value="{s name='CheckoutFooterActionAdd'}{/s}" />


/shopware/trunk/templates/_default/frontend/checkout/confirm_payment.tpl

@@ -0,0 +1,49 @@

{if $sRegisterFinished}
<div class="register grid_16 last first">
<form name="" method="POST" action="{url controller=account action=savePayment sTarget='checkout'}" class="payment">
<div class="payment_method">
<h2 class="headingbox_dark largesize">{s name='CheckoutPaymentHeadline'}Zahlungsart{/s}</h2>
{foreach from=$sPayments item=payment_mean name=register_payment_mean}
<div class="grid_15 method">
{block name='frontend_checkout_payment_fieldset_input_radio'}
<div class="grid_5 first">
<input type="radio" name="register[payment]" class="radio" value="{$payment_mean.id}" id="payment_mean{$payment_mean.id}"{if $payment_mean.id eq $sPayment.id} checked="checked"{/if} />
<label class="description" for="payment_mean{$payment_mean.id}">{$payment_mean.description}</label>
</div>
{/block}
{block name='frontend_checkout_payment_fieldset_description'}
<div class="grid_10 last">
{$payment_mean.additionaldescription}
</div>
{/block}
{block name='frontend_checkout_payment_fieldset_template'}
<div class="payment_logo_{$payment_mean.name}"></div>
{if "frontend/plugins/payment/`$payment_mean.template`"|template_exists}
<div class="space">&nbsp;</div>
<div class="grid_8 bankdata">
{if $payment_mean.id eq $sPayment.id}
{include file="frontend/plugins/payment/`$payment_mean.template`" form_data=$sPayment.data}
{else}
{include file="frontend/plugins/payment/`$payment_mean.template`"}
{/if}
</div>
{/if}
{/block}
</div>
{/foreach}
{block name="frontend_checkout_payment_action_buttons"}
<div class="actions">
<input type="submit" value="{s name='CheckoutPaymentLinkSend'}Ändern{/s}" class="button-right small_right right" />
</div>
{/block}
<div class="clear">&nbsp;</div>
</div>
</form>
</div>
<div class="space">&nbsp;</div>
{/if}


/shopware/trunk/templates/_default/frontend/checkout/ajax_cart.tpl

@@ -8,5 +8,5 @@

{if $sBasketItem.image.src.0}
<div class="thumbnail">
<img src="{$sBasketItem.image.src.0}" alt="{$sBasketItem.articlename}" />
<img src="{$sBasketItem.image.src.0}" alt="{$sBasketItem.articlename|strip_tags}" />
</div>
{/if}

@@ -15,5 +15,5 @@

{block name='frontend_checkout_ajax_cart_articlename'}
<span class="title">
<strong>{$sBasketItem.quantity}x</strong> <a href="{$sBasketItem.linkDetails}" title="{$sBasketItem.articlename}">
<strong>{$sBasketItem.quantity}x</strong> <a href="{$sBasketItem.linkDetails}" title="{$sBasketItem.articlename|strip_tags}">
{if $sBasketItem.modus == 10}{se name='AjaxCartInfoBundle'}{/se}{else}{$sBasketItem.articlename|truncate:30}{/if}
</a>


/shopware/trunk/templates/_default/frontend/checkout/confirm.tpl

@@ -57,4 +57,11 @@

{block name="frontend_index_content"}
<div id="confirm" class="grid_16 first">
{block name='frontend_checkout_confirm_payment'}
{include file='frontend/checkout/confirm_payment.tpl'}
{/block}
{block name='frontend_checkout_confirm_dispatch'}
{include file='frontend/checkout/confirm_dispatch.tpl'}
{/block}
{* Error messages *}

@@ -78,5 +85,5 @@

{* Dispatch method *}
{block name='frontend_checkout_confirm_shipping'}
{if $sDispatches}
{*if $sDispatches}
<div class="shipping_select">
<h4 class="bold">{se name="ConfirmHeadDispatch"}{/se}</h4>

@@ -114,5 +121,5 @@

</div>
{/if}
{/if*}
{/block}

@@ -151,10 +158,10 @@

{/if}
{/block}
{block name='frontend_checkout_confirm_footer'}
{* AGB checkbox *}
<div class="agb">
{se name="ConfirmTextRightOfRevocation" class="revocation"}{/se}
<div class="revocation">{s name="ConfirmTextRightOfRevocation"}{/s}</div>
{block name='frontend_checkout_confirm_agb'}
{if !$this->config('IGNOREAGB')}
{if !{config name='IgnoreAGB'}}
<div>
<div class="agb_accept">

@@ -165,29 +172,33 @@

<div class="agb_info">
{se name="ConfirmTextOrderDefault"}{/se}
{s name="ConfirmTextOrderDefault"}{/s}
</div>
</div>
{/if}
{/block}
{if !$sLaststock.hideBasket}
{* Submit order button *}
<div class="actions">
{if !$sUserData.additional.payment.embediframe}
<input type="submit" class="button-right large" id="basketButton" value="{s name='ConfirmActionSubmit'}{/s}" />
{else}
<input type="submit" class="button-right large" id="basketButton" value="{s name='ConfirmDoPayment'}Zahlung durchführen{/s}" />
{/if}
</div>
{block name='frontend_checkout_confirm_submit'}
{* Submit order button *}
<div class="actions">
{if !$sUserData.additional.payment.embediframe}
<input type="submit" class="button-right large" id="basketButton" value="{s name='ConfirmActionSubmit'}{/s}" />
{else}
<input type="submit" class="button-right large" id="basketButton" value="{s name='ConfirmDoPayment'}Zahlung durchführen{/s}" />
{/if}
</div>
{/block}
{else}
<div class="error">
<div class="center">
<strong>
{s name='ConfirmErrorStock'}Ein Artikel aus Ihrer Bestellung ist nicht mehr verfügbar! Bitte entfernen Sie die Position aus dem Warenkorb!{/s}
</strong>
{block name='frontend_checkout_confirm_stockinfo'}
<div class="error">
<div class="center">
<strong>
{s name='ConfirmErrorStock'}Ein Artikel aus Ihrer Bestellung ist nicht mehr verfügbar! Bitte entfernen Sie die Position aus dem Warenkorb!{/s}
</strong>
</div>
</div>
</div>
{/block}
{/if}
<div class="clear">&nbsp;</div>
{/block}
</div>
</form>


/shopware/trunk/templates/_default/frontend/checkout/ajax_add_article.tpl

@@ -51,8 +51,8 @@

</a>
<a href="{url action='cart'}" class="button-middle" title="{s name='AjaxAddLinkCart'}{/s}">
{se name="AjaxAddLinkCart"}{/se}<i></i>
{se name="AjaxAddLinkCart"}{/se}
</a>
<a href="{url action='confirm'}" class="button-right large right checkout" title="{s name='AjaxAddLinkConfirm'}{/s}">
{se name="AjaxAddLinkConfirm"}{/se}<i></i>
{se name="AjaxAddLinkConfirm"}{/se}
</a>
<div class="clear">&nbsp;</div>


/shopware/trunk/templates/_default/frontend/checkout/premiums.tpl

@@ -31,5 +31,5 @@

<div class="name">
<a href="{$premium.sArticle.linkDetails}" title="{$premium.sArticle.articleName}">
{$premium.sArticle.articleName|wordwrap:39:true}
{$premium.sArticle.articleName}
</a>
</div>

@@ -50,5 +50,5 @@

{block name='frontend_checkout_premium_article_name'}
<a href="{$premium.sArticle.linkDetails}" title="{$premium.sArticle.articleName}">
<strong>{$premium.sArticle.articleName|wordwrap:39:true}</strong>
<strong>{$premium.sArticle.articleName}</strong>
</a>
{/block}


/shopware/trunk/templates/_default/frontend/checkout/confirm_left.tpl

@@ -1,3 +1,23 @@

<div id="left" class="grid_4 first info">
{block name='frontend_checkout_confirm_left_payment_method'}
{if !$sRegisterFinished}
<h2 class="headingbox largesize">{s name="ConfirmHeaderPayment"}{/s}</h2>
<div class="payment_method">
<div class="inner_container">
<p>
<strong>{$sUserData.additional.payment.description}</strong><br />
{if !$sUserData.additional.payment.esdactive}
{s name="ConfirmInfoInstantDownload"}{/s}
{/if}
</p>
<a href="{$this->url(['controller'=>'account', 'action'=>'payment', 'sTarget'=>'checkout'])}" class="button-middle small">
{s name="ConfirmLinkChangePayment"}{/s}
</a>
</div>
</div>
{/if}
{/block}
{block name='frontend_checkout_confirm_left_billing_address'}

@@ -60,21 +80,4 @@

</div>
{/block}
{block name='frontend_checkout_confirm_left_payment_method'}
<h2 class="headingbox largesize">{s name="ConfirmHeaderPayment"}{/s}</h2>
<div class="payment_method">
<div class="inner_container">
<p>
<strong>{$sUserData.additional.payment.description}</strong><br />
{if !$sUserData.additional.payment.esdactive}
{s name="ConfirmInfoInstantDownload"}{/s}
{/if}
</p>
<a href="{$this->url(['controller'=>'account', 'action'=>'payment', 'sTarget'=>'checkout'])}" class="button-middle small">
{s name="ConfirmLinkChangePayment"}{/s}
</a>
</div>
</div>
{/block}
</div>


/shopware/trunk/templates/_default/frontend/checkout/confirm_item.tpl

@@ -10,25 +10,24 @@

{block name='frontend_checkout_cart_item_quantity'}
{if $sLaststock.articles[$sBasketItem.ordernumber].OutOfStock == true}
<div class="grid_1">
{if $sLaststock.articles[$sBasketItem.ordernumber].OutOfStock == true}
-
</div>
{else}
{$smarty.block.parent}
{/if}
</div>
{/block}
{block name='frontend_checkout_cart_item_delivery_informations'}
<div class="grid_3">
<div class="delivery">
{if $sLaststock.articles[$sBasketItem.ordernumber].OutOfStock == true}
{if $sLaststock.articles[$sBasketItem.ordernumber].OutOfStock == true}
<div class="grid_3">
<div class="status4">&nbsp;</div>
<p class="deliverable2">{s name="CheckoutItemLaststock"}Nicht lieferbar!{/s}</p>
{else}
{$smarty.block.parent}
{/if}
</div>
</div>
{else}
{$smarty.block.parent}
{/if}
{/block}
{* Tax price *}


/shopware/trunk/templates/_default/frontend/checkout/confirm_dispatch.tpl

@@ -0,0 +1,37 @@

{if $sDispatches}
<div class="register grid_16 last first">
<form name="" method="POST" action="{url action='calculateShippingCosts' sTargetAction=$sTargetAction}" class="payment">
<div class="payment_method">
<h2 class="headingbox_dark largesize">{s name='CheckoutDispatchHeadline'}Versandart{/s}</h2>
{foreach from=$sDispatches item=dispatch}
<div class="grid_15 method">
{block name='frontend_checkout_dispatch_fieldset_input_radio'}
<div class="grid_5 first">
<input id="confirm_dispatch{$dispatch.id}" type="radio" class="radio" value="{$dispatch.id}" name="sDispatch" {if $dispatch.id eq $sDispatch.id}checked="checked"{/if} class="auto_submit" />
<label class="description" for="confirm_dispatch{$dispatch.id}">{$dispatch.name}</label>
</div>
{/block}
{block name='frontend_checkout_dispatch_fieldset_description'}
{if $dispatch.description}
<div class="grid_10 last">
{$dispatch.description}
</div>
{/if}
{/block}
</div>
{/foreach}
{block name="frontend_checkout_shipping_action_buttons"}
<div class="actions">
<input type="submit" value="{s name='CheckoutDispatchLinkSend'}Ändern{/s}" class="button-right small_right right" />
</div>
{/block}
<div class="clear">&nbsp;</div>
</div>
</form>
</div>
<div class="space">&nbsp;</div>
{/if}


/shopware/trunk/templates/_default/frontend/search/fuzzy.tpl

@@ -48,5 +48,5 @@

<div class="listing" id="listing">
{foreach from=$sSearchResults.sArticles item=sArticle key=key name=list}
{include file="frontend/listing/box_article.tpl"}
{include file='frontend/listing/box_article.tpl' sTemplate='listing'}
{/foreach}
<div class="clear">&nbsp;</div>


/shopware/trunk/templates/_default/frontend/search/index.tpl

@@ -3,5 +3,5 @@

{* Main content *}
{block name='frontend_index_content'}
<div id="center" class="grid_16">
<div id="center" class="grid_13">
{block name='frontend_search_index_headline'}
<h2>{s name='SearchHeadline'}Zu "{$sSearchTerm|escape}" wurden {$sSearchResultsNum|escape} Artikel gefunden{/s}</h2>

@@ -10,12 +10,65 @@

<div class="listing" id="listing">
{foreach from=$sSearchResults item=sArticle key=key name=list}
{include file="frontend/listing/box_article.tpl"}
{include file='frontend/listing/box_article.tpl' sTemplate='listing'}
{/foreach}
</div>
{if $sSearchResults|@count && $sPages|@count}
{if $sSearchResults|@count}
<div class="clear">&nbsp;</div>
{include file='frontend/search/paging.tpl' sPages=$sPages}
{include file='frontend/listing/listing_actions.tpl'}
{/if}
{/block}
</div>
{/block}
{block name='frontend_listing_actions_top'}
<div class="top">
<div class="sort-filter">&nbsp;</div>
<form method="post" action="{$sPages.first}">
<div class="articleperpage rightalign">
<label>{s name='ListingLabelItemsPerPage'}Artikel pro Seite:{/s}</label>
<select name="sPerPage" class="auto_submit">
{foreach from=$sPerPage item=perPage}
<option value="{$perPage.value}" {if $perPage.markup}selected="selected"{/if}>{$perPage.value}</option>
{/foreach}
</select>
</div>
</form>
</div>
{/block}
{block name='frontend_listing_actions_paging'}
{if $sPages.numbers|@count > 1}
<div class="bottom">
<div class="paging">
<label>{se name='ListingPaging'}Blättern:{/se}</label>
{if $sPages.previous}
<a href="{$sPages.previous}" title="{s name='ListingLinkNext'}{/s}" class="navi prev">
{s name="ListingTextPrevious"}&lt;{/s}
</a>
{/if}
{foreach from=$sPages.numbers item=page}
{if $page.markup}
<a title="" class="navi on">{$page.value}</a>
{else}
<a href="{$page.link}" title="" class="navi">
{$page.value}
</a>
{/if}
{/foreach}
{if $sPages.next}
<a href="{$sPages.next}" title="{s name='ListingLinkPrevious'}{/s}" class="navi more">{s name="ListingTextNext"}&gt;{/s}</a>
{/if}
</div>
<div class="display_sites">
{se name="ListingTextSite"}Seite{/se} <strong>{if $sPage}{$sPage}{else}1{/if}</strong> {se name="ListingTextFrom"}von{/se} <strong>{$sNumberPages}</strong>
</div>
</div>
{/if}
{/block}
{block name="frontend_listing_actions_class"}
<div class="listing_actions{if !$sPages || $sPages.numbers|@count < 2} normal{/if}">
{/block}


/shopware/trunk/templates/_default/frontend/index/menu_footer.tpl

@@ -3,5 +3,5 @@

<p>
{foreach from=$sMenu.gBottom item=item key=key name="counter"}
<a href="{if $item.link}{$item.link|rewrite:$item.description}{else}{url controller='custom' sCustom=$item.id title=$item.description}{/if}" title="{$item.description}" {if $item.target}target="{$item.target}"{/if}>
<a href="{if $item.link}{$item.link}{else}{url controller='custom' sCustom=$item.id title=$item.description}{/if}" title="{$item.description}" {if $item.target}target="{$item.target}"{/if}>
{$item.description}
</a>

@@ -11,5 +11,5 @@

<p>
{foreach from=$sMenu.gBottom2 item=item key=key name="counter"}
<a href="{if $item.link}{$item.link|rewrite:$item.description}{else}{url controller='custom' sCustom=$item.id title=$item.description}{/if}" title="{$item.description}" {if $item.target}target="{$item.target}"{/if}>
<a href="{if $item.link}{$item.link}{else}{url controller='custom' sCustom=$item.id title=$item.description}{/if}" title="{$item.description}" {if $item.target}target="{$item.target}"{/if}>
{$item.description}
</a>


/shopware/trunk/templates/_default/frontend/index/index.tpl

@@ -18,5 +18,5 @@

{include file='frontend/index/header.tpl'}
{/block}
<body>
<body {if $Controller}class="ctl_{$Controller}"{/if}>
{* Message if javascript is disabled *}


/shopware/trunk/templates/_default/frontend/index/header.tpl

@@ -21,5 +21,5 @@

<meta name="msapplication-navbutton-color" content="{s name='IndexMetaMsNavButtonColor'}#dd4800{/s}" />{* Navbutton color *}
<meta name="application-name" content="{$this->config('sShopname')}" />{* Pinned name *}
<meta name="msapplication-starturl" content="{url}" />{* Start url to launch from the shortcut *}
<meta name="msapplication-starturl" content="{url controller='index'}" />{* Start url to launch from the shortcut *}
<meta name="msapplication-window" content="width=1024;height=768" />{* Size of the window to launch *}
{/block}


/shopware/trunk/templates/_default/frontend/index/menu_left.tpl

@@ -5,5 +5,5 @@

{foreach from=$sMenu.gLeft item=item}
<li>
<a href="{if $item.link}{$item.link|rewrite:$item.description}{else}{url controller='custom' sCustom=$item.id title=$item.description}{/if}" title="{$item.description}" {if $item.target}target="{$item.target}"{/if}>
<a href="{if $item.link}{$item.link}{else}{url controller='custom' sCustom=$item.id title=$item.description}{/if}" title="{$item.description}" {if $item.target}target="{$item.target}"{/if}>
{$item.description}
</a>


/shopware/trunk/templates/_default/frontend/listing/header.tpl

@@ -5,5 +5,5 @@

{* Description *}
{block name="frontend_index_header_meta_description"}test{if $sCategoryContent.metadescription}{$sCategoryContent.metadescription|strip_tags|escape}{/if}{/block}
{block name="frontend_index_header_meta_description"}{if $sCategoryContent.metadescription}{$sCategoryContent.metadescription|strip_tags|escape}{/if}{/block}
{* Canonical link *}


/shopware/trunk/templates/_default/frontend/listing/box_article.tpl

@@ -1,3 +1,3 @@

<div class="artbox{if $sArticle@last} last{/if}{if $sArticle@first} first{/if}">
<div class="artbox{if $lastitem} last{/if}{if $firstitem} first{/if}">
<div class="inner">

@@ -65,5 +65,5 @@

{if $sArticle.purchaseunit == $sArticle.referenceunit} {else}
<div class="unit">
{if $sArticle.referenceunit}{$sArticle.referenceunit} {$sArticle.sUnit.description} = {$sArticle.referenceprice|currency}{/if}
{if $sArticle.referenceunit}{$sArticle.referenceunit} {$sArticle.sUnit.description} = {$sArticle.referenceprice|currency} {s name="Star" namespace="frontend/listing/box_article"}{/s}{/if}
</div>
{/if}

@@ -75,7 +75,7 @@

<p class="{if $sArticle.pseudoprice}pseudoprice{else}price{/if}">
{if $sArticle.pseudoprice}
<span class="pseudo">{$sArticle.pseudoprice|currency}</span>
<span class="pseudo">{s name="reducedPrice"}Statt: {/s}{$sArticle.pseudoprice|currency} {s name="Star"}*{/s}</span>
{/if}
<span class="price">{if $sArticle.priceStartingFrom && !$sArticle.liveshoppingData}{s name='ListingBoxArticleStartsAt'}{/s} {/if}{$sArticle.price|currency} *</span>
<span class="price">{if $sArticle.priceStartingFrom && !$sArticle.liveshoppingData}{s name='ListingBoxArticleStartsAt'}{/s} {/if}{$sArticle.price|currency} {s name="Star"}*{/s}</span>
</p>
{/block}


/shopware/trunk/templates/_default/frontend/listing/listing.tpl

@@ -36,6 +36,6 @@

{block name="frontend_listing_list_inline"}
{* Actual listing *}
{foreach from=$sArticles item=sArticle}
{include file="frontend/listing/box_article.tpl" sTemplate=$sTemplate lastitem=$lastitem firstitem=$firstitem}
{foreach $sArticles as $sArticle}
{include file="frontend/listing/box_article.tpl" sTemplate=$sTemplate lastitem=$sArticle@last firstitem=$sArticle@first}
{/foreach}
{/block}


/shopware/trunk/templates/_default/frontend/_resources/styles/style.css

@@ -34,5 +34,4 @@

.no_picture.small {height: 57px;width: 57px;}
.noscript_notice {width: 980px;margin: 0 auto;}
.loadingIndicator {background: #fff url(../images/icons/ico_ajax-loader.gif) center center no-repeat;text-indent: -9999px;border: 1px solid #333;}
textarea {resize: none;}

@@ -227,6 +226,6 @@

#content div#right.register {width: 168px;margin-left:10px !important;float:left;}
div#right.register h2 {margin: 0;border: 1px solid;border-bottom: 0 none;font-weight: 700; font-size: 12px; line-height: 32px;height: 32px;padding: 0 0 0 9px;}
div#right.register ul {padding-top:10px;border: 1px solid;border-top: 0 none;background: url(../images/backgrounds/bg_breadcrumb.png) top left repeat-x;}
div#right.register li {margin:0 0 0 10px;padding: 10px 0 10px 30px;background: url(../images/icons/ico_register-benefit.png) no-repeat center left;color:#52892c;width:120px;}
div#right.register ul {display: block;padding-top: 10px; border: 1px solid; border-top: 0 none transparent;background: url(../images/backgrounds/bg_breadcrumb.png) top left repeat-x;}
div#right.register li {display: block;margin: 0 0 0 10px;padding: 10px 0 10px 30px;background: url(../images/icons/ico_register-benefit.png) no-repeat center left;color: #52892c;}
div.blog_navi {margin-left:10px;}

@@ -249,4 +248,8 @@

#content .custom {width: 560px;}
#content .custom h1 {font-size: 18px; font-weight: 700;}
#content .custom ol {margin-left: 25px;}
#content .custom ul {margin-left: 20px;}
#content .custom ul li, #content .custom ol li {list-style: disc;float:none;}
#content .custom ol li {list-style: decimal}
#supplierfilter {padding: 10px; border: 2px solid;}
#supplierfilter .text {display:block;float:left;margin-top:6px;}

@@ -320,5 +323,5 @@

.bt_allsupplier:hover {background: url(../images/sprite_listing_buttons.png) right 0 no-repeat;}
.artbox .actions a.buynow,.listing_actions .offers:hover,div#notes .table_row .action a.basket, .blogbox a.more_info:hover, .content_listing a.more_info:hover, .bt_allsupplier:hover {background-position: right -21px;}
.artbox .actions a.more,.listing_actions .offers:hover,div#notes .table_row .action a.basket, .blogbox a.more_info:hover, .content_listing a.more_info:hover, .bt_allsupplier:hover {background-position: right -21px;}
/* Offers */

@@ -459,4 +462,5 @@

#buybox .accessory_container h2 {width: 228px;}
#buybox .accessory_container label {width: 200px;cursor:pointer;}
#buybox .accessory_container input.chkbox {float:right;margin-right: 5px;}
#buybox .accessory_container label:hover {text-decoration: underline;}
#buybox .accessory_container .accessory_group {margin:0 0 10px 0;border: 1px solid;border-top: 0 none; padding: 5px 0 10px 10px;position: relative;width: 228px;}

@@ -575,7 +579,7 @@

/* Basket */
#basket .table .table_row, #notes .table .table_row {position: relative;}
.table .table_row .action {position: absolute; right: 10px;}
.table .table_row .action a.del {display: block;position: absolute;right: 10px;}
.table .table_row .action a:hover {text-decoration: none; }
.table .table_head .charge_vat {text-align: left;float:left;margin: 0 0 0 25px;}
.table .table_head .charge_vat {text-align: right;float:left;}
#basketButton, div.table_foot {width: 225px;}
#basket .actions a {float:left;}

@@ -590,5 +594,5 @@

.table .table_row select {margin: 0;}
.table #aggregation_left .border, .table #aggregation_left .doubleborder {border-color: #fff;}
.basket_bottom_paypal {position: absolute; right:210px;}
.basket_bottom_paypal {float: right;background: #fff;margin-right: 205px;}
/* Premium selection */

@@ -599,5 +603,5 @@

.table .table_premium .body .thumbnail {display:block;height: 57px;width: 57px;text-align: center;float:left;margin: 15px 0 0 5px;}
.table .table_premium .body .article {float: left;height: 105px;margin: 0 10px 10px 10px;width: 235px;background: #fff;border: 1px solid;position: relative;}
.table .table_premium .body .article .name a {display: block; margin: 10px 0 0 0;}
.table .table_premium .body .article .name {display: block; margin: 10px 0 0 72px;}
.table .table_premium .body .article .button-right {margin-top: 10px;padding:0 35px 0 10px;width: 147px;}
.table .table_premium .body .bonus_price {position: absolute;bottom: 15px;left: 75px;margin: 5px 0 0 0;color: #333;font: bold 11px/14px Arial, sans-serif;float:left;}

@@ -632,5 +636,5 @@

div#notes .table_row .title, div#notes .table_row .supplier, div#notes .table_row .ordernumber, div#notes .table_row .desc {width: 260px;}
div#notes .table_row .desc {width:415px;}
div#notes .table_row .title {position: absolute;top: 0px;font-family: Arial, sans-serif;font-size: 14px; width: 260px;}
div#notes .table_row .title {position: absolute;top: 0px;font-family: Arial, sans-serif;font-size: 14px; width: 310px;}
div#notes .table_row .supplier {position: absolute;top: 20px;background: transparent;border: 0 none;}
div#notes .table_row a.thumb_image {width: 105px;height: 105px;top: 15px;position: relative;}

@@ -642,6 +646,6 @@

div#notes .table_row .price {font-size:14px;font-weight: 700;position: absolute;right:70px;text-align: left;width:100px;}
div#notes .table_row .delete {display: block; height: 21px; width: 24px; background: url(../images/icons/ico_delete.png) no-repeat; text-indent: -9999px; position: absolute; top: 10px;right:10px;}
div#notes .table_row .action {position: absolute;top: 45px;}
div#notes .table_row .action a {background-repeat: repeat-x; display: block; height:16px; border: 1px solid #e7e7e7; width: 162px;padding: 4px 0 0 10px; margin: 0 0 2px;}
div#notes .table_row .action {position: absolute;top: 45px;right: 10px;}
div#notes .table_row .action a {background-repeat: repeat-x; display: block; height:16px; border: 1px solid #e7e7e7; width: 162px;padding: 4px 0 0 10px; margin: 0 0 2px;color:#696969;}
div#notes .table_row .action a.basket {margin-bottom: 20px;}

@@ -705,5 +709,5 @@

.register .salutation span input {float:left;}
.register .payment_method label {width:100px; margin: 0px 0 0 5px;}
.register .payment_method .debit label {margin: 0 0 0 0;}
.register .payment_method .debit label {margin:0.5em 0;}
.register select {width:310px;padding: 5px;}
.register .personal_settings, .register .shipping_address, .register .payment_method, .register .company_informations, .register .alternative_shipping {border: 1px solid;border-bottom: 0 none;margin: 0;padding: 0 0 15px 0}

@@ -719,10 +723,14 @@

.register .city {width:185px;}
.register #shippingAddress {left:-8px; width: 16px;height:16px;}
.register .payment_method {border-bottom: 1px solid;margin-bottom:20px;}
.register .payment_method {border-bottom: 1px solid;margin-bottom:20px;padding:0;}
.register .payment_method .radio {float:left;top:0;}
.register .payment_method .method, .register .payment_method .method_last {margin: 0 0 10px; padding: 0 0 10px 40px; border-bottom: 1px solid;}
.register .payment_method .method div, .register .payment_method .method_last div {margin: 0;}
.register .payment_method .method .first, .register .payment_method .method_last .first {width: 165px;}
.register .payment_method .method .bankdata, .register .payment_method .method_last .bankdata {margin-left: 160px;}
.register .payment_method .method_last {border-bottom: 0 none;}
.register .register_last {border-bottom: 0px solid}
.register .chklabel {width: 450px;}
.register .check {margin-left: 205px;}

@@ -735,4 +743,12 @@

#registerbutton {width: 241px;display:block; background: url(../images/backgrounds/bg_basketbutton.png) no-repeat;border: 0 none; height: 40px;color: #fff; font-size: 14px;}
#registerbutton {position: relative !important; z-index:20;cursor:pointer}
#confirm .payment_method {margin: 0}
#confirm .method_hide {display: none}
#confirm .payment_method .method, #confirm .payment_method .method_last {padding:0 0 10px 0;width:100%;}
#confirm .payment_method .grid_5 {padding:0 0 0 40px;}
#confirm .payment .change {margin: 0;float:right;}
#confirm .payment .change a {margin: 10px}
#confirm .payment .actions input {margin: 0 20px 10px 0}
/* Shipping Calucator */

@@ -947,31 +963,13 @@

div#searchcontainer {z-index: 7;text-align: left;height:38px;margin: 1px 0 0 1px;width: 998px;position:static;}
div#hidesearch {position:relative;z-index: 2000;}
div.inner_searchcontainer {height: 24px;width: 270px;margin:6px 0 0 350px;}
div.inner_searchcontainer .ajax_loader {background: url("../images/icons/ico_ajax-loader.gif") no-repeat; position: relative; top: 4px; left: 230px;z-index: 200;}
div.inner_searchcontainer {height: 24px;width: 270px;margin:6px 0 0 350px;position: relative;}
div.inner_searchcontainer .ajax_loader {background: url("../images/icons/ico_ajax-loader.gif") no-repeat; position: absolute; top: 4px; left: 230px;z-index: 200;}
div.inner_searchcontainer #submit_search {padding:0;border: 0 none; height: 24px;float:left;background: url(../images/arrows/bg_arrow_search.gif) no-repeat;width: 14px;}
div.inner_searchcontainer p {font-size: 11px;line-height: 12px;float: left;padding:4px;text-transform: uppercase;text-align: right;}
input#searchfield {font-size: 10px;padding: 3px 0 0 30px;width: 220px;height: 19px;display:block;float:left;background: url(../images/backgrounds/bg_search-input.png);margin:0;background-color:#fff;border:1px solid;}
#header_links {position: absolute; top:5px; left: 460px; font-size: 11px;}
div#searchresults {display:none;width:455px;padding:0px 0px 40px;border:3px solid;z-index:8000;position:absolute;top:198px;left:250px;font-size:10px;line-height:12px;}
a.resultall {position: absolute;bottom: 0;cursor:pointer;padding:14px 0;font-size: 11px;font-weight: 700;width: 100%; text-align: center;display: block; width: 450px;left:0;}
a.resultlink {cursor:pointer}
li.searchresult{padding:8px 5px; margin:0 0 0 0; position:relative; left:0px; top:0px; clear:both; text-align: left;border-bottom: 1px solid;}
li.searchresult ul li{border-bottom:1px solid; padding:10px 5px 10px 5px; margin:0; position:relative; left:0px; top:0px; clear:both; height:55px}
li.searchresult ul{margin:0; padding:0}
li.searchresult_supplier div.header{padding:5px}
li.searchresult_supplier{border-bottom:1px solid;padding:10px 5px 10px 5px; margin:0 0 0 0;}
li.searchresult_supplier h2{font-size:11px; font-weight: 700}
li.searchresult_supplier a.resultlink{float:left; padding:5px; display:block; height:25px; font-size:10px; font-weight:normal; width:80px; border:1px solid; text-align:center; margin:0 5px 5px 0}
li.searchresult_supplier a.resultlink h3{font-size:10px; font-weight:normal}
li.searchresult_supplier a.searchthumb {float:left; margin:0 5px 5px 0; width:90px; height:35px; text-align:center; border:1px solid;}
li.searchresult a:hover{text-decoration:underline}
li.searchresult h3{font-weight:normal; overflow:hidden; font-size:11px; font-weight: 700; white-space:nowrap; z-index:-1; height:15px}
a.searchthumb{border:none; float:left; margin:0 5px 0 0; width:57px; height:57px; text-align:center}
.related{position:absolute; right:0px; top:0px; height:1.25em}
#header_links {position: absolute; top:5px; left: 460px; font-size: 11px;}.related{position:absolute; right:0px; top:0px; height:1.25em}
h3 .related{top:5px}
div.searchdescription .related{margin-top:3.75em; top:10px}
div.searchdescription{height:3.75em; overflow:hidden; z-index:-1; line-height:12px}
div#searchresults {width:455px;}
/* SEARCH PAGE

@@ -1080,6 +1078,6 @@

div.ajax_login_form .new_customer p {float:left;margin-right:95px;width: 235px;}
div.ajax_login_form .existing_customer {border-top: 1px solid;}
div.ajax_login_form .logout {padding: 10px 20px;}
div.ajax_login_form .logout h2 {font-weight: 500}
div.ajax_login_form .logout {padding: 10px 20px 10px 25px}
div.ajax_login_form .logout h2 {font: 700 14px/1.3em Arial, sans-serif;letter-spacing: 0}
/* Add article */

@@ -1097,16 +1095,15 @@

.modal div.ajax_add_article #listing .artbox .inner {height: 270px;}
div.ajax_add_article .artbox .inner .price, div.ajax_add_article .artbox .inner .price {bottom: 30px;}
div.ajax_add_article .actions {height:45px;}
div.ajax_add_article .actions {height:45px; position: relative;}
div.ajax_add_article .bottom .actions {height:25px;}
div.ajax_add_article .actions .button-left {float: left;}
div.akax_add_article .actions .button-right {float: right;}
div.ajax_add_article .artbox p.pseudoprice {height: 36px;bottom: 31px;}
div.ajax_add_article .artbox .unit {bottom: 58px;font-weight: 700;}
div.ajax_add_article .actions .button-right {right: 0px; top:0px;position: absolute;}
/* Compare */
.ajax_compare_container .grid_3 {margin-left:0px; margin-right:0px;width: 160px;}
.ajax_compare_container .grid_3 {margin-left:0px; margin-right:0px;position: static;}
.ajax_compare_container .grid_3 div {padding: 10px 10px 5px 10px;border-top: 1px solid;}
.ajax_compare_container .grid_3 div div {border-top: 0 none;padding-top:0px;padding-bottom:0px;}
.ajax_compare_container .compare_desc {padding-left:0;}
.ajax_compare_container .grid_3 {width: 150px;}
.ajax_compare_container .compare_desc {padding-left:0;width: 125px;}
.ajax_compare_container .desc p {font: normal 12px/16px Arial, sans-serif;}
.ajax_compare_container .compare_desc div.desc {font-size: 11px;}

@@ -1114,8 +1111,9 @@

.ajax_compare_container .property {padding: 5px 0 5px 15px;}
.ajax_compare_container .compare_article .property {padding-left: 5px;}
.modal .ajax_compare_container .inner_container {overflow-y: scroll;height: 479px;}
/* Custom */
/*.ajax_modal_custom {padding: 20px; height: 400px; overflow-y: scroll;}*/
.ajax_modal_custom {width:560px;}
.ajax_modal_custom {width:500px;}
.ajax_modal_custom .inner_container {margin-top:10px;padding: 0 25px 15px; height:300px; overflow-y: scroll;}

@@ -1160,5 +1158,5 @@

------------------------ */
.supportrequest .contact_box {padding: 20px;}
.supportrequest label {width:170px; text-align: left; margin-left: 100px;}
.supportrequest label {width:170px; text-align: left; margin-left: 100px;display: block; float:left;margin-top: 10px;}
.supportrequest input.button {width:200px;}
.supportrequest .captcha img {margin-left: 100px;float:left;}

@@ -1167,6 +1165,6 @@

.supportrequest .code label {width: 295px;margin-left:20px;;display: block;}
.supportrequest .code input {width:295px;margin-left: 20px;}
.supportrequest p.textarea label {display: block;width:500px;}
#center.supportrequest form p.textarea textarea {margin-left: 100px;width:475px;}
.supportrequest div.textarea label {display: block;width:500px;}
#center.supportrequest form div.textarea textarea {margin-left: 100px;width:475px;}
#center.supportrequest form p.buttons input {position: relative;left:445px;width:145px;text-align: center;}
#content .supportrequest {margin-left: 20px;margin-right: 10px; width: 688px;}

@@ -1174,5 +1172,5 @@

.supportrequest h1 {width: 700px;}
.supportrequest p {font-size:12px;}
.supportrequest form p {margin:0 0 1em;font-size:inherit;}
.supportrequest form div {margin:0 0 1em;font-size:inherit;}
.supportrequest form textarea {height:100px;width:300px;}
.supportrequest .inner_container {border: 1px solid;padding: 20px;border-top: 0 none;width:730px;}

@@ -1185,4 +1183,5 @@

.supportrequest select {padding:5px; width: 315px;}
#letterForm .street, #letterForm .zipcode {margin-right: 3px;}
/* TELL-A-FRIEND

@@ -1403,2 +1402,18 @@

.shopware_footer {width: 1000px; margin: 20px auto 30px auto; text-align: left;}
.shopware_footer a {background: url(../images/icons/ico_shopware.png) left center no-repeat; padding: 0 0 0 14px;}
/* Tables */
tbody, tbody tr, thead, thead tr {border: 0 none;}
table {
display: block;
border: 1px solid #c7c7c7;
width: auto !important;
}
table thead tr th {
background: #f5f5f5;
padding-left: 10px;
}
table tbody tr td, table tbody tr th {
border-top: 1px dashed #dfdfdf;
}
table td, table th {color: #999;}


/shopware/trunk/templates/_default/frontend/_resources/styles/colors.css

@@ -21,5 +21,5 @@

Secondary text: #777777
Separators: #cccccc
*/±
*/
/* GENERAL

@@ -165,5 +165,5 @@

.artbox p.desc {color: #777;}
.artbox .actions a, #related .listing .artbox .actions a, .listing_actions .offers {color: #696969;border-color: #e3e3e3;}
.artbox .actions a.buynow, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #dd4800;}
.artbox .actions a.more, #related .listing .artbox .actions a.more, .listing_actions .offers:hover {color: #dd4800;}
.artbox p.pseudoprice span.price {color:#990000;}
.artbox span.pseudo {color: #777;}

@@ -181,4 +181,5 @@

.article_overview a {color:#7a7a7a;}
#detail .article_details_price2 strong {color: #990000}
#detail .article_details_price2 strong.starting_price {color: #333;}
#content #detail #detailbox_middle .article_details_price strong {color: #333;}
.cloud-zoom-big, #cloud-zoom-big, #thumbs a, .thumb_box a:hover, ul#menu_right {border-color:#dedede}


/shopware/trunk/templates/_default/frontend/_resources/styles/plugins.css

@@ -19,4 +19,5 @@

font-size:10px;
top:0px;
left:0px;
}

@@ -155,5 +156,10 @@

.modal {
z-index: 9000;
border: 1px solid #888;
border: 1px solid #333;
top: 10%;
left: 50%;
width: 560px;
background: #fff;
position: fixed;
}
.modal h2 {

@@ -193,2 +199,161 @@

bottom: 14px;
}
/* LOADING INDICATOR
------------------------ */
.loadingIndicator {
background: #fff url(../images/icons/ico_ajax-loader.gif) center center no-repeat;
text-indent: -9999px;
border: 1px solid #333;
position: fixed;
top: 50%;
left: 50%;
height: 64px;
width: 64px;
z-index: 99999;
}
/* SUGGEST SEARCH
------------------------ */
div#searchresults {
display: none;
width: 450px;
padding: 0px 0px 40px;
border: 3px solid #c7c7c7;
z-index: 8000;
position: absolute;
top: 200px;
left: 255px;
font-size: 10px;
line-height: 12px;
}
a.resultall {
position: absolute;
bottom: 0;
cursor: pointer;
padding: 14px 0;
font-size: 11px;
font-weight: 700;
width: 100%;
text-align: center;
display: block;
width: 450px;
left: 0;
}
a.resultlink { cursor: pointer }
li.searchresult {
padding: 8px 5px;
margin: 0 0 0 0;
position: relative;
left: 0px;
top: 0px;
clear: both;
text-align: left;
border-bottom: 1px solid #E3E3E3;
}
li.searchresult ul li {
border-bottom: 1px solid;
padding: 10px 5px 10px 5px;
margin: 0;
position: relative;
left: 0px;
top: 0px;
clear: both;
height: 55px;
}
li.searchresult ul {
margin: 0;
padding: 0;
}
li.searchresult_supplier div.header { padding: 5px }
li.searchresult_supplier {
border-bottom: 1px solid;
padding: 10px 5px 10px 5px;
margin: 0 0 0 0;
}
li.searchresult_supplier h2 {
font-size: 11px;
font-weight: 700;
}
li.searchresult_supplier a.resultlink {
float: left;
padding: 5px;
display: block;
height: 25px;
font-size: 10px;
font-weight: normal;
width: 80px;
border: 1px solid;
text-align: center;
margin: 0 5px 5px 0;
}
li.searchresult_supplier a.resultlink h3 {
font-size: 10px;
font-weight: normal;
}
li.searchresult_supplier a.searchthumb {
float: left;
margin: 0 5px 5px 0;
width: 90px;
height: 35px;
text-align: center;
border: 1px solid;
}
li.searchresult a:hover { text-decoration: underline }
li.searchresult h3 {
font-weight: normal;
overflow: hidden;
font-size: 11px;
font-weight: 700;
white-space: nowrap;
z-index: -1;
height: 15px;
}
a.searchthumb {
border: none;
float: left;
margin: 0 5px 0 0;
width: 57px;
height: 57px;
text-align: center;
}
.modal .ajaxSlider .sliding_container .slide {width: 578px;}
/* BANNER SLIDER CSS
------------------------ */
/* Bannerslider */
#center .slider_banner {width: 630px;}
#center .slider_banner .bannerSlider {width: 630px;height: 386px; position: relative; margin-bottom: 15px;}
#center .slider_banner .bannerSlider .sliding_outer {position: relative; overflow: hidden; left: 0px; width: 630px; height: 386px;}
/* Similar article slider */
#center .slider2 {width: 628px;}
#center .slider2 .ajaxSlider {width: 628px; height: 220px; position: relative; margin-top: 12px; margin-bottom: 15px;}
#center .slider2 .ajaxSlider .sliding_outer {position: relative; overflow: hidden; left: 26px; width: 576px; height: 190px;}
/* New articles slider */
#center .slider {width: 628px;}
#center .slider .ajaxSlider {width: 628px; height: 220px; position: relative; margin-top: 0px; margin-bottom: 15px;}
#center .slider .ajaxSlider .sliding_outer {position: relative; overflow: hidden; left: 26px; width: 576px; height: 190px;}
/* Supplier slider */
#center .supplier_slider {width:628px;}
#center .supplier_slider .ajaxSlider {width: 628px; height: 130px; position: relative; margin-top: 20px; margin-bottom: 20px;}
#center .supplier_slider .sliding_outer {position: relative; overflow: hidden; left: 26px; width: 576px; height: 101px;}
/* Customers bought too slider */
#detailinfo .slider {width: 763px;}
#detailinfo .slider .ajaxSlider {width: 763px; height: 220px; position: relative; margin-bottom: 20px;}
#detailinfo .slider .ajaxSlider .sliding_outer {position: relative; overflow: hidden; left: 26px; width: 711px; height: 190px;}
/* Customers similar slider */
#detailinfo .slider2 {width: 763px;}
#detailinfo .slider2 .ajaxSlider {width: 763px; height: 220px; position: relative; margin-bottom: 20px;}
#detailinfo .slider2 .ajaxSlider .sliding_outer {position: relative; overflow: hidden; left: 26px; width: 711px; height: 190px;}
/* Ajax add article slider */
.ajax_add_article .slider_modal {width: 630px;}
.ajax_add_article .slider_modal .ajaxSlider {width: 630px; height: 210px; position: relative; margin: 0px 0px 15px 15px;}
.ajax_add_article .slider_modal .ajaxSlider .sliding_outer {position: relative; overflow: hidden; left: 26px; width: 578px; height: 210px;}


/shopware/trunk/templates/_default/frontend/_resources/styles/ie6.css

@@ -26,5 +26,5 @@

.container_20, .modal {text-align: left;}
a.resultall {text-align: center;}
div.inner_searchcontainer .ajax_loader {left: -38px;}
div.inner_searchcontainer .ajax_loader {left:200px;}
.container_20 #content {width:1000px;}

@@ -45,14 +45,4 @@

#mainNavigation li.hover .dropdown li.hover .droplevel .droplevel {display: none;}
#mainNavigation li.hover .dropdown li.sub {background: #fff url(../images/arrows/bg_arrow-small_right.gif) 240px center no-repeat;}
/* Tablestyling */
table {margin-bottom:1.4em;width:100%;border-collapse:collapse;border: 1px solid #dfdfdf;border-bottom: 0 none;}
thead {background-color:#F3F3F3;line-height: 30px;}
table td, table th {border-bottom: 1px solid #dfdfdf;}
thead th {padding-left: 5px; font-weight: bold;background-color:#F3F3F3;}
tbody tr {border-bottom: 1px dashed #dfdfdf;}
tbody td {padding: 10px;}
tfoot {background-color:#f3f3f3; border: 1px solid #dfdfdf; border-top: none;}
tfoot td {padding: 20px 10px}
/* Form elements */

@@ -118,4 +108,6 @@

.register .payment_method h2 {width: 768px;}
.supportrequest .inner_container {width: 760px;}
.supportrequest form label {display: inline;}
.supportrequest div.textarea label {margin-left: 50px;}
.ticketoverview .content .row .button-middle {width: 120px;}
#registerbutton {behavior: url(.) !important}


/shopware/trunk/templates/_default/frontend/_resources/javascript/jquery.shopware.js

@@ -15,9 +15,12 @@

* @subpackage javascript
* @category design
* version v1.8
* version v1.9
* @author stp/shopware AG <info@shopware.de>
* @copyright Copyright (c) 2010 Shopware AG (http://www.shopware.de)
*
* CHANGELOG
* Version 1.9
* - removed unnecessary CSS styling
*
* Version 1.8
* - added ajax slider component

@@ -82,5 +85,5 @@

//IE 6 Drop down menu fallback
if($.browser.msie && parseInt($.browser.version) == 6) {
if($.browser.msie === true && parseInt($.browser.version, 10) == 6) {
$('#mainNavigation li').hover(function(){ $(this).addClass('hover'); }, function() { $(this).removeClass('hover'); });
}

@@ -113,12 +116,9 @@

});
});
//Striping der Tabellen
$.stripe('zebra');
//Topseller
if($('.topseller')) $('.accordion').kwicks({min: 52,sticky: true,spacing: 0,isVertical: true,duration: 350});
//Suche
if($('.topseller')) { $('.accordion').kwicks({min: 52,sticky: true,spacing: 0,isVertical: true,duration: 350}); }
//Suggest Search
$('#searchfield').liveSearch({url:$.controller.ajax_search, 'id': 'searchresults'});
$('#searchfield').focus(function(){

@@ -128,20 +128,20 @@

});
//Serverzeit fuer Liveshopping
//Get's the servertime for liveshopping articles
$.server.init(timeNow);
//Wechsel bei Variantenartikeln
if(typeof(isVariant) != 'undefined' && isVariant == true) {
//Changing article informations on variants
if(typeof(isVariant) != 'undefined' && isVariant === true) {
$.changeDetails(0);
}
$('#sAdd.variant').change(function() {
$.changeDetails($(this).val())
});$
//Lightbox Warenkorb
$.changeDetails($(this).val());
});
//Lightbox basket
$('a.zoom_picture[rel^=lightbox]').slimbox();
//Ajax basket
//AJAX basket
$('div.ajax_basket').click(function() {
if($('.ajax_basket_result').hasClass('active')) {

@@ -163,5 +163,4 @@

lasthover = $('div#DIV'+value);
}
}, function() {
lasthover.fadeOut('fast');

@@ -187,5 +186,5 @@

$('.blogbox [rel^=lightbox]').slimbox();
//Lightbox statt ZoomViewer
//Use a lightbox instead of a zoom
if(typeof(useZoom) != 'undefined' && useZoom == '0') {
$("[rel^='lightbox']").slimbox();

@@ -198,5 +197,5 @@

}
//Change Password Account
//Change password account
if(!$('.account .error').length) {
$('.account .password').hide();

@@ -208,5 +207,5 @@

});
//Change Email Account
//Change email account
$('.account .change_mail').bind('click', function(event) {
event.preventDefault();

@@ -218,6 +217,6 @@

event.preventDefault();
$.post($.controller.ajax_logout, function(data) {
var position = 'fixed'
if($.browser.msie && parseInt($.browser.version) == 6) {position = 'absolute';}
var position = 'fixed';
if($.browser.msie && parseInt($.browser.version, 10) == 6) {position = 'absolute';}
$.modal(data, '', {'position':position}).find('.close').remove();
});

@@ -233,44 +232,45 @@

}
});
//Register Validation
$('.register .required:input').validate();
if($("#register_personal_customer_type").val()=="private") {
$('.register .company_informations').hide();
}
if($("#register_personal_skipLogin").is(':checked')) {
$('.register .fade_password, .register p.description, #birthdate').hide();
}
$("#register_personal_customer_type").change(function() {
if($(this).val() == 'buisness') {
$('.register .company_informations').slideDown();
} else {
$('.register .company_informations').slideUp();
}
});
if(!$("#register_billing_shippingAddress").is(':checked')) {
if(!$('.register').hasClass('change_shipping')) {
$('.register .alternative_shipping').hide();
}
}
$('#register_billing_shippingAddress').click(function() {
if(!$(this).is(':checked')) {
$('.register .alternative_shipping').slideUp();
} else {
$('.register .alternative_shipping').slideDown();
}
});
$('#register_personal_skipLogin').click(function() {
if($(this).is(':checked')) {
$('.register .fade_password, .register p.description, #birthdate').slideUp();
} else {
$('.register .fade_password, .register p.description, #birthdate').slideDown();
}
});
//Register validation
$('.register .required:input').validate();
if($("#register_personal_customer_type").val()=="private") {
$('.register .company_informations').hide();
}
if($("#register_personal_skipLogin").is(':checked')) {
$('.register .fade_password, .register p.description, #birthdate').hide();
}
$("#register_personal_customer_type").change(function() {
if($(this).val() == 'buisness') {
$('.register .company_informations').slideDown();
} else {
$('.register .company_informations').slideUp();
}
});
if(!$("#register_billing_shippingAddress").is(':checked')) {
if(!$('.register').hasClass('change_shipping')) {
$('.register .alternative_shipping').hide();
}
}
$('#register_billing_shippingAddress').click(function() {
if(!$(this).is(':checked')) {
$('.register .alternative_shipping').slideUp();
} else {
$('.register .alternative_shipping').slideDown();
}
});
$('#register_personal_skipLogin').click(function() {
if($(this).is(':checked')) {
$('.register .fade_password, .register p.description, #birthdate').slideUp();
} else {
$('.register .fade_password, .register p.description, #birthdate').slideDown();
}
});
// Loading Indicator

@@ -322,6 +322,4 @@

// Public
'layout': 'horizontal',
'width': 763,
'height': 220,
'scrollWidth': 711,
'scrollHeight': 711,

@@ -334,5 +332,4 @@

'title': '',
'titleClass': 'headingbox',
'outer': true,
'headline': false,
'url': '',

@@ -366,9 +363,9 @@

// Override default config with user settings
if (settings) $.extend(config, settings);
if (settings) { $.extend(config, settings); }
this.each(function() {
if(config.debug == true) {
if(config.debug === true) {
console.group('Slider: .' + $(this).attr('class'));
}

@@ -377,5 +374,4 @@

config._this = $(this);
config._this.css('width',config.width+'px');
$.ajaxSlider.debugMode('Create Container', config);

@@ -383,10 +379,5 @@

// Create slider outer container and replace selector
config._container = $('<div>', {
'class': config.containerClass,
'css':{
'width': config.width+'px',
'height': config.height+'px',
'position': 'relative'
}
'class': config.containerClass
}).appendTo(config._this);

@@ -394,17 +385,12 @@

// Save slider mode
config._mode = mode
// Sets additional css styles
if(!$.isEmptyObject(config.containerCSS)) {
$.ajaxSlider.debugMode('Set additional styles', config);
config._container.css(config.containerCSS);
}
config._mode = mode;
// Add layout class
config._this.addClass(config.layout+'_slider');
if(config.title != '' && config.headline) {
if(config.title !== '' && config.headline) {
$.ajaxSlider.debugMode('Create headline', config);
// Create headline
config._headline = $('<h2>', {

@@ -450,5 +436,5 @@

}
if(config.rotate == true) {
if(config.rotate === true) {
$.ajaxSlider.debugMode('Create rotation', config);
$.ajaxSlider.rotateSlider(config);

@@ -456,5 +442,5 @@

});
if(config.debug == true) {
if(config.debug === true) {
console.groupEnd();
}

@@ -462,7 +448,7 @@

// Return this to support jQuery's chaining
return this;
}
$.ajaxSlider = {
};
$.ajaxSlider = {
/**

@@ -476,9 +462,5 @@

// Create sliding outer container
config._slideOuterContainer = $('<div>', {
'class': 'sliding_outer',
'css': {
'position': 'relative',
'overflow': 'hidden'
}
'class': 'sliding_outer'
}).appendTo(config._container);

@@ -486,5 +468,5 @@

config._slideContainer = $('<div>', {
'class': 'sliding_container'
}).prependTo(config._slideOuterContainer).hide()
}).prependTo(config._slideOuterContainer).hide();
},

@@ -505,5 +487,5 @@

'data': {'pages': slideNumber},
'beforeSend': function() {
if(config._loader == null) {
if(config._loader === null) {
// Create AJAX Loader

@@ -558,10 +540,10 @@

}
if(parseInt(config._slidesCount) == 1) {
if(parseInt(config._slidesCount, 10) === 1) {
config._leftArrow.hide();
config._rightArrow.hide();
}
if(parseInt(config._slidesCount) == 0) {
if(parseInt(config._slidesCount, 10) === 0) {
config._container.hide();
return;

@@ -575,19 +557,4 @@

} else {
height = config.height - config._headline.outerHeight();
}
if(config.outer) {
// Position the outer container
config._slideOuterContainer.css({
'left': config._leftArrow.width()+'px',
'width': config.width - (config._leftArrow.width() * 2)+'px',
'height': height
});
} else {
// Position the outer container
config._slideOuterContainer.css({
'left': 0,
'width': config.width,
'height': height
});
}
// vertical slider

@@ -607,10 +574,10 @@

});
}
}
// Adding numbers
if(config.showNumbers == true) {
if(config._numbers == null) {
if(config.showNumbers === true) {
if(config._numbers === null) {
config._numbers = $('<div>', {
'class': 'slide_numbers'

@@ -632,5 +599,5 @@

}
}
})
});
},

@@ -645,5 +612,5 @@

ajaxMode: function(config) {
if(config.navigation == false) {
if(config.navigation === false) {
$.ajaxSlider.createContainers(config);
config._activeSlide = 1;

@@ -661,5 +628,5 @@

});
} else {

@@ -738,9 +705,5 @@

// Create sliding outer container
config._slideOuterContainer = $('<div>', {
'class': 'sliding_outer',
'css': {
'position': 'relative',
'overflow': 'hidden'
}
'class': 'sliding_outer'
}).appendTo(config._container);

@@ -759,8 +722,8 @@

// Create slider navigation
if(config.navigation == true) {
if(config.navigation === true) {
$.ajaxSlider.sliderNavigation(config);
}
},

@@ -781,21 +744,6 @@

}
if(config.outer) {
// Position the outer container
config._slideOuterContainer.css({
'left': config._leftArrow.width()+'px',
'width': config.width - (config._leftArrow.width() * 2)+'px',
'height': height
});
} else {
// Position the outer container
config._slideOuterContainer.css({
'left': 0,
'width': config.width,
'height': height
});
}
if(config.navigation == true || config.navigation == false && config._mode == 'locale') {
if(config.navigation === true || config.navigation === false && config._mode == 'locale') {
// Setting the width of the slide container

@@ -804,5 +752,5 @@

$.each(slides,function(i, el) { config._slideContainerWidth += $(el).width();});
config._slideContainer.width(config._slideContainerWidth)
config._slideContainer.width(config._slideContainerWidth);
// Getting the number of slides

@@ -858,5 +806,5 @@

}
if(config.navigation == true) {
if(config.navigation === true) {
// Setting containerHeight
var slides = config._slideContainer.find('.slide');

@@ -888,8 +836,7 @@

$.ajaxSlider.leftArrow(event, config);
});
} else {
}
},
rightArrow: function(event, config) {

@@ -941,8 +888,8 @@

links.bind('click', function(event) {
config._activeSlide = parseInt($(this).text());
config._activeSlide = parseInt($(this).text(), 10);
window.clearInterval(config._rotateInterval);
$.ajaxSlider.animateContainerTo(config._activeSlide -1, config);
})
});
},

@@ -1011,5 +958,5 @@

// Set navigation point to active
if(config.navigation == true) {
if(config.navigation === true) {
// Set this navigation point as active

@@ -1042,9 +989,9 @@

},
debugMode: function(text, config) {
if(config.debug == true) {
if(config.debug === true) {
console.log(text);
}
}
}
};
})(jQuery);

@@ -1058,5 +1005,5 @@

$.loadingIndicator = {
config: {
'overlay': '#lbOverlay',

@@ -1065,6 +1012,4 @@

'loadingClass': 'loadingIndicator',
'loadingText': 'Loading...',
'height': 64,
'width': 64,
'animationSpeed': 500,
'additionalCSS': {},

@@ -1076,21 +1021,18 @@

// settings
if (settings) $.extend($.loadingIndicator.config, settings);
if (settings) { $.extend($.loadingIndicator.config, settings); }
// Create loader
$.loadingIndicator.config._loader = $('<div>', {
'class': $.loadingIndicator.config.loadingClass,
'text': $.loadingIndicator.config.loadingText,
'css': {
'position': 'fixed',
'top': '50%',
'left': '50%',
'marginTop': -($.loadingIndicator.config.height/2) +'px',
'marginLeft': -($.loadingIndicator.config.width/2) + 'px',
'height': $.loadingIndicator.config.height,
'width': $.loadingIndicator.config.width,
'zIndex': 99999
}
'text': $.loadingIndicator.config.loadingText
}).hide().appendTo($(document.body));
var height = $.loadingIndicator.config._loader.height(), width = $.loadingIndicator.config._loader.width();
$.loadingIndicator.config._loader.css({
'marginTop': -(height/2) +'px',
'marginLeft': -(width/2) + 'px'
});
// Add additionalcss if passed

@@ -1100,8 +1042,8 @@

// Overlay handling
if($.loadingIndicator.config.hideOverlayAfterClose == true) {
if($.loadingIndicator.config.hideOverlayAfterClose === true) {
$($.loadingIndicator.config.overlay).fadeTo($.loadingIndicator.config.animationSpeed, $.loadingIndicator.config.overlayOpacity);
}
if($.loadingIndicator.config.bindEvent == true) {
if($.loadingIndicator.config.bindEvent === true) {
$($.loadingIndicator.config.overlay).css({'cursor': 'pointer'}).bind('click', function() {
$.loadingIndicator.close();

@@ -1110,5 +1052,5 @@

$($.loadingIndicator.config.overlay).css({'cursor': 'default'});
}
if($.browser.msie && parseInt($.browser.version) == 6) {
if($.browser.msie && parseInt($.browser.version, 10) == 6) {
$.ie6fix.open($.loadingIndicator.config._loader);
} else {

@@ -1121,5 +1063,5 @@

if($.loadingIndicator.config._loader) {
$($.loadingIndicator.config.overlay).fadeOut($.loadingIndicator.config.animationSpeed);
if($.browser.msie && parseInt($.browser.version) == 6) {
if($.browser.msie && parseInt($.browser.version, 10) == 6) {
$.ie6fix.close($.loadingIndicator.config._loader);
} else {

@@ -1152,5 +1094,5 @@

$.fn.validate = function(settings) {
if (settings) $.extend(config, settings);
if (settings) { $.extend(config, settings); }
this.bind('blur', function(event) {

@@ -1189,5 +1131,5 @@

return;
}
}
};
ajaxValidate = function(el, action) {

@@ -1199,39 +1141,39 @@

'url': $.controller.ajax_validate,
'success': function (result, data) {
if(result && result.error_flags)
{
for (var error_flag in result.error_flags)
{
if(result.error_flags[error_flag])
setError($('.register .'+error_flag));
else
setSuccess($('.register .'+error_flag));
}
}
$('#'+action+'_error').remove();
if(result && result.error_messages&& result.error_messages.length)
{
var error_css = {
'top': el.offset().top-5,
'left': el.offset().left+el.outerWidth()+15,
'position': 'absolute',
'z-index': 100
};
var error_el = $('<div>').attr('id', action+'_error').addClass('error').prependTo($('body')).css(error_css);
for (var error_key in result.error_messages)
{
var error_message = result.error_messages[error_key];
error_el.append(error_message+'<br />');
}
}
if(result && result.error_flags)
{
for (var error_flag in result.error_flags)
{
if(result.error_flags[error_flag]) {
setError($('.register .'+error_flag));
} else {
setSuccess($('.register .'+error_flag));
}
}
}
$('#'+action+'_error').remove();
if(result && result.error_messages&& result.error_messages.length)
{
var error_css = {
'top': el.offset().top-5,
'left': el.offset().left+el.outerWidth()+15,
'position': 'absolute',
'z-index': 100
};
var error_el = $('<div>').attr('id', action+'_error').addClass('error').prependTo($('body')).css(error_css);
for (var error_key in result.error_messages)
{
var error_message = result.error_messages[error_key];
error_el.append(error_message+'<br />');
}
}
}
});
}
};
//Sets error class

@@ -1245,5 +1187,5 @@

}
return el;
}
};
//Sets success class

@@ -1257,5 +1199,5 @@

}
return el;
}
};
})(jQuery);

@@ -1287,5 +1229,5 @@

'max_quantity': $(this).find('input.max_quantity').val(),
'sells': $(this).find('input.sells').val(),
'typeID': parseInt($(this).find('input.typeID').val()),
'typeID': parseInt($(this).find('input.typeID').val(), 10),
'price': eval($(this).find('input.price').val()),
'minPrice': eval($(this).find('input.minPrice').val())

@@ -1307,5 +1249,5 @@

// article limitation
var stints = $(obj).find('input.stints');
if($.isEmptyObject(stints) == true) {
if($.isEmptyObject(stints) === true) {
article.stints = $(stints).val().split(';');
}

@@ -1323,5 +1265,5 @@

// liveshopping is running
if(diff != false) {
if(diff !== false) {
$.liveshopping.refreshDates(article, diff);

@@ -1332,5 +1274,5 @@

if(article.max_quantity_enable) {
$.liveshopping.refreshQuantity(article)
$.liveshopping.refreshQuantity(article);
}

@@ -1347,6 +1289,4 @@

// liveshopping is finished
} else {
//window.location.reload();
}
}, 1000);

@@ -1368,5 +1308,5 @@

tmp = diff.d;
tmp = tmp.toString();
if(tmp.length == 1) $(item).html('0' + tmp); else $(item).html(tmp);
if(tmp.length == 1) { $(item).html('0' + tmp); } else { $(item).html(tmp); }
});

@@ -1380,5 +1320,5 @@

tmp = diff.h;
tmp = tmp.toString();
if(tmp.length == 1) $(item).html('0'+tmp); else $(item).html(tmp);
if(tmp.length == 1) { $(item).html('0'+tmp); } else { $(item).html(tmp); }
});

@@ -1392,5 +1332,5 @@

tmp = diff.m;
tmp = tmp.toString();
if(tmp.length == 1) $(item).html('0'+tmp); else $(item).html(tmp);
if(tmp.length == 1) { $(item).html('0'+tmp); } else { $(item).html(tmp); }
});

@@ -1404,5 +1344,5 @@

tmp = diff.s;
tmp = tmp.toString();
if(tmp.length == 1) $(item).html('0'+tmp); else $(item).html(tmp);
if(tmp.length == 1) { $(item).html('0'+tmp); } else { $(item).html(tmp); }
});

@@ -1418,5 +1358,5 @@

$('div.live'+key+'_days_process').each(function(index, item) {
var proz = eval(diff.d)*100/31;
if(proz > 100) proz = 100;
if(proz > 100) { proz = 100; }
proz = 100 - proz;
$(item).css('width', proz+'%');

@@ -1449,5 +1389,5 @@

refreshPrices: function(article, diff) {
if (diff.s == 0) {
if (diff.s === 0) {
var key = article.uniquekey + article.ordernumber;

@@ -1517,7 +1457,8 @@

lastValue: '',
timer: null,
searchPosition: 'middle', // left, middle, right
searchWidth: 450 // search width
_left: null,
_top: null
}, conf);
var liveSearch = jQuery('#' + config.id);

@@ -1543,43 +1484,23 @@

return this.each(function () {
var input = jQuery(this).attr('autocomplete', 'off');
var input = jQuery(this);
var liveSearchPaddingBorderHoriz = parseInt(liveSearch.css('paddingLeft'), 10) + parseInt(liveSearch.css('paddingRight'), 10) + parseInt(liveSearch.css('borderLeftWidth'), 10) + parseInt(liveSearch.css('borderRightWidth'), 10);
// Re calculates live search's position
var repositionLiveSearch = function () {
var tmpOffset = input.offset();
switch(config.searchPosition) {
case 'left':
leftValue = tmpOffset.left;
break;
case 'middle':
leftValue = (tmpOffset.left + input.outerWidth() / 2) - (config.searchWidth / 2);
break;
case 'right':
leftValue = (tmpOffset.left + input.outerWidth()) - config.searchWidth + 8;
break;
}
//console.log(leftValue);
var inputDim = {
//setting static offset
left: leftValue,
top: tmpOffset.top,
width: input.outerWidth(),
height: input.outerHeight()
};
inputDim.topPos = inputDim.top + inputDim.height;
inputDim.totalWidth = inputDim.width - liveSearchPaddingBorderHoriz;
if(config._left === null || config._top === null) {
liveSearch.show();
if(config._left === null) { config._left = parseInt(liveSearch.css('left'), 10); }
if(config._top === null) { config._top = parseInt(liveSearch.css('top'), 10); }
liveSearch.hide();
}
var containerOffset = $('.container_20:first').offset();
liveSearch.css({
position: 'absolute',
left: inputDim.left + 'px',
top: inputDim.topPos + 'px',
width: config.searchWidth + 'px'
'left': containerOffset.left + config._left,
'top': containerOffset.top + config._top
});
};

@@ -1608,5 +1529,5 @@

var doLiveSearch = function () {
if(input.val() == config.lastValue) return;
if(input.val() == config.lastValue) { return; }
input.addClass(config.loadingClass);

@@ -1631,5 +1552,5 @@

'data': $(input.attr('form')).serialize(),
'beforeSend': function() {
$('div.inner_searchcontainer .ajax_loader').show();
$('div.inner_searchcontainer .ajax_loader').show();
},
'success': function (request) {

@@ -1657,5 +1578,5 @@

// Perform a new search if there are no search results
if (liveSearch.html() == '') {
if (liveSearch.html() === '') {
config.lastValue = '';
doLiveSearch();

@@ -1715,14 +1636,14 @@

// and the missing position fixed
$.ie6fix ={
_init: function() {
if($.browser.msie && parseInt($.browser.version) == 6) {
$.ie6fix.open(modal, config);
} else {
return false;
}
},
open: function(obj) {
// Hide select boxes
$('select:visible').css('visibility', 'hidden');
_init: function() {
if($.browser.msie && parseInt($.browser.version, 10) == 6) {
$.ie6fix.open(modal, config);
} else {
return false;
}
},
open: function(obj) {
// Hide select boxes
$('select:visible').css('visibility', 'hidden');
// Fix missing 'position: fixed'

@@ -1756,5 +1677,5 @@

},
selectOnlyShow: function() {
$('select').css('visibility', 'visible')
$('select').css('visibility', 'visible');
}
};

@@ -1763,9 +1684,9 @@

// Syntax: $.format('<div class="%0"'>%1</div>, [value for %0], [value for %1], ...)
$.format = function(str) {
for (var i = 1; i < arguments.length; i++) {
str = str.replace('%' + (i - 1), arguments[i]);
}
return str;
}
for (var i = 1; i < arguments.length; i++) {
str = str.replace('%' + (i - 1), arguments[i]);
}
return str;
};
//Extends jQuery's namespace

@@ -1780,10 +1701,10 @@

$.server.dateObj.setTime(servertime * 1000);
window.setInterval(function () {
$.server.increment()
}, 1000)
$.server.increment();
}, 1000);
};
$.server.increment = function () {
var crntTime = $.server.dateObj.getTime() + 1000;
$.server.dateObj = new Date(crntTime)
$.server.dateObj = new Date(crntTime);
};

@@ -1794,5 +1715,5 @@

var toFixedFix = function (n, prec) {
var k = Math.pow(10, prec);
return (Math.round(n * k) / k).toString()
return (Math.round(n * k) / k).toString();
};
n = !isFinite(+n) ? 0 : +n;prec = !isFinite(+prec) ? 0 : Math.abs(prec);

@@ -1806,52 +1727,25 @@

i = _[0].length % 3 || 3;
_[0] = s.slice(0, i + (n < 0)) + _[0].slice(i).replace(/(\d{3})/g, sep + '$1');
s = _.join(dec)
s = _.join(dec);
} else {
s = s.replace('.', dec)
s = s.replace('.', dec);
}
var decPos = s.indexOf(dec);
if (prec >= 1 && decPos !== -1 && (s.length - decPos - 1) < prec) {
s += new Array(prec - (s.length - decPos - 1)).join(0) + '0'
s += new Array(prec - (s.length - decPos - 1)).join(0) + '0';
} else if (prec >= 1 && decPos === -1) {
s += dec + new Array(prec).join(0) + '0'
s += dec + new Array(prec).join(0) + '0';
}
return s
return s;
};
//Stripes tables
$.stripe = function (id) {
var even = false;
var evenColor = arguments[1] ? arguments[1] : "#fff";
var oddColor = arguments[2] ? arguments[2] : "#efefef";
var table = document.getElementById(id);
if (!table) {
return
}
var tbodies = table.getElementsByTagName("tbody");
for (var h = 0; h < tbodies.length; h++) {
var trs = tbodies[h].getElementsByTagName("tr");
for (var i = 0; i < trs.length; i++) {
if (!hasClass(trs[i]) && !trs[i].style.backgroundColor) {
var tds = trs[i].getElementsByTagName("td");
for (var j = 0; j < tds.length; j++) {
var mytd = tds[j];
if (!hasClass(mytd) && !mytd.style.backgroundColor) {
mytd.style.backgroundColor = even ? evenColor : oddColor
}
}
}
even = !even
}
}
};
//Changes the state of the related articles which is
//used by the bundle module
$.changeRelatedArticleState = function (ordernumber, active) {
var tmpContainerName = '#' + ordernumber + '_related_container';
if (false == active) {
$(tmpContainerName).hide()
if (false === active) {
$(tmpContainerName).hide();
} else {
$(tmpContainerName).show()
$(tmpContainerName).show();
}
};

@@ -1861,5 +1755,5 @@

$.timestampDiff = function (d1, d2) {
if (d1 < d2) {
return false
return false;
}
var d = Math.floor((d1 - d2) / (24 * 60 * 60 * 1000));

@@ -1872,5 +1766,5 @@

'm': m,
's': s
}
};
};

@@ -1879,5 +1773,5 @@

//images which is used by variant articles
$.changeDetails = function (ordernumber) {
if (typeof($.checkNotification) == 'function') {
if (typeof($.checkNotification) == 'function') {
if (!ordernumber){
$.checkNotification($.ordernumber);

@@ -1886,16 +1780,35 @@

}
}
try {
if(!ordernumber || $('#instock_'+ordernumber).val() > 0) {
$('#article_notification').hide();
$('#detailCartButton').show();
$('#detailBuyInfoNotAvailable').hide();
} else {
$('#article_notification').show();
if($('#detailBuyInfoNotAvailable').length) {
$('#detailCartButton').hide();
$('#detailBuyInfoNotAvailable').show();
}
}
} catch(e) {}
if (!ordernumber) {
// Hide Pseudoprice
$('.PseudoPrice').hide();
// Hide all other thumbnails
if (isVariant) {
var thumbs = $('.thumb_box').children('a:[id]');
thumbs.each(function (i, el) {
if ($(el).attr('id') != 'thumb' + $.ordernumber) $(el).hide()
})
if ($(el).attr('id') != 'thumb' + $.ordernumber) { $(el).hide(); }
});
}
// Hide basket
$('#basketButton').css('opacity', '0.4')
$('#basketButton').css('opacity', '0.4');
} else {
// Show Pseudo price
$('#'+ordernumber).find('.PseudoPrice').show();
// Change informations
$('#article_details').html($('#' + ordernumber).html());

@@ -1913,5 +1826,5 @@

useZoom = parseInt(useZoom);
if(useZoom) {
$('a#zoom1 img').attr('src', $('#img' + ordernumber).find('img').attr('src'));
$('a#zoom1 img').attr('src', $('#img' + ordernumber).find('img').attr('src')).attr('title', $('#img' + ordernumber).children('a').attr('title'));
$('#img' + ordernumber).find('a').trigger('click');
} else {

@@ -1944,5 +1857,7 @@

//a notification was sent
$.checkNotification = function(ordernumber) {
if(typeof(variantOrdernumberArray) == 'undefined') {
return;
}
var isSet = false;
try {

@@ -1957,17 +1872,4 @@

} catch(e) {}
}
}
var currentInstock = $('#instock_'+ordernumber).val();
if(currentInstock > 0) {
$('#article_notification').hide();
try {
$('#detailCartButton').show();
} catch(e) {}
} else {
$('#article_notification').show();
try {
$('#detailCartButton').hide();
} catch(e) {}
}
} catch(err) {}

@@ -2296,29 +2198,34 @@

//Requests the compare informations
$.compare.startComparison = function (url) {
$.ajax({
'dataType': $.compare.options.dataType,
'type': $.compare.options.requestType,
'url': url,
'complete': function (result) {
var width = 160 * $.compare.options.compareCount + 160;
var position = 'fixed';
$.compare.startComparison = function (url) {
$.ajax({
'dataType': $.compare.options.dataType,
'type': $.compare.options.requestType,
'url': url,
'complete': function (result) {
var container = $('<div>', {'class':'ajax_compare_container'}).appendTo(document.body);
var div = $('<div>', {'class': 'grid_3'}).appendTo(container);
container.show();
var tmpWidth = parseInt(div.css('width'));
container.remove();
var width = tmpWidth * $.compare.options.compareCount + tmpWidth;
if($.browser.msie && parseInt($.browser.version) == 6) {
width += 2;
position = 'absolute';
}
$.modal(result.responseText, '', {
'position': position,
'width': width+'px',
'top': '30px',
'textContainer': '<div>',
'textClass': 'ajax_compare_container'
});
}
})
};
'width': width+'px',
'top': '30px',
'textContainer': '<div>',
'textClass': 'ajax_compare_container'
});
}
})
};
//Adds an article with it's article id
//to the current compare list

@@ -2398,86 +2305,92 @@

//Default settings
var config = {
position: 'absolute',
left: '50%',
top: '10%',
width: '560px',
border: '1px solid #333',
background: '#fff',
animationSpeed: 500,
frameHeight: '500px',
textClass: '',
textContainer: '<p>',
overlay: '#lbOverlay',
overlayOpacity: '0.6',
useOverlay: true
};
//creates an modal window with text and headline
$.modal = function (text, headline, settings) {
if (settings) $.extend(config, settings);
if ($('.modal')) $('.modal').remove();
var modal = $('<div>', {
'class': 'modal',
'css': {
'width': config.width,
'left': '50%',
'border': config.border,
'background': config.background,
'display': 'none',
'margin-left': -(parseInt(config.width) / 2)
}
});
if (headline.length) {
var h2 = $('<h2>', {
'html': headline
}).appendTo(modal)
}
if (text.length) {
var container = $(config.textContainer, {
'html': text
});
if (config.textClass.length) {
container.addClass(config.textClass)
}
container.appendTo(modal);
}
var close = $('<a>', {
'text': 'Schließen',
'class': 'close'
}).appendTo(modal);
close.bind('click', function (event) {
event.preventDefault();
if (config.useOverlay == true) {
$.modal.overlay.fadeOut()
}
if (config.position == 'absolute') {
modal.fadeOut(config.animationSpeed)
} else if (config.position == 'fixed') {
modal.animate({
'top': -(modal.height() + 100) + 'px'
}, config.animationSpeed)
}
});
modal.appendTo('body');
if (config.useOverlay == true) {
$.modal.overlay.fadeIn();
$(config.overlay).bind('click', function (event) {
$.modalClose();
})
}
if($.browser.msie && parseInt($.browser.version) == 6) {
$.ie6fix.open(modal, config);
} else {
var config = {
animationSpeed: 500,
frameHeight: '500px',
textClass: '',
textContainer: '<p>',
overlay: '#lbOverlay',
overlayOpacity: '0.6',
useOverlay: true,
width: 500
};
//creates an modal window with text and headline
$.modal = function (text, headline, settings) {
if (settings) $.extend(config, settings);
if ($('.modal')) $('.modal').remove();
var modal = $('<div>', {
'class': 'modal',
'css': {
'width': config.width
}
});
if(settings.width) { modal.css('width', settings.width); }
if (headline.length) {
var h2 = $('<h2>', {
'html': headline
}).appendTo(modal)
}
if (text.length) {
var container = $(config.textContainer, {
'html': text
});
if (config.textClass.length) {
container.addClass(config.textClass)
}
container.appendTo(modal);
}
//get css properties
modal.show();
if(!config.position) {
config.position = modal.css('position');
}
config.top = modal.css('top');
modal.hide();
var close = $('<a>', {
'text': 'Schließen',
'class': 'close'
}).appendTo(modal);
close.bind('click', function (event) {
event.preventDefault();
if (config.useOverlay == true) {
$.modal.overlay.fadeOut()
}
if (config.position == 'absolute') {
modal.fadeOut(config.animationSpeed)
} else if (config.position == 'fixed') {
modal.animate({
'top': -(modal.height() + 100) + 'px'
}, config.animationSpeed)
}
});
modal.appendTo('body');
modal.show().css('marginLeft', -(modal.width()/2)).hide();
if (config.useOverlay == true) {
$.modal.overlay.fadeIn();
$(config.overlay).bind('click', function (event) {
$.modalClose();
})
}
$('.modal').fadeIn('fast');
if($.browser.msie && parseInt($.browser.version) == 6) {
$.ie6fix.open(modal, config);
} else {
if (config.position == 'absolute') {
modal.css({
'top': config.top,
'position': config.position,
'bottom': 'auto'
}).fadeIn(config.animationSpeed);
} else if (config.position == 'fixed') {
$('.modal').fadeIn();
modal.css({
'position': config.position,

@@ -2488,8 +2401,8 @@

}, config.animationSpeed)
}
}
return modal
};
}
return modal
};
//Cloeses the current modal window

@@ -2509,4 +2422,5 @@

}, config.animationSpeed)
}
$('.modal').fadeOut();
}
};

@@ -2611,21 +2525,27 @@

//Extends jQuery's function namespace
$.fn.checkout = function (settings) {
if (settings) $.extend(config, settings);
$(config.container + ' form').live('submit', function (event) {
if(!$(this).hasClass('new_customer_form')) {
event.preventDefault();
$.checkout.loginUser(this);
}
});
this.live('click', function (event) {
event.preventDefault();
$.checkout.checkUser(this.href);
});
return this
};
$.fn.checkout = function (settings) {
if (settings) $.extend(config, settings);
$(config.container + ' form').live('submit', function (event) {
if(!$(this).hasClass('new_customer_form')) {
event.preventDefault();
$.checkout.loginUser(this);
}
});
$(config.container + ' .existing_customer input[type^=submit]').live('click', function(event) {
event.preventDefault();
var form = $(config.container + ' form[name^=existing_customer]');
$.checkout.loginUser(form);
});
this.live('click', function (event) {
event.preventDefault();
$.checkout.checkUser(this.href);
});
return this
};
//Extends jQuery's namespace

@@ -3157,6 +3077,7 @@

$(function () {
$("body").append($([overlay = $('<div id="lbOverlay" />').click(close)[0], center = $('<div id="lbCenter" />')[0], bottomContainer = $('<div id="lbBottomContainer" />')[0], closer = $('<div id="lbCloser" />').click(close)[0], ]).css("display", "none"));
image = $('<div id="lbImage" />').appendTo(center).append(sizer = $('<div style="position: relative;" />').append([prevLink = $('<a id="lbPrevLink" href="#" />').click(previous)[0], nextLink = $('<a id="lbNextLink" href="#" />').click(next)[0]])[0])[0];
thumbs = $('<div id="lbThumbs" />').appendTo(center)
image = $('<div id="lbImage" />').appendTo(center).click(close).append(sizer = $('<div style="position: relative;" />').append([prevLink = $('<a id="lbPrevLink" href="#" />').click(previous)[0], nextLink = $('<a id="lbNextLink" href="#" />').click(next)[0]])[0])[0];
thumbs = $('<div id="lbThumbs" />').appendTo(center);
$('#lbImage').css('cursor', 'pointer');
});
$.slimbox = function (_images, startImage, thumbList, video, _options) {

@@ -3356,7 +3277,8 @@

centerWidth = centerWidth / 2;
$(closer).css({
'top': top,
'marginLeft': -centerWidth - 11
});
'top': top,
'marginLeft': centerWidth - 11
});
//Hide Prev and Next picture link

@@ -3670,6 +3592,7 @@

}
}
zoomDiv = appendTo.append($.format('<div id="cloud-zoom-big" class="cloud-zoom-big" style="display:none;position:absolute;left:%0px;top:%1px;width:%2px;height:%3px;background-image:url(\'%4\');z-index:99;"></div>', xPos, yPos, w, h, zoomImage.src)).find(':last');
var pos = appendTo.offset();
zoomDiv = $(document.body).append($.format('<div id="cloud-zoom-big" class="cloud-zoom-big" style="display:none;position:absolute;left:%0px;top:%1px;width:%2px;height:%3px;background-image:url(\'%4\');z-index:99;"></div>', pos.left + sImg.width() + 15, pos.top - 4, w, h, zoomImage.src)).find(':last');
// Add the title from title tag.
if (sImg.attr('title') && opts.showTitle) {

@@ -3687,16 +3610,4 @@

}
// Fix ie6 select elements wrong z-index bug. Placing an iFrame over the select element solves the issue...
if ($.browser.msie && parseInt($.browser.version) == 6) {
$ie6Fix = $('<iframe frameborder="0" src="#"></iframe>').css({
position: "absolute",
left: xPos,
top: yPos,
zIndex: 99,
width: cw,
height: h
}).insertBefore(zoomDiv);
}
zoomDiv.fadeIn(500);


/shopware/trunk/templates/_default/backend/snippet/index.tpl

@@ -346,4 +346,5 @@

title: 'Textbausteine',
height: 400,
autoScroll:true,
region: 'center',
split: true,

@@ -606,5 +607,5 @@

}),
height: 350,
minSize: 350,
autoScroll:true,
layout:'form',
region: 'south',


/shopware/trunk/templates/_default/backend/cache/index.tpl

@@ -3,11 +3,10 @@

<script>
Ext.ns('Shopware.Cache');
(function(){
View = Ext.extend(Ext.Viewport, {
layout: 'border',
autoScroll: true,
layout:'fit',
initComponent: function() {
this.panelTop = new Ext.Panel (
{
this.panelTop = new Ext.Panel ({
region: 'north',
padding: '10px 10px 10px 10px',

@@ -17,6 +16,21 @@

style: 'font-family: tahoma,arial,verdana,sans-serif;font-size:11px;font-weight:bold'
});
this.panelBottom = new Ext.Panel (
{
this.panelBottom = new Ext.Panel ({
//padding: '10px 10px 10px 10px',
title: 'Cache-Informationen',
preventBodyReset: true,
html: {"
<ul>
<li><strong>Backend:</strong> {$CacheInformation.backend}</li>
<li><strong>Verzeichnis:</strong> {$CacheInformation.cache_dir}</li>
<li><strong>Dateien:</strong> {$CacheInformation.cache_files}</li>
<li><strong>Größe:</strong> {$CacheInformation.cache_size}</li>
<li><strong>Freier Speicher:</strong> {$CacheInformation.free_space}</li>
</ul>
"|utf8_encode|json_encode},
style: 'font-family: tahoma,arial,verdana,sans-serif;font-size:11px;font-weight:normal'
});
/*
this.panelBottom = new Ext.Panel ({
region: 'south',
padding: '10px 10px 10px 10px',

@@ -25,6 +39,6 @@

html: 'Viele Caching-Routinen, wie z.B. die Erzeugung der SEO-Urls, können Sie über Cronjobs automatisieren. Beachten Sie die Einstellungsmöglichkeiten in der Cronjob-Konfiguration!',
style: 'font-family: tahoma,arial,verdana,sans-serif;font-size:11px;font-weight:normal'
}
);
});
*/
this.cacheForm = new Ext.form.FormPanel({
title: 'Welche Bereiche sollen geleert werden?',

@@ -123,9 +137,8 @@

buttons: [{
text: 'Alle markieren',
handler: function (){
Ext.each(Ext.getCmp('cacheForm2').items.items,function(item){
handler: function () {
Ext.each(Ext.getCmp('cacheForm2').items.items,function(item){
item.setValue(true);
}
);
});
}
}, {

@@ -135,13 +148,10 @@

}
}]
});
this.center = new Ext.Panel ({
region: 'center',
autoScroll: true,
items: [this.cacheForm, this.cacheForm2]
});
this.items = [this.panelTop,this.center,this.panelBottom];
});
this.items = new Ext.Panel({
border: false,
autoScroll: true,
items: [this.panelTop,this.cacheForm, this.cacheForm2, this.panelBottom]
});
View.superclass.initComponent.call(this);
}


/shopware/trunk/templates/_default/backend/index/index.tpl

@@ -12,12 +12,12 @@

<script type="text/javascript" src="{link file='engine/vendor/ext/ext-all.js'}"></script>
<script type="text/javascript" src="{link file='engine/vendor/ext/build/locale/ext-lang-de.js'}" charset="utf-8"></script>
<script type='text/javascript' src='{link file='engine/backend/js/moo12-core.js'}'></script>
<script type='text/javascript' src='{link file='engine/backend/js/moo12-more.js'}'></script>
<script type='text/javascript' src='{link file='engine/backend/js/framework.php'}'></script>
<script type="text/javascript" src="{link file='engine/backend/js/moo12-core.js'}"></script>
<script type="text/javascript" src="{link file='engine/backend/js/moo12-more.js'}"></script>
<script type="text/javascript" src="{link file='engine/backend/js/framework.php'}"></script>
<script type="text/javascript" src="{link file='backend/_resources/javascript/plugins/Ext.ux.TabScrollerMenu.js'}" charset="utf-8"></script>
<script type="text/javascript" src="{link file='backend/_resources/javascript/plugins/Ext.Grid.RowExpander.js'}" charset="utf-8"></script>
{/block}
{block name='backend_index_header_title'}
{s name="IndexTitle"}Shopware {$this->config('Version')} (Rev. 3635, 18.10.2010) - Backend (c)2010,2011 shopware AG{/s}
Shopware {config name='Version'} - 08.12.2010 - Backend (c) 2010,2011 shopware AG
{/block}

@@ -30,6 +30,6 @@

{foreach from=$categories item=category}
<li {if !$level}class="main"{/if}>
<a class="{$category->class}" style="{$category->style};cursor:pointer" {if $category->onclick}onclick="{$category->onclick}"{/if}>
{$category->label}
<a class="{$category->class}" style="{$category->style};cursor:pointer" {if $category->onclick}onclick="{$category->onclick|replace:'{release}':"{config name='Version'}"}"{/if}>
{$category->label}
</a>
{if $category->hasChildren()}

@@ -131,5 +131,5 @@

{block name="backend_index_index_ticket"}
<div id="ticketCount-div">
<div id="ticketCount-div" style="display:none">
<div id="ticketCountText" style="float:left;"></div>
<div id="ticketCountSkeleton" style="float:right;">


/shopware/trunk/templates/_default/backend/index/index_ext.tpl

@@ -345,4 +345,5 @@

{if $TicketSystemActive}
Ext.get('ticketCount-div').setStyle('display','block');
var ticketCount = new Ext.BoxComponent({
el: 'ticketCount-div'

@@ -354,5 +355,6 @@

items: [ticketCount]
});
{else}
Ext.get('ticketCount-div').setStyle('display','none');
{/if}
myExt.reload();


/shopware/trunk/templates/_default/backend/plugin/detail.tpl

@@ -3,4 +3,5 @@

xtype: 'panel',
closable: true,
autoScroll:true,
id: 'plugin{$plugin.id}',
title: 'Plugin ({$plugin.label})',


/shopware/trunk/templates/_default/backend/plugin/skeleton.tpl

@@ -4,4 +4,6 @@

"width": 860,
"height": 550,
"minwidth": 800,
"minheight": 650,
"loader": "action",
"url": "{url action='index'|escape:'javascript'}",


/shopware/trunk/templates/_default/backend/plugin/upload.tpl

@@ -3,5 +3,5 @@

(function(){
var Upload = Ext.extend(Ext.Panel, {
title: 'Plugins verwalten',
title: 'Plugins hinzufügen',
initComponent: function() {

@@ -179,4 +179,6 @@

});
Shopware.Plugin.Upload = Upload;
})();
</script>


/shopware/trunk/templates/_default/backend/plugin/list.tpl

@@ -3,5 +3,6 @@

(function(){
var List = Ext.extend(Ext.grid.GridPanel, {
title: 'Übersicht',
title: 'Verfügbare Plugins',
stripeRows:true,
initComponent: function() {

@@ -53,49 +54,17 @@

]
});
/*
this.tbar = [
{
text:'Plugin editieren',
iconCls:'pencil',
handler: function (el, el2){
if(!selModel.getSelected()) {
return;
}
var pluginId = selModel.getSelected().id;
Viewport.showDetail(pluginId);
}
},'-',{
text:'Plugin aktvieren/deaktivieren',
iconCls:'add',
handler: function (){
},
},'-',{
text: 'Plugin installieren/deinstallieren',
iconCls:'folders_plus',
handler: function (a, b, c) {
var pluginId = selModel.getSelected().id;
var install = !selModel.getSelected().data.installation_date;
Viewport.installPlugin(pluginId, install);
}
},'-',{
text: 'Plugin aktualisieren',
iconCls:'refresh',
disabled: true,
handler: function (a, b, c){
Ext.MessageBox.confirm('', 'Wollen Sie wirklich dieses Plugin aktualisieren?', function(r){
if(r=='yes') {
}
});
}
}
];
*/
this.columns = [
{
xtype: 'gridcolumn',
dataIndex: 'label',
header: 'Name',
sortable: false,
width: 150,
renderer: function (v,p,r){
return "<span style=\"font-weight:bold\">"+v+"</span";
}
},
{
xtype: 'gridcolumn',

@@ -107,13 +76,6 @@

{
xtype: 'gridcolumn',
dataIndex: 'label',
header: 'Name',
sortable: false,
width: 150
},
{
xtype: 'gridcolumn',
dataIndex: 'autor',
header: 'Autor',
header: 'Hersteller',
sortable: false,
width: 100,

@@ -150,15 +112,8 @@

falseText: 'nein'
},
/*{
xtype: 'gridcolumn',
dataIndex: 'copyright',
header: 'Copyright',
sortable: true,
width: 100
},*/
{
xtype: 'gridcolumn',
dataIndex: 'support',
header: 'Hilfe',
header: 'Support',
sortable: false,
width: 75,


/shopware/trunk/templates/_default/backend/plugin/viewport.tpl

@@ -1,4 +1,9 @@

<script type="text/javascript">
Ext.ns('Shopware.Plugin');
Ext.ux.IFrameComponent = Ext.extend(Ext.BoxComponent, {
onRender : function(ct, position){
this.el = ct.createChild({ tag: 'iframe', id: 'framepanel'+this.id, frameBorder: 0, src: this.url});
}
});
(function(){
var Viewport = Ext.extend(Ext.Viewport, {

@@ -7,7 +12,44 @@

this.list = new Shopware.Plugin.List;
this.upload = new Shopware.Plugin.Upload;
this.communityStore = new Ext.ux.IFrameComponent({
title:'Shopware CommunityStore',
autoScroll:true,
id: "iframe",
height:600,
width: 1000,
url: 'http://store.shopware.de',
tbar: [
new Ext.Button ({
text: 'Store im neuen Fenster öffnen',
handler: function(){
},
scope:this
})
]
});
this.store = new Ext.Panel(
{
autoScroll:true,
title: 'Shopware CommunityStore',
items: [
this.communityStore
],
tbar: [
new Ext.Button ({
text: 'Store im neuen Fenster öffnen',
handler: function(){
window.open("http://store.shopware.de/");
},
scope:this
})
]
}
);
this.tree = new Ext.tree.TreePanel({
title: '&nbsp;{*s name="tree_titel"}Plugins{/s*}',
title: 'Verzeichnisse',
width: 248,
region: 'west',

@@ -27,5 +69,4 @@

}
});
this.tabpanel = new Ext.TabPanel({
activeTab: 0,

@@ -33,5 +74,5 @@

enableTabScroll: true,
items: [
this.list, this.upload
this.list, this.upload,this.store
]
});


/shopware/trunk/templates/blue/frontend/_resources/styles/blue.css

@@ -26,6 +26,7 @@

------------------------ */
html, a, a:link, a:active, a:hover, a:visted {color: #333;}
html {background-color:#E9EBED}
.container_20 {background-color: #fff; border-color: #cdcdcd}
html {padding-top: 0px;}
body {padding-top: 30px;}
.container_20 {background-color: #fff; border-color: #cdcdcd;margin-top: 0;}
h2, h3 {color:#999}
div.ico_new, div.ico_tipp, div.ico_esd {color: #fff;}

@@ -165,5 +166,5 @@

.artbox p.desc {color: #777;}
.artbox .actions a, #related .listing .artbox .actions a, .listing_actions .offers {color: #696969;border-color: #e3e3e3;}
.artbox .actions a.buynow, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #009ee0;}
.artbox .actions a.more, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #009ee0;}
.artbox p.pseudoprice span.price {color:#990000;}
.artbox span.pseudo {color: #777;}

@@ -521,5 +522,5 @@

/* COLOR SPECIFIC IMAGES
------------------------ */
html {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
body {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
#detail #detailinfo {background-image: url("../images/backgrounds/bg_detailinfo.png")}
#shopnavi .icon a {background-image: url("../images/icons/ico_basket.png")}

@@ -538,3 +539,3 @@

#shopnavi .ajax_basket_container {background-image: url("../images/backgrounds/bg_ajaxbasket.png")}
.ajaxSlider .leftArrow, .ajaxSlider .rightArrow, .bannerSlider .leftArrow, .bannerSlider .rightArrow {background-image: url("../images/sprite_slider_arrows.png")}
#buybox #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png"); cursor:pointer}
#content #detail #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png") !important; cursor:pointer}


/shopware/trunk/templates/brown/frontend/_resources/styles/brown.css

@@ -26,6 +26,7 @@

------------------------ */
html, a, a:link, a:active, a:hover, a:visted {color: #333;}
html {background-color:#E9EBED}
.container_20 {background-color: #fff; border-color: #cdcdcd}
html {padding-top: 0px;}
body {padding-top: 30px;}
.container_20 {background-color: #fff; border-color: #cdcdcd;margin-top: 0;}
h2, h3 {color:#999}
div.ico_new, div.ico_tipp, div.ico_esd {color: #fff;}

@@ -165,5 +166,5 @@

.artbox p.desc {color: #777;}
.artbox .actions a, #related .listing .artbox .actions a, .listing_actions .offers {color: #696969;border-color: #e3e3e3;}
.artbox .actions a.buynow, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #613400;}
.artbox .actions a.more, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #613400;}
.artbox p.pseudoprice span.price {color:#990000;}
.artbox span.pseudo {color: #777;}

@@ -521,5 +522,5 @@

/* COLOR SPECIFIC IMAGES
------------------------ */
html {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
body {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
#detail #detailinfo {background-image: url("../images/backgrounds/bg_detailinfo.png")}
#shopnavi .icon a {background-image: url("../images/icons/ico_basket.png")}

@@ -538,3 +539,3 @@

#shopnavi .ajax_basket_container {background-image: url("../images/backgrounds/bg_ajaxbasket.png")}
.ajaxSlider .leftArrow, .ajaxSlider .rightArrow, .bannerSlider .leftArrow, .bannerSlider .rightArrow {background-image: url("../images/sprite_slider_arrows.png")}
#buybox #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png"); cursor:pointer}
#content #detail #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png") !important; cursor:pointer}


/shopware/trunk/templates/red/frontend/_resources/styles/red.css

@@ -26,6 +26,7 @@

------------------------ */
html, a, a:link, a:active, a:hover, a:visted {color: #333;}
html {background-color:#E9EBED}
.container_20 {background-color: #fff; border-color: #cdcdcd}
html {padding-top: 0px;}
body {padding-top: 30px;}
.container_20 {background-color: #fff; border-color: #cdcdcd;margin-top: 0;}
h2, h3 {color:#999}
div.ico_new, div.ico_tipp, div.ico_esd {color: #fff;}

@@ -165,5 +166,5 @@

.artbox p.desc {color: #777;}
.artbox .actions a, #related .listing .artbox .actions a, .listing_actions .offers {color: #696969;border-color: #e3e3e3;}
.artbox .actions a.buynow, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #be0a30;}
.artbox .actions a.more, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #be0a30;}
.artbox p.pseudoprice span.price {color:#990000;}
.artbox span.pseudo {color: #777;}

@@ -521,5 +522,5 @@

/* COLOR SPECIFIC IMAGES
------------------------ */
html {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
body {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
#detail #detailinfo {background-image: url("../images/backgrounds/bg_detailinfo.png")}
#shopnavi .icon a {background-image: url("../images/icons/ico_basket.png")}

@@ -538,3 +539,3 @@

#shopnavi .ajax_basket_container {background-image: url("../images/backgrounds/bg_ajaxbasket.png")}
.ajaxSlider .leftArrow, .ajaxSlider .rightArrow, .bannerSlider .leftArrow, .bannerSlider .rightArrow {background-image: url("../images/sprite_slider_arrows.png")}
#buybox #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png"); cursor:pointer}
#content #detail #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png") !important; cursor:pointer}


/shopware/trunk/templates/black/frontend/_resources/styles/black.css

@@ -26,6 +26,7 @@

------------------------ */
html, a, a:link, a:active, a:hover, a:visted {color: #333;}
html {background-color:#E9EBED}
.container_20 {background-color: #fff; border-color: #cdcdcd}
html {padding-top: 0px;}
body {padding-top: 30px;}
.container_20 {background-color: #fff; border-color: #cdcdcd;margin-top: 0;}
h2, h3 {color:#999}
div.ico_new, div.ico_tipp, div.ico_esd {color: #fff;}

@@ -165,5 +166,5 @@

.artbox p.desc {color: #777;}
.artbox .actions a, #related .listing .artbox .actions a, .listing_actions .offers {color: #696969;border-color: #e3e3e3;}
.artbox .actions a.buynow, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #000000;}
.artbox .actions a.more, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #000000;}
.artbox p.pseudoprice span.price {color:#990000;}
.artbox span.pseudo {color: #777;}

@@ -521,5 +522,5 @@

/* COLOR SPECIFIC IMAGES
------------------------ */
html {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
body {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
#detail #detailinfo {background-image: url("../images/backgrounds/bg_detailinfo.png")}
#shopnavi .icon a {background-image: url("../images/icons/ico_basket.png")}

@@ -538,3 +539,3 @@

#shopnavi .ajax_basket_container {background-image: url("../images/backgrounds/bg_ajaxbasket.png")}
.ajaxSlider .leftArrow, .ajaxSlider .rightArrow, .bannerSlider .leftArrow, .bannerSlider .rightArrow {background-image: url("../images/sprite_slider_arrows.png")}
#buybox #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png"); cursor:pointer}
#content #detail #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png") !important; cursor:pointer}


/shopware/trunk/templates/gradient/frontend/_resources/styles/gradient.css

@@ -26,5 +26,4 @@

------------------------ */
html, a, a:link, a:active, a:hover, a:visted {color: #333;}
.container_20 { border-color: #cdcdcd}
h2, h3 {color:#999}

@@ -167,5 +166,5 @@

.artbox p.desc {color: #777;}
.artbox .actions a, #related .listing .artbox .actions a, .listing_actions .offers {color: #696969;border-color: #fff;}
.artbox .actions a.buynow, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #000000;}
.artbox .actions a.more, #related .listing .artbox .actions a.buynow, .listing_actions .offers:hover {color: #000000;}
.artbox p.pseudoprice span.price {color:#990000;}
.artbox span.pseudo {color: #777;}

@@ -523,5 +522,5 @@

/* COLOR SPECIFIC IMAGES
------------------------ */
body {background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
body {background-color:#E9EBED;background-image: url("../images/backgrounds/bg_body.png");background-repeat: repeat-x; background-position: left top}
#detail #detailinfo {background-image: url("../images/backgrounds/bg_detailinfo.png")}
/*#shopnavi .icon a {background-image: url("../images/icons/ico_basket.png")}*/

@@ -540,5 +539,5 @@

#shopnavi .ajax_basket_container {background-image: url("../images/backgrounds/bg_ajaxbasket.png");}
.ajaxSlider .leftArrow, .ajaxSlider .rightArrow, .bannerSlider .leftArrow, .bannerSlider .rightArrow {background-image: url("../images/sprite_slider_arrows.png");}
#buybox #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png"); cursor:pointer}
#content #detail #basketButton, #registerbutton {background-image: url("../images/backgrounds/bg_basketbutton.png") !important; cursor:pointer}
div#breadcrumb {background: transparent;border: 0 none;height:20px; line-height: 16px;padding-left:0;}

@@ -554,12 +553,7 @@

------------------------ */
html {
background-color:#E9EBED;
padding-top:0;
}
html {padding-top:0;}
.container_20 {margin:0px auto 0;border:0 none;padding-bottom:20px;position: relative;overflow:visible;background:transparent url(../images/backgrounds/bg_bread.png) no-repeat scroll 0 205px;border:0 none;}
#header {}
#topbar input {border: 0 none; font-size:10px; font-weight: normal; }
#header #logo a {margin:38px 0 0 0;}

@@ -569,5 +563,4 @@

#mainNavigation a.active {background:transparent url(../images/backgrounds/bg_navi.png) repeat-x scroll center -44px; border: transparent;height:43px;}
#mainNavigation a.first {background:transparent url(../images/backgrounds/bg_navi.png) repeat-x scroll 0 -44px; border: transparent;height:43px;}
#mainNavigation {height:43px;margin:0px 0 15px 1px;line-height: 43px;background:transparent url(../images/backgrounds/bg_navi.png) no-repeat scroll 0 0;width:1000px;padding:0 0 0 0px;}

@@ -577,5 +570,4 @@

div#header .display_basket {color:#777;}
#content .inner {float:none;}
#shopnavi .display .top {padding-left:5px;}

@@ -587,14 +579,8 @@

div.ico_tipp {background-image: url("../images/sprite_listing.gif");}
div#searchcontainer {width:200px; position: absolute; top:135px;right:0;height:24px;background: transparent;}
div.inner_searchcontainer {
height:24px;
margin:0px 0 0 0px;
width:200px;
}
div.inner_searchcontainer {height:24px;margin:0px 0 0 0px;width:200px;}
input#searchfield {width:140px;}
#footer {height:188px;background:#fff url(../images/backgrounds/bg_footer.png) no-repeat scroll 0 0px;padding:1px;}

@@ -602,6 +588,7 @@


Unified Diff Core

/shopware/trunk/engine/auth.php

@@ -1,4 +1,11 @@

#footer .bottom {padding-top:30px;}
#content {width:998px;}
div.inner_searchcontainer .ajax_loader{left: 150px;}
div#searchresults {left: 530px;top: 160px;}
<?php
header("location: ../backend/auth");
define('sAuthFile', 'sGUI');
include("backend/php/check.php");
$path = $_SERVER["HTTPS"] ? "https" : "http";
$path .= "://";
$path .= $sCore->sCONFIG["sBASEPATH"]."/backend/index";
header("location: $path");
exit;
?>


/shopware/trunk/engine/backend/ajax/getTranslation.php

@@ -40,6 +40,10 @@

$value = str_replace("\r","",$value);
*/
$value = utf8_encode($value);
}else {
if(function_exists('mb_convert_encoding')) {
$value = mb_convert_encoding($value, 'UTF-8', 'HTML-ENTITIES');
} else {
$value = utf8_encode($value);
}
} else {
$value = "";
}


/shopware/trunk/engine/backend/ajax/renameCategory.php

@@ -9,25 +9,21 @@

die();
}
// *****************
?>
<?php
if ($result!="SUCCESS"){
//echo $result;
//header("location: auth.php");
//die();
}
if ($_POST["newValue"] && $_POST["oldValue"] && $_POST["id"])
{
$_POST["id"] = intval($_POST["id"]);
$_POST["newValue"] = htmlspecialchars(html_entity_decode($_POST["newValue"]));
if(function_exists('mb_convert_encoding')) {
$_POST["newValue"] = mb_convert_encoding($_POST["newValue"], 'HTML-ENTITIES', 'UTF-8');
} else {
$_POST["newValue"] = utf8_decode($_POST["newValue"]);
}
$_POST["newValue"] = htmlspecialchars(html_entity_decode($_POST["newValue"]), null, null, false);
$_POST["newValue"] = mysql_real_escape_string($_POST["newValue"]);
$_POST["oldValue"] = mysql_real_escape_string($_POST["oldValue"]);
if ($_POST["newValue"]!=$_POST["oldValue"]){
$_POST["newValue"] = utf8_decode($_POST["newValue"]);
$updateCategory = mysql_query("
UPDATE s_categories SET description='{$_POST["newValue"]}'
WHERE id={$_POST["id"]}
UPDATE s_categories SET description='{$_POST["newValue"]}'
WHERE id={$_POST["id"]}
");
}


/shopware/trunk/engine/backend/ajax/setTranslation.php

@@ -28,5 +28,8 @@

$_POST["sTranslationsObject"] = mysql_real_escape_string(utf8_decode($_POST["sTranslationsObject"]));
$_POST["sTranslationsLanguage"] = mysql_real_escape_string(utf8_decode($_POST["sTranslationsLanguage"]));
$_POST["sTransationsValue"] = utf8_decode($_POST["sTransationsValue"]);
if(function_exists('mb_convert_encoding')) {
$_POST["sTransationsValue"] = mb_convert_encoding($_POST["sTransationsValue"], 'HTML-ENTITIES', 'UTF-8');
}
$_POST["sTransationsValue"] = html_entity_decode(utf8_decode($_POST["sTransationsValue"]));
// Get available data
$getObject = mysql_query("


/shopware/trunk/engine/backend/ajax/getCategories.php

@@ -37,6 +37,11 @@

if ($getCategories&&mysql_num_rows($getCategories)){
while ($category=mysql_fetch_assoc($getCategories)){
$category["description"] = utf8_encode(html_entity_decode($category["description"]));
if(function_exists('mb_convert_encoding')) {
$category["description"] = mb_convert_encoding($category["description"], 'UTF-8', 'HTML-ENTITIES');
} else {
$category["description"] = utf8_encode($category["description"]);
}
$category["description"] = html_entity_decode($category["description"]);
//Add CategoryID
//$category["description"] = sprintf("%s [%s]", $category["description"], $category["id"]);


/shopware/trunk/engine/backend/php/sCacheTemplate.php

@@ -10,5 +10,6 @@

if(!file_exists($file)) return;
$extension = end(explode('.',$file));
$extension = pathinfo($file, PATHINFO_EXTENSION);
switch ($extension)
{

@@ -44,20 +45,17 @@

|| (!empty($_SERVER['HTTP_IF_NONE_MATCH'])&&trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag))
{
if (php_sapi_name()=='cgi')
if (php_sapi_name()=='cgi') {
header('Status: 304');
else
} else {
header($_SERVER['SERVER_PROTOCOL'].' 304 Not Modified');
}
exit;
}
if (strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
{
if (strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') && !ini_get('zlib.output_compression')) {
ob_start("ob_gzhandler");
echo file_get_contents($file);
ob_end_flush();
}
else
{
} else {
echo file_get_contents($file);
}
?>


/shopware/trunk/engine/backend/modules/useradd/skeleton.php

@@ -20,5 +20,5 @@

"content": "",
"loader": "iframe",
"url": "main.php?id=1",
"url": "main.php",
"help":"http://www.hamann-media.de/dev/wiki/Hilfe:Kunden#Anlegen"
}


/shopware/trunk/engine/backend/modules/mailcampaignspreview/skeleton.php

@@ -22,5 +22,13 @@

}else {
$campaigntitle = mysql_result($queryCampaign,0,"subject");
$campaigntitle = htmlentities($campaigntitle, null, null, false);
}
$path = (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS'])!='off') ? 'https' : 'http';
$path .= '://';
$path .= $sCore->sCONFIG['sBASEPATH'];
$path .= '/';
$path .= $sCore->sCONFIG['sBASEFILE'];
?>
{

@@ -32,6 +40,6 @@

"width": 800,
"content": "",
"loader": "iframe",
"url": "../../../backend/php/campaigns.php?id=<?php echo $campaignid ?>"
"loader": "extern",
"url": "<?php echo $path;?>?module=backend&controller=newsletter&id=<?php echo $campaignid ?>"
}


/shopware/trunk/engine/backend/modules/start/resetshop.php

@@ -17,12 +17,4 @@

}
// *****************
$apiPath = "../../../connectors/api/api.php";
if(!is_file($apiPath))
die("Fehler: API kann nicht geladen werden!<br>Pfad: ".$apiPath);
include($apiPath);

@@ -49,6 +41,5 @@

// Delete articles && categories via API
// ===========================================================================
$api = new sAPI();
$import =& $api->import->shopware;
$import = Shopware()->Api()->Import();
$import->sDeleteAllArticles();


/shopware/trunk/engine/backend/modules/import/export/csv.articles.php

@@ -241,5 +241,5 @@

{
$sql = "
SELECT REPLACE(GROUP_CONCAT(v.value ORDER BY r.position SEPARATOR '|'),',','.') as attributevalues
SELECT REPLACE(v.value,',','.') as value
FROM s_filter_relations r
INNER JOIN s_filter_options o

@@ -250,6 +250,8 @@

WHERE r.optionID = o.id
AND r.groupID={$result->fields['attributegroupID']}
GROUP BY o.id
";
$result->fields['attributevalues'] = $api->sDB->GetOne($sql);
$result->fields['attributevalues'] = $api->sDB->GetCol($sql);
$result->fields['attributevalues'] = implode('|', $result->fields['attributevalues']);
}
if(!empty($result->fields['categories'])&&$_REQUEST["typID"]==7)


/shopware/trunk/engine/backend/modules/import/export.php

@@ -11,6 +11,6 @@

ini_set('memory_limit','2046M');
ini_set('max_execution_time','9999999');
ini_set('display_errors',1);
error_reporting(E_ALL);
ini_set('display_errors',0);
error_reporting(0);
require_once('../../../connectors/api/api.php');


/shopware/trunk/engine/backend/modules/import/import/articles_images.php

@@ -48,5 +48,5 @@

if($sConfig['sFormat']==1)
{
if(isset($article['images'])&&$sConfig['sArticleImages'])
if(!empty($article['images'])&&$sConfig['sArticleImages'])
{
$article['images'] = explode('|', $article['images']);

@@ -70,5 +70,5 @@

if(!empty($article['images']))
{
foreach ($article['images'] as $key=>&$image)
foreach ($article['images'] as $key=>$image)
{
if(!is_array($image)) $image = array('image'=>$image);


/shopware/trunk/engine/backend/modules/partner/partner.php

@@ -343,5 +343,5 @@

$partnerData = mysql_query($sql);
?>
<strong><?php echo $sLang["partner"]["partner_partner_link"] ?></strong> http://<?php echo $sCore->sCONFIG["sBASEPATH"] ?>/<?php echo $sCore->sCONFIG["sBASEFILE"] ?>/sPartner,<?php echo $partner["idcode"]?>/ <br /><br />
<strong><?php echo $sLang["partner"]["partner_partner_link"] ?></strong> http://<?php echo $sCore->sCONFIG["sBASEPATH"] ?>/<?php echo $sCore->sCONFIG["sBASEFILE"] ?>?sPartner=<?php echo $partner["idcode"]?> <br /><br />
<?php
if (@mysql_num_rows($partnerData)){

@@ -488,4 +488,6 @@

status != 4
AND
status != -1
AND
partnerID = '{$partner["idcode"]}'
GROUP BY

@@ -508,4 +510,6 @@

status != 4
AND
status != -1
AND
partnerID = '{$partner["idcode"]}'
GROUP BY


/shopware/trunk/engine/backend/modules/blog/blogEdit.php

@@ -1085,6 +1085,7 @@

$set = 0;
}
$result_data[] = array("option"=>$id,"value"=>$name,"set"=>$set);
if ($name != "../blog/details.tpl"){
$result_data[] = array("option"=>$id,"value"=>$name,"set"=>$set);
}
}
}


/shopware/trunk/engine/backend/modules/blog/getArticles.php

@@ -45,6 +45,8 @@

if ($_POST["sort"]=="supplier") $_POST["sort"] = "supplierName";
if (!in_array($_POST["sort"],array("datum","supplier","articleName","active"))) unset($_POST["sort"]);
if (!$_POST["sort"] || $_POST["sort"]=="lastpost" || $_POST["sort"]=="info") $_POST["sort"] = "a.name";
if (!$_POST["dir"]) $_POST["dir"] = "ASC";


/shopware/trunk/engine/backend/modules/userdetails/main.php

@@ -18,5 +18,5 @@

foreach ($_POST as $pKey => $pValue){
if (!is_array($_POST[$pKey])){
$_POST[$pKey] = htmlspecialchars(mysql_real_escape_string($pValue));
$_POST[$pKey] = htmlspecialchars(mysql_real_escape_string($pValue), null, null, false);
}
}


/shopware/trunk/engine/backend/modules/categories/ajax/getCategories.php

@@ -44,7 +44,10 @@

while ($category=mysql_fetch_assoc($getCategories)){
$category["description"] = utf8_encode(html_entity_decode($category["description"]));
//Add CategoryID
//$category["description"] = sprintf("%s [%s]", $category["description"], $category["id"]);
if(function_exists('mb_convert_encoding')) {
$category["description"] = mb_convert_encoding($category["description"], 'UTF-8', 'HTML-ENTITIES');
} else {
$category["description"] = utf8_encode($category["description"]);
}
$category["description"] = html_entity_decode($category["description"]);
if (!empty($category["count"])){


/shopware/trunk/engine/backend/modules/categories/categoryedit.php

@@ -379,5 +379,5 @@

<li><label for="name">Kategorie-Bezeichnung:</label>
<input name="description" type="text" class="w150 h24" value="<?php echo htmlentities($category["description"]) ?>" />
<input name="description" type="text" class="w150 h24" value="<?php echo htmlentities($category["description"], null, null, false) ?>" />
</li><li class="clear"/>
<li><label for="name">Aktiv:</label>

@@ -408,5 +408,5 @@

<li class="clear"/>
<li><label for="name"><?php echo $sLang["categories"]["categoryedit_Meta-Keywords"] ?></label>
<input name="metakeywords" type="text" class="w150 h24" value="<?php echo htmlentities($category["metakeywords"]) ?>" />
<input name="metakeywords" type="text" class="w150 h24" value="<?php echo htmlentities($category["metakeywords"], null, null, false) ?>" />
</li>
<li class="clear"/>

@@ -417,5 +417,5 @@

<li class="clear"/>
<li><label for="name"><?php echo $sLang["categories"]["categoryedit_title"] ?></label>
<input name="cmsheadline" type="text" id="txtName" class="w200 h24" value="<?php echo htmlentities($category["cmsheadline"]) ?>" />
<input name="cmsheadline" type="text" id="txtName" class="w200 h24" value="<?php echo htmlentities($category["cmsheadline"], null, null, false) ?>" />
</li>
<li class="clear"/>

@@ -431,5 +431,5 @@

?>
<li><label for="name">Freitext <?php echo $i ?></label>
<input name="attr<?php echo $i ?>" type="text" id="txtName" class="w150 h24" value="<?php echo htmlentities($category["ac_attr$i"]) ?>" />
<input name="attr<?php echo $i ?>" type="text" id="txtName" class="w150 h24" value="<?php echo htmlentities($category["ac_attr$i"], null, null, false) ?>" />
</li>
<li class="clear"/>


/shopware/trunk/engine/backend/modules/articles/skeleton.php

@@ -32,9 +32,8 @@

$title = $sLang["articles"]["skeleton_article"]." ".mysql_result($getProduct,0,"name")." ".$sLang["articles"]["skeleton_edit"];
}
}else {
} else {
$title = $sLang["articles"]["skeleton_new_article"];
}
$title = htmlentities($title);
$title = htmlentities($title, null, null, false);
}else {


/shopware/trunk/engine/backend/modules/articles/artikeln1.inc.php

@@ -701,5 +701,7 @@

} // End of result
}else {
$_POST["txtlangbeschreibung"] = stripslashes($_POST["txtlangbeschreibung"]);
}
} // Form-Submit

@@ -737,7 +739,4 @@

}
eval($sCore->sCallHookPoint("articles_artikeln1.inc.php_Post13"));
$_SHOPWARE["EDIT"]["name"] = htmlspecialchars($_SHOPWARE["EDIT"]["name"]);
$_SHOPWARE["EDIT"]["name"] = str_replace("&quot;","\"",$_SHOPWARE["EDIT"]["name"]);
$_SHOPWARE["EDIT"]["name"] = str_replace("&amp;","&",$_SHOPWARE["EDIT"]["name"]);
$_SHOPWARE["EDIT"]["description_long"] = nl2br($_SHOPWARE["EDIT"]["description_long"]);


/shopware/trunk/engine/backend/modules/articles/class_articles.inc.php

@@ -145,5 +145,5 @@

if (!empty($disabled)) $disabled = "style=\"opacity:0.6;\" readonly='readonly'";
$data = htmlentities(htmlspecialchars_decode($data));
$data = htmlentities(htmlspecialchars_decode($data), null, null, false);
$element = "<input name=\"$name\" id=\"$nameId\" value=\"$data\" class=\"$class\" $disabled>";
if ($multilanguage){


/shopware/trunk/engine/backend/modules/support/detailsArt.php

@@ -21,4 +21,6 @@

if(!empty($_REQUEST['field_label_new']))
$values['field_label_new'] = mysql_real_escape_string($_REQUEST['field_label_new']);
if (count($_REQUEST['field'])) { foreach ($_REQUEST['field'] as $key => $value)

@@ -95,4 +97,7 @@

if(!isset($values['artID']))
{
if (empty($values['name'])){
echo "<br /><br /><strong>Füllen Sie das Feld Name aus</strong><br /><br /><br /><br />";
}else {
$sql = "
INSERT INTO

@@ -108,7 +113,11 @@

$result = mysql_query($sql);
$values['artID'] = mysql_insert_id();
}
}
else
{
if (empty($values['name'])){
echo "<strong>Füllen Sie das Feld Name aus</strong><br /><br /><br /><br />";
}else {
$sql = "
UPDATE `s_cms_support`

@@ -124,4 +133,5 @@

";
$result = mysql_query($sql);
}
}
if (!empty($values['field_name_new']))


/shopware/trunk/engine/backend/js/framework.php

@@ -222,4 +222,6 @@

var sCreatedNewWindow = true;
var url = '<?php echo $sBASEPATH?>/engine/backend/js/include.php?module='+escape(module)+'&include='+escape(skeleton.init.url);
// Check how to load the wished content
switch (skeleton.init.loader){

@@ -228,5 +230,6 @@

Load content via ajax from an existing file
*/
var myAjax = new Request.HTML({url: '<?php echo empty($_SERVER["HTTPS"]) ? "http" : "https" ?>://<?php echo $sCore->sCONFIG['sBASEPATH']?>/engine/backend/modules/'+module+'/'+skeleton.init.url, method: 'get',
var myAjax = new Request.HTML({url: url, method: 'get',
onFailure: function (el){
window.Growl("Modul konnte nicht gefunden werden");

@@ -243,5 +246,5 @@

Display content within an iframe
*/
sWindows.focus.setContent("<iframe id='contentFrame' style=\"border: 1px solid #707070;\" border=\"0\" frameborder=\"0\" class='contentFrame' src='<?php echo empty($_SERVER["HTTPS"]) ? "http" : "https" ?>://<?php echo $sCore->sCONFIG['sBASEPATH']?>/engine/backend/modules/"+module+"/"+skeleton.init.url+"'></iframe>");
sWindows.focus.setContent("<iframe id='contentFrame' style=\"border: 1px solid #707070;\" border=\"0\" frameborder=\"0\" class=\"contentFrame\" src=\""+url+"\"></iframe>");
break;
case "iframe2":

@@ -249,5 +252,5 @@

Display content within an iframe
*/
sWindows.focus.setContent("<iframe scrolling=\"No\" id='contentFrame' style=\"border: 1px solid #707070;\" border=\"0\" frameborder=\"0\" class='contentFrame' src='<?php echo empty($_SERVER["HTTPS"]) ? "http" : "https" ?>://<?php echo $sCore->sCONFIG['sBASEPATH']?>/engine/backend/modules/"+module+"/"+skeleton.init.url+"'></iframe>");
sWindows.focus.setContent("<iframe scrolling=\"No\" id='contentFrame' style=\"border: 1px solid #707070;\" border=\"0\" frameborder=\"0\" class=\"contentFrame\" src=\""+url+"\"></iframe>");
break;
case "extern":

@@ -256,5 +259,5 @@

Display content within an iframe
*/
sWindows.focus.setContent("<iframe id='contentFrame' style=\"border: 1px solid #707070;\" border=\"0\" frameborder=\"0\" class='contentFrame' src='"+skeleton.init.url+"'></iframe>");
sWindows.focus.setContent("<iframe id='contentFrame' style=\"border: 1px solid #707070;\" border=\"0\" frameborder=\"0\" class=\"contentFrame\" src=\""+skeleton.init.url+"\"></iframe>");
break;
}

@@ -382,5 +385,5 @@

var jSonRequest = new Request.JSON({
url: '<?php echo $sBASEPATH ?>/engine/backend/js/getSkeleton.php',
url: '<?php echo $sBASEPATH ?>/engine/backend/js/include.php',
onStart: function(el){


/shopware/trunk/engine/backend/js/translations.php

@@ -89,11 +89,8 @@

// Dynamic convert to tiny, if original one is tiny
if ($(element).getProperty('mce_editable')){
enableTiny(tinyMCE,'sTranslationsValue');
}
// Pass element information
$('sTranslationsId').setProperty('value',id);

@@ -143,4 +140,5 @@

},}).request();
});
}}
).request();

@@ -157,5 +155,10 @@

}
function enableTiny(tinyMCE,sEditorID){
tinyMCE.execCommand('mceAddControl', false, sEditorID);
tinyMCE.execCommand('mceAddControl', false,sEditorID);
var textControl = tinyMCE.get(sEditorID);
var tempContent = textControl.getContent();
textControl.setContent(tempContent);
//window.setTimeout("",250);
}


/shopware/trunk/engine/backend/js/include.php

@@ -0,0 +1,30 @@

<?php
if(empty($_REQUEST['module'])) {
exit();
}
$base_path = (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS'])!='off') ? 'https://' : 'http://';
$base_path .= $_SERVER['HTTP_HOST'].dirname(dirname(dirname($_SERVER['PHP_SELF'])));
$base_dir = dirname(dirname(dirname(__FILE__))).'/';
$module = basename($_REQUEST['module']);
$module = preg_replace('/[^a-z0-9_.:-]/i', '', $module);
$include = empty($_REQUEST['include']) ? 'skeleton.php' : (string) $_REQUEST['include'];
$query = parse_url($include, PHP_URL_QUERY);
$include = parse_url($include, PHP_URL_PATH);
$include = preg_replace('/[^a-z0-9\\/\\\\_.:-]/i', '', $include);
if(file_exists($base_dir.'local_old/modules/'.$module.'/'.$include)) {
$location = $base_path.'/local_old/modules/'.$module.'/'.$include;
} elseif(file_exists($base_dir.'backend/modules/'.$module.'/'.$include)) {
$location = $base_path.'/backend/modules/'.$module.'/'.$include;
}
if(!empty($location)) {
if(!empty($query)) {
$location .= '?'.$query;
} elseif(!empty($_POST)) {
$location .= '?'.http_build_query($_POST, '', '&');
}
header('Location: '.$location);
} else {
header('x', true, 404);
}


/shopware/trunk/engine/backend/js/getSkeleton.php

@@ -1,20 +1,0 @@

<?php
if(empty($_REQUEST['module'])) exit();
$base_dir = dirname(dirname(dirname(__FILE__))).'/';
$module = basename($_REQUEST['module']);
if(file_exists($base_dir.'custom/backend/modules/'.$module.'/skeleton.php'))
{
chdir($base_dir.'custom/backend/modules/'.$module.'/');
require($base_dir.'custom/backend/modules/'.$module.'/skeleton.php');
}
elseif(file_exists($base_dir.'backend/modules/'.$module.'/skeleton.php'))
{
chdir($base_dir.'backend/modules/'.$module.'/');
require($base_dir.'backend/modules/'.$module.'/skeleton.php');
}
else
{
header('x', true, 404);
}


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/RouterOld/Bootstrap.php

@@ -100,5 +100,5 @@

$title = Shopware()->Db()->fetchOne($sql, array($query['sCategory']));
}
unset($query['sCoreId'], $query['sUseSSL'], $query['title'], $query['module']);
unset($query['title'], $query['module']);
if(!empty($query['sAction'])&&$query['sAction']=='index') {
unset($query['sAction']);

@@ -189,5 +189,5 @@

' '=>'-',
'+'=>'-',
'&'=>'-',
//'&'=>'-',
'à'=>'a',
'á'=>'a',

@@ -197,9 +197,18 @@

'ú'=>'u',
'ë'=>'e',
'ç'=>'c',
'Ç'=>'C',
'&#351;'=>'s',
'&#350;'=>'S',
'&#287;'=>'g',
'&#286;'=>'G',
'&#304;'=>'i',
);
$path = html_entity_decode($path);
$path = str_replace(array_keys($replace), array_values($replace), $path);
if($remove_ds)
if($remove_ds) {
$path = str_replace('/', '-', $path);
}
$path = preg_replace('/&[a-z0-9#]+;/i', '', $path);
$path = preg_replace('#[^0-9a-z-_./]#i','',$path);
$path = preg_replace('/-+/','-',$path);


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/CronRefresh/Bootstrap.php

@@ -0,0 +1,60 @@

<?php
class Shopware_Plugins_Frontend_CronRefresh_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
public function install()
{
$this->subscribeEvent($this->createEvent('Shopware_CronJob_Clearing', 'onCronJobClearing'));
$this->subscribeEvent($this->createEvent('Shopware_CronJob_Translation', 'onCronJobTranslation'));
$this->subscribeEvent($this->createEvent('Shopware_CronJob_Search', 'onCronJobSearch'));
return true;
}
public static function onCronJobClearing(Shopware_Components_Cron_CronJob $job)
{
if(empty($data['lastarticles']['range'])) {
$data['lastarticles']['range'] = 2592000; //30 Days
}
if(empty($data['search']['range'])) {
$data['search']['range'] = 2592000; //30 Days
}
if(empty($data['log']['range'])) {
$data['log']['range'] = 2592000; //30 Days
}
$sql = '
DELETE FROM s_emarketing_lastarticles WHERE time < ?
';
$result = Shopware()->Db()->query($sql, array(
date('Y-m-d H:i:s', time()-$data['lastarticles']['interval'])
));
$data['lastarticles']['rows'] = $result->rowCount();
$sql = '
DELETE FROM s_statistics_search WHERE datum < ?
';
$result = Shopware()->Db()->query($sql, array(
date('Y-m-d H:i:s', time()-$data['search']['interval'])
));
$data['search']['rows'] = $result->rowCount();
$sql = '
DELETE FROM s_core_log WHERE datum < ?
';
$result = Shopware()->Db()->query($sql, array(
date('Y-m-d H:i:s', time()-$data['log']['interval'])
));
$data['log']['rows'] = $result->rowCount();
}
public static function onCronJobTranslation(Shopware_Components_Cron_CronJob $job)
{
Shopware()->Modules()->Articles()->sCreateTranslationTable();
}
public static function onCronJobSearch(Shopware_Components_Cron_CronJob $job)
{
@ini_set("memory_limt","265M");
@set_time_limit(0);
Shopware()->Modules()->Search()->sCreateIndex();
}
}


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/RouterRewrite/Bootstrap.php

@@ -60,8 +60,9 @@

$request = $args->getSubject()->Request();
$response = $args->getSubject()->Response();
if($request->getModuleName()&&$request->getModuleName()!='frontend'){
return;
}
if(!$request->isDispatched()||$response->isException()||$request->getModuleName()!='frontend') {
return;
}
if(!$request->getParam('sRedirect')) {
return;

@@ -87,4 +88,9 @@

}
if(!Shopware()->Bootstrap()->issetResource('Db')
|| !Shopware()->Bootstrap()->issetResource('Shop')) {
return;
}
$sql = 'SELECT value FROM s_core_config WHERE name=?';
$last_update = Shopware()->Db()->fetchOne($sql, array('sROUTERLASTUPDATE'));

@@ -98,9 +104,8 @@

$current_time = Shopware()->Db()->fetchOne('SELECT NOW()');
$cached_time = empty($last_update[$shopId]) ? false : $last_update[$shopId];
if(empty($cached_time)||strtotime($cached_time)<strtotime($current_time)-$cache)
{
$sql = 'UPDATE `s_articles` SET `changetime`= NOW() WHERE `changetime`=?';
Shopware()->Db()->query($sql, array('0000-00-00 00:00:00'));
Shopware()->Modules()->RewriteTable()->sCreateRewriteTable();
$data = $last_update;

@@ -110,6 +115,4 @@

$sql = 'UPDATE `s_core_config` SET `value`=? WHERE `name`=?';
Shopware()->Db()->query($sql, array($data,'sROUTERLASTUPDATE'));
Shopware()->Modules()->RewriteTable()->sCreateRewriteTable();
}
}

@@ -158,45 +161,46 @@

}
if(!empty(Shopware()->Config()->RouterUrlCache))
{
if(!Shopware()->Bootstrap()->issetResource('Db')
|| !Shopware()->Bootstrap()->issetResource('Shop')) {
return;
}
unset($params['sCoreId'], $params['sUseSSL'], $params['title'], $params['module']);
if(!empty($params['sAction'])&&$params['sAction']=='index') {
unset($params['sAction']);
}
if(!empty($params['sViewport'])&&$params['sViewport']=='index'&&!empty(Shopware()->Config()->RouterRemoveCategory)) {
unset($params['sCategory']);
}
/*
if(!empty(Shopware()->Config()->RouterUrlCache)) {
$id = 'Shopware_RouterRewrite_'.Shopware()->Shop()->getId().'_'.md5(serialize($params));
$cache = Shopware()->Cache();
if(!$cache->test($id))
{
if(!$cache->test($id)) {
$url = $this->assemble($params);
$cache->save($url, $id, array('Shopware_RouterRewrite'), Shopware()->Config()->RouterUrlCache);
}
else
{
} else {
$url = $cache->load($id);
}
return $url;
}
else
{
} else {
*/
return $this->assemble($params);
}
/*
}
*/
}
public function assemble($query)
{
unset($query['sCoreId'], $query['sUseSSL'], $query['title'], $query['module']);
if(!empty($query['sAction'])&&$query['sAction']=='index')
{
unset($query['sAction']);
}
$org_query = array ();
if(!empty($query['sViewport']))
{
$org_query = array ('sViewport' => $query['sViewport'] );
switch ($query ['sViewport']){
if(!empty($query['sViewport'])) {
$org_query = array ('sViewport' => $query['sViewport']);
switch ($query['sViewport']) {
case 'detail':
$org_query['sArticle'] = $query['sArticle'];
if(!empty(Shopware()->Config()->RouterRemoveCategory))
{
unset ($query ['sCategory']);
}
//if(!empty(Shopware()->Config()->RouterRemoveCategory)) {
// unset ($query['sCategory']);
//}
break;
case 'cat':

@@ -208,8 +212,9 @@

case 'support':
case 'ticket':
$org_query ['sFid'] = $query ['sFid'];
if($query['sFid']==Shopware()->Config()->InquiryID)
{
$org_query['sInquiry'] = $query['sInquiry'];
if(!empty($query['sFid'])) {
$org_query['sFid'] = $query['sFid'];
if($query['sFid']==Shopware()->Config()->InquiryID) {
$org_query['sInquiry'] = $query['sInquiry'];
}
}
break;

@@ -228,21 +233,30 @@

break;
}
$org_path = http_build_query( $org_query, '', '&' );
$sql = 'SELECT path FROM s_core_rewrite_urls WHERE org_path=? AND subshopID=? AND main=1 ORDER BY id DESC';
$path = Shopware()->Db()->fetchOne($sql, array($org_path, Shopware()->Shop()->getId()));
}
else
{
$org_path = http_build_query($org_query, '', '&');
if(!empty(Shopware()->Config()->RouterUrlCache)) {
$id = 'Shopware_RouterRewrite_'.Shopware()->Shop()->getId().'_'.md5($org_path);
$cache = Shopware()->Cache();
if(!$cache->test($id)) {
$sql = 'SELECT path FROM s_core_rewrite_urls WHERE org_path=? AND subshopID=? AND main=1 ORDER BY id DESC';
$path = Shopware()->Db()->fetchOne($sql, array($org_path, Shopware()->Shop()->getId()));
$cache->save($path, $id, array('Shopware_RouterRewrite'), Shopware()->Config()->RouterUrlCache);
} else {
$path = $cache->load($id);
}
} else {
$sql = 'SELECT path FROM s_core_rewrite_urls WHERE org_path=? AND subshopID=? AND main=1 ORDER BY id DESC';
$path = Shopware()->Db()->fetchOne($sql, array($org_path, Shopware()->Shop()->getId()));
}
} else {
$path = '';
}
if(!empty($path)&&!empty(Shopware()->Config()->RouterToLower))
{
if(!empty($path)&&!empty(Shopware()->Config()->RouterToLower)) {
$path = strtolower($path);
}
if (!empty($path))
{
if (!empty($path)) {
$query = array_diff_key($query, $org_query);
if (!empty($query))
{
if (!empty($query)) {
$path .= '?'.$this->sRewriteQuery($query);
}


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/Ticket/Bootstrap.php

@@ -10,4 +10,8 @@

$this->subscribeEvent($event);
$form = $this->Form();
$form->setElement('checkbox', 'show', array('label'=>'Link im Kundenkonto zeigen', 'value'=>1, 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->save();
return true;
}

@@ -18,6 +22,11 @@

$request = $args->getSubject()->Request();
$response = $args->getSubject()->Response();
$config = Shopware()->Plugins()->Frontend()->Ticket()->Config();
if(!$request->isDispatched()||$response->isException()||$request->getModuleName()!='frontend') {
return;
}
if(empty($config->show) && $config->show!==null) {
return;
}


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/ViewportDispatcher/Bootstrap.php

@@ -129,6 +129,17 @@

if(Shopware()->Config()->TemplateOld) {
if($request->getControllerName()=='index') {
$args->getSubject()->View()->loadTemplate('index/index.tpl');
$args->getSubject()->View()->assign('sContainer', $args->getSubject()->View()->fetch('index/index_home.tpl'));
$view = $args->getSubject()->View();
$render = Shopware()->Modules()->Core()->sStart();
if(empty($render)) {
$render = array('templates'=>array(), 'variables'=>array());;
}
$variables = $view->getAssign();
if(!empty($variables)) {
$render['variables'] = array_merge($variables, $render['variables']);
}
$render = Shopware()->Modules()->Core()->sCustomRenderer($render, '', '');
$view->assign($render['variables']);
$view->loadTemplate('index/index.tpl');
$view->assign('sContainer', $view->fetch('index/index_home.tpl'));
} elseif($request->getControllerName()=='viewport' && $request->getParam('sViewport')=='logout') {
$args->getSubject()->forward('index', 'index');


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/Compare/Bootstrap.php

@@ -9,4 +9,9 @@

);
$this->subscribeEvent($event);
$form = $this->Form();
$form->setElement('checkbox', 'show', array('label'=>'Vergleich zeigen', 'value'=>1, 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->save();
return true;
}

@@ -17,4 +22,9 @@

$response = $args->getSubject()->Response();
$view = $args->getSubject()->View();
$config = Shopware()->Plugins()->Frontend()->Compare()->Config();
if(empty($config->show) && $config->show!==null) {
return;
}
if(!$request->isDispatched()||$response->isException()||$request->getModuleName()!='frontend'){

@@ -22,6 +32,5 @@

}
$view->addTemplateDir(dirname(__FILE__).'/templates/');
$view->extendsTemplate('frontend/widgets/compare/index.tpl');
$view->extendsTemplate('frontend/plugins/compare/index.tpl');
$view->assign('sComparisons', Shopware()->Modules()->Articles()->sGetComparisons(), true);


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/Notification/Bootstrap.php

@@ -225,5 +225,5 @@

public static function onRunCronJob(Shopware_Components_Cron_CronJob $job)
{
echo "Benachrichtigung wird ausgeführt\n";
//echo "Benachrichtigung wird ausgeführt\n";
$sql ="SELECT * FROM `s_articles_notification` WHERE send = 0";

@@ -245,5 +245,5 @@

$ordernumber = $data["ordernumber"];
echo "Artikel mit Bestellnummer: ".$ordernumber." wird durchlaufen</br>";
//echo "Artikel mit Bestellnummer: ".$ordernumber." wird durchlaufen</br>";
$sArticle = Shopware()->Db()->fetchRow("SELECT a.id as articleID, d.ordernumber, d.instock, a.active FROM s_articles_details d, s_articles a WHERE d.articleID=a.id AND d.ordernumber=?", array($ordernumber));

@@ -262,8 +262,8 @@

$notificationActive = Shopware()->Db()->fetchOne($sql, array($sArticleID));
echo "Lagerbestand: ".intval($instock)."</br>";
// echo "Lagerbestand: ".intval($instock)."</br>";
if(intval($instock) > 0 && $notificationActive == true && !empty($sArticle["active"])) {
echo "Lagerbestand > 0 und Feld im Backend aktiv</br>";
//echo "Lagerbestand > 0 und Feld im Backend aktiv</br>";
$templateData->assign('sArticleLink',$data["shopLink"]."?sViewport=detail&sArticle=$sArticleID");
$templateData->assign('sOrdernumber',$ordernumber);

@@ -294,11 +294,11 @@

$sql ="UPDATE `s_articles_notification` SET `send` = '1' WHERE `ordernumber` =?";
Shopware()->Db()->query($sql, array($data["ordernumber"]));
echo "Datenbanktabelle s_articles_notification upgedatet</br>";
//echo "Datenbanktabelle s_articles_notification upgedatet</br>";
}
else{
echo "Lagerbestand zu gering oder Feld im Backend inaktiv bei Artikel: ".$ordernumber."</br>";
}
echo "##########################</br></br>";
//echo "Lagerbestand zu gering oder Feld im Backend inaktiv bei Artikel: ".$ordernumber."</br>";
}
//echo "##########################</br></br>";
}
}


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/Paypal/Bootstrap.php

@@ -41,5 +41,4 @@

}
$view->addTemplateDir(dirname(__FILE__).'/templates/');
$view->extendsTemplate('frontend/plugins/paypal/index.tpl');
}


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/Seo/Bootstrap.php

@@ -29,8 +29,5 @@

$config = Shopware()->Config();
if(empty($config['sTEMPLATEOLD'])) {
$snippet = Shopware()->Snippets()->getSnippet('frontend/index/header');
}
$view = $args->getSubject()->View();

@@ -67,35 +64,20 @@

$meta_description = htmlentities(strip_tags(html_entity_decode($meta_description)));
$meta_description = trim(preg_replace('/\s\s+/', ' ', $meta_description));
if($snippet!==null) {
$snippet->set('IndexMetaDescriptionStandard', $meta_description, false);
} else {
$view->SEOMetaDescription = $meta_description;
}
}
$viewport = $request->getControllerName()=='viewport' ? $request->getParam('sViewport') : $request->getControllerName();
if(!empty($viewport_blacklist)&&in_array($viewport, $viewport_blacklist)) {
$meta_robots = 'noindex,follow';
} elseif(!empty($query_blacklist)) {
foreach ($query_blacklist as $query_key) {
if($request->getQuery($query_key)!==null) {
$meta_robots = 'noindex,follow';
}
}
}
if(!empty($viewport_blacklist)&&in_array($request->getControllerName(), $viewport_blacklist))
{
$meta_robots = 'noindex,nofollow';
}
elseif(!empty($query_blacklist))
{
foreach ($query_blacklist as $query_key)
{
if($request->getQuery($query_key)!==null)
{
$meta_robots = 'noindex,nofollow';
}
}
}
if(!empty($meta_robots))
{
if($snippet!==null) {
$snippet->set('IndexMetaRobots', $meta_robots, false);
}
}
if(empty($config['sTEMPLATEOLD'])) {
$view->addTemplateDir(dirname(__FILE__).'/templates/');
$view->extendsTemplate('frontend/plugins/seo/index.tpl');

@@ -103,6 +85,15 @@

$view->SeoMetaRobots = $meta_robots;
}
if(!empty($meta_description)) {
$view->SeoMetaDescription = $meta_description;
}
} else {
$snippet = Shopware()->Config()->Snippets();
if(!empty($meta_robots)) {
$view->SeoMetaDescription = $meta_description;
$snippet->set('sIndexMetaRobots', $meta_robots, false);
}
if(!empty($meta_description)) {
$snippet->set('sIndexMetaDescriptionStandard', $meta_description, false);
}
}


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/AdvancedMenu/Bootstrap.php

@@ -12,7 +12,8 @@

$form = $this->Form();
$form->setElement('checkbox', 'show', array('label'=>'Menu zeigen', 'value'=>1, 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->setElement('checkbox', 'caching', array('label'=>'Caching aktivieren', 'value'=>0));
$form->setElement('text', 'cachetime', array('label'=>'Cachezeit', 'value'=>86400));
$form->setElement('text', 'levels', array('label'=>'Anzahl Ebenen', 'value'=>2));
$form->setElement('text', 'levels', array('label'=>'Anzahl Ebenen', 'value'=>2, 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->save();

@@ -36,4 +37,8 @@

$config = Shopware()->Plugins()->Frontend()->AdvancedMenu()->Config();
if(empty($config->show) && $config->show!==null) {
return;
}
$compile_id = $view->Template()->compile_id;
$cache_id = 'frontend|index|plugins|advanced_menu|'.$category.'|'.$usergroup;

@@ -51,5 +56,4 @@

(int) $config->levels
));
$view->addTemplateDir(dirname(__FILE__).'/templates/');
$view->extendsTemplate('frontend/plugins/advanced_menu/index.tpl');
//}


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/LastArticles/Bootstrap.php

@@ -19,5 +19,5 @@

}
function onPostDispatch(Enlight_Event_EventArgs $args)
public static function onPostDispatch(Enlight_Event_EventArgs $args)
{
$request = $args->getSubject()->Request();


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/Statistics/Bootstrap.php

@@ -52,5 +52,5 @@

$_SERVER['REMOTE_ADDR'],
$_SERVER['PHP_SELF'],
empty(Shopware()->Db()->sUserId) ? 0 : (int) Shopware()->Db()->sUserId
empty(Shopware()->Session()->sUserId) ? 0 : (int) Shopware()->Session()->sUserId
));
}


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/Recommendation/Bootstrap.php

@@ -36,20 +36,20 @@

$form = $this->Form();
$form->setElement('text', 'max_banner', array('label'=>'Limit Banner','value'=>'12'));
$form->setElement('text', 'max_supplier', array('label'=>'Limit Hersteller','value'=>'255'));
$form->setElement('text', 'supplier_page', array('label'=>'Hersteller pro Slider','value'=>'4'));
$form->setElement('text', 'max_banner', array('label'=>'Limit Banner','value'=>'12', 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->setElement('text', 'max_supplier', array('label'=>'Limit Hersteller','value'=>'255', 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->setElement('text', 'supplier_page', array('label'=>'Hersteller pro Slider','value'=>'4', 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->setElement('text', 'max_seen_articles', array('label'=>'"Auch angeschaut" Limit','value'=>'40'));
$form->setElement('text', 'page_seen_articles', array('label'=>'"Auch angeschaut" pro Seite','value'=>'4'));
$form->setElement('text', 'max_bought_articles', array('label'=>'"Auch gekauft" Limit','value'=>'40'));
$form->setElement('text', 'page_bought_articles', array('label'=>'"Auch gekauft" pro Seite','value'=>'4'));
$form->setElement('text', 'max_simlar_articles', array('label'=>'"Ähnliche Interessen" Limit','value'=>'20'));
$form->setElement('text', 'page_similar_articles', array('label'=>'"Ähnliche Interessen" pro Seite','value'=>'3'));
$form->setElement('text', 'max_new_articles', array('label'=>'Neue Artikel Limit','value'=>'20'));
$form->setElement('text', 'page_new_articles', array('label'=>'Neue Artikel pro Seite','value'=>'3'));
$form->setElement('text', 'max_seen_articles', array('label'=>'"Auch angeschaut" Limit','value'=>'40', 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->setElement('text', 'page_seen_articles', array('label'=>'"Auch angeschaut" pro Seite','value'=>'4', 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->setElement('text', 'max_bought_articles', array('label'=>'"Auch gekauft" Limit','value'=>'40', 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->setElement('text', 'page_bought_articles', array('label'=>'"Auch gekauft" pro Seite','value'=>'4', 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->setElement('text', 'max_simlar_articles', array('label'=>'"Ähnliche Interessen" Limit','value'=>'20', 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->setElement('text', 'page_similar_articles', array('label'=>'"Ähnliche Interessen" pro Seite','value'=>'3', 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->setElement('text', 'max_new_articles', array('label'=>'Neue Artikel Limit','value'=>'20', 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->setElement('text', 'page_new_articles', array('label'=>'Neue Artikel pro Seite','value'=>'3', 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->setElement('text', 'block_detail', array('label'=>'Standard Block Detailseite','value'=>'frontend_detail_index_tabs'));
$form->setElement('checkbox', 'bought_too', array('label'=>'"Kunden kauften auch" anzeigen','value'=>'1'));
$form->setElement('checkbox', 'similary_viewed', array('label'=>'"Kunden haben sich ebenfalls angesehen" anzeigen','value'=>'1'));
$form->setElement('text', 'block_detail', array('label'=>'Standard Block Detailseite','value'=>'frontend_detail_index_tabs', 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->setElement('checkbox', 'bought_too', array('label'=>'"Kunden kauften auch" anzeigen','value'=>'1', 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->setElement('checkbox', 'similary_viewed', array('label'=>'"Kunden haben sich ebenfalls angesehen" anzeigen','value'=>'1', 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
/*

@@ -77,8 +77,10 @@

return true;
}
public static function onGetControllerPathBackend(Enlight_Event_EventArgs $args)
{
return dirname(__FILE__).'/RecommendationAdmin.php';
}
public static function onGetControllerPath(Enlight_Event_EventArgs $args)
{


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/Recommendation/Recommendation.php

@@ -7,8 +7,8 @@

}
$config = Shopware()->Plugins()->Frontend()->Recommendation()->Config();
// Configuration
$page = $this->Request()->pages ? $this->Request()->pages : 1;
$maxArticles = $config->max_seen_articles;
$perPage = $config->page_seen_articles;
$page = empty($this->Request()->pages) ? 1 : (int) $this->Request()->pages;
$maxArticles = empty($config->max_seen_articles) ? 40 : (int) $config->max_seen_articles;
$perPage = empty($config->page_seen_articles) ? 4 : (int) $config->page_seen_articles;
// Ignore articles that are already in shopping cart

@@ -36,13 +36,14 @@

}
public function boughtAction(){
public function boughtAction()
{
if (empty($this->Request()->article)){
throw new Enlight_Exception("Missing article-id");
}
$config = Shopware()->Plugins()->Frontend()->Recommendation()->Config();
// Configuration
$page = $this->Request()->pages ? $this->Request()->pages : 1;
$maxArticles = $config->max_bought_articles;
$perPage = $config->page_bought_articles;
$page = empty($this->Request()->pages) ? 1 : (int) $this->Request()->pages;
$maxArticles = empty($config->max_bought_articles) ? 40 : (int) $config->max_bought_articles;
$perPage = empty($config->page_bought_articles) ? 4 : (int) $config->page_bought_articles;
// Ignore articles that are already in shopping cart

@@ -70,13 +71,14 @@

}
public function similaryViewedAction(){
public function similaryViewedAction()
{
if (empty($this->Request()->category)){
throw new Enlight_Exception("Missing category-id");
}
$config = Shopware()->Plugins()->Frontend()->Recommendation()->Config();
// Configuration
$page = $this->Request()->pages ? $this->Request()->pages : 1;
$maxArticles = $config->max_simlar_articles;
$perPage = $config->page_similar_articles;
$page = empty($this->Request()->pages) ? 1 : (int) $this->Request()->pages;
$maxArticles = empty($config->max_simlar_articles) ? 20 : (int) $config->max_simlar_articles;
$perPage = empty($config->page_similar_articles) ? 3 : (int) $config->page_similar_articles;
$getLastViewed = Shopware()->Modules()->Articles()->sGetLastArticles();

@@ -111,5 +113,5 @@

LIMIT $maxArticles
";
$articles = Shopware()->Db()->fetchAll($sql,array($this->Request()->category));
$articles = Shopware()->Db()->fetchAll($sql, array($this->Request()->category));
$articles = array_chunk($articles,$perPage);
$pages = count($articles);

@@ -117,5 +119,5 @@

foreach ($articles as $article){
$tmpContainer = Shopware()->Modules()->Articles()->sGetPromotionById("fix",0,$article['id']);
$tmpContainer = Shopware()->Modules()->Articles()->sGetPromotionById("fix", 0, (int) $article['id']);
if (!empty($tmpContainer["articleName"])){
$result[] = $tmpContainer;

@@ -127,13 +129,14 @@

}
public function newAction(){
public function newAction()
{
if (empty($this->Request()->category)){
throw new Enlight_Exception("Missing category-id");
}
$config = Shopware()->Plugins()->Frontend()->Recommendation()->Config();
// Configuration
$page = $this->Request()->pages ? $this->Request()->pages : 1;
$maxArticles = $config->max_new_articles;
$perPage = $config->page_new_articles;
$page = empty($this->Request()->pages) ? 1 : (int) $this->Request()->pages;
$maxArticles = empty($config->max_new_articles) ? 20 : (int) $config->max_new_articles;
$perPage = empty($config->page_new_articles) ? 3 : (int) $config->page_new_articles;
$sql = "

@@ -148,5 +151,6 @@

AND s_articles.id=s_articles_categories.articleID
AND s_articles_categories.categoryID=?
ORDER BY datum DESC LIMIT $maxArticles";
ORDER BY datum DESC LIMIT $maxArticles
";
$articles = Shopware()->Db()->fetchAll($sql,array($this->Request()->category));
$articles = array_chunk($articles,$perPage);

@@ -156,6 +160,6 @@

$articles = $articles[$page-1];
foreach ($articles as $article){
$tmpContainer = Shopware()->Modules()->Articles()->sGetPromotionById("fix",0,$article['id']);
foreach ($articles as $article) {
$tmpContainer = Shopware()->Modules()->Articles()->sGetPromotionById("fix", 0, (int) $article['id']);
if (!empty($tmpContainer["articleName"])){
$result[] = $tmpContainer;

@@ -166,15 +170,11 @@

$this->View()->loadTemplate("frontend/plugins/recommendation/slide_articles.tpl");
}
public function suppliersAction(){
public function suppliersAction()
{
if (empty($this->Request()->category)){
throw new Enlight_Exception("Missing category-id");
}
$getSuppliers = Shopware()->Modules()->Articles()->sGetAffectedSuppliers($this->Request()->category);
}
}


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/Facebook/Bootstrap.php

@@ -11,9 +11,11 @@

$form = $this->Form();
$form->setElement('text', 'app_id', array('label'=>'Facebook App-ID','value'=>''));
$form->setElement('checkbox', 'show', array('label'=>'Facebook zeigen', 'value'=>1, 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->setElement('text', 'app_id', array('label'=>'Facebook App-ID','value'=>'', 'scope'=>Shopware_Components_Form::SCOPE_SHOP));
$form->save();
return true;
}
public static function onPostDispatchDetail(Enlight_Event_EventArgs $args)
{

@@ -22,13 +24,19 @@

$view = $args->getSubject()->View();
$config = Shopware()->Plugins()->Frontend()->Facebook()->Config();
if(empty($config->show) && $config->show!==null) {
return;
}
$view->app_id = $config->app_id;
if (!empty($_SERVER["HTTP_USER_AGENT"]) && preg_match("/MSIE 6/",$_SERVER['HTTP_USER_AGENT'])){
$view->hideFacebook = true;
}else {
} else {
$view->hideFacebook = false;
}
$article = $view->sArticle;
$view->unique_id = md5($article["linkDetails"]);
$view->unique_id = Shopware()->Shop()->getId().'_'.$article['articleID'];
$view->extendsTemplate('frontend/plugins/facebook/blocks_detail.tpl');
}


/shopware/trunk/engine/Shopware/Plugins/Default/Frontend/Google/Bootstrap.php

@@ -45,6 +45,5 @@

$view = $args->getSubject()->View();
$view->addTemplateDir(dirname(__FILE__).'/templates/');
$view->extendsTemplate('frontend/widgets/google/index.tpl');
$view->extendsTemplate('frontend/plugins/google/index.tpl');
if(!empty($config->conversion_code)) {


/shopware/trunk/engine/Shopware/Plugins/Default/Backend/Auth/Bootstrap.php

@@ -123,5 +123,5 @@

throw new Enlight_Controller_Exception('Unauthorized', 401);
} else {
$args->getSubject()->redirect('engine');
$args->getSubject()->redirect('backend/auth');
}
}


/shopware/trunk/engine/Shopware/Plugins/Default/Core/Router/Bootstrap.php

@@ -84,24 +84,28 @@

}
if (!empty($params['sDetails'])&&!empty($params['sViewport'])&&$params['sViewport']=='detail')
{
if (!empty($params['sDetails'])&&!empty($params['sViewport'])&&$params['sViewport']=='detail'){
$params['sArticle'] = $params['sDetails'];
unset($params['sDetails']);
}
if(empty($params['module']))
{
if(empty($params['module'])) {
$params['module'] = $request->getModuleName() ? $request->getModuleName() : '';
if(empty($params['sViewport']))
{
if(empty($params['sViewport'])) {
$params['sViewport'] = $request->getControllerName() ? $request->getControllerName() : 'index';
if(empty($params['sAction']))
{
if(empty($params['sAction'])) {
$params['sAction'] = $request->getActionName() ? $request->getActionName() : 'index';
}
}
}
if(isset($params['sAction'])) {
$params = array_merge(array('sAction'=>null), $params);
}
if(isset($params['sViewport'])) {
$params = array_merge(array('sViewport'=>null), $params);
}
unset($params['sUseSSL'], $params['fullPath'], $params['appendSession'], $params['forceSecure']);
unset($params['sUseSSL'], $params['fullPath'], $params['appendSession'], $params['forceSecure'], $params['sCoreId']);
return $params;
}

@@ -132,4 +136,6 @@

$useSSL = false;
}
$url = '';
if(!isset($userParams['fullPath'])||!empty($userParams['fullPath']))


/shopware/trunk/engine/Shopware/Plugins/Default/Core/Debug/Bootstrap.php

@@ -9,4 +9,8 @@

);
$this->subscribeEvent($event);
$form = $this->Form();
$form->setElement('text', 'AllowIP', array('label'=>'Auf IP beschränken','value'=>''));
$form->save();
return true;
}

@@ -24,4 +28,9 @@

}
$config = Shopware()->Plugins()->Core()->Debug()->Config();
if (!empty($config->AllowIP) && strpos($config->AllowIP, $_SERVER['REMOTE_ADDR'])===false){
return;
}
if(!empty($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'],'FirePHP/')!==false) {
$writer = new Zend_Log_Writer_Firebug();


/shopware/trunk/engine/Shopware/Plugins/Default/Core/Benchmark/Bootstrap.php

@@ -5,4 +5,5 @@

protected $start_time = null;
protected $start_memory = null;
public $customBenchmark;
public function init()

@@ -24,7 +25,21 @@

);
$this->subscribeEvent($event);
$event = $this->createEvent(
'Enlight_Bootstrap_InitResource_Benchmark',
'onInitResourceBenchmark'
);
$this->subscribeEvent($event);
return true;
}
public static function onInitResourceBenchmark(Enlight_Event_EventArgs $args)
{
$instance = Shopware()->Plugins()->Core()->Benchmark();
$benchmark = new Shopware_Components_Benchmark_Container();
$instance->customBenchmark = $benchmark;
return $benchmark;
}
public static function onStartDispatch(Enlight_Event_EventArgs $args)
{

@@ -34,4 +49,5 @@

public function onBenchmarkEvent(Enlight_Event_EventArgs $args)
{
if(empty($this->results))
{

@@ -51,7 +67,33 @@

$this->logTemplate();
$this->logController();
$this->logCustom();
}
}
public function logCustom(){
$results = array();
if (empty($this->customBenchmark)) return;
$benchmarks = $this->customBenchmark->getBenchmarks();
$results[] = array('name', 'memory', 'time');
if (!empty($benchmarks)){
foreach ($benchmarks as $bench){
if (($bench->stopped==true)){
$totalRam += $bench->stop_ram-$bench->start_ram;
$totalTime += $bench->end-$bench->start;
$results[] = array(
0 => $bench->label,
1 => $this->formatMemory($bench->stop_ram-$bench->start_ram),
2 => $this->formatTime($bench->end-$bench->start)
);
}
}
$results[] = array(
0 => "Total",
1 => $this->formatMemory($totalRam),
2 => $this->formatTime($totalTime)
);
Shopware()->Log()->table(array("Benchmark Custom",$results));
}
}
public function logTemplate()
{


/shopware/trunk/engine/Shopware/Plugins/Default/Core/Cron/Bootstrap.php

@@ -42,10 +42,3 @@

}
public function getCapabilities()
{
return array(
'install' => true,
'update' => true
);
}
}


/shopware/trunk/engine/Shopware/Plugins/Default/Core/ViewportForward/Bootstrap.php

@@ -27,4 +27,5 @@

switch ($viewport)
{
case 'shopware.php':
case 'sViewport,sale':
$url = $args->getRequest()->getPathInfo();


/shopware/trunk/engine/Shopware/Plugins/Default/Core/CronStock/Bootstrap.php

@@ -81,9 +81,5 @@

if(empty($articles)) return;
//$job->inform_template = 'sARTICLESTOCK';
//$job->inform_mail = 'hl@shopware.de';
$template = clone Shopware()->Config()->Templates->{$job->inform_template};
$template->tomail = $job->inform_mail;

@@ -111,10 +107,3 @@

}
public function getCapabilities()
{
return array(
'install' => true,
'update' => true
);
}
}


/shopware/trunk/engine/Shopware/Plugins/Default/Core/CronRating/Bootstrap.php

@@ -89,11 +89,4 @@

}
}
public function getCapabilities()
{
return array(
'install' => true,
'update' => true
);
}
}


/shopware/trunk/engine/Shopware/Plugins/Default/Core/Api/Bootstrap.php

@@ -27,7 +27,9 @@

{
$api = new sAPI();
$api->sSystem = Shopware()->System();
$api->sSystem = $api;
$api->sDB = Shopware()->Adodb();
$api->sPath = Shopware()->OldPath();
$api->sCONFIG = Shopware()->Config();
return $api;

@@ -73,4 +75,6 @@

*/
var $sResource = array();
var $sCONFIG;
function Import(){


/shopware/trunk/engine/Shopware/Plugins/Default/Core/ControllerBase/Bootstrap.php

@@ -15,9 +15,9 @@

public static function onPostDispatch(Enlight_Event_EventArgs $args)
{
if(!$args->getSubject()->Request()->isDispatched()){
return;
}
if($args->getSubject()->Request()->getModuleName()!='frontend'){
return;
$request = $args->getSubject()->Request();
$response = $args->getSubject()->Response();
if(!$request->isDispatched()||$response->isException()||$request->getModuleName()!='frontend') {
return;
}

@@ -26,5 +26,5 @@

$view->setNoCache(true);
$view->Controller = $args->getSubject()->Request()->getControllerName();
$view->sBasketQuantity = $plugin->getBasketQuantity();
$view->sBasketAmount = $plugin->getBasketAmount();


/shopware/trunk/engine/Shopware/Bootstrap.php

@@ -75,9 +75,34 @@

Enlight_Components_Session::setId($session_id);
}
$config = $this->getResource('Config');
if(!empty($config->SessionByDb)) {
$config_save_handler = array(
if($this->hasResource('Front')&&Shopware()->Front()->Request()) {
$request = Shopware()->Front()->Request();
$path = rtrim($request->getBasePath(),'/').'/';
$host = $request->getHttpHost()=='localhost' ? null : '.'.$request->getHttpHost();
} else {
$config = $this->getResource('Config');
$path = rtrim(str_replace($config->get('Host'), '', $config->get('BasePath')),'/').'/';
$host = $config->get('Host')=='localhost' ? null : '.'.$config->get('Host');
}
$config_session = Shopware()->getOption('session') ? Shopware()->getOption('session') : array();
$config_session['cookie_path'] = $path;
$config_session['cookie_domain'] = $host;
if(empty($config_session['name'])) {
$config_session['name'] = 'SHOPWARESID';
}
if(!isset($config_session['cookie_lifetime'])) {
$config_session['cookie_lifetime'] = 0;
}
if(!isset($config_session['use_trans_sid'])) {
$config_session['use_trans_sid'] = 0;
}
if(!isset($config_session['gc_probability'])) {
$config_session['gc_probability'] = 1;
}
if(!isset($config_session['save_handler']) || $config_session['save_handler'] == 'db') {
$config_save_handler = array(
'db' => $this->getResource('Db'),
'name' => 's_core_sessions',

@@ -88,23 +113,7 @@

);
Enlight_Components_Session::setSaveHandler(new Enlight_Components_Session_SaveHandler_DbTable($config_save_handler));
}
if($this->hasResource('Front')&&Shopware()->Front()->Request()) {
$request = Shopware()->Front()->Request();
$path = rtrim($request->getBasePath(),'/').'/';
$host = $request->getHttpHost()=='localhost' ? null : '.'.$request->getHttpHost();
} else {
$path = rtrim(str_replace($config->get('Host'), '', $config->get('BasePath')),'/').'/';
$host = $config->get('Host')=='localhost' ? null : '.'.$config->get('Host');
}
$config_session = array(
'name' => 'SHOPWARESID',
'cookie_lifetime' => 0,
//'cookie_path' => rtrim(str_replace($config->get('Host'), '', $config->get('BasePath')),'/').'/',
//'cookie_domain' => '.'.$config->get('Host')
'cookie_path' => $path,
'cookie_domain' => $host
);
unset($config_session['save_handler']);
}
Enlight_Components_Session::start($config_session);

@@ -161,5 +170,5 @@

protected function initSnippets()
{
if(!$this->issetResource('Db')) {
if(!$this->issetResource('Db')||!$this->issetResource('Shop')) {
return null;
}

@@ -169,5 +178,4 @@

$snippet->setCache($this->getResource('Cache'));
$snippet->setShop($this->getResource('Shop'));
$snippet->setNamespace('frontend');
return $snippet;

@@ -271,4 +279,10 @@

'lifetime' => 3600
);
}
if(!empty($config['backend'])) {
$backend = $config['backend'];
} else {
$backend = 'File';
}

@@ -289,15 +303,33 @@

$backendOptions = array(
'slow_backend' => 'File',
'fast_backend' => 'Apc',
'fast_backend' => 'Memcached',
'slow_backend_options' => $backendOptions,
'fast_backend_options' => array()
);
$cache = Zend_Cache::factory('Core', 'Two Levels', $frontendOptions, $backendOptions);
$backendOptions = array(
'servers' => array(
array(
'host' => 'localhost',
'port' => 11211,
'persistent' => true,
'weight' => 1,
'timeout' => 5,
'retry_interval' => 15,
'status' => true,
//'failure_callback' => ''
)
),
'compression' => false,
'compatibility' => false
);
$cache = Zend_Cache::factory('Core', 'Memcached', $frontendOptions, $backendOptions);
*/
$cache = Zend_Cache::factory('Core', $backend, $frontendOptions, $backendOptions);
$cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions);
Shopware_Models_Shop::setCache($cache);
Zend_Db_Table_Abstract::setDefaultMetadataCache($cache);
Zend_Locale_Data::setCache($cache);
return $cache;
}


/shopware/trunk/engine/Shopware/Models/Shop.php

@@ -172,5 +172,4 @@

{
self::$_cache = $cache;
Zend_Locale_Data::setCache($cache);
}


/shopware/trunk/engine/Shopware/Models/Snippet.php

@@ -8,5 +8,5 @@

public function getNamespace()
{
return $this->_section[0];
return $this->_sectionColum[0]=='namespace' ? $this->_section[0] : null;
}
}


/shopware/trunk/engine/Shopware/Components/Cron/CronManager.php

@@ -6,9 +6,7 @@

$job->previous = $job->next;
$job->next = strtotime($job->next);
do
{
do {
$job->next += $job->interval;
}
while($job->next<time());
} while($job->next<time());
$job->next = $job->next;
$job->start = time();

@@ -50,10 +48,10 @@

{
try {
$this->startCronJob($job);
Shopware()->Events()->notifyUntil($job->getName(), $job);
$this->endCronJob($job);
if($this->startCronJob($job)) {
Shopware()->Events()->notifyUntil($job->getName(), $job);
$this->endCronJob($job);
}
} catch (Exception $e) {
$job->data = array('error'=>$e->__toString());
$job->data = array('error'=>(string) $e);
$this->stopCronJob($job);
}

@@ -89,5 +87,7 @@

';
$job = Shopware()->Db()->fetchRow($sql, array(date('Y-m-d H:i:s', time())));
if(!$job) return null;
if(!$job) {
return null;
}
$name = 'Shopware_CronJob_'.str_replace(' ','',ucwords(str_replace('_',' ',$job['name'])));


/shopware/trunk/engine/Shopware/Components/Snippet/SnippetManager.php

@@ -4,32 +4,34 @@

protected $locale;
protected $shop;
protected $namespace;
protected $cache;
protected $snippets;
protected $snippetMerge;
protected $snippets;
public function getSnippet($namespace=null)
public function getSnippet($namespace)
{
$localeId = $this->locale->getId();
$shopId = $this->shop->getId();
$namespace = $namespace==null ? $this->namespace : $namespace;
if(!isset($this->snippets[$localeId][$namespace])) {
$this->snippets[$localeId][$namespace] = new Shopware_Models_Snippet(array(
'section' => array($namespace, $localeId, $shopId),
'extends' => array(array($namespace, 1, $shopId), array($namespace, 1, 1)),
'cache' => $this->cache
));
if(empty($namespace)) {
if(!isset($this->snippetMerge)) {
$this->snippetMerge = new Shopware_Models_Snippet(array(
'sectionColum' => array('localeID', 'shopID'),
'section' => array($localeId, $shopId),
'extends' => array(array(1, $shopId), array(1, 1)),
'cache' => $this->cache
));
}
return $this->snippetMerge;
} else {
if(!isset($this->snippets[$localeId][$namespace])) {
$this->snippets[$localeId][$namespace] = new Shopware_Models_Snippet(array(
'section' => array($namespace, $localeId, $shopId),
'extends' => array(array($namespace, 1, $shopId), array($namespace, 1, 1)),
'cache' => $this->cache
));
}
return $this->snippets[$localeId][$namespace];
}
return $this->snippets[$localeId][$namespace];
}
public function setNamespace($namespace)
{
$this->namespace = $namespace;
return $this;
}
public function setShop(Shopware_Models_Shop $shop)
{


/shopware/trunk/engine/Shopware/Components/Document.php

@@ -192,4 +192,5 @@

//var_dump($this->_view);
$data = $this->_template->fetch("base.tpl",$this->_view);
$data = str_replace("<!--NewPage-->","<pagebreak/>",$data);
$data = preg_replace('#(<script[^>]*?>.*?</script>)|(<style[^>]*?>.*?</style>)|<!--[^\[].*?-->#msi' ,'$1$2', $data);
$data = str_replace("-->","",$data);

@@ -206,5 +207,5 @@

if ($this->_compatibilityMode == false){
if ($this->_preview == true || !$this->_documentHash){
include("engine/Enlight/Vendor/mpdf/mpdf.php");
include_once(Shopware()->OldPath()."engine/Enlight/Vendor/mpdf/mpdf.php");
$mpdf = new mPDF("win-1252","A4","","",$this->_document["left"],$this->_document["right"],$this->_document["top"],$this->_document["bottom"]);
$mpdf->WriteHTML(utf8_encode($data));

@@ -213,5 +214,5 @@

}else {
$path = Shopware()->OldPath()."files/documents"."/".$this->_documentHash.".pdf";
include("engine/Enlight/Vendor/mpdf/mpdf.php");
include_once(Shopware()->OldPath()."engine/Enlight/Vendor/mpdf/mpdf.php");
$mpdf = new mPDF("win-1252","A4","","",$this->_document["left"],$this->_document["right"],$this->_document["top"],$this->_document["bottom"]);
$mpdf->WriteHTML(utf8_encode($data));


/shopware/trunk/engine/Shopware/Components/Benchmark/Point.php

@@ -0,0 +1,23 @@

<?php
class Shopware_Components_Benchmark_Point
{
public $start;
public $end;
public $label;
public $start_ram;
public $stop_ram;
public $stopped = false;
public function Start($label){
$this->label = $label;
$this->start = microtime(true);
$this->start_ram = memory_get_peak_usage(true);
return $this;
}
public function Stop(){
$this->stopped = true;
$this->end = microtime(true);
$this->stop_ram = memory_get_peak_usage(true);
}
}


/shopware/trunk/engine/Shopware/Components/Benchmark/Container.php

@@ -0,0 +1,15 @@

<?php
class Shopware_Components_Benchmark_Container
{
protected $Benchmarks;
public function Start($label){
$object = new Shopware_Components_Benchmark_Point();
$object->Start($label);
$this->Benchmarks[] = $object;
return $object;
}
public function getBenchmarks(){
return $this->Benchmarks;
}
}


/shopware/trunk/engine/Shopware/Components/Plugin/Bootstrap.php

@@ -36,5 +36,5 @@

$this->deleteConfig();
$this->deleteMenuItems();
$this->unsubscribeCron();
return true;
}

@@ -133,5 +133,5 @@

$method,
get_class($this).'::'.$listener,
$typ,
$type,
$position,
$this->getId()

@@ -164,4 +164,30 @@

$form->load();
return $form;
}
public function subscribeCron($name, $action, $interval=86400, $active=1, $next=null, $start=null, $end=null)
{
if (empty($next)) {
$next = date('Y-m-d H:i:s', time());
}
if (empty($start)) {
$start = date('Y-m-d H:i:s', time()-86400);
}
if (empty($end)) {
$end = date('Y-m-d H:i:s', time()-86400);
}
$sql = '
INSERT INTO s_crontab (`name`, `action`, `next`, `start`, `interval`, `active`, `end`, `pluginID`)
VALUES (?,?,?,?,?,?,?,?)
';
Shopware()->Db()->query($sql, array(
$name, $action, $next, $start, $interval, $active, $end, $this->getId()
));
}
public function unsubscribeCron()
{
$sql = 'DELETE FROM `s_crontab` WHERE `pluginID`=?';
Shopware()->Db()->query($sql, $this->getId());
}


/shopware/trunk/engine/Shopware/Controllers/Frontend/Newsletter.php

@@ -26,5 +26,5 @@

protected function sendMail($recipient, $template, $optin=false)
{
$mail = clone Shopware()->System()->Mail();
$mail = clone Shopware()->Mail();
$mail->IsHTML($template['ishtml']);


/shopware/trunk/engine/Shopware/Controllers/Frontend/Search.php

@@ -4,21 +4,24 @@

public function indexAction()
{
if (Shopware()->System()->sCheckLicense("","",Shopware()->System()->sLicenseData["sFUZZY"]) == false || $this->request()->sSearchMode=="supplier"){
if (!Shopware()->License()->checkLicense('sFUZZY') || !empty($this->Request()->sSearchMode)) {
return $this->forward("search");
}else {
} else {
return $this->forward("searchFuzzy");
}
}
public function searchAction(){
if ($this->request()->sSearchMode=="supplier"){
$variables = Shopware()->Modules()->Articles()->sGetArticlesBySupplier();
$this->request()->setParam('sSearch',urldecode(Shopware()->System()->_GET['sSearchText']));
}else {
$variables = Shopware()->Modules()->Articles()->sGetArticlesByName("a.topseller DESC","","",$this->request()->sSearch);
public function searchAction()
{
if ($this->Request()->sSearchMode=="supplier"){
$variables = Shopware()->Modules()->Articles()->sGetArticlesByName("a.name ASC","","supplier",urldecode($this->Request()->sSearch));
$this->Request()->setParam('sSearch',urldecode($this->Request()->sSearchText));
} elseif ($this->Request()->sSearchMode=="newest"){
$variables = Shopware()->Modules()->Articles()->sGetArticlesByName("a.datum DESC","","newest",urldecode($this->Request()->sSearch));
$this->Request()->setParam('sSearch',urldecode($this->Request()->sSearchText));
} else {
$variables = Shopware()->Modules()->Articles()->sGetArticlesByName("a.topseller DESC","","",urldecode($this->Request()->sSearch));
}
foreach ($variables["sPerPage"] as $perPageKey => &$perPage){
$perPage["link"] = str_replace("sPage=".$this->request()->sPage,"sPage=1",$perPage["link"]);
$perPage["link"] = str_replace("sPage=".$this->Request()->sPage,"sPage=1",$perPage["link"]);
}
if (!empty($variables["sArticles"])){

@@ -39,12 +42,15 @@

$this->View()->sSearchResults = $articles;
$this->View()->sSearchResultsNum = empty($variables["sNumberArticles"]) ? count($articles) : $variables["sNumberArticles"];
$this->View()->sSearchTerm = $this->request()->sSearch;
$this->View()->sSearchTerm = urldecode($this->Request()->sSearch);
$this->View()->sPages = $variables["sPages"];
$this->View()->sPage = $this->request()->sPage;
$this->View()->sPerPage = $variables["sPerPage"];
$this->View()->sNumberPages = $variables["sNumberPages"];
$this->View()->sPage = $this->Request()->sPage;
$this->view->loadTemplate('frontend/search/index.tpl');
}
public function searchFuzzyAction(){
public function searchFuzzyAction()
{
// Load configuration

@@ -205,10 +211,8 @@

}
foreach (array("price","category","supplier","propertygroup") as $property){
$sLinks['sFilter'][$property] .= $sLinks['sFilter']['__'];
}
//$sLinks['sSort'] = Shopware()->System()->rewriteLink(array(2=>$sLinks['sSort']),true);
$sLinks['sSupplier'] = $sLinks['sSort'];

@@ -216,6 +220,6 @@

}
protected function searchFuzzyCheck($Config){
protected function searchFuzzyCheck($Config)
{
if(!empty($Config['sSearch'])&&strlen($Config['sSearch'])>=(empty(Shopware()->Config()->sMINSEARCHLENGHT) ? 2 : (int) Shopware()->Config()->sMINSEARCHLENGHT))
{

@@ -275,20 +279,21 @@

}
protected function searchFuzzyInit(){
$Config["sMainCategoryID"] = Shopware()->System()->sLanguageData[Shopware()->System()->sLanguage]["parentID"] ? Shopware()->System()->sLanguageData[Shopware()->System()->sLanguage]["parentID"] : Shopware()->Config()->sCATEGORYPARENT;
$Config['sFilter']['supplier'] = (int) $this->request()->sFilter_supplier;
$Config['sFilter']['category'] = (int) $this->request()->sFilter_category;
$Config['sFilter']['price'] = (int) $this->request()->sFilter_price;
$Config['sFilter']['propertygroup'] = $this->request()->sFilter_propertygroup;
$Config['sSort'] = (int) $this->request()->sSort;
if(!empty($this->request()->sPage))
$Config['sPage'] = (int) $this->request()->sPage;
protected function searchFuzzyInit()
{
$Config["sMainCategoryID"] = Shopware()->Shop()->get('parentID');
$Config['sFilter']['supplier'] = (int) $this->Request()->sFilter_supplier;
$Config['sFilter']['category'] = (int) $this->Request()->sFilter_category;
$Config['sFilter']['price'] = (int) $this->Request()->sFilter_price;
$Config['sFilter']['propertygroup'] = $this->Request()->sFilter_propertygroup;
$Config['sSort'] = (int) $this->Request()->sSort;
if(!empty($this->Request()->sPage))
$Config['sPage'] = (int) $this->Request()->sPage;
else
$Config['sPage'] = 0;
if(!empty($this->request()->sPerPage))
$Config['sPerPage'] = (int) $this->request()->sPerPage;
if(!empty($this->Request()->sPerPage))
$Config['sPerPage'] = (int) $this->Request()->sPerPage;
elseif(!empty(Shopware()->Config()->sFUZZYSEARCHRESULTSPERPAGE))
$Config['sPerPage'] = (int) Shopware()->Config()->sFUZZYSEARCHRESULTSPERPAGE;

@@ -296,8 +301,9 @@

$Config['sPerPage'] = 8;
$Config['sOrder'] = intval($this->request()->sOrder);
$Config['sSearch'] = urldecode(trim(str_replace("+"," ",strip_tags(htmlspecialchars_decode(html_entity_decode(stripslashes($this->request()->sSearch),ENT_QUOTES))))));
if(function_exists('mb_detect_encoding')&&function_exists('mb_check_encoding') && mb_detect_encoding($Config['sSearch'])=='UTF-8'&&mb_check_encoding($Config['sSearch'], 'UTF-8')){
$Config['sOrder'] = intval($this->Request()->sOrder);
$Config['sSearch'] = urldecode(trim(strip_tags(htmlspecialchars_decode(stripslashes($this->Request()->sSearch)))));
if(function_exists('mb_detect_encoding') && function_exists('mb_check_encoding')
&& mb_detect_encoding($Config['sSearch'])=='UTF-8' && mb_check_encoding($Config['sSearch'], 'UTF-8')) {
$Config['sSearch'] = utf8_decode($Config['sSearch']);
}


/shopware/trunk/engine/Shopware/Controllers/Frontend/Checkout.php

@@ -64,4 +64,5 @@

$this->View()->sPayment = $this->getSelectedPayment();
$this->View()->sDispatch = $this->getSelectedDispatch();
$this->View()->sPayments = $this->getPayments();
$this->View()->sDispatches = $this->getDispatches();
$this->View()->sBasket = $this->getBasket();

@@ -81,9 +82,9 @@

$this->View()->sShowEsdNote = $this->getEsdNote();
$this->View()->sDispatchNoOrder = $this->getDispatchNoOrder();
$this->View()->sRegisterFinished = !empty($this->session['sRegisterFinished']);
$this->saveTemporaryOrder();
if($this->getMinimumCharge())
{
if($this->getMinimumCharge()) {
return $this->forward('cart');
}

@@ -497,4 +498,5 @@

$basket['sAmountTax'] = round($basket['AmountWithTaxNumeric']-$basket['AmountNetNumeric'], 2);
$basket['sAmountWithTax'] = round($basket['AmountWithTaxNumeric'], 2);
}
else

@@ -504,4 +506,5 @@

$basket['sShippingcosts'] = $shippingcosts['brutto'];
$basket['sAmount'] = $basket['AmountNumeric'];
$basket['sAmountTax'] = round($basket['AmountNumeric']-$basket['AmountNetNumeric'], 2);
}

@@ -671,12 +674,16 @@

} elseif(!empty($this->session['sPaymentID'])) {
$payment = $this->admin->sGetPaymentMeanById($this->session['sPaymentID'], $this->View()->sUserData);
if($payment)
{
return $payment;
}
}
if (!empty($payment['table'])) {
$paymentClass = $this->admin->sInitiatePaymentClass($payment);
if (!empty($paymentClass)) {
$payment['data'] = $paymentClass->getData();
}
}
if(!empty($payment)) {
return $payment;
}
$payments = $this->getPayments();
if(empty($payments))
{
if(empty($payments)) {
unset($this->session['sPaymentID']);
return false;


/shopware/trunk/engine/Shopware/Controllers/Frontend/Note.php

@@ -2,17 +2,20 @@

class Shopware_Controllers_Frontend_Note extends Enlight_Controller_Action
{
public function indexAction(){
public function indexAction()
{
$this->View()->sNotes = Shopware()->Modules()->Basket()->sGetNotes();
}
public function deleteAction(){
if (!empty($this->request()->sDelete)){
Shopware()->Modules()->Basket()->sDeleteNote($this->request()->sDelete);
public function deleteAction()
{
if (!empty($this->Request()->sDelete)){
Shopware()->Modules()->Basket()->sDeleteNote($this->Request()->sDelete);
}
$this->forward("Index");
$this->forward('index');
}
public function addAction(){
$ordernumber = $this->request()->ordernumber;
public function addAction()
{
$ordernumber = $this->Request()->ordernumber;
if (!empty($ordernumber)){
$articleID = Shopware()->Modules()->Articles()->sGetArticleIdByOrderNumber($ordernumber);

@@ -23,5 +26,5 @@

}
}
$this->forward("Index");
$this->forward('index');
}
}


/shopware/trunk/engine/Shopware/Controllers/Frontend/Ticket.php

@@ -205,5 +205,5 @@

$email = empty($email) ? '' : $email;
$subject = empty($subject) ? '' : $subject;
$ticket_typeID = empty($ticket_typeID) ? 0 : $ticket_typeID;
$ticket_typeID = empty($formData[0]["ticket_typeID"]) ? 0 : $formData[0]["ticket_typeID"];
$message = nl2br($message);
$additional = serialize($aAdditional);


/shopware/trunk/engine/Shopware/Controllers/Frontend/Register.php

@@ -59,6 +59,8 @@

$this->saveShippingAction();
}
$this->savePaymentAction();
if(isset($this->post['payment']))
{
$this->savePaymentAction();
}
if(empty($this->error))
{

@@ -171,6 +173,5 @@

}
if(!empty($this->session['sCountry'])&&!isset($this->View()->register->billing->form_data->country))
{
if(!empty($this->session['sCountry'])&&empty($this->View()->register->billing->form_data->country)) {
$this->View()->register->billing->form_data->country = $this->session['sCountry'];
}

@@ -386,4 +387,8 @@

$checkData = $this->admin->sValidateStep2($rules, false);
if(empty($checkData['sErrorMessages'])) {
$this->session['sCountry'] = (int) $this->session['sRegister']['billing']['country'];
}
return $checkData;
}


/shopware/trunk/engine/Shopware/Controllers/Frontend/Forms.php

@@ -29,12 +29,4 @@

if (!empty(Shopware()->Config()->CaptchaColor) && !$voteConfirmed) {
/*$captcha = str_replace(' ', '', strtoupper($this->Request()->sCaptcha));
if ($key = array_search($captcha, Shopware()->Session()->sCaptchaCodes)){
Shopware()->Session()->sCaptcha = "";
unset(Shopware()->Session()->sCaptchaCodes[$key]);
} else {
$this->FormElements["sCaptcha"]['class'] = " instyle_error";
$this->Errors["e"]["sCaptcha"] = true;
}*/
$captcha = str_replace(' ', '', strtolower($this->Request()->sCaptcha));
$rand = $this->Request()->getPost('sRand');

@@ -194,5 +186,5 @@

$mail->Body = strip_tags($mail->Body);
$mail->Body = htmlentities($mail->Body);
$mail->Body = $mail->Body;
$mail->ClearAddresses();


/shopware/trunk/engine/Shopware/Controllers/Backend/Newsletter.php

@@ -466,4 +466,5 @@

';
$user = Shopware()->Db()->fetchRow($sql);
$user['email'] = $user['newsletter'] = $email;
}


/shopware/trunk/engine/Shopware/Controllers/Backend/Plugin.php

@@ -102,8 +102,8 @@

$path = explode('/', $this->Request()->getParam('path'));
if(!empty($path[0])) {
$select->where('namespace=?', $path[0]);
$select->where('namespace=?', $path[1]);
}
if(!empty($path[1])) {
$select->where('source=?', $path[1]);
$select->where('source=?', $path[0]);
}
} elseif($this->Request()->getParam('search')) {

@@ -177,4 +177,5 @@

if(empty($node)) {
$this->refreshList();
/*
$select = $this->db->select()
->distinct()

@@ -183,12 +184,25 @@

;
$list = $this->db->fetchAll($select);
*/
$list = array(
array('id'=>'Default', 'text'=>'Core Plugins', 'leaf'=>false, 'expended'=>true),
array('id'=>'Community', 'text'=>'CommunityStore', 'leaf'=>false, 'expended'=>true),
array('id'=>'Local', 'text'=>'Lokale Plugins', 'leaf'=>false, 'expended'=>true));
foreach ($list as $key=>$row) {
$list[$key]['leaf'] = false;
$list[$key]['expanded'] = true;
$list[$key]['children'] = array(
array('id'=>$row['id'].'/Default', 'text'=>'Default', 'leaf'=>true),
array('id'=>$row['id'].'/Community', 'text'=>'Community', 'leaf'=>true),
array('id'=>$row['id'].'/Local', 'text'=>'Local', 'leaf'=>true, 'expended'=>true)
);
$select = $this->db->select()
->distinct()
->from('s_core_plugins', array('namespace as id', 'namespace as text'))
->order(array('namespace'));
$children = $this->db->fetchAll($select);
foreach ($children as &$child){
$child["leaf"] = true;
$list[$key]['expanded'] = false;
$child["id"] = $list[$key]["id"]."/".$child["id"];
}
$list[$key]['children'] = $children;
}

@@ -366,5 +380,8 @@

$message = implode("\n", $message);
} else {
$this->decompressFile($upload->getFileName());
if (!$this->decompressFile($upload->getFileName())){
echo htmlspecialchars(Zend_Json::encode(array('success'=>false, 'message'=>"Stellen Sie sicher, dass Schreibrechte auf die Ordner engine/Shopware/Plugins/Community [Frontend|Backend|Core) gesetzt sind.")));
exit;
}
}
} catch (Exception $e) {

@@ -383,5 +400,5 @@

$target = Shopware()->AppPath().'Plugins/Community';
if(!is_dir($target)||!is_writable($target)) {
throw new Enlight_Exception('Target ist not writable');
return false;
}
$filter = new Zend_Filter_Decompress( array(


/shopware/trunk/engine/Shopware/Controllers/Backend/Auth.php

@@ -35,10 +35,10 @@

$checkLogin = Shopware()->Plugins()->Backend()->Auth()->login($username, $password);
if ($checkLogin){
echo json_encode(array("success"=>true, "location"=>$this->Front()->Router()->assemble(array("controller"=>"index"))));
}else {
echo json_encode(array("success"=>false));
echo Zend_Json::encode(array("success"=>true, "location"=>$this->Front()->Router()->assemble(array("controller"=>"index"))));
} else {
echo Zend_Json::encode(array('success'=>false));
}
} else {
echo json_encode(array("success"=>false));
echo Zend_Json::encode(array('success'=>false));
}
}


/shopware/trunk/engine/Shopware/Controllers/Backend/Export.php

@@ -107,5 +107,5 @@

{
if(empty($row['group'.$i])||empty($row['option'.$i])) continue;
$row['additionaltext'][] = $row['group$i'].': '.$row['option$i'];
$row['additionaltext'][] = $row['group'.$i].': '.$row['option'.$i];
}
$row['additionaltext'] = implode(', ',$row['additionaltext']);


/shopware/trunk/engine/Shopware/Controllers/Backend/Snippet.php

@@ -167,5 +167,5 @@

$data["oldNamespace"] = $namespace;
foreach ($getSnippets as $snippet) {
$data[$snippet["locale"]."-".$snippet["id"]] = utf8_encode(($snippet["value"]));
$data[$snippet["locale"]."-".$snippet["id"]] = $this->getFormatSnippetForGrid(($snippet["value"]));
}
echo json_encode(array("snippet"=>array($data)));

@@ -501,14 +501,21 @@

/////////////////////////////////////////
private function getFormatSnippetForSave($string) {
$cur_encoding = mb_detect_encoding($string);
if($cur_encoding == "UTF-8" && mb_check_encoding($in_str,"UTF-8")){
$string = utf8_decode($string);
}
$string = html_entity_decode($string);
if(function_exists('mb_convert_encoding')) {
$string = mb_convert_encoding($string, 'HTML-ENTITIES', 'UTF-8');
}
$string = str_replace(array('&nbsp;', '&amp;', '&lt;', '&gt;'), array('%%%SHOPWARE_NBSP%%%', '%%%SHOPWARE_AMP%%%', '%%%SHOPWARE_LT%%%', '%%%SHOPWARE_GT%%%'), $string);
$string = html_entity_decode(utf8_decode($string), ENT_NOQUOTES);
$string = str_replace(array('%%%SHOPWARE_NBSP%%%', '%%%SHOPWARE_AMP%%%', '%%%SHOPWARE_LT%%%', '%%%SHOPWARE_GT%%%'), array('&nbsp;', '&amp;', '&lt;', '&gt;'), $string);
return $string;
}
private function getFormatSnippetForGrid($string) {
$string = utf8_encode($string); // will do htmlentities in js renderer
$string = str_replace(array('&nbsp;', '&amp;', '&lt;', '&gt;'), array('%%%SHOPWARE_NBSP%%%', '%%%SHOPWARE_AMP%%%', '%%%SHOPWARE_LT%%%', '%%%SHOPWARE_GT%%%'), $string);
if(function_exists('mb_convert_encoding')) {
$string = mb_convert_encoding($string, 'UTF-8', 'HTML-ENTITIES');
} else {
$string = utf8_encode(html_entity_decode($string, ENT_NOQUOTES));
}
$string = str_replace(array('%%%SHOPWARE_NBSP%%%', '%%%SHOPWARE_AMP%%%', '%%%SHOPWARE_LT%%%', '%%%SHOPWARE_GT%%%'), array('&nbsp;', '&amp;', '&lt;', '&gt;'), $string);
return $string;
}


/shopware/trunk/engine/Shopware/Controllers/Backend/Cache.php

@@ -2,6 +2,14 @@

class Shopware_Controllers_Backend_Cache extends Enlight_Controller_Action
{
public function preDispatch()
{
if(!in_array($this->Request()->getActionName(), array('index', 'skeleton'))) {
Shopware()->Plugins()->Controller()->ViewRenderer()->setNoRender();
}
}
public function indexAction()
{
$this->View()->CacheInformation = $this->getCacheInformation();
}

@@ -10,6 +18,6 @@

}
public function snippetsAction(){
$this->View()->setTemplate();
public function snippetsAction()
{
$this->clearTemplateCache();
$this->clearConfigCache();

@@ -17,12 +25,12 @@

}
public function articlesAction(){
$this->View()->setTemplate();
public function articlesAction()
{
$this->clearAdodbCache();
$this->clearPluginCache();
}
public function configAction(){
$this->View()->setTemplate();
public function configAction()
{
$this->clearTemplateCache();
$this->clearConfigCache();

@@ -33,5 +41,4 @@

public function clearCacheAction()
{
$this->View()->setTemplate();
$cache = $this->Request()->getPost('cache');

@@ -46,5 +53,4 @@

public function clearStaticCacheAction()
{
$this->View()->setTemplate();
$cache = $this->Request()->getPost('cache');

@@ -73,6 +79,23 @@

}
protected function clearRewriteCache(){
Shopware()->Db()->query("UPDATE s_core_config SET value = '' WHERE name = 'sROUTERLASTUPDATE'");
protected function clearRewriteCache()
{
//Shopware()->Db()->query("UPDATE s_core_config SET value = '' WHERE name = 'sROUTERLASTUPDATE'");
$cache = (empty(Shopware()->Config()->RouterCache)||Shopware()->Config()->RouterCache<360) ? 86400 : (int) Shopware()->Config()->RouterCache;
$sql = 'SELECT value FROM s_core_config WHERE name=?';
$last_update = Shopware()->Db()->fetchOne($sql, array('sROUTERLASTUPDATE'));
if(!empty($last_update)) {
$last_update = unserialize($last_update);
}
if(empty($last_update)||!is_array($last_update)) {
$last_update = array();
}
foreach ($last_update as $shopId=>$time) {
$last_update[$shopId] = date('Y-m-d H:i:s', min(strtotime($time), time()-$cache));
}
$sql = 'UPDATE `s_core_config` SET `value`=? WHERE `name`=?';
Shopware()->Db()->query($sql, array(serialize($last_update), 'sROUTERLASTUPDATE'));
Shopware()->Cache()->clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG, array('Shopware_RouterRewrite'));
}

@@ -93,3 +116,40 @@

Shopware()->Cache()->clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG, array('Shopware_Adodb'));
}
public function getCacheInformation()
{
$cache = Shopware()->Cache();
$cache_config = Shopware()->getOption('cache');
$info['backend'] = empty($cache_config['backend']) ? 'File' : $cache_config['backend'];
if(!empty($cache_config['backendOptions']['cache_dir'])){
$info['cache_dir'] = $cache_config['backendOptions']['cache_dir'];
} elseif(!empty($cache_config['backendOptions']['slow_backend_options']['cache_dir'])){
$info['cache_dir'] = $cache_config['backendOptions']['slow_backend_options']['cache_dir'];
}
if(!empty($info['cache_dir'])) {
$info['cache_size'] = 0;
$info['cache_files'] = 0;
$dir_iterator = new RecursiveDirectoryIterator($info['cache_dir']);
$iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST);
foreach ($iterator as $entry) {
if(!$entry->isFile()) {
continue;
}
$info['cache_size'] += $entry->getSize();
$info['cache_files']++;
}
$info['cache_size'] = $this->encodeSize($info['cache_size']);
$info['free_space'] = disk_free_space($info['cache_dir']);
$info['free_space'] = $this->encodeSize($info['free_space']);
$info['cache_dir'] = str_replace(Shopware()->DocPath(), '', $info['cache_dir']);
}
return $info;
}
public static function encodeSize($bytes)
{
$types = array( 'B', 'KB', 'MB', 'GB', 'TB' );
for( $i = 0; $bytes >= 1024 && $i < ( count( $types ) -1 ); $bytes /= 1024, $i++ );
return( round( $bytes, 2 ) . ' ' . $types[$i] );
}
}


/shopware/trunk/engine/Shopware/Controllers/Backend/Index.php

@@ -4,8 +4,4 @@

public function indexAction()
{
//$menu = $this->_getMenu();
Shopware()->Plugins()->Core()->License()->checkLicense('sPREMIUM');
$this->View()->Menu = Shopware()->Menu();
$this->View()->PremiumLicence = Shopware()->License()->checkLicense('sPREMIUM');

@@ -36,4 +32,6 @@

$connectString = "?domain=".Shopware()->Config()->Host."&pairing=".Shopware()->Config()->AccountId;
$this->View()->accountUrl = "https://support.shopware2.de/account2/index.php$connectString";
Shopware()->Db()->query("UPDATE s_core_config SET value = '3.5.3' WHERE name='sVERSION'");
}

@@ -57,20 +55,15 @@

protected function _getRssFeed()
{
$channel = new Zend_Feed_Rss('http://www.shopware.de/rss.xml');
$jsrss = '[';
$i = 0;
foreach ($channel as $item) {
$i++;
$title = utf8_decode($item->title());
$link = urlencode($item->link);
$jsData[] = "[$i,'$title','$link']";
if ($i>=5) break;
}
$jsrss .= implode(',',$jsData);
$jsrss .= '];';
if ($i==0){
unset($jsrss);
}
return $jsrss;
$data = array();
try {
$channel = new Zend_Feed_Rss('http://www.shopware.de/rss.xml');
foreach ($channel as $i => $item) {
$data[] = array($i+1, (string) $item->title, (string) $item->link);
if ($i>3) {
break;
}
}
} catch (Exception $e) { }
return Zend_Json::encode($data);;
}


/shopware/trunk/engine/core/class/sArticles.php

@@ -441,5 +441,4 @@

public function sGetArticlesByName ($orderBy="a.topseller DESC",$category=0,$mode="",$search="")
{
if (empty($search) && !empty($this->sSYSTEM->_GET['sSearch'])){
$search = $this->sSYSTEM->_GET['sSearch'];

@@ -447,4 +446,8 @@

if (empty($search) && empty($mode)){
return false;
}
if ($mode=="supplier"){
$search = intval($search);
}

@@ -462,7 +465,9 @@

$sPage = !empty($this->sSYSTEM->_GET['sPage']) ? (int) $this->sSYSTEM->_GET['sPage'] : 1;
if ($this->sSYSTEM->_GET['sPerPage']){
$this->sSYSTEM->_SESSION['sPerPage'] = $this->sSYSTEM->_GET['sPerPage'];
$this->sSYSTEM->_SESSION['sPerPage'] = (int) $this->sSYSTEM->_GET['sPerPage'];
}
if ($this->sSYSTEM->_POST['sPerPage']){
$this->sSYSTEM->_SESSION['sPerPage'] = (int) $this->sSYSTEM->_POST['sPerPage'];
}

@@ -485,20 +490,53 @@

$ret = array();
$sql_search = $this->sSYSTEM->sDB_CONNECTION->qstr("%$sSearch%");
if(!empty($this->sSYSTEM->sLanguageData[$this->sSYSTEM->sLanguage]["id"]))
{
$sql_add_where = "
OR (
'{$this->sSYSTEM->sLanguageData[$this->sSYSTEM->sLanguage]["id"]}'=t.languageID
AND (t.name LIKE '%$sSearch%' OR t.keywords LIKE '%$sSearch%')
)
";
$sql_add_join = "
LEFT JOIN s_articles_translations AS t
ON a.id=t.articleID
";
}
if (empty($mode)){
$sSearch = explode(" ",$sSearch);
if (!is_array($sSearch)){
$sSearch = array(0=>$sSearch);
}
foreach ($sSearch as $sqlSearch){
$sql_search[] = $this->sSYSTEM->sDB_CONNECTION->qstr("%$sqlSearch%");
}
if(!empty($this->sSYSTEM->sLanguageData[$this->sSYSTEM->sLanguage]["id"]))
{
foreach ($sSearch as $search){
$search = $this->sSYSTEM->sDB_CONNECTION->qstr("%$search%");
$sql_add_where .= "
OR (
'{$this->sSYSTEM->sLanguageData[$this->sSYSTEM->sLanguage]["id"]}'=t.languageID
AND (t.name LIKE $search OR t.keywords LIKE $search)
)
";
}
$sql_add_join = "
LEFT JOIN s_articles_translations AS t
ON a.id=t.articleID
";
}
$sqlFields = array("s.name","a.name","a.keywords","d.ordernumber");
$sql_search_fields .= " OR (";
foreach ($sql_search as $term){
$sql_search_fields .= " (";
foreach ($sqlFields as $field){
$sql_search_fields .= "$field LIKE $term OR ";
}
$sql_search_fields .= " 1 != 1) AND ";
}
$sql_search_fields .= "1 = 1 ) ";
}elseif($mode=="supplier") {
unset($sql_add_join);
unset($sql_add_where);
unset($sql_search_fields);
$sql_search_fields = "OR a.supplierID = $search";
$sql_search[0] = "";
}elseif($mode=="newest"){
unset($sql_add_join);
unset($sql_add_where);
unset($sql_search_fields);
$sql_search_fields = "OR 1 = 1";
$sql_search[0] = "";
}
$sql = "
SELECT DISTINCT

@@ -514,18 +552,11 @@

LEFT JOIN
s_articles_groups_value agv
ON agv.ordernumber LIKE $sql_search
ON agv.ordernumber LIKE ?
AND agv.articleID=a.id
$sql_add_join
WHERE
(
s.name LIKE $sql_search
OR
a.name LIKE $sql_search
OR
a.keywords LIKE $sql_search
OR
agv.valueID
OR
d.ordernumber LIKE $sql_search
agv.valueID
$sql_search_fields
$sql_add_where

@@ -541,5 +572,6 @@

$ret["sArticles"] = $this->sSYSTEM->sDB_CONNECTION->CacheGetCol($this->sSYSTEM->sCONFIG['sCACHESEARCH'],$sql);
$ret["sArticles"] = $this->sSYSTEM->sDB_CONNECTION->CacheGetCol($this->sSYSTEM->sCONFIG['sCACHESEARCH'],$sql,array($sql_search[0]));
$sql = "

@@ -547,7 +579,7 @@

COUNT(DISTINCT a.id)
FROM
s_articles as a
s_articles a
INNER JOIN
s_articles_details as d
s_articles_details d
INNER JOIN
s_articles_supplier s

@@ -556,18 +588,11 @@

LEFT JOIN
s_articles_groups_value agv
ON agv.ordernumber LIKE $sql_search
ON agv.ordernumber LIKE ?
AND agv.articleID=a.id
$sql_add_join
WHERE
(
s.name LIKE $sql_search
OR
a.name LIKE $sql_search
OR
a.keywords LIKE $sql_search
OR
agv.valueID
OR
d.ordernumber LIKE $sql_search
agv.valueID
$sql_search_fields
$sql_add_where

@@ -580,6 +605,5 @@

";
$sCountArticles = $this->sSYSTEM->sDB_CONNECTION->CacheGetOne($this->sSYSTEM->sCONFIG['sCACHESEARCH'],$sql);
$sCountArticles = $this->sSYSTEM->sDB_CONNECTION->CacheGetOne($this->sSYSTEM->sCONFIG['sCACHESEARCH'],$sql,array($sql_search[0]));
if ($sCountArticles >= $limitNew && !empty($mode)){

@@ -599,4 +623,6 @@

// Make Array with page-structure to render in template
$pages = array();
$this->sSYSTEM->_GET["sSearch"] = urlencode(urldecode($this->sSYSTEM->_GET["sSearch"]));
if($numberPages>1)
{

@@ -650,5 +676,4 @@

} // -- for every possible value
} // -- Bulding array
$ret['sPages'] = $pages;
$ret['sPerPage'] = $arrayArticlesToShow;

@@ -1537,9 +1562,10 @@

* @return array
*/
public function sGetAffectedSuppliers ($id = null,$limit=30)
public function sGetAffectedSuppliers ($id=null, $limit=null)
{
if(empty($id))
$id = $this->sSYSTEM->_GET["sCategory"];
$id = (int) $id;
$id = empty($id) ? (int) $this->sSYSTEM->_GET["sCategory"] : (int) $id;
$configLimit = $this->sSYSTEM->sCONFIG['sMAXSUPPLIERSCATEGORY'] ? $this->sSYSTEM->sCONFIG['sMAXSUPPLIERSCATEGORY'] : 30;
$limit = empty($limit) ? $configLimit : (int) $limit;
$sql = "
SELECT s.id AS id, COUNT(*) AS countSuppliers, s.name AS name, s.img AS image

@@ -1556,4 +1582,5 @@

) IS NULL
AND a.changetime <= NOW()
AND a.mode = 0
AND ac.categoryID = ?
AND ac.articleID = a.id

@@ -1685,5 +1712,5 @@

$sql = "
SELECT a.id AS articleID, IF( od.quantity = NULL , SUM( od.quantity + pseudosales ) , SUM( pseudosales ) ) AS quantity
SELECT a.id AS articleID, SUM(IFNULL(od.quantity, 0))+pseudosales AS quantity
FROM $categorySelect s_articles a
LEFT JOIN s_order_details od

@@ -2706,28 +2733,27 @@

// SHOPWARE 2.1 //
// =================================================.
$sArticleID = intval($this->sSYSTEM->_GET['sArticle']);
$sCategoryID = intval($this->sSYSTEM->_GET['sCategory']);
if(empty($sCategoryID)||$sCategoryID==$this->sSYSTEM->sLanguageData[$this->sSYSTEM->sLanguage]["parentID"])
{
$sCategoryParent = $this->sSYSTEM->sLanguageData[$this->sSYSTEM->sLanguage]["parentID"];
while (!empty($sCategoryParent))
{
$sCategoryID = $sCategoryParent;
$sql = "
SELECT c.id FROM s_articles_categories a, s_categories c
WHERE a.articleID=$sArticleID
AND c.parent=$sCategoryParent
AND a.categoryID = c.id
ORDER BY a.id ASC LIMIT 1
";
$sCategoryParent = $this->sSYSTEM->sDB_CONNECTION->CacheGetOne($this->sSYSTEM->sCONFIG['sCACHEARTICLE'],$sql,false,"article_".$getArticle["articleID"]);
}
$this->sSYSTEM->_GET['sCategory'] = $sCategoryID;
}
$sArticleID = intval($this->sSYSTEM->_GET['sArticle']);
$sCategoryID = intval($this->sSYSTEM->_GET['sCategory']);
if(empty($sCategoryID)||$sCategoryID==$this->sSYSTEM->sLanguageData[$this->sSYSTEM->sLanguage]["parentID"])
{
$sCategoryParent = $this->sSYSTEM->sLanguageData[$this->sSYSTEM->sLanguage]["parentID"];
while (!empty($sCategoryParent))
{
$sCategoryID = $sCategoryParent;
$sql = "
SELECT c.id FROM s_articles_categories a, s_categories c
WHERE a.articleID=$sArticleID
AND c.parent=$sCategoryParent
AND a.categoryID = c.id
ORDER BY a.id ASC LIMIT 1
";
$sCategoryParent = $this->sSYSTEM->sDB_CONNECTION->CacheGetOne($this->sSYSTEM->sCONFIG['sCACHEARTICLE'],$sql,false,"article_".$getArticle["articleID"]);
}
$this->sSYSTEM->_GET['sCategory'] = $sCategoryID;
}
if(!empty($sCategoryID)) {
$getArticle["categoryID"] = $sCategoryID;
}
// Get article accessories
// =================================================.

@@ -3130,5 +3156,8 @@

$getArticle["linkBasket"] = $this->sSYSTEM->sCONFIG['sBASEFILE']."?sViewport=basket&sAdd=".$getArticle["ordernumber"];
$getArticle["linkDetails"] = $this->sSYSTEM->sCONFIG['sBASEFILE']."?sViewport=detail&sArticle=".$getArticle["articleID"];
$getArticle["linkDetailsRewrited"] = $this->sSYSTEM->sMODULES['sCore']->sRewriteLink($this->sSYSTEM->sCONFIG['sBASEFILE']."?sViewport=detail&sDetails=".$getArticle["articleID"],$getArticle["articleName"]);
if(!empty($sCategoryID)) {
$getArticle["linkDetails"] .= '&sCategory='.$sCategoryID;
}
$getArticle["linkDetailsRewrited"] = $this->sSYSTEM->sMODULES['sCore']->sRewriteLink($getArticle["linkDetails"], $getArticle["articleName"]);
$getArticle["linkNote"] = $this->sSYSTEM->sCONFIG['sBASEFILE']."?sViewport=note&sAdd=".$getArticle["ordernumber"];

@@ -3280,4 +3309,5 @@

*/
public function sFormatPrice ($price){
$price = str_replace(",",".",$price);
$price = $this->sRound($price);
$price = str_replace(".",",",$price); // Replaces points with commas

@@ -3664,5 +3694,5 @@

$text = str_replace(chr(0xa0), " ", $text);
$text = preg_replace('/\s\s+/', ' ', $text);
$text = htmlspecialchars($text);
$text = htmlspecialchars($text, ENT_COMPAT, 'ISO-8859-1', false);
$text = trim($text);
eval($this->sSYSTEM->sCallHookPoint("sArticles.php_sOptimizeText_BeforeEnd"));

@@ -3979,18 +4009,24 @@

break;
case "liverand":
$promotion = $this->sGetLiveShopping('random', 0, $promotion, true);
$promotion['liveshoppingData'] = $promotion['liveshoppingData'][0];
if (count($promotion)>1 && !empty($promotion['liveshoppingData'])) $promote[] = $promotion;
$cacheSQL = null;
if (!empty($this->sCachePromotions)){
$cacheSQL = 'AND lv.articleID NOT IN ('.implode(', ',$this->sCachePromotions).')';
}
$promotion = $this->sGetLiveShopping('random', 0, $promotion, true, $cacheSQL);
if (!empty($promotion['liveshoppingData'][0])) {
$promotion['liveshoppingData'] = $promotion['liveshoppingData'][0];
$promote[] = $promotion;
}
break;
case "liverandcat":
$promotion = $this->sGetLiveShopping('random', $category, $promotion, true);
$promotion['liveshoppingData'] = $promotion['liveshoppingData'][0];
if (count($promotion)>1 && !empty($promotion['liveshoppingData'])) $promote[] = $promotion;
$cacheSQL = null;
if (!empty($this->sCachePromotions)){
$cacheSQL = 'AND lv.articleID NOT IN ('.implode(', ',$this->sCachePromotions).')';
}
$promotion = $this->sGetLiveShopping('random', $category, $promotion, true, $cacheSQL);
if (!empty($promotion['liveshoppingData'][0])) {
$promotion['liveshoppingData'] = $promotion['liveshoppingData'][0];
$promote[] = $promotion;
}
break;
} // end switch

@@ -4246,5 +4282,10 @@

}
}else {
$referenceImages = array_flip(explode("/",$sCombination));
$referenceImages = array_flip(explode("$$",$sCombination));
foreach ($referenceImages as $key => $v){
$keyNew = str_replace("/","",$key);
unset($referenceImages[$key]);
$referenceImages[$keyNew] = $v;
}
$sArticle = array("images"=>$sArticle,"image"=>array());
foreach ($sArticle["images"] as $k => $value){

@@ -4275,10 +4316,13 @@

foreach ($sArticle["images"] as $imageKey => $image){
if (empty($image["src"]["original"])) continue;
if (empty($image["src"]["original"]) || empty($image["relations"])) {
continue;
}
$string = $image["relations"];
// Parsing string
$stringParsed = array();
// $string = str_replace(" ","",$string);
preg_match("/(.*){(.*)}/",$string,$stringParsed);
$relation = $stringParsed[1];
$available = explode("/",$stringParsed[2]);


/shopware/trunk/engine/core/class/sBasket.php

@@ -39,4 +39,5 @@

*/
public function sCheckBasketQuantities(){
$sql = "SELECT
SUM(s_articles_details.instock - s_order_basket.quantity) AS diffStock, s_order_basket.ordernumber

@@ -46,4 +47,5 @@

AND s_articles_details.ordernumber = s_order_basket.ordernumber AND s_order_basket.modus = 0 AND
s_order_basket.sessionID = ?
GROUP BY s_order_basket.ordernumber
";
$sql2 = "SELECT

@@ -53,5 +55,7 @@

s_articles.mode = 0 AND s_articles.active = 1 AND s_articles.laststock = 1 AND s_articles.id = s_articles_groups_value.articleID
AND s_articles_groups_value.ordernumber = s_order_basket.ordernumber AND s_order_basket.modus = 0 AND
s_order_basket.sessionID = ?";
s_order_basket.sessionID = ?
GROUP BY s_order_basket.ordernumber
";
$result = $this->sSYSTEM->sDB_CONNECTION->GetAll($sql,array($this->sSYSTEM->sSESSION_ID));
$result2 = $this->sSYSTEM->sDB_CONNECTION->GetAll($sql2,array($this->sSYSTEM->sSESSION_ID));

@@ -129,8 +133,4 @@

*/
public function sInsertDiscount (){
if (!empty($this->sSYSTEM->sCONFIG['sPREMIUMSHIPPIUNG']))
{
return true;
}
// Get possible discounts
$getDiscounts = $this->sSYSTEM->sDB_CONNECTION->GetAll("

@@ -156,8 +156,4 @@

if ($this->sSYSTEM->sCurrency["factor"]){
/*$factor = $this->sSYSTEM->sCurrency["factor"];
echo "B: $basketAmount<br />";
$basketAmount /= $factor;
echo "A: $basketAmount<br />";*/
}else {
$factor = 1;

@@ -608,8 +604,8 @@

*/
public function sInsertSurcharge(){
if (!empty($this->sSYSTEM->sCONFIG['sPREMIUMSHIPPIUNG']))
/*if (!empty($this->sSYSTEM->sCONFIG['sPREMIUMSHIPPIUNG']))
{
return true;
}
}*/
$name = isset($this->sSYSTEM->sCONFIG['sSURCHARGENUMBER']) ? $this->sSYSTEM->sCONFIG['sSURCHARGENUMBER']: "SURCHARGE";

@@ -781,12 +777,12 @@

"UPDATE s_order_basket
SET
lastviewport = '".$sViewport."',
useragent = '".$_SERVER["HTTP_USER_AGENT"]."',
lastviewport = ?,
useragent = ?,
userID = '".intval($this->sSYSTEM->_SESSION['sUserId'])."'
WHERE sessionID='".$this->sSYSTEM->sSESSION_ID."'");
WHERE sessionID=?",array($sViewport,$_SERVER["HTTP_USER_AGENT"],array($this->sSYSTEM->sSESSION_ID)));
// Refresh basket-prices
$basketData = $this->sSYSTEM->sDB_CONNECTION->GetAll("
SELECT id,modus, quantity FROM s_order_basket
WHERE sessionID='".$this->sSYSTEM->sSESSION_ID."'");
WHERE sessionID=?",array($this->sSYSTEM->sSESSION_ID));
foreach ($basketData as $basketContent){
if (empty($basketContent["modus"])){

@@ -803,6 +799,6 @@

{
$rs = $this->sSYSTEM->sDB_CONNECTION->Execute("
DELETE FROM s_order_basket WHERE sessionID='".$this->sSYSTEM->sSESSION_ID."' AND modus=3
");
DELETE FROM s_order_basket WHERE sessionID=? AND modus=3
",array($this->sSYSTEM->sSESSION_ID));
}
// Check for surcharges

@@ -825,7 +821,5 @@

"; // Modified 3.0.2 - 07.01.2009 - STH
$sql = Enlight()->Events()->filter('Shopware_Modules_Basket_GetBasket_FilterSQL', $sql, array('subject'=>$this));
eval($this->sSYSTEM->sCallHookPoint("sBasket.php_sGetBasket_AfterSQL"));
$getArticles = $this->sSYSTEM->sDB_CONNECTION->GetAll($sql,array($this->sSYSTEM->sSESSION_ID));

@@ -1107,5 +1101,5 @@

{
$this->sSYSTEM->_COOKIE["sUniqueID"] = md5(uniqid(rand()));
setcookie("sUniqueID", $this->sSYSTEM->_COOKIE["sUniqueID"], Time()+(86400*360));
setcookie("sUniqueID", $this->sSYSTEM->_COOKIE["sUniqueID"], Time()+(86400*360), '/');
}

@@ -1149,7 +1143,10 @@

foreach ($getArticles as $key => $value){
// Article-Image
$getArticles[$key] = $this->sSYSTEM->sMODULES['sArticles']->sGetPromotionById("fix",0,$value["articleID"]);
$getArticles[$key] = $this->sSYSTEM->sMODULES['sArticles']->sGetPromotionById("fix", 0, (int) $value["articleID"]);
if(empty($getArticles[$key])) {
$this->sDeleteNote($value["id"]);
unset($getArticles[$key]);
continue;
}
$getArticles[$key]["articlename"] = $getArticles[$key]["articleName"];
$getArticles[$key]["image"] = $this->sSYSTEM->sMODULES['sArticles']->sGetArticlePictures($value["articleID"],true,$this->sSYSTEM->sCONFIG['sTHUMBBASKET']);

@@ -1445,12 +1442,15 @@

$sql = "
UPDATE s_order_basket SET $sqlLive quantity=$quantity, price=$brutto, netprice=$netprice, currencyFactor=".$this->sSYSTEM->sCurrency["factor"]." WHERE id=$id AND
sessionID='".$this->sSYSTEM->sSESSION_ID."' AND modus=0
";
$sql = Enlight()->Events()->filter('Shopware_Modules_Basket_UpdateArticle_FilterSqlDefault',$sql, array('subject'=>$this,'id'=>$id,"quantity"=>$quantity,"price"=>$brutto,"netprice"=>$netprice,"currencyFactor"=>$this->sSYSTEM->sCurrency["factor"]));
eval($this->sSYSTEM->sCallHookPoint("sBasket.php_sUpdateArticle_Start6"));
$update = $this->sSYSTEM->sDB_CONNECTION->Execute($sql);
//if($this->sSYSTEM->_GET["sViewport"] == 'basket' || empty($queryNewPrice['liveshoppingData'])){
$sql = "
UPDATE s_order_basket SET $sqlLive quantity=$quantity, price=$brutto, netprice=$netprice, currencyFactor=".$this->sSYSTEM->sCurrency["factor"]." WHERE id=$id AND
sessionID='".$this->sSYSTEM->sSESSION_ID."' AND modus=0
";
$sql = Enlight()->Events()->filter('Shopware_Modules_Basket_UpdateArticle_FilterSqlDefault',$sql, array('subject'=>$this,'id'=>$id,"quantity"=>$quantity,"price"=>$brutto,"netprice"=>$netprice,"currencyFactor"=>$this->sSYSTEM->sCurrency["factor"]));
eval($this->sSYSTEM->sCallHookPoint("sBasket.php_sUpdateArticle_Start6"));
$update = $this->sSYSTEM->sDB_CONNECTION->Execute($sql);
/*}else {
$update = true;
}*/
}

@@ -1558,12 +1558,14 @@

$queryNewPrice = true;
if (empty($this->sSYSTEM->sCurrency["factor"])) $this->sSYSTEM->sCurrency["factor"] = 1;
$sql = "
UPDATE s_order_basket SET $sqlLive quantity=$quantity,price=$brutto, netprice=$netprice, currencyFactor=".$this->sSYSTEM->sCurrency["factor"]." WHERE id=$id AND
sessionID='".$this->sSYSTEM->sSESSION_ID."' AND modus=0
";
$sql = Enlight()->Events()->filter('Shopware_Modules_Basket_UpdateArticle_FilterSqlConfigurator',$sql, array('subject'=>$this,'id'=>$id,"quantity"=>$quantity,"price"=>$brutto,"netprice"=>$netprice,"currencyFactor"=>$this->sSYSTEM->sCurrency["factor"]));
$update = $this->sSYSTEM->sDB_CONNECTION->Execute($sql);
//if($this->sSYSTEM->_GET["sViewport"] == 'basket' || empty($queryNewPrice['liveshoppingData'])){
$sql = "
UPDATE s_order_basket SET $sqlLive quantity=$quantity,price=$brutto, netprice=$netprice, currencyFactor=".$this->sSYSTEM->sCurrency["factor"]." WHERE id=$id AND
sessionID='".$this->sSYSTEM->sSESSION_ID."' AND modus=0
";
$sql = Enlight()->Events()->filter('Shopware_Modules_Basket_UpdateArticle_FilterSqlConfigurator',$sql, array('subject'=>$this,'id'=>$id,"quantity"=>$quantity,"price"=>$brutto,"netprice"=>$netprice,"currencyFactor"=>$this->sSYSTEM->sCurrency["factor"]));
$update = $this->sSYSTEM->sDB_CONNECTION->Execute($sql);
/*}else {
$update = true;
}*/
}

@@ -2008,5 +2010,5 @@

'".$this->sSYSTEM->_SESSION["sPartner"]."',
".(empty($sUpPriceValues) ? "''" : $this->sSYSTEM->sDB_CONNECTION->qstr(serialize($sUpPriceValues))).",
".$this->sSYSTEM->sDB_CONNECTION->qstr(implode($pictureRelations,"/"))."
".$this->sSYSTEM->sDB_CONNECTION->qstr(implode($pictureRelations,"$$"))."
)
";


/shopware/trunk/engine/core/class/sExport.php

@@ -183,4 +183,8 @@

$this->sCustomergroup = $this->sGetCustomergroup($this->sSettings["customergroupID"]);
$shop = new Shopware_Models_Shop($this->sLanguage['id'], $this->sMultishop['locale'], $this->sCurrency['id']);
$shop->registerResources(Shopware()->Bootstrap());
$this->sSystem->sCONFIG = $shop->Config();
}

@@ -930,5 +934,5 @@

$payment['surcharge'] = round($payment['surcharge']*$this->sCurrency["factor"],2);
if ($this->sSystem->sCheckLicense("","",$this->sSystem->sLicenseData["sPREMIUM"])&&!empty($this->sSystem->sCONFIG['sPREMIUMSHIPPIUNG']))
if (!empty($this->sSystem->sCONFIG['sPREMIUMSHIPPIUNG']))
{
return $this->sGetArticlePremiumShippingcosts($article,$payment,$country,$dispatch);


/shopware/trunk/engine/core/class/sCategories.php

@@ -55,4 +55,5 @@

FROM s_categories c
WHERE parent = ?
AND c.active = 1
AND (
SELECT categoryID

@@ -108,4 +109,5 @@

FROM s_categories c
WHERE parent = ?
AND c.active = 1
AND (
SELECT categoryID

@@ -117,5 +119,4 @@

FROM s_articles_categories
WHERE categoryID = c.id
AND c.active = 1
LIMIT 1
)


/shopware/trunk/engine/core/class/sAdmin.php

@@ -293,4 +293,32 @@

}
if(!empty($user['additional']['countryShipping']['id'])) {
$sql = "
SELECT 1
FROM s_core_paymentmeans p
LEFT JOIN s_core_paymentmeans_subshops ps
ON ps.subshopID=?
AND ps.paymentID=p.id
LEFT JOIN s_core_paymentmeans_countries pc
ON pc.countryID=?
AND pc.paymentID=p.id
WHERE (ps.paymentID IS NOT NULL OR (SELECT paymentID FROM s_core_paymentmeans_subshops WHERE paymentID=p.id LIMIT 1) IS NULL)
AND (pc.paymentID IS NOT NULL OR (SELECT paymentID FROM s_core_paymentmeans_countries WHERE paymentID=p.id LIMIT 1) IS NULL)
AND id=?
";
$active = $this->sSYSTEM->sDB_CONNECTION->GetOne($sql, array(
$this->sSYSTEM->sSubShop['id'],
$user['additional']['countryShipping']['id'],
$id
));
if(empty($active)) {
$resetPayment = $this->sSYSTEM->sCONFIG["sPAYMENTDEFAULT"];
}
}
if ($resetPayment && $user["additional"]["user"]["id"]){
$updateAccount = $this->sSYSTEM->sDB_CONNECTION->Execute("

@@ -340,5 +368,9 @@

$countryID = (int) $user['additional']['countryShipping']['id'];
$subshopID = (int) $this->sSYSTEM->sSubShop['id'];
if (empty($countryID)){
$countryID = $this->sSYSTEM->sDB_CONNECTION->GetOne("
SELECT id FROM s_core_countries ORDER BY position ASC LIMIT 1
");
}
$sql = "
SELECT p.*

@@ -763,5 +795,5 @@

$sErrorFlag = array();
list($sErrorMessages,$sErrorFlag) = Enlight()->Events()->filter('Shopware_Modules_Admin_ValidateStep2_FilterResult', array($sErrorMessages,$sErrorFlag), array('edit'=>$edit,'rules'=>$rules,'subject'=>$this,"post"=>$this->sSYSTEM->_POST));
list($sErrorMessages,$sErrorFlag) = Enlight()->Events()->filter('Shopware_Modules_Admin_ValidateStep2_FilterStart', array($sErrorMessages,$sErrorFlag), array('edit'=>$edit,'rules'=>$rules,'subject'=>$this,"post"=>$this->sSYSTEM->_POST));
$p = $this->sSYSTEM->_POST;

@@ -851,5 +883,5 @@

}
}
list($sErrorMessages,$sErrorFlag) = Enlight()->Events()->filter('Shopware_Modules_Admin_ValidateStep2_FilterResult', array($sErrorMessages,$sErrorFlag), array('edit'=>$edit,'rules'=>$rules,'subject'=>$this,"post"=>$this->sSYSTEM->_POST));
list($sErrorMessages,$sErrorFlag) = Enlight()->Events()->filter('Shopware_Modules_Admin_ValidateStep2Shipping_FilterResult', array($sErrorMessages,$sErrorFlag), array('edit'=>$edit,'rules'=>$rules,'subject'=>$this,"post"=>$this->sSYSTEM->_POST));
return array("sErrorFlag"=>$sErrorFlag,"sErrorMessages"=>$sErrorMessages);

@@ -1982,9 +2014,9 @@

public function sGetShippingcosts($countryInfo,$surcharge=0,$surchargestring=""){
if (!empty($this->sSYSTEM->sCONFIG['sPREMIUMSHIPPIUNG']))
{
if (!empty($this->sSYSTEM->sCONFIG['sPREMIUMSHIPPIUNG'])){
return $this->sGetPremiumShippingcosts($countryInfo);
}
if(empty($countryInfo)) {
return false;
}
if ($surchargestring){

@@ -3277,5 +3309,5 @@

$sql = 'SELECT SUM((CAST(price as DECIMAL(10,2))*quantity)/currencyFactor) as amount FROM s_order_basket WHERE sessionID=? GROUP BY sessionID';
$amount = $this->sSYSTEM->sDB_CONNECTION->GetOne($sql, array($this->sSYSTEM->sSESSION_ID));
$sql = '
SELECT basketdiscount

@@ -3283,10 +3315,10 @@

WHERE groupID=?
AND basketdiscountstart<=?
ORDER BY basketdiscountstart ASC
ORDER BY basketdiscountstart DESC
';
$basket_discount = $this->sSYSTEM->sDB_CONNECTION->GetOne($sql,array($this->sSYSTEM->sUSERGROUPDATA['id'], $amount));
if(!empty($basket_discount)){
$percent = $basket_discount;
$basket_discount = round($basket_discount/100*$amount, 2);


/shopware/trunk/engine/core/class/sCore.php

@@ -86,8 +86,8 @@

parse_str($query, $query);
if(!empty($title))
{
if(!empty($title)) {
$query['title'] = $title;
}
$query['module'] = 'frontend';
return Shopware()->Front()->Router()->assemble($query);
}


/shopware/trunk/engine/core/class/sRewriteTable.php

@@ -33,5 +33,5 @@

' '=>'-',
'+'=>'-',
'&'=>'-',
//'&'=>'-',
'à'=>'a',
'á'=>'a',

@@ -41,9 +41,18 @@

'ú'=>'u',
'ë'=>'e',
'ç'=>'c',
'Ç'=>'C',
'&#351;'=>'s',
'&#350;'=>'S',
'&#287;'=>'g',
'&#286;'=>'G',
'&#304;'=>'i',
);
$path = html_entity_decode($path);
$path = str_replace(array_keys($replace), array_values($replace), $path);
if($remove_ds)
if($remove_ds) {
$path = str_replace('/', '-', $path);
}
$path = preg_replace('/&[a-z0-9#]+;/i', '', $path);
$path = preg_replace('#[^0-9a-z-_./]#i','',$path);
$path = preg_replace('/-+/','-',$path);

@@ -70,4 +79,5 @@

$this->sCreateRewriteTableContent();
}
protected function sCreateRewriteTableCleanup()
{

@@ -96,5 +106,5 @@

DELETE ru FROM s_core_rewrite_urls ru
LEFT JOIN s_categories c
ON ru.org_path LIKE CONCAT('sViewport=cat&sCategory=', c.id)
ON c.id = REPLACE(ru.org_path, 'sViewport=cat&sCategory=', '')
AND c.external=''
WHERE ru.org_path LIKE 'sViewport=cat&sCategory=%'

@@ -106,5 +116,5 @@

DELETE ru FROM s_core_rewrite_urls ru
LEFT JOIN s_articles a
ON ru.org_path LIKE CONCAT('sViewport=detail&sArticle=', a.id)
ON a.id = REPLACE(ru.org_path, 'sViewport=detail&sArticle=', '')
WHERE ru.org_path LIKE 'sViewport=detail&sArticle=%'
AND a.id IS NULL

@@ -182,6 +192,8 @@

{
if(empty($this->sSYSTEM->sCONFIG['sROUTERARTICLETEMPLATE'])) continue;
if(!empty($this->sSYSTEM->sCONFIG['sROUTERLASTUPDATE'])) {
$sql = 'SELECT value FROM s_core_config WHERE name=?';
$last_update = Shopware()->Db()->fetchOne($sql, array('sROUTERLASTUPDATE'));
if(!empty($last_update)) {
$last_update = unserialize($last_update);
}

@@ -190,9 +202,12 @@

}
if(!empty($last_update[$this->sSYSTEM->sSubShop['id']])) {
$lastupdate = $last_update[$this->sSYSTEM->sSubShop['id']];
$last_update = $last_update[$this->sSYSTEM->sSubShop['id']];
} else {
$lastupdate = '0000-00-00 00:00:00';
}
$last_update = '0000-00-00 00:00:00';
}
$sql = 'UPDATE `s_articles` SET `changetime`= NOW() WHERE `changetime`=?';
Shopware()->Db()->query($sql, array('0000-00-00 00:00:00'));
$sql = '
SELECT a.id, IFNULL(atr.name, a.name) as name, d.ordernumber, d.suppliernumber, s.name as supplier, datum as date, releasedate,

@@ -219,5 +234,5 @@

$this->sSYSTEM->sLanguageData[$this->sSYSTEM->sLanguage]["parentID"],
$this->sSYSTEM->sSubShop['id'],
$lastupdate
$last_update
));
if($result!==false)

@@ -287,4 +302,7 @@

public function sInsertUrl($org_path, $path)
{
if(empty($path) || empty($org_path)) {
return false;
}
$sql_rewrite = 'UPDATE s_core_rewrite_urls SET main=0 WHERE org_path=? AND path!=? AND subshopID=?';
$this->sSYSTEM->sDB_CONNECTION->Execute($sql_rewrite, array($org_path, $path, $this->sSYSTEM->sSubShop['id']));


/shopware/trunk/engine/core/class/viewports/s_support.php

@@ -185,5 +185,7 @@

$mail->Body = html_entity_decode($mail->Body);
$mail->Body = htmlspecialchars_decode($mail->Body);
if (empty($mail->Body)) $mail->Body = " ";
if (strlen($mail->Body)<=1){
$mail->Body = " ";
}
$mail->ClearAddresses();


/shopware/trunk/engine/core/class/sSearch.php

@@ -43,12 +43,5 @@

if(empty($cached_time)||strtotime($cached_time)<strtotime($current_time)-$cache)
{
$sql = '
INSERT INTO s_core_config ( name, value, `group`)
VALUES (?, NOW(), (SELECT id FROM s_core_config_groups WHERE name=?))
ON DUPLICATE KEY UPDATE value=VALUES(value)
';
$this->sDB->Execute($sql, array('sFUZZYSEARCHLASTUPDATE', 'Intelligente Suche'));
{
@ini_set("memory_limt","265M");
@set_time_limit(0);

@@ -61,4 +54,12 @@

{
$this->sDB =& $this->sSYSTEM->sDB_CONNECTION;
$sql = '
INSERT INTO s_core_config ( name, value, `group`)
VALUES (?, NOW(), (SELECT id FROM s_core_config_groups WHERE name=?))
ON DUPLICATE KEY UPDATE value=VALUES(value)
';
$this->sDB->Execute($sql, array('sFUZZYSEARCHLASTUPDATE', 'Intelligente Suche'));
$sql = "
SELECT

@@ -88,5 +89,7 @@

$result = Shopware()->Db()->query($sql);
if(empty($result)) continue;
if(empty($result)) {
continue;
}
for ($i=1,$c=$result->rowCount();$row = $result->fetch();$i++)

@@ -95,5 +98,7 @@

{
$field_keywords = $this->sGetKeywords($row[$field]);
if(empty($field_keywords)) continue;
if(empty($field_keywords)) {
continue;
}
foreach ($field_keywords as &$keyword)
{

@@ -105,4 +110,7 @@

. 'WHERE sk.keyword IN ('.implode(', ',$field_keywords).')';
}
if(empty($keywords)) {
continue;
}
if($i==$c||count($keywords)>5000)
{

@@ -110,4 +118,5 @@

$sql_keywords = 'INSERT IGNORE INTO `s_search_keywords` (`keyword`) VALUES';
$sql_keywords .= ' ('.implode('), (',$keywords).')';
$this->sDB->Execute($sql_keywords);
$keywords = array();


/shopware/trunk/engine/Enlight/Enlight/Hook/HookManager.php

@@ -84,8 +84,6 @@

{
$hooks = $this->getHooks($args->getName(), $args->getMethod(), Enlight_Hook_HookHandler::TypeBefore);
if($hooks)
{
foreach ($hooks as $hook)
{
if($hooks) {
foreach ($hooks as $hook) {
$hook->execute($args);
}

@@ -93,21 +91,17 @@

$hooks = $this->getHooks($args->getName(), $args->getMethod(), Enlight_Hook_HookHandler::TypeReplace);
if($hooks)
{
foreach ($hooks as $hook)
{
if($hooks) {
foreach ($hooks as $hook) {
$args->setReturn($hook->execute($args));
}
}
else
{
} elseif(method_exists($args->getSubject(), 'executeParent')) {
$args->setReturn($args->getSubject()->executeParent($args->getMethod(), $args->getArgs()));
} elseif(method_exists($args->getSubject(), 'excuteParent')) {
$args->setReturn($args->getSubject()->excuteParent($args->getMethod(), $args->getArgs()));
}
$hooks = $this->getHooks($args->getName(), $args->getMethod(), Enlight_Hook_HookHandler::TypeAfter);
if($hooks)
{
foreach ($hooks as $hook)
{
if($hooks) {
foreach ($hooks as $hook) {
$hook->execute($args);
}


/shopware/trunk/engine/Enlight/Enlight/Template/Plugins/modifier.escape.php

@@ -22,35 +22,18 @@

* @return string escaped input string
*/
function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null)
function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $double_encode = false)
{
if(!isset($char_set))
{
if(!isset($char_set)) {
$char_set = mb_internal_encoding();
}
if (!function_exists('mb_str_replace')) {
// simulate the missing PHP mb_str_replace function
function mb_str_replace($needles, $replacements, $haystack)
{
$rep = (array)$replacements;
foreach ((array)$needles as $key => $needle) {
$replacement = $rep[$key];
$needle_len = mb_strlen($needle);
$replacement_len = mb_strlen($replacement);
$pos = mb_strpos($haystack, $needle, 0);
while ($pos !== false) {
$haystack = mb_substr($haystack, 0, $pos) . $replacement
. mb_substr($haystack, $pos + $needle_len);
$pos = mb_strpos($haystack, $needle, $pos + $replacement_len);
}
}
return $haystack;
}
}
switch ($esc_type) {
case 'html':
return htmlspecialchars($string, ENT_QUOTES, $char_set);
return htmlspecialchars($string, ENT_QUOTES, $char_set, $double_encode);
case 'htmlall':
return htmlentities($string, ENT_QUOTES, $char_set);
if(function_exists('mb_convert_encoding')) {
$string = mb_convert_encoding($string, 'HTML-ENTITIES', $char_set);
}
return htmlentities($string, ENT_QUOTES, $char_set, $double_encode);
case 'url':

@@ -90,5 +73,24 @@

return strtr($string, array('\\' => '\\\\', "'" => "\\'", '"' => '\\"', "\r" => '\\r', "\n" => '\\n', '</' => '<\/'));
case 'mail':
case 'mail':
if (!function_exists('mb_str_replace')) {
// simulate the missing PHP mb_str_replace function
function mb_str_replace($needles, $replacements, $haystack)
{
$rep = (array)$replacements;
foreach ((array)$needles as $key => $needle) {
$replacement = $rep[$key];
$needle_len = mb_strlen($needle);
$replacement_len = mb_strlen($replacement);
$pos = mb_strpos($haystack, $needle, 0);
while ($pos !== false) {
$haystack = mb_substr($haystack, 0, $pos) . $replacement
. mb_substr($haystack, $pos + $needle_len);
$pos = mb_strpos($haystack, $needle, $pos + $replacement_len);
}
}
return $haystack;
}
}
// safe way to display e-mail address on a web page
if (function_exists('mb_substr')) {


/shopware/trunk/engine/Enlight/Enlight/Template/Plugins/block.replace.php

@@ -0,0 +1,39 @@

<?php
function smarty_block_replace($params, $content, $smarty, &$repeat, $template)
{
if (is_null($content)) {
return;
}
if (!function_exists('mb_str_replace')) {
// simulate the missing PHP mb_str_replace function
function mb_str_replace($needles, $replacements, $haystack)
{
$rep = (array)$replacements;
foreach ((array)$needles as $key => $needle) {
$replacement = $rep[$key];
$needle_len = mb_strlen($needle);
$replacement_len = mb_strlen($replacement);
$pos = mb_strpos($haystack, $needle, 0);
while ($pos !== false) {
$haystack = mb_substr($haystack, 0, $pos) . $replacement
. mb_substr($haystack, $pos + $needle_len);
$pos = mb_strpos($haystack, $needle, $pos + $replacement_len);
}
}
return $haystack;
}
}
if(empty($params['search'])) {
return $content;
}
if(empty($params['replace'])) {
$params['replace'] = '';
}
if (function_exists('mb_substr')) {
return mb_str_replace($params['search'], $params['replace'], $content);
} else {
return str_replace($params['search'], $params['replace'], $content);
}
}


/shopware/trunk/engine/Enlight/Enlight/Template/Plugins/modifier.truncate.php

@@ -0,0 +1,68 @@

<?php
/**
* Smarty plugin
*
* @package Smarty
* @subpackage PluginsModifier
*/
/**
* Smarty truncate modifier plugin
*
* Type: modifier<br>
* Name: truncate<br>
* Purpose: Truncate a string to a certain length if necessary,
* optionally splitting in the middle of a word, and
* appending the $etc string or inserting $etc into the middle.
*
* @link http://smarty.php.net/manual/en/language.modifier.truncate.php truncate (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
* @param string $string input string
* @param integer $length lenght of truncated text
* @param string $etc end string
* @param boolean $break_words truncate at word boundary
* @param boolean $middle truncate in the middle of text
* @return string truncated string
*/
function smarty_modifier_truncate($string, $length = 80, $etc = '...',
$break_words = false, $middle = false)
{
if ($length == 0)
return '';
if (is_callable('mb_strlen')) {
$string = mb_convert_encoding($string, 'UTF-8', 'HTML-ENTITIES');
if (mb_strlen($string) > $length) {
$length -= min($length, mb_strlen($etc));
if (!$break_words && !$middle) {
$string = preg_replace('/\s+?(\S+)?$/u', '', mb_substr($string, 0, $length + 1));
}
if (!$middle) {
$string = mb_substr($string, 0, $length) . $etc;
} else {
$string = mb_substr($string, 0, $length / 2) . $etc . mb_substr($string, - $length / 2);
}
}
if(mb_internal_encoding()!='UTF-8') {
$string = mb_convert_encoding($string, 'HTML-ENTITIES', 'UTF-8');
$string = html_entity_decode($string, null, mb_internal_encoding());
}
return $string;
}
// $string has no utf-8 encoding
if (strlen($string) > $length) {
$length -= min($length, strlen($etc));
if (!$break_words && !$middle) {
$string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length + 1));
}
if (!$middle) {
return substr($string, 0, $length) . $etc;
} else {
return substr($string, 0, $length / 2) . $etc . substr($string, - $length / 2);
}
} else {
return $string;
}
}
?>


/shopware/trunk/engine/Enlight/Enlight/Template/TemplateResource.php

@@ -19,5 +19,19 @@

$_rdl = preg_quote($this->smarty->right_delimiter);
$_ldl = preg_quote($this->smarty->left_delimiter);
$_block_namespace = $this->getNamespace($filepath);
if(!empty($this->smarty->ignore_namespace)) {
$_block_namespace = null;
} elseif(preg_match("!{$this->_ldl}namespace(\s.+?)?{$this->_rdl}!msi", $source, $_namespace_match)) {
$source = str_replace($_namespace_match[0], '', $source);
if (preg_match("!.?name=(.*?)(?=(\s|$))!", $_namespace_match[1], $_name_match)) {
$_block_namespace = $_name_match[1];
} elseif (strpos($_namespace_match[1], 'ignore') !== false) {
$_block_namespace = null;
} else {
$this->smarty->trigger_error("\"namespace\" missing name attribute"); continue;
}
} else {
$_block_namespace = $this->getNamespace($filepath);
}
while (preg_match("!{$this->_ldl}s(e?)(\s.+?)?{$this->_rdl}(.*?){$this->_ldl}/se?{$this->_rdl}!msi", $source, $_block_match, PREG_OFFSET_CAPTURE)) {

@@ -32,5 +46,10 @@

$_block_force = (bool) preg_match('#\sforce#', $_block_args);
$_block_name = !empty($_match[3]) ? trim($_match[3], '\'"') : $_block_content;
$_block_content = $this->getSnippet($_block_name, $_block_namespace, $_block_default, $_block_force);
if (preg_match("!(.?)(namespace=)(.*?)(?=(\s|$))!", $_block_args, $_match)) {
$_namespace = trim($_match[3], '\'"');
} else {
$_namespace = $_block_namespace;
}
$_block_content = $this->getSnippet($_block_name, $_namespace, $_block_default, $_block_force);
if(!empty($_block_default)) {


/shopware/trunk/engine/Enlight/Enlight/Template/TemplateManager.php

@@ -7,4 +7,5 @@

public $template_old = false;
public $default_resource_type = 'extends';
public $ignore_namespace = false;
public function __construct()

@@ -24,61 +25,7 @@

$this->allow_phptemplates = true;
$this->php_handling = SMARTY_PHP_ALLOW;
$this->allow_php_tag = true;
}
const EXTENDS_APPEND = 'append';
const EXTENDS_PREPEND = 'prepend';
const EXTENDS_REPLACE = 'replace';
const FILTER_POST = 'post';
const FILTER_PRE = 'pre';
const FILTER_OUTPUT = 'output';
const FILTER_VARIABLE = 'variable';
public function registerFilter($callback, $type = self::FILTER_OUTPUT)
{
$this->registered_filters[$type][$this->_get_filter_name($callback)] = $callback;
}
public function unregisterFilter($callback, $type = self::FILTER_OUTPUT)
{
$name = $this->_get_filter_name($callback);
if(isset($this->registered_filters[$type][$name])) {
unset($this->registered_filters[$type][$name]);
}
}
public function loadFilter($name, $type = self::FILTER_OUTPUT)
{
$this->loadFilter($type, $name);
}
const PLUGIN_RESOURCE = 'resource';
const PLUGIN_MODIFIER = 'modifier';
const PLUGIN_FUNCTION = 'function';
const PLUGIN_COMPILER = 'compiler';
const PLUGIN_BLOCK = 'block';
public function registerPlugin($tag, $callback, $type = self::PLUGIN_COMPILER, $cacheable = null, $cache_attr = null)
{
if (isset($this->registered_plugins[$type][$tag])) {
throw new Exception("Plugin tag \"{$tag}\" already registered");
} elseif (!is_callable($callback)) {
throw new Exception("Plugin \"{$tag}\" not callable");
} elseif ($type==self::PLUGIN_RESOURCE) {
$this->_plugins[$type][$tag] = array($callback, false);
} else {
$this->registered_plugins[$type][$tag] = array($callback, (bool) $cacheable);
if (isset($cache_attr)&&in_array($type, array(self::PLUGIN_BLOCK, self::PLUGIN_FUNCTION))) {
$this->registered_plugins[$type][$tag][] = (array) $cache_attr;
}
}
}
public function registerHelper($tag, $class)
{
}
public function setTemplateDir($template_dir)
{

@@ -86,4 +33,16 @@

$template_dir = array_unique($template_dir);
return parent::setTemplateDir($template_dir);
}
public function setTemplateOld($value=true)
{
$this->template_old = (bool) $value;
$this->auto_literal = !$this->template_old;
return $this;
}
public function isTemplateOld()
{
return $this->template_old;
}

@@ -98,16 +57,4 @@

{
return $this->helper_manager;
}
public function setTemplateOld($value=true)
{
$this->template_old = (bool) $value;
$this->auto_literal = !$this->template_old;
return $this;
}
public function isTemplateOld()
{
return $this->template_old;
}


/shopware/trunk/engine/connectors/clickpay/clickpay.class.php

@@ -236,5 +236,4 @@

public function sGetClickPayStatusMessage($statusCode)
{
$sClickPayStatus = array(
0 => 'Offen',

@@ -248,5 +247,10 @@

8 => 'Geldeingang',
9 => 'Geldauszahlung',
10 => 'Buchung fehlgeschlagen'
10 => 'Buchung fehlgeschlagen',
11 => '3-D Secure fehlgeschlagen',
12 => 'User Accepted',
13 => 'InitFolgezahlung',
14 => 'Rückbuchung',
15 => 'Warte auf Zahlungseingang'
);
if(isset($sClickPayStatus[$statusCode]))


/shopware/trunk/engine/connectors/clickpay/form.php

@@ -202,7 +202,10 @@

if($_REQUEST['sStatus']==5) {
$_REQUEST['sAction'] = 'back';
}
elseif(in_array($_REQUEST['sStatus'], array(4, 7, 10, 11))) {
} elseif(in_array($_REQUEST['sStatus'], array(4, 5, 7, 10, 11))) {
$_REQUEST['sAction'] = 'fail';
} elseif(is_numeric($_REQUEST['sStatus']) && $_REQUEST['sStatus'] > 10) {
$_REQUEST['sAction'] = 'fail';
} elseif(in_array($_REQUEST['sStatus'], array(1, 2))) {
$_REQUEST['sAction'] = 'success';
}
}

@@ -373,5 +376,5 @@

<?php else: ?>
<div style="padding:20px 20px 0;height: 30px;">
<?php if(!empty($_REQUEST['sAction'])&&(in_array($_REQUEST['sStatus'],array(5))||$_REQUEST['sAction']=='back')):?>
<?php if(!empty($_REQUEST['sAction'])&&$_REQUEST['sAction']=='back'):?>
<?php echo $sClickPay->sGetSnippet('sClickPayUserAborted');?>
<?php else: ?>


/shopware/trunk/engine/connectors/paypalexpress/DoExpressCheckoutPayment.php

@@ -98,4 +98,5 @@

$params['AMT'] = number_format($amount,2,'.',',');
/*
if(!empty($item_tax_amount)) {
$params['SHIPPINGAMT'] = number_format($shipping,2,'.',',');

@@ -116,4 +117,5 @@

}
}
*/
$params['SHIPTONAME'] = $userData['shippingaddress']['firstname'].' '.$userData['shippingaddress']['lastname'];
$params['SHIPTOSTREET'] = $userData['shippingaddress']['street'].' '.$userData['shippingaddress']['streetnumber'];


/shopware/trunk/engine/connectors/paypalexpress/doPaymentSUser.php

@@ -73,5 +73,5 @@

$params['AMT'] = number_format($amount,2,'.',',');
/*
if(!empty($item_tax_amount)) {
$params['SHIPPINGAMT'] = number_format($shipping,2,'.',',');

@@ -92,5 +92,5 @@

}
}
*/
$params['SHIPTONAME'] = $userData['shippingaddress']['firstname'].' '.$userData['shippingaddress']['lastname'];
$params['SHIPTOSTREET'] = $userData['shippingaddress']['street'].' '.$userData['shippingaddress']['streetnumber'];


/shopware/trunk/engine/connectors/export/.htaccess

@@ -1,3 +1,3 @@

RewriteEngine on
RewriteRule (.*?)/(.*?)/.*? shopware.php?feedID=$1&hash=$2
RewriteRule (.*)/(.*)/.* shopware.php?feedID=$1&hash=$2


/shopware/trunk/engine/connectors/api/api.php

@@ -1,3 +1,5 @@

<?php
require_once(dirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR.'Shopware'.DIRECTORY_SEPARATOR.'Shopware.php');
/**
* Shopware API

@@ -20,7 +22,6 @@

* @version 1.0.0
*/
class sAPI
class sAPI extends Shopware
{
/**
* Zugriff auf adoDB-Objekt

@@ -59,4 +60,7 @@

*/
var $sResource = array();
var $sCONFIG;
/**
* Der Konstruktor lädt Einstellungen / Datenbank-Verbindung und den Shopware - Core

@@ -64,24 +68,22 @@

* @access public
*/
function __construct ()
{
public function __construct ()
{
parent::__construct();
global $ADODB_FETCH_MODE;
$this->sPath = realpath(dirname(__FILE__)."/../../../");
include($this->sPath."/config.php");
require_once ($this->sPath."/engine/core/class/sSystem.php");
//require_once ($this->sPath."/engine/vendor/adodb/adodb.inc.php");
//require_once ("../../vendor/phpmailer/class.phpmailer.php");
//require ($this->sPath."/vendor/smarty/libs/Smarty.class.php");
$this->sSystem = new sSystem();
$this->sSystem->sDB_CONNECTOR = $DB_CONNECTOR;
$this->sSystem->sDB_USER = $DB_USER;
$this->sSystem->sDB_PASSWORD = $DB_PASSWORD;
$this->sSystem->sDB_HOST = $DB_HOST;
$this->sSystem->sDB_DATABASE = $DB_DATABASE;
$this->sSystem->sInitAdo();
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
$this->sDB =& $this->sSystem->sDB_CONNECTION;
$this->sSystem->sInitConfig();
$this->Bootstrap()->loadResource('Zend');
$this->Bootstrap()->loadResource('Cache');
$this->Bootstrap()->loadResource('Db');
$this->sPath = $this->DocPath();
$this->sCONFIG = $this->Config();
$db = new Enlight_Components_Adodb(array(
'db' => $this->Db()
));
$this->sDB = $db;
$this->sSystem = $this;
error_reporting(0);
ini_set("display_errors",false);
}
/**

@@ -119,46 +121,4 @@

$this->sFiles[] = $hash;
return "$dir/$hash.tmp";
case "post":
//$data = $_POST;
//$_FILES['userfile']['tmp_name']
//is_uploaded_file
break;
/*
case "shopware":
switch ($url_array['host']) {
case "sCore":
if(!empty($url_array['path'][1]))
$classname = $url_array['path'][1];
else
return false;
if(!empty($url_array['path'][2]))
$functionname = $url_array['path'][2];
if(!empty($url_array['query']))
parse_str($url_array['query'],$params);
else
$params = array();
if(!file_exists($this->sPath."/engine/core/class/".$classname.".php"))
return false;
include($this->sPath."/engine/core/class/".$classname.".php");
if(!class_exists($classname))
return false;
if (!empty($functionname)) {
if(!method_exists($classname,$functionname))
return false;
$class = new $classname;
$class->sSYSTEM =& $this->sSystem;
return call_user_func_array(array(&$class, $functionname),$params);
}
break;
default:
break;
}
*/
case "mail":
case "tcp":
case "udp":
case "php":
default:
break;
}
}

@@ -176,31 +136,4 @@

}
}
/**
* Lokales Speichern von Daten - derzeit ohne Funktion
* @param string $url Der Pfad (inkl. Protokoll) zur Datei
* @access public
*/
function save ($url)
{
$url_array = parse_url($url);
$url_array['path'] = explode("/",$url_array['path']);
switch ($url_array['scheme']) {
case "ftp":
case "http":
case "file":
break;
case "post":
break;
case "shopware":
break;
case "mail":
case "tcp":
case "udp":
case "php":
default:
break;
}
}

@@ -308,3 +241,2 @@

}
?>


/shopware/trunk/engine/connectors/api/export/shopware.php

@@ -411,4 +411,5 @@

foreach ($orderIDs as $orderID)
{
$customers[$orderID]["paymentID"] = $orders[$orderID]["paymentID"];
$open_orders[$orderID] = array_merge($orders[$orderID],$customers[$orderID]);
$open_orders[$orderID]['details'] = $details[$orderID];

@@ -494,5 +495,5 @@

$sql_where = 'WHERE '.$order['where'];
}
if ($this->sSystem->sCheckLicense("","",$this->sSystem->sLicenseData["sPREMIUM"])&&!empty($this->sSystem->sCONFIG['sPREMIUMSHIPPIUNG']))
if (!empty($this->sSystem->sCONFIG['sPREMIUMSHIPPIUNG']))
{
$dispatch_table = 's_premium_dispatch';

@@ -715,4 +716,5 @@

$where
";
$rows = $this->sDB->GetAll($sql);
if(empty($rows)||!is_array($rows)||!count($rows))


/shopware/trunk/engine/connectors/api/import/shopware.php

@@ -277,5 +277,5 @@

}
if($article['kind']==2)
if($article['kind']==2 && !empty($article['ordernumber']))
{
//Bestellnummer ist schon für eine Konfigurator-Auswahl vergeben

@@ -284,5 +284,5 @@

if(!empty($result))
{
$this->sAPI->sSetError("Ordernumber '{$article['ordernumber']}' are already assigned", 10204);
$this->sAPI->sSetError("Ordernumber '{$article['ordernumber']}' is already assigned", 10204);
return false;
}

@@ -292,5 +292,5 @@

if($result===false||!empty($result))
{
$this->sAPI->sSetError("Article are already a configurator", 10205);
$this->sAPI->sSetError("Article is already a configurator", 10205);
return false;
}

@@ -2499,5 +2499,4 @@

}
$this->sDeleteTranslation('objectkey',$article['articledetailsID']);
$this->sDB->Execute($sql);
return true;
}


/shopware/trunk/engine/connectors/saferpay/doPayment.php

@@ -286,5 +286,12 @@

// **************************************************
header("Location: $payment_url");
//header("Location: $payment_url");
?>
<html>
<head>
<meta http-equiv="REFRESH" content="1;url=<?php echo htmlspecialchars($payment_url);?>">
</head>
<body onload="document.getElementById('moneybookers_form').submit();">
<form target="_top" id="moneybookers_form" name="moneybookers_form" method="post" action="<?php echo htmlspecialchars($payment_url);?>"></form>
</body>
</html>


/shopware/trunk/engine/index.php

@@ -1,38 +1,5 @@

<?php
/*
SHOPWARE 3.5.0 - Engine
(c) 2010/2011, shopware AG
*/
// AUTHENTIFICATION
// ====================================
define('sAuthFile', 'sGUI');
include("backend/php/check.php");
$result = new checkLogin();
if ($result->checkUser()!="SUCCESS"){
header("location: auth.php");
die();
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], "Safari") !== false) {
if(empty($_SESSION["reload"]))
{
header("location: auth.php");
die();
}
else
{
unset($_SESSION["reload"]);
}
}
// ====================================
//\AUTHENTIFICATION
if($sCore->sCONFIG["sVERSION"]=='3.0.5' || $sCore->sCONFIG["sVERSION"] == "3.0.5.1")
{
$sql = 'UPDATE s_core_config SET value = \'3.5.0\' WHERE name=\'sVERSION\'';
$update = mysql_query($sql);
$sCore->sCONFIG["sVERSION"] = '3.5.0';
}
$path = $_SERVER["HTTPS"] ? "https" : "http";


/shopware/trunk/Application.php

@@ -7,5 +7,5 @@

'password' => $DB_PASSWORD,
'dbname' => $DB_DATABASE,
//'host' => $DB_HOST
'host' => $DB_HOST
),
'front' => array(

@@ -20,5 +20,6 @@

'compileLocking' => true,
'useSubDirs' => false,
'forceCompile' => false
'forceCompile' => false,
'ignoreNamespace' => false
),
'cache' => array(

@@ -28,4 +29,5 @@

'lifetime' => 3600
),
'backend' => 'File',
'backendOptions' => array(
'hashed_directory_umask' => 0771,

@@ -34,6 +36,44 @@

'cache_dir' => $this->DocPath().'cache/database',
'file_name_prefix' => 'shopware'
)
),
/*
'backend' => 'Memcached',
'backendOptions' => array(
'servers' => array(
array(
'host' => 'localhost',
'port' => 11211,
'persistent' => true,
'weight' => 1,
'timeout' => 5,
'retry_interval' => 15,
'status' => true,
'failure_callback' => null
)
),
'compression' => false,
'compatibility' => false
)
*/
),
'session' => array(
'name' => 'SHOPWARESID',
'cookie_lifetime' => 0,
'use_trans_sid' => false,
'gc_probability' => 1,
'gc_divisor' => 100,
'save_handler' => 'db'
),
/*
'session' => array(
...
'save_handler' => 'memcache',
'save_path' => 'tcp://localhost:11211?persistent=1&weight=1&timeout=1&retry_interval=15'
),
'session' => array(
...
'save_handler' => 'files'
),
*/
'backend' => array(
'refererCheck' => true,


/shopware/trunk/.htaccess

@@ -1,6 +1,9 @@

<IfModule mod_rewrite.c>
RewriteEngine on
#RewriteBase /shopware/
RewriteRule shopware.dll shopware.php
RewriteRule files/documents/.*? engine [NC,L]
RewriteRule files/documents/.* engine [NC,L]
RewriteRule application.yaml engine [NC,L]
RewriteRule images/ayww/(.*) images/banner/$1

@@ -9,4 +12,10 @@

RewriteRule engine/core/php/sAjaxSearch.php$ engine/backend/php/sAjaxSearch.php [NC,L]
RewriteRule engine/core/php/campaigns.php$ engine/backend/php/campaigns.php [NC,L]
RewriteCond %{REQUEST_URI} !(engine\/|images\/|files\/|templates\/|\.js$|\.css$|\.jpg$|\.png$)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ shopware.php [PT,L,QSA]
</IfModule>
DirectoryIndex index.php

@@ -17,11 +26,15 @@

</Files>
AddDefaultCharset ISO-8859-1
Options -Indexes
RewriteCond %{REQUEST_URI} !(\/engine\/|\/images\/|\/files\/|\/templates\/|\.js$|\.css$|\.jpg$|\.png$)
# Options -MultiViews
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ shopware.php/$1 [PT,L,QSA]
# php_value memory_limit 128M
# php_value max_execution_time 18000
# php_flag magic_quotes_gpc off
# php_flag session.auto_start off
# php_flag suhosin.session.cryptua off
# php_flag zend.ze1_compatibility_mode Off
Options -Indexes
# AddType x-mapp-php5 .php
# AddHandler x-mapp-php5 .php


Artikel-PDF erstellen

Artikel bewerten

Waren diese Informationen hilfreich? Ja Nein


Weitere interessante Artikel:

Bezeichnung:
Rating:
Klicks:
Datum:

Kategorien:

Bestell-Nr.: SW1456

Lieferzeit ca. 5 Tage

€ 1,00

Preise inkl. gesetzlicher
MwSt. zzgl. Versandkosten*

€ 1,00

Preise inkl. gesetzlicher
MwSt. + Versandkosten*