Linux vmi284606.contaboserver.net 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
Apache/2.4.57 (Ubuntu)
: 167.86.127.34 | : 216.73.217.51
Cant Read [ /etc/named.conf ]
7.2.24-0ubuntu0.18.04.17
root
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
var /
www /
html /
osticket /
upload /
include /
[ HOME SHELL ]
Name
Size
Permission
Action
cli
[ DIR ]
drwxr-xr-x
client
[ DIR ]
drwxr-xr-x
config
[ DIR ]
drwxr-xr-x
fpdf
[ DIR ]
drwxr-xr-x
i18n
[ DIR ]
drwxr-xr-x
mpdf
[ DIR ]
drwxr-xr-x
pear
[ DIR ]
drwxr-xr-x
plugins
[ DIR ]
drwxr-xr-x
staff
[ DIR ]
drwxr-xr-x
upgrader
[ DIR ]
drwxr-xr-x
.MANIFEST
163.74
KB
-rw-r--r--
.htaccess
14
B
-rw-r--r--
JSON.php
33.13
KB
-rw-r--r--
PasswordHash.php
6.92
KB
-rw-r--r--
Spyc.php
31.73
KB
-rw-r--r--
UniversalClassLoader.php
8.61
KB
-rw-r--r--
ajax.admin.php
7.21
KB
-rw-r--r--
ajax.config.php
4.55
KB
-rw-r--r--
ajax.content.php
9.47
KB
-rw-r--r--
ajax.draft.php
12.72
KB
-rw-r--r--
ajax.export.php
1006
B
-rw-r--r--
ajax.filter.php
874
B
-rw-r--r--
ajax.forms.php
13.3
KB
-rw-r--r--
ajax.i18n.php
4.91
KB
-rw-r--r--
ajax.kbase.php
2.93
KB
-rw-r--r--
ajax.note.php
2.05
KB
-rw-r--r--
ajax.orgs.php
11.7
KB
-rw-r--r--
ajax.schedule.php
4.29
KB
-rw-r--r--
ajax.search.php
12.35
KB
-rw-r--r--
ajax.sequence.php
3.2
KB
-rw-r--r--
ajax.staff.php
7.84
KB
-rw-r--r--
ajax.tasks.php
30.25
KB
-rw-r--r--
ajax.thread.php
8.89
KB
-rw-r--r--
ajax.tickets.php
74
KB
-rw-r--r--
ajax.tips.php
1.66
KB
-rw-r--r--
ajax.upgrader.php
2.24
KB
-rw-r--r--
ajax.users.php
17.8
KB
-rw-r--r--
api.cron.php
909
B
-rw-r--r--
api.tickets.php
8.26
KB
-rw-r--r--
class.ajax.php
1.42
KB
-rw-r--r--
class.api.php
13.14
KB
-rw-r--r--
class.app.php
1.47
KB
-rw-r--r--
class.attachment.php
6.87
KB
-rw-r--r--
class.auth.php
43.91
KB
-rw-r--r--
class.avatar.php
6.43
KB
-rw-r--r--
class.banlist.php
2.54
KB
-rw-r--r--
class.base32.php
4.06
KB
-rw-r--r--
class.businesshours.php
6.72
KB
-rw-r--r--
class.canned.php
8.58
KB
-rw-r--r--
class.captcha.php
1.73
KB
-rw-r--r--
class.category.php
11.04
KB
-rw-r--r--
class.charset.php
3.4
KB
-rw-r--r--
class.cli.php
9.48
KB
-rw-r--r--
class.client.php
15.02
KB
-rw-r--r--
class.collaborator.php
5.44
KB
-rw-r--r--
class.company.php
2.65
KB
-rw-r--r--
class.config.php
58.51
KB
-rw-r--r--
class.cron.php
3.54
KB
-rw-r--r--
class.crypto.php
18.96
KB
-rw-r--r--
class.csrf.php
2.36
KB
-rw-r--r--
class.dept.php
32.39
KB
-rw-r--r--
class.dispatcher.php
6.72
KB
-rw-r--r--
class.draft.php
6.25
KB
-rw-r--r--
class.dynamic_forms.php
62.12
KB
-rw-r--r--
class.email.php
18.09
KB
-rw-r--r--
class.error.php
1.69
KB
-rw-r--r--
class.export.php
31.8
KB
-rw-r--r--
class.faq.php
15.05
KB
-rw-r--r--
class.file.php
32.41
KB
-rw-r--r--
class.filter.php
27.75
KB
-rw-r--r--
class.filter_action.php
20.27
KB
-rw-r--r--
class.format.php
40.68
KB
-rw-r--r--
class.forms.php
183.13
KB
-rw-r--r--
class.http.php
5.52
KB
-rw-r--r--
class.i18n.php
24.2
KB
-rw-r--r--
class.import.php
6.44
KB
-rw-r--r--
class.json.php
2.69
KB
-rw-r--r--
class.knowledgebase.php
5.8
KB
-rw-r--r--
class.list.php
41.85
KB
-rw-r--r--
class.lock.php
4.05
KB
-rw-r--r--
class.log.php
1.54
KB
-rw-r--r--
class.mailer.php
24.05
KB
-rw-r--r--
class.mailfetch.php
37.24
KB
-rw-r--r--
class.mailparse.php
26.7
KB
-rw-r--r--
class.message.php
6.4
KB
-rw-r--r--
class.migrater.php
5.2
KB
-rw-r--r--
class.misc.php
8.15
KB
-rw-r--r--
class.model.php
2.3
KB
-rw-r--r--
class.nav.php
14.14
KB
-rw-r--r--
class.note.php
2.39
KB
-rw-r--r--
class.organization.php
22.44
KB
-rw-r--r--
class.orm.php
119.54
KB
-rw-r--r--
class.osticket.php
18.8
KB
-rw-r--r--
class.ostsession.php
9.82
KB
-rw-r--r--
class.page.php
10.65
KB
-rw-r--r--
class.pagenate.php
5.13
KB
-rw-r--r--
class.passwd.php
1.19
KB
-rw-r--r--
class.pdf.php
3.62
KB
-rw-r--r--
class.plugin.php
23.89
KB
-rw-r--r--
class.priority.php
1.81
KB
-rw-r--r--
class.queue.php
102.01
KB
-rw-r--r--
class.report.php
11.47
KB
-rw-r--r--
class.role.php
11.12
KB
-rw-r--r--
class.schedule.php
46.03
KB
-rw-r--r--
class.search.php
56.26
KB
-rw-r--r--
class.sequence.php
7.27
KB
-rw-r--r--
class.setup.php
3.55
KB
-rw-r--r--
class.signal.php
4.16
KB
-rw-r--r--
class.sla.php
8.64
KB
-rw-r--r--
class.staff.php
52.41
KB
-rw-r--r--
class.task.php
49.97
KB
-rw-r--r--
class.team.php
12.01
KB
-rw-r--r--
class.template.php
23.33
KB
-rw-r--r--
class.thread.php
107.11
KB
-rw-r--r--
class.thread_actions.php
17.08
KB
-rw-r--r--
class.ticket.php
162.72
KB
-rw-r--r--
class.timezone.php
21.94
KB
-rw-r--r--
class.topic.php
19.07
KB
-rw-r--r--
class.translation.php
34.38
KB
-rw-r--r--
class.upgrader.php
13.54
KB
-rw-r--r--
class.user.php
42.45
KB
-rw-r--r--
class.usersession.php
4.99
KB
-rw-r--r--
class.util.php
8.01
KB
-rw-r--r--
class.validator.php
12.05
KB
-rw-r--r--
class.variable.php
11.93
KB
-rw-r--r--
class.xml.php
3.23
KB
-rw-r--r--
class.yaml.php
1.16
KB
-rw-r--r--
htmLawed.php
53.53
KB
-rw-r--r--
html2text.php
33.63
KB
-rw-r--r--
index.php
37
B
-rw-r--r--
mysqli.php
8.55
KB
-rw-r--r--
ost-config.php
5.61
KB
-rw-r--r--
ost-sampleconfig.php
5.62
KB
-rw-r--r--
tnef_decoder.php
19.82
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : class.organization.php
<?php /********************************************************************* class.organization.php Peter Rotich <peter@osticket.com> Jared Hancock <jared@osticket.com> Copyright (c) 2014 osTicket http://www.osticket.com Released under the GNU General Public License WITHOUT ANY WARRANTY. See LICENSE.TXT for details. vim: expandtab sw=4 ts=4 sts=4: **********************************************************************/ require_once(INCLUDE_DIR . 'class.orm.php'); require_once(INCLUDE_DIR . 'class.forms.php'); require_once(INCLUDE_DIR . 'class.dynamic_forms.php'); require_once(INCLUDE_DIR . 'class.user.php'); require_once INCLUDE_DIR . 'class.search.php'; class OrganizationModel extends VerySimpleModel { static $meta = array( 'table' => ORGANIZATION_TABLE, 'pk' => array('id'), 'joins' => array( 'users' => array( 'reverse' => 'User.org', ), 'cdata' => array( 'constraint' => array('id' => 'OrganizationCdata.org_id'), ), 'entries' => array( 'constraint' => array( 'id' => 'DynamicFormEntry.object_id', "'O'" => 'DynamicFormEntry.object_type', ), 'list' => true, ), ), ); const COLLAB_ALL_MEMBERS = 0x0001; const COLLAB_PRIMARY_CONTACT = 0x0002; const ASSIGN_AGENT_MANAGER = 0x0004; const SHARE_PRIMARY_CONTACT = 0x0008; const SHARE_EVERYBODY = 0x0010; const PERM_CREATE = 'org.create'; const PERM_EDIT = 'org.edit'; const PERM_DELETE = 'org.delete'; static protected $perms = array( self::PERM_CREATE => array( 'title' => /* @trans */ 'Create', 'desc' => /* @trans */ 'Ability to create new organizations', 'primary' => true, ), self::PERM_EDIT => array( 'title' => /* @trans */ 'Edit', 'desc' => /* @trans */ 'Ability to manage organizations', 'primary' => true, ), self::PERM_DELETE => array( 'title' => /* @trans */ 'Delete', 'desc' => /* @trans */ 'Ability to delete organizations', 'primary' => true, ), ); var $_manager; function getId() { return $this->id; } function getName() { return $this->name; } function getNumUsers() { return $this->users->count(); } function getAccountManager() { if (!isset($this->_manager)) { if ($this->manager[0] == 't') $this->_manager = Team::lookup(substr($this->manager, 1)); elseif ($this->manager[0] == 's') $this->_manager = Staff::lookup(substr($this->manager, 1)); else $this->_manager = ''; // None. } return $this->_manager; } function getAccountManagerId() { return $this->manager; } function autoAddCollabs() { return $this->check(self::COLLAB_ALL_MEMBERS | self::COLLAB_PRIMARY_CONTACT); } function autoAddPrimaryContactsAsCollabs() { return $this->check(self::COLLAB_PRIMARY_CONTACT); } function autoAddMembersAsCollabs() { return $this->check(self::COLLAB_ALL_MEMBERS); } function autoAssignAccountManager() { return $this->check(self::ASSIGN_AGENT_MANAGER); } function autoFlagChanged($flag, $var) { if (($flag && !$var) || (!$flag && $var)) return true; } function shareWithPrimaryContacts() { return $this->check(self::SHARE_PRIMARY_CONTACT); } function shareWithEverybody() { return $this->check(self::SHARE_EVERYBODY); } function sharingFlagChanged($flag, $var, $title) { if (($flag && !$var) || (!$flag && $var == $title)) return true; } function getUpdateDate() { return $this->updated; } function getCreateDate() { return $this->created; } function check($flag) { return 0 !== ($this->status & $flag); } protected function clearStatus($flag) { return $this->set('status', $this->get('status') & ~$flag); } protected function setStatus($flag) { return $this->set('status', $this->get('status') | $flag); } function allMembers() { return $this->users; } static function getPermissions() { return self::$perms; } } include_once INCLUDE_DIR.'class.role.php'; RolePermission::register(/* @trans */ 'Organizations', OrganizationModel::getPermissions()); class OrganizationCdata extends VerySimpleModel { static $meta = array( 'table' => ORGANIZATION_CDATA_TABLE, 'pk' => array('org_id'), 'joins' => array( 'org' => array( 'constraint' => array('ord_id' => 'OrganizationModel.id'), ), ), ); } class Organization extends OrganizationModel implements TemplateVariable, Searchable { var $_entries; var $_forms; var $_queue; function addDynamicData($data) { $entry = $this->addForm(OrganizationForm::objects()->one(), 1, $data); // FIXME: For some reason, the second save here is required or the // custom data is not properly saved $entry->save(); return $entry; } function getDynamicData($create=true) { if (!isset($this->_entries)) { $this->_entries = DynamicFormEntry::forObject($this->id, 'O')->all(); if (!$this->_entries && $create) { $g = OrganizationForm::getInstance($this->id, true); $g->save(); $this->_entries[] = $g; } } return $this->_entries ?: array(); } function getForms($data=null) { if (!isset($this->_forms)) { $this->_forms = array(); foreach ($this->getDynamicData() as $entry) { $entry->addMissingFields(); if(!$data && ($form = $entry->getDynamicForm()) && $form->get('type') == 'O' ) { foreach ($entry->getFields() as $f) { if ($f->get('name') == 'name') $f->value = $this->getName(); } } $this->_forms[] = $entry; } } return $this->_forms; } function getInfo() { $base = array_filter($this->ht, function ($e) { return !is_object($e); } ); foreach (array( 'collab-all-flag' => Organization::COLLAB_ALL_MEMBERS, 'collab-pc-flag' => Organization::COLLAB_PRIMARY_CONTACT, 'assign-am-flag' => Organization::ASSIGN_AGENT_MANAGER, 'sharing-primary' => Organization::SHARE_PRIMARY_CONTACT, 'sharing-all' => Organization::SHARE_EVERYBODY, ) as $ck=>$flag) { if ($this->check($flag)) $base[$ck] = true; } return $base; } function isMappedToDomain($domain) { if (!$domain || !$this->domain) return false; foreach (explode(',', $this->domain) as $d) { $d = trim($d); if ($d[0] == '.') { // Subdomain syntax (.osticket.com accepts all subdomains of // osticket.com) if (strcasecmp(mb_substr($domain, -mb_strlen($d)), $d) === 0) return true; } elseif (strcasecmp($domain, $d) === 0) { return true; } } return false; } static function forDomain($domain) { if (!$domain) return null; foreach (static::objects()->filter(array( 'domain__gt'=>'', 'domain__contains'=>$domain )) as $org) { if ($org->isMappedToDomain($domain)) { return $org; } } } function addForm($form, $sort=1, $data=null) { $entry = $form->instanciate($sort, $data); $entry->set('object_type', 'O'); $entry->set('object_id', $this->getId()); $entry->save(); return $entry; } function getFilterData() { $vars = array(); foreach ($this->getDynamicData() as $entry) { $vars += $entry->getFilterData(); // Add special `name` field in Org form if ($entry->getDynamicForm()->get('type') != 'O') continue; if ($f = $entry->getField('name')) $vars['field.'.$f->get('id')] = $this->getName(); } return $vars; } function removeUser($user) { if (!$user instanceof User) return false; if (!$user->setOrganization(null, false)) return false; // House cleaning - remove user from org contact..etc $user->setPrimaryContact(false); return $user->save(); } function to_json() { $info = array( 'id' => $this->getId(), 'name' => (string) $this->getName() ); return JsonDataEncoder::encode($info); } function __toString() { return (string) $this->getName(); } function asVar() { return (string) $this->getName(); } function getVar($tag) { $tag = mb_strtolower($tag); foreach ($this->getDynamicData() as $e) if ($a = $e->getAnswer($tag)) return $a; switch ($tag) { case 'members': return new UserList($this->users); case 'manager': return $this->getAccountManager(); case 'contacts': return new UserList($this->users->filter(array( 'status' => User::PRIMARY_ORG_CONTACT ))); } } static function getVarScope() { $base = array( 'contacts' => array('class' => 'UserList', 'desc' => __('Primary Contacts')), 'manager' => __('Account Manager'), 'members' => array('class' => 'UserList', 'desc' => __('Organization Members')), 'name' => __('Name'), ); $extra = VariableReplacer::compileFormScope(OrganizationForm::getInstance()); return $base + $extra; } static function getSearchableFields() { $base = array(); $uform = OrganizationForm::objects()->one(); $base = array(); foreach ($uform->getFields() as $F) { $fname = $F->get('name') ?: ('field_'.$F->get('id')); if (!$F->hasData() || $F->isPresentationOnly()) continue; if (!$F->isStorable()) $base[$fname] = $F; else $base["cdata__{$fname}"] = $F; } return $base; } static function supportsCustomData() { return true; } function updateProfile($vars, &$errors) { if ($vars['domain']) { foreach (explode(',', $vars['domain']) as $d) { if (!Validator::is_email('t@' . trim($d))) { $errors['domain'] = __('Enter a valid email domain, like domain.com'); } } } if ($vars['manager']) { switch ($vars['manager'][0]) { case 's': if ($staff = Staff::lookup(substr($vars['manager'], 1))) break; case 't': if ($vars['manager'][0] == 't' && $team = Team::lookup(substr($vars['manager'], 1))) break; default: $errors['manager'] = __('Select an agent or team from the list'); } } // Attempt to valid & update dynamic data even on errors if (!$this->update($vars, $errors)) $errors['error'] = __('Unable to update organization form'); if ($errors) return false; return $this->save(); } function update($vars, &$errors) { $valid = true; $forms = $this->getForms($vars); foreach ($forms as $entry) { if (!$entry->isValid()) $valid = false; if ($entry->getDynamicForm()->get('type') == 'O' && ($f = $entry->getField('name')) && $f->getClean() && ($o=Organization::lookup(array('name'=>$f->getClean()))) && $o->id != $this->getId()) { $valid = false; $f->addError(__('Organization with the same name already exists')); } } if (!$valid || $errors) return false; // Save dynamic data. foreach ($this->getDynamicData() as $entry) { $fields = $entry->getFields(); foreach ($fields as $field) { $changes = $field->getChanges(); if ((is_array($changes) && $changes[0]) || $changes && !is_array($changes)) { $type = array('type' => 'edited', 'key' => $field->getLabel()); Signal::send('object.edited', $this, $type); } } if ($entry->getDynamicForm()->get('type') == 'O' && ($name = $entry->getField('name')) ) { if ($this->name != $name->getClean()) { $type = array('type' => 'edited', 'key' => 'Name'); Signal::send('object.edited', $this, $type); } $this->name = $name->getClean(); $this->save(); } $entry->setSource($vars); if ($entry->save()) $this->updated = SqlFunction::NOW(); } if ($auditCollabAll = $this->autoFlagChanged($this->autoAddMembersAsCollabs(), $vars['collab-all-flag'])) $key = 'collab-all-flag'; if ($auditCollabPc = $this->autoFlagChanged($this->autoAddPrimaryContactsAsCollabs(), $vars['collab-pc-flag'])) $key = 'collab-pc-flag'; if ($auditAssignAm = $this->autoFlagChanged($this->autoAssignAccountManager(), $vars['assign-am-flag'])) $key = 'assign-am-flag'; if ($auditCollabAll || $auditCollabPc || $auditAssignAm) { $type = array('type' => 'edited', 'key' => $key); Signal::send('object.edited', $this, $type); } foreach ($vars as $key => $value) { // Primary Contacts List Changes if ($key == 'contacts') { $ogContacts = $value; if ($contacts = $this->getVar('contacts')) { $allContacts = array(); foreach ($contacts as $key => $value) $allContacts[] = strval($value->getId()); if ($ogContacts != $allContacts) { $type = array('type' => 'edited', 'key' => 'contacts'); Signal::send('object.edited', $this, $type); } } } if ($key != 'id' && $this->get($key) && $value != $this->get($key)) { $type = array('type' => 'edited', 'key' => $key); Signal::send('object.edited', $this, $type); } } $sharingPrimary = $this->sharingFlagChanged($this->shareWithPrimaryContacts(), $vars['sharing'], 'sharing-primary'); $sharingEverybody = $this->sharingFlagChanged($this->shareWithEverybody(), $vars['sharing'], 'sharing-all'); // Set flags foreach (array( 'collab-all-flag' => Organization::COLLAB_ALL_MEMBERS, 'collab-pc-flag' => Organization::COLLAB_PRIMARY_CONTACT, 'assign-am-flag' => Organization::ASSIGN_AGENT_MANAGER, ) as $ck=>$flag) { if ($vars[$ck]) $this->setStatus($flag); else $this->clearStatus($flag); } foreach (array( 'sharing-primary' => Organization::SHARE_PRIMARY_CONTACT, 'sharing-all' => Organization::SHARE_EVERYBODY, ) as $ck=>$flag) { if (($sharingPrimary || $sharingEverybody) && $vars['sharing'] == $ck) { $type = array('type' => 'edited', 'key' => 'sharing'); Signal::send('object.edited', $this, $type); } if ($vars['sharing'] == $ck) $this->setStatus($flag); else $this->clearStatus($flag); } // Set staff and primary contacts $this->set('domain', $vars['domain']); $this->set('manager', $vars['manager'] ?: ''); if ($vars['contacts'] && is_array($vars['contacts'])) { foreach ($this->allMembers() as $u) { $u->setPrimaryContact(array_search($u->id, $vars['contacts']) !== false); $u->save(); } } else { $members = $this->allMembers(); $members->update(array( 'status' => SqlExpression::bitand( new SqlField('status'), ~User::PRIMARY_ORG_CONTACT) )); } return true; } function delete() { if (!parent::delete()) return false; // Clear organization from session to avoid refetch failure unset($_SESSION[':Q:orgs'], $_SESSION[':O:tickets']); $type = array('type' => 'deleted'); Signal::send('object.deleted', $this, $type); // Remove users from this organization User::objects() ->filter(array('org' => $this)) ->update(array('org_id' => 0)); foreach ($this->getDynamicData(false) as $entry) { if (!$entry->delete()) return false; } return true; } static function getLink($id) { global $thisstaff; if (!$id || !$thisstaff) return false; return ROOT_PATH . sprintf('scp/orgs.php?id=%s', $id); } static function fromVars($vars) { $vars['name'] = Format::striptags($vars['name']); if (!($org = static::lookup(array('name' => $vars['name'])))) { $org = static::create(array( 'name' => $vars['name'], 'updated' => new SqlFunction('NOW'), )); $org->save(true); $org->addDynamicData($vars); } Signal::send('organization.created', $org); $type = array('type' => 'created'); Signal::send('object.created', $org, $type); return $org; } static function fromForm($form) { if (!$form) return null; //Validate the form $valid = true; if (!$form->isValid()) $valid = false; // Make sure the name is not in-use if (($field=$form->getField('name')) && $field->getClean() && static::lookup(array('name' => $field->getClean()))) { $field->addError(__('Organization with the same name already exists')); $valid = false; } return $valid ? self::fromVars($form->getClean()) : null; } static function create($vars=false) { $org = new static($vars); $org->created = new SqlFunction('NOW'); $org->setStatus(self::SHARE_PRIMARY_CONTACT); return $org; } // Custom create called by installer/upgrader to load initial data static function __create($ht, &$error=false) { $org = static::create($ht); // Add dynamic data (if any) if ($ht['fields']) { $org->save(true); $org->addDynamicData($ht['fields']); } return $org; } function getTicketsQueue() { global $thisstaff; if (!$this->_queue) { $name = $this->getName(); $this->_queue = new AdhocSearch(array( 'id' => 'adhoc,orgid'.$this->getId(), 'root' => 'T', 'staff_id' => $thisstaff->getId(), 'title' => $name )); $this->_queue->filter(array( 'user__org__name' => $name )); } return $this->_queue; } } class OrganizationForm extends DynamicForm { static $instance; static $form; static $cdata = array( 'table' => ORGANIZATION_CDATA_TABLE, 'object_id' => 'org_id', 'object_type' => ObjectModel::OBJECT_TYPE_ORG, ); static function objects() { $os = parent::objects(); return $os->filter(array('type'=>'O')); } static function getDefaultForm() { if (!isset(static::$form)) { if (($o = static::objects()) && $o[0]) static::$form = $o[0]; else //TODO: Remove the code below and move it to task?? static::$form = self::__loadDefaultForm(); } return static::$form; } static function getInstance($object_id=0, $new=false, $data=null) { if ($new || !isset(static::$instance)) static::$instance = static::getDefaultForm()->instanciate(1, $data); static::$instance->object_type = 'O'; if ($object_id) static::$instance->object_id = $object_id; return static::$instance; } static function __loadDefaultForm() { require_once(INCLUDE_DIR.'class.i18n.php'); $i18n = new Internationalization(); $tpl = $i18n->getTemplate('form.yaml'); foreach ($tpl->getData() as $f) { if ($f['type'] == 'O') { $form = DynamicForm::create($f); $form->save(); break; } } if (!$form || !($o=static::objects())) return false; // Create sample organization. if (($orgs = $i18n->getTemplate('organization.yaml')->getData())) foreach($orgs as $org) Organization::__create($org); return $o[0]; } } Filter::addSupportedMatches(/*@trans*/ 'Organization Data', function() { $matches = array(); foreach (OrganizationForm::getInstance()->getFields() as $f) { if (!$f->hasData()) continue; $matches['field.'.$f->get('id')] = __('Organization').' / '.$f->getLabel(); if (($fi = $f->getImpl()) && $fi->hasSubFields()) { foreach ($fi->getSubFields() as $p) { $matches['field.'.$f->get('id').'.'.$p->get('id')] = __('Organization').' / '.$f->getLabel().' / '.$p->getLabel(); } } } return $matches; },40); ?>
Close