Ostatnie komentarze - podgladanie profili, masymalna ilość znaków
|
t3s7 |
Dodany dnia 31.08.2008 15:02:58
|
Przedszkolak
Postów: 8
Data rejestracji: 31.08.2008 14:04
|
Kod panelu wyglada tak:
<?php
$result = dbquery("SELECT comment_id, comment_message, comment_item_id, comment_datestamp, comment_type, ifnull(user_name, comment_name)as 'user_name' FROM ".$db_prefix."comments LEFT JOIN ".$db_prefix."users ON comment_name=""""userUS95id"""" GROUP BY comment_id, comment_message, comment_item_id, comment_datestamp, user_name ORDER BY comment_id DESC LIMIT 15"
);
openside("Komentarze",true, "on");
if (dbrows($result) != 0) {
while($data = dbarray($result)) {
switch ($data['comment_type']) {
case 'A': $typ='readarticle.php?article_id';
$nazwa='';
break;
case 'N':$typ='news.php?readmore' ;
$nazwa='';
break;
case 'P':$typ='photogallery.php?photo_id' ;
$nazwa='';
break;
case 'V':$typ='viewpage.php?page_id' ;
$nazwa='';
break;
}
if ($data['user_name']) {
echo "<a href='".BASEDIR."profile.php?lookup=".$data['comment_name']."' class='nick'>".$data['user_name']."</a>";
} else {
echo "<span class='gosc'>".$data['comment_name']."</span>";
}
echo "<br /><span class='data'>".showdate("shortdate",$data['comment_datestamp'])."</span><br />";
echo "<a href='".BASEDIR.$typ."=".$data['comment_item_id']."' title='".$data['comment_message']."'>";
echo parseubb(parsesmileys($data['comment_message']))."";
echo"</a><br />";
}
}
closeside();
?>
Problem polega na tym, ze chce by byla mozliwosc podejrzenia profilu po kliknieciu na nick usera. Niestety ta opcja nie dziala teraz, nie wiem jak ja naprawic.
Drugi problem to ograniczenie ilosci wyswietlanych znakow komentarza. Chcialbym aby maksymalnie wyswietlalo sie 30 znakow z kazdego komenta w tym panelu. Probowalem dodawac ,30 jak tutaj:
echo parseubb(parsesmileys($data['comment_message'], 30))."";
ale nie działa.
PW od moderatora:
- Przeniesienie tematu - Pieka 31.08 - 15:09
Edytowane przez Pieka dnia 24.09.2010 15:51:22
|
|
|
|
Wścibski Gość |
Dodany dnia 24.11.2024 21:37:15
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
Gander |
Dodany dnia 31.08.2008 16:20:49
|
Bywalec
Postów: 720 Pomógł: 37
Data rejestracji: 22.05.2005 23:17
|
Musiałem chwilę poczytać o IFNULL() bo nie znałem tego polecenia...
To chyba powinno wyglądać tak:
openside("Komentarze",true, "on");
[color=green]$result = dbquery("SELECT c.*, IFNULL(u.user_name, c.comment_name) as user_name FROM ".DB_COMMENTS." c LEFT JOIN ".DB_USERS." u ON (c.comment_name = u.user_id) ORDER BY c.comment_id DESC LIMIT 15");[/color]
if (dbrows($result) != 0) {
while($data = dbarray($result)) {
switch ($data['comment_type']) {
case 'A': $typ='readarticle.php?article_id';
$nazwa='';
break;
case 'N':$typ='news.php?readmore' ;
$nazwa='';
break;
case 'P':$typ='photogallery.php?photo_id' ;
$nazwa='';
break;
case '[color=green]C[/color]':$typ='viewpage.php?page_id' ;
$nazwa='';
break;
}
[color=green]if (isNum($data['comment_name'])) { // Jesli liczba - user, w przeciwnym wypadku - gosc
echo "<a href='".BASEDIR."profile.php?lookup=".$data['comment_name']."' class='nick'>".$data['user_name']."</a>";
} else {
echo "<span class='gosc'>".$data['user_name']."</span>";
}[/color]
echo "<br /><span class='data'>".showdate("shortdate",$data['comment_datestamp'])."</span><br />";
echo "<a href='".BASEDIR.$typ."=".$data['comment_item_id']."' title='".$data['comment_message']."'>";
[color=green]echo trimlink(strip_tags(parseubb($data['comment_message'])),30);[/color]
echo"</a><br />";
}
}
closeside();
Pozmieniałem tu trochę...
1. Przesunąłem zapytanie w obręb panelu (bo takie mam nawyki)
2. Zmieniłem treść zapytania na bardziej eleganckie, oraz użyłem stałe określające nazwy tabel w php-fusion 7
3. Poprawiłem identyfikator "Stron informacyjnych" na właściwy, czyli "C"
4. Dodałem sprawdzanie czy komentujący jest użytkownikiem czy gościem sprawdzając czy jego imię to liczba czy ciąg (liczba = użytkownik, ciąg = gość)
5. Dodałem "ucinacz" ciągów w postaci funkcji trimlink(), usunąłem wyświetlanie emotek funkcją parsesmileys(), dodałem likwidowanie tagów funkcją strip_tags() - wszystko to po to by zlikwidowało wszystkie tagi HTML, które mogą zostać ucięte przez trimlink(), a ponieważ emotki graficzne to przecież tagi HTML <img>, czy nie lepiej zostawić emotki w postaci tekstu?
6. Wszystko przetestowałem na swoim localhoście, i potwierdzam że działa :)
Edytowane przez Gander dnia 31.08.2008 16:37:00
|
|
|
|
t3s7 |
Dodany dnia 31.08.2008 20:53:52
|
Przedszkolak
Postów: 8
Data rejestracji: 31.08.2008 14:04
|
Dzięki stary, dokładnie o to chodziło. Zgadzam się co do tagów HTML. Super szybka i skuteczna odowiedź! Dzięki
Edytowane przez t3s7 dnia 31.08.2008 20:56:27
|
|
|
|
jajaja |
Dodany dnia 10.09.2008 22:25:50
|
Przedszkolak
Postów: 73 Ostrzeżeń: 2
v7.02.05 Data rejestracji: 10.01.2005 12:43
|
Na stronie http://basti2web.de masz infusiona inf_last_comments_v1.6 pokazuje on bez loginów i dat. ale masz do wyboru działy i pracuje w panelu gółwnym |
|
|
|
LAbUdZiN |
Dodany dnia 10.10.2008 16:37:48
|
Początkujący
Postów: 258 Pomógł: 8 Ostrzeżeń: 6
Data rejestracji: 16.06.2007 14:45
ZBANOWANY: Dożywotnio
|
Witam, a żeby wyświetlało też komentarze z galerii użytkowników? Bo wyskakuje mi taki błąd kiedy dodam komentarz do zdjęcia z profilu użytkownika :
Notice: Undefined variable: typ in /home/labudzin/domains/stacjastacja.unl.pl/public_html/themes/templates/panels.php(75) : eval()'d code on line 30
I by panel wyświetlał emotikony zamiast znaków w moim przypadku z emotikon :boje_sie: itp. Pozdrawiam .
Edytowane przez Pieka dnia 10.10.2008 19:52:30
|
|
|
|
dante77 |
Dodany dnia 24.09.2010 12:29:48
|
Bywalec
Postów: 332 Pomógł: 25 Ostrzeżeń: 1
Data rejestracji: 09.05.2005 00:08
|
Pozwoliłem sobie zmodyfikować ten panel.
Dodałem do niego avatary komentujących i informacje co było komentowane.
openside("Komentarze");
$result = dbquery("SELECT user_avatar, c.*, IFNULL(u.user_name, c.comment_name) as user_name FROM ".DB_COMMENTS." c LEFT JOIN ".DB_USERS." u ON (c.comment_name = u.user_id) ORDER BY c.comment_id DESC LIMIT 15");
if (dbrows($result) != 0) {
while($data = dbarray($result)) {
switch ($data['comment_type']) {
case 'A': $typ='readarticle.php?article_id';
$kom= "artykuł";
$nazwa='';
break;
case 'N':$typ='news.php?readmore' ;
$kom= "news'a";
$nazwa='';
break;
case 'P':$typ='photogallery.php?photo_id' ;
$kom= "zdjęcie";
$nazwa='';
break;
case 'C':$typ='viewpage.php?page_id' ;
$kom= "dodatkową stronę";
$nazwa='';
break;
}
echo "<table cellpadding='0' cellspacing='2' width='100%' border='0'><tr>";
if (isNum($data['comment_name'])) { // Jesli liczba - user, w przeciwnym wypadku - gosc
echo "<td width='40px'><a href='".BASEDIR."profile.php?lookup=".$data['comment_name']."' class='nick'><img src='".IMAGES."avatars/".$data['user_avatar']."' border='0' height='40' width='40' align='left' alt='' /></a></td>";
} else {
echo "<td><span class='gosc'>".$data['user_name']."</span></td>";
}
echo "<td valign='top' ><span class='data' style='font-size:9px;'>".showdate("longdate",$data['comment_datestamp'])." | <a href='".BASEDIR."profile.php?lookup=".$data['comment_name']."' class='nick'>".$data['user_name']."</a> skomentował <strong><a href='".BASEDIR.$typ."=".$data['comment_item_id']."' title='".$data['comment_message']."'>".$kom."</a>:</strong></span><br /><span style='color:#333333;'>";
echo trimlink(strip_tags(parseubb($data['comment_message'])),30);
echo"</span></td>";
}
echo "</tr></table>";
}
closeside();
Mi się przydało może komuś też się przyda.
Edytowane przez dante77 dnia 24.09.2010 12:37:46
|
|
|
|
mastodont |
Dodany dnia 12.10.2010 00:10:33
|
Przedszkolak
Postów: 5
Data rejestracji: 24.05.2010 00:09
|
Rewelacyjne! Niech moc będzie z Tobą! :)
Jednak jestem kompletnie zielony i nie mogę sobie poradzić z takim problemem:
1.Mam wsadzonego TI Bloga, i komentarz (który nosi nazwę "skomentował artykuł") odsyła oczywiście do...artykułów, nie do konkretnego wpisu w blogu.
2.Próbowałem zrozumieć ten kod, lecz poległem. Nie potrafię przy gościach (użytkownikach bez avataru) ustalić stałego odstępu pomiędzy nazwą usera a fragmentem komenta.
Teraz wygląda to tak:
3.Nowo dodane komentarze do bloga powodują wywalenie 2 błędów w panelu komentarzy:
Notice: Undefined variable: typ in /home/jarpod3/portal/themes/templates/panels.php(123) : eval()'d code on line 34
Notice: Undefined variable: kom in /home/jarpod3/portal/themes/templates/panels.php(123) : eval()'d code on line 34
Komentarze dodane przed zainstalowaniem panelu są połykane bez błędów, lecz odsyłają (jak pisałem) w nic.
To już za wysokie progi jak na moje nogi.
PW od moderatora:
- Ogólna Uwaga - Pieka 12.10 - 01:16
Edytowane przez mastodont dnia 13.10.2010 11:39:10
|
|
|
|
dante77 |
Dodany dnia 21.10.2010 15:17:03
|
Bywalec
Postów: 332 Pomógł: 25 Ostrzeżeń: 1
Data rejestracji: 09.05.2005 00:08
|
Zrobiłem gotowca wraz z dodatkową stroną wyświetlającą wszystkie komentarze z paginacją stron.
Kod panela:
openside("Komentarze");
$result = dbquery("SELECT user_avatar, user_imie, user_nazwisko, c.*, IFNULL(u.user_name, c.comment_name) as user_name FROM ".DB_COMMENTS." c LEFT JOIN ".DB_USERS." u ON (c.comment_name = u.user_id) ORDER BY c.comment_id DESC LIMIT 10");
if (dbrows($result) != 0) {
while($data = dbarray($result)) {
switch ($data['comment_type']) {
case 'A': $typ='readarticle.php?article_id';
$kom= "artykuł";
$nazwa='';
break;
case 'N':$typ='news.php?readmore' ;
$kom= "news'a";
$nazwa='';
break;
case 'P':$typ='photogallery.php?photo_id' ;
$kom= "zdjęcie";
$nazwa='';
break;
case 'U':$typ='userphotogallery.php?photo_id' ;
$kom= "zdjęcie";
$nazwa='';
break;
case 'C':$typ='viewpage.php?page_id' ;
$kom= "dodatkową stronę";
$nazwa='';
break;
}
echo "<table cellpadding='0' cellspacing='2' width='100%' border='0'><tr>";
if (isNum($data['comment_name'])) { // Jesli liczba - user, w przeciwnym wypadku - gosc
if ($data['user_avatar'] && file_exists(IMAGES."avatars/".$data['user_avatar'])) {
echo "<td width='40px' valign='top'>
<a href='".BASEDIR."profile.php?lookup=".$data['comment_name']."' class='nick'><img src='".IMAGES."avatars/".$data['user_avatar']."' border='0' height='40' width='40' align='left' alt='' /></a></td>";
} else {
echo "<td width='40px' valign='top'>
<a href='".BASEDIR."profile.php?lookup=".$data['comment_name']."' class='nick'><img src='".IMAGES."noav.gif' border='0' height='40' width='40' align='left' alt='' /></a></td>";
}
} else {
echo "<td><span class='gosc'>".$data['user_name']."</span></td>";
}
echo "<td valign='top' style='border-top:1px solid #999999;'><span class='data' style='font-size:10px;'>".showdate("longdate",$data['comment_datestamp'])." | <a href='".BASEDIR."profile.php?lookup=".$data['comment_name']."' class='nick'>".$data['user_imie']." ".$data['user_nazwisko']."</a> skomentował <strong><a href='".BASEDIR.$typ."=".$data['comment_item_id']."' title='".$data['comment_message']."'>".$kom."</a>:</strong></span><br /><span style='color:#333333;'>";
echo trimlink(strip_tags(parseubb($data['comment_message'])),60);
echo"</span></td>";
}
echo "</tr></table>";
}
echo "<p align='right'><a href='".BASEDIR."comments.php'>Więcej...</a></p>";
closeside();
W załączniku plik comments.php(do wrzucenia do katalogu główngo) i gif noav.gif (do wgrania prze panel admina jako obraz.
Mam nadzieje, że komuś się przyda.
dante77 dodał/a następującą plik:
Edytowane przez dante77 dnia 21.10.2010 19:23:57
|
|
|
|
shallov |
Dodany dnia 11.04.2011 22:26:43
|
Przedszkolak
Postów: 54 Ostrzeżeń: 4
v7.01.02 Data rejestracji: 23.12.2009 21:12
|
mastodont napisał/a:
Jednak jestem kompletnie zielony i nie mogę sobie poradzić z takim problemem:
1.Mam wsadzonego TI Bloga, i komentarz (który nosi nazwę "skomentował artykuł") odsyła oczywiście do...artykułów, nie do konkretnego wpisu w blogu.
Nowo dodane komentarze do bloga powodują wywalenie 2 błędów w panelu komentarzy:
Też miałam z tym problem i mnie męczył strasznie....po tygodniach ciężkich zmagań ;) i wertowaniu zagranicznych for które były pomocne stworzyłam to
case 'BS':$typ='blog.php?page=blog_id&id' ;
$kom= "Bloga";
$nazwa='';
break;
i mi działa mam nadzieję, że tak powinno to wyglądać i się komuś przyda w razie czego prosze o poprawkę.
Edytowane przez shallov dnia 11.04.2011 22:30:04
|
|
|
|
adams1692 |
Dodany dnia 28.05.2011 01:23:18
|
Początkujący
Postów: 105 Ostrzeżeń: 2
v7.02.07 Data rejestracji: 05.12.2008 17:27
|
A co mam mam zmodyfikować jeżeli chcę dodać wyświetlanie komentarza dodanego do profilu usera ?. |
|
|
|
secretjarek007 |
Dodany dnia 30.09.2011 17:38:19
|
Przedszkolak
Postów: 52 Ostrzeżeń: 1
Data rejestracji: 23.07.2007 14:20
|
dante77 napisał(a):
Pozwoliłem sobie zmodyfikować ten panel.
Dodałem do niego avatary komentujących i informacje co było komentowane.
openside("Komentarze");
$result = dbquery("SELECT user_avatar, c.*, IFNULL(u.user_name, c.comment_name) as user_name FROM ".DB_COMMENTS." c LEFT JOIN ".DB_USERS." u ON (c.comment_name = u.user_id) ORDER BY c.comment_id DESC LIMIT 15");
if (dbrows($result) != 0) {
while($data = dbarray($result)) {
switch ($data['comment_type']) {
case 'A': $typ='readarticle.php?article_id';
$kom= "artykuł";
$nazwa='';
break;
case 'N':$typ='news.php?readmore' ;
$kom= "news'a";
$nazwa='';
break;
case 'P':$typ='photogallery.php?photo_id' ;
$kom= "zdjęcie";
$nazwa='';
break;
case 'C':$typ='viewpage.php?page_id' ;
$kom= "dodatkową stronę";
$nazwa='';
break;
}
echo "<table cellpadding='0' cellspacing='2' width='100%' border='0'><tr>";
if (isNum($data['comment_name'])) { // Jesli liczba - user, w przeciwnym wypadku - gosc
echo "<td width='40px'><a href='".BASEDIR."profile.php?lookup=".$data['comment_name']."' class='nick'><img src='".IMAGES."avatars/".$data['user_avatar']."' border='0' height='40' width='40' align='left' alt='' /></a></td>";
} else {
echo "<td><span class='gosc'>".$data['user_name']."</span></td>";
}
echo "<td valign='top' ><span class='data' style='font-size:9px;'>".showdate("longdate",$data['comment_datestamp'])." | <a href='".BASEDIR."profile.php?lookup=".$data['comment_name']."' class='nick'>".$data['user_name']."</a> skomentował <strong><a href='".BASEDIR.$typ."=".$data['comment_item_id']."' title='".$data['comment_message']."'>".$kom."</a>:</strong></span><br /><span style='color:#333333;'>";
echo trimlink(strip_tags(parseubb($data['comment_message'])),30);
echo"</span></td>";
}
echo "</tr></table>";
}
closeside();
Mi się przydało może komuś też się przyda.
Nie wyświetlają mi się avatary osób, które nie mają żadnego avatara. Wrzuciłem jak było niżej napisane plik gif przez panel admina jako obraz jednak to nie pomogło. Strona www.zawodywedkars...
Nie wiem jeszcze jak zrobić, żeby wyświetlało się ostatnich 5 komentarzy. |
|
|