» osCommerce Update von 2.2 auf 2.3.4 (Bootstrap)

Webserver (FTP-Dateien, MySQL) verschlüsselt auf Google Drive sichernNeuen Thread eröffnenNeue Antwort erstellenWarum MD5 sicher ist und viel Unsinn im Netz verbreitet wird
<12367
AutorNachricht
Administrator 

Name: Marc
Geschlecht:
Anmeldedatum: 28.08.2004
Beiträge: 52423
Wohnort: Lohmar


Meine eBay-Auktionen:
01.11.2017, 15:14
zitieren

Ok, die Gewichtsangabe konnte ich schnell entfernen. Dazu war nur eine kleine Änderung in
includes/modules/shipping/zones.php
nötig:


 
2017-11-01 16_13_54.png
2017-11-01 16_13_54.png - Angeschaut: 1337 mal

 
2017-11-01 16_14_41.png
2017-11-01 16_14_41.png - Angeschaut: 1335 mal


Verfasst am: 01.11.2017, 15:36
zitieren

Die Fotos werden überall ganz schön verzerrt dargestellt. Auch das Hersteller-Logo macht sich selbstständig. Kann man aber ganz gut in den Griff kriegen, in dem man in
includes/modules/boxes/bm_manufacturer_info.php
den
tep_image()
Aufruf um eine Style-Angabe ergänzt:
          if (tep_not_null($manufacturer['manufacturers_image'])) $manufacturer_info_string .= '<tr><td align="center" colspan="2">' . tep_image(DIR_WS_IMAGES . $manufacturer['manufacturers_image'], $manufacturer['manufacturers_name'], '', '', ' " style="height:auto;max-width:120px;"') . '</td></tr>';


 
2017-11-01 16_33_17.png
2017-11-01 16_33_17.png - Angeschaut: 1335 mal

 
2017-11-01 16_33_09.png
2017-11-01 16_33_09.png - Angeschaut: 1341 mal

Verfasst am: 01.11.2017, 15:59
zitieren

Ok im alten Shop wurde die Original tep_image() Funktion:
// alt is added to the img tag even if it is null to prevent browsers from outputting
// the image filename as default
    $image = '<img src="' . tep_output_string($src) . '" alt="' . tep_output_string($alt) . '"';

    if (tep_not_null($alt)) {
      $image .= ' title="' . tep_output_string($alt) . '"';
    }

    if ( (CONFIG_CALCULATE_IMAGE_SIZE == 'true') && (empty($width) || empty($height)) ) {
      if ($image_size = @getimagesize($src)) {
        if (empty($width) && tep_not_null($height)) {
          $ratio = $height / $image_size[1];
          $width = intval($image_size[0] * $ratio);
        } elseif (tep_not_null($width) && empty($height)) {
          $ratio = $width / $image_size[0];
          $height = intval($image_size[1] * $ratio);
        } elseif (empty($width) && empty($height)) {
          $width = $image_size[0];
          $height = $image_size[1];
        }
      } elseif (IMAGE_REQUIRED == 'false') {
        return false;
      }
    }

    if (tep_not_null($width) && tep_not_null($height)) {
      $image .= ' width="' . tep_output_string($width) . '" height="' . tep_output_string($height) . '"';
    }

    if (tep_not_null($parameters)) $image .= ' ' . $parameters;

    $image .= ' />';

    return $image;
  }

Gegen diese überschrieben:
// "On the Fly Thumbnailer" using PHP GD Graphics Library by Nathan Welch (v1.5)
// Scales product images dynamically, resulting in smaller file sizes, and keeps
// proper image ratio.  Used in conjunction with product_thumb.php t/n generator.
function tep_image($src, $alt='', $width='', $height='', $params='', $only_src=false) {
if ($src == 'images/') {
$width = '1';
$height = '1';
$src = "images/pixel_trans.gif";
}
// Set default image variable and code
$image = '<img src="' . $src . '"';
// Don't calculate if the image is set to a "%" width
$dont_calculate = 1;
if (strstr($width,'%') == false || strstr($height,'%') == false) {
$dont_calculate = 0;
}
// Do we calculate the image size?
if (CONFIG_CALCULATE_IMAGE_SIZE && !$dont_calculate) {
// Get the image's information
if ($image_size = @getimagesize($src)) {
$ratio = $image_size[1] / $image_size[0];
// Set the width and height to the proper ratio
if (!$width && $height) {
$ratio = $height / $image_size[1];
$width = intval($image_size[0] * $ratio);
}
elseif ($width && !$height) {
$ratio = $width / $image_size[0];
$height = intval($image_size[1] * $ratio);
}
elseif (!$width && !$height) {
$width = $image_size[0];
$height = $image_size[1];
}
// Scale the image if larger than the set width or height
if ($image_size[0] > $width || $image_size[1] > $height) {
$rx = $image_size[0] / $width;
$ry = $image_size[1] / $height;
if ($rx < $ry) {
$width = intval($height / $ratio);
}
else {
$height = intval($width * $ratio);
}
if ($only_src) {
return 'product_thumb.php?img='.$src.'&w='.tep_output_string($width).'&h='.tep_output_string($height);
}
$image = '<img src="product_thumb.php?img='.$src.'&w='.tep_output_string($width).'&h='.tep_output_string($height).'"';
}
else {
$width = $image_size[0];
$height = $image_size[1];
}
}
elseif (IMAGE_REQUIRED == 'false') {
return '';
}
}
if ($only_src) {
return $src;
}
// Add remaining image parameters if they exist
if ($width) {
$image .= ' width="' . tep_output_string($width) . '"';
}
if ($height) {
$image .= ' height="' . tep_output_string($height) . '"';
}
if ($params != '') {
$image .= ' ' . $params;
}
$image .= ' border="0" alt=" ' . tep_output_string($alt) . ' "';
if ($alt) {
$image .= ' title=" ' . tep_output_string($alt) . ' "';
}
$image .= '>';
return $image;
}

Vom Prinzip her ist das gut gedacht, aber mich stört vor allem diesen Zeile:
if ($image_size = @getimagesize($src)) {

Es wird also bei jedem Bild, das durch diese Funktion läuft zuerst die Bildgröße ermittelt und dann bei Überschreitung der vorgegebenen Größenangaben das Bild über die product_thumb.php dargestellt, die ihrerseits das Bild verkleinert.

Doch da wird erneut die Bildgröße ermittelt:
$image = @getimagesize($_GET['img']);

Und dann durchläuft das Bild die gesamte GD Bibliothek, was recht viel RAM verbraucht. Es fehlt hier also eindeutig ein Cache-Mechanismus. Mal sehen wie die Alternativen aussehen.

Verfasst am: 01.11.2017, 16:00
zitieren

Ah fein. Hier gibt es eine Erweiterungen:
https://apps.oscommerce.com/LU6yU&on-the-fly-auto-thumbnailer-using-gd-l

die auf TimThumb zurückgreift:
https://github.com/GabrielGil/TimThumb

Allerdings ist eine sehr alte Version enthalten und alleine aus Sicherheitsgründen sollte man eine aktuelle Version verwenden. Allerdings gefällt mir auch da einiges nicht. z.B. durchläuft der das Cache-Verzeichnis zur Reinigung mit
glob()
was langfristig in die Hose gehen muss, wenn der Shop mehrere Tausend Bilder hat. Außerdem wird der Cache immer "eingelesen", was ziemlich Blödsinn ist, da man ja stattdessen einfach den Link zum Bild ausgeben könnte und damit gar keine Verarbeitung durch PHP mehr notwendig wäre.

Fazit: Selber bauen.

 1x  bearbeitet

Verfasst am: 01.11.2017, 22:43
zitieren

Gesagt getan. Ich habe eine komplett eigene Funktion für Vorschaubilder geschrieben. Sie ist viel simpler als alle anderen Erweiterungen, die ich bisher gesichtet habe.

Man muss nichts einstellen, es wird nichts an der Datenbank verändert und es wird der Standard-Bilderpfad genutzt, der in der configure.php eingestellt wurde. Und sobald ein Vorschaubild generiert wurde, wird die Funktion nie mehr aufgerufen. Schneller geht es denke ich nicht.

Hier kann die Erweiterung heruntergeladen werden:
https://apps.oscommerce.com/Apps&7CTmT&on-the-fly-thumbnail-creator

Die Funktion macht übrigens nichts anders als das Originalbild verkleinert in einem Unterordner von images/ zu speichern. Und danach wird einfach nur geprüft ob bereits ein Vorschaubild vorhanden ist und wenn ja wird es 1:1 als natives Bild eingebunden.

Einfacher geht es eigentlich nicht mehr. Und weil es so schön ist, werden dadurch auch gleich alle Bilder in osCommerce unverzerrt dargestellt.

Ich habe auch die Aufnahme in den Originalcode vorgeschlagen, damit verzerrte Bilder endlich mal eine Ende haben:
https://github.com/osCommerce/oscommerce2/issues/607

 2x  bearbeitet

Verfasst am: 02.11.2017, 08:44
zitieren

Es gibt noch eine Datenbankänderung zwischen dem alten 2.2 Shop und 2.3.4. Und zwar war eine Multi Image Erweiterung installiert, die mehrere Bilder in den zusätzlichen Spalten
products_image2
,
products_image3
, etc. speicherte.

Eine solche Erweiterung ist aber nicht mehr nötig, da seit osC 2.3.1 eine eigene Tabelle für Bilder existiert namens
products_images
. Dadurch kann jedes Produkt nun unendlich viele Bilder haben:
DROP TABLE IF EXISTS products_images;
CREATE TABLE products_images (
  id int NOT NULL auto_increment,
  products_id int NOT NULL,
  image varchar(64),
  htmlcontent text,
  sort_order int NOT NULL,
  PRIMARY KEY (id),
  KEY products_images_prodid (products_id)
) CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Was ich dabei ziemlich verwirrend finde: Lädt man in 2.3.4 ein Bild hoch, dann ist das das Bild für die Suchergebnisse und die Artikelansicht. Lädt man dagegen zwei hoch, dann ist das erste Bild nur noch für die Suchergebnisse und erscheint nicht mehr in der Artikelansicht. Man kann also verschiedene Bilder für die Suchergebnisse und Artikelansicht haben. Its not a bug, its a feature.

Jedenfalls müssen wir jetzt die Bilder aus der alten Datenbank in die neue importieren. Das sollte nicht schwer zu realisieren sein. Mal sehen ob ich ein passendes Script finde.

 4x  bearbeitet

Verfasst am: 02.11.2017, 10:56
zitieren

Ich konnte leider keine passende Erweiterung finden, weshalb ich nun selbst eine Erweiterung bei osCommerce hochgeladen habe:
https://apps.oscommerce.com/Apps&ixXzK&move-multiple-images-from-2-2-to-2-3

 1x  bearbeitet

Verfasst am: 03.11.2017, 09:02
zitieren

Ich wollte ja final noch auf die 2.3.4 BS, also die Bootstrap Version aktualisieren. Nach Veröffentlichtung meiner Thumbnail-Erweiterung schrieb mich der User raiwa an und meinte ich solle doch erst auf die aktuelle osC Version 2.3.4 BS aktualisieren, bevor ich (unnötig) Erweiterungen zur alten Version schreibe.

Das irritiert mich, da ich die BS version nur als Fork verstehe. Ich habe mal osCommerce direkt angeschrieben. Interessiert mich jetzt, weil dann werden ja auch die Bug Reports hinfällig, die ich aufgemacht habe.

 2x  bearbeitet
pn email
Gast 
03.11.2017, 09:02
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "osCommerce Update von 2.2 auf 2.3.4 (Bootstrap)" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
<12367
Ähnliche BeiträgeRe:
Letzter Beitrag
osCommerce / xtCommerce Gutscheincodes / Sonderangebote
hier der Link zur Stahlflexleitungs-Aktion: http://www.maxrev.de/weihnachts-special-goodridge-stahlflexbremsleitungen-t177306.htm Du musst wirklich mal sowas wie Aktionscodes oder so einführen. Das mit dem Bestellen für Preis X und Preis Y wird...
von mgutt
3
414
13.12.2010, 17:41
Feiny
Button-Lösung in osCommerce umgesetzt: Puhh!
Der Gesetzgeber fordert jetzt von jedem Shop eine Änderung der Bestellseite. "zahlungspflichtig bestellen" statt "bestellen", denn die Verbraucher sind ja dumm und alles was Geld kostet muss hervorgehoben werden, während...
von mgutt
2
579
31.07.2012, 14:28
mgutt
hoti´s EG5 projekt Update 5.08.2012 Update ! BILDER NACH POLISH
Ja stelle auch mal meinen kleinen vor ;) hab in ca 3wochen hir ausem forum ergatert °°und direkt mal einiges umgebaut. D16z6 Was ich selbst in den 3 wochen verändert habe. :Fächer :AGA ab Cat 60mm :Magnaflow ESD. :Motor Bearbeitet und...
von hoti
83
8.249
24.10.2012, 10:49
hoti
UPDATE**Loliger Motor/Filter KaltLuft bau xD Stage3!**UPDATE
Mich hat heute so die lust gepackt einfach mal so richtig wieder was zu spaksen und das kamm dabei raus und das beste ist sogar es funktoniert und das eigentlich ganz gut erst ein bissla warm gefahren und dann ne bundestraße die 3% gefälle hat von 0-160...
von R3DEX
37
3.862
24.08.2007, 06:35
R3DEX
Postbote war da *update update* 20. Juli
:D :D :D hey leute der postbote war vorhin da lol yeahaaaaaaa und teile sind für mich auch mitgekommen :D dickes lob an *Milanored EG* die Anhänger sind echt erste sahne :yes: und auch ein lob an meinen hondahändler *gg* der hat mir die 90ps...
von Ej9ner
21
2.250
09.08.2008, 05:52
deacone
Update Em2
Wie schon in meinem Vorstellungs Fred damals versprochen, wollte ich euch auf dem laufendem halten. http://www.maxrev.de/ein-neuer-und-sein-civic-t67715.htm So nun isses soweit, jetzt stell ich euch meinen alten/neuen EM2 vor. So mal ein bild...
von Streethunter
44
4.311
21.10.2011, 10:33
Phil.T
Update von 1.18.2 auf 1.22.2
Hallo, muss man bei diesem Update-Sprung, jedes einzelne Zwischenupdate installieren oder reicht es, wenn ich die 1.22.2 hochlade und aktualisiere? Grüße...
von derkrauter
2
125
02.02.2014, 19:42
derkrauter
Update von 1.13.3 auf 1.15.1
Hi, ich nutzte MediaWiki seit ca 3 Monaten und habe noch die Version 1.13.3 und will nun auf die aktuelle nach [URL=http://www.mediawiki.org/wiki/Manual:Upgrading_MediaWiki]dieser[/URL] Anleitung upgraden. Hier sollen ja alle Dateien überschrieben...
von MoinMoin
1
348
12.08.2009, 10:08
mgutt
update.php
Hallo, ich möchte confirmaccount installieren. Mus aber dazu update.php laufen lassen. Wie mach ich das, ich habe kein Shell oder ähnliches. Wenn ich die Datei im Browser aufrufe erscheint eine Fehlerseite mit dem Hinweis, dass ich keinen Zugriff...
von dejay1903
1
140
04.01.2013, 19:43
carchaias
Dvd 800 update dvd
Hallo, Suche für meinen Insignia Baujahr 10.2009 eine update DVD fürs Navi Dvd 800, Version 2012 oder neuer wenns die schon gibt, entweder zum ausleihen oder zum Kauf natürlich gegen bares ;) bei Interesse einfach melden Dan können wir über den Preis...
von Benny1.8
0
1.837
23.12.2013, 17:19
Benny1.8
© 2004 - 2025 www.programmierer-forum.de | Communities | Impressum |