DATEIVERGLEICH
Erstellt: 22.05.2005 01:01:19
   
Modus: Alle Zeilen  
   
Linke Datei: D:\Localhost_2\nuke5.5\html\modules.php     Rechte Datei: D:\Localhost_2\2fcms-temp\modules.php  
1 <?php = 1 <?php
2     2  
3 /************************************************************************/ <> 3 /**
4 /* PHP-NUKE: Advanced Content Management System                         */   4 * Lädt das jeweils angegebene Modul.
5 /* ============================================                         */   5 * Hier wird nicht nur das jeweilige Modul geladen, das über "name" mitgeteilt wird.
6 /*                                                                      */   6 * Darüber hinaus wird geprüft, ob der aktuelle Benutzer wirklich die Rechte hat das jeweilige Modul zu sehen und ob es aktiv ist, etc.
7 /* Copyright (c) 2002 by Francisco Burzi (fbc@mandrakesoft.com)         */   7 * Wenn die Modules.php geladen wird, wird die globale Variable $GLOBALS['modulesload'] auf 1 gesetzt - in Modulen muss nur geprüft werden, ob diese Variable auf 1 steht um zu sehen, ob ein Zugriff über die modules.php erfolgte:<br><i>if( $GLOBALS['modulesload']!=1 ) header("Location:index.php?problem=5");</i>.
8 /* http://phpnuke.org                                                   */   8 * Dabei gibt es eine spezielle Möglichkeit: Sie können Module in einem eigenen Verzeichnis ablegen, die dann trotzdem aufgerufen werden können. Diese Module erscheinen aber nicht im Modules-Block oder in der Liste installierter Module!
9 /*                                                                      */   9 * @author Jens Ferner
10 /* This program is free software. You can redistribute it and/or modify */   10 * @copyright Jens Ferner, 2F Promoting & Consulting
11 /* it under the terms of the GNU General Public License as published by */   11 * @link http://www.2f-cms.com
12 /* the Free Software Foundation; either version 2 of the License.       */   12 * @package 2F-CMS
13 /************************************************************************/   13 * @subpackage Kernsystem
      14 * @category Frontend
      15 * @example ex-modul01.php Beispiel für ein eigenes Modul
      16 * @license http://www.2f-cms.com/2flicence.txt 2F CMS Lizenz
      17 */
14   = 18  
    <> 19 /**
      20 * Einbinden der Mainfile.php um die Kernfunktionen zu laden.
      21 * Durch dieses Einbinden ist es vollkommen überflüssig, in den einzelnen Modulen die mainfile.php erneut zu laden - also weglassen!
      22 */
15 require_once("mainfile.php");   23 include_once("mainfile.php");
16   = 24  
    <> 25 /**
      26 * Wegen kompatibilität zum phpbb
      27 */
      28 global $nukeuser, $user, $nukeurl;
      29 $nukeuser = base64_decode($user);
17 if (isset($name)) {   30  
      31 /**
      32 * Der Name des zu ladenden Moduls wird ausgelesen, dabei ist es egal ob "name" oder "Name" genutzt wird.
      33 * Wenn kein name oder Name gesetzt ist, wird mit einer Fehlermeldung umgeleitet.
      34 * Zuletzt wird $name und $module_name mit Inhalt gefüllt, hier steht der Modulname zur Verfügung.
      35 * In Modulen aber nur $GLOBALS['modul_name'] nutzen!
      36 */
      37 $name=""; $module_name="";
      38 if(empty($_REQUEST['name']) && empty($_REQUEST['Name']) ) { vkpLocation("index.php?problem=1");  die(); }
      39 if(!empty($_REQUEST['name'])) $name=$_REQUEST['name'];
      40 if(!empty($_REQUEST['Name'])) $name=$_REQUEST['Name'];
      41 $name=vkpval(trim($name),"string");
      42 $module_name=$name;
18   = 43  
19     $result = sql_query("select active, view from ".$prefix."_modules where title='$name'", $dbi); <> 44 /**
20    list($mod_active, $view) = sql_fetch_row($result, $dbi);   45 * Auslesen worauf zugegriffen wurde
21     if (($mod_active == 1) OR ($mod_active == 0 AND is_admin($admin) OR ($name == "Content"))) {   46 */
22         if (!isset($mop)) { $mop="modload"; }   47 $mop="modload"; $file="index";
23         if (!isset($file)) { $file="index"; }   48 if (isset($_REQUEST['mop'])) $mop=$_REQUEST['mop'];
24         if (ereg("\.\.",$name) || ereg("\.\.",$file)) {   49 if (isset($_REQUEST['file'])) $file=$_REQUEST['file'];
25             echo "You are so cool...";   50  
      51 /**
      52 * Sicherheitsüberprüfung von $mop und $file
      53 */
      54 $verboten = array("\.\.","\.\.","\\\\","ftp:","www");
      55 foreach($verboten as $kette) if( stristr($name, $kette) || stristr($file, $kette) ) { vkpLocation("index.php"); die(); }
26         } else {   56  
      57 /**
      58 * Wenn nur registrierte User Zugriff haben, immer zum Loginformular weiterleiten
      59 */
      60 global $usr_regonly, $admin;
      61 if ( $usr_regonly==1 AND !is_user($user) AND !is_admin($admin) AND ($name != "Your_Account") )
      62 vkpLocation("modules.php?name=Your_Account");
27             if ($view == 0) {   63  
28                 $modpath="modules/$name/$file.php";   64 /**
29                 if (file_exists($modpath)) {   65 * Globale Variable, in der der Name des aktuellen Moduls steht
      66 * Diese variable wird weiter unten nur dann gefüllt, wenn es das Modul auch wirklich gibt und es geladen wird.
      67 */
      68 $GLOBALS['modul_name'] = "";
    = 69  
    -+ 70 /**
      71 * Globale Variable, die markiert, ob die modules.php geladen ist
      72 */
      73 $GLOBALS['modulesload']=1;
    = 74  
    <> 75 /**
      76 * Auslesen, wer auf das Modul zugreifen darf
      77 */
      78 global $prefix, $dbi;
30                    include($modpath);   79 if (!empty($name))
31                } else {   80 {
32                    die ("Sorry, such file doesn't exist...");   81   $module_active=$GLOBALS['modulecache'][$name]['active'];
      82   $view=$GLOBALS['modulecache'][$name]['view'];
33                 }   83 }
34             }   84  
35             if ($view == 1 AND is_user($user) || is_admin($admin)) {   85 /**
      86 * Die Variable $vorhanden auf 0 setzen, sie wird auf 1 gesetzt, sobald das Modul auch wirklich existiert
      87 */
      88 $vorhanden=0;
    = 89  
    <> 90 /**
      91 * Hier wird das Modul aus /modules geladen
      92 */
36                 $modpath="modules/$name/$file.php";   93 $module_path="modules/$name/$file.php";
37                 if (file_exists($modpath)) {   94 if (file_exists($module_path)) $vorhanden=1;
    = 95  
    <> 96 /**
      97 * Wenn das Modul vorhanden ist: Laden
      98 */
38                     include($modpath);   99 if($vorhanden==1)
39                } else {   100 {
40                     die ("Sorry, such file doesn't exist...");   101   check_table($name);
      102   if(file_exists("modules/$name/functions.php")) include_once("modules/$name/functions.php");
      103   if(file_exists("modules/$name/depend.php")) modul_ver_check($name);
41                 }   104  
42             } elseif ($view == 1 AND !is_user($user) || !is_admin($admin)) {   105   /**
43                 $pagetitle = "- "._ACCESSDENIED."";   106   * Speichern des Modulnamens
44                 include("header.php");   107   * @global string $GLOBALS['modul_name']
45                 title("$sitename: "._ACCESSDENIED."");   108   */
      109   $GLOBALS['modul_name']=$name;
46                 OpenTable();   110  
47                 echo "<center><b>"._RESTRICTEDAREA."</b><br><br>"   111   /**
      112   * Speichern der geladenen Modul-Datei
      113   * @global string $GLOBALS['modul_datei']
48                     .""._MODULEUSERS.""   114   */
      115   $GLOBALS['modul_datei']=$file;
49                     .""._GOBACK."";   116 }
50                 CloseTable();   117  
51                 include("footer.php");   118  
      119 /**
      120 * Wenn das Modul unter /modules nicht existiert wird im 2. Verzeichnis nachgesehen
52                 die();   121 */
      122 elseif($vorhanden==0)
53             }   123 {
54             if ($view == 2 AND is_admin($admin)) {   124   global $vkp_modul_verzeichnis;
55                 $modpath="modules/$name/$file.php";   125   $module_path="".$vkp_modul_verzeichnis."/$name/$file.php";
56                 if (file_exists($modpath)) {   126   if (file_exists($module_path)) $vorhanden=1;
57                     include($modpath);   127   $view=2;
58                } else {   128 }
59                     die ("Sorry, such file doesn't exist...");   129  
60                 }         130  
61             } elseif ($view == 2 AND !is_admin($admin)) {   131 /**
62                 $pagetitle = "- "._ACCESSDENIED."";   132 * Der folgende Abschnitt lädt das Modul
      133 */
      134 if ( ($vorhanden == 1) && ( ( $module_active == 1 ) OR ($module_active == 0 AND is_admin($admin) OR ($name == $GLOBALS['aktivesmodul']))) )
      135   {
      136        /**
      137        * Hier werden die Variablen index/home gesetzt, wenn die Blöcke gesetzt wurden
      138        */
      139        global $index, $home;
      140        if( get_rightblocks( $GLOBALS['modul_name'] )==1) $index=1;
      141        if( get_messagebox($name)==1) $home=1;
63                 include("header.php");   142  
64                 title("$sitename: "._ACCESSDENIED."");   143        /**
      144        * Im Folgenden wird je nach gesetztem $view gearbeitet
      145        * $view gibt vor, wer ein Modul sehen darf:
      146        * 0 : Alle Besucher
      147        * 1 : Nur Benutzer
      148        * 2 : Nur Administratoren & Benutzergruppen
      149        * 3 : Unsichtbar (wird als 0 markiert, fällt also unter die erste Fallgruppe)
      150        */
      151        switch($view)
      152        {
65                 OpenTable();   153  
66                 echo "<center><b>"._RESTRICTEDAREA."</b><br><br>"   154         case 0:
      155         case 3:
      156          get_lang($name);
      157          include_once($module_path);
      158         break;
67                     .""._MODULESADMINS.""   159  
      160         case 1:
      161          if ( is_user($user) || is_admin($admin) )
      162           {
      163            get_lang($name);
      164            include_once($module_path);
      165           }
      166          else module_access_denied(_MODULEUSERS);
      167         break;
68                     .""._GOBACK."";   168  
      169         case 2:
69                 CloseTable();   170  
      171            /**
      172            * Gruppe prüfen
      173            */
      174            $gruppe_valid=0;
      175            if(is_user($user))
      176            {
      177             global $usr_login;
      178             if($usr_login==1) $usertemp=$_SESSION['user'];
      179              else $usertemp=$_COOKIE['user'];
      180             $usertemp=base64_decode($usertemp);
      181             $usertemp=explode(":",$usertemp);
      182             $sql="SELECT * FROM ".$prefix."_ug_users WHERE uname='".$usertemp[1]."'";
      183             $query=sql_query($sql,$dbi);
      184              while($ergebnis=sql_fetch_array($query,$dbi))
      185               {
      186                $groupid=$ergebnis['groupid'];
      187                $sql="SELECT * FROM ".$prefix."_ug_groups WHERE id='".$groupid."'";
      188                $queryx=sql_query($sql,$dbi);
      189                $ergebnist=sql_fetch_array($queryx,$dbi);
      190                if(eregi("".$name."//#//",$ergebnist['module'])) $gruppe_valid=1;
      191               }
      192             }
70                 include("footer.php");   193  
      194            /**
      195            * Wenn User in der Gruppe ist oder Admin zugreift
      196            */
      197            if( is_admin($admin) OR $gruppe_valid==1)
      198             {
      199              get_lang($name);
      200              include_once($module_path);
      201             }
71                 die();   202  
      203            /**
      204            * Zugriff wenn nicht
      205            */
      206            elseif( !is_admin($admin) OR $gruppe_valid!=1) module_access_denied(_MODULESADMINS);
72             }   207  
      208         break;
73         }   209  
74     } else {   210        }
75         include("header.php");   211 }
76         OpenTable();   212  
77         echo "<center>"._MODULENOTACTIVE."<br><br>"   213 /**
78             .""._GOBACK."</center>";   214 * Wenn das Modul nicht geladen werden konnte
      215 */
79         CloseTable();   216 else
80         include("footer.php");   217 switch($vorhanden)
81     }   218   {
82 } else {   219        
83     die ("Sorry, you can't access this file directly...");   220    // Das Modul existiert nicht
      221    case 0:
      222     vkpLocation("index.php?problem=3");   
      223    break;
      224   
      225    // Modul exitiert, ist aber nicht aktiv
      226    case 1:
      227     module_not_active();                     
      228    break;
84 }   229   }
85   = 230  
86 ?>   231 ?>