Autor Thema: Text aus "externen" Quellen  (Gelesen 7655 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Joachim

  • Full Member
  • ***
  • Beiträge: 142
  • Lob: 2
    • Barrique-Shop
Text aus "externen" Quellen
« am: November 30, 2005, 16:38:07 »
Hallo,
wir haben als Datenbankquelle (WaWi) dBase. dBase hat den Nachteil, daß keine lange Texte in den Feldern stehen können. Da es aber sehr lange Beschreibungen als *.txt in einem Verzeichnis für jeden einzelnen Artikel gibt und die auf den Detailseiten erscheinen sollen, suchen wir eine Möglichkeit zur Platzierung. Wir stellen uns vor, daß in einem dBase-Feld nur der Pfad zur *.txt steht (wie bei Artikelbildern) und SP das durch einen Indentifier ersetzt.
Ich weiß ja mittlerweile, daß SP ein sehr offenes System ist, aber gibt es da eine Lösung?


Linkback: https://www.shoppilot.net/pf/index.php?topic=538.0
Beste Gr?sse aus Berlin

Joachim
www.barrique-shop.de
www.barrique.com (Typo3-CMS)
www.tapola-camphill.net (Typo3-CMS)

Offline hop

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 705
  • Lob: 5
...
« Antwort #1 am: Dezember 01, 2005, 21:05:39 »
Hallo,

Zitat
Ich weiß ja mittlerweile, daß SP ein sehr offenes System ist, aber gibt es da eine Lösung?

Ich versuch mal ;-)

<!--spmacro:module(datei)
sub text {
   my $datei = ssp::get_var_article("DATEI",$_[0]);
   open(TEXT, "< $ssp::catalog_home/$datei);
   my @text = <TEXT>;
   close(TEXT);
   main::mprint(join(" ",@text));
}
-->

In der benutzerdefinierten Variable DATEI soll der Dateiname stehen. Der Pfad ist immer relativ zum Katalogverzeichnis. Am besten nimmt man ein benutzerdefiniertes Feld vom Typ Datei, dann wird die Datei bei Änderungen automatisch hochgeladen.

Bei der Ausgabe kann man das Zeilenendezeichen noch bestimmen. Hier ist das Leerzeichen " ".
   main::mprint(join(" ",@text));
Wenn man statt dessen auch einen Zeilenumbruch in HTML haben möchte, sähe das so aus:
   main::mprint(join("
",@text));
Oder eine HTML Zeilenumbruch und ein echter Zeilenumbruch
   main::mprint(join("
\n",@text));

Ich hab's nicht vollständig getestet, hoffe es funktioniert so.

Gruss hop

PS: Aufruf mit __datei::text__ als Identifier.
« Letzte Änderung: April 17, 2006, 23:53:11 von ahe »
Sch?ne Gr??e hop

Offline Joachim

  • Full Member
  • ***
  • Beiträge: 142
  • Lob: 2
    • Barrique-Shop
(Kein Betreff)
« Antwort #2 am: Dezember 01, 2005, 21:40:52 »
Vielen Dank hop,
ich werde das in Kürze ausprobieren (lassen).
Und wenns klappt, kommen hinter dem Logo von Shoppilot auf unserer zukünftigen Seite 3 Sterne :))

Offline Joachim

  • Full Member
  • ***
  • Beiträge: 142
  • Lob: 2
    • Barrique-Shop
(Kein Betreff)
« Antwort #3 am: Dezember 02, 2005, 19:28:55 »
Geht leider nicht.
Benutzer-Feld mit dem Namen DATEI eingerichtet
Das dbaseFeld diesem zugeordnet.
Code eingebaut auf Detailseite
Identifier eingefügt.

Fehler:
This Error has occured:
parsing error 123-6 in ./wsdetail_w.htm: Can't find string terminator '"' anywhere before EOF at (eval 2) line 7, <./wsdetail_w.htm> line 175.
« Letzte Änderung: Dezember 02, 2005, 19:29:33 von Joachim Schulz »

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
...
« Antwort #4 am: Dezember 02, 2005, 19:53:15 »
Hallo Herr Schulz,

in hop's Code hat sich ein Tippfehler eingeschlichen.

Es muss nicht heissen:
open(TEXT, "< $ssp::catalog_home/$datei);sondern:
open(TEXT, "<$ssp::catalog_home/$datei");
Das sollte den Fehler schon beheben.
« Letzte Änderung: April 17, 2006, 23:54:12 von ahe »
MfG ahe

Offline Joachim

  • Full Member
  • ***
  • Beiträge: 142
  • Lob: 2
    • Barrique-Shop
(Kein Betreff)
« Antwort #5 am: Dezember 02, 2005, 20:09:53 »
Hallo ahe,
ich kanns kaum glauben - 9 nette kleine Code-Zeilchen -
und es geht. Ich bin begeistert!! :))
Schönes Wochenende

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
(Kein Betreff)
« Antwort #6 am: Dezember 02, 2005, 20:20:14 »
Ja, manchmal geht es einfacher als man erwarten würde ;)
Ihnen ebenfalls ein schönes Wochenende.

Offline Joachim

  • Full Member
  • ***
  • Beiträge: 142
  • Lob: 2
    • Barrique-Shop
(Kein Betreff)
« Antwort #7 am: Dezember 03, 2005, 14:10:46 »
Zitat
Original von Joachim Schulz
Hallo,
wir haben als Datenbankquelle (WaWi) dBase.
dBase hat den Nachteil, daß keine lange Texte in den Feldern stehen können.
Da es aber sehr lange Beschreibungen als *.txt in einem Verzeichnis für jeden einzelnen Artikel gibt
und die auf den Detailseiten erscheinen sollen,
suchen wir eine Möglichkeit zur Platzierung.
Wir stellen uns vor, daß in einem dBase-Feld nur der Pfad zur *.txt steht
(wie bei Artikelbildern) und SP das durch einen Indentifier ersetzt.

Ich will nur noch zum guten Abschluss für alle erwähnen,
dass die Lösung von Hop auch für html-Dateien gilt.
Allerdings nicht das von Word produzierte Müll-html,
(auch *.doc oder *.rtf eignen sich nicht)
sondern das einzig und allein reine html.


xx
Zahlungsart-Text

Begonnen von jg

2 Antworten
8417 Aufrufe
Letzter Beitrag Mai 13, 2004, 19:40:11
von jg
xx
Zeilenumbruch in Error Text ?

Begonnen von dobra

12 Antworten
9161 Aufrufe
Letzter Beitrag April 28, 2008, 15:14:02
von dobra
xx
Passwort vergessen, pdf-Text

Begonnen von jg

4 Antworten
8573 Aufrufe
Letzter Beitrag November 21, 2002, 10:03:18
von hop
xx
index.html ändern (Text)

Begonnen von Andi

1 Antworten
7461 Aufrufe
Letzter Beitrag Mai 01, 2003, 18:08:53
von hop