Jak zablokować edycję oraz kasowanie stron w adminie

ds

Avatar: ds

2007-12-16 19:47

Witam,
Jak zablokować edycję oraz kasowanie wybranych stron w administracji?
Pozdrawiam

» Quick.Cms v1.x

merci

No avatar

2007-12-17 11:16

ds - od razu zaznaczam, ze to rozwiazanie dziala tylko dla pojedynczych stron, czyli jezeli bedziesz chcial zablokowac kasowanie i zapisywanie strony wraz z jej podstronami, to musisz wpisac id wszystkich podstron i strony nadrzednej. Jeszcze trzeba pamietac, ze gdy usuwa sie strone nadrzedna, wraz z nia zostaja usuniete wszystkie strony podrzedne. Ok, to teraz modyfikacja:
1. W pliku config/general.php dodac kod:

$aBlockPages = Array( => true=> true );

- klucze, czyli 3,4, to id stron, ktore maja zostac zablokowane
2. w pliku actions_admin/pages.php pod kodem:


elseif( $a == 'form' ){
  if( isset( 
$_POST['sOption'] ) ){


wstawic to:

if( isset( $_POST['iPage'] ) && is_numeric$_POST['iPage'] ) && isset( $aBlockPages[$_POST['iPage']] ) ){
      
header'Location: '.$_SERVER['PHP_SELF'].'?p='.$p.'&sOption=save&iPage='.$iPage );
      exit;
    }


3. w tym samym pliku zamienic nastepujacy kod:


$oPage
->deletePage$iPage );


na ten:


if( !isset( $aBlockPages[$iPage] ) ){
    
$oPage->deletePage$iPage );
  }

ola001

Avatar: ola001

2008-06-10 09:03

A jak to zrobić w wersji Quick.Cms v2.1?
Tutaj zamiast pliku actions_admin/pages.php jest actions_admin/p.php i kod jest trochę inny w tym miejscu:

elseif( $a == 'form' ){
  if( isset( 
$_POST['sOption'] ) ){ 


jest taki kod:

elseif( $a == 'form' ){
  if( isset( 
$_POST['sName'] ) ){
    
$iPage $oPage->savePage$_POST );



Gdy pod nim wstawiłam to:

if( isset( $_POST['iPage'] ) && is_numeric$_POST['iPage'] ) && isset( $aBlockPages[$_POST['iPage']] ) ){
      
header'Location: '.$_SERVER['PHP_SELF'].'?p='.$p.'&sOption=save&iPage='.$iPage );
      exit;
    }


to wyskoczył taki komunikat przy próbie logowania:

Parse errorsyntax errorunexpected T_ELSE in /home/olawaw/public_html/prev-med/actions_admin/p.php on line 25

Makaron

Avatar: Makaron

2008-06-11 08:46

Ja teraz zrobiłem dokładnie tak krok po kroku dla wersji 2.1 i wszystko działa jak powinno. Faktycznie nieco różni się kod w p.php, ale trzeba fragment kodu o którym wspomniała wcześniej merci wstawić właśnie tam gdzie myślałaś, a reszta identycznie i działa bez zarzutu.. Twój błąd jest błędem składni może gdzieś źle zamknęłaś jakiegoś IFa. Przekleje Ci tu większy kawałek kodu i porównasz sobie może.

elseif( $a == 'form' ){
  if( isset( 
$_POST['sName'] ) ){
    
$iPage $oPage->savePage$_POST );
    if( isset( 
$_POST['iPage'] ) && is_numeric$_POST['iPage'] ) && isset( $aBlockPages[$_POST['iPage']] ) ){
      
header'Location: '.$_SERVER['PHP_SELF'].'?p='.$p.'&sOption=save&iPage='.$iPage );
      exit;
    }
    if( isset( 
$_POST['sOptionList'] ) )
      
header'Location: '.$_SERVER['PHP_SELF'].'?p='.$aActions['f'].'-list&sOption=save' );
    else
      
header'Location: '.$_SERVER['PHP_SELF'].'?p='.$p.'&sOption=save&iPage='.$iPage );
    exit;
  }

ola001

Avatar: ola001

2008-06-11 09:29

Dzięki za pomoc - skopiowałam ten fragment tekstu i już się błąd nie pokazuje. :)

Ale cos z kolei nie działa blokowanie strony - nadal mogę zmieniac jej tresc i zapisywac zmiany - pojawiaja sie one na stronie...

moze cos przeoczyłam - sprawdze...

Makaron

Avatar: Makaron

2008-06-11 09:39

Faktycznie przeoczyłem to, że strona nie może się także edytować, więc jeszcze nieco inaczej ;)

elseif( $a == 'form' ){
  if( isset( 
$_POST['iPage'] ) && is_numeric$_POST['iPage'] ) && isset( $aBlockPages[$_POST['iPage']] ) ){
      
header'Location: '.$_SERVER['PHP_SELF'].'?p='.$p.'&sOption=save&iPage='.$iPage );
      exit;
    }
  if( isset( 
$_POST['sName'] ) ){
    
$iPage $oPage->savePage$_POST );
    if( isset( 
$_POST['sOptionList'] ) )
      
header'Location: '.$_SERVER['PHP_SELF'].'?p='.$aActions['f'].'-list&sOption=save' );
    else
      
header'Location: '.$_SERVER['PHP_SELF'].'?p='.$p.'&sOption=save&iPage='.$iPage );
    exit;
  }


Tak powinno być ok.

ola001

Avatar: ola001

2008-06-11 16:49

I jest OK!!! Teraz działa!!! Wielkie dzięki!!!! :)

Do góry
o nas | kontakt