Edycja własnych komentarzy?
|
fene |
Dodany dnia 06.02.2007 01:14:33
|
Przedszkolak
Postów: 8
Data rejestracji: 22.09.2004 15:54
|
Witam.
Chciał bym zapytać bo w szukając cierpliwie po forum nie znalazłem pomocy.
Czy spotkał się ktoś może z jakimś modem lub wie jak to zrobić aby można było edytować będąc wyłącznie zarejestrowanym użytkownikiem dodany przez siebie komentarz. Dokładnie chodzi o to, żeby zarejestrowany użytkownik, kiedy doda jakiś komentarz i np narobi byków czy zmieni zadanie mógł go sobie sam z powrotem z edytować lub usunąć np przy newsach lub artykułach
Edytowane przez Pieka dnia 11.02.2009 16:14:41
|
|
|
|
Wścibski Gość |
Dodany dnia 24.11.2024 20:36:24
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
slawekneo |
Dodany dnia 06.02.2007 05:35:59
|
Bywalec
Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
A wiec moze Ci sie spodoba to rozwiazanie :D Jest to przerobiony plik comments.php z katalogu administration (dodalem jeszcze troche zabespieczen wiec wszystko powinno byc ok) :D
Wejdz w includes/commenst_include.php i odnajdz linie:
echo "</span>\n<span class='small'>".$locale['041'].showdate("longdate", $data['comment_datestamp'])."</span><br>\n";
Kliknij i zaczekaj na załadowanie kodu ...
zamien ja na if ($data['comment_name'] == $userdata['user_id']) {
echo" (<a href='".BASEDIR."comments.php?step=edit&comment_id=".$data['comment_id']."&ctype=$ctype&cid=$cid'>edytuj</a>)<br>";
} else {
echo"<br>";
}
Kliknij i zaczekaj na załadowanie kodu ...
Zapisz i wyjdz.
Teraz zrob nowy plik o nazwie comments.php w ktalogu glownym nastepnie uzupelnij plik ta zawartoscia:
<?php
require_once "maincore.php";
require_once BASEDIR."subheader.php";
require_once BASEDIR."side_left.php";
include LOCALE.LOCALESET."admin/comments.php";
if (iMEMBER) {
if (isset($comment_id) && !isNum($comment_id)) fallback("index.php");
if (!isset($ctype) || !preg_match("/^[A-Z]+$/i", $ctype)) fallback("../index.php");
if (!isset($cid) || !isNum($cid)) fallback("../index.php");
if (isset($_POST['save_comment'])) {
$comment_message = stripinput($_POST['comment_message']);
$comment_smileys = isset($_POST['disable_smileys']) ? "0" : "1";
$result = dbquery("UPDATE ".$db_prefix."comments SET comment_message='$comment_message', comment_smileys='$comment_smileys' WHERE comment_id='$comment_id'");
redirect(BASEDIR."comments.php?ctype=$ctype&cid=$cid");
}
if (isset($step) && $step == "edit") {
$result = dbquery("SELECT * FROM ".$db_prefix."comments WHERE comment_id='$comment_id'AND comment_name='".$userdata[user_id]."' ");
if (!dbrows($result)) fallback(BASEDIR."comments.php?ctype=$ctype&cid=$cid");
$data = dbarray($result);
if ($data[comment_name] != $userdata[user_id]) fallback(BASEDIR."index.php");
$comment_smileys = $data['comment_smileys'] ? "" : " checked";
tablebreak();
opentable($locale['400']);
echo "<form name='inputform' method='post' action='".BASEDIR."comments.php?comment_id=$comment_id&ctype=$ctype&cid=$cid'>
<table align='center' cellpadding='0' cellspacing='0' width='400' >
<tr>
<td align='center' class='tbl'><textarea name='comment_message' rows='5' class='textbox' style='width:400px'>".$data['comment_message']."</textarea><br>
<input type='button' value='b' class='button' style='font-weight:bold;width:25px;' onClick=\"addText('comment_message', '', '');\">
<input type='button' value='i' class='button' style='font-style:italic;width:25px;' onClick=\"addText('comment_message', '', '');\">
<input type='button' value='u' class='button' style='text-decoration:underline;width:25px;' onClick=\"addText('comment_message', '', '');\">
<input type='button' value='url' class='button' style='width:30px;' onClick=\"addText('comment_message', '[url]', '[/url]');\">
<input type='button' value='mail' class='button' style='width:35px;' onClick=\"addText('comment_message', '[mail]', '[/mail]');\">
<input type='button' value='img' class='button' style='width:30px;' onClick=\"addText('comment_message', '[img]', '[/img]');\">
<input type='button' value='center' class='button' style='width:45px;' onClick=\"addText('comment_message', '', ' ');\">
<input type='button' value='small' class='button' style='width:40px;' onClick=\"addText('comment_message', '', '');\">
</tr>
<tr>
<td align='center' class='tbl'><input type='checkbox' name='disable_smileys' value='1'$comment_smileys>".$locale['402']."<br><br>
<input type='submit' name='save_comment' value='".$locale['401']."' class='button'></td>
</tr>
</table>
</form>\n";
closetable();
tablebreak();
}
opentable($locale['410']);
$i = 0;
$result = dbquery(
"SELECT * FROM ".$db_prefix."comments tc
LEFT JOIN ".$db_prefix."users tu ON tc.comment_name=tu.user_id
WHERE comment_type='$ctype' AND comment_item_id='$cid' AND comment_name='".$userdata[user_id]."' ORDER BY comment_datestamp ASC"
);
if (!dbrows($result)) fallback(BASEDIR."index.php");
if (dbrows($result)) {
echo "<table align='center' cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n";
while ($data = dbarray($result)) {
echo "<tr>\n<td class='".($i% 2==0?"tbl1":"tbl2")."'><span class='comment-name'>";
if ($data['user_name']) {
echo $data['user_name'];
} else {
echo $data['comment_name'];
}
$comment_message = nl2br(parseubb($data['comment_message']));
if ($data['comment_smileys'] == "1") $comment_message = parsesmileys($comment_message);
echo "</span>
<span class='small'>".$locale['041'].showdate("longdate", $data['comment_datestamp'])."</span><br>
".$comment_message."<br>
<span class='small'><a href='".BASEDIR."comments.php?step=edit&comment_id=".$data['comment_id']."&ctype=$ctype&cid=$cid'>".$locale['411']."</a></span>
</td>\n</tr>\n";
$i++;
}
echo "</table>\n";
}
closetable();
} else {
fallback(BASEDIR."index.php");
}
require_once BASEDIR."side_right.php";
require_once BASEDIR."footer.php";
?> Kliknij i zaczekaj na załadowanie kodu ...
Zapisujesz i wychodzisz teraz mozesz pobawic sie/potestowac edycje komentow.
Oczywiscie kazde info o bledach mile widziane :D
Pozdro!!
Edytowane przez Pieka dnia 11.02.2009 16:33:14
|
|
|
|
fene |
Dodany dnia 06.02.2007 13:03:56
|
Przedszkolak
Postów: 8
Data rejestracji: 22.09.2004 15:54
|
Wielkie dzięki - powiem jak wyszło po aktualizacji - dam znać jutro :D
Update - wyszło extra dzięki wielkie
A może ktoś wie jak ograniczyć ilość wyświetlanych komentarzy na jednej stronie przy news'e np do 10 i żeby potem w przypadku większej ilości komentarzy było jak w przypadku ograniczania ilości newsów?
<|1|2|> ..
Edytowane przez Pieka dnia 11.02.2009 16:29:06
|
|
|
|
slawekneo |
Dodany dnia 10.02.2007 06:29:05
|
Bywalec
Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
Spoko, da sie zrobic
Pozdro!!
Edytowane przez Pieka dnia 11.02.2009 16:28:21
|
|
|
|
BetinhoPL |
Dodany dnia 08.03.2007 21:52:01
|
Przedszkolak
Postów: 42 Ostrzeżeń: 1
Data rejestracji: 06.03.2007 19:58
Złamana licencja
|
Przetestowalem wedlug wskazan, dziala bez zarzutu
Edytowane przez Pieka dnia 11.02.2009 16:27:58
|
|
|
|
Kamils2 |
Dodany dnia 09.03.2007 10:54:48
|
Przedszkolak
Postów: 16
Data rejestracji: 20.02.2007 08:32
Złamana licencja
|
Ale wiesz ze takie cos moze miec takze odwrotne skutki do zamierzonych np podczas klotni ktos moze zmienic swoj komentarz i wtedy wina moze spac na kogos innego ale skrypt rlz ;]
Edytowane przez Pieka dnia 11.02.2009 16:27:42
|
|
|
|
Sagitarius |
Dodany dnia 09.06.2007 16:32:12
|
Przedszkolak
Postów: 60 Ostrzeżeń: 1
Data rejestracji: 16.04.2006 17:11
|
Nie wiem dlaczego ale pogrubia mi treść komentarzy i zmienia kolor czcionki.. coś nie tak jest w ustawieniach css... Grzebałem w kodzie ale nie wiem jak to zmienić..
Edit: Znikła także data wystawienia komentarza...
Edytowane przez Pieka dnia 11.02.2009 16:27:24
|
|
|
|
Czarny Pan |
Dodany dnia 11.02.2009 16:14:03
|
Przedszkolak
Postów: 4
Data rejestracji: 15.12.2007 14:32
|
Pozwolicie, że pomogę?:D
Wystarczy, że w pliku comments_include.php to:
echo "</span>\n<span class='small'>".$locale['041'].showdate("longdate", $data['comment_datestamp'])."</span><br>\n";
Kliknij i zaczekaj na załadowanie kodu ...
Zastąpisz tym:
echo "</span>\n<span class='small'>".$locale['041'].showdate("longdate", $data['comment_datestamp'])."</span>\n";
if ($data['comment_name'] == $userdata['user_id']) {
echo" (<a href='".BASEDIR."comments.php?step=edit&comment_id=".$data['comment_id']."&ctype=$ctype&cid=$cid'>edytuj</a>)<br>";
} else {
echo"<br>";
}
Kliknij i zaczekaj na załadowanie kodu ...
Przetestowane, powinno działać :D
Edytowane przez Pieka dnia 11.02.2009 16:16:04
|
|
|