BLASSENweb

Jak omezit určitou kategorii článků jen pro registrované uživatele
Publikováno: Středa, 07.02. 2007 - 06:21:21
Téma: Vše co se nějak vztahuje k xxNuke


Dnes si povíme něco málo o tom, jak omezit určitou kategorii článků jen pro registrované uživatele.
Bude to vyžadovat určitý zásah do souborů systému, ale to se společně pokusíme zvládnout.
Nezapopmeňte však na to že při každé aktualizaci to pravděpodobně budete muset udělat znovu.



Nejprve otevřete soubor www/modules/News/index.php a najděte řádky 99 a 110
{ Řádek 99 Kód }:

                $notes un_doTexy(stripslashes($row['notes']));


{ Řádek 110 Kód }:

                $c_count $comments;

Nad každý z těchto řádků vložte:

{ Kód }:

// RESTRICTED AREA module v.1.0 for United-Nuke
        
include("includes/omezeni_tematu.php");


Celý kód od řádku 98 až (nyní) po řádek 115 pak bude vypadat následovně:

{ Kód }:

                $informant stripslashes($row['informant']);
// RESTRICTED AREA module v.1.0 for United-Nuke
        
include("includes/omezeni_tematu.php");
                
$notes un_doTexy(stripslashes($row['notes']));
                
$acomm $row['acomm'];
                
$score $row['score'];
                
$ratings $row['ratings'];
                
$cat_title $row['cat_title'];
                
getTopics($s_sid);
                
formatTimestamp($time);
                
$subject stripslashes(check_html($subject"nohtml"));
                
$introcount strlen($hometext);
                
$fullcount strlen($bodytext);
                
$totalcount $introcount $fullcount;
// RESTRICTED AREA module v.1.0 for United-Nuke
        
include("includes/omezeni_tematu.php");
                
$c_count $comments;
                
$story_link "<a href=\"".un_append_commparams("modules.php?name=News&amp;file=article&amp;sid=".$s_sid)."\">";


To je v tomto souboru vše.
Dále otevřete soubor www/modules/News/article.php a najděte řádky 92 až 96

{ Kód }:

if($bodytext == "") {
    
$bodytext $hometext.$notes;
} else {
    
$bodytext $hometext."<br><br>".$bodytext.$notes;
}


Ty potom upravte následujícím způsobem:
( opět přidané pouze include )

{ Kód }:

if($bodytext == "") {
// RESTRICTED AREA module v.1.0 for United-Nuke
    
include("includes/omezeni_tematu.php");
    
$bodytext $hometext.$notes;
} else {
// RESTRICTED AREA module v.1.0 for United-Nuke
    
include("includes/omezeni_tematu.php");
    
$bodytext $hometext."<br /><br />".$bodytext.$notes;
}


Dále najděte na řádku 255

{ Kód }:

if (is_user($user)) {

a přesuňte nad řádek 254

{ Kód }:

$optionbox .= "&nbsp;<img src=\"images/print.gif\" border=\"0\" alt=\""._PRINTER."\" title=\""._PRINTER."\"> <a href=\"modules.php?name=".$module_name."&amp;file=print&amp;sid=".$sid."\">"._PRINTER."</a><br><br>";

Lepší řešení se mi bohužel nepodařilo vymyslet. Možná se mi jen nechtělo a chtěl jsem nechat prostor pro Vaší fantazii. Každopádně je to takhle.

Zavřete, uložte.

Jako další si vytvořte soubor s názvem omezeni_tematu.php, a do něj vložte:

{ Kód }:

<?php

######################################################################
#
# RESTRICTED AREA module v.1.0 for United-Nuke
# (c)2005+ BLASSENweb
# website http://blassenweb.net
#
######################################################################

$omezeni_tematu[] = 6// toto číslo se shoduje s ID tématu

if (!is_admin($admin) AND !is_user($user) AND in_array($topic,$omezeni_tematu)) { 
   switch(
$topic) { 
      case (
6): 
         
$hometext "<center><b>"._RESTRICTEDAREA."</b><br /><br />"._MODULEUSERS."</center>";
      break; 

      default: 
         
$hometext "<center><b>"._RESTRICTEDAREA."</b><br /><br />"._MODULEUSERS."</center>";
      break; 
   } 
    
$notes ''
    
$bodytext ''
    
$articlecomm = -1
    
$fullcount = -1
    
$acomm = -1
    
$c_count = -1


?>


Tak a to je asi všechno, doufám že se na nic nezapomělo a všechny kódy jsou jak mají být. Přeji hodně štěstí při omezování obsahu jen pro někoho.

p.s.: a kdyby se vám chtělo, tak ten článek můžete třeba ohodnotit.

-- Autor: Blassen


Pokud si přejete možnost více témat, možné je to například tímto způsobem:
{ Kód }:

//$omezeni_tematu[] = 0; // ID TÉMATU
$omezeni_tematu[] = 1
$omezeni_tematu[] = 6

if (!
is_admin($admin) AND !is_user($user) AND in_array($topic,$omezeni_tematu)) {  
   switch(
$topic) { 
               
      case (
1): 
         
$hometext "<center><img src=\"images/noaccess.gif\" border=\"0\" alt=\""._RESTRICTEDAREA."\" /><br>";
         
$hometext .= "<b>"._RESTRICTEDAREA."</b><br /><br />"._MODULEUSERS."</center>";
      break; 
      
      case (
6): 
         
$hometext "<center><b>"._RESTRICTEDAREA."</b><br /><br />"._MODULEUSERS."</center>";
      break; 

      default: 
         
$hometext "<center><b>"._RESTRICTEDAREA."</b><br /><br />"._MODULEUSERS."</center>";
      break; 
   }






Tento článek si můžete přečíst na webu BLASSENweb
http://blassenweb.net

Tento článek najdete na adrese:
http://blassenweb.net/clanky/jak-omezit-urcitou-kategorii-clanku-jen-pro-registrovane-uzivatele/288
Magic SEO URL - Optimalizace pro vyhledávače