Source for file class.persontypes.php
Documentation is available at class.persontypes.php
* Logique des types de personnes
* LODEL - Logiciel d'Edition ELectronique.
* Home page: http://www.lodel.org
* E-Mail: lodel@lodel.org
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
* 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. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* @author Ghislain Picard
* @copyright 2001-2002, Ghislain Picard, Marin Dacos
* @copyright 2003, Ghislain Picard, Marin Dacos, Luc Santeramo, Nicolas Nutten, Anne Gentil-Beccot
* @copyright 2004, Ghislain Picard, Marin Dacos, Luc Santeramo, Anne Gentil-Beccot, Bruno Cénou
* @copyright 2005, Ghislain Picard, Marin Dacos, Luc Santeramo, Gautier Poupeau, Jean Lamy, Bruno Cénou
* @copyright 2006, Marin Dacos, Luc Santeramo, Bruno Cénou, Jean Lamy, Mikaël Cixous, Sophie Malafosse
* @copyright 2007, Marin Dacos, Bruno Cénou, Sophie Malafosse, Pierre-Alain Mignot
* @licence http://www.gnu.org/copyleft/gpl.html
* @since Fichier ajouté depuis la version 0.8
* @version CVS:$Id: class.persontypes.php 4006 2007-10-05 11:53:41Z malafosse $
* Classe de logique des types de personnes
* @author Ghislain Picard
* @copyright 2001-2002, Ghislain Picard, Marin Dacos
* @copyright 2003, Ghislain Picard, Marin Dacos, Luc Santeramo, Nicolas Nutten, Anne Gentil-Beccot
* @copyright 2004, Ghislain Picard, Marin Dacos, Luc Santeramo, Anne Gentil-Beccot, Bruno Cénou
* @copyright 2005, Ghislain Picard, Marin Dacos, Luc Santeramo, Gautier Poupeau, Jean Lamy, Bruno Cénou
* @copyright 2006, Marin Dacos, Luc Santeramo, Bruno Cénou, Jean Lamy, Mikaël Cixous, Sophie Malafosse
* @copyright 2007, Marin Dacos, Bruno Cénou, Sophie Malafosse, Pierre-Alain Mignot
* @licence http://www.gnu.org/copyleft/gpl.html
* @since Classe ajouté depuis la version 0.8
$this->Logic("persontypes");
* Indique si un objet est protégé en suppression
* Cette méthode indique si un objet, identifié par son identifiant numérique et
* éventuellement son status, ne peut pas être supprimé. Dans le cas où un objet ne serait
* pas supprimable un message est retourné indiquant la cause. Sinon la méthode renvoit le
* @param integer $id identifiant de l'objet
* @param integer $status status de l'objet
* @return false si l'objet n'est pas protégé en suppression, un message sinon
$count= $db->getOne(lq("SELECT count(*) FROM #_TP_persons WHERE idtype='$id' AND status>-64"));
* Construction des balises select HTML pour cet objet
* @param array &$context le contexte, tableau passé par référence
* @param string $var le nom de la variable du select
case 'gui_user_complexity' :
require_once 'commonselect.php';
require_once 'fieldfunc.php';
$g_typefields = $GLOBALS['g_persontypes_fields'];
$types = $dao->findMany('status > 0', '', 'g_type, title');
foreach($types as $type){
$arr[$type->g_type] = $type->title;
$arr2 = array('' => '--');
foreach($g_typefields as $g_type) {
$arr2[$lg_type]= $g_type. " → ". $arr[$lg_type];
* Préparation de l'action Edit
* @param object $dao la DAO utilisée
* @param array &$context le context passé par référence
// gather information for the following
$this->oldvo= $dao->getById($context['id']);
if (!$this->oldvo) die("ERROR: internal error in PersonTypesLogic::_prepareEdit");
* Sauve des données dans des tables liées éventuellement
* Appelé par editAction pour effectuer des opérations supplémentaires de sauvegarde.
* @param object $vo l'objet qui a été créé
* @param array $context le contexte
if ($vo->type!= $this->oldvo->type) {
$GLOBALS['db']->execute(lq("UPDATE #_TP_tablefields SET name='". $vo->type. "' WHERE name='". $this->oldvo->type. "' AND type='persons'")) or dberror();
* Appelé avant l'action delete
* Cette méthode est appelée avant l'action delete pour effectuer des vérifications
* préliminaires à une suppression.
* @param object $dao la DAO utilisée
* @param array &$context le contexte passé par référénce
// gather information for the following
$this->vo= $dao->getById($context['id']);
if (!$this->vo) die("ERROR: internal error in PersonTypesLogic::_prepareDelete");
//require_once("typetypefunc.php");
//typetype_delete("persontype","idpersontype='".$id."'");
$dao->delete("type='persons' AND name='". $this->vo->type. "'");
// begin{publicfields} automatic generation //
* Retourne la liste des champs publics
return array('type' => array('type', '+'),
'class' => array('class', '+'),
'title' => array('text', '+'),
'altertitle' => array('mltext', ''),
'icon' => array('image', ''),
'gui_user_complexity' => array('select', '+'),
'g_type' => array('select', ''),
'style' => array('style', ''),
'tpl' => array('tplfile', ''),
'tplindex' => array('tplfile', ''));
// end{publicfields} automatic generation //
// begin{uniquefields} automatic generation //
* Retourne la liste des champs uniques
return array(array('type'), );
// end{uniquefields} automatic generation //
/*-----------------------------------*/
{ require_once("typetypefunc.php");
loop_typetable ("entitytype","persontype",$context,$funcname,$_POST['edit'] ? $context['entitytype'] : - 1);}
|