Dopiski moderatora w poście
|
Sony |
Dodany dnia 06.12.2008 17:33:17
|
Początkujący
Postów: 253 Pomógł: 19 Ostrzeżeń: 1
v7.02.06 Data rejestracji: 19.04.2008 16:21
|
Witam!
Czy istnieje taka modyfikacja forum w której moderator/administrator podczas edycji postu(użyszkodników) ma dodatkowe pole o przykładowej nazwie "dopisek". W którym jest umieszczany tekst w celu zwrócenia uwagi userowi forum.
Taki dopisek wyróżniony by został innym kolorem nad sygnaturą i oczywiście bez możliwości usunięcia przez zwykłego użytkownika. :-)
Edytowane przez Sony dnia 09.12.2008 12:00:32
tjaa
|
|
|
|
Wścibski Gość |
Dodany dnia 24.11.2024 19:41:57
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
emil90ck |
Dodany dnia 09.07.2009 13:03:19
|
Bywalec
Postów: 376 Pomógł: 30 Ostrzeżeń: 3
v7.00.05 Data rejestracji: 25.07.2008 13:11
|
Dołączam się do prośby. :-) |
|
|
|
Mikolak |
Dodany dnia 09.07.2009 13:10:19
|
Przedszkolak
Postów: 66 Ostrzeżeń: 1
Data rejestracji: 25.12.2008 20:16
|
Przecież jest taki BBCode. Szukać.
Edytowane przez khaman dnia 09.07.2009 13:37:22
|
|
|
|
emil90ck |
Dodany dnia 09.07.2009 13:49:06
|
Bywalec
Postów: 376 Pomógł: 30 Ostrzeżeń: 3
v7.00.05 Data rejestracji: 25.07.2008 13:11
|
Czy masz na myśli to http://www.php-fu...d_id=25430
To nie jest dobre ponieważ każdy może sobie to usunąć |
|
|
|
Mikolak |
Dodany dnia 09.07.2009 19:39:40
|
Przedszkolak
Postów: 66 Ostrzeżeń: 1
Data rejestracji: 25.12.2008 20:16
|
Tak, to mam na myśli.
|
|
|
|
Nie zdradze nicka |
Dodany dnia 09.07.2009 20:32:25
|
Przedszkolak
Postów: 92 Pomógł: 3 Ostrzeżeń: 1
Data rejestracji: 13.09.2008 17:17
|
W sumie to Sony miał bardzo dobry pomysł. Sam zastanawiałem się jak zrobić nieusuwalne BBCode z możliwością edycji tylko dla moderatorów, ale nie przyszło mi do głowy, żeby zrobić dodatkowe pole. W edycji postu dajcie sobie w odpowiednim miejscu:
if(iMOD || iADMIN) {
echo "<td class='tbl2' valign='top'>Uwagi od moderatora:</td>\n";
echo "<td class='tbl1'><input type='text' name='funkcja' class='textbox' style='width:250px;' value='$funkcja'>";
echo "</td>\n";
echo "</tr>\n<tr>\n";
}
Kliknij i zaczekaj na załadowanie kodu ...
Ale z funkcjami to już sobie sami musicie poradzić bo ja się za bardzo nie znam. Również czekam na tę modyfikację.
Mikolak napisał/a:
Przecież jest taki BBCode. Szukać.
A kto tu coś mówił o jakimś BBCode? Czytać. |
|
|
|
kefirek |
Dodany dnia 10.07.2009 12:51:28
|
Zaawansowany
Postów: 1191 Pomógł: 418 Ostrzeżeń: 1
v6.00.xxx Data rejestracji: 06.04.2008 21:59
|
Zrobiłem trochę podobnie jak tutaj na forum przy każdym poście jest link by dodać do niego notkę od admina lub moderatora
Instalacja
Wchodzimy w panel administratora > Dodatkowe strony
Tytuł strony: tytuł wpisujemy co chcemy np. test
Zawartość strony: wklejamy ten kodzik
<?php
$result = dbquery("DROP TABLE IF EXISTS ".$db_prefix."uwagi_mod");
$result = dbquery("CREATE TABLE ".$db_prefix."uwagi_mod (
notka_id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
user_id MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
post_id MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
time INT(10) UNSIGNED NOT NULL DEFAULT '0',
notka TEXT NOT NULL,
PRIMARY KEY (notka_id)
) TYPE=MyISAM;");
if($result) {
echo "<div style='text-align:center'><br />Baza danych została utworzona.</div><br />\n";
}
?>
Po czym dajemy podgląd
Następnie przechodzimy do edycji pliku viewthread.php
Odnajdujemy ( linia około 307 )
if (iMOD) { echo "<div style='float:right'><input type='checkbox' name='delete_post[]' value='".$data['post_id']."' /></div>\n"; }
echo nl2br(parseubb($message));
i zamieniamy na
if (iMOD) { echo "<div style='float:right'><input type='checkbox' name='delete_post[]' value='".$data['post_id']."' /></div>\n"; }
$notki = dbquery("SELECT m.*, u.user_name FROM ".$db_prefix."uwagi_mod m LEFT JOIN ".DB_USERS." u ON (m.user_id=u.user_id) WHERE post_id=".$data['post_id']."");
if (dbquery("SELECT FOUND_ROWS()") > 0 ) {
while ($r = dbarray($notki)) {
echo THEME_BULLET." <span style='color:#ff0000'><a href='../profile.php?lookup=".$r['user_id']."'>".$r['user_name']."</a> dnia ".strftime("%d.%m.%y %H:%M:%S", $r['time'])." ".stripslash($r['notka'])."</span>";
if(iMOD) {
echo "<script type='text/javascript'>
function Defuse() {
return confirm('Czy na pewno chcesz usunac notke');
}
</script>\n";
echo " <a href='".BASEDIR."notka.php?edit=1&post_id=".$data['post_id']."&forum_id=".$data['forum_id']."¬ka_id=".$r['notka_id']."&thread_id=".$data['thread_id']."' style='border:0px;vertical-align:middle'>Edytuj</a>
<a href='".BASEDIR."notka.php?del=1&post_id=".$data['post_id']."&forum_id=".$data['forum_id']."¬ka_id=".$r['notka_id']."&thread_id=".$data['thread_id']."' style='border:0px;vertical-align:middle' onclick='return Defuse();'>Usun</a><br>";
}
}
}
echo "<br><br>".nl2br(parseubb($message));
Potem ( linia około 347) odnajdujemy
if (iMEMBER && ($can_post || $can_reply)) {
if (!$fdata['thread_locked']) {
echo "<a href='post.php?action=reply&forum_id=".$data['forum_id']."&thread_id=".$data['thread_id']."&post_id=".$data['post_id']."&quote=".$data['post_id']."'><img src='".get_image("quote")."' alt='".$locale['569']."' style='border:0px;vertical-align:middle' /></a>\n";
if (iMOD || ($lock_edit && $last_post['post_id'] == $data['post_id'] && $userdata['user_id'] == $data['post_author']) || (!$lock_edit && $userdata['user_id'] == $data['post_author'])) {
echo "<a href='post.php?action=edit&forum_id=".$data['forum_id']."&thread_id=".$data['thread_id']."&post_id=".$data['post_id']."'><img src='".get_image("forum_edit")."' alt='".$locale['568']."' style='border:0px;vertical-align:middle' /></a>\n";
}
} else {
if (iMOD) {
echo "<a href='post.php?action=edit&forum_id=".$data['forum_id']."&thread_id=".$data['thread_id']."&post_id=".$data['post_id']."'><img src='".get_image("forum_edit")."' alt='".$locale['568']."' style='border:0px;vertical-align:middle' /></a>\n";
}
}
}
i po dodajemy
if(iMOD) {
echo "<a href='".BASEDIR."notka.php?post_id=".$data['post_id']."&forum_id=".$data['forum_id']."&thread_id=".$data['thread_id']."' style='border:0px;vertical-align:middle' >Dodaj notke</a>\n";
}
Na końcu tworzymy plik notka.php o takim kodzie
<?php
require_once "maincore.php";
require_once THEMES."templates/header.php";
include LOCALE.LOCALESET."forum/post.php";
opentable('Notki');
if (!isset($_GET['post_id']) || !isnum($_GET['post_id']) || !isset($_GET['thread_id']) || !isnum($_GET['thread_id']) ||
!isset($_GET['forum_id']) || !isnum($_GET['forum_id'])) { redirect("index.php"); }
$forum_moderators = dbresult(dbquery("SELECT forum_moderators FROM ".DB_FORUMS." WHERE forum_id ='".$_GET['forum_id']."'"),0 );
$mod_groups = explode(".", $forum_moderators);
if (iSUPERADMIN) { define("iMOD", true); }
if (!defined("iMOD") && iMEMBER && $forum_moderators) {
foreach ($mod_groups as $mod_group) {
if (!defined("iMOD") && checkgroup($mod_group)) { define("iMOD", true); }
}
}
if (!defined("iMOD")) { define("iMOD", false); }
if(!iMOD) { redirect("index.php"); }
if(isset($_GET['del'])) {
if (!isset($_GET['del']) || !isset($_GET['notka_id']) || !isnum($_GET['notka_id']) || !isnum($_GET['del'])) { redirect("index.php"); }
$result = dbquery("DELETE FROM ".$db_prefix."uwagi_mod WHERE notka_id='".$_GET['notka_id']."'");
if($result) {
echo "<div style='text-align:center'><br />\n";
echo "Notka została usunieta.<br /><br />\n";
echo "<a href='".FORUM."viewthread.php?thread_id=".$_GET['thread_id']."&pid=".$_GET['post_id']."#post_".$_GET['post_id']."'>".$locale['447']."</a> ::\n";
echo "<a href='".FORUM."viewforum.php?forum_id=".$_GET['forum_id']."'>".$locale['448']."</a> ::\n";
echo "<a href='".FORUM."index.php'>".$locale['449']."</a><br /><br />\n</div>\n";
}
} else {
if(isset($_POST['submit'])) {
$notka = mysql_real_escape_string(trim($_POST['tresc']));
if(isset($_GET['edit'])) {
if (!isset($_GET['edit']) || !isset($_GET['notka_id']) || !isnum($_GET['notka_id']) || !isnum($_GET['edit'])) { redirect("index.php"); }
$wynik = dbquery("UPDATE ".$db_prefix."uwagi_mod SET notka ='".$notka."' WHERE notka_id='".$_GET['notka_id']."'");
if($wynik){
echo "<div style='text-align:center'><br />\n";
echo "Notka została zmieniona.<br /><br />\n";
echo "<a href='".FORUM."viewthread.php?thread_id=".$_GET['thread_id']."&pid=".$_GET['post_id']."#post_".$_GET['post_id']."'>".$locale['447']."</a> ::\n";
echo "<a href='".FORUM."viewforum.php?forum_id=".$_GET['forum_id']."'>".$locale['448']."</a> ::\n";
echo "<a href='".FORUM."index.php'>".$locale['449']."</a><br /><br />\n</div>\n";
}
} else {
$wynik = dbquery("INSERT INTO ".$db_prefix."uwagi_mod (user_id, post_id, time, notka) VALUES (".$userdata['user_id'].", ".$_GET['post_id'].", ".time().", '".$notka."')");
if($wynik){
echo "<div style='text-align:center'><br />\n";
echo "Notka została dodana.<br /><br />\n";
echo "<a href='".FORUM."viewthread.php?thread_id=".$_GET['thread_id']."&pid=".$_GET['post_id']."#post_".$_GET['post_id']."'>".$locale['447']."</a> ::\n";
echo "<a href='".FORUM."viewforum.php?forum_id=".$_GET['forum_id']."'>".$locale['448']."</a> ::\n";
echo "<a href='".FORUM."index.php'>".$locale['449']."</a><br /><br />\n</div>\n";
}
}
} else {
if(isset($_GET['edit'])) {
if (!isset($_GET['edit']) || !isset($_GET['notka_id']) || !isnum($_GET['notka_id']) || !isnum($_GET['edit'])) { redirect("index.php"); }
$notki = dbquery("SELECT * FROM ".$db_prefix."uwagi_mod WHERE notka_id='".$_GET['notka_id']."'");
if (dbquery("SELECT FOUND_ROWS()") > 0 ) {
$r = dbarray($notki);
}
}
echo "<form name='test' method='post' action='".FUSION_SELF."?post_id=".$_GET['post_id']."&thread_id=".$_GET['thread_id']."&forum_id=".$_GET['forum_id']."
".(isset($_GET['edit']) ? "¬ka_id=".$_GET['notka_id']."&edit=1" : "")."'>";
echo "<table cellpadding='0' cellspacing='0' class='center'>\n<tr>\n";
echo "<td width='100' class='tbl'>Tresc:</td>\n";
echo "<td class='tbl'><textarea name='tresc' rows='10' class='textbox' style='width: 320px'>".(isset($_GET['edit']) ? $r['notka'] : "")."</textarea></td>\n";
echo "</tr>\n<tr>\n";
echo "<td align='center' colspan='2' class='tbl'>\n";
echo "<input type='submit' name='submit' value='".(isset($_GET['edit']) ? "Zmien" : "Dodaj")."' class='button' /></td>\n";
echo "</tr>\n</table>\n</form>\n";
}
}
closetable();
require_once THEMES."templates/footer.php";
?>
i umieszczamy w głównym katalogu
W załączniku gotowe pliki do zamiany.
kefirek dodał/a następującą plik:
Edytowane przez kefirek dnia 11.07.2009 16:56:47
|
|
|
|
Bochen |
Dodany dnia 10.07.2009 13:42:04
|
Bywalec
Postów: 380 Pomógł: 37
Data rejestracji: 18.03.2009 18:01
|
Używam fusion boarda i mam jeden problem. Wszystkie wiadomości na forum są dublowane. To znaczy treść posta się powtarza, a ponadto wyskakuje taki błąd:
Table 'sdgp_ets.fusion_uwagi_mod' doesn't exist
Ja tez gram na oryginale, bo na patchu nie działają mi mody.Ja tez gram na oryginale, bo na patchu nie działają mi mody.
Jest to przykład jednego posta.
Prawdziwy mężczyzna nie je miodu, prawdziwy mężczyzna żuje pszczoły!
|
|
|
|
kefirek |
Dodany dnia 10.07.2009 14:06:51
|
Zaawansowany
Postów: 1191 Pomógł: 418 Ostrzeżeń: 1
v6.00.xxx Data rejestracji: 06.04.2008 21:59
|
To jest dla zwykłego standardowego forum fusiona po za tym nikt nic nie pisał na jakie to ma być forum |
|
|
|
Bochen |
Dodany dnia 10.07.2009 14:20:01
|
Bywalec
Postów: 380 Pomógł: 37
Data rejestracji: 18.03.2009 18:01
|
Tak wiem wiem, ale no da się to jakoś przystosować pod fusionboarda?
Prawdziwy mężczyzna nie je miodu, prawdziwy mężczyzna żuje pszczoły!
|
|
|
|
szymon |
Dodany dnia 10.07.2009 16:16:54
|
Bywalec
Postów: 434 Pomógł: 20
Data rejestracji: 05.02.2006 21:20
|
Zmieńcie sobie zapytanie w dodatkowych stronach na:
<?php
$result = dbquery("DROP TABLE IF EXISTS ".$db_prefix."uwagi_mod");
$result = dbquery("CREATE TABLE ".$db_prefix."uwagi_mod (
user_id MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
post_id MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
time INT(10) UNSIGNED NOT NULL DEFAULT '0',
notka TEXT NOT NULL
) TYPE=MyISAM;");
if($result) {
echo "<div style='text-align:center'><br />Baza danych została utworzona.</div><br />\n";
}
?>
|
|
|
|
Bochen |
Dodany dnia 10.07.2009 16:33:10
|
Bywalec
Postów: 380 Pomógł: 37
Data rejestracji: 18.03.2009 18:01
|
szymon, masz u mnie browar Działa aż miło patrzeć.
Edytowane przez Bochen dnia 10.07.2009 16:33:35
Prawdziwy mężczyzna nie je miodu, prawdziwy mężczyzna żuje pszczoły!
|
|
|
|
BenLomax |
Dodany dnia 10.07.2009 17:25:47
|
Bywalec
Postów: 426 Pomógł: 25 Ostrzeżeń: 1
Data rejestracji: 25.06.2008 09:48
|
Po zmianie @szymona teraz działa. Mam parę propozycje co do zmian:
1. by notka pojawiała się poniżej teksty (teraz mam pusta linię przed tekstem);
2. po napisaniu notki link wróć do tematu;
3. no i edycja i opcja usunięcia notki też by się przydała.
|
|
|
|
Bochen |
Dodany dnia 10.07.2009 17:30:51
|
Bywalec
Postów: 380 Pomógł: 37
Data rejestracji: 18.03.2009 18:01
|
Co do pkt. To sobie możesz zmienić miejsce wyświetlania. U mnie pokazuje to pod treścią posta.
Co do pkt 2 i 3 sam bym się skusił.
Jest jeszcze jedna sprawa, u mnie nie pokazuje godziny dodania tej notki. Próbowałem sam jakoś, ale z marnym skutkiem niestety.
Prawdziwy mężczyzna nie je miodu, prawdziwy mężczyzna żuje pszczoły!
|
|
|
|
szymon |
Dodany dnia 10.07.2009 17:52:33
|
Bywalec
Postów: 434 Pomógł: 20
Data rejestracji: 05.02.2006 21:20
|
BenLomax, aby pod treścią postu się wyświetlało, to podmieniasz sobie w instrukcji Kefirka (linia około 307) na:
if (iMOD) { echo "<div style='float:right'><input type='checkbox' name='delete_post[]' value='".$data['post_id']."' /></div>\n"; }
echo nl2br(parseubb($message));
echo "<br /><br />";
$notki = dbquery("SELECT m.*, u.user_name FROM ".$db_prefix."uwagi_mod m LEFT JOIN ".DB_USERS." u ON (m.user_id=u.user_id) WHERE post_id=".$data['post_id']."");
if (dbquery("SELECT FOUND_ROWS()") > 0 ) {
while ($r = dbarray($notki)) {
echo THEME_BULLET." <span style='color:#ff0000'><a href='../profile.php?lookup=".$r['user_id']."'>".$r['user_name']."</a> dnia ".showdate("%d.%m.%y", $r['time'])." ".stripslash($r['notka'])."</span><br>";
}
}
Edytowane przez szymon dnia 10.07.2009 17:53:11
|
|
|
|
Spaik |
Dodany dnia 11.07.2009 11:46:32
|
Bywalec
Postów: 310 Pomógł: 8
v9.03.80 Data rejestracji: 15.04.2007 12:34
|
Bochen u Ciebie w pliku viewthread sa identyczne linie kodu? Bo z tego co widze korzystasz z FusionBoard. Tez z niego korzystam lecz gdy pozmienialem linie kodu wskakuje mi blad. |
|
|
|
kefirek |
Dodany dnia 11.07.2009 15:52:05
|
Zaawansowany
Postów: 1191 Pomógł: 418 Ostrzeżeń: 1
v6.00.xxx Data rejestracji: 06.04.2008 21:59
|
BenLomax napisał/a:
2. po napisaniu notki link wróć do tematu;
3. no i edycja i opcja usunięcia notki też by się przydała.
Dodałem możliwość edycji notki oraz usuwanie notek oraz po każdym dodaniu usunięciu notki linki wróć do tematu, wróć do forum.
Bochen napisał/a:
Jest jeszcze jedna sprawa, u mnie nie pokazuje godziny dodania tej notki. Próbowałem sam jakoś, ale z marnym skutkiem niestety.
Godzina dodania notki została dodana.
Oraz poprawiłem plik notka.php bo była luka w zabezpieczeniach
Należy od nowa zainstalować mod ponieważ w bazie została dodana nowa kolumna z id_notki. Oraz edytować plik.
Post wcześniejszy edytowałem i dodałem nowe pliki oraz instrukcje instalacji.
Edytowane przez kefirek dnia 11.07.2009 16:00:11
|
|
|
|
Gismo_PL |
Dodany dnia 11.07.2009 16:31:51
|
Bywalec
Postów: 462 Pomógł: 40 Ostrzeżeń: 2
v7.01.05 Data rejestracji: 25.02.2007 21:13
|
Wprowadziłem poprawki w plikach oraz zaktualizowałem bazę według Twoich zaleceń @kefirek jednak mod przestał działać. Kliknięcie w link Dodaj notkę powoduje powrót do głównej strony serwisu. mam nadzieję, że nie jest to spowodowane warunkiem:
if(iMOD) {
}
i działa tek kod również dla administratora przypisanego jako moderator forum :|.
Czy komuś udało się to odpalić po modyfikacjach kodu - mam nadzieję, że niczego nie przeoczyłem.
|
|
|
|
kefirek |
Dodany dnia 11.07.2009 16:44:39
|
Zaawansowany
Postów: 1191 Pomógł: 418 Ostrzeżeń: 1
v6.00.xxx Data rejestracji: 06.04.2008 21:59
|
To nie możliwe sprawdzałem kilka razy czy wszystko jest ok.
Na pewno wszystko wykonałeś tak jak podałem ?
Edytowane przez kefirek dnia 11.07.2009 17:20:41
|
|
|
|
BenLomax |
Dodany dnia 11.07.2009 16:51:49
|
Bywalec
Postów: 426 Pomógł: 25 Ostrzeżeń: 1
Data rejestracji: 25.06.2008 09:48
|
U mnie działa - chociaż podczas dodawania notki wywal błąd:
Notice: Undefined variable: tresc in D:\xampp\htdocs\test\stopnew\notka.php on line 58
Testowane na plikach od @kefirka.
|
|
|