PDA

Zobacz pełną wersję : [zaawansowany] Problem z łączeniem z bazą danych JOOMLA (w środku pluginu)



rafek1241
14-08-2015, 19:31
Witajcie, mam problem z pluginem, który chciałbym stworzyć. Robię sobie wyświetlanie komentarzy z komento wewnątrz panelu użytkownika. Niestety nie działa i nie wiem czemu. Oto kod źródłowy:


$db = JFactory::getDbo();$query = $db -> getQuery(true);$query->select($db->quoteName(array('id', 'comment', 'cid', 'lft')));$query->from($db->quoteName('#__komento_comments'));$query->where($db->quoteName('created_by') . ' = ' . $db->quote(JRequest::getInt('id'));$query->order('id ASC');$komentarze = $db->setQuery($query);$results = $db->loadObjectList('id');
$LiczbaKomentarzy = getTotalComment(JRequest::getInt('id'));//koniec pobieraniawhile(($resultArray[] = mysql_fetch_assoc($komentarze)) || array_pop($resultArray)); if( $LiczbaKomentarzy > 0 ) {?><ul class="CommentBlock"> <li id="kmt-<?php echo $results['1']->id; ?>" class="kmt-<?php echo $results['1']->id; ?>">
<div class="stream-head stream-comment"> <i class="stream-type" ></i> <!-- skomentowano... --><div class="CommentTitle" style="padding-left:60px;font-weight:bold;word-wrap:break-word; height:50px;"> <a href="<?php echo "#"; ?>"><?php echo "Tytuł komentarza"; ?></a></div> </div> <div class="stream-body"> <div class="CommentDescription" style="padding: 5px; padding-top:10px;"><?php echo $results['1']->comment; ?></div> </div> <div class="stream-foot"> <a href="<?php echo "#"; ?>"><?php echo $results['1']->created; ?></a> </div> </li><?php }?></ul>
<?php if( !($total == $LiczbaKomentarzy ) ) { ?> <a class="loadMore kmt-btn-loadmore" href="javascript:void(0)"><b><?php echo "Więcej komentarzy.."; ?></b></a><?php }
} else { ?> <p><?php echo "Nie znaleziono komentarzy tego użytkownika."; ?></p><?php }?>

Gdy już się połączę z bazą danych
$results = $db->loadObjectList('id'); to strona zaczyna się sypać - zamiast szablony wyświetla się biała kartka :(, nie wyskakują żadne komentarze, które są umieszczone w bazie danych. Próbowałem też to zrobić czystym php - z marnym skutkiem.

Jola
15-08-2015, 02:09
Podczas pisania własnego kodu włączaj raportowanie błędów na maksimum.
Składniowo w podanym przykładzie jest jeden } za dużo.

rafek1241
15-08-2015, 20:09
Przepraszam panią bardzo, ale tak naprawdę nie piszę tego jako osobny plugin. Używam notepad++ i dodaję osobny plik.php, który z kolei metodą "require_once("plik.php");" dodaję do istnięjącego modułu w.. Joomla/components/com_modul/tmpl/default.html (coś w tym rodzaju). Czy mogłaby mi pani polecić jakiś edytor php, który pokazywałby mi te błędy "z marszu"? Czy to joomla ma raportowanie błędów w sobie?

rafek1241
15-08-2015, 20:44
Dobrze, zamykam temat. Poradziłem sobie z problemem.

Błąd był nie w dodatkowym znaku }, a w tym, że do zmiennej "$komentarze" dopisywałem "$db->setQuery($query)", zamiast używać tego bez zmiennej, jako wywołania funkcji.