Reason for edit

Pentru întrebări legate de facilităţile forumului phpBB 3.0.x, acest loc este cel mai potrivit.
Reguli forum
Aveti o problema si vreti sa primiti ajutor? Click aici ! Nu uitati si de regulamentul forumului !
Închis
Vally007
Utilizator înregistrat
Mesaje: 34
Membru din: 04-Oct-2006, 19:35:55
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Contact:

Reason for edit

Mesaj de Vally007 »

Cum fac ca acest camp care apare in momentul in care un moderatorul editeaza un mesaj al unui utilizator, sa nu fie optional, ci OBLIGATORIU? Va rog frumos ca ma intereseaza in mod deosebit.

Multumesc frumos.
Valentin
axn
Utilizator înregistrat
Mesaje: 295
Membru din: 01-Mar-2006, 23:39:47

Mesaj de axn »

Deschide message_parser.php din includes, si cauta:
global $config, $auth, $user, $phpbb_root_path, $phpEx, $db;
Dupa asta, adaugi:
if ((empty($_POST['edit_reason'])) && $auth->acl_get('m_'))
{
$this->warn_msg[] = 'Trebuie sa specificati motivul editarii!';
}

Daca tu esti administratorul principal, (cel creat odata cu instalarea forumului) trebuie sa iti dai remove din grupul global moderators, sau din alte parti de unde esti moderator, altfel iti va cere si tie sa completezi acel camp. M-am enervat si eu o jumatate de ora, ca nu imi dadeam seama ce nu am facut bine, si de ce imi cere si mie ca admin sa completez ala.. :-)
Vally007
Utilizator înregistrat
Mesaje: 34
Membru din: 04-Oct-2006, 19:35:55
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Contact:

Mesaj de Vally007 »

Mulţumesc mult de tot. Merge PERFECT.

Cu stimă,
Valentin
Vally007
Utilizator înregistrat
Mesaje: 34
Membru din: 04-Oct-2006, 19:35:55
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Contact:

Mesaj de Vally007 »

Din păcate revin cu o problemă. Se pare că nu totul merge perfect. Am făcut nişte teste de pe un cont de moderator şi tot nu îi cere să specifice motivul. Ar putea fi o problemă faptul că user-ul respectiv nu este în grupul Global Moderators, ci doar într-un grup creat de mine care are drepturi de moderare doar pe anumite forumuri?

Mulţumesc încă odată pentru ajutor.

Cu stimă,
Valentin
axn
Utilizator înregistrat
Mesaje: 295
Membru din: 01-Mar-2006, 23:39:47

Mesaj de axn »

Scuze, nu am fost foarte atent atunci, si m-am cam grabit.
Am gasit si alte erori, pe care le-am rezolvat azi.
Am facut mai multe teste cu noul cod scris azi, si pana acum totul a fost bine. Campul va fi obligatoriu in cazul in care un moderator editeaza mesajul altcuiva. Daca moderatorul isi editeaza propriul mesaj, acesta nu va fi obligatoriu, deoarece este posibil sa il editeze la cateva secunde dupa ce l-a trimis, moment in care, dupa cum am vazut, campul respectiv nu apare pentru a fi completat, prin urmare nu putem sa ii cerem sa il completeze.

Scoaterea din grupul de moderatori a adminului iarasi nu merge, pt. ca atunci adminul nu mai poate modera forumul. Nu este ca la phpbb2 unde chiar daca nu ti-ai setat permisiuni de moderator, tot poti sa moderezi forumul daca ai permisiuni de administrator.
Inainte sa modifici, fa un backup la message_parser.php, pt. orice eventualitate.
Tot ce e mai jos, va incepe de sub:
global $config, $auth, $user, $phpbb_root_path, $phpEx, $db;
inlocuind vechiul cod.

Cod: Selectaţi tot

$cerereSQL = 'SELECT `poster_id`
FROM ' . POSTS_TABLE . ' WHERE `post_id`="'.$_GET['p'].'"';
$result = $db->sql_query($cerereSQL);
$rezultat = $db->sql_fetchrow($result);

if ((empty($_POST['edit_reason'])) && $auth->acl_getf('m_') && ($_GET['mode'] == 'edit') && ($user->data['user_id'] != $rezultat['poster_id']) || $auth->acl_get('m_'))
{
          if($auth->acl_get('a_')) {
          echo '';
          } else {
          $this->warn_msg[] = 'Trebuie sa specificati motivul editarii!'; }
}
Aici am mai facut o interogare sql, deoarece nu am vazut alta metoda de a verifica cine este cel care editeaza mesajul, mai exact daca e vorba de acelasi utilizator care l-a postat.
Nu uita sa faci backup. Pana acum la mine totul a mers ok. Daca mai apar alte erori, revin-o cu problema, si voi incerca sa gasesc solutia.
Succes.
What I'm s'pose to write here ?
Vally007
Utilizator înregistrat
Mesaje: 34
Membru din: 04-Oct-2006, 19:35:55
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Contact:

Mesaj de Vally007 »

Da, se pare ca acesta merge bine.

Multumesc frumos pentru asistenta si promptitudine.

Toate cele bune,
Valentin
Vally007
Utilizator înregistrat
Mesaje: 34
Membru din: 04-Oct-2006, 19:35:55
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Contact:

Mesaj de Vally007 »

Si o alta problema... Merge bine la grupul creat de moderatori, si administratori, in sensul ca la moderatorii (din grupul separat) le cere sa specifice motivul, iar la administratori NU. Problema este acum la grupul Global moderators, care nu mai poate adauga nici un mesaj pe forum. Si la topicuri noi si la replay-uri le cere sa specifice motivul editarii, cu toate ca aceasta rubrica nu mai exista.

Cu stima,
Valentin
axn
Utilizator înregistrat
Mesaje: 295
Membru din: 01-Mar-2006, 23:39:47

Mesaj de axn »

Am mai adaugat o regula conditiei, care sa corecteze eroarea.

Cod: Selectaţi tot

if ((empty($_POST['edit_reason'])) && $auth->acl_getf('m_') && ($_GET['mode'] == 'edit') && ($user->data['user_id'] != $rezultat['poster_id']) || $auth->acl_get('m_') && !$auth->acl_getf_global('m_'))
Vechiul cod incepand de la if ((empty... si pana la prima acolada {
poate fi inlocuit cu acesta. Singura modificare e cea de la urma cu !$auth->acl_getf_global('m_')
What I'm s'pose to write here ?
Vally007
Utilizator înregistrat
Mesaje: 34
Membru din: 04-Oct-2006, 19:35:55
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Contact:

Mesaj de Vally007 »

S-a rezolvat cu adăugarea acelei opţiuni.

Mulţumesc mult.
Valentin
Închis

Înapoi la “3.0.x Cum pot să...?”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 1 vizitator