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 - [ PHP ] Wy?wietlanie wyników w szablonie.

Crypt3r - 16-03-2015, 00:28
Temat postu: [ PHP ] Wyświetlanie wyników w szablonie.
Problem prawdopodobnie dotyczy pętli while lub samego if'a ale nie jestem pewien. Po prostu wynik "temat1" nie wyświetla się w tabelce pod przyciskami - dołączam zrzut.

mapa.php

Kod:
<?php

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.' . $phpEx);

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

include($phpbb_root_path . 'includes/page_header.'.$phpEx); {

$sortuj = $_GET['sortuj'];
if ($sortuj == 'tematy') {

    //  echo $lang['Topics'] . ':<br />';
      $sql = 'SELECT t.topic_id, t.topic_title
        FROM ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . ' f
        WHERE f.forum_id = t.forum_id
            AND f.auth_view = 0
        AND f.auth_read = 0
          ORDER BY topic_id DESC';

      if (!$result = $db->sql_query($sql))
      {
            message_die(GENERAL_ERROR, "nie mozna pobrac danych z bazy", "", __LINE__, __FILE__, $sql);
      }
      while ($row = $db->sql_fetchrow($result))
      $wyniki = '<a href="viewtopic.php?t=' . $row['topic_id'] . '" title="' . $row['topic_title'] . '">' . $row['topic_title'] . '</a>';
      {
            echo $wyniki;
       }
      //definicja {FUNKCJA} funkcji w szablonie tpl
$template->assign_block_vars('mapa', array(
            'WYNIKI' => $wyniki
            ));
}
$template->set_filenames(array('body' => 'mapa_body.tpl'));
$template->pparse('body');    
 
}
/* Stopka */
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>


mapa_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_MAPA}">{L_MAPA}</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">Mapa forum</span></td>
    </tr>
    <tr>
        <td class="tlo1" align="center" width="30%"><span class="naglowek_kolor_b">Sortowanie<br/>(wybierz opcje)</span></td>
        <td class="tlo1" align="center" width="70%">
            <a href="mapa.php?sortuj=tematy"><button class="button">Tematy</button></a>
           
            </td>     
    </tr>
        <!-- BEGIN mapa -->
    <tr>
        <td class="tlo1" align="center" width="30%">wyniki</td>
        <td class="tlo1" align="center" width="70%">{mapa.WYNIKI}</td>
    </tr>
        <!-- END mapa-->
    <tr>
        <td class="belka_dol" colspan="4"></td>
    </tr>
</table>


Kod wydaje się być w porządku, jednak nie jestem do końca pewny. Może ktoś z was będzie miał jakiś patent na to?

kooza - 16-03-2015, 19:35

nie potrzebnie dodałeś echo w kodzie, skoro chcesz dodać wynik do templatki. ;)
Kod:
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.' . $phpEx);

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

include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$sortuj = $_GET['sortuj'];
if ($sortuj == 'tematy') {

      $sql = 'SELECT t.topic_id, t.topic_title
        FROM ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . ' f
        WHERE f.forum_id = t.forum_id
        AND f.auth_view = 0
        AND f.auth_read = 0
        ORDER BY topic_id DESC';
      if (!$result = $db->sql_query($sql))
      {
            message_die(GENERAL_ERROR, "nie mozna pobrac danych z bazy", "", __LINE__, __FILE__, $sql);
      }
      while ($row = $db->sql_fetchrow($result))
      {
      $wyniki = '<a href="viewtopic.php?t=' . $row['topic_id'] . '" title="' . $row['topic_title'] . '">' . $row['topic_title'] . '</a>';
      $template->assign_block_vars('mapa', array(
            'WYNIKI' => $wyniki
            ));
      }
}
$template->set_filenames(array('body' => 'mapa_body.tpl'));
$template->pparse('body');     

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

Crypt3r - 16-03-2015, 19:56

No tak, jednak wyniki nie są wyświetlane w szablonie. Gdzieś coś jest pominięte, ale kompletnie tego nie widzę. Zastanawia mnie pętla while. Echo w tym momencie nie ma żadnego znaczenia. Wyniki byłyby wyświetlane w szablonie i samym echo.
kooza - 16-03-2015, 23:33

Tak, wyświetlało Ci wyniki nad tabelą bo pobierało wyniki z echo którą dodałeś do pętli. A w tabelce Ci nie pokazywało, dlatego że nie dodałeś templatki do pętli. Podałem Ci kod wyżej, sprawdzałeś czy wogóle działa? Bo poprawiałem w ciemno i nie sprawdzałem, ale powinno być ok
Crypt3r - 16-03-2015, 23:51

Trochę inaczej skonstruowałem pętlę i syntax dla szablonu. Łap + za dobre chęci.
Tommekk80 - 17-03-2015, 10:55

Cytat:
<!-- END mapa-->

Po 'mapa' dodaj spację.
Masz swój błąd... :mrgreen: :mrgreen:



Powered by phpBB modified by Przemo © 2003 phpBB Group