Platform  3.1
PHP API documentation
 All Data Structures Namespaces Files Functions Variables Pages
WDoc Class Reference
+ Inheritance diagram for WDoc:
+ Collaboration diagram for WDoc:

Public Member Functions

 __construct ($dbaccess= '', $id= '', $res= '', $dbid=0)
 
 set (Doc &$doc)
 
 getFirstState ()
 
 changeProfil ($newstate)
 
 changeAllocateUser ($newstate)
 
 changeCv ($newstate)
 
 getStateProfil ($state)
 
 getStateProfilAttribute ($state)
 
 getStateMask ($state)
 
 getStateViewControl ($state)
 
 getStateTimers ($state)
 
 getStateMailTemplate ($state)
 
 createProfileAttribute ()
 
 changeState ($newstate, $addcomment="", $force=false, $withcontrol=true, $wm1=true, $wm2=true, $wneed=true)
 
 getFollowingStates ($noVerifyDomain=false)
 
 getStates ()
 
 getColor ($state, $def="")
 
 getActivity ($state, $def="")
 
 getAction ($state, $def="")
 
 getDocumentWasks ($state, $control=true)
 
 hasWasks ()
 
 workflowSendMailTemplate ($state, $comment="", $tname="")
 
 workflowAttachTimer ($state, $tname="")
 
 changeStateOfDocid ($docid, $newstate, $comment="")
 
 getTransition ($from, $to)
 
 DocControl ($aclname)
 
 Control ($aclname)
 
 postModify ()
 
 getInstanceValue ($attrid, $def=false)
 
- Public Member Functions inherited from Doc
 PostInsert ()
 
 setChanged ()
 
 isChanged ()
 
 PreInsert ()
 
 PreUpdate ()
 
 PostUpdate ()
 
 regenerateTemplate ($aid, $index=-1)
 
 regenerateTemplates ()
 
 updateRelations ($force=false)
 
 getCurSequence ()
 
 nextSequence ($fromid=0)
 
 disableEditControl ()
 
 enableEditControl ()
 
 isRevisable ()
 
 transfertValuesFrom (&$from)
 
 convert ($fromid, $prevalues=array())
 
 canUpdateDoc ()
 
 save (&$info=null, $skipConstraint=false)
 
 store (&$info=null, $skipConstraint=false)
 
 canEdit ($verifyDomain=true)
 
 CanLockFile ()
 
 canLock ()
 
 canUnLock ()
 
 CanUnLockFile ()
 
 isLocked ($my=false)
 
 isConfidential ()
 
 getFamDoc ()
 
 GetFreedomFromTitle ($title)
 
 getParamValue ($idp, $def="")
 
 GetDocWithSameTitle ($key1="title", $key2="")
 
 getRevisionState ($state, $fixed=false)
 
 DeleteTemporary ()
 
 PreDocDelete ()
 
 ReallyDelete ($nopost)
 
 Delete ($really=false, $control=true, $nopost=false)
 
 revive ()
 
 Affect ($array, $more=false)
 
 Init ()
 
 Description ()
 
 GetFathersDoc ()
 
 GetFromDoc ()
 
 GetChildFam ($id=-1, $controlcreate=false)
 
 GetRevisions ($type="LIST", $limit=200)
 
 latestId ($fixed=false, $forcequery=false)
 
 getVersion ()
 
 getLabel ($idAttr)
 
 getProperty ($prop)
 
getAttribute ($idAttr, &$oa=null)
 
getAttributes ()
 
 getDefaultView ($edition=false, $extract="all")
 
 setMask ($mid)
 
 ApplyMask ($mid=0, $force=false)
 
 GetNormalAttributes ($onlyopt=false)
 
 GetFieldAttributes ()
 
 GetActionAttributes ()
 
 GetAbstractAttributes ()
 
 GetTitleAttributes ()
 
 GetProfilAttributes ()
 
 GetInputAttributes ($onlyopt=false)
 
 getParamAttributes ()
 
 GetFileAttributes ($onlyfile=false)
 
 GetFilesProperties ()
 
 hasWaitingFiles ()
 
 resetConvertVaultFile ($attrid, $index)
 
 convertVaultFile ($va, $engine, $isimage=false, $force=false)
 
 GetMenuAttributes ($viewhidden=false)
 
 GetNeededAttributes ($parameters=false)
 
 isCompleteNeeded ()
 
 equal ($a, $b)
 
 GetExportAttributes ($withfile=false, $forcedefault=false)
 
 GetImportAttributes ()
 
 GetSortAttributes ()
 
 RefreshTitle ()
 
 postConstructor ()
 
 PostModify ()
 
 preEdition ()
 
 preConsultation ()
 
 PostCreated ()
 
 PreCreated ()
 
 preImport ()
 
 postImport ()
 
 setTitle ($title)
 
 GetValues ()
 
 getValue ($idAttr, $def="")
 
 getTValue ($idAttr, $def="", $index=-1)
 
 getAValues ($idAttr, $index=-1)
 
 removeArrayRow ($idAttr, $index)
 
 completeArrayRow ($idAttr)
 
 addArrayRow ($idAttr, $tv, $index=-1)
 
 SetValue ($attrid, $value, $index=-1, &$kvalue=null)
 
 recomputeTextFiles ($aid=false)
 
 SetTextValueInFile ($attrid, $value, $ftitle="")
 
 getTextValueFromFile ($attrid, &$text)
 
 saveFile ($attrid, $stream, $ftitle="", $index=-1)
 
 copyFile ($idattr, $newname="", $index=-1)
 
 renameFile ($idattr, $newname, $index=-1)
 
 storeFile ($attrid, $filename, $ftitle="", $index=-1)
 
 storeFiles ($attrid, $filenames, $ftitle="")
 
 duplicateFiles ()
 
 GetRValue ($RidAttr, $def="", $latest=true, $html=false)
 
 getOldValue ($attrid)
 
 getOldValues ()
 
 DeleteValue ($attrid)
 
 GetValueMethod ($value, $attrid= '')
 
 applyMethod ($method, $def="", $index=-1, array $bargs=array(), array $mapArgs=array(), &$err= '')
 
 verifyConstraint ($attrid, $index=-1)
 
 verifyAllConstraints ($stoptofirst=true, &$info=array())
 
 GetFirstFileAttributes ()
 
 AddComment ($comment= '', $level=HISTO_INFO, $code= '', $uid= '')
 
 addLog ($code= '', $arg= '', $comment= '', $level= '', $uid= '')
 
 getHisto ($allrev=false, $code="", $limit=0)
 
 addATag ($tag)
 
 getATag ($tag)
 
 delATag ($tag)
 
 addUTag ($uid, $tag, $datas="", $allrevision=true)
 
 hasUTag ($tag, $allrevision=true)
 
 getUTag ($tag, $allrevision=true, $uid=null)
 
 delUTag ($uid, $tag, $allrevision=true)
 
 delUTags ($uid="")
 
 refreshUTags ()
 
 searchUTags ($tag="", $allrevision=true, $allusers=false)
 
 getWasks ($control=true)
 
 setWaskAnswer ($waskid, $answer)
 
 askIsCompleted ()
 
 getLatestIdWithAsk ()
 
 isFixed ()
 
 addRevision ($comment= '')
 
 changeFreeState ($newstateid, $comment= '', $revision=true)
 
 setState ($newstate, $comment= '', $force=false, $withcontrol=true, $wm1=true, $wm2=true, $wneed=true)
 
 getState ()
 
 getStateColor ($def="")
 
 getStateActivity ($def="")
 
 Copy ($temporary=false, $control=true, $linkfld=false, $copyfile=false)
 
 PreCopy (&$copyfrom)
 
 PostCopy (&$copyfrom)
 
 translate ($docid, $translate)
 
 archive (&$archive)
 
 unArchive (&$archive)
 
 lock ($auto=false, $userid="")
 
 unLock ($auto=false, $force=false)
 
 allocate ($userid, $comment="", $revision=false, $autolock=true)
 
 unallocate ($comment="", $revision=true)
 
 getIcon ($idicon="", $size=null)
 
 changeIcon ($icon)
 
 AddParamRefresh ($in, $out)
 
 getRefreshVisibility ()
 
 SpecRefresh ()
 
 SpecRefreshGen ($onlyspec=false)
 
 Refresh ()
 
 refreshRn ()
 
 urlWhatEncode ($link, $k=-1)
 
 urlWhatEncodeSpec ($l)
 
 getRssLink ()
 
 getFileLink ($attrid, $index=-1, $cache=false, $inline=false)
 
 getDocAnchor ($id, $target="_self", $htmllink=true, $title=false, $js=true, $docrev="latest", $viewIcon=false)
 
 getHtmlValue ($oattr, $value, $target="_self", $htmllink=true, $index=-1, $entities=true, $abstract=false)
 
 getHtmlAttrValue ($attrid, $target="_self", $htmllink=2, $index=-1, $entities=true, $abstract=false)
 
 getTextualAttrValue ($attrId, $index=-1, Array $configuration=array())
 
 getOooAttrValue ($attrid, $target="_self", $htmllink=false, $index=-1)
 
 getOooValue ($oattr, $value, $target="_self", $htmllink=false, $index=-1)
 
 Control ($aclname)
 
 ControlUser ($uid, $aclname)
 
 isAlive ()
 
 SqlTrigger ($onlydrop=false, $code=false)
 
 GetSqlIndex ()
 
 getZoneFile ($zone)
 
 getZoneOption ($zone="")
 
 getZoneTransform ($zone="")
 
 setDefaultValues ($tdefval, $method=true, $forcedefault=false)
 
 setNameAuto ()
 
 SetWriteVisibility ()
 
 getMainPath ()
 
 viewDoc ($layout="FDL:VIEWBODYCARD", $target="_self", $ulink=true, $abstract=false, $changelayout=false)
 
 viewdefaultcard ($target="_self", $ulink=true, $abstract=false, $viewhidden=false)
 
 viewbodycard ($target="_self", $ulink=true, $abstract=false, $onlyopt=false)
 
 viewthumbcard ($target="finfo", $ulink=true, $abstract=true)
 
 viewanswers ($target="finfo", $ulink=true, $abstract=true)
 
 viewproperties ($target="finfo", $ulink=true, $abstract=true)
 
 viewabstractcard ($target="finfo", $ulink=true, $abstract=true)
 
 viewattr ($target="_self", $ulink=true, $abstract=false, $viewhidden=false)
 
 viewprop ($target="_self", $ulink=true, $abstract=false)
 
 setLogicalIdentificator ($name)
 
 viewoptcard ($target="_self", $ulink=true, $abstract=false)
 
 editoptcard ($target="_self", $ulink=true, $abstract=false)
 
 editbodycard ($target="_self", $ulink=true, $abstract=false, $onlyopt=false)
 
 editattr ($withtd=true)
 
 setFamidInLayout ()
 
 vault_filename ($attrid, $path=false, $index=-1)
 
 vault_filename_fromvalue ($fileid, $path=false)
 
 vault_properties (NormalAttribute $attr)
 
 getFileInfo ($filesvalue, $key="")
 
 exportXml (&$xml, $withfile=false, $outfile="", $wident=true, $flat=false, $exportAttributes=array())
 
 toxml ($withdtd=false, $id_doc="")
 
 todtd ()
 
 getSpecTitle ()
 
 refreshDocTitle ($nameId, $nameTitle)
 
 getEmblem ($size=null)
 
 nothing ($a="", $b="", $c="")
 
 getParam ($param, $defv="")
 
 getLastTitle ($id="-1", $def="")
 
 getTitle ($id="-1", $def="", $latest=false)
 
 getHTMLTitle ($id="-1", $def="", $latest=false)
 
 getDocValue ($docid, $attrid, $def=" ", $latest=false)
 
 getDocProp ($docid, $propid, $latest=false)
 
 getMyAttribute ($idattr)
 
 formatString ($fmt)
 
 UpdateVaultIndex ()
 
 attachTimer (&$timer, &$origin=null, $execdate=null)
 
 unattachTimer (&$timer)
 
 resetDynamicTimers ()
 
 unattachAllTimers (&$origin=null)
 
 getAttachedTimers ()
 
 getDomainIds ($user=true, $folderName=false)
 
 lockToDomain ($domainId, $userid= '')
 
 getParentFolderIds ()
 
 updateDomains ()
 
 isInDomain ($user=true, $login= '')
 
- Public Member Functions inherited from DocCtrl
 __construct ($dbaccess= '', $id= '', $res= '', $dbid=0)
 
 isControlled ()
 
 unsetControl ()
 
 removeControl ()
 
 setControl ($userctrl=true)
 
 setProfil ($profid, $fromdocidvalues=0)
 
 computeDProfil ($dprofid=0, $fromdocidvalues=0)
 
 modifyControl ($uid, $aclname, $deletecontrol=false, $negativecontrol=false)
 
 addControl ($uid, $aclname, $negativecontrol=false)
 
 delControl ($uid, $aclname, $negativecontrol=false)
 
 setCvid ($cvid)
 
 controlId ($docid, $aclname)
 
 controlUserId ($docid, $uid, $aclname)
 
 controlUp ($uperm, $aclname)
 
 getUsersForAcl ($aclname)
 
 recomputeProfiledDocument ()
 
 isDocLinked ($title, $docid)
 
 isValidLink ($title, $docid)
 
 canEditMenu ()
 
 controlAclAccess ($acl)
 
 controlActifProfil ()
 
 profilIsActivate ($yes=true)
 
 isRealProfile ()
 
- Public Member Functions inherited from DocLDAP
 OrgInit ()
 
 UseLdap ()
 
 SetLdapParam ()
 
 getDNs ()
 
 setDNs ($ds, $tdn)
 
 RefreshLdapCard ()
 
 DeleteLdapCard ()
 
 getLDAPDN ($rdn, $path="")
 
 getMapAttributes ()
 
 ConvertToLdap ()
 
 getLDAPValue ($idattr, $index="")
 
 ModifyLdapCard ($tinfoldap)
 
 createLDAPDc ($ds, $n)
 
- Public Member Functions inherited from DbObj
 __construct ($dbaccess= '', $id= '', $res= '', $dbid=0)
 
 Select ($id)
 
 getValues ()
 
 AffectColumn ($fields)
 
 Affect ($array)
 
 isAffected ()
 
 Complete ()
 
 PreInsert ()
 
 PostInsert ()
 
 PreUpdate ()
 
 PostUpdate ()
 
 PreDelete ()
 
 PostDelete ()
 
 PreSelect ($id)
 
 PostSelect ($id)
 
 Add ($nopost=false, $nopre=false)
 
 Modify ($nopost=false, $sfields="", $nopre=false)
 
 Delete ($nopost=false)
 
 Adds (&$tcopy, $nopost=false)
 
 lw ($prop)
 
 CloseConnect ()
 
 Create ($nopost=false)
 
 PostInit ()
 
 init_dbid ()
 
 exec_query ($sql, $lvl=0, $prepare=false)
 
 numrows ()
 
 fetch_array ($c, $type=PGSQL_ASSOC)
 
 Update ()
 
 savePoint ($point)
 
 rollbackPoint ($point)
 
 commitPoint ($point)
 

Data Fields

 $acls
 
 $usefor = 'W'
 
 $defDoctype = 'W'
 
 $defClassname = 'WDoc'
 
 $attrPrefix = "WF"
 
 $stateactivity = array()
 
 $transitions = array()
 
 $cycle = array()
 
 $autonext = array()
 
 $firstState = ""
 
 $viewnext = "list"
 
 $nosave = array()
 
 $doc = null
 
- Data Fields inherited from Doc
 $fields
 
 $sup_fields
 
 $infofields
 
 $id
 
 $owner
 
 $title
 
 $revision
 
 $version
 
 $initid
 
 $fromid
 
 $lockdomainid
 
 $domainid
 
 $doctype
 
 $locked
 
 $icon
 
 $lmodify
 
 $profid
 
 $usefor
 
 $revdate
 
 $cdate
 
 $adate
 
 $comment
 
 $classname
 
 $state
 
 $wid
 
 $cvid
 
 $name
 
 $mid = 0
 
 $dprofid = 0
 
 $prelid = 0
 
 $atag
 
 $confidential
 
 $ldapdn
 
 $allocated
 
 $archiveid
 
 $cviews
 
 $eviews
 
 $id_fields
 
 $dbtable = "doc"
 
 $order_by = "title, revision desc"
 
 $fulltextfields
 
 $defProfFamId = FAM_ACCESSDOC
 
 $sqlcreate
 
 $obj_acl = array()
 
 $defaultview = "FDL:VIEWBODYCARD"
 
 $defaultedit = "FDL:EDITBODYCARD"
 
 $defaultabstract = "FDL:VIEWABSTRACTCARD"
 
 $defaultmview = ""
 
 $specialmenu = array()
 
 $defDoctype = 'F'
 
 $isCacheble = false
 
 $paramRefresh = array()
 
- Data Fields inherited from DocCtrl
 $isCacheble = false
 
 $dacls
 
- Data Fields inherited from DocLDAP
 $serveur
 
 $port
 
 $racine
 
 $rootdn
 
 $rootpw
 
- Data Fields inherited from DbObj
 $dbid = - 1
 
 $dbaccess = ''
 
 $fields
 
 $dbtable = ''
 
 $criterias = array()
 
 $sup_fields = array()
 
 $sup_where = array()
 
 $sup_tables = array()
 
 $fulltextfields = array()
 
 $order_by = ""
 
 $isset = false
 
 $msg_err = ''
 
 $err_code = ''
 
 $res = null
 
 $debug = false
 

Additional Inherited Members

- Static Public Member Functions inherited from Doc
static _val2array ($v)
 
static _array2val ($v, $br= '< BR >')
 
static _cmpanswers ($a, $b)
 
static getDate ($daydelta=0, $dayhour="", $daymin="", $getlocale=false)
 
static getTimeDate ($hourdelta=0, $second=false)
 
static getUserName ($withfirst=false)
 
static userDocId ()
 
static getUserId ()
 
static getWhatUserId ()
 
static getSystemUserId ()
 
static parseZone ($zone)
 
- Static Public Attributes inherited from Doc
static $sqlindex
 

Detailed Description

WorkFlow Class

Definition at line 22 of file Class.WDoc.php.

Constructor & Destructor Documentation

__construct (   $dbaccess = '',
  $id = '',
  $res = '',
  $dbid = 0 
)

Definition at line 55 of file Class.WDoc.php.

+ Here is the call graph for this function:

Member Function Documentation

changeAllocateUser (   $newstate)

change allocate user according to state

Parameters
string$newstatenew state of document

Definition at line 111 of file Class.WDoc.php.

+ Here is the call graph for this function:

changeCv (   $newstate)

change cv according to state

Parameters
string$newstatenew state of document

Definition at line 180 of file Class.WDoc.php.

+ Here is the call graph for this function:

changeProfil (   $newstate)

change profil according to state

Parameters
string$newstatenew state of document

Definition at line 94 of file Class.WDoc.php.

+ Here is the call graph for this function:

changeState (   $newstate,
  $addcomment = "",
  $force = false,
  $withcontrol = true,
  $wm1 = true,
  $wm2 = true,
  $wneed = true 
)

change state of a document the method set() must be call before

Parameters
string$newstatethe next state
string$commentcomment to be set in history (describe why change state)
bool$forceis true when it is the second passage (without interactivity)
bool$withcontrolset to false if you want to not verify control permission ot transition
bool$wm1set to false if you want to not apply m1 methods
bool$wm2set to false if you want to not apply m2 methods
bool$needset to false if you want to not verify needed attribute are set
Returns
string error message, if no error empty string

Definition at line 676 of file Class.WDoc.php.

+ Here is the call graph for this function:

changeStateOfDocid (   $docid,
  $newstate,
  $comment = "" 
)

Definition at line 998 of file Class.WDoc.php.

+ Here is the call graph for this function:

Control (   $aclname)

Special control in case of dynamic controlled profil

Definition at line 1039 of file Class.WDoc.php.

+ Here is the call graph for this function:

createProfileAttribute ( )

create of parameters attributes of workflow

Definition at line 257 of file Class.WDoc.php.

+ Here is the call graph for this function:

DocControl (   $aclname)

Definition at line 1032 of file Class.WDoc.php.

+ Here is the call graph for this function:

getAction (   $state,
  $def = "" 
)

get action (localized language)

Deprecated:
Parameters
string$statethe state
Returns
string the text of action

Definition at line 859 of file Class.WDoc.php.

+ Here is the call graph for this function:

getActivity (   $state,
  $def = "" 
)

get activity (localized language)

Parameters
string$statethe state
Returns
string the text of action

Definition at line 845 of file Class.WDoc.php.

+ Here is the call graph for this function:

getColor (   $state,
  $def = "" 
)

get associated color of a state

Parameters
string$statethe state
Returns
string the color (#RGB)

Definition at line 834 of file Class.WDoc.php.

+ Here is the call graph for this function:

getDocumentWasks (   $state,
  $control = true 
)

get askes for a document searcj all WASK document which current user can see for a specific state

Parameters
string$statethe state
bool$controlset to false to not control ask access
Returns
string the text of action

Definition at line 871 of file Class.WDoc.php.

+ Here is the call graph for this function:

getFirstState ( )

Definition at line 86 of file Class.WDoc.php.

getFollowingStates (   $noVerifyDomain = false)

Definition at line 796 of file Class.WDoc.php.

+ Here is the call graph for this function:

getInstanceValue (   $attrid,
  $def = false 
)

get value of instanced document

Parameters
string$attridattribute identificator
Returns
string return the value, false if attribute not exist or document not set

Definition at line 1080 of file Class.WDoc.php.

getStateMailTemplate (   $state)

get the mail templates ids according to state

Parameters
string$state
Returns
array

Definition at line 250 of file Class.WDoc.php.

+ Here is the call graph for this function:

getStateMask (   $state)

get the mask id according to state

Parameters
string$state
Returns
string

Definition at line 223 of file Class.WDoc.php.

+ Here is the call graph for this function:

getStateProfil (   $state)

get the profile id according to state

Parameters
string$state
Returns
string

Definition at line 205 of file Class.WDoc.php.

+ Here is the call graph for this function:

getStateProfilAttribute (   $state)

get the attribute id for profile id according to state

Parameters
string$state
Returns
string

Definition at line 214 of file Class.WDoc.php.

getStates ( )

Definition at line 817 of file Class.WDoc.php.

getStateTimers (   $state)

get the timers ids according to state

Parameters
string$state
Returns
string

Definition at line 241 of file Class.WDoc.php.

+ Here is the call graph for this function:

getStateViewControl (   $state)

get the view control id according to state

Parameters
string$state
Returns
string

Definition at line 232 of file Class.WDoc.php.

+ Here is the call graph for this function:

getTransition (   $from,
  $to 
)

get transition array for the transition between $to and $from states

Parameters
string$tofirst state
string$fromnext state
Returns
array transition array (false if not found)

Definition at line 1020 of file Class.WDoc.php.

hasWasks ( )

verify if askes are defined

Returns
bool true if at least one ask is set in workflow

Definition at line 892 of file Class.WDoc.php.

+ Here is the call graph for this function:

postModify ( )

affect action label

Definition at line 1062 of file Class.WDoc.php.

+ Here is the call graph for this function:

set ( Doc $doc)

affect document instance

Parameters
Doc$doc

Definition at line 75 of file Class.WDoc.php.

+ Here is the call graph for this function:

workflowAttachTimer (   $state,
  $tname = "" 
)

attach timer to a document

Parameters
string$statethe state
array$tnametransition name
Returns
Doc

Definition at line 955 of file Class.WDoc.php.

+ Here is the call graph for this function:

workflowSendMailTemplate (   $state,
  $comment = "",
  $tname = "" 
)

send associated mail of a state

Parameters
string$statethe state
string$commentreason of change state
array$tnametransition name
Returns
Doc

Definition at line 908 of file Class.WDoc.php.

+ Here is the call graph for this function:

Field Documentation

$acls
Initial value:
= array(
"view",
"edit",
"delete"
)

Definition at line 30 of file Class.WDoc.php.

$attrPrefix = "WF"

Definition at line 39 of file Class.WDoc.php.

$autonext = array()

Definition at line 45 of file Class.WDoc.php.

$cycle = array()

Definition at line 44 of file Class.WDoc.php.

$defClassname = 'WDoc'

Definition at line 38 of file Class.WDoc.php.

$defDoctype = 'W'

Definition at line 37 of file Class.WDoc.php.

$doc = null

Definition at line 54 of file Class.WDoc.php.

$firstState = ""

Definition at line 46 of file Class.WDoc.php.

$nosave = array()

Definition at line 48 of file Class.WDoc.php.

$stateactivity = array()

Definition at line 40 of file Class.WDoc.php.

$transitions = array()

Definition at line 43 of file Class.WDoc.php.

$usefor = 'W'

Definition at line 36 of file Class.WDoc.php.

$viewnext = "list"

Definition at line 47 of file Class.WDoc.php.


The documentation for this class was generated from the following file:
← centre documentaire © anakeen - published under CC License - Dynacase