Zum Inhalt springen

scriptaufruf bei neuem record

Erstellt am 21. Juni 2006 · 7 Antworten · letzte Antwort am 29. Juni 2006

Tags: Frage

silverzone ·

hi ihr

so villeicht ist hier der bessere ort für diese frage:

ich habe eine eiene extension mit dem kickstarter erstellt, wo man ein bild mit beschreibung einlesen kann.

nun will ich das eingelesene bild mittels imagemagick an eine vorgegebene grösse anpassen:

system("convert -resize x200 $file small/small`basename $file .jpg`.jpeg");
system("convert -resize 500 $file big/big`basename $file .jpg`.jpeg");

nun weiss ich leider nicht, wo ich das einbinden muss.

gruss stefan

silverzone ·

ja das hilft mir leider nicht weiter, da die bilder danach von flash genutzt werden. eigentlich suche ich einfach die stelle, wo der neue datensatz angelegt wird und dort sollten dann meine 2 zeilen rein kommen.

just2b ·

und warum machst du das ganze nicht dann bei der ausgabe?
zB so

			$file = 'uploads/tx_rgwallpapermodern/'. $row['image'];
			$imgTSConfig = Array();
			$imgTSConfig['file'] = $file;
			$imgTSConfig['file.']['maxW'] = $this->config['widthLarge'];
			$imgTSConfig['file.']['maxH'] = $this->config['heightLarge'];
			$imgTSConfig['altText'] = $row['title'];
			$imgTSConfig['titleText'] = $row['title'];
			$markerArray['###SINGLE_IMAGE###'] = $this->cObj->IMAGE($imgTSConfig);

lg georg

silverzone ·

also:

ich habe eigene ext, wo man ein bild + beschreibung reinladen kann. (per kickstarter)

schlussendlich sieht das so aus:
http://www.rosmariekurmann.ch/betatest/bilder.php?kat=Rosenbilder
ist nicht fertig...

und das flash brauch also die grosse und kleine datei. daher will ich doch einfach, wenn man ein bild in die gallery lädt, dass es dann gleich kopiert und verkleinert wird. zusätzlich muss bei der erstellung des tumbnails auch die breite des bildes in die db schreiben, da flash diese nicht auslesen kann.

bei einer realtime--generierung würde das viel zu lange gehen.

also muss das einfach beim upload geschehen. geht das denn nicht oder was?

gruss stefan

//edit es können bis zu 50 bilder sein

silverzone ·

habe herausgefunden, dass ein neuer record mit:

exec_INSERTquery

erstellt wird. weiss niemand wo bei einer extension diese funktion aufgerufen wird?

olly ·

Hi,

exec_INSERTquery ist der allgemeine Aufruf, immer dann, wenn eine beliebige Zeile in die Datenbank geschrieben wird (gehört zu t3lib_db). Aber das ist mit Sicherheit nicht das was Du suchst, da diese Funktion auch ausgeführt wird, wenn z.B. ein Eintrag ins Log geschrieben wird.

Die Sache mit dem Flash könnte man z.B. mit einem XML lösen. Das Flash-File liest ein dynamisch generiertes XML und dort stehen z.B. die konvertierten Bild-Dateien, sowie Breite und Höhe der Bilder.

Um auf Deine Frage bzgl. den exec/system-Aufrufen zurückzukommen:

z.B. in ext_tables.php oder tca.php Deiner Extension folgendes einfügen:

if (is_array($_REQUEST['edit']['tx_myext_mytable']) && !isset($_REQUEST['data'])) {
  system(...);
}

Ich hab das nicht getestet, aber es könnte eine Lösung für Dich sein. myext und mytable sind natürlich entsprechend auf Deine Bedürfnisse anzupassen. $_REQUEST['edit'] besagt, dass ein Datensatz bearbeitet wird. Evtl. müsste noch die id des Datensatzes abgefragt werden, da die Aufrufe nur bei neuen Einträgen ausgeführt werden sollen - Stichwort 'NEW' bei der ID.

Zum Debuggin kannst Du Dir ja mal das Array $_REQUEST['edit']['tx_myext_mytable'] ausgeben lassen.

- olly