Qware_core/lib/system/system_printing/printingmanager.php

196 lines
5.0 KiB
PHP
Executable File

<?php
/**------------------------------------------------
*
* Rooty, 2018 <rooty@rooty.me>
*
*
* This software is protected by copyright, please
* read the file COPYRIGHT.
* This program is distributed in the hope that it
* will be useful, but without any warranty; without
* even the implied warranty of merchantability or
* fitness for a particular purpose. Please
* read the file LICENCE.
*
*Fichier PrintingManager.php
*
*Ce fichier contient la classe PrintingManager
*
* @author Rooty <www.rooty.me|rooty@rooty.me>
* @link www.rooty.me
* @since 2004/04/14
* @version 0.3
* @package system_printing
* @copyright Copyright &copy; 2009-2018, Rooty
*/
#####################################################################################################
################################# Parametrage
#####################################################################################################
/**
* declaration du system... si cette variable n'est pas définie, les fichier inclus ne marche pas...
* cette variable est déclarée sur la page d'execution du script.
*<p> if ( !defined('SYSTEM_IN') )
* {
* die("Hacking attempt");
* }</p>
*/
if ( !defined('SYSTEM_IN') )
{
die("Hacking attempt");
}
/**
* Appel à la classe Printing...
*/
require ($CONF_LIB_PATH."lib/system/system_printing/printing.php");
/**
* Classe PrintingManager
*
* <p>Classe de gestion des instances de Printings <br>
* (permet de fabriquer, detruire, mettre à jour des objet Printings)<br>
* Cette classe se sert des ressources à sa disposition (dans lib/Printings)<br><br>
* Elle
* </p>
* @package system_printing
*/
class PrintingManager
{
/**
* @access private
* @var chaine
* @desc chaine
*/
var $sourceDir = null;
//
// Constructor
//
/**
*Constructeur de la classe PrintingManager
*
*<p>Initialise le bon objet (ressource) ... <br>chacun de ces objets doit avoir les mêmes methodes (equivalente aux methodes sourceXXX)</p>
*<p>L'objet PrintingManager ne doit servir qu'a la récuperation des Printing</p>
* @access public
*/
function __construct()
{
global $CONF_LIB_PATH;
$this->setSourceDir($CONF_LIB_PATH."lib/object_printing/");
}
/**
* getSourceDir : récupere le repertoire des Printing à insérer
* @access public
* @return chaine nom du repertoire d'inclusion
*/
function getSourceDir()
{
return $this->sourceDir;
}
/**
* setSourceDir : affecte le repertoire des Printing à insérer
* @access public
* @return booleen
*/
function setSourceDir($path)
{
$this->sourceDir=$path;
return true;
}
/**
* doListPrinting : récupere le nom de tous les Printing disponibles
* @access public
* @return booleen
*/
function doListPrinting()
{
$i=0;
$tab=array();
if (is_dir($this->sourceDir)) {
if ($dh = opendir($this->sourceDir)) {
while (($obj = readdir($dh)) !== false) {
if (is_dir($this->sourceDir.$obj))
if (file_exists($this->sourceDir.$obj."/".$obj.".php"))
{
$tab[$i]=$obj;
$i++;
}
}
closedir($dh);
}
}
return $tab;
}
/**
* doLoadPrinting : charge tous les Printing sous la forme $GLOBALS['SYSTEM_Printing']['nomduPrinting']=new Printing();
*Ne charge que les objets d'affichage qui sont appélés par la template principale...
* @access public
* @return booleen
*/
function doLoadPrinting()
{
$GLOBALS['SYSTEM_PRINTING']=array(); /* Déclaration de la variable globale des Printing */
$tab=$this->doListPrinting();
for ($i=0; $i<count($tab); $i++)
{
/* evite les problemes si les paths ne sont pas réinitialisés */
$GLOBALS["SYSTEM_TEMPLATE"]->WithMxPath("");
/* Gére en fonction de la template si le flag existe */
if ($GLOBALS["SYSTEM_TEMPLATE"]->IsMxFlag($tab[$i], "text"))
{
/* On suppose que le Printing existent (test dans doListPrinting) */
include_once($this->sourceDir.$tab[$i]."/".$tab[$i].".php");
/* On créer une instance pour le Printing sous SYSTEM_Printing */
$GLOBALS["SYSTEM_PRINTING"][$tab[$i]]=new $tab[$i]();
}
else if( ($GLOBALS["SYSTEM_TEMPLATE"]->IsMxBloc($tab[$i])) )
{
/* On suppose que le Printing existent (test dans doListPrinting) */
include_once($this->sourceDir.$tab[$i]."/".$tab[$i].".php");
/* On créer une instance pour le Printing sous SYSTEM_Printing */
$GLOBALS["SYSTEM_PRINTING"][$tab[$i]]=new $tab[$i]();
}
}
return true;
}
/**
* execPrinting : appel pour tous les printing leur methode __print()
* @access public
* @return booleen
*/
function execPrinting()
{
if (!Isset($GLOBALS['SYSTEM_PRINTING']))
$this->doLoadPrinting();
$tab=$this->doListPrinting();
for ($i=0; $i<count($tab); $i++)
{
/* evite les problemes si les paths ne sont pas réinitialisés */
$GLOBALS["SYSTEM_TEMPLATE"]->WithMxPath("");
/* Gére en fonction de la template si le flag existe */
if ( ($GLOBALS["SYSTEM_TEMPLATE"]->IsMxFlag(strtolower($tab[$i]), "text")) )
{
$GLOBALS["SYSTEM_PRINTING"][strtolower($tab[$i])]->__print();
}
else if( ($GLOBALS["SYSTEM_TEMPLATE"]->IsMxBloc(strtolower($tab[$i]))) )
{
$GLOBALS["SYSTEM_PRINTING"][strtolower($tab[$i])]->__print();
}
}
return true;
}
}
?>