hallo allerseits,
hat jemand bitte den ganzen Quellcode der Beispiele ? Auf der CD sind nur Schnipsel zu finden...
Danke
rupert (rsm@iomo.ch)
hallo allerseits,
hat jemand bitte den ganzen Quellcode der Beispiele ? Auf der CD sind nur Schnipsel zu finden...
Danke
rupert (rsm@iomo.ch)
Hallo spinko,
ich habe schon an den Verlag geschrieben wg. des Gesamt_Script. Antwort: Kann von uns nicht geliefert werden, Ihre Mail wird an den Autor weitergeleitet. Bin gespannt was kommt.
Gruß
Hallo,
ich habe die eMail vom Verlag erhalten und werde mal sehen, ob und wie sich das machen lässt.
Hierzu habe ich auch eine Frage: Wozu wird der gesamte Code benötigt? Wo genau hakt es?
Hallo
Habe auch ne Frage zum Buch
Meine Typoumgebung, XAMPP, Typo3.8.0, DummyPaket, ImageMagick eingerichtet.
GIF to GIF ok, PNG to PNG fail, GIF to JPG ok
Kapitel 11, Beispiel 11-15
Läuft alles korrekt bis auf das FOTO (JPG).
Wenn kein Bild im Ordner liegt wird Fehlgrafik N/A anzeigt und wenn das Foto lt. Datenbank vorhanden ist wird NICHTS anzeigt. auch im Quellcode ist in der Tabellenzelle nichts.
Hab alles lt. Beispiel gemacht - wo ist der Fehler.
# Parameter für das eigene Mitarbeiter-Plugin
plugin.user_rmmitarbeiter_pi1 {
testObjekt = IMAGE
testObjekt.file = GIFBUILDER
testObjekt.file {
XY = 100,100
backColor = red
}
# Pfad zur Designvorlage als Parameter angeben
templateFile = fileadmin/template/main/mitarbeiter.html
# So soll ein Foto eines Mitarbeiters formatiert werden.
bild = IMAGE
bild {
XY = [10.w]+2, [10.h]+2
backColor = black
10 = IMAGE
# Der Pfad zum Bild wird später dynamisch ersetzt.
10.file = unbekannt
10.file.width =150
10.offset= 1,1
}
# Dieses Bild soll angezeigt werden, wenn kein Foto vorhanden ist.
bild_default = IMAGE
bild_default.file = GIFBUILDER
bild_default.file {
XY = 152, 50
backColor = white
10 = TEXT
10.text = N/A
10.fontFile = fileadmin/fonts/verdana.ttf
10.fontSize = 20
10.fontColor = black
10.niceText = 1
10.offset = 30,25
}
}
Hallo,
[...]
# Der Pfad zum Bild wird später dynamisch ersetzt.
10.file = unbekannt
[...]
Anscheinend wird der Pfad zum Bild doch nicht richtig ersetzt. Wie lautet denn der entsprechende PHP-Code, der den Pfad ersetzen soll?
Genau lt. Buch.
function main($content,$conf) {
$this->conf=$conf;
$this->pi_setPiVarDefaults();
$this->pi_loadLL();
$this->pi_USER_INT_obj=1;
// Variablen setzen
$content = "";
$marker = array();
$img_pfad = "uploads/tx_userrmmitarbeiter/";
// Die Designvorlage laden
$tmpl = $this->cObj->fileResource($conf["templateFile"]);
// Einen Teilbereich der Designvorlage auslesen
$tmpl = $this->cObj->getSubpart($tmpl, "###MITARBEITER###");
// Einen weiteren Teilbereich aus dem Teilbereich auslesen
$tmpl_eintrag = $this->cObj->getSubpart($tmpl, "###EINTRAG###");
// Ggf. einen Parameter auslesen, ansonsten die aktuelle Seite verwenden
$mitarbeiterPageId = $conf["mitarbeiterPageId"];
if (!intval($mitarbeiterPageId)) $mitarbeiterPageId = $GLOBALS["TSFE"]->id;
// Die Datenbankabfrage inkl. Unterstützung von Datenbankabstraktion
$res =$GLOBALS["TYPO3_DB"]->exec_SELECTquery("*","user_rmmitarbeiter_main", "deleted = 0 AND hidden = 0 AND pid = '".$mitarbeiterPageId."'");
while ($row = $GLOBALS["TYPO3_DB"]->sql_fetch_assoc($res)) {
// Ein Array mit Platzhaltern als Schlüssel mit den Werten füllen
$marker["###NAME###"] = $row["nachname"]." ".$row["vorname"];
// Das Bild auslesen und verarbeiten
$conf["bild."]["file."]["10."]["file"]= $img_pfad.$row["bild"];
if ($this->cObj->fileResource($img_pfad.$row["bild"])) {
$marker["###BILD###"] = $this->cObj->cObjGetSingle($conf["bild"], $conf["bild."]);
} else {
$marker["###BILD###"] = $this->cObj->cObjGetSingle($conf["bild_default"], $conf["bild_default."]);
}
// Den Teilbereich ###EINTRAG### und das Array miteinander "vereinen"
$content.=$this->cObj->substituteMarkerArrayCached($tmpl_eintrag, $marker);
}
// Letztmalig den umhüllenden Teilbereich ersetzen und Ergebnis ausgeben
$content =$this->cObj->substituteSubpart($tmpl, "###EINTRAG###", $content);
return $content;
}
Hallo,
schaut soweit ganz gut aus. Was passiert, wenn im TypoScript-Code die Zeile 10.file.width =150 auskommentiert wird? Ggf. gibt es mit der IM-Version Skalierungsprobleme.
Hallo
Das auskommentieren hat leider auch nicht geholfen.
Meine ImageMagick Konfiguration (unter Windows XP)
ImageMagick enabled: 1
ImageMagick path: D:\apachefriends\xampp\ImageMagick/ (4.2.9)
ImageMagick path/LZW: D:\apachefriends\xampp\ImageMagick/ (4.2.9)
Version 5 flag: 0GDLib enabled: 1
GDLib using PNG: 0
GDLib 2 enabled: 0
IM5 effects enabled: 0 (Blurring/Sharpening with IM 5+)
Freetype DPI: 72 (Should be 96 for Freetype 2)
Mask invert: 0 (Should be set for some IM versions approx. 5.4+)File Formats: gif,jpg,jpeg,tif,bmp,pcx,tga,png,pdf,ai
Sorry, steht das wirklich so im Buch? Ist fehlerhaft! Zeile 29 muss lauten
$conf["bild."]["10."]["file"]= $img_pfad.$row["bild"];
Ich habe es mir notiert - sollte in der nächsten Auflage behoben sein ;-)
Hallo,
$conf["bild."]["10."]["file"]= $img_pfad.$row["bild"];
Habs so auch schon probiert, wahr aber leider nicht der Fehler.
Vielleicht ist was falsch konfiguriert.
Naja, hab mich jedefalls jetzt mal zum 1-monatigen Typo3 testen bei euch angemeldet. Vielleicht funktioniert da.
Jedefalls vielen Dank für die prompten Antworten. Ist ja nicht selbstverständlich :-). Jetzt geh mal auf nen Samstagabenddrink.
Hallo
Hab das ganze jetzt mal ner Testumgebung von typoserver.com ausprobiert, gleiches Problem
Vielleicht kannst du/Sie ja mal nachschauen :-)
Link
http://p11514.typo3server.info/16.0.html
P.S. ich weiss, war schreibt man ohne h
Hallo,
ich habe es gefixt (auch schon direkt im Account). Problem war nicht der PHP-Code (hier ist alles in Ordnung), der Fehler lag im TypoScript-Code (Fehler im Buch, das GIFBUILDER-Objekt hat gefehlt).
Auf Seite 327 (Bsp 11-14) muss es lauten:
bild = IMAGE
bild.file = GIFBUILDER
bild.file {
XY = [10.w]+2, [10.h]+2
backColor = black
10 = IMAGE
10.file = unbekannt
10.file.width = 150
10.offset = 1,1
}
Sorry für den Fehler und den hieraus entstandenen Zeitraub. Geht voll und ganz auf meine Kappe...
Hallo
Den Fehler hätt ich aber selber auch sehen können #angry#
Nichtdestotrotz, haste hier ein super Buch auf den Markt gebracht, welches einem einen einfachen und vor allem transparenten Einstieg in die Typo3materie gibt.
mfg
Christian
robert.meyer schriebHierzu habe ich auch eine Frage: Wozu wird der gesamte Code benötigt? Wo genau hakt es?
Hallo Robert,
mich würde der Gesamtcode ebenfalls interessieren. Bin noch nicht ganz durch mit dem Buch, aber es hakt zB auf S. 154/155: Du beschreibst dort wie man einen Menueintrag mit zweizeiligem Text darstellt. Auf Seite 155 gehst du dann auf die jetzt fehlerhafte Traileranzeige ein, leider ohne Codebeispiel.
Mit meinen Anfängerkenntnissen habe ich zwar einen Workaround gebastelt, würde aber trotzdem gerne die "Musterlösung" sehen. Drum das Interesse am Gesamtcode...
dem muss ich mich anschließen
Würde auch gerne die Musterlösung sehen.
Mein Workaround:
# Text auf den Trailer rendern
30 = TEXT
30.text.field = subtitle // title
30.text.listNum = 0
30.text.listNum.splitChar = |
30.fontFile = fileadmin/fonts/verdana.ttf
30.fontSize = 24
30.fontColor = #364497
30.niceText = 1
# Bitte den Unterstrich entfernen, konnte es hier nicht anders maskieren
30.offset = 10[ _;], 85
# Eventuell vorhandenen 2. Texteil auf den Trailer rendern
35 < .30
35.text.listNum = 1
35.offset = 10+[37.w], 85
# Eine Hilfsebene zum Berechnen der Länge
37 < .30
37.text.listNum = 0
37.offset = 2000, 2000
}
Gruß
altair3
robert.meyer schriebHallo,
. . .Hierzu habe ich auch eine Frage: Wozu wird der gesamte Code benötigt? Wo genau hakt es?
Hallo,
alle Achtung für die Arbeit an dem Buch!
Ich habe mir das Buch (in der Buchhandlung :o ) angesehen.
Weshalb ich es nicht kaufte. Mir fehlen einfach praxisrelevante Beispiele.
Angefangen von einem CSS passierendem Grundaufbaues einer HTML-Seite mit DIVs und LIs, Also der Designvorlage. Bis hin zu relevanten Anwendungspraktiken einer vollständigen textpassierenden Website ohne Gifbuilder und Graphischer Texterzeugung. Zumindest alle Möglichkeiten getrennt mit und ohne Gifbulder und/oder GMenu.
Dies nach einer schnellen Ansicht des Buches.
Eine Kaufanregung wäre gewesen, es hätte alle aufgeführten Codebeispiele auch digital vorliegen. Nur hatte ich eben im Voraus bereits hier gelesen, daß dies nicht der Fall ist. Da ist mir in diesem Falle Preis für das Buch doch zu hoch.
Dies ausschließlich meine Meinung.
MFG
Sonya
den workaround hab ich auch gefunden. mein prob mit dem GIFBUILDER ist allerdings, dass da alle Bilder auf 256 farben runterskaliert werden. gibt es eine möglichkeit die bilder in jpg-farben zu lassen?
Viele Grüße
µaTh
ok, nun hab ich es hinbekommen, dass ich alle farben habe.
plugin.user_mitarbeiter_pi1 {
# Pfad zur Designvorlage als Parameter angeben
templateFile = fileadmin/************/designvorlagen/mitarbeiter.html
# So soll ein Foto eines Mitarbeiters formatiert werden.
bild = IMAGE
bild.file = unbekannt
}
# Dieses Bild soll angezeigt werden, wenn kein Foto vorhanden ist.
bild_default = IMAGE
bild_default.file = GIFBUILDER
bild_default.file {
XY = 150, 50
backColor = white
10 = TEXT
10.text = Bild ;-)
10.fontSize = 20
10.fontColor = black
10.niceText = 1
10.offset = 30,25
}
}
function main($content,$conf) {
$this->conf=$conf;
$this->pi_setPiVarDefaults();
$this->pi_loadLL();
$this->pi_USER_INT_obj=1;
// Variablen setzen
$content = "";
$marker = array();
$img_pfad = "uploads/tx_usermitarbeiter/";
// Die Designvorlage laden
$tmpl = $this->cObj->fileResource($conf["templateFile"]);
// Einen Teilbereich der Designvorlage auslesen
$tmpl = $this->cObj->getSubpart($tmpl, "###MITARBEITER###");
// Einen weiteren Teilbereich aus dem Teilbereich auslesen
$tmpl_eintrag = $this->cObj->getSubpart($tmpl, "###EINTRAG###");
// Ggf. einen Parameter auslesen, ansonsten die aktuelle Seite verwenden
$mitarbeiterPageId = $conf["mitarbeiterPageId"];
if (!intval($mitarbeiterPageId)) $mitarbeiterPageId = $GLOBALS["TSFE"]->id;
// Die Datenbankabfrage inkl. Unterstützung von Datenbankabstraktion
$res =$GLOBALS["TYPO3_DB"]->exec_SELECTquery("*","user_mitarbeiter_main", "deleted = 0 AND hidden = 0 AND pid = '".$mitarbeiterPageId."'");
while ($row = $GLOBALS["TYPO3_DB"]->sql_fetch_assoc($res)) {
// Ein Array mit Platzhaltern als Schlüssel mit den Werten füllen
$marker["###NAME###"] = $row["vorname"]." ".$row["nachname"];
$marker["###WOHNORT###"] = $row["wohnort"];
$marker["###BERUF###"] = $row["beruf"];
$marker["###EMAIL###"] = $row["email"];
$marker["###POSITION###"] = $row["position"];
$marker["###WEITEREINFOS###"] = $row["weitereinfos"];
// Das Bild auslesen und verarbeiten
$conf["bild."]["file"]= $img_pfad.$row["bild"];
if ($this->cObj->fileResource($img_pfad.$row["bild"])) {
$marker["###BILD###"] = $this->cObj->cObjGetSingle($conf["bild"], $conf["bild."]);
} else {
$marker["###BILD###"] = $this->cObj->cObjGetSingle($conf["bild_default"], $conf["bild_default."]); // der else-zweig zeigt die in TS erstellte grafik nicht an!!!
}
// Den Teilbereich ###EINTRAG### und das Array miteinander "vereinen"
$content.=$this->cObj->substituteMarkerArrayCached($tmpl_eintrag, $marker);
}
// Letztmalig den umhüllenden Teilbereich ersetzen und Ergebnis ausgeben
$content =$this->cObj->substituteSubpart($tmpl, "###EINTRAG###", $content);
return $content;
}
}
Zeile 37: die grafik, die in typoscript erstellt wurde, wenn keine bild vorhanden ist, wird nicht angezeigt im oberen skript.