To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

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 />
&nbsp;</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>



Powered by phpBB modified by Przemo © 2003 phpBB Group