Autor | Zpráva | ||
---|---|---|---|
Trickle Profil |
#1 · Zasláno: 18. 11. 2015, 17:09:37
Zdravím udělal jsem si kód pro vypisování článků. Když jsou splněny určité podmínky udělá se z nadpisu odkaz + se přidá odkaz číst více.Vše funguje. A můj dotaz je za by to někdo vyřešil lépe. Nebo jestli je to takto dostačující. Je mi jasné že html a php není dobrá volba míchat dohromady, ale zatím až tak daleko jsem se nedostal.
echo "<table width='50%' border='1' style='border-collapse: collapse'>"; if ($zaznam["text2"]<$zaznam["titulek"]) echo "<tr align='left'><th><u>".$zaznam["titulek"]."</u></th></a></tr>\n" ; else echo "<tr align='left'><th><u><a href=\"".$_SERVER["PHP_SELF"]."?clanky=clanek&id=".$zaznam["id"]."\">".$zaznam["titulek"]."</u></th></a></tr>\n"; echo "<tr><td>".$zaznam["text"]."\n"; if ($zaznam["text"]>$zaznam["text2"]); else echo "<div style='text-align: right;'><a href=\"".$_SERVER["PHP_SELF"]."?clanky=clanek&id=".$zaznam["id"]."\">Číst více</a></div></td></tr>\n"; echo "</table>"; echo "<br>"; |
||
yFang Profil |
#2 · Zasláno: 18. 11. 2015, 17:38:30
Trickle:
Lepší způsob mi přijde v šabloně psát html kód a do něj pouze vkládat PHP, kde to je nutné. Podmínky můžeš psát s dvojtečkou a ukončovat endif: <?php if($show): ?> <p>...</p> <?php endif; ?> Pro výpis proměnné můžeš od verze 5.4 použít zkratku: <?= $var ?> <?php echo $var; ?> Pokud máš prázdnou podmínku a používáš pouze else větev, lze podmínku v ifu znegovat. Tvůj kód by šel upravit například takto: <table width="50%" border="1" style="border-collapse: collapse"> <?php if ($zaznam["text2"] < $zaznam["titulek"]): ?> <tr align="left"> <th><?= $zaznam["titulek"] ?></th> </tr> <?php endif; ?> <tr> <td> <?= $zaznam["text"] ?> <?php if (!($zaznam["text"]>$zaznam["text2"])): ?> <div style="text-align: right;"> <a href="<?= $_SERVER["PHP_SELF"] ?>?clanky=clanek&id=<?= $zaznam["id"] ?>">Číst více</a> </div> <?php endif; ?> </td> </tr> </table> |
||
Trickle Profil |
Tak na jeden problém jsem narazil.. když v DB začíná text2 divem v novince na hl. stránce se nezobrazí ani jeden odkaz... Musím nějak do TinyMCE dostat aspoň span nebo tak něco.
|
||
Trickle Profil |
#4 · Zasláno: 20. 11. 2015, 14:42:56
yFang:
Prosím tě když jsem měl v tom špagetovém kodu, že když je splněná podmínka u titulku. Tak z běžného textu se to změní na odkaz. To u tohoto nejde? Zkouším to dát do kupy ale stále se mi nedaří. Vypíše to jak text tak i ten odkaz. <table width='50%' border='1' style='border-collapse: collapse'> <tr align='left'><th><u><?= $clanky["titulek"] ?></u></th> <?php if (!($clanky["text"]>$clanky["text2"])): ?> </tr> <tr align='left'><th><u><a href="<?= $_SERVER["PHP_SELF"] ?>?clanky=clanek&id=<?= $clanky["id"] ?>"><?= $clanky["titulek"] ?></u></th></a> <?php endif; ?> </tr> <tr> <td><?= $clanky["text"] ?> <?php if (!($clanky["text"]>$clanky["text2"])): ?> <div style='text-align: right;'><a href="<?= $_SERVER["PHP_SELF"] ?>?clanky=clanek&id=<?= $clanky["id"] ?>">Číst více</a> <?php endif; ?> </div> </td> </tr> </table> <br> |
||
yFang Profil |
#5 · Zasláno: 20. 11. 2015, 21:13:28
Trickle:
Samozřejmě, že jde. Můžeš normálně použít if else. Tak jak to máš teď zobrazuješ titulek vždycky. Asi chceš udělat něco jako: <?php if (!($clanky["text"]>$clanky["text2"])): ?> <tr align='left'> <th><u><a href="<?= $_SERVER["PHP_SELF"] ?>?clanky=clanek&id=<?= $clanky["id"] ?>"><?= $clanky["titulek"] ?></u></th></a> </tr> <?php else: ?> <tr align='left'> <th><u><?= $clanky["titulek"] ?></u></th> </tr> <?php endif; ?> |
||
mimochodec Profil |
#6 · Zasláno: 20. 11. 2015, 22:07:13
Já se jen zeptám. Vám všem tyhle trojí <?= na jednom řádku připadají přehledné?
Opravdu je toto <th><u><a href="<?= $_SERVER["PHP_SELF"] ?>?clanky=clanek&id=<?= $clanky["id"] ?>"><?= $clanky["titulek"] ?></u></th></a> přehlednější než toto? echo "<th><u><a href='".$_SERVER["PHP_SELF"]."?clanky=clanek&id=".$clanky["id"]."'>".$clanky["titulek"]."></u></th></a>"; |
||
Časová prodleva: 9 let
|
0