Author Topic: tmpl_if mit einem and versehen?  (Read 910 times)

0 Members and 1 Guest are viewing this topic.

David

  • Guest
tmpl_if mit einem and versehen?
on: Mon, 08. May 2006 - 14:10:41
Hallo,

habe zurzeit ne Abfrage die so aussieht:

<tmpl_if name=input op=<> value= op=and name=mail op=<> value=>

aber das funktioniert nicht. Wie also kann man das richtig machen?

jermyn

  • Guest
tmpl_if mit einem and versehen?
Reply #1 on: Mon, 08. May 2006 - 14:16:11
Hallo David,

soweit mir bekannt ist, kannst du für eine Bedingung nur einen Operator verwenden. Ich glaube, da bin ich damals auch mal drüber gestoplert.

Also:

<tmpl_if name=input op=<> value=>

geht und auch das geht:

<tmpl_if name=mail op=<> value=>

Verkettungen durch and sind nicht möglich. Um es jedoch ordentlich zu machen, solltest du mal beschreiben, was du eigentlich machen willst

Gruß Jermyn

David

  • Guest
tmpl_if mit einem and versehen?
Reply #2 on: Mon, 08. May 2006 - 14:20:41
Ich will Aufgabe zwei machen

http://doku.clausvb.de/vlib_kap03.htm

Kann man die Klasse nicht irgendwie ändern, das auch mehrere Operatoren funktionieren?
Last Edit: Mon, 08. May 2006 - 15:01:58 by ClausVB

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
tmpl_if mit einem and versehen?
Reply #3 on: Mon, 08. May 2006 - 14:50:27
Quote
Kann man die Klasse nicht irgendwie ändern, das auch mehrere Operatoren funktionieren?
Nein, dass ist nicht Sinn der Sache.

Komplizierte IF-Strukturen dürfen nach der Philosophie gar nicht im Template gemacht werden. Diese müssen immer im PHP-Code gemacht werden.

Siehe das Beispiel für Sister_Sourcecode, wo man schön sehen kann, wie man die IF-Strukturen in PHP bildet und dann ans Template übergibt.

Das Gleiche gilt für DB-Abfragen:
Code: [Select]
SELECT author_name, IFauthor_name = ClausVB, 1, 0 AS boolean
FROM vlib_posts
Alles was man nicht mit SQL hinbekommt, macht man in PHP, aber auf keinem Fall im Template.

Template Engines sind dazu da, um PHP (Logik) von HTML (Design) zu trennen und nicht die Logik in das Template zu integrieren.

Sonst kann man direkt Konstrukte wie:

main.php

Code: [Select]
?php
       // Logik

       title_text = TITLE Template Engine mal anders ...;
       body_text = BODY Hallo Welt;

       test_array = array
                       eins = 1,
                       zwei = 2,
                       drei = 3,
                       siebzehn = 17
               ;

       require_once templates_nur_mit_php_head.php;
       require_once templates_nur_mit_php_body.php;
?

Template 1: templates_nur_mit_php_head.php

[!--html--][div class='htmltop']HTML[/div][div class='htmlmain'][!--html1--]<DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http//www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
 <title><?=title_text?></title>
 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>[!--html2--][/div][!--html3--]

Template 2: templates_nur_mit_php_body.php

[!--html--][div class='htmltop']HTML[/div][div class='htmlmain'][!--html1--]<body>

<h1><?=body_text?></h1>

<? foreachtest_array as key => value ?>
<p>Schlüssel <?=key?> -- Wert <?=value?></p>
<? endforeach; ?>

</body>
</html>[!--html2--][/div][!--html3--]
verwenden. Damit hat man dann nämlich die gesamte PHP-Macht.

Gruß
Claus
Last Edit: Mon, 08. May 2006 - 14:57:02 by ClausVB

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
tmpl_if mit einem and versehen?
Reply #4 on: Mon, 08. May 2006 - 15:05:57
Quote
Ich will Aufgabe zwei machen
Gut. Stelle Dir zuerst folgende Fragen:
1. Wie würde ich mehrere POST-Parameter in PHP abfragen?
2. Wie baue ich eine IF-Abfrage, die als Resultat nur 1 oder 0 oder aber TRUE oder FALSE ausliefert?
3. Wie bekomme ich diese Ausgabe ans Template übergeben?
4. Welchen Markup Tag (Tags von vlibTemplate) brauche ich, um im Template auf die Übergabe zu reagieren?

Gruß
Claus
Last Edit: Mon, 08. May 2006 - 15:07:41 by ClausVB