Author Topic: XML/mz3 Update Script  (Read 2622 times)

Paroled

  • Newbie
  • *
  • Posts: 21
XML/mz3 Update Script
« on: July 26, 2010, 11:30:08 am »
Deutsch: blauer Text
english: black text


Hallo,

hier veröffentliche ich ein ganz simples Update Script für die megazine.mz3-Datei.

Dieses Script liest einfach nur euren Bilderordner aus und übergibt die Werte an die megazine.mz3.

Funktionen:
- auslesen des Ordners, welcher die Bilder/Dateien enthält
- eintragen der Bild-/Datei-Namen in Alphabetischer Reihenfolge in die megazine.mz3
- ImageResize zur proportionalen Skalierung der Bilder auf einen festgelegten Wert
- komplett an eigene Anforderungen anpassbar


So... now i try to post also in english ::)

This is a simple Update Script for the megazine.mz3 file. This Script readout all files from your images folder and write it into the megazine.mz3.

Functions:
- files in images folder will be read
- update megazine.mz3 with the new data in alphabetic order
- ImageResize to scale the images onto a fixed value
- completely customizable for your own requirements


Das Script / The Script:
Code: (php)
  1. <?
  2. /*Öffnen des Ordners der die Bilder/Dateien enthält*/
  3. $open_dir=(opendir("bilder"));
  4.  
  5. /*Schreiben des ersten Teils der megazine.mz3*/
  6. $xml_datei = "megazine.mz3";
  7. $datei_neu = fopen($xml_datei,"w+");
  8. fwrite($datei_neu, "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n");
  9. fwrite($datei_neu, "<!DOCTYPE book SYSTEM \"http://www.megazine3.de/megazine2.dtd\">\n");
  10. fwrite($datei_neu, "<book\n");
  11. fwrite($datei_neu, "pagewidth=\"400\"\n");
  12. fwrite($datei_neu, "pageheight=\"600\"\n");
  13. fwrite($datei_neu, "lang=\"de,en\"\n");
  14. fwrite($datei_neu, "plugins=\"anchors, backgroundsounds, batchpages, javascript, gallery, keyboardnavigation, links, navigationbar, overlays, print, slideshow, swfaddress, titles\"\n");
  15. fwrite($datei_neu, "centercovers=\"true\"\n");
  16. fwrite($datei_neu, ">\n");
  17. fwrite($datei_neu, "<foreground>\n");
  18. fwrite($datei_neu, "</foreground>\n");
  19. fwrite($datei_neu, "<chapter>\n");
  20. fwrite($datei_neu, "<page bgcolor=\"0x111111\" stiff=\"true\">\n");
  21. fwrite($datei_neu, "</page>\n");
  22. fclose($datei_neu);
  23.  
  24. /*Funktion zur Bildgrößenanpassung*/
  25. function imageResize($width, $height, $target) {
  26.   if ($width > $height) {
  27.      $percentage = ($target / $width);
  28.   } else {
  29.      $percentage = ($target / $height);
  30.   }
  31.  
  32.   $width = round($width * $percentage);
  33.   $height = round($height * $percentage);
  34.  
  35.   return "width=\"$width\" height=\"$height\"";
  36. }
  37.  
  38. /*Alle Dateien auslesen*/
  39. while ($dateien=readdir($open_dir)){  
  40.  
  41. /*Funktion zur Bildgrößenanpassung*/
  42. $mysock = getimagesize("bilder/$dateien");
  43.  
  44.   /*Ausschließen von Ordnern und Verzeichnissprüngen*/
  45.   if (!is_dir("bilder/$dateien") && $dateien!="." && $dateien!=".."){
  46.      /*Ausgelesene Dateien anzeigen*/
  47.      echo "$dateien<br />";
  48.      /*Schreiben des dynamischen Inhalts*/
  49.      $datei = fopen($xml_datei,"a+");
  50.      fwrite($datei, "<page bgcolor=\"0x111111\" align=\"center\">\n");
  51.      fwrite($datei, "<img src=\"bilder/$dateien\" hires=\"bilder/$dateien\" position=\"center middle\" ".imageResize($mysock[0], $mysock[1], 150)." />\n");
  52.      fwrite($datei, "</page>\n");
  53.      fclose($datei);
  54.   }
  55. }
  56.  
  57. /*Schreiben des letzten Teils der megazine.mz3*/
  58. $datei = fopen($xml_datei,"a");
  59. fwrite($datei, "<page bgcolor=\"0x111111\" stiff=\"true\">\n");
  60. fwrite($datei, "</page>\n");
  61. fwrite($datei, "</chapter>\n");
  62. fwrite($datei, "</book>\n");
  63. fclose($datei);
  64. closedir($open_dir);
  65.  
  66. /*Erfolgsmeldung anzeigen*/
  67. echo "<br /><br /><br />Die Datei megazine.mz3 wurde aktualisiert";
  68.  
  69. ?>
  70.  


Erklärungen:
(hervorgegangen aus einem Script mit dem man Inhalte verschiedener Ordner auslesen und in je eine, dem Ordnernamen entsprechende, Datei schreiben lässt)

Das Script muss, so wie es jetzt ist, in das Verzeichnis der megazine.mz3 gelegt werden - nach Anpassung der Pfade kann es natürlich auch in andere Ordner gepackt oder direkt zu einem Adminbereich hinzugefügt werden!

Zeile 3:
Variable zum Öffnen des Ordners welcher die Bilder/Dateien enthält - in diesem Fall heißt der Ordner "bilder" (einfach ändern, wenn der Ordner anders heißt)

Zeilen 6-22:
Schreiben des ersten Teils der megazine.mz3 -> erst öffnen, wenn nicht vorhanden erstellen -> Am anfang xml-Version und Doctype -> dann "<book..." mit den ganzen Einstellungen und Plugins sowie dem Cover

Zeilen 25-36:
Funktion zur Bildgrößenanpassung

Zeile 39:
Der Bilderordner wird geöffnet und die enthaltenen Bilder ausgelesen.

Zeile 42:
Die Bildgröße wird ermittelt.

Zeilen 45-55:
Der dynamische Inhalt wird solange in einer Schleife geschrieben, bis alle ausgelesenen Bilder/Dateien erfasst und eingetragen wurden. Gleichzeitig werden die ausgelesenen Dateinamen per "echo" ausgegeben.

Zeilen 58-64:
Der letzte, und wieder feste, Inhalt der megazine.mz3 wird geschrieben (Buchrücken und Abschluß der megazine.mz3) und die Datei und der Ordner werden geschlossen.

Zeile 67:
Nun wird noch eine Erfolgsmeldung ausgegeben.


Explanations:
(this Script is a high modified Script which reads contents from various folders and writes it into a file (filename like foldername)

Put this Script into the folder where megazine.mz3 - after changing pathes it also can be in another folder or added directly to an webinterface/administration panel!

line 3:
create variable to open folder contains files - in this case folder is "bilder" (here you can change path and/or folder)

line 6-22:
writing first (static) part of megazine.mz3 -> first open megazine.mz3 (if missing file will be createt) -> on the comes xml-version and doctype -> the "<book..." with various settings, plugins and the cover

line 25-36:
ImageResize Funktion

line 39:
open images folder and read all files

line 42:
detect size of images

line 45-55:
dynamic content will be written until all files from images folder are read and written to megazine.mz3. at the same time filenames will be postet to you with "echo".

line 58-64:
Last and once more static part e.g. Cover backside and closing tags will be written, and megazine.mz3 and the folder will be closed

line 67:
Last but not least a success message will be postet with "echo"


Natürlich ist das ganze Script noch ausbaufähig, erfüllt aber vollkommen seinen Zweck - in Verbindung mit einem kleinen Webinterface kann man nun auf einfache Weise online neue Bilder hoch laden und automatisch die megazine.mz3 aktualisieren.


of course this script is expandable but it achieve one's purpose - combined with a webinterface you can upload new files and update the megazine.mz3 file very simple.

At next post i show you an extended update script with mysql-support...


Im folgenden Beitrag veröffentliche ich dann ein erweitertes Update Script mit MySQL-Unterstützung...


MfG und viel Spaß



regards

@english users - please forgive my english, i'm german and shool is a long time ago ::) if you have questions feel free to ask ;)
« Last Edit: August 06, 2010, 09:43:46 pm by Paroled »

Paroled

  • Newbie
  • *
  • Posts: 21
XML/mz3/MySQL Update Script
« Reply #1 on: July 27, 2010, 06:40:42 am »
Deutsch: blauer Text
english: black text


Wie versprochen kommt nun die 1. Version des Update Scripts mit MySQL-Unterstützung.

Funktionen:
- auslesen der Bilder/Dateien sowie zusätzlichen Angaben aus der MySQL-Datenbank
- eintragen der Bild-/Datei-Namen sowie der zusätzlichen Angaben, sortiert nach ID, in die megazine.mz3
- Auf jeder linken Seite das Bild, auf jeder rechten Seite zusätzlicher Text
- ImageResize zur proportionalen Skalierung der Bilder auf einen festgelegten Wert
- Anlegen von statischen Seiten inklusive Hintergrundbild (Buchdeckel/Cover, Prolog, Inhaltsverzeichnis, Epilog, Buchrücken)
- komplett an eigene Anforderungen anpassbar



as promised here is the extendedupdate script with mysql-support

Functions:
- read images/files and additional contents from a MySQL-Database
- write images/files and additional contents in order of the ID into megazine.mz3 file
- on each left site comes the image, on right sites the additional content
- ImageResize to scale the images onto a fixed value
- structure static sites including backgroundimages (covers, index, prolog and epilog)
- completely customizable for your own requirements


Das Script / the script:
Code: (php)
  1. <?php
  2. include('header.php');
  3. require('connect.inc.php');
  4.  
  5. /*Tabelle der Datenbank für das Inhaltsverzeichnis wählen
  6. Select database table for index*/
  7. $inhalt = mysql_query("SELECT * FROM `bilder` ORDER BY `id`");
  8.  
  9. /*Configdatei angeben
  10. select config file*/
  11. $xml_datei = "../megazine/megazine.mz3";
  12.  
  13. /*Configdatei öffnen, falls nicht vorhanden erstellen
  14. open config files otherwise create*/
  15. $datei_neu = fopen($xml_datei,"w+");
  16.  
  17. /*Schreiben des ersten statischen Teils der Configdatei
  18. writing of first static part*/
  19. fwrite($datei_neu, "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
  20. fwrite($datei_neu, "<!DOCTYPE book SYSTEM \"http://www.megazine3.de/megazine2.dtd\">\n");
  21.  
  22. //Einstellungen die das Buch betreffen
  23. //setting of the book
  24. fwrite($datei_neu, "<book\n");
  25. fwrite($datei_neu, "pagewidth=\"400\"\n");
  26. fwrite($datei_neu, "pageheight=\"600\"\n");
  27. fwrite($datei_neu, "lang=\"de,en\"\n");
  28. fwrite($datei_neu, "plugins=\"anchors, backgroundsounds, batchpages, help, javascript, keyboardnavigation, links, navigationbar, overlays, print, slideshow, swfaddress, gallery, pdflinks, titles\"\n");
  29. fwrite($datei_neu, "centercovers=\"true\"\n");
  30. fwrite($datei_neu, "pagethickness=\"0.3\"\n");
  31. fwrite($datei_neu, "maxloaded=\"32\"\n");
  32. fwrite($datei_neu, "minscale=\"0.5\"\n");
  33. fwrite($datei_neu, "bgcolor=\"0xCCCC99\"\n");
  34. fwrite($datei_neu, "thumbloadtext=\"\"\n");
  35. fwrite($datei_neu, "thumbloadtextsize=\"6\"\n");
  36. fwrite($datei_neu, "zoomminscale=\"0.5\"\n");
  37. fwrite($datei_neu, "zoommaxscale=\"4.0\"\n");
  38. fwrite($datei_neu, "zoomsnap=\"0.5, 0.75, 1.0, 1.5, 2.0, 3.0, 4.0\"\n");
  39. fwrite($datei_neu, "zoomsteps=\"2\"\n");
  40. fwrite($datei_neu, "qualitycontrol=\"true\"\n");
  41. fwrite($datei_neu, "thumbscale=\"0.25\"\n");
  42. fwrite($datei_neu, "dragkeepdist=\"100\"\n");
  43. fwrite($datei_neu, "dragrange=\"25\"\n");
  44. fwrite($datei_neu, "dragspeed=\"0.25\"\n");
  45. fwrite($datei_neu, "foldfx=\"1\"\n");
  46. fwrite($datei_neu, "fadein=\"true\"\n");
  47. fwrite($datei_neu, "elementsfadein=\"false\"\n");
  48. fwrite($datei_neu, "galleryalign=\"center middle\"\n");
  49. fwrite($datei_neu, "galleryfade=\"true\"\n");
  50. fwrite($datei_neu, "galleryfs=\"true\"\n");
  51. fwrite($datei_neu, "cornerhint=\"false\"\n");
  52. fwrite($datei_neu, "shadows=\"0.5\"\n");
  53. fwrite($datei_neu, "startpage=\"1\"\n");
  54. fwrite($datei_neu, "pageoffset=\"0\"\n");
  55. fwrite($datei_neu, "instantjumpcount=\"100\"\n");
  56. fwrite($datei_neu, ">\n");
  57.  
  58. //Einstellungen für den Vordergrund
  59. //settings foreground
  60. fwrite($datei_neu, "<foreground>\n");
  61. fwrite($datei_neu, "</foreground>\n");
  62.  
  63. //Kapitel wird erstellt
  64. //create chapter
  65. fwrite($datei_neu, "<chapter>\n");
  66.  
  67. //Buchdeckel/Cover wird erstellt
  68. //create cover
  69. fwrite($datei_neu, "<page anchor=\"buchdeckel\" bgcolor=\"0x222222\" stiff=\"true\">\n");
  70. fwrite($datei_neu, "<img width=\"pagew\" height=\"pageh\">\n");
  71. fwrite($datei_neu, "<src lang=\"de\">data/buchdeckel.jpg</src>\n");
  72. fwrite($datei_neu, "</img>\n");
  73. fwrite($datei_neu, "</page>\n");
  74.  
  75. //Erste Seite (Prolog) wird erstellt
  76. //create first site (prolog)
  77. fwrite($datei_neu, "<page anchor=\"einleitung\" bgcolor=\"0x222222\" align=\"center\">\n");
  78. fwrite($datei_neu, "<img width=\"pagew\" height=\"pageh\">\n");
  79. fwrite($datei_neu, "<src lang=\"de\">data/einleitung.jpg</src>\n");
  80. fwrite($datei_neu, "</img>\n");
  81. fwrite($datei_neu, "</page>\n");
  82.  
  83. //Zweite Seite (Inhaltsverzeichnis) wird erstellt - statischer Teil 1
  84. //create second site (index) - static part 1
  85. fwrite($datei_neu, "<page anchor=\"inhalt\" bgcolor=\"0x222222\" align=\"center\">\n");
  86. fwrite($datei_neu, "<img width=\"pagew\" height=\"pageh\">\n");
  87. fwrite($datei_neu, "<src lang=\"de\">data/inhalt.jpg</src>\n");
  88. fwrite($datei_neu, "</img>\n");
  89. fwrite($datei_neu, "<nav align=\"center\" color=\"0x423e21\" hover=\"0x5e5934\" width=\"325\" left=\"25\" top=\"100\">\n");
  90.  
  91. //Schreiben des dynamischen Inhaltsverzeichnisses (Links) solange bis alle Inhalte eingetragen sind
  92. //write dynamic index (links)
  93. while($inhalt1 = mysql_fetch_object($inhalt)){
  94. fwrite($datei_neu, "<lnk lang=\"de\" url=\"anchor:".$inhalt1->bild."\"><![CDATA[<font face=\"serif\" size=\"18\">".$inhalt1->name."</font>]]></lnk>\n");
  95. }
  96.  
  97. //Schreiben des statischen Inhaltsverzeichnisses (Links) für zusätzliche statische Inhalte
  98. //write static index for additional content (like impressum)
  99. fwrite($datei_neu, "<lnk lang=\"de\" url=\"anchor:impressum\"><![CDATA[<font face=\"serif\" size=\"18\">Impressum</font>]]></lnk>\n");
  100.  
  101. //Zweite Seite (Inhaltsverzeichnis) wird erstellt - statischer Teil 2
  102. //create second site (index) - static part 2
  103. fwrite($datei_neu, "</nav>\n");
  104. fwrite($datei_neu, "</page>\n");
  105.  
  106. //Schließen der bearbeiteten oder neu angelegten Configdatei
  107. //close config file
  108. fclose($datei_neu);
  109.  
  110.  
  111. /*Ausgabe des 1. statischen Teils der Meldung welche Datensätze aus der Datenbank in die Configdatei eingetragen werden
  112. print 1. part of static message which data sets were written into the config file*/
  113. echo "<table width=\"100%\" bgcolor=\"#000000\" border=\"0\" cellpadding=\"5\" cellspacing=\"1\" align=\"center\">";
  114. echo "<tr>";
  115. echo "<td bgcolor=\"black\" align=\"center\">";
  116. echo "<font color=\"white\"><b>Homepage aktualisieren</b></font>";
  117. echo "</td>";
  118. echo "</tr>";
  119. echo "<tr>";
  120. echo "<td bgcolor=\"#e7e7e7\" align=\"center\">";
  121. echo "<br /><b>Folgende Dateien wurden auf der Homepage aktualisiert:</b><br /><br />";
  122. echo "<table border=\"1\" width=\"100%\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" cellpadding=\"5\" cellspacing=\"2\">";
  123. echo "<tr>";
  124. echo "<td align=\"center\"><b>Vorschaubild</b></td>";
  125. echo "<td align=\"center\"><b>ID</b></td>";
  126. echo "<td align=\"center\"><b>Name</b></td>";
  127. echo "<td align=\"center\"><b>Dateiname</b></td>";
  128. echo "<td align=\"center\"><b>Beschreibung</b></td>";
  129. echo "<td align=\"center\"><b>Material</b></td>";
  130. echo "<td align=\"center\"><b>Gr&ouml;&szlig;en</b></td>";
  131. echo "<td align=\"center\"><b>Farben</b></td>";
  132. echo "</tr>";
  133.  
  134. /*Funktion zur Bildgrößenanpassung
  135. ImageResize function*/
  136. function imageResize($width, $height, $target) {
  137. if ($width > $height) {
  138. $percentage = ($target / $width);
  139. } else {
  140. $percentage = ($target / $height);
  141. }
  142.  
  143. $width = round($width * $percentage);
  144. $height = round($height * $percentage);
  145.  
  146. return "width=\"$width\" height=\"$height\"";
  147. }
  148.  
  149. /*Tabelle der Datenbank für die Datensätze wählen
  150. Select database table for data sets*/
  151. $abfrage = mysql_query("SELECT * FROM `bilder` ORDER BY `id`");
  152.  
  153. /*Datensätze geordnet nach ID ausgeben und in die Configdatei einfügen bis alle Datensätze eingefügt sind
  154. read data sets and write in config file*/
  155. while ($ausgabe = mysql_fetch_object($abfrage)){
  156.  
  157. //Variable für die Funktion Bildgrößenanpassung erstellen
  158. //create  ImageResize variable
  159. $mysock = getimagesize("../megazine/bilder/".$ausgabe->bild."");
  160.  
  161. /*Ausgabe des dynamischen Teils der Meldung welche Datensätze (hier Dateiname.Endung) in die Configdatei eingetragen wurden
  162. print dynamic part of messega which data sets were written into the config file*/
  163. echo '<tr>';
  164. echo "<td align=\"center\"><a href=\"../megazine/bilder/".$ausgabe->bild."\" alt=\"Vergr&ouml;&szlig;ern\" target=\"_blank\" onClick=\"window.open('../megazine/bilder/".$ausgabe->bild."','".$ausgabe->bild."','width=800,height=600,scrollbars=yes,location=no,menubar=no,status=no,toolbar=no,resizable=yes,hotkeys=yes');this.blur(); return false;\"><img src=\"../megazine/bilder/".$ausgabe->bild."\" ".imageResize($mysock[0], $mysock[1], 150)." /></a></td>";
  165. echo "<td align=\"center\">".$ausgabe->id."</td>";
  166. echo "<td align=\"center\">".$ausgabe->name."</td>";
  167. echo "<td align=\"center\">".$ausgabe->bild."</td>";
  168. echo "<td align=\"center\">".$ausgabe->beschreibung."</td>";
  169. echo "<td align=\"center\">".$ausgabe->material."</td>";
  170. echo "<td align=\"center\">".$ausgabe->groessen."</td>";
  171. echo "<td align=\"center\">".$ausgabe->farben."</td>";
  172. echo '</tr>';
  173.  
  174. /*Configdatei öffnen und zum Ende gehen
  175. open config file and goto end*/
  176. $datei = fopen($xml_datei,"a+");
  177.  
  178. /*Schreiben der Datensätze in die Configdatei
  179. write data sets into config file*/
  180.  
  181. //Auf die linke Seite kommt das Bild und ein Anker mit dem jeweiligen Dateinamen welcher im Inhaltsverzeichnis als Link zur Seite ausgegeben wird
  182. //on left sites comes the image including an anchor with the corresponding filename wich posted at index as a link
  183. //Hochauflösende Bilder sind zur Zeit gleichzeitig die angezeigten Bilder (src == hires) - durch "imageResize" spart man an Upload
  184. //high quality images at the moment are also showing images (src == hires) because ImageResize function
  185. fwrite($datei, "<page anchor =\"".$ausgabe->bild."\" bgcolor=\"0x222222\" align=\"center\">\n");
  186. fwrite($datei, "<img src=\"bilder/".$ausgabe->bild."\" hires=\"bilder/".$ausgabe->bild."\" position=\"center middle\" ".imageResize($mysock[0], $mysock[1], 350)." gallery=\"bilder\" />\n");
  187. fwrite($datei, "</page>\n");
  188.  
  189. //Auf die rechte Seite kommen die zusätzlichen Daten aus der Datenbank
  190. //on right sites comes the additional contents
  191. //Tabellarischer Aufbau der TXT-Areas durch "left" und "width" Angaben
  192. //table like view with <txt>areas because "left" and "width" values
  193. fwrite($datei, "<page bgcolor=\"0x222222\" align=\"center\">\n");
  194. fwrite($datei, "<txt top=\"50\" left=\"25\" width=\"100\" align=\"left\" selectable=\"false\" color=\"#888888\">\n");
  195. fwrite($datei, "<content><![CDATA[\n");
  196. fwrite($datei, "Name:\n");
  197. fwrite($datei, "]]></content>\n");
  198. fwrite($datei, "</txt>\n");
  199. fwrite($datei, "<txt top=\"50\" left=\"125\" width=\"250\" align=\"left\" selectable=\"false\" color=\"#888888\">\n");
  200. fwrite($datei, "<content><![CDATA[\n");
  201. fwrite($datei, "".$ausgabe->name."\n");
  202. fwrite($datei, "]]></content>\n");
  203. fwrite($datei, "</txt>\n");
  204. fwrite($datei, "<txt top=\"100\" left=\"25\" width=\"100\" align=\"left\" selectable=\"false\" color=\"#888888\">\n");
  205. fwrite($datei, "<content><![CDATA[\n");
  206. fwrite($datei, "Beschreibung:\n");
  207. fwrite($datei, "]]></content>\n");
  208. fwrite($datei, "</txt>\n");
  209. fwrite($datei, "<txt top=\"100\" left=\"125\" width=\"250\" align=\"left\" selectable=\"false\" color=\"#888888\">\n");
  210. fwrite($datei, "<content><![CDATA[\n");
  211. fwrite($datei, "".$ausgabe->beschreibung."\n");
  212. fwrite($datei, "]]></content>\n");
  213. fwrite($datei, "</txt>\n");
  214. fwrite($datei, "<txt top=\"250\" left=\"25\" width=\"100\" align=\"left\" selectable=\"false\" color=\"#888888\">\n");
  215. fwrite($datei, "<content><![CDATA[\n");
  216. fwrite($datei, "Material:\n");
  217. fwrite($datei, "]]></content>\n");
  218. fwrite($datei, "</txt>\n");
  219. fwrite($datei, "<txt top=\"250\" left=\"125\" width=\"250\" align=\"left\" selectable=\"false\" color=\"#888888\">\n");
  220. fwrite($datei, "<content><![CDATA[\n");
  221. fwrite($datei, "".$ausgabe->material."\n");
  222. fwrite($datei, "]]></content>\n");
  223. fwrite($datei, "</txt>\n");
  224. fwrite($datei, "<txt top=\"400\" left=\"25\" width=\"100\" align=\"left\" selectable=\"false\" color=\"#888888\">\n");
  225. fwrite($datei, "<content><![CDATA[\n");
  226. fwrite($datei, "Größen:\n");
  227. fwrite($datei, "]]></content>\n");
  228. fwrite($datei, "</txt>\n");
  229. fwrite($datei, "<txt top=\"400\" left=\"125\" width=\"250\" align=\"left\" selectable=\"false\" color=\"#888888\">\n");
  230. fwrite($datei, "<content><![CDATA[\n");
  231. fwrite($datei, "".$ausgabe->groessen."\n");
  232. fwrite($datei, "]]></content>\n");
  233. fwrite($datei, "</txt>\n");
  234. fwrite($datei, "<txt top=\"450\" left=\"25\" width=\"100\" align=\"left\" selectable=\"false\" color=\"#888888\">\n");
  235. fwrite($datei, "<content><![CDATA[\n");
  236. fwrite($datei, "Farben:\n");
  237. fwrite($datei, "]]></content>\n");
  238. fwrite($datei, "</txt>\n");
  239. fwrite($datei, "<txt top=\"450\" left=\"125\" width=\"250\" align=\"left\" selectable=\"false\" color=\"#888888\">\n");
  240. fwrite($datei, "<content><![CDATA[\n");
  241. fwrite($datei, "".$ausgabe->farben."\n");
  242. fwrite($datei, "]]></content>\n");
  243. fwrite($datei, "</txt>\n");
  244. fwrite($datei, "</page>\n");
  245.  
  246. /*Schließen der bearbeiteten Configdatei
  247. close edited config file*/
  248. fclose($datei);
  249. }
  250.  
  251. /*Ausgabe des 2. statischen Teils der Meldung welche Datensätze aus der Datenbank in die Configdatei eingetragen wurden
  252. print second static part of message which data sets were written into the config file*/
  253. echo "</table>";
  254. echo "</td>";
  255. echo "</tr>";
  256. echo "</table>";
  257. echo "<br />";
  258.  
  259. /*Configdatei öffnen und zum Ende gehen
  260. open config file and goto end*/
  261. $datei = fopen($xml_datei,"a");
  262.  
  263. /*Schreiben des zweiten statischen Teils der Configdatei
  264. write second static part in the config file*/
  265. fwrite($datei, "<page bgcolor=\"0x222222\" align=\"center\">\n");
  266. fwrite($datei, "</page>\n");
  267. fwrite($datei, "<page anchor=\"impressum\" bgcolor=\"0x222222\" align=\"center\">\n");
  268. fwrite($datei, "<img width=\"400\" height=\"600\">\n");
  269. fwrite($datei, "<src lang=\"de\">data/impressum.jpg</src>\n");
  270. fwrite($datei, "</img>\n");
  271. fwrite($datei, "</page>\n");
  272. fwrite($datei, "<page anchor=\"buchruecken\" bgcolor=\"0x222222\" stiff=\"true\">\n");
  273. fwrite($datei, "<img width=\"400\" height=\"600\">\n");
  274. fwrite($datei, "<src lang=\"de\">data/buchruecken.jpg</src>\n");
  275. fwrite($datei, "</img>\n");
  276. fwrite($datei, "</page>\n");
  277. fwrite($datei, "</chapter>\n");
  278. fwrite($datei, "</book>\n");
  279.  
  280. /*Schließen der bearbeiteten Configdatei
  281. close edited config file*/
  282. fclose($datei);
  283.  
  284. include('footer.php');
  285. ?>


Erklärungen:
(Erweitertes Update Script für die megazine.mz3 mit MySQL-Unterstützung und Textausgaben)

Das Script kann, so wie es jetzt ist, in irgendein Ordner im Rootverzeichnis abgelegt werden.

Die Schritte sind im Script selbst erklärt  ;)




Nun wieder viel Spaß mit dem Script


MfG Paro[/color]




Explanations:
(extended update script for megazine.mz3 file with MySQL support and text output)

This script can uploaded into any folder in the root.

The steps of the script are described in the script self!


And now have fun with this script

regards


« Last Edit: August 10, 2010, 06:02:34 am by Paroled »

wdscharff

  • Newbie
  • *
  • Posts: 22
    • web57.ws/books/
Re: dynamischer Inhalt per php und MySql
« Reply #2 on: July 27, 2010, 06:58:05 pm »
a.  ich bekomme eine fehlermeldung_
"Warning: fclose(): supplied argument is not a valid stream resource in /www/......../demos/test/megazine/megazine.php on line 22"
b. es funktioniert trotzdem

wenn jede Seite ein JPG ist, man also alle Inhalte schon in ein JPG gebacken hat, oder eine Seite nur ein zentriertes JPG enthält, dann reicht das script schon fast so wie es ist.
aber was z.B. gar nicht abgefangen wird, wenn ein Bild größer als die Seitenabmessungen ist,  könnte man sowas nicht dadurch abfangen, dass in solchen Fällen explizit die width=" " und height=" " statements eingefügt werden? (nur eine frage, ich hab keine ahnung vom programmieren)
Wobei ich Bilderalben mit nur einem Bild pro Seite eigentlich als ein bisschen zu generisch ansehe.
Mein (erstes!) Album auf der Basis von Megazine http://web57.ws/books/v1_macro/ enthält oft mehrere Bilder pro Seite und verweist dazu noch auf hires Bilder.

nichtsdesdotrotz finde ich den Ansatz deines scriptes interessant, vielleicht wird daraus ja mal eine richtige Verwaltungsoberfläche

lg.



Hans Nücke

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 787
  • MegaZine3 Sales Manager
Re: dynamischer Inhalt per php und MySql
« Reply #3 on: July 27, 2010, 10:57:00 pm »
Dafür, dass es das erste Buch ist, finde ich es SUPER gelungen! Sehr schöne Aufnahmen. Habe selber schon etwas mit Makro gespielt; ist ein tolles Hobby. Kostet aber viel Geduld und Zeit; ud man braucht auch einieges an Erfahrung.

Die Aufteilung ist auch schön: Doppelseiten, mehrere Bilder auf einer Seite, ...

Sobald man ein Buch recht individuell gestaltet muss man entweder auf XML Ebene Hand anlegen oder über Photoshop/InDesign/Word oder ähnliche Programme PDF Seiten erzeugen.

Eine generische Unterstützung wird entweder recht schnell ausufern und damit dann auch wieder schwieriger zu bedienen sein, oder muss sich auf das Erzeugen eines Rahmens beschränken. Und da ist das php Skript (es gitb unter Contributions noch einen wieteren Ansatz hier im Forum) sicher ein prgamatischer Weg. Wir stellen ein paar Command Files zur Verfügung, die auch einen Buchrahmen erzeugen können: Ein Update wird es bald geben.
Der Link ist dann unter dem Tab Tutorials unter www.vservu.de zu finden.

Ich werde das "Makrobuch" in meinem Blog veröffentlichen; ich hoffe, das ist OK?!?
MegaZine3 Beispielbücher

wdscharff

  • Newbie
  • *
  • Posts: 22
    • web57.ws/books/
Re: dynamischer Inhalt per php und MySql
« Reply #4 on: July 28, 2010, 01:06:00 am »
Danke für die positive Resonanz zu meinen Bildern (und dem Buch)

Quote
obald man ein Buch recht individuell gestaltet muss man entweder auf XML Ebene Hand anlegen oder über Photoshop/InDesign/Word oder ähnliche Programme PDF Seiten erzeugen.
Nachdem ich die Logik verstand (ich hab mir die megazine.mz3 Dateien einiger Anderer angesehen) und nach der ersten Anfangshürden, war es eigentlich ganz einfach, das Meiste lief dann auf copy&paste raus.  Ein paar Kleinigkeiten haben mich irritiert, oder ich hab die Lösung übersehen? Geht es wirklich nicht einen Anker auf ein <chapter> zu setzen und auf eine spreadpage geht wohl auch nicht. Auf jeden Fall ist es ein tolles script (oder Programm, oder was auch immer) und liegt hinsichtlich erreichbarem Ergebniss weit vor all den anderen Pageflip Systemen (da ich die Buchform mag, hab ich die Meisten irgendwann schonmal ausprobiert).
Den Einstieg für "absolut beginners" könnte man vielleicht ein bisschen erleichtern, das und wie man mehrere Bilder auf einer Seite anordnen kann habe ich z.B. nicht der Dokumentation entnommen (meine Englischkenntnisse sind aber auch minimal), sondern den mz3 Dateien einiger Beispiele aus dem Blog. Im Nachhinein gesehen ist alles in sich logisch, aber wenn man sowas zum erstenmal macht .... :). Die nächsten Bücher werden leichter :-)

natürlich hab ich nichts gegen eine Veröffentlichung in deinem Blog

Quote
Eine generische Unterstützung wird entweder recht schnell ausufern und damit dann auch wieder schwieriger zu bedienen sein, oder muss sich auf das Erzeugen eines Rahmens beschränken.
leuchtet ein.  Im Endeffekt benötigte ich dann auch deutlich mehr Zeit dafür Bilder auszusuchen und aufzubereiten, als zum Editieren in der mz3 Datei.

Paroled

  • Newbie
  • *
  • Posts: 21
Re: dynamischer Inhalt per php und MySql
« Reply #5 on: July 28, 2010, 12:35:49 pm »
a.  ich bekomme eine fehlermeldung_
"Warning: fclose(): supplied argument is not a valid stream resource in /www/......../demos/test/megazine/megazine.php on line 22"
b. es funktioniert trotzdem

wenn jede Seite ein JPG ist, man also alle Inhalte schon in ein JPG gebacken hat, oder eine Seite nur ein zentriertes JPG enthält, dann reicht das script schon fast so wie es ist.
aber was z.B. gar nicht abgefangen wird, wenn ein Bild größer als die Seitenabmessungen ist,  könnte man sowas nicht dadurch abfangen, dass in solchen Fällen explizit die width=" " und height=" " statements eingefügt werden? (nur eine frage, ich hab keine ahnung vom programmieren)
Wobei ich Bilderalben mit nur einem Bild pro Seite eigentlich als ein bisschen zu generisch ansehe.
Mein (erstes!) Album auf der Basis von Megazine http://web57.ws/books/v1_macro/ enthält oft mehrere Bilder pro Seite und verweist dazu noch auf hires Bilder.

nichtsdesdotrotz finde ich den Ansatz deines scriptes interessant, vielleicht wird daraus ja mal eine richtige Verwaltungsoberfläche

lg.

Hallo, erstmal danke

Da MegaZine3 in diesem Fall nur je ein Bild pro Seite (und auf der nächsten Seite, also daneben, dann die Ausgabe aus der Datenbank wie Beschreibung uvm) anzeigen soll, reicht dieses Script vollkommen aus - ich habs nur veröffentlicht, weil ich mir dachte, wer auch so geringe Anforderungen an MegaZine3 stellt kann bestimmt etwas damit anfangen - wer mehr braucht und die Kenntnisse hat, ist in der Lage das ganze um etliche Funktionen zu erweitern.
Da ich selbst bis zu diesem Projekt nur wenig grundlegende Kenntnisse von PHP, MySql sowie XML hatte ist halt "nur" solch ein Script dabei herausgekommen - nun hab ich mittlerweile einen Großteil des Webinterfaces (Upload, Verwaltung, Vorschau der Dateien sowie der Daten aus der Datenbank und löschen) fertsch und mir bei dieser Arbeit auch mehr Kenntnisse in Sachen PHP und MySQl verschafft, so dass ich das Script nun weiter anpassen werden...

LEIDER habsch in Sachen XML noch nich viel mehr dazugelernt, ich hänge grad daran, wie ich reine Texte am besten in Tabellen oder DIVs auf eine <page> ausgeben kann - kannst Du mir evtl. nen Link zu dem "Blog" geben, von dem Du gesprochen hast? Beispiele würden mich nämlich schon einen Schritt weiterbringen.


EDIT: muha - war wohl nich richtig bei der Sache... <![CDATA[]] is doch aus den Install-Dateien von PHPBB3 bekannt, aber wie das halt manchmal mit dem Wald so is^^

Trotzdem würd ich mich über Links zu Beispielen freuen (was ich bisher gefunden hab war etwas dürftig, aber vielleicht sind die Beispiele auch im Wald versteckt?!)



MfG Paro
« Last Edit: July 28, 2010, 01:26:08 pm by Paroled »

Hans Nücke

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 787
  • MegaZine3 Sales Manager
Re: dynamischer Inhalt per php und MySql
« Reply #6 on: July 29, 2010, 08:34:57 am »
Soviel ich weiß werden (HTML-) Tabellen nicht direkt von FLASH unterstützt, und damit auch nicht von MegaZine3.
Vielleicht bringt ein Stöbern in FLASH-Foren etwas.
Aber auch dort kommt man immer wieder auf den Punkt zurück, dass man Tabellen aus Text-Boxes selber bauen muss.
Siehe: http://board.flashkit.com/board/showthread.php?t=456787

Von daher gibt es Grenzen.

Meine Empfehlung, bevor man sich die Finger verbiegt und viel zuviel Zeit auf das Optimieren einzelner Seiten verbrät:
Die Seiten mit einem dafür geeigneten DTP Tool oder leistungsfähigen Textprogramm (InDesign, Sribus, Word ...) gestalten. Da hat man alle erdenklichen Möglichkeiten, und das mit WYSIWYG .
Die fertigen Seiten dann als PDF drucken oder als PDF ausgeben (entweder direkt aus Word oder InDesign heraus.
Da bleiben auch interne und externe Links erhalten. Und dann in SWF Seiten konvertieren und mit MegaZine3 ausgeben.
Weiterer Vorteil: Die Erzeugung des Buchs kann weitgehend automatisch erfolgen.
Hierzu gibt es Script (Command) Files, z.B. pdf2swf oder die Tools die wir zur Verfügung stellen:
Tutorial über die Erstellung von MZ3 Büchern

Dies ist ein erster Entwurf und noch nicht fertig, wird aber trotzdem schon helfen. Die Command Files sind bereits recht stabil; ich nutze sie täglich ;-)
Wenn man dann noch weitere Elemente auf einzelne Seiten setzen möchte (Videos, Hotlinks/Areas, Audio, Flashanimationen, Effekte wie Transparenz, ...) kann man die einzelnen Seiten aus dem "batchpages" Block
herausnehmen und in ein eigenes Kapitel mit Einzelseiten setzen und dann getrennt erweitern.

Nur mal so als Anregung, um andere Richtungen aufzuzeigen ;-)

« Last Edit: July 29, 2010, 08:38:52 am by hnuecke »

Paroled

  • Newbie
  • *
  • Posts: 21
Re: dynamischer Inhalt per php und MySql
« Reply #7 on: July 29, 2010, 04:41:38 pm »
Hallo hnuecke,

vielen Dank für Deine Tipps!!! Werd ich mir mal zu Gemüte führen :)



MfG Paro



PS:
Falls jemand mit richtigen PHP-Kentnissen (mich als Anfänger kann ich da nicht einschließen) Verbesserungsvorschläge, hauptsächlich in Sachen PHP-/MySQL-Sicherheit, zu diesen Scripten hat würde ich mich sehr über Hinweise freuen!!!
« Last Edit: August 06, 2010, 07:28:28 am by Paroled »

Paroled

  • Newbie
  • *
  • Posts: 21
Re: dynamischer Inhalt per php und MySql
« Reply #8 on: July 29, 2010, 06:54:02 pm »
a.  ich bekomme eine fehlermeldung_
"Warning: fclose(): supplied argument is not a valid stream resource in /www/......../demos/test/megazine/megazine.php on line 22"
b. es funktioniert trotzdem

so, nu nochmal zu deinen Problembeschreibungen:
a. tja, da hatte ich wohl nicht aufgepasst SORRY, es wird eine Datei geschlossen, die nicht geöffnet ist

Ändere Zeile 22:

von
Code: [Select]
fclose($datei);
in
Code: [Select]
fclose($datei_neu);

wenn jede Seite ein JPG ist, man also alle Inhalte schon in ein JPG gebacken hat, oder eine Seite nur ein zentriertes JPG enthält, dann reicht das script schon fast so wie es ist.
aber was z.B. gar nicht abgefangen wird, wenn ein Bild größer als die Seitenabmessungen ist,  könnte man sowas nicht dadurch abfangen, dass in solchen Fällen explizit die width=" " und height=" " statements eingefügt werden? (nur eine frage, ich hab keine ahnung vom programmieren)

ich habe in der neuen version eine ImageResize-Funktion eingebaut - somit werden Bilder proportional auf die angegebene Größe angepasst - den Code kannst Du gern auch herausnehmen und ins alte Script integrieren:

Code: [Select]

/*Funktion zur Bildgrößenanpassung*/
function imageResize($width, $height, $target) {
if ($width > $height) {
$percentage = ($target / $width);
} else {
$percentage = ($target / $height);
}

$width = round($width * $percentage);
$height = round($height * $percentage);

return "width=\"$width\" height=\"$height\"";
}

ins alte Script in Zeile 23 einfügen

und

ersetzte in Zeile 33
Code: [Select]
fwrite($datei, "<img src=\"bilder/$dateien\" position=\"center middle\" />\n");
mit
Code: [Select]
fwrite($datei, "<img src=\"bilder/$dateien\" position=\"center middle\" ".imageResize($mysock[0], $mysock[1], 150)." />\n");
Die Zahl 150 gibt den Wert an, auf den das Bild verkleinert/vergrößert werden soll


Wobei ich Bilderalben mit nur einem Bild pro Seite eigentlich als ein bisschen zu generisch ansehe.
Mein (erstes!) Album auf der Basis von Megazine http://web57.ws/books/v1_macro/ enthält oft mehrere Bilder pro Seite und verweist dazu noch auf hires Bilder.

jupp, wie schon gesagt - es war auf die zu dem Zeitpunkt wichtigen Funktionen beschränkt und das lag auch daran, das dies auch mein erster versuch in Sachen php/xml war :)
aber selbst mit diesem einfachen Script wäre es nicht schwer, mit kleinen Anpassungen, auch mehrere Bilder auf eine Seite zu setzen, hires zu nutzen und noch vieles mehr - bei der aktuellen version bin ich dann aber weiter gegangen, da ich doch viele Zusatzangaben zu den Bildern machen und dem Inhaber der Site (leider) die Administration SEHR vereinfachen muss - also das er nicht erst andere Dateien erstellen muss in die er dann die zusätzlichen Angaben einträgt, diese dann umwandeln und hoch laden und dann auch noch die megazin.mz3 anpassen muss... das wäre, bei dem doch für Laien recht komplexen Aufbau von MegaZine3, nicht gut gegangen


In diesem Sinne... Aktualisierungen zum Script und das gesamte Webinterface werden folgen


EDIT:
Das aktualisierte Script findet Ihr im ersten Beitrag!
« Last Edit: August 06, 2010, 07:29:17 am by Paroled »

Hans Nücke

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 787
  • MegaZine3 Sales Manager
Re: dynamischer Inhalt per php und MySql
« Reply #9 on: August 04, 2010, 09:55:25 am »
@Paroled: Vielen Dank für das Engagement!
Viele werden sicher diese Hilfe zu nutzen.

@wdschraff: danke für das OK zur Veröffentlichung (steht schon im Blog)

Und wie @wdscharff schon schrieb: manchmal sind Beispiele eine gute Hilfe. Es ist auch schwierig, es jedem Recht zu machen.
Dem einen ist es zu ausführlich, der nächste vermisst einen Hinweis und anderen fehlen wieder ganz ander Dinge/Grundlagen.
Im Laufe der Zeit werden einige Anleitungen/Tutorials/Beispiele entstehen, die es hoffentlich immer leichter machen, den Einsteig zu finden.

Alle Anforderungen zu erfüllen gleicht fast einer Quadratur des Kreises: funktionsreich, offen, flexibel, einfach, schnell, komfortabel, performant, ... ;-)
« Last Edit: August 04, 2010, 09:58:26 am by hnuecke »

wdscharff

  • Newbie
  • *
  • Posts: 22
    • web57.ws/books/
Re: dynamischer Inhalt per php und MySql
« Reply #10 on: August 04, 2010, 01:09:20 pm »
@ Paroled:
Quote
Die Zahl 150 gibt den Wert an, auf den das Bild verkleinert/vergrößert werden soll
ich hab alles so kopiert wie du es geschrieben hast, entweder mach ich irgendwo einen riesen Kopierfehler oder im Script stimmt was nicht (ich hab null ahnung von php!):
jedenfalls gibts ne Menge Fehlermeldungen ala "Warning: Division by zero in /www/htdocs/snafu/demos/test/megazine/megazine.php on line 30
DSC00911_big.jpg" und in der megazine.mz3 steht für jedes Bild:
Code: [Select]
<page bgcolor="0x111111" align="center">
<img src="bilder/DSC00911_big.jpg" position="center middle" width="0" height="0" />
</page>

zur mysql variante,
Quote
include('header.php');
require('connect.inc.php');
include('footer.php');
hab ich irgendwo was verpasst, wegen dieser 3 dateien? und irgend so ein sql import schnipsel um die tabelle in der Datenbank zu erstellen, wäre für einen absolute beginner auch ganz hilfreich :)

@ hnuecke
Quote
Und wie @wdscharff schon schrieb: manchmal sind Beispiele eine gute Hilfe. .
als Programmierer hat man ja manchmal den Bezug dazu verloren, wie und wo Anwender überhaupt Probleme sehen und haben, wobei Megazine aber im Vergleich zu anderen Scripten dieser Art eine wirklich herausragend gute Dokumentation hat (selbst wenn man kaum Englisch kann und sich von google helfen lässt).
Also wenns hilfreich ist, kann auch gerne der Inhalt meiner megazine.mz3 als Beispiel (faq: wie mache ich ein fotobuch? :-) )  irgendwo eingebunden werden. Viele Anwender möchten halt am liebsten eine gut vorgekaute Lösung um ihr Problem möglichst schnell zu lösen.  Ein befreundeter Fotograf hätte von sich aus nie Megazine eingesetzt (obwohl er schon öfter nach pageflip Galerien schielte), einmal die Dokumentation überflogen, als zu komplex empfunden, Thema wieder ad acta gelegt.  Nachdem er jetzt bei mir gesehen hat, wie leicht es in Wirklichkeit ist, kein Thema mehr, wird er wohl auch ein paar Fotothemen in Megazine Büchern präsentieren.


Paroled

  • Newbie
  • *
  • Posts: 21
Re: dynamischer Inhalt per php und MySql
« Reply #11 on: August 04, 2010, 02:12:54 pm »
Hallo,

zum ersten Punkt:
- Division zero sagt, das irgend ein wert, eine Angabe oder eine Datei 0 ist also nicht vorhanden oder so...
ich kenne den Fehler, kann ihn aber grad nicht reproduzieren aber

du hast wahrscheinlich schon Änderungen am Script vorgenommen weil im ersten Script steht in Zeile 30 ein Kommentar - bitte poste mal deine megazine.php damit ich die mal durchsehen kann


2. Punkt:
Problem liegt wahrscheinlich auch im ersten Punkt

3. Punkt:
oh, jetzt seh ichs erst... du hast ja schon die 2. Version des Scripts - die 2 "include" Angaben sorgen dafür das eine Kopf und eine Fusszeile eingefügt werden (Standartanfang und -Ende meiner Administrationsoberfläche - das Script selbst ist dann der Content/Inhalt) - und die "require" Angabe sagt in welcher Datei meine Datenbankverbindung eingetragen ist (somit brauch ich die, genauso wie header und footer, nicht in jeder Seite neu zu schreiben)


so, nu wo ich weiß dass du wohl die 2. Version des Scripts nutzt muss ich noch fragen, ob Du die passende Tabelle in der Datenbank mit den dazugehörigen spalten angelegt und eine Verbindung zur Datenbank?


poste einfach mal die datei und wir schaun mal ;)

MfG

wdscharff

  • Newbie
  • *
  • Posts: 22
    • web57.ws/books/
Re: dynamischer Inhalt per php und MySql
« Reply #12 on: August 04, 2010, 02:35:47 pm »
ne, ich benutze noch die erste version, die sieht jetzt so aus (man sollte natürlich die richtige version hierherkopieren):
Code: [Select]
<?
/*Öffnen des Ordners der die Bilder/Dateien enthält*/
$open_dir=(opendir("bilder"));

/*Schreiben des ersten Teils der megazine.mz3*/
$xml_datei = "megazine.mz3";
$datei_neu = fopen($xml_datei,"w+");
fwrite($datei_neu, "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n");
fwrite($datei_neu, "<!DOCTYPE book SYSTEM \"http://www.megazine3.de/megazine2.dtd\">\n");
fwrite($datei_neu, "<book\n");
fwrite($datei_neu, "pagewidth=\"400\"\n");
fwrite($datei_neu, "pageheight=\"600\"\n");
fwrite($datei_neu, "lang=\"de,en\"\n");
fwrite($datei_neu, "plugins=\"anchors, backgroundsounds, batchpages, javascript, keyboardnavigation, links, navigationbar, overlays, print, slideshow, swfaddress, titles\"\n");
fwrite($datei_neu, "centercovers=\"true\"\n");
fwrite($datei_neu, ">\n");
fwrite($datei_neu, "<foreground>\n");
fwrite($datei_neu, "</foreground>\n");
fwrite($datei_neu, "<chapter>\n");
fwrite($datei_neu, "<page bgcolor=\"0x111111\" stiff=\"true\">\n");
fwrite($datei_neu, "</page>\n");
fclose($datei_neu);

/*Funktion zur Bildgrößenanpassung*/
function imageResize($width, $height, $target) {
   if ($width > $height) {
      $percentage = ($target / $width);
   } else {
      $percentage = ($target / $height);
   }
   
   $width = round($width * $percentage);
   $height = round($height * $percentage);

   return "width=\"$width\" height=\"$height\"";
}


/*Alle Dateien auslesen*/
while ($dateien=readdir($open_dir)){   
   /*Ausschließen von Ordnern und Verzeichnissprüngen*/
   if (!is_dir("bilder/$dateien") && $dateien!="." && $dateien!=".."){
      /*Ausgelesene Dateien anzeigen*/
      echo "$dateien<br />";
      /*Schreiben des dynamischen Inhalts*/
      $datei = fopen($xml_datei,"a+");
      fwrite($datei, "<page bgcolor=\"0x111111\" align=\"center\">\n");
      fwrite($datei, "<img src=\"bilder/$dateien\" position=\"center middle\" ".imageResize($mysock[0], $mysock[1], 150)." />\n");
      fwrite($datei, "</page>\n");
      fclose($datei);
   }
}

/*Schreiben des letzten Teils der megazine.mz3*/
$datei = fopen($xml_datei,"a");
fwrite($datei, "<page bgcolor=\"0x111111\" stiff=\"true\">\n");
fwrite($datei, "</page>\n");
fwrite($datei, "</chapter>\n");
fwrite($datei, "</book>\n");
fclose($datei);
closedir($open_dir);

/*Erfolgsmeldung anzeigen*/
echo "<br /><br /><br />Die Datei megazine.mz3 wurde aktualisiert";

?>

Paroled

  • Newbie
  • *
  • Posts: 21
Re: dynamischer Inhalt per php und MySql
« Reply #13 on: August 04, 2010, 02:43:44 pm »
ich mach jetzt feierabend und schau mir des zu hause mal an - melde mich wieder


MfG

Paroled

  • Newbie
  • *
  • Posts: 21
Re: dynamischer Inhalt per php und MySql
« Reply #14 on: August 04, 2010, 03:51:29 pm »
ohhhhhhhhjaaaaaa,

I`m sowas von SORRY  :-[


Mein Fehler, ich hab vergessen einen wichtigen Teil zu nennen und wo er hin kommt...

erstelle eine neue Zeile in Zeile 41 (hinter dem letzten Zeichen der Zeile 40 "Enter" drücken ;) ) und füge folgenden Code in die neue Zeile ein:


Code: [Select]
/*Funktion zur Bildgrößenanpassung*/
$mysock = getimagesize("bilder/$dateien");


Du kannst auch den folgenden Code komplett übernehmen, hab eben nur die fehlenden Zeilen ergänzt:
Code: [Select]
<?
/*Öffnen des Ordners der die Bilder/Dateien enthält*/
$open_dir=(opendir("bilder"));

/*Schreiben des ersten Teils der megazine.mz3*/
$xml_datei = "megazine.mz3";
$datei_neu = fopen($xml_datei,"w+");
fwrite($datei_neu, "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n");
fwrite($datei_neu, "<!DOCTYPE book SYSTEM \"http://www.megazine3.de/megazine2.dtd\">\n");
fwrite($datei_neu, "<book\n");
fwrite($datei_neu, "pagewidth=\"400\"\n");
fwrite($datei_neu, "pageheight=\"600\"\n");
fwrite($datei_neu, "lang=\"de,en\"\n");
fwrite($datei_neu, "plugins=\"anchors, backgroundsounds, batchpages, javascript, keyboardnavigation, links, navigationbar, overlays, print, slideshow, swfaddress, titles\"\n");
fwrite($datei_neu, "centercovers=\"true\"\n");
fwrite($datei_neu, ">\n");
fwrite($datei_neu, "<foreground>\n");
fwrite($datei_neu, "</foreground>\n");
fwrite($datei_neu, "<chapter>\n");
fwrite($datei_neu, "<page bgcolor=\"0x111111\" stiff=\"true\">\n");
fwrite($datei_neu, "</page>\n");
fclose($datei_neu);

/*Funktion zur Bildgrößenanpassung*/
function imageResize($width, $height, $target) {
   if ($width > $height) {
      $percentage = ($target / $width);
   } else {
      $percentage = ($target / $height);
   }
   
   $width = round($width * $percentage);
   $height = round($height * $percentage);

   return "width=\"$width\" height=\"$height\"";
}

/*Alle Dateien auslesen*/
while ($dateien=readdir($open_dir)){   

/*Funktion zur Bildgrößenanpassung*/
$mysock = getimagesize("bilder/$dateien");

   /*Ausschließen von Ordnern und Verzeichnissprüngen*/
   if (!is_dir("bilder/$dateien") && $dateien!="." && $dateien!=".."){
      /*Ausgelesene Dateien anzeigen*/
      echo "$dateien<br />";
      /*Schreiben des dynamischen Inhalts*/
      $datei = fopen($xml_datei,"a+");
      fwrite($datei, "<page bgcolor=\"0x111111\" align=\"center\">\n");
      fwrite($datei, "<img src=\"bilder/$dateien\" position=\"center middle\" ".imageResize($mysock[0], $mysock[1], 150)." />\n");
      fwrite($datei, "</page>\n");
      fclose($datei);
   }
}

/*Schreiben des letzten Teils der megazine.mz3*/
$datei = fopen($xml_datei,"a");
fwrite($datei, "<page bgcolor=\"0x111111\" stiff=\"true\">\n");
fwrite($datei, "</page>\n");
fwrite($datei, "</chapter>\n");
fwrite($datei, "</book>\n");
fclose($datei);
closedir($open_dir);

/*Erfolgsmeldung anzeigen*/
echo "<br /><br /><br />Die Datei megazine.mz3 wurde aktualisiert";

?>

Habs jetzt auch getestet und es funzt


Viel Spaß




MfG