2017-05-27 13:46:34 +02:00
< ? php
/* Copyright ( C ) 2007 - 2017 Laurent Destailleur < eldy @ users . sourceforge . net >
* Copyright ( C ) 2014 - 2016 Juanjo Menent < jmenent @ 2 byte . es >
* Copyright ( C ) 2015 Florian Henry < florian . henry @ open - concept . pro >
* Copyright ( C ) 2015 Raphaël Doursenaud < rdoursenaud @ gpcsolutions . fr >
* Copyright ( C ) --- Put here your own copyright and developer email ---
*
* 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 3 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 , see < http :// www . gnu . org / licenses />.
*/
/**
* \file htdocs / modulebuilder / template / class / myobject . class . php
2017-06-17 21:23:52 +02:00
* \ingroup mymodule
* \brief This file is a CRUD class file for MyObject ( Create / Read / Update / Delete )
2017-05-27 13:46:34 +02:00
*/
// Put here all includes required by your class file
require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php' ;
//require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php';
//require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php';
/**
2017-06-17 21:23:52 +02:00
* Class for MyObject
2017-05-27 13:46:34 +02:00
*/
2017-06-17 19:40:48 +02:00
class MyObject extends CommonObject
2017-05-27 13:46:34 +02:00
{
/**
2017-06-18 12:30:18 +02:00
* @ var string ID to identify managed object
2017-05-27 13:46:34 +02:00
*/
2017-06-17 21:23:52 +02:00
public $element = 'myobject' ;
2017-05-27 13:46:34 +02:00
/**
* @ var string Name of table without prefix where object is stored
*/
2017-06-17 21:23:52 +02:00
public $table_element = 'myobject' ;
2017-06-18 12:30:18 +02:00
/**
* @ var array Does this field is linked to a thirdparty ?
*/
2017-07-12 01:55:07 +02:00
protected $isnolinkedbythird = 1 ;
2017-06-18 12:30:18 +02:00
/**
* @ var array Does myobject support multicompany module ? 0 = No test on entity , 1 = Test with field entity , 2 = Test with link by societe
*/
protected $ismultientitymanaged = 1 ;
/**
2017-07-11 20:47:49 +02:00
* @ var string String with name of icon for myobject
*/
2017-06-17 21:23:52 +02:00
public $picto = 'myobject' ;
2017-06-07 16:44:04 +02:00
2017-06-18 12:30:18 +02:00
2017-07-12 11:52:07 +02:00
// BEGIN MODULEBUILDER PROPERTIES
2017-05-27 13:46:34 +02:00
/**
2017-06-18 12:30:18 +02:00
* @ var array Array with all fields and their property
*/
2017-07-11 20:47:49 +02:00
public $fields = array (
2017-07-22 01:21:28 +02:00
'ref' => array ( 'type' => 'varchar(64)' , 'label' => 'Ref' , 'enabled' => 1 , 'visible' => 1 , 'notnull' => true , 'index' => true , 'visible' => 1 , 'position' => 10 , 'searchall' => 1 , 'comment' => 'Reference of object' ),
'entity' => array ( 'type' => 'integer' , 'label' => 'Entity' , 'enabled' => 1 , 'visible' => 0 , 'notnull' => true , 'index' => true , 'visible' => 0 , 'position' => 20 ),
'label' => array ( 'type' => 'varchar(255)' , 'label' => 'Label' , 'enabled' => 1 , 'visible' => 1 , 'position' => 30 , 'visible' => 1 , 'searchall' => 1 ),
'datec' => array ( 'type' => 'datetime' , 'label' => 'DateCreation' , 'enabled' => 1 , 'visible' =>- 1 , 'notnull' => true , 'visible' =>- 1 , 'position' => 500 ),
'tms' => array ( 'type' => 'timestamp' , 'label' => 'DateModification' , 'enabled' => 1 , 'visible' =>- 1 , 'notnull' => true , 'visible' =>- 1 , 'position' => 500 ),
'status' => array ( 'type' => 'integer' , 'label' => 'Status' , 'enabled' => 1 , 'visible' => 1 , 'index' => true , 'visible' => 1 , 'position' => 1000 ),
2017-07-11 20:47:49 +02:00
);
2017-07-12 11:52:07 +02:00
// END MODULEBUILDER PROPERTIES
2017-06-07 16:44:04 +02:00
2017-06-18 12:30:18 +02:00
// If this object has a subtable with lines
2017-05-27 13:46:34 +02:00
2017-06-18 12:30:18 +02:00
/**
* @ var int Name of subtable line
*/
//public $table_element_line = 'myobjectdet';
/**
* @ var int Field with ID of parent key if this field has a parent
*/
//public $fk_element = 'fk_myobject';
/**
* @ var int Name of subtable class that manage subtable lines
*/
//public $class_element_line = 'MyObjectline';
/**
* @ var array Array of child tables ( child tables to delete before deleting a record )
*/
//protected $childtables=array('myobjectdet');
/**
* @ var MyObjectLine [] Array of subtable lines
2017-05-27 13:46:34 +02:00
*/
2017-06-18 12:30:18 +02:00
//public $lines = array();
2017-06-07 16:44:04 +02:00
2017-05-27 13:46:34 +02:00
/**
* Constructor
*
* @ param DoliDb $db Database handler
*/
public function __construct ( DoliDB $db )
{
$this -> db = $db ;
}
/**
* Return a link to the object card ( with optionaly the picto )
*
* @ param int $withpicto Include picto in link ( 0 = No picto , 1 = Include picto into link , 2 = Only picto )
* @ param string $option On what the link point to
* @ param int $notooltip 1 = Disable tooltip
* @ param int $maxlen Max length of visible user name
* @ param string $morecss Add more css on link
* @ return string String with URL
*/
function getNomUrl ( $withpicto = 0 , $option = '' , $notooltip = 0 , $maxlen = 24 , $morecss = '' )
{
global $db , $conf , $langs ;
global $dolibarr_main_authentication , $dolibarr_main_demo ;
global $menumanager ;
if ( ! empty ( $conf -> dol_no_mouse_hover )) $notooltip = 1 ; // Force disable tooltips
2017-06-07 16:44:04 +02:00
2017-05-27 13:46:34 +02:00
$result = '' ;
$companylink = '' ;
$label = '<u>' . $langs -> trans ( " MyModule " ) . '</u>' ;
$label .= '<br>' ;
$label .= '<b>' . $langs -> trans ( 'Ref' ) . ':</b> ' . $this -> ref ;
$url = DOL_URL_ROOT . '/mymodule/' . $this -> table_name . '_card.php?id=' . $this -> id ;
2017-06-07 16:44:04 +02:00
2017-05-27 13:46:34 +02:00
$linkclose = '' ;
if ( empty ( $notooltip ))
{
if ( ! empty ( $conf -> global -> MAIN_OPTIMIZEFORTEXTBROWSER ))
{
$label = $langs -> trans ( " ShowProject " );
$linkclose .= ' alt="' . dol_escape_htmltag ( $label , 1 ) . '"' ;
}
$linkclose .= ' title="' . dol_escape_htmltag ( $label , 1 ) . '"' ;
$linkclose .= ' class="classfortooltip' . ( $morecss ? ' ' . $morecss : '' ) . '"' ;
}
else $linkclose = ( $morecss ? ' class="' . $morecss . '"' : '' );
2017-06-07 16:44:04 +02:00
2017-05-27 13:46:34 +02:00
$linkstart = '<a href="' . $url . '"' ;
$linkstart .= $linkclose . '>' ;
$linkend = '</a>' ;
if ( $withpicto )
{
$result .= ( $linkstart . img_object (( $notooltip ? '' : $label ), 'label' , ( $notooltip ? '' : 'class="classfortooltip"' )) . $linkend );
if ( $withpicto != 2 ) $result .= ' ' ;
}
$result .= $linkstart . $this -> ref . $linkend ;
return $result ;
}
/**
* Retourne le libelle du status d ' un user ( actif , inactif )
*
* @ param int $mode 0 = libelle long , 1 = libelle court , 2 = Picto + Libelle court , 3 = Picto , 4 = Picto + Libelle long , 5 = Libelle court + Picto
* @ return string Label of status
*/
function getLibStatut ( $mode = 0 )
{
return $this -> LibStatut ( $this -> status , $mode );
}
/**
* Return the status
*
* @ param int $status Id status
* @ param int $mode 0 = long label , 1 = short label , 2 = Picto + short label , 3 = Picto , 4 = Picto + long label , 5 = Short label + Picto , 5 = Long label + Picto
* @ return string Label of status
*/
static function LibStatut ( $status , $mode = 0 )
{
global $langs ;
if ( $mode == 0 )
{
$prefix = '' ;
if ( $status == 1 ) return $langs -> trans ( 'Enabled' );
if ( $status == 0 ) return $langs -> trans ( 'Disabled' );
}
if ( $mode == 1 )
{
if ( $status == 1 ) return $langs -> trans ( 'Enabled' );
if ( $status == 0 ) return $langs -> trans ( 'Disabled' );
}
if ( $mode == 2 )
{
if ( $status == 1 ) return img_picto ( $langs -> trans ( 'Enabled' ), 'statut4' ) . ' ' . $langs -> trans ( 'Enabled' );
if ( $status == 0 ) return img_picto ( $langs -> trans ( 'Disabled' ), 'statut5' ) . ' ' . $langs -> trans ( 'Disabled' );
}
if ( $mode == 3 )
{
if ( $status == 1 ) return img_picto ( $langs -> trans ( 'Enabled' ), 'statut4' );
if ( $status == 0 ) return img_picto ( $langs -> trans ( 'Disabled' ), 'statut5' );
}
if ( $mode == 4 )
{
if ( $status == 1 ) return img_picto ( $langs -> trans ( 'Enabled' ), 'statut4' ) . ' ' . $langs -> trans ( 'Enabled' );
if ( $status == 0 ) return img_picto ( $langs -> trans ( 'Disabled' ), 'statut5' ) . ' ' . $langs -> trans ( 'Disabled' );
}
if ( $mode == 5 )
{
if ( $status == 1 ) return $langs -> trans ( 'Enabled' ) . ' ' . img_picto ( $langs -> trans ( 'Enabled' ), 'statut4' );
if ( $status == 0 ) return $langs -> trans ( 'Disabled' ) . ' ' . img_picto ( $langs -> trans ( 'Disabled' ), 'statut5' );
}
if ( $mode == 6 )
{
if ( $status == 1 ) return $langs -> trans ( 'Enabled' ) . ' ' . img_picto ( $langs -> trans ( 'Enabled' ), 'statut4' );
if ( $status == 0 ) return $langs -> trans ( 'Disabled' ) . ' ' . img_picto ( $langs -> trans ( 'Disabled' ), 'statut5' );
}
}
/**
* Initialise object with example values
* Id must be 0 if object instance is a specimen
*
* @ return void
*/
public function initAsSpecimen ()
{
2017-07-12 13:25:18 +02:00
$this -> initAsSpecimenCommon ();
2017-05-27 13:46:34 +02:00
}
}
/**
* Class MyModuleObjectLine
*/
class MyModuleObjectLine
{
/**
* @ var int ID
*/
public $id ;
/**
* @ var mixed Sample line property 1
*/
public $prop1 ;
/**
* @ var mixed Sample line property 2
*/
public $prop2 ;
}