Längenbegrenzung bei Seitenbeschreibung

Begonnen von Jens Schenck, August 29, 2005, 13:11:23

« vorheriges - nächstes »

0 Mitglieder und 2 Gäste betrachten dieses Thema.

Jens Schenck

Hallo, kann man irgendwie die Längenbegrenzung für die Seitenbeschreibung umgehen? Da die Spalte (page->descr) als varchar(250) definiert ist, werden längere Texte einfach abgeschnitten. Ändere ich den Spaltentyp per Hnad z.B. auf TEXT, dann produziert Shoppilot einen Fehler

"it will be soon available
page : under construction"

Shoppilot v2.10.01

Gruß, Jens Schenck

hop

Hallo,

an der Änderung des Datentyps an sich, kann es meiner Meinung nach nicht liegen.

Ich würde allerdings sehr lange Texte bei der Seitenbeschreibung vermeiden, weil sie nicht dafür
vorgesehen ist.

Folgende anderen Möglichkeiten fallen mir ein:

Die Beschreibungen in eine eigene Vorlag packen oder
die Beschreibung über einen oder mehrere dummy-Artikel in der Seite darstellen.

Gruss hop
Sch?ne Gr??e hop

Jens Schenck

Habe ein wenig geguckt und probiert. Wenn ich nur den Datentyp ändere bekomme ich folgenden Fehler im Apache-Error-log

Mysql-DB (varchar(250) -> TINYTEXT)

DBD::ODBC::st fetchrow_array failed: [MySQL][ODBC 3.51 Driver][mysqld-4.1.10-nt]String data, right truncated (SQL-01004)(DBD: st_fetch/SQLFetch (long truncated DBI attribute LongTruncOk not set and/or LongReadLen too small) err=-1) at Ibodata.pm line 618.\r

bzw. AccessDB (Text(250) -> Memo)

DBD::ODBC::st fetchrow_array failed: [Microsoft][ODBC Microsoft Access Driver]Die Zeichenfolgedaten wurden rechts abgeschnitten. bei Spalte 10 (DESCR) (SQL-01004)\r
[Wed Aug 31 16:35:15 2005] [error] [client 127.0.0.1] [Microsoft][ODBC Microsoft Access Driver]Die Zeichenfolgedaten wurden rechts abgeschnitten. bei Spalte 3 (DESCR) (SQL-01004)(DBD: st_fetch/SQLFetch (long truncated DBI attribute LongTruncOk not set and/or LongReadLen too small) err=-1) at Ibodata.pm line 618.\r

Zeile 618, auf die sich die Fehler beziehen, ist Teil von
sub read_pages

607: while ((@token) = $sth->fetchrow_array()) {
...
618: if ($token[0]< 10) {# für WK, Meldungen etc.

Setze ich vorher
605: $sth->{LongTruncOk} =1;

funktioniert es und sollte, soweit ich das mit meinen bescheidenene Perl-Kenntnissen beurteilen kann, auch keine Seiteneffekte produzieren. Was das ganze "etwas" unhandlich macht, ist, dass ich nach dem Anlegen der Datenbank die Spalte DESCR ind page und pscat zunächst von Hand ändern muss. Auch der Gedanke in der Ibodata.px rumzupfuschen behagt mir nicht besonders... Bleibt die Frage ob ich damit alles korriigert habe, oder ob ich, z.B. wenn ich die SP-Suche einsetze ähnliche Probleme bekomme...

Das Auslagern des Textes in ein (bzw hier ca 300) Template wollte ich eigentlich umgehen. Zum einen benötigen wir dann sehr viele Templates, zum anderen sind diese nicht vom Shoppilot durchsuchbar.

Zur Idee mit dem dummy-Artikel. Ist damit gemeint einfach als ersten Artikel auf jede Seite einen zu packen, der den Text enthält? Dann den erten Artikel abrufen und danach über die Schleife wie gehabt alle weiteren?
Das könnte eine Lösung sein, würde aber einiges an Fleiß-arbeit nach sich ziehen.
Anbieten würde sich ja das Feld "Beschreibung" im Reiter "Detail", welches in der DB, wenn ich das richtig sehe direkt als longtext definiert ist (oder lässt sich das nur auf Detailseiten abfragen? Dann eher Ergänzungstext1 und Datenfelder -> "Lange texte ermöglichen für" "Ergänzug1" auswählen? ).
Wie müsste denn da das benutzerdefinierte Feld bei Subkatalogen benannt sein (wir haben mehrere Subkataloge für verschiedene Sprachen)? Und klappt das auch, dass er da die Daten aus dem Subkatalog übernimmt, so wie mit der Kurzbeschreibung und dem benutzerdefinierten idescription ?

Puh, ziemlich viele Fragen :) schon mal Danke für die Mühe.

Gruß, Jens Schenck

hop

Hallo Herr Schenk,

bitte wenden Sie sich an den support.
Die Fragestellung ist doch sehr spezifisch, da
sie eine win-nt 4.1 MySQL per ODBC verwenden.

Gruss hop
Sch?ne Gr??e hop