Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

Module.class.php

Go to the documentation of this file.
00001 <?php
00006 include_once("core/system/JBaseObject.class.php");
00007 include_once("core/db/dbjames.class.php");
00008 include_once("core/system/JSystemError.class.php");
00009 
00013 class Module extends JBaseObject
00014 {
00015 
00016         var $data;      
00017         var $modinfo;   
00018         var $idPerms;   
00019 
00020 
00027         function Module ($idM)
00028         {
00029                 $dbObj = new DBJames();
00030 
00031                 $query = "SELECT * FROM Modules ";
00032                 $query .= "WHERE idM = " . $idM;
00033 
00034                 $dbObj->Query($query);
00035 
00036                 if ($dbObj->numRows == 1)
00037                 {
00038                         $this->data = $dbObj->row;
00039                 }
00040                 else
00041                 {
00042                         $this->data = NULL;
00043                         $this->RaiseConstructorError(new JSystemError(ERROR_MODULE_NOT_FOUND));
00044                 }
00045         }
00046         
00051         function GetRelativePath()
00052         {
00053                 $path = "/modules";             
00054                 $path .= "/" . $this->GetName();
00055                 
00056                 return $path;
00057         }
00058         
00063         function _GetInfoFilePath()
00064         {
00065                 $jpath = JSystem::GetConfig("JamesDir");
00066                 
00067                 $fpath = $jpath . $this->GetRelativePath() . "/config.xml";
00068                 if (!file_exists($fpath))
00069                         $fpath = $jpath.$this->GetRelativePath()."/config.inc";
00070                 
00071                 return $fpath; 
00072         }
00073         
00074         
00079         function &_GetPermissions()
00080         {
00081                 if (! isset($this->idPerms))
00082                 {
00083                         $dbObj = new DBJames();
00084                         
00085                         $query  = " SELECT * FROM Permissions ";
00086                         $query .= " WHERE idM = ". $this->GetId();
00087                 
00088                         $dbObj->Query($query);
00089                         
00090                         $this->idPerms = array();
00091                         
00092                         while(! $dbObj->EOF)
00093                         {
00094                                 $this->idPerms[$dbObj->row["name"]] = $dbObj->row["idP"];
00095                                 $dbObj->Next();
00096                         }
00097                 }
00098                 return $this->idPerms;
00099         }
00100         
00105         function GetId()
00106         {
00107                 return $this->data["idM"];
00108         }
00109         
00114         function GetName()
00115         {
00116                 return $this->data["name"];
00117         }
00118         
00125         function &GetInformation()
00126         {
00127                 include_once("core/modules/moduleinformation/ModuleInfo.class.php");
00128                 
00129                 if (! isset($this->modinfo))
00130                 {
00131                         $path = $this->_GetInfoFilePath();
00132                         $this->modinfo =& ModuleInfo::GetInformation(
00133                                                         "file", $path);
00134                 }
00135                 
00136                 return $this->modinfo;
00137         } 
00138         
00139         
00145         function GetPermissionId($name)
00146         {
00147                 $perms =& $this->_GetPermissions();
00148                 return $perms[$name];
00149         }
00150         
00151         
00157         function GetConfig($key)
00158         {
00159                 $config = JConfig::GetInstance(CONFIG_MODULE_SCOPE, 
00160                                                $this->GetId());
00161                 
00162                 return $config->GetValue($key);
00163         }
00164         
00172         function SetConfig($keys, $user=true, $group=false)
00173         {
00174                 $config =& JConfig::GetInstance(CONFIG_MODULE_SCOPE,
00175                                                $this->GetId());
00176                 return $config->SetValue($keys, $user, $group);
00177         }
00178         
00183         function GetAllModulesId()
00184         {
00185                 $dbObj = new DBJames();         
00186                 $query  = " SELECT * FROM Modules ";
00187                 $dbObj->Query($query);
00188                 
00189                 return $dbObj;
00190         }
00191 }
00192 
00193 ?>

Generated on Wed Nov 19 20:29:35 2003 for James by doxygen 1.3.4