HTML/PHP/AJAX/JS - [Pomoc] Komunikat o błędzie
kevin_ - 16-01-2009, 09:32 Temat postu: [Pomoc] Komunikat o błędzie Witam, w pliku tpl posiadam kod:
Kod: |
<table class="errorline" width="100%" cellspacing="0" cellpadding="1" border="0">
<tr>
<td align="center">
<br /><strong><span style="color: red;">BŁĘDY:</span><br />{bledy}<br /></strong><br />
</td>
</tr>
</table>
|
a) Jeżeli nie ma błędów, pokazuje mi się cała tabela, tyle że bez komunikatu błędu {bledy}.
W jaki sposób zrobić, tak aby tabela z błędami pokazywała się dopiero po błędzie ?
b) W jaki sposób zrobić modyfikacje tak aby za pomocą {bledy} wyświetlić kilka błędów?
Skrawek kodu...
Kod: |
if (empty($pole1) || empty($pole2))
{
$blad_pola = $lang['Fields_empty'];
}
// drugi kod gdzieś tam dalej .. ;-)
if ( !($group_info = $db->sql_fetchrow($result)) )
{
$blad_02 = $lang['Group_not_exist'];
}
|
No i teraz chciałbym uzyskać taki efekt:
Jeżeli użytkownik popełnił dwa błędy to wtedy {bledy} wyświetla:
$lang['Fields_empty']; <br />
$lang['Group_not_exist'];
Jeżeli użytkownik zrobił jeden błąd to wyświetla mu tylko np.
$lang['Group_not_exist'];
Radek - 16-01-2009, 16:54
Kod: |
$errors = array();
if ( !empty($b) )
{
$errors[] = $lang['Fields_empty'];
}
if ( !isset($c) )
{
$errors[] = $lang['Group_not_exists'];
}
// itd.
if ( sizeof($errors) )
{
$template->assign_vars(array(
'ERRORS' => implode('<br />', $errors)
));
} |
a tpl:
Kod: | <!-- IF ERRORS -->
Bledy: {ERRORS}
<!-- ENDIF --> |
kevin_ - 17-01-2009, 08:36
Działa, jeszcze jedno pytanie odnośnie plików phpBB.
includes/constants.php
Jeżeli tworzymy nową modyfikację (tzn. nową stronę), która będzie pobierała dane z bazy, to mam ją tutaj wpisać np. w postaci:
Kod: |
define('NOWA_TABELA', $table_prefix.'nowa_tabela');
|
I wtedy np. podczas select zapytanie będzie wyglądać w postaci:
Kod: |
$sql = "SELECT *
FROM " . NOWA_TABELA . "
|
Zgadza się?
A teraz następne, ten sam plik;
Kod: |
// Topic status
define('TOPIC_UNLOCKED', 0);
define('TOPIC_LOCKED', 1);
define('TOPIC_MOVED', 2);
define('TOPIC_WATCH_NOTIFIED', 1);
define('TOPIC_WATCH_UN_NOTIFIED', 0);
|
Tworze skrypt, który będzie miał możliwość statusu: Otwarty (użytkownik może pisać, wykonywać akcje) lub Zamknięty (nic nie może zrobić), więc powiedzmy że dodaje nowy wpis:
Kod: |
// Nowy skrypt
define('SKRYPT_UNLOCKED', 0);
define('SKRYPT_LOCKED', 1);
|
Czyli w praktyce jak to będzie wyglądać? zasada działania + prosty przykład.
Radek - 17-01-2009, 21:12
Poczytaj o stałych w php: http://pl.php.net/manual/pl/language.constants.php
w pliku constants.php masz stałe które są używane w skrypcie. Jeżeli utworzysz np. stałą SKRYPT_UNLOCKED to korzystasz z niej w sposob:
Kod: | <?php
define('SKRYPT_UNLOCKED', 1);
echo SKRYPT_UNLOCKED; // 1
echo 'status ' . SKRYPT_UNLOCKED; //status 1
$db->sql_query('UPDATE tabela set status = '.SKRYPT_UNLOCKED); // update tabela set status = 1 |
kevin_ - 18-01-2009, 16:56
Okej, a w jaki sposób uaktywnić BBCode? W pliku PHP dodaje
Kod: |
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
|
Aktualnie zastosowałem: echo bbencode_first_pass($_POST['opis_1']); to wtedy rezultat = [b:]czesc[/b:],
dlaczego wyświetla jako [b:] ? nie powinno czasem wyświetlić jako <b>czesc</b> ? lub
<span style="font-weight: bold;">czesc</span>
W pliku bbcode.php jest trochę tych funkcji, i nie wiem, którą użyć.
Zwykłe wyświetlanie BBCode (pogrubienie, url, img, center, etc), które później będzie wysłane do bazy danych, i gdzieś tam zostanie wyświetlone.
Kod: |
<textarea name="opis_1" rows="5" cols="50"></textarea>
|
|
|
|