modul template

Gesperrt
Vetinari
Beiträge: 136
Registriert: Sa 31. Mär 2007, 19:11
Wohnort: Fulda
Kontaktdaten:

modul template

Beitrag von Vetinari » Mi 11. Apr 2007, 20:38

moin,

ist irgendwo mal beschrieben, wann es sinnvoll ist, ein modul-template zu verwenden, bzw. wann zwingend eines benötigt wird?
man könnte doch die ausgabe komplett im php code des moduls steuern, oder?

ist übrigens mal ein contenido wiki geplant? würde auch gerne daran mitarbeiten.

V.
Si non confectus, non reficiat. (Motto der Vetinaris)
Solange etwas nicht kaputt ist, repariere es nicht.
oder:
Lass die Dinge einfach laufen, die meisten Probleme erledigen sich eh von selbst.

MichFress
Beiträge: 750
Registriert: Mo 5. Jan 2004, 22:32
Wohnort: Bochum
Kontaktdaten:

Beitrag von MichFress » Mi 11. Apr 2007, 20:53

sicher käme man auch komplett ohne Modul-Templates aus. Aber wenn man das Layout einfach und bequem editieren will, empfiehlt sich eine strikte Trennung zwischen Code (Modul) und Design (Modul-Template, CSS-Datei). Es liegt also letztendlich immer im Ermessen des Programmierers, wann und wo er Templates nutzt..

bezüglich Wiki: Nun, ja... leichte Bewegungen in Richtung Tutorials, FAQ sind durchaus vorhanden:
http://contenido.org/forum/viewtopic.ph ... highlight=
http://faq.contenido.org
"Es wird keine Handlung geben, keine Geschichte mit ihrer Versprechung auf einen Anfang und ihrer Hoffnung auf ein Ende." (Andrzej Stasiuk)

tinof
Beiträge: 197
Registriert: Mi 24. Jan 2007, 20:38
Wohnort: Kirchberg / Sa.
Kontaktdaten:

Beitrag von tinof » Do 12. Apr 2007, 06:13

Hallo V.

ich bin auch Contenido - Neueinsteiger und ich kann aus meiner Sicht nur empfehlen, ausschließlich mit Modultemplates zu arbeiten.
Der php - Code ist wesentlich besser lesbar und das Ganze ist insgesamt besser zu warten.

Da ich auch erst in diesem Jahr überhaupt mit php / html angefangen habe, kommt mir das - finde ich - besonders entgegen :

Ich kann mich immer gezielt entweder auf das Layout oder auf die Funktionalität konzentrieren und verliere nicht so schnell den Überblick. Das beginnt schon mit den verschiedenen "" '' - Zeichen in einem ellenlangen echo() - Befehl :oops: .

So habe ich auch für verhältnismäßig kleine Schnipsel Templates.

Bezüglich der Performance kann ich keine Probleme feststellen.


P.S. Das mit dem Wiki ist grundsätzlich eine gute Idee.
In unserem Hobbybrauerforum (siehe Signatur) gibt es auch sowas. Es ist dort nur so, das von über 4000 angemeldeten Usern maximal 5 aktiv und regelmäßig dort schreiben. Deshalb wächst das sehr langsam.

Grüße
Tino
Für die Freizeit : www.hobbybrauer.de

Vetinari
Beiträge: 136
Registriert: Sa 31. Mär 2007, 19:11
Wohnort: Fulda
Kontaktdaten:

Beitrag von Vetinari » Do 12. Apr 2007, 08:09

@tino

ja, das klingt gut; bin auch immer für größtmögliche übersicht. ich kapier aber noch nicht so ganz wie ein modul template korrekt eingebunden wird. kannst du mir da mal codemäßig weiter helfen?

das mit der beteiligung am wiki ist normal. deshalb wäre meiner meinung nach die wikipedia variante die beste, wo jeder posten kann (man kann es ja auf alle für das contenido forum registrierten user beschränken) und sich einige admins finden, welche das wiki "sauber" und sachlich richtig halten.

V.
Si non confectus, non reficiat. (Motto der Vetinaris)
Solange etwas nicht kaputt ist, repariere es nicht.
oder:
Lass die Dinge einfach laufen, die meisten Probleme erledigen sich eh von selbst.

tinof
Beiträge: 197
Registriert: Mi 24. Jan 2007, 20:38
Wohnort: Kirchberg / Sa.
Kontaktdaten:

Beitrag von tinof » Do 12. Apr 2007, 16:08

Hallo,

mangels Zeit nur ganz kurz :
Im Template speichere ich 'ein Stück' meiner Website in Form von HTML Code. Für dynamische / varible Inhalte, die erst zur Laufzeit bekannt sind, werden {Platzhalter} vorgesehen, die später im php Code ersetzt werden müssen.
Für Listen und andere wiederkehrende Inhalte mit gleicher Struktur kann ich dynamische Blöcke vorsehen. Das heißt, ich definiere das Layout für ein Listenelement und beim späteren Generieren des Codes wird dieses Element beliebig oft wiederholt. Dynamische Blöcke werden in Begin:Block / End:Block - Kommentare eingeschlossen :

Beispiel :

Code: Alles auswählen

<h1>{STATISCHER_TEXT}</h1> 

<!-- BEGIN:BLOCK -->
<h2>{DYN_TEXT_A}</h2>
<p>{DYN_TEXT_B}</p>
<!-- END:BLOCK -->

Im code muss ich nun die Platzhalter mit Inhalten füllen. Dafür gibt es die Klasse Template.

Code: Alles auswählen

<?php
// Klasse einbinden 
cInclude("classes", "class.template.php");

// Instanz erzeugen
$tpl = new Template;

// Instanz Initialisieren
$tpl->reset();

// Ersetzen der statischen Platzhalter
$tpl->set("s","STATISCHER_TEXT","Das ist der statische Text");

// Ersetzen der dynamischen Platzhalter
for ($i =1 ; $i < 5; $i++) {
  $tpl->set("d","DYN_TEXT_A","dynamische Überschrift Nr. " . $i);
  $tpl->set("d","DYN_TEXT_B","dynamischer Text " . $i);
  // template für nächsten Block / nächste Wiederholung vorbereiten
  $tpl->next();
}

// Template-Objekt gefuellt --> jetzt noch generieren
$tplname = $cfgClient[$client]["path"]["frontend"]."templates/"."MEINTEMPLATE.HTML";
$tpl->generate($tplname); // HIER erfolgt die Ausgabe 

Das war's im Wesentlichen.

Soweit ich das beurteilen kann, gibt es in einem Template nur einen dynamischen Block. Wenn man tiefere Verschachtelungen benötigt, kann man trotzdem mit Templates arbeiten, indem man die Ergebnisse der inneren Schleifen wiederum in entsprechende Platzhalter in den umschließenden Templates einsetzt. :

Code: Alles auswählen

// Ergebnis des inneren Templates 'abholen'
$htmltext = tpl->generate([name_inneres_template]);

// umschließendes Template bearbeiten
tpl->reset();
....
tpl->set("s","PLH_INNERE_WIEDERHOLUNG",$htmltext);
...
tpl->generate()
hth
Tino
Für die Freizeit : www.hobbybrauer.de

Vetinari
Beiträge: 136
Registriert: Sa 31. Mär 2007, 19:11
Wohnort: Fulda
Kontaktdaten:

Beitrag von Vetinari » Do 12. Apr 2007, 17:52

super, danke!!

V.
Si non confectus, non reficiat. (Motto der Vetinaris)
Solange etwas nicht kaputt ist, repariere es nicht.
oder:
Lass die Dinge einfach laufen, die meisten Probleme erledigen sich eh von selbst.

wildstar1600
Beiträge: 32
Registriert: Fr 22. Jun 2007, 23:06
Wohnort: Ingolstadt
Kontaktdaten:

Beitrag von wildstar1600 » Di 7. Aug 2007, 09:11

Hab eine Frage zu Kontaktformular,

Die funktionalität des Kontaktformulars ist folgender:

Gibt der User die Daten in das Kontaktformular ein und vergisst dabei ein Pflichtfeld auszufüllen.

Beim Absenden wird dann durch eine Fehlermeldung der dementsprechende Hinweis gegeben, welches Feld noch auszufüllen ist.
(Habe es bereits so modifiziert, dass das Formular bei Fehlermeldungen nochmals angezeigt wird)
Nebenbei werden aber dann auch die bereits ausgefüllten Felder wieder gelöscht. Fazit: Der User muss die ganze Soße nochmals eingeben.

Das zu umgehen, dass die bereitsausgefüllten Felder nicht gelöscht werden, könnte man im Modul-Template (Kontaktfomular) in der jeweiligen <input..... die value="<? php echo $_POST[feldname]; ?>" hinzufügen. Leider funktioniert das aber nur wenn es eine php Datei ist. Und die lassen sich nur zu schwer in Modul-Template ausführen.

Ich hoffe ihr versteht was ich meine.

Gibt es da eine andere Möglichkeit im Kontakt Modul vorzunehmen. Ich glaube kaum, oder doch?

tinof
Beiträge: 197
Registriert: Mi 24. Jan 2007, 20:38
Wohnort: Kirchberg / Sa.
Kontaktdaten:

Beitrag von tinof » Di 7. Aug 2007, 09:21

Hi,

einfach den value= - Teil auch als Template - Variable definieren.
Hier ein Beispiel aus einem meiner Formulare :

Code: Alles auswählen

<tr style="font-weight: bold;">
    <td height="20">{BLOCK_ADR_TXT}</td>
    <td class="TABELLE"><hr noshade style="color:grey; height:1px;"></td>
</tr>
<tr valign="middle" >
    <td  class="TABELLE" >{ADR_STRASSE_TXT}</td>
    <td class="TABELLE"><input type="text" name="fmadr_strasse" size="50" value="{ADR_STRASSE_VALUE}"></td>
</tr>
<tr valign="middle">
    <td  class="TABELLE">{ADR_LAND_TXT}</td>
    <td class="TABELLE"><input type="text" name="fmadr_land" size="50" value="{ADR_LAND_VALUE}"></td>
</tr>
<tr valign="middle">
    <td  class="TABELLE">{ADR_PLZORT_TXT}</td>
    <td class="TABELLE">
        <input type="text" name="fmadr_plz" size="10" value="{ADR_PLZ_VALUE}">
        <input type="text" name="fmadr_ort" size="35" value="{ADR_ORT_VALUE}">
    </td>
</tr>
und dazu der Modulcode (ein Teil)

Code: Alles auswählen

// Liefer- Postanschrift
function adresse(){

	global $frmcfg;

	$tpl = new template;
	$tpl->reset();

	$tpl->set('s','BLOCK_ADR_TXT',frmmi18n('block_adr_txt'));
	$tpl->set('s','ADR_STRASSE_TXT',frmmi18n('adr_strasse_txt'));
	$tpl->set('s','ADR_STRASSE_VALUE',$_POST['fmadr_strasse']);
	$tpl->set('s','ADR_LAND_TXT',frmmi18n('adr_land_txt'));
	$tpl->set('s','ADR_LAND_VALUE',$_POST['fmadr_land']);
	$tpl->set('s','ADR_PLZORT_TXT',frmmi18n('adr_plzort_txt'));
	$tpl->set('s','ADR_PLZ_VALUE',$_POST['fmadr_plz']);
	$tpl->set('s','ADR_ORT_VALUE',$_POST['fmadr_ort']);

	$tplname = $frmcfg['tmpl']['adresse'];
	return($tpl->generate($tplname,1));
}

Ich hoffe, es ist erkennbar
Für die Freizeit : www.hobbybrauer.de

wildstar1600
Beiträge: 32
Registriert: Fr 22. Jun 2007, 23:06
Wohnort: Ingolstadt
Kontaktdaten:

Beitrag von wildstar1600 » Mi 8. Aug 2007, 05:06

Hallo tinof,
vielen Dank für die Gedankenstütze.

Es funktioniert soweit. Die eingetragenen Werte werden nun nicht mehr gelöscht. Was mir jedoch bei der Testfase aufgefallen ist. =>
Praxis: Nachdem der User vielleicht ein Pflichtfeld vergessen hatte auszufüllen, wird zum zweiten mal das Formular geladen.
Ab diesen Augenblick funktioniert nur noch der Löschbutton für die letzte Eingabe. Nicht alle Felder werden gelöscht.

Code: Alles auswählen


<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Contact form
* Author(s)   :     Andreas Lindner
* Copyright   :     Contenido - four for business
* Created     :     12.08.2005
************************************************/

#Includes
cInclude("classes", "class.phpmailer.php");

if (!isset ($_POST['send'])) {
	#Form has not been sent yet
	cInclude('classes', 'class.article.php');
	cInclude('classes', 'class.template.php');

	#Create contact form -- Aufbau Kontaktformular
   #---------------------------------------------
	echo '<form name="kontaktform" id="kontaktform" method="post" action="'.$sess->url("front_content.php?idcat=$idcat&idart=$idart&parentid=$parentid").'">';
	echo '<input type="hidden" name="send" value="1">';

	if (!is_object($tpl)) {
		$tpl = new Template;
	}
         
$tpl->set("s", "ANREDE", mi18n("Anrede"));
$tpl->set("s", "ANREDE_OPTION1", mi18n("Herr"));
$tpl->set("s", "ANREDE_OPTION2", mi18n("Frau"));
$tpl->set("s", "NACHNAME", mi18n("Name"));
$tpl->set("s", "ADR_NACHNAME_VALUE", $_POST['Nachname']);
$tpl->set("s", "VORNAME", mi18n("Vorname"));
$tpl->set("s", "ADR_VORNAME_VALUE", $_POST['Vorname']);
$tpl->set("s", "FIRMA", mi18n("Firma"));
$tpl->set("s", "ADR_FIRMA_VALUE", $_POST['Firma']);
$tpl->set("s", "STRASSE", mi18n("Strasse/Nr."));
$tpl->set("s", "ADR_STRASSE_VALUE", $_POST['Strasse']);
$tpl->set("s", "PLZORT", mi18n("PLZ/Ort"));
$tpl->set("s", "ADR_PLZORT_VALUE", $_POST['PLZOrt']);
$tpl->set("s", "TELEFON", mi18n("Telefon"));
$tpl->set("s", "ADR_TELEFON_VALUE", $_POST['Telefon']);
$tpl->set("s", "EMAIL", mi18n("eMail"));
$tpl->set("s", "ADR_EMAIL_VALUE", $_POST['EMail']);
$tpl->set("s", "ANLIEGEN", mi18n("Nachricht"));
$tpl->set("s", "ADR_ANLIEGEN_VALUE", $_POST['Anliegen']);
$tpl->set("s", "PFLICHTFELDER", mi18n("Pflichtfelder"));
$tpl->set("s", "ABSCHICKEN", mi18n("Abschicken"));
$tpl->set("s", "LOESCHEN", mi18n("Löschen"));

	 $tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/kontaktformular.html");
	 echo '</form>';


} elseif ($_POST['send'] == 1) {
	#Form has been sent

	#Check user input
	$noerrors = true;
	$msg = '';
	if ($_POST['Vorname'] == '') {
		$noerrors = false;
		$msg .= mi18n("Bitte geben Sie Ihren Vornamen ein!")."<br/>";
	}
	if ($_POST['Nachname'] == '') {
		$noerrors = false;
		$msg .= mi18n("Bitte geben Sie Ihren Namen ein!")."<br/>";
	}
	if ($_POST['EMail'] == '') {
		$noerrors = false;
		$msg .= mi18n("Bitte geben Sie Ihre EMail-Adresse ein!")."<br/>";
	}
	if ($_POST['Strasse'] == '') {
		$noerrors = false;
		$msg .= mi18n("Bitte geben Sie Ihre Strasse ein!")."<br/>";
	}
	if ($_POST['PLZOrt'] == '') {
		$noerrors = false;
		$msg .= mi18n("Bitte geben Sie Ihre PLZ/Ort ein!")."<br/>";
	}

	if ($noerrors == false) {
		#Errors have been found
		echo mi18n("Beim Versenden sind folgende Fehler aufgetreten:")."<br/>";
		echo $msg.'<br/>';




	#Bei Fehleingaben wird das Kontaktformular nochmals angezeigt
   #------------------------------------------------------------
	echo '<form name="kontaktform" id="kontaktform" method="post" action="'.$sess->url("front_content.php?idcat=$idcat&idart=$idart&parentid=$parentid").'">';
	echo '<input type="hidden" name="send" value="1">';

	if (!is_object($tpl)) {
		$tpl = new Template;
	}

$tpl->set("s", "ANREDE", mi18n("Anrede"));
$tpl->set("s", "ANREDE_OPTION1", mi18n("Herr"));
$tpl->set("s", "ANREDE_OPTION2", mi18n("Frau"));
$tpl->set("s", "NACHNAME", mi18n("Name"));
$tpl->set("s", "ADR_NACHNAME_VALUE", $_POST['Nachname']);
$tpl->set("s", "VORNAME", mi18n("Vorname"));
$tpl->set("s", "ADR_VORNAME_VALUE", $_POST['Vorname']);
$tpl->set("s", "FIRMA", mi18n("Firma"));
$tpl->set("s", "ADR_FIRMA_VALUE", $_POST['Firma']);
$tpl->set("s", "STRASSE", mi18n("Strasse/Nr."));
$tpl->set("s", "ADR_STRASSE_VALUE", $_POST['Strasse']);
$tpl->set("s", "PLZORT", mi18n("PLZ/Ort"));
$tpl->set("s", "ADR_PLZORT_VALUE", $_POST['PLZOrt']);
$tpl->set("s", "TELEFON", mi18n("Telefon"));
$tpl->set("s", "ADR_TELEFON_VALUE", $_POST['Telefon']);
$tpl->set("s", "EMAIL", mi18n("eMail"));
$tpl->set("s", "ADR_EMAIL_VALUE", $_POST['EMail']);
$tpl->set("s", "ANLIEGEN", mi18n("Nachricht"));
$tpl->set("s", "ADR_ANLIEGEN_VALUE", $_POST['Anliegen']);
$tpl->set("s", "PFLICHTFELDER", mi18n("Pflichtfelder"));
$tpl->set("s", "ABSCHICKEN", mi18n("Abschicken"));
$tpl->set("s", "LOESCHEN", mi18n("Löschen"));

	 $tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/kontaktformular.html");
	 echo '</form>';

		echo '<a href="javascript:history.back();">'.mi18n("Zurück").'</a>';
	} else {
		#No errors, create and send mail
		$mail = new phpmailer;
		$mail_body = '<html><head></head><body bgcolor="#ffffff"><table cellspacing="0" cellpadding="2" border="0">';

		if (is_array($_POST)) {
			foreach ($_POST as $key => $value) {
				if ($key != 'send') {
					$mail_body .= "<tr><td>$key</td><td>$value</td></tr>";
				}
			}
		}

		$mail_body .= '</table></bo'.'dy></html>';
		$mail->Host = "localhost";
		$mail->IsHTML(true);

		#Get mailer from settings
		switch (strtolower("CMS_VALUE[4]")) {
			case "smtp" :
				$mail->IsSMTP();
				$host = "CMS_VALUE[5]";
				$user = "CMS_VALUE[6]";
				$password = "CMS_VALUE[7]";
				if (($host != '') && ($user != '') && ($password != '')) {
					$mail-> $SMTPAuth = true;
					$mail->Host = $host;
					$mail->Username = $user;
					$mail->Password = $password;
				}
				break;
			case "mail" :
				$mail->IsMail();
				break;
			case "sendmail" :
				$mail->IsSendmail();
				break;
			case "qmail" :
				$mail->IsQmail();
				break;
			default :
				}
		$mail->From = "CMS_VALUE[0]";
		$mail->FromName = "CMS_VALUE[2]";
		$mail->AddAddress("CMS_VALUE[1]", "");
		$mail->Subject = "CMS_VALUE[3]";
		$mail->Body = $mail_body;
		$mail->WordWrap = 50;
		$mail->Send();
	
		#Display message after mail is sent
		echo mi18n("Ihr Anliegen wurde uns Übermittelt. Vielen Dank!")."<br/>";
	}
}
?>



Hätte noch eine kleine Bitte:
Habe vor kurzem ein Formular in PHP gebastelt (aber nicht in Contenido).
Vergisst hier der User ein Feld, bleiben alle bisher eingegeben Daten erhalten und die Feldnamen werden über css. dann andersfarbig gestaltet. Wie könnte man die Feldnamen hier im contenido bei Fehlereintritt umsetzten. if abfragen kann man ja leider nicht in normalen modul-templates einfügen.

Das ist der Code den ich bei anderen Formularen (nicht in contenido) verwende.

Code: Alles auswählen


<tr>



<?php 
// ***********************************************************
// ABSENDER
// Ist das Eingabefeld ausgefüllt. Feldname = Normale Textformatierung
// $AbsenderFehlt: Feldname wird farblich abgeändert
// ***********************************************************

if(!$AbsenderFehlt) 

{ echo "<td width='820'><p class='txt'>Ihren Namen:*</p></td>"; }

else

{ echo "<td width='820'><p class='txt_rot09'>".$AbsenderFehlt.":*</p></td>"; }?> 
        <td width="210" align="right"><input type="text" class="textfeld" size="40" name="absender" value="<?php echo $_POST['absender'];?>"></td>



</tr>




Gruß Wildstar1600

tinof
Beiträge: 197
Registriert: Mi 24. Jan 2007, 20:38
Wohnort: Kirchberg / Sa.
Kontaktdaten:

Beitrag von tinof » Mi 8. Aug 2007, 08:09

Hi,

also das mit dem "Abbrechen" (<input type="reset">)ist in der Tat ein Problem, dieses Element setzt nur die (lokalen) Nutzereingaben seit dem letzten Laden der Seite zurück, ohne das Formular dazu an den Server zurückzuschicken. Da aber das Formular ja bereits mit den vorhergehenden Daten 'geladen' wurde, werden jetzt nur nachträgliche Änderungen zurückgesetzt.
Wenn das wirklich ein Problem ist, dann kommt man nicht umhin einen 'normalen' <reset> Button zu definieren, der das Formular mit einem (selbstdefinierten) Befehl "reset" an den Server schickt. Dort muß man dann darauf reagieren und ein vollkommen leeres Formular zurückschicken.

Für die farbliche Hervorhebung der fehlenden Felder geht auch wieder der Mechanismuns der Template - Variablen, also im Template

Code: Alles auswählen

...
<td width='820'><p class="{CLASS_Name}">Ihren Namen:*</p></td>
...
<td width='820'><p class="{CLASS_Vorname}">Ihren Vornamen:*</p></td>
...
und im php

Code: Alles auswählen

..
// init:
$class_name='txt'
$class_vorname='txt'
if  if ($_POST['Vorname'] == '') { 
      $noerrors = false; 
      $msg .= mi18n("Bitte geben Sie Ihren Vornamen ein!")."<br/>"; 
      $class_vorname='txt_rot09'
} 
if  if ($_POST['Name'] == '') { 
      $noerrors = false; 
      $msg .= mi18n("Bitte geben Sie Ihren Namen ein!")."<br/>"; 
      $class_name='txt_rot09'
} 
...

$tpl->set('s',CLASS_NAME,$class_name);
..
$tpl->set('s',CLASS_VORNAME,$class_vorname);
Also, es kann eine x beliebige Ausgabe im Template in Variablen verpackt und somit 'dynamisiert' werden. Man ist nicht nur auf reine Texte beschränkt. Der Aufwand erscheint zwar etwas hoch, aber ich bin ein absulter Verfechter dieses Vorgehens, weil :
- konsequente Trennung von Programmlogik und Layout
- viel besser lesbarer Programmcode

Viel Erfolg!
Tino
Für die Freizeit : www.hobbybrauer.de

wildstar1600
Beiträge: 32
Registriert: Fr 22. Jun 2007, 23:06
Wohnort: Ingolstadt
Kontaktdaten:

Beitrag von wildstar1600 » Do 9. Aug 2007, 21:46

Hallo tino,
so nun hab ich die ganze Soße fertig und es funktioniert alles super.

In manchen Teilen war ich bereits schon auf dem richtigen Weg. Da ich noch nicht lange hier bin, musste ich das mit den modul-temlates erst mal in der Praxis verstehen.

Danke Dir nochmals für die Unterstützung. Man liest sich bestimmt wieder.

Gruß Wildstar1600

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Fr 10. Aug 2007, 11:00

Vielleicht magst Du das fertige Ergebnis noch posten? Vielleicht nützt es anderen.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

gummibaerle
Beiträge: 52
Registriert: Do 23. Feb 2006, 00:16
Wohnort: Kleinaitingen
Kontaktdaten:

Einmal ohne und einmal mit Template

Beitrag von gummibaerle » Di 14. Aug 2007, 12:27

Ich habe hier mal einen Vergleich, wie so etwas aussieht bevor man Templates nutzt. Ich stelle das gerade nach und nach um. Vorher sah das Modul aus wie bei 1). Danach gibt es ein überarbeitetes Modul 2) und zusätzlich ein neues Administrations-Template 3).

Gruss aus Bayern

1) MODUL-AUSZUG mit HTML im MODUL

Code: Alles auswählen

        if(!isset($_POST['firmensuche']))
          {
           ?>
            <form action="http://www.lehrstellenboerse.org/<? echo $betriebstyp; ?>" method="post" name="suche">
	      <table class="mytable">
	        <tbody>
	          <tr>
	            <td>Firmenname: </td>
	            <td><input size="53" type='text' class='textfeld' name='firmenname'></td>
	          </tr>
	          <tr>
	            <td>Ort: </td><td><input size="53" type='text' class='textfeld' name='ort'></td>
	          </tr>
	          <tr>
	            <td></td>
	            <td><input type="submit" class="button" name="firmensuche" value="Suche absenden ..." /></td>
	          </tr>
	        </tbody>
	      </table><br />
            </form>
           <?
          }
MODUL-AUSZUG mit TEMPLATE

Code: Alles auswählen

        if(!isset($_POST['firmensuche']))
          {  
          echo '<form name="suche" method="post" action="http://www.lehrstellenboerse.org/'.$betriebstyp.'">';
            cInclude('classes', 'class.template.php');               // Initialisation
            $template = 'abc_firmensuche.html';                      // Templatezuweisung
            if (!is_object($tpl)) { $tpl = new Template; }           // Instanz erzeugen
            $tpl->reset();                                           // Instanz Initialisieren
            $tpl->set('d', 'BETRIEBSTYP', $betriebstyp);
            $tpl->set('s', 'FIRMENNAME', mi18n('firmenname'));
            $tpl->set('s', 'FIRMENNAME_FELDNAME', mi18n('Firmenname:')); 
            $tpl->set('s', 'ORT', mi18n('ort')); 
            $tpl->set('s', 'ORT_FELDNAME', mi18n('Ort:')); 
            $tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/abc_firmensuche.html"); 
          echo '</form>'; 
          }

MODUL-TEMPLATE abc_firmensuche.html

Code: Alles auswählen

  <table class="mytable">
    <tbody>
      <tr>
        <td>{FIRMENNAME_FELDNAME}</td>
        <td><input size='53' type='text' class='textfeld' name='{FIRMENNAME}'></td>
      </tr>
      <tr>
	<td>{ORT_FELDNAME}</td>
        <td><input size='53' type='text' class='textfeld' name='{ORT}'></td>
      </tr>
      <tr>
	<td></td><td><input type="submit" class="button" name="firmensuche" value="Suche absenden ..." /></td>
      </tr>
    </tbody>
  </table>
"Im Wald zwei Wege boten sich mir dar, und ich nahm den der weniger betreten war. Und das veränderte mein Leben."

Gesperrt