Moderatorskie notatki w profilu użyszkodnika oraz zarządzanie emotkami w ACP
#1
Napisano 20 luty 2009 - 18:38
Prostym sposobem jest zrobienie tematu dedykowanego użytkownikom na cenzurowanym. Sęk w tym, że jest to niewygodne, bo trzeba przejść do tematu, wyszukać czy dana osoba ma coś na sumieniu i dopiero można działać. Podobnie z wypełnianiem.
Po dłuższym szukaniu okazało się, że istnieje modyfikacja User Notes (link).
Modyfikacja ładnie działa, tylko okazało się, że użytkownicy widzą dodane notatki.
Tu rodzi się pytanie: czy istnieje jakaś inna modyfikacja spełniająca rolę moderatorskich notatek (lub jej częścią jest taka funkcjonalność)?
Jeśli takie coś nie istnieje, to czy byłby ktoś chętny zmodyfikować User Notes, by w ACP była opcja "wybierz grupy, które mogą widzieć notatki"? Sam nie posiadam możliwości rozdłubania i wytestowania kodu, bo nie mam dostępu do śródeł IP Board.
Druga sprawa to zarządzanie emotkami. Czy jest jakaś modyfikacja, która zwiększa możliwości domyślnego menadżera emotikon? Mogę dodawać je w ACP pojedynczo, albo poprzez ładowanie paczek xml, ale nie mam możliwości np. usuwania. Mogę wcisnąć "delete" dostępne w katalogu "default", ale ten button tylko przenosi emotki do "unasigned", natomiast nie ma opcji definitywnego kasowania pojedynczej emoty. Od razu dodam, że nie mam dostępu przez FTP (lub SSH) do serwera, więc ta (jakże wygodna) opcja odpada. Przekopałem się przez invisionmodding oraz invisionize.com (mody dla 2.3.x) i niestety nic mi nie wpadło w oko, co by realizowało pożądaną przeze mnie funkcjonalność.
Będę wdzięczny za każdą poradę :-)
#2
Napisano 20 luty 2009 - 18:55
A w sprawie emotek to ja nic nie poradzę. Poczekamy aż Nasz ekspert pojawi się na forum
Użytkownik Bartek edytował ten post 20 luty 2009 - 19:01
#3
Napisano 21 luty 2009 - 13:02
na wstępie powiem, że w 99% przypadkach nie można wprowadzać zmian bez dostępu do kodu źródłowego forum.
Jednak:
Użytkownik wiesniak dnia pią, 20 lut 2009 - 18:38 napisał
Użytkownik wiesniak dnia pią, 20 lut 2009 - 18:38 napisał
#4
Napisano 21 luty 2009 - 15:32
Użytkownik DawPi dnia sob, 21 lut 2009 - 13:02 napisał
Użytkownik DawPi dnia sob, 21 lut 2009 - 13:02 napisał
Nie ja będę wprowadzał modyfikacje, tylko właściciel forum. Moim zadaniem tutaj jest znalezienie pomocy w sprawie modyfikacji, zdobycie potrzebnych informacji.
Skoro wymieniliśmy uprzejmości, przejdźmy do konkretów.
Użytkownik DawPi dnia sob, 21 lut 2009 - 13:02 napisał
Sądząc po treści moda, skin był modyfikowany w jednym miejscu - dodanie jednego radiobuttona do stronki, na której wystawia się ostrzeżenia (mod wprowadza nowy poziom ostrzeżenia, który nic nie zmienia w liczniku ostrzeżeń - czyli właśnie robi jako notatka).
Edit skin: Moderator Function / warnheader
After:
<td class="pformright">
<input type="radio" name="level" id="add" class="radiobutton" value="add" {$type['add']} /><label for="add" class="warnbad"><b>{$this->ipsclass->lang['w_add']}</b></label>
Add:
<br />
<input type="radio" name="level" id="zero" class="radiobutton" value="zero" {$type['note']} /><label for="zero" class="warnnote"><b>{$this->ipsclass->lang['w_note']}</b></label>
Zastanawiam się, jak wygląda sprawa umieszczania pełnej modyfikacji dostępnej na invisionize.com tutaj - nie doszukałem się żadnego "możesz swobodnie rozpowszechniać" ani też "zakaz wklejania treści w innych miejscach bez zgody autora". Jeśli nie jest to nielegalne, to po prostu wrzucę pełną treść modyfikacji tutaj - całe 3,5KB :-)
Użytkownik wiesniak edytował ten post 21 luty 2009 - 15:33
#5
Napisano 21 luty 2009 - 15:44
Użytkownik wiesniak dnia sob, 21 lut 2009 - 15:32 napisał
Użytkownik wiesniak dnia sob, 21 lut 2009 - 15:32 napisał
Nie ja będę wprowadzał modyfikacje, tylko właściciel forum. Moim zadaniem tutaj jest znalezienie pomocy w sprawie modyfikacji, zdobycie potrzebnych informacji.
Użytkownik wiesniak dnia sob, 21 lut 2009 - 15:32 napisał
Sądząc po treści moda, skin był modyfikowany w jednym miejscu - dodanie jednego radiobuttona do stronki, na której wystawia się ostrzeżenia (mod wprowadza nowy poziom ostrzeżenia, który nic nie zmienia w liczniku ostrzeżeń - czyli właśnie robi jako notatka).
Użytkownik wiesniak dnia sob, 21 lut 2009 - 15:32 napisał
I tak, jak mówiłem, skoro tylko jedna edycja skina ta, co opisałeś to resztę ( limit na grupy ) należy zrobić w plikach.
Jeśli nic nie wymyślisz to spróbuję to zrobić i napisać Ci co zrobić - jutro.
#6
Napisano 22 luty 2009 - 10:30
#7
Napisano 23 luty 2009 - 00:44
Kod w znacznej mierze jest zaczerpnięty z modyfkacji (Adriano) User CP - Block Forums from 'View New Posts' 1.2.
Pierwsza część to dodatek do ACP pozwalający wybrać grupy, które mogą widzieć notatki. Ta część jest w XML:
<mod_data>
<mod_info>
<title>Notatki moderatorskie</title>
<version>0.1</version>
<author>wiesniak</author>
<website></website>
<ipbver>2.3</ipbver>
</mod_info>
<sections_group>
<section>
<conf_title_title>Notatki moderatorskie</conf_title_title>
<conf_title_desc>Ustawienia modyfikacji notatki moderatorskie</conf_title_desc>
<conf_title_noshow>0</conf_title_noshow>
<conf_title_keyword>user_notes</conf_title_keyword>
</section>
</sections_group>
<sections_group>
<setting>
<conf_title>Grupy</conf_title>
<conf_description>Wybierz grupy uprawnione do oglądania notatek</conf_description>
<conf_group>0</conf_group>
<conf_type>multi</conf_type>
<conf_key>user_notes_groups</conf_key>
<conf_default />
<conf_extra>#show_groups#</conf_extra>
<conf_evalphp>
<![CDATA[
if ( $save == 1)
{
if ( is_array($_POST['user_notes_groups']) )
{
$_POST['user_notes_groups'] = implode(",",$_POST['user_notes_groups']);
}
else
{
$_POST['user_notes_groups'] = "";
}
$key = 'user_notes_groups';
}
if ( $show == 1 )
{
$key = 'user_notes_groups[]';
}
]]>
</conf_evalphp>
<conf_position>1</conf_position>
<conf_start_group />
<conf_end_group />
<conf_help_key />
</setting>
</settings_group>
</mod_data>
Wydaje mi się, że taki lub podobny kawałek kodu powinien po załadowaniu generować listę grup i dać możliwość oznaczenia, które grupy mają widzieć notatki. W XMLu były jeszcze inne sekcje typu modyfikacja template'u czy elementy językowe, ale wydaje mi się to zbędne na chwilę obecną.
Pozostaje część druga, realizująca weryfikację tych ustawień.
if (in_array( $this->ipsclass->member['mgroup'], explode( ',', $this->ipsclass->vars['user_notes_groups'] ) ) )
{
/* tu powinien się znaleźć kawałek kodu odpowiedzialny za generowanie pojedynczej notatki / ostrzeżenia - jeśli user przeglądający zalicza się do grupy zezwolonej, kod się wykona, notatka zostanie wyświetlona.
trzeba jeszcze dodać do if warunek sprawdzający, czy dana "rzecz" do wyświetlenia to notatka - jeśli nie to trzeba ją wyświetlić niezależnie od przydziału do grupy.
if(!notatka || notatka&& grupaJestOk) wyswietl;
niestety tego już nie wymyślę - ani jak poprawnie napisać warunek, ani w jakim pliku modyfikować.
*/
}
Gdybym miał zacząć kombinować z tworzeniem modyfikacji (czy raczej dodatku do modyfikacji user notes), to tak właśnie bym zaczął. Ewentualnie dodałbym jeszcze radiobuttony "mod włączony / wyłączony" (w XML-u), ale nie jest to obecnie aż tak istotne.Wszelkie sugestie mile widziane :-)
Użytkownik wiesniak edytował ten post 23 luty 2009 - 00:46
#8
Napisano 23 luty 2009 - 00:58
Otwórz plik: sources/action_public/misc/warn.php
Znajdź:
$this->output .= $this->ipsclass->compiled_templates['skin_mod']->warn_view_note_row($date, $content, $puni_name);Zamień na:
if ( in_array( $this->ipsclass->member['mgroup'], array(4,5) ) )
{
$this->output .= $this->ipsclass->compiled_templates['skin_mod']->warn_view_note_row($date, $content, $puni_name);
}
Zapisz i wyślij.Oczywiście nie testowane, ale powinno działać. Jak widać użyłem tablicy na sztywno z ID grup, ale nic nie stoi na przeszkodzie by użyć tych z Twojego pliku .xml wcześnie je explodując ( lub bezpośrednio w funkcji in_array() ).
#9
Napisano 23 luty 2009 - 14:29
W sprawie emotek: czy przychodzi Ci jakaś gotowa modyfikacja na myśl? Jeśli nie, to radzisz kontunyować wątek, czy raczej powinienem się zgłosić do działu dot. produkcji modyfikacji?
W zasadzie potrzebuję jednego buttona do każdej emotki, w każdym katalogu, który będzie realizował kasowanie (z tego co zauważyłem, przy ładowaniu emotek, są one automatycznie powielane do katalogu default.
Brakuje mi jeszcze jednej funkcjonalności. Istnieje możliwość zdefiniowania podstawowego zestawu emotek dla wybranego stylu wskazując katalog emotek. Sęk w tym, że nie ma możliwości zdefiniowania tekstu, który będzie zamieniany na emotkę w postach (czyli np
Tu nie jestem w stanie nic zaproponować od siebie, bo zbytnio nie mam się na czym oprzeć
Przy okazji właśnie odkryłem coś, co niekoniecznie mi się podoba, a mianowicie nie ma weryfikacji tych tekstów - jeśli dwóm emotkom nadam taki sam tekst, to tak zostanie zapisane, przy czym na forum wyświetla się ta emotka, którą przedefiniowałem. Żeby było zabawnie, nie ma opcji powrotu do poprzedniego tekstu. Usunięcie jednej z emotek usuwa obie (wrzuca je do "unasigned") i resetuje im teksty. Wspominam o tym, choć de facto nie wiem, czy ma to znaczenie w obliczu nadchodzącej wersji 3.
#10
Napisano 23 luty 2009 - 19:47
Użytkownik wiesniak dnia pon, 23 lut 2009 - 14:29 napisał
Użytkownik wiesniak dnia pon, 23 lut 2009 - 14:29 napisał
Dział modyfikacje w produkcji nie jest przeznaczony dla modyfikacji dla konkretnej osoby. Choć oczywiście możesz tam śmiało pisać do woli, umieszczać swoje prośby. Jeśli jakaś przypadnie mi do gustu i uznam, że może się przydać większej ilości osób to napiszę taką modyfikację z chęcią.
Użytkownik wiesniak dnia pon, 23 lut 2009 - 14:29 napisał
Tu nie jestem w stanie nic zaproponować od siebie, bo zbytnio nie mam się na czym oprzeć
Użytkownik wiesniak dnia pon, 23 lut 2009 - 14:29 napisał
#11
Napisano 23 luty 2009 - 20:14
Użytkownik DawPi dnia pon, 23 lut 2009 - 19:47 napisał
Użytkownik DawPi dnia pon, 23 lut 2009 - 19:47 napisał
Użytkownik DawPi dnia pon, 23 lut 2009 - 19:47 napisał
Wg mnie podobna uwaga jak wyżej - emoty nie zmienia się codziennie i o takie detale można zadbać przy uploadzie plików.
#12
Napisano 24 luty 2009 - 16:36
Użytkownik wiesniak dnia pon, 23 lut 2009 - 20:14 napisał
Użytkownik wiesniak dnia pon, 23 lut 2009 - 20:14 napisał
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych















