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&file=article&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 .= " <img src=\"images/print.gif\" border=\"0\" alt=\""._PRINTER."\" title=\""._PRINTER."\"> <a href=\"modules.php?name=".$module_name."&file=print&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;
}