phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

FAQFAQ - PIERWSZA POMOC!!  regulaminREGULAMIN  SzukajSZUKAJ  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload  katalog Forów DyskusyjnychKatalog Forów   FAQ Video tutoriale

Poprzedni temat «» Następny temat
[ PHP ] Dublowanie pętli szablonu.
Autor Wiadomość
Crypt3r


Pomógł: 1 raz
Posty: 22
Wysłany: 08-03-2015, 18:41   [ PHP ] Dublowanie pętli szablonu.

Przymierzam się do skończenia prostego checkera plików php (tylko do wglądu dla głównego administratora, założyciela forum). Napisałem taki o to prosty skrypt. Jednak jest mały problem. Szablon się zapętla (tak jak na zrzucie). Czy zrobiłem jakiś błąd w pętli? Może ktoś spojrzy trzeźwym okiem, wydaje mi się, że foreach jest prawidłowo zrobione, tak samo czytanie bazy sum kontrolnych.

Kod pliku checker.php
Kod:
    define('IN_PHPBB', true);
    $phpbb_root_path = './';
    include($phpbb_root_path . 'extension.inc');
    include($phpbb_root_path . 'common.'.$phpEx);
    include($phpbb_root_path . 'checker_sumy.'.$phpEx);
    include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_checker.' . $phpEx);

    $page_title = $lang['beta'];
    $userdata = session_pagestart($user_ip, PAGE_INDEX);
    init_userprefs($userdata);

    if ($board_config['disable_checker'])
    {
        message_die(GENERAL_MESSAGE, $lang['disable']);
    }

    /* Nagłówek */
    include($phpbb_root_path . 'includes/page_header.'.$phpEx);
    {

    echo 'Test echo!<br/><br/>'; //jakiś tam sobie echo show :)

    if ($userdata['user_level'] == ADMIN)
       {
       

    $handle = fopen('checker_sumy.'.$phpEx , 'r'); //otwiera plik checker_sumy.php

    foreach ($md5_tablica as $nazwa_pliku => $suma_md5) { //zwraca z tablicy ($md5_tablica): nazwę pliku ($nazwa_pliku) i sumę md5 ($suma_md5)
       $i++; //standardowa inkrementacja  każdej linii :)
       
       //echo "$i.<br/>";
       //echo "$nazwa_pliku <br/>";
       //echo "$suma_md5 <br/><br/>";
       
       //definicja {FUNKCJA} funkcji w szablonie tpl

    $template->assign_vars(array(
       'LICZBA' => $i,
        'NAZWA' => $nazwa_pliku,
       'MD5' => $suma_md5,
        'STATUS' => $md5_tablica,
       ));

    $template->set_filenames(array('body' => 'checker_body.tpl'));
    $template->pparse('body');    }
       }
       else
       {
          message_die(GENERAL_MESSAGE, $lang['error']);
       }

       
    }
    /* Stopka */
    include($phpbb_root_path . 'includes/page_tail.'.$phpEx);



Kod szablonu: checker_body.tpl
Kod:
<table width="100%" cellspacing="1" cellpadding="2" border="0" align="center">
    <tr>
        <td align="left">
            <span class="sciezka">Ścieżka: <a href="{U_INDEX}">{L_INDEX}</a> &#187; <a href="{U_CHECKER}">{L_CHECKER}</a></span>
        </td>
    </tr>
</table>
<table width="100%" cellpadding="3" cellspacing="1" border="0" class="linia_forum">
   <tr>
        <td class="belka_gora" colspan="4" align="center"><span class="index_tekst">Checker plików</span></td>
    </tr>
    <tr>
        <td class="tlo1" align="center" width="10%"><span class="naglowek_kolor_b">#</span></td>
        <td class="tlo1" align="center" width="30%"><span class="naglowek_kolor_b">Nazwa pliku</span></td>
        <td class="tlo1" align="center" width="40%"><span class="naglowek_kolor_b">Suma (md5)</span></td>
        <td class="tlo1" align="center" width="20%"><span class="naglowek_kolor_b">Status</span></td>       
    </tr>
    <tr>
        <td class="tlo1" align="center" width="10%">{LICZBA}</td>
        <td class="tlo1" align="center" width="30%">{NAZWA}</td> 
        <td class="tlo1" align="center" width="40%">{MD5}</td>
        <td class="tlo1" align="center" width="20%">{STATUS}</td>
    </tr>
    <tr>
        <td class="belka_dol" colspan="4"></td>
    </tr>
</table>


Zrzut:
 
     
Gadatliwa Kasia 

   
Tommekk80



Pomógł: 1411 razy
Posty: 4780
Wysłany: 08-03-2015, 18:55   

W php
Kod:
    $template->assign_vars(array(
       'LICZBA' => $i,
        'NAZWA' => $nazwa_pliku,
       'MD5' => $suma_md5,
        'STATUS' => $md5_tablica,
       ));

zmień na:

Kod:
$template->assign_block_vars('checker', array(
            'LICZBA' => $i,
            'NAZWA' => $nazwa_pliku,
            'MD5' => $suma_md5,
            'STATUS' => $md5_tablica
            ));


a w tpl zapisz to tak:

Kod:
<table width="100%" cellspacing="1" cellpadding="2" border="0" align="center">
    <tr>
        <td align="left">
            <span class="sciezka">Ścieżka: <a href="{U_INDEX}">{L_INDEX}</a> &#187; <a href="{U_CHECKER}">{L_CHECKER}</a></span>
        </td>
    </tr>
</table>
<table width="100%" cellpadding="3" cellspacing="1" border="0" class="linia_forum">
   <tr>
        <td class="belka_gora" colspan="4" align="center"><span class="index_tekst">Checker plików</span></td>
    </tr>
    <tr>
        <td class="tlo1" align="center" width="10%"><span class="naglowek_kolor_b">#</span></td>
        <td class="tlo1" align="center" width="30%"><span class="naglowek_kolor_b">Nazwa pliku</span></td>
        <td class="tlo1" align="center" width="40%"><span class="naglowek_kolor_b">Suma (md5)</span></td>
        <td class="tlo1" align="center" width="20%"><span class="naglowek_kolor_b">Status</span></td>       
    </tr>
        <!-- BEGIN checker -->
    <tr>
        <td class="tlo1" align="center" width="10%">{checker.LICZBA}</td>
        <td class="tlo1" align="center" width="30%">{checker.NAZWA}</td>
        <td class="tlo1" align="center" width="40%">{checker.MD5}</td>
        <td class="tlo1" align="center" width="20%">{checker.STATUS}</td>
    </tr>
        <!-- END checker -->
    <tr>
        <td class="belka_dol" colspan="4"></td>
    </tr>
</table>


Wtedy będzie pętla 'brała' tylko kod spomiędzy BEGIN i END - inaczej za każdym razem ładuje cały plik.
 
     
Crypt3r


Pomógł: 1 raz
Posty: 22
Wysłany: 08-03-2015, 19:04   

Popatrz, masz rację. Nie mam pojęcia dlaczego umknęło mi: assign_block_vars dla templatki.
Poza tym źle skonstruowałem pętlę, gdzie ten banalny "}" narobił zamieszania.

Kod:
Kod:

    $template->assign_vars(array(
       'LICZBA' => $i,
        'NAZWA' => $nazwa_pliku,
       'MD5' => $suma_md5,
        'STATUS' => $md5_tablica,
       ));

    $template->set_filenames(array('body' => 'checker_body.tpl'));
    $template->pparse('body');    }


Zmieniłem na:

Kod:
$template->assign_vars(array(
       'LICZBA' => $i,
        'NAZWA' => $nazwa_pliku,
       'MD5' => $suma_md5,
        'STATUS' => $md5_tablica,
       ));
 } // --- TUTAJ PRZENIOSŁEM ---
    $template->set_filenames(array('body' => 'checker_body.tpl'));
    $template->pparse('body');


Takie niedopatrzenie z mojej strony, tak trochę wstyd :/
Należy Ci się piwello!
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!

Powered by phpBB modified by Przemo © 2003 phpBB
Strona wygenerowana w 0,06 sekundy. Zapytań do SQL: 11
Polecane serwisy

Najlepsze oprogramowanie do prowadzenia sklepu internetowegoNajlepszy program do sklepu firmowany przez Przem'a

Sklep z gadżetami

mediaclick.pl

serwis laptopów

phpbb

Polisy Ubezpieczeniowe TU Europa

Design Cart - Tworzenie sklepu internetowego

dnirozwoju.pl

Ranking Hostingów HostingOnline.pl

• Zamów reklamę