Autor Zpráva
Anonym
Profil *
Ahoj, jak nejlépe napsat pomocí Smarty tuto část kódu? Není mi jasné jakou část kódu napsat do .php souboru a jakou do šablony (hlavně mám zmatek u if a isset)

Děkuju moc.

if ($akce == 1){
              
                 if (isset($_POST['odeslat'])) {
            
                     $titulek = $_POST['titulek'];
                
                     if (empty($titulek)) {
                             echo "Polozka nebyla vyplněna!";
                     }
                     else {
                
                          $dotaz = "INSERT INTO `tabulka`(`titulek`) VALUES ( \"" . dbPut($titulek,$spojeni) . "\")";
                          $vysledek = mysqli_query($spojeni, $dotaz);       
                
                          if ($vysledek){
                                echo "Titulek byl vložena.";
                          } 
                          else
                          {
                               echo "Nepodařilo se vložit titulek.";
                          }
                     }        
                  }
              
                  else {
.....
Nox
Profil
většinu z toho do PHP, do smarty dej jenom to co máš v echo, přes assign předej smarty, v šabloně testni existenci/naplněnost proměnné a vypiš
Anonym
Profil *
Tohle je tedy správně?

.php
if ($akce == 1){
              
     if (isset($_POST['odeslat'])) {
            
          $titulek = $_POST['titulek'];
                
          if (empty($titulek)) {
               $hlaska1 = true;
               $smarty->assign('hlaska1', $hlaska1); 
          }
          else {
                
               $dotaz = "INSERT INTO `tabulka`(`titulek`) VALUES ( \"" . dbPut($titulek,$spojeni) . "\")";
               $vysledek = mysqli_query($spojeni, $dotaz);       
                
               if ($vysledek){
                    $hlaska2 = true;
                    $smarty->assign('hlaska2', $hlaska2); 
               } 
               else
               {
                    $hlaska3 = true;
                    $smarty->assign('hlaska3', $hlaska3); 
               }
          }        
     }
              
     else {
     .....


.tpl
{if $hlaska1}
     <p>Polozka nebyla vyplněna!</p>
{/if}


Atd.
Nox
Profil
Pokud bude možný zobrazit víc hlášek zaráz, tak samozřejmě pole a případně použít foreach ve smarty, jinak to dej do jedné a v ifu vypiš tu proměnnou, ať nemáš if pro každou hlášku zvlášť, to bude lepší, ne?
Anonym
Profil *
Nox:
jinak to dej do jedné a v ifu vypiš tu proměnnou, ať nemáš if pro každou hlášku zvlášť, to bude lepší, ne?

Teď ti moc nerozumím, dát všechny hlášky do jedné proměnné? Mohl bys uvést příklad?
Díky
Anonym
Profil *
Možná už mi docvaklo... Je to už správně?

.php
if ($akce == 1){
              
     if (isset($_POST['odeslat'])) {
            
          $titulek = $_POST['titulek'];
                
          if (empty($titulek)) {
               $hlaska = "Polozka nebyla vyplněna!";
               $smarty->assign('hlaska', $hlaska); 
          }
          else {
                
               $dotaz = "INSERT INTO `tabulka`(`titulek`) VALUES ( \"" . dbPut($titulek,$spojeni) . "\")";
               $vysledek = mysqli_query($spojeni, $dotaz);       
                
               if ($vysledek){
                    $hlaska = "Titulek byl vložena.";
                    $smarty->assign('hlaska', $hlaska);
               } 
               else
               {
                    $hlaska = "Nepodařilo se vložit titulek.";
                    $smarty->assign('hlaska', $hlaska);
               }
          }        
     }
              
     else {
     .....


.tpl
{if $hlaska}
     <p>{$hlaska}</p>
{/if}
Anonym
Profil *
Nepopírá to poslední řešení základní výhody použití Smarty? Hlášky jsou napsané v php souboru a v šabloně není pro kodéra šance změnit je.
Anonym
Profil *
Prosím jaké řešení je správné?
Anonym
Profil *
Prosím Vás neví někdo?
pEeLL
Profil
Anonym:
si ty hlasky dej jako konstanty do nejakeho souboru.
Anonym
Profil *
pEeLL:
To pak bude stejne jako zde[#3] ne? Jen s tim rozdilem, ze nebudu nastavovat true, ale jen poslu sablone hlasku a vypisu stejne
{if $hlaska1}
     <p>Polozka nebyla vyplněna!</p>
{/if}

Nebo jestli to nechytam, tak prosimte uved priklad. Diky
pEeLL
Profil
Anonym:


no v php bys mel neco takovehohle

if (empty($titulek)) 
{     
     $smarty->assign('hlaska', HLASKA1);  
}


v dalsim php souboru s konstantama jen

define("HLASKA1",     "Polozka nebyla vyplněna!");


a v tpl

{if $hlaska}
     <p>{$hlaska}</p>
{/if}
Anonym
Profil *
Díky.

Ještě bych se zeptal na jednu věc. Jak napsat část kódu, kde se vyskytují i klasické nadpisy v HTML? Pokud v .php testnu prazdnost titulku, jak potom v .tpl vypsat h2, hr atd. aby se zobrazili jen pokud je titulek prazdny? Snad uz je to posledni otazka. Diky

if (empty($titulek)) {
                ?>
                <h2 class = "stred">Vložení textu:</h2>
                <hr>
                <p class = "hlaska">Položka nebyla vyplněna!</p>
                <form method="post" action="">
                    <div>
                  	 <div>
                  	      <label for="titulek"><strong>Titulek:</strong></label><br>
                  	      <input type="text" name="titulek" value= "<?php echo vypln("titulek");?>">
              		      <input type="submit" name="odeslat" value="Vložit">
              	       </div>
                </form>
<?php
}
Anonym
Profil *
Prosím můžete mi poradit? Stačí jen nástin řešení...
Anonym
Profil *
Moc Vás prosím.
Anonym
Profil *
Prosím Vás, jen nástin (co do php, a co do tpl)...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: