PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
Multiticket mit DIV-Container als PDF erzeugen... Wie php-Schleife ansetzen
Beitrag
<blockquote data-quote="Freiheitenwelt" data-source="post: 2680542"><p>Hallo liebes Forum, </p><p></p><p>ich bin neu hier - Martin mein Name aus Dinkelsbühl. ;-) </p><p></p><p>Ich bin ziemlich neu in der PHP Welt und benötige für mein "kleines" Ticketprojekt ein paar Tipps die mich auf die richtige Fährte bringen. Ich stecke seit zwei Tagen etwas fest. Ich hab früher C++ programmiert und mit CSS kenn ich mich ganz gut aus... Also bin nicht ganz der Newbie...</p><p></p><p><strong>Anforderung:</strong> Ich baue für meine Webseite <a href="http://www.freiheitenwelt.de" target="_blank">www.freiheitenwelt.de</a> gerade einen Webshop auf mit WooCommerce Ticketshop. Das System funktioniert bestens und generiert nach der Bestellung eine pdf - Din A4 - Datei als Ticket. Über ein Plugin werden die Ticketinformationen von einem HTML Code in das PDF gewandelt. </p><p></p><p>Der Anbieter von dem Ticket-Plugin bietet leider nur sehr langweilige PDF-Ticket Vorlagen und somit hab ich mich selber an die Arbeit gemacht. Dabei ist folgendes schicke Ticket entstanden, dass ich nun via PDF schicken kann oder auch auf Ticketvorlagen ausdrucken kann. ;-) RICHTIG SUPER! </p><p></p><p></p><p></p><p><strong>Multiticket:</strong></p><p><strong></strong></p><p>So wie es jetzt ist bekommt jedes Ticket eine Din-A4 Seite. Das ist sowohl zum drucken für meine Gäste als auch für mich nicht gerade optimal. Deswegen hätte ich gerne 4-Tickets auf einer Din-A4 Seite. Also 4x74mm an Höhe maximal. Bei 5 Tickets geht das ganze Spiel wieder von vorne los. </p><p></p><p><strong>Problem:</strong></p><p><strong></strong></p><p>Im Orignalcode bedient sich der Programmierer ausschließlich Tabellen die er in einer PHP-Schleife untereinander anordnet. Die nötigen Daten der Tickets gibts über eine post_get_meta... Unten hab ich den Teil des Codes für euch eingefügt.... Nach dem <?php $i = 0; ?> folgen die Tabellen. </p><p></p><p>Mein Ticket beruht auf mehreren DIV-Containern mit Längenangaben in mm. Das war für die genaue Anpassung auf das A4 Papier nötig. Über alles hab ich einen Hauptcontainer gelegt mit Position:relativ </p><p></p><p>[CODE].main_container {</p><p> position: relative;</p><p> border: 1px solid;</p><p> float: left;</p><p> width: 210mm;</p><p> height: 74mm;</p><p> margin-left: 0;</p><p> margin-top: 0mm; </p><p>}[/CODE]</p><p></p><p><strong>Lösungsansatz:</strong></p><p><strong></strong></p><p>Meine Idee war nun das ich über die Schleife auch immer das "margin-top" um 74mm addiere. Dann sollte sich ein jedes Ticket genau untereinander reihen. Um das zu testen hab ich den Code auf den Hauptcontainer reduziert und ich versuche das nun zu duplizieren. Ich denke wenn das funktioniert sollte der Code aus dem Single-Ticket einfach einzubinden sein. </p><p></p><p>[PHP]<?php $i = 0; ?></p><p></p><p> <?php foreach ($chunk as $ticket): ?></p><p> <div class="main_container" margin-top="X";></p><p> CODE AUS SINGLE TICKET</p><p> </div></p><p> <?php $i++; ?> </p><p> <?php endforeach; ?>[/PHP]</p><p></p><p></p><p><strong>Frage:</strong></p><p><strong></strong></p><p>Das PHP funktioniert so nicht. Meine Frage an euch wäre nun ob das grundsätzlich funktionieren kann? Also über margin-top kann ich sicher mein ganzes Ticket verschieben. Nun ist die Frage wie ich das auf die 4 Tickets in eine Schleife bekomme. Ich denke dem Parameter X muss man wie schon geschrieben immer erhöhen und nach 4 Tickets wieder reseten. Was die Tickets angeht so gibt es da theoretisch eigentlich kein Maximum. Irgendwie muss ich da zwei Schleifen miteinander kombinieren. </p><p></p><p>Im Originalcode stehen ganz unten auch noch folgende Zeilen. Jene dienen wohl zum Wechsel der Seiten. Aber wirklich steig ich da nicht durch. Ich hoffe ich konnte mein Problem einigermaßen erklären. Bin für jeden kleinen Tipp dankbar... </p><p></p><p>[PHP]<?php $x++; ?></p><p><?php echo ($x < $numChunks)? '<div style="page-break-before: always;"></div>' : ''; ?></p><p><?php endforeach; ?> [/PHP]</p><p></p><p>GLG Martin</p><p></p><p></p><p></p><p></p><p>[PHP]<?php $chunkTickets = array_chunk($tickets, 3); ?></p><p></p><p><?php $numChunks = count($chunkTickets); ?></p><p><?php $x = 1; ?></p><p><?php foreach($chunkTickets as $chunk) : ?></p><p><?php $ticket = $chunk[0]; ?></p><p><?php</p><p></p><p>$price = get_post_meta( $ticket['WooCommerceEventsVariationID'], '_regular_price', true);</p><p></p><p>if(empty($price)) {</p><p></p><p> $price = get_post_meta( $ticket['WooCommerceEventsVariationID'], '_sale_price', true);</p><p></p><p>}</p><p></p><p>$currencySymbol = get_woocommerce_currency_symbol();</p><p></p><p>if(!empty($price)) {</p><p></p><p> $price = $currencySymbol.''.$price;</p><p></p><p>} else {</p><p></p><p> $_product = wc_get_product($ticket['WooCommerceEventsProductID']);</p><p> $price = $_product->get_price_html();</p><p></p><p>}</p><p>?></p><p><?php $i = 0; ?>[/PHP]</p></blockquote><p></p>
[QUOTE="Freiheitenwelt, post: 2680542"] Hallo liebes Forum, ich bin neu hier - Martin mein Name aus Dinkelsbühl. ;-) Ich bin ziemlich neu in der PHP Welt und benötige für mein "kleines" Ticketprojekt ein paar Tipps die mich auf die richtige Fährte bringen. Ich stecke seit zwei Tagen etwas fest. Ich hab früher C++ programmiert und mit CSS kenn ich mich ganz gut aus... Also bin nicht ganz der Newbie... [B]Anforderung:[/B] Ich baue für meine Webseite [URL='http://www.freiheitenwelt.de']www.freiheitenwelt.de[/URL] gerade einen Webshop auf mit WooCommerce Ticketshop. Das System funktioniert bestens und generiert nach der Bestellung eine pdf - Din A4 - Datei als Ticket. Über ein Plugin werden die Ticketinformationen von einem HTML Code in das PDF gewandelt. Der Anbieter von dem Ticket-Plugin bietet leider nur sehr langweilige PDF-Ticket Vorlagen und somit hab ich mich selber an die Arbeit gemacht. Dabei ist folgendes schicke Ticket entstanden, dass ich nun via PDF schicken kann oder auch auf Ticketvorlagen ausdrucken kann. ;-) RICHTIG SUPER! [B]Multiticket: [/B] So wie es jetzt ist bekommt jedes Ticket eine Din-A4 Seite. Das ist sowohl zum drucken für meine Gäste als auch für mich nicht gerade optimal. Deswegen hätte ich gerne 4-Tickets auf einer Din-A4 Seite. Also 4x74mm an Höhe maximal. Bei 5 Tickets geht das ganze Spiel wieder von vorne los. [B]Problem: [/B] Im Orignalcode bedient sich der Programmierer ausschließlich Tabellen die er in einer PHP-Schleife untereinander anordnet. Die nötigen Daten der Tickets gibts über eine post_get_meta... Unten hab ich den Teil des Codes für euch eingefügt.... Nach dem <?php $i = 0; ?> folgen die Tabellen. Mein Ticket beruht auf mehreren DIV-Containern mit Längenangaben in mm. Das war für die genaue Anpassung auf das A4 Papier nötig. Über alles hab ich einen Hauptcontainer gelegt mit Position:relativ [CODE].main_container { position: relative; border: 1px solid; float: left; width: 210mm; height: 74mm; margin-left: 0; margin-top: 0mm; }[/CODE] [B]Lösungsansatz: [/B] Meine Idee war nun das ich über die Schleife auch immer das "margin-top" um 74mm addiere. Dann sollte sich ein jedes Ticket genau untereinander reihen. Um das zu testen hab ich den Code auf den Hauptcontainer reduziert und ich versuche das nun zu duplizieren. Ich denke wenn das funktioniert sollte der Code aus dem Single-Ticket einfach einzubinden sein. [PHP]<?php $i = 0; ?> <?php foreach ($chunk as $ticket): ?> <div class="main_container" margin-top="X";> CODE AUS SINGLE TICKET </div> <?php $i++; ?> <?php endforeach; ?>[/PHP] [B][/B] [B]Frage: [/B] Das PHP funktioniert so nicht. Meine Frage an euch wäre nun ob das grundsätzlich funktionieren kann? Also über margin-top kann ich sicher mein ganzes Ticket verschieben. Nun ist die Frage wie ich das auf die 4 Tickets in eine Schleife bekomme. Ich denke dem Parameter X muss man wie schon geschrieben immer erhöhen und nach 4 Tickets wieder reseten. Was die Tickets angeht so gibt es da theoretisch eigentlich kein Maximum. Irgendwie muss ich da zwei Schleifen miteinander kombinieren. Im Originalcode stehen ganz unten auch noch folgende Zeilen. Jene dienen wohl zum Wechsel der Seiten. Aber wirklich steig ich da nicht durch. Ich hoffe ich konnte mein Problem einigermaßen erklären. Bin für jeden kleinen Tipp dankbar... [PHP]<?php $x++; ?> <?php echo ($x < $numChunks)? '<div style="page-break-before: always;"></div>' : ''; ?> <?php endforeach; ?> [/PHP] GLG Martin [PHP]<?php $chunkTickets = array_chunk($tickets, 3); ?> <?php $numChunks = count($chunkTickets); ?> <?php $x = 1; ?> <?php foreach($chunkTickets as $chunk) : ?> <?php $ticket = $chunk[0]; ?> <?php $price = get_post_meta( $ticket['WooCommerceEventsVariationID'], '_regular_price', true); if(empty($price)) { $price = get_post_meta( $ticket['WooCommerceEventsVariationID'], '_sale_price', true); } $currencySymbol = get_woocommerce_currency_symbol(); if(!empty($price)) { $price = $currencySymbol.''.$price; } else { $_product = wc_get_product($ticket['WooCommerceEventsProductID']); $price = $_product->get_price_html(); } ?> <?php $i = 0; ?>[/PHP] [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ▲ = 7, ▼ = 3, ◇ = 2 und die Summe von ▲ und ▼ durch ◇ geteilt wird, was ist das Ergebnis?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
Multiticket mit DIV-Container als PDF erzeugen... Wie php-Schleife ansetzen
Oben