• Rejestracja
vBHELP.pl - polskie wsparcie vBulletin
Like Tree2Przydatne posty
  • 1 Autor Seba
  • 1 Autor WoG
  1. #1
    AgentFL jest nieaktywny Użytkownik
    Dołączył
    Dec 2010
    Posty
    65
    Przydatne posty
    7

    Domyślnie Zezwolenia moderatora [pytania]

    Wstęp: Witam. Przy pracach na swoim forum doszedłem do pewnego rozwiązania swojego problemu.
    Lecz chciałbym z Wami skonsultować kilka elementów. Głównie poprawność zamieszczenia kodu w danym miejscu [gdyż sam kod to po prostu tylko warunek].

    Cel zmian: zablokowanie dostępu dla określonej grupy do niektórych opcji/stron skryptu
    Pisząc ten temat operuję na standardowych plikach VB 4.1.5, dlatego nie ma sensu ich zamieszczać.

    Kod jakim operuję ma postać:
    Kod php:
        if (is_member_of($vbulletin->userinfoid1id2, ..., idn))
        {
            
    print_stop_message('no_permission');
        } 
    gdzie id1, id2, ..., idn -> id odpowiedniej grupy/grup

    Plik: modcp/users.php
    Linie: 277-284
    Pożądany efekt: zablokowanie określonej grupie możliwości edycji/podglądu ustawień użytkownika
    Kod php:
    // ###################### Start viewuser #######################
    if ($_REQUEST['do'] == 'viewuser')
    {
        if (!
    can_moderate(0'canviewprofile'))
        {
            
    print_stop_message('no_permission');
        } 
    Dodanie kodu warunku grupy [sprawdzenie przynależności] po ww. wymienionym. Kod prezentuje się tak wtedy
    Kod php:
    // ###################### Start viewuser #######################
    if ($_REQUEST['do'] == 'viewuser')
    {
        if (!
    can_moderate(0'canviewprofile'))
        {
            
    print_stop_message('no_permission');
        }

            
    //dodany kod
        
    if (is_member_of($vbulletin->userinfoid1id2, ..., idn))
        {
                
    print_stop_message('no_permission');
        }
            
    //dodany kod 
    Kolejny plik: modcp/thread.php
    Linia: 27
    Pożądany efekt: zablokowanie określonej grupie możliwości przenoszenia, czyszczenia wątków z poziomu MCP [zwykłe opcje wątku dostęne]
    Dodanie po niej kodu na warunek grupy.
    Podgląd po edycji:
    Kod php:
    // ######################## SET PHP ENVIRONMENT ###########################
    error_reporting(E_ALL & ~E_NOTICE);

    // ##################### DEFINE IMPORTANT CONSTANTS #######################
    define('CVS_REVISION''$RCSfile$ - $Revision: 32878 $');
    define('NOZIP'1);

    // #################### PRE-CACHE TEMPLATES AND DATA ######################
    $phrasegroups = array('thread''threadmanage''prefix');
    $specialtemplates = array();

    // ########################## REQUIRE BACK-END ############################
    require_once('./global.php');
    require_once(
    DIR '/includes/adminfunctions_prefix.php');

    //dodany kod
    if (is_member_of($vbulletin->userinfoid1id2, ..., idn))
    {
            
    print_stop_message('no_permission');
    }  
    //dodany kod

    @set_time_limit(0);

    // ############################# LOG ACTION ###############################
    $vbulletin->input->clean_array_gpc('r', array(
        
    'forumid' => TYPE_INT,
        
    'pollid'  => TYPE_INT,
        
    'type'    => TYPE_STR,
    ));
    log_admin_action(iif(!empty($vbulletin->GPC['forumid']), "forum id = " $vbulletin->GPC['forumid'], iif(!empty($vbulletin->GPC['pollid']), "poll id = " $vbulletin->GPC['pollid'])));

    // ########################################################################
    // ######################### START MAIN SCRIPT ############################
    // ######################################################################## 
    Następny plik: modcp/forum.php
    Linia: 25
    Pożądany efekt: zablokowanie określonej grupie możliwości "edytowania forum"
    Dodanie po niej kodu na warunek grupy
    Podgląd po edycji:
    Kod php:
    // ######################## SET PHP ENVIRONMENT ###########################
    error_reporting(E_ALL & ~E_NOTICE);

    // ##################### DEFINE IMPORTANT CONSTANTS #######################
    define('CVS_REVISION''$RCSfile$ - $Revision: 32878 $');

    // #################### PRE-CACHE TEMPLATES AND DATA ######################
    $phrasegroups = array('forum');
    $specialtemplates = array();

    // ########################## REQUIRE BACK-END ############################
    require_once('./global.php');

    //dodany kod
    if (is_member_of($vbulletin->userinfoid1id2, ..., idn))
    {
            
    print_stop_message('no_permission');
    }  
    //dodany kod

    // ############################# LOG ACTION ###############################
    $vbulletin->input->clean_array_gpc('r', array(
        
    'moderatorid' => TYPE_INT,
        
    'forumid'     => TYPE_INT
    ));
    log_admin_action(iif($vbulletin->GPC['moderatorid'] != 0" moderator id = " $vbulletin->GPC['moderatorid'], iif($vbulletin->GPC['forumid'] != 0"forum id = " $vbulletin->GPC['forumid'])));

    // ########################################################################
    // ######################### START MAIN SCRIPT ############################
    // ######################################################################## 
    Ostatni z przykładowych plików: modcp/announcement.php
    Linia: 27
    Dodanie po niej warunku grupy
    Pożądany efekt: zablokowanie określonej grupie możliwości dodania nowego ogłoszenia
    Pogląd po edycji:
    Kod php:
    // ######################## SET PHP ENVIRONMENT ###########################
    error_reporting(E_ALL & ~E_NOTICE);

    // ##################### DEFINE IMPORTANT CONSTANTS #######################
    define('CVS_REVISION''$RCSfile$ - $Revision: 34547 $');

    // #################### PRE-CACHE TEMPLATES AND DATA ######################
    $phrasegroups = array('posting');
    $specialtemplates = array();

    // ########################## REQUIRE BACK-END ############################
    require_once('./global.php');
    require_once(
    DIR '/includes/adminfunctions_announcement.php');

    //dodany kod
    if (is_member_of($vbulletin->userinfoid1id2, ..., idn))
    {
            
    print_stop_message('no_permission');
    }  
    //dodany kod

    // ############################# LOG ACTION ###############################
    $vbulletin->input->clean_array_gpc('r', array(    'announcementid' => TYPE_INT));
    log_admin_action(!empty($vbulletin->GPC['announcementid']) ? "announcement id = " $vbulletin->GPC['announcementid'] : '');

    // ########################################################################
    // ######################### START MAIN SCRIPT ############################
    // ######################################################################## 
    Podsumowując: Pożądane efekty udało się uzyskać. Po krótkich testach nie widzę efektów ubocznych, lecz wolałbym skonsultować z bardziej/dłużej/lepiej/itp obeznanymi z skryptem osobami poprawność umieszczonych kodów.
    Ostatnio edytowane przez AgentFL ; 20.08.2011 o 01:15



  2. #2
    Seba jest nieaktywny Advanced Member
    Dołączył
    Feb 2009
    Posty
    1 059
    Przydatne posty
    44

    Domyślnie

    Wszystko wygląda w miarę ok.
    AgentFL uważa to za przydatne.
    Profesjonalne modyfikacje vBulletin oraz style - gg 1981480 badz PW


  3. #3
    AgentFL jest nieaktywny Użytkownik
    Dołączył
    Dec 2010
    Posty
    65
    Przydatne posty
    7

    Domyślnie

    OK. Dzięki za odp. Leci plus [jako iż pierwsza opinia].
    Gdyby jeszcze ktoś mógł potwierdzić/jakieś uwagi dodać to chętnie wysłucham


  4. #4
    Awatar WoG
    WoG
    WoG jest nieaktywny vB Specialist
    Dołączył
    Feb 2008
    Posty
    2 812
    Przydatne posty
    299
    Wpisów
    1

    Domyślnie

    Nie zaszkodzi trochę optymalizacji.

    modcp/users.php
    Kod php:
    // ###################### Start viewuser #######################
    if ($_REQUEST['do'] == 'viewuser')
    {
        if (!
    can_moderate(0'canviewprofile') && is_member_of($vbulletin->userinfoid1id2, ..., idn))
        {
            
    print_stop_message('no_permission');
        } 

    modcp/thread.php : OK

    modcp/forum.php : OK

    modcp/announcement.php : OK

    Jednak odradzam edytowanie plików vBulletin.
    Będziesz musiał wprowadzać te poprawki za każdym razem po aktualizacji.
    AgentFL uważa to za przydatne.
    Z poważaniem,
    WoG

    Ty też możesz pomóc spolszczać vBulletin 5: GitHub.com
    "Rozczarowanie spowodowane niską jakością pamięta się długo po przeminięciu radości spowodowanej niską ceną"


  5. #5
    AgentFL jest nieaktywny Użytkownik
    Dołączył
    Dec 2010
    Posty
    65
    Przydatne posty
    7

    Domyślnie

    Dzięki za odpowiedź.

    Zdaje sobie sprawę z koniecznych zmian. Lecz nie znalazłem skutecznego rozwiązania do dodania grup jako moderatorów w VB4. Bo zabawa w ręczne przypisywanie userów nie jest rzeczą pożądaną przeze mnie.

    Oczywiście za sugestie leci plusik


Chmurka.pl

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67