Changeset View
Changeset View
Standalone View
Standalone View
core/kernel/db/db_event_handler.php
Show First 20 Lines • Show All 230 Lines • ▼ Show 20 Line(s) | |||||
if ( preg_match('/^auto-(.*)/', $event->Special, $regs) && $this->Application->prefixRegistred($regs[1]) ) { | if ( preg_match('/^auto-(.*)/', $event->Special, $regs) && $this->Application->prefixRegistred($regs[1]) ) { | ||||
// <inp2:lang.auto-phrase_Field name="DateFormat"/> - returns field DateFormat value from language (LanguageId is extracted from current phrase object) | // <inp2:lang.auto-phrase_Field name="DateFormat"/> - returns field DateFormat value from language (LanguageId is extracted from current phrase object) | ||||
$main_object = $this->Application->recallObject($regs[1]); | $main_object = $this->Application->recallObject($regs[1]); | ||||
/* @var $main_object kDBItem */ | /* @var $main_object kDBItem */ | ||||
return $main_object->GetDBField($event->getUnitConfig()->getIDField()); | return $main_object->GetDBField($event->getUnitConfig()->getIDField()); | ||||
} | } | ||||
if ( !$this->Application->isWebRequest() ) { | |||||
throw new LogicException( | |||||
'The "' . $event->getPrefixSpecial() . '" object can\'t be auto-loaded from CLI request.' | |||||
); | |||||
} | |||||
// 1. get id from post (used in admin) | // 1. get id from post (used in admin) | ||||
$ret = $this->Application->GetVar($event->getPrefixSpecial(true) . '_id'); | $ret = $this->Application->GetVar($event->getPrefixSpecial(true) . '_id'); | ||||
if ( ($ret !== false) && ($ret != '') ) { | if ( ($ret !== false) && ($ret != '') ) { | ||||
$event->setEventParam(kEvent::FLAG_ID_FROM_REQUEST, true); | $event->setEventParam(kEvent::FLAG_ID_FROM_REQUEST, true); | ||||
return $ret; | return $ret; | ||||
} | } | ||||
Show All 38 Lines | |||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @param Array $direct_ids | * @param Array $direct_ids | ||||
* @return Array | * @return Array | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function StoreSelectedIDs(kEvent $event, $direct_ids = NULL) | protected function StoreSelectedIDs(kEvent $event, $direct_ids = NULL) | ||||
{ | { | ||||
if ( !$this->Application->isWebRequest() ) { | |||||
throw new LogicException('Web Request related method "' . __METHOD__ . '" was called from CLI mode.'); | |||||
} | |||||
$wid = $this->Application->GetTopmostWid($event->Prefix); | $wid = $this->Application->GetTopmostWid($event->Prefix); | ||||
$session_name = rtrim($event->getPrefixSpecial() . '_selected_ids_' . $wid, '_'); | $session_name = rtrim($event->getPrefixSpecial() . '_selected_ids_' . $wid, '_'); | ||||
$ids = $event->getEventParam('ids'); | $ids = $event->getEventParam('ids'); | ||||
if ( isset($direct_ids) || ($ids !== false) ) { | if ( isset($direct_ids) || ($ids !== false) ) { | ||||
// save ids directly if they given + reset array indexes | // save ids directly if they given + reset array indexes | ||||
$resulting_ids = $direct_ids ? array_values($direct_ids) : ($ids ? array_values($ids) : false); | $resulting_ids = $direct_ids ? array_values($direct_ids) : ($ids ? array_values($ids) : false); | ||||
if ( $resulting_ids ) { | if ( $resulting_ids ) { | ||||
▲ Show 20 Lines • Show All 56 Lines • ▼ Show 20 Line(s) | |||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @param bool $from_session return ids from session (written, when editing was started) | * @param bool $from_session return ids from session (written, when editing was started) | ||||
* @return Array | * @return Array | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function getSelectedIDs(kEvent $event, $from_session = false) | protected function getSelectedIDs(kEvent $event, $from_session = false) | ||||
{ | { | ||||
if ( !$this->Application->isWebRequest() ) { | |||||
throw new LogicException('Web Request related method "' . __METHOD__ . '" was called from CLI mode.'); | |||||
} | |||||
if ( $from_session ) { | if ( $from_session ) { | ||||
$wid = $this->Application->GetTopmostWid($event->Prefix); | $wid = $this->Application->GetTopmostWid($event->Prefix); | ||||
$var_name = rtrim($event->getPrefixSpecial() . '_selected_ids_' . $wid, '_'); | $var_name = rtrim($event->getPrefixSpecial() . '_selected_ids_' . $wid, '_'); | ||||
$ret = $this->Application->RecallVar($var_name); | $ret = $this->Application->RecallVar($var_name); | ||||
} | } | ||||
else { | else { | ||||
$ret = $this->Application->GetVar($event->getPrefixSpecial() . '_selected_ids'); | $ret = $this->Application->GetVar($event->getPrefixSpecial() . '_selected_ids'); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 42 Lines • ▼ Show 20 Line(s) | |||||
* from Application variables and Session | * from Application variables and Session | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function clearSelectedIDs(kEvent $event) | protected function clearSelectedIDs(kEvent $event) | ||||
{ | { | ||||
if ( !$this->Application->isWebRequest() ) { | |||||
throw new LogicException('Web Request related method "' . __METHOD__ . '" was called from CLI mode.'); | |||||
} | |||||
$prefix_special = $event->getPrefixSpecial(); | $prefix_special = $event->getPrefixSpecial(); | ||||
$ids = implode(',', $this->getSelectedIDs($event, true)); | $ids = implode(',', $this->getSelectedIDs($event, true)); | ||||
$event->setEventParam('ids', $ids); | $event->setEventParam('ids', $ids); | ||||
$wid = $this->Application->GetTopmostWid($event->Prefix); | $wid = $this->Application->GetTopmostWid($event->Prefix); | ||||
$session_name = rtrim($prefix_special . '_selected_ids_' . $wid, '_'); | $session_name = rtrim($prefix_special . '_selected_ids_' . $wid, '_'); | ||||
Show All 14 Lines | |||||
protected function dbBuild(&$object, kEvent $event) | protected function dbBuild(&$object, kEvent $event) | ||||
{ | { | ||||
// for permission checking inside item/list build events | // for permission checking inside item/list build events | ||||
$event->setEventParam('top_prefix', $this->Application->GetTopmostPrefix($event->Prefix, true)); | $event->setEventParam('top_prefix', $this->Application->GetTopmostPrefix($event->Prefix, true)); | ||||
if ( $event->getEventParam('form_name') !== false ) { | if ( $event->getEventParam('form_name') !== false ) { | ||||
$form_name = $event->getEventParam('form_name'); | $form_name = $event->getEventParam('form_name'); | ||||
} | } | ||||
else { | elseif ( $this->Application->isWebRequest() ) { | ||||
$request_forms = $this->Application->GetVar('forms', Array ()); | $request_forms = $this->Application->GetVar('forms', array()); | ||||
$form_name = (string)getArrayValue($request_forms, $object->getPrefixSpecial()); | $form_name = (string)getArrayValue($request_forms, $object->getPrefixSpecial()); | ||||
} | } | ||||
else { | |||||
$form_name = null; | |||||
} | |||||
$object->Configure($event->getEventParam('populate_ml_fields') || $event->getUnitConfig()->getPopulateMlFields(), $form_name); | $object->Configure($event->getEventParam('populate_ml_fields') || $event->getUnitConfig()->getPopulateMlFields(), $form_name); | ||||
$this->PrepareObject($object, $event); | $this->PrepareObject($object, $event); | ||||
$parent_event = $event->getEventParam('parent_event'); | $parent_event = $event->getEventParam('parent_event'); | ||||
if ( is_object($parent_event) ) { | if ( is_object($parent_event) ) { | ||||
$object->setParentEvent($parent_event); | $object->setParentEvent($parent_event); | ||||
} | } | ||||
// force live table if specified or is original item | // force live table if specified or is original item | ||||
$live_table = $event->getEventParam('live_table') || $event->Special == 'original'; | $live_table = $event->getEventParam('live_table') || $event->Special == 'original'; | ||||
if ( $this->UseTempTables($event) && !$live_table ) { | if ( $this->UseTempTables($event) && !$live_table ) { | ||||
$object->SwitchToTemp(); | $object->SwitchToTemp(); | ||||
} | } | ||||
$this->Application->setEvent($event->getPrefixSpecial(), ''); | $this->Application->setEvent($event->getPrefixSpecial(), ''); | ||||
$save_event = $this->UseTempTables($event) && $this->Application->GetTopmostPrefix($event->Prefix) == $event->Prefix ? 'OnSave' : 'OnUpdate'; | if ( $this->Application->isWebRequest() ) { | ||||
$is_topmost_prefix = $this->Application->GetTopmostPrefix($event->Prefix) == $event->Prefix; | |||||
$save_event = $this->UseTempTables($event) && $is_topmost_prefix ? 'OnSave' : 'OnUpdate'; | |||||
$this->Application->SetVar($event->getPrefixSpecial() . '_SaveEvent', $save_event); | $this->Application->SetVar($event->getPrefixSpecial() . '_SaveEvent', $save_event); | ||||
} | } | ||||
} | |||||
/** | /** | ||||
* Checks, that currently loaded item is allowed for viewing (non permission-based) | * Checks, that currently loaded item is allowed for viewing (non permission-based) | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return bool | * @return bool | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 66 Lines • ▼ Show 20 Line(s) | |||||
$skip_autoload = $event->getEventParam('skip_autoload'); | $skip_autoload = $event->getEventParam('skip_autoload'); | ||||
if ( $auto_load && !$skip_autoload ) { | if ( $auto_load && !$skip_autoload ) { | ||||
$perm_status = true; | $perm_status = true; | ||||
$user_id = $this->Application->InitDone ? $this->Application->RecallVar('user_id') : USER_ROOT; | $user_id = $this->Application->InitDone ? $this->Application->RecallVar('user_id') : USER_ROOT; | ||||
$event->setEventParam('top_prefix', $this->Application->GetTopmostPrefix($event->Prefix, true)); | $event->setEventParam('top_prefix', $this->Application->GetTopmostPrefix($event->Prefix, true)); | ||||
$status_checked = false; | $status_checked = false; | ||||
if ( $user_id == USER_ROOT || $this->CheckPermission($event) ) { | if ( $this->Application->permissionCheckingDisabled($user_id) || $this->CheckPermission($event) ) { | ||||
// don't autoload item, when user doesn't have view permission | // Don't autoload item, when user doesn't have view permission. | ||||
$this->LoadItem($event); | $this->LoadItem($event); | ||||
$status_checked = true; | $status_checked = true; | ||||
$editing_mode = defined('EDITING_MODE') ? EDITING_MODE : false; | $editing_mode = defined('EDITING_MODE') ? EDITING_MODE : false; | ||||
$id_from_request = $event->getEventParam(kEvent::FLAG_ID_FROM_REQUEST); | $id_from_request = $event->getEventParam(kEvent::FLAG_ID_FROM_REQUEST); | ||||
if ( $user_id != USER_ROOT | if ( !$this->Application->permissionCheckingDisabled($user_id) | ||||
&& !$this->Application->isAdmin | && !$this->Application->isAdmin | ||||
&& !($editing_mode || ($id_from_request ? $this->checkItemStatus($event) : true)) | && !($editing_mode || ($id_from_request ? $this->checkItemStatus($event) : true)) | ||||
) { | ) { | ||||
// non-root user AND on front-end AND (not editing mode || incorrect status) | // Permissions are being checked AND on Front-End AND (not editing mode || incorrect status). | ||||
$perm_status = false; | $perm_status = false; | ||||
} | } | ||||
} | } | ||||
else { | else { | ||||
$perm_status = false; | $perm_status = false; | ||||
} | } | ||||
if ( !$perm_status ) { | if ( !$perm_status ) { | ||||
▲ Show 20 Lines • Show All 68 Lines • ▼ Show 20 Line(s) | |||||
$parent_event = $event->getEventParam('parent_event'); | $parent_event = $event->getEventParam('parent_event'); | ||||
/* @var $parent_event kEvent */ | /* @var $parent_event kEvent */ | ||||
if ( is_object($parent_event) ) { | if ( is_object($parent_event) ) { | ||||
$object->setParentEvent($parent_event); | $object->setParentEvent($parent_event); | ||||
} | } | ||||
$object->BuildTables($event->Prefix, $this->getSelectedIDs($event)); | $object->BuildTables( | ||||
$event->Prefix, | |||||
$this->Application->isWebRequest() ? $this->getSelectedIDs($event) : array() | |||||
); | |||||
} | } | ||||
/** | /** | ||||
* Checks, that object used in event should use temp tables | * Checks, that object used in event should use temp tables | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return bool | * @return bool | ||||
* @access protected | * @access protected | ||||
▲ Show 20 Lines • Show All 71 Lines • ▼ Show 20 Line(s) | |||||
$object->setSelectSQL($sql); | $object->setSelectSQL($sql); | ||||
$object->reset(); | $object->reset(); | ||||
if ( $event->getEventParam('skip_parent_filter') === false ) { | if ( $event->getEventParam('skip_parent_filter') === false ) { | ||||
$object->linkToParent($this->getMainSpecial($event)); | $object->linkToParent($this->getMainSpecial($event)); | ||||
} | } | ||||
if ( $this->Application->isWebRequest() ) { | |||||
$this->AddFilters($event); | $this->AddFilters($event); | ||||
$this->SetCustomQuery($event); // new!, use this for dynamic queries based on specials for ex. | } | ||||
$this->SetCustomQuery($event); // New!, use this for dynamic queries based on specials for ex. | |||||
$this->SetPagination($event); | $this->SetPagination($event); | ||||
$this->SetSorting($event); | $this->SetSorting($event); | ||||
$actions = $this->Application->recallObject('kActions'); | $actions = $this->Application->recallObject('kActions'); | ||||
/* @var $actions Params */ | /* @var $actions Params */ | ||||
$actions->Set('remove_specials[' . $event->getPrefixSpecial() . ']', '0'); | $actions->Set('remove_specials[' . $event->getPrefixSpecial() . ']', '0'); | ||||
$actions->Set($event->getPrefixSpecial() . '_GoTab', ''); | $actions->Set($event->getPrefixSpecial() . '_GoTab', ''); | ||||
▲ Show 20 Lines • Show All 134 Lines • ▼ Show 20 Line(s) | |||||
protected function SetPagination(kEvent $event) | protected function SetPagination(kEvent $event) | ||||
{ | { | ||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBList */ | /* @var $object kDBList */ | ||||
// get PerPage (forced -> session -> config -> 10) | // get PerPage (forced -> session -> config -> 10) | ||||
$object->SetPerPage($this->getPerPage($event)); | $object->SetPerPage($this->getPerPage($event)); | ||||
// main lists on Front-End have special get parameter for page | if ( !$this->Application->isWebRequest() ) { | ||||
$object->SetPage(1); | |||||
return; | |||||
} | |||||
// Main lists on Front-End have special get parameter for page. | |||||
$page = $object->isMainList() ? $this->Application->GetVar('page') : false; | $page = $object->isMainList() ? $this->Application->GetVar('page') : false; | ||||
if ( !$page ) { | if ( !$page ) { | ||||
// page is given in "env" variable for given prefix | // page is given in "env" variable for given prefix | ||||
$page = $this->Application->GetVar($event->getPrefixSpecial() . '_Page'); | $page = $this->Application->GetVar($event->getPrefixSpecial() . '_Page'); | ||||
} | } | ||||
if ( !$page && $event->Special ) { | if ( !$page && $event->Special ) { | ||||
▲ Show 20 Lines • Show All 60 Lines • ▼ Show 20 Line(s) | |||||
$per_page = $this->Application->ConfigValue($config_mapping['PerPage']); | $per_page = $this->Application->ConfigValue($config_mapping['PerPage']); | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
return $per_page; | return $per_page; | ||||
} | } | ||||
if ( $this->Application->isWebRequest() ) { | |||||
if ( !$per_page && $object->isMainList() ) { | if ( !$per_page && $object->isMainList() ) { | ||||
// main lists on Front-End have special get parameter for per-page | // Main lists on Front-End have special get parameter for per-page. | ||||
$per_page = $this->Application->GetVar('per_page'); | $per_page = $this->Application->GetVar('per_page'); | ||||
} | } | ||||
if ( !$per_page ) { | if ( !$per_page ) { | ||||
// per-page is given in "env" variable for given prefix | // Per-page is given in "env" variable for given prefix. | ||||
$per_page = $this->Application->GetVar($event->getPrefixSpecial() . '_PerPage'); | $per_page = $this->Application->GetVar($event->getPrefixSpecial() . '_PerPage'); | ||||
} | } | ||||
if ( !$per_page && $event->Special ) { | if ( !$per_page && $event->Special ) { | ||||
// when not part of env, then variables like "prefix.special_PerPage" are | // When not part of env, then variables like "prefix.special_PerPage" are | ||||
// replaced (by PHP) with "prefix_special_PerPage", so check for that too | // replaced (by PHP) with "prefix_special_PerPage", so check for that too. | ||||
$per_page = $this->Application->GetVar($event->getPrefixSpecial(true) . '_PerPage'); | $per_page = $this->Application->GetVar($event->getPrefixSpecial(true) . '_PerPage'); | ||||
} | } | ||||
if ( !$object->isMainList() ) { | if ( !$object->isMainList() ) { | ||||
// per-page given in env and not in main list | // Per-page given in env and not in main list. | ||||
$view_name = $this->Application->RecallVar($event->getPrefixSpecial() . '_current_view'); | $view_name = $this->Application->RecallVar($event->getPrefixSpecial() . '_current_view'); | ||||
if ( $per_page ) { | if ( $per_page ) { | ||||
// per-page found in request -> store in session and persistent session | // Per-page found in request -> store in session and persistent session. | ||||
$this->setListSetting($event, 'PerPage', $per_page); | $this->setListSetting($event, 'PerPage', $per_page); | ||||
} | } | ||||
else { | else { | ||||
// per-page not found in request -> get from pesistent session (or session) | // Per-page not found in request -> get from pesistent session (or session). | ||||
$per_page = $this->getListSetting($event, 'PerPage'); | $per_page = $this->getListSetting($event, 'PerPage'); | ||||
} | } | ||||
} | } | ||||
} | |||||
if ( !$per_page ) { | if ( !$per_page ) { | ||||
// per page wan't found in request/session/persistent session | // per page wan't found in request/session/persistent session | ||||
$list_helper = $this->Application->recallObject('ListHelper'); | $list_helper = $this->Application->recallObject('ListHelper'); | ||||
/* @var $list_helper ListHelper */ | /* @var $list_helper ListHelper */ | ||||
// allow to override default per-page value from tag | // allow to override default per-page value from tag | ||||
$default_per_page = $event->getEventParam('default_per_page'); | $default_per_page = $event->getEventParam('default_per_page'); | ||||
Show All 18 Lines | |||||
*/ | */ | ||||
protected function SetSorting(kEvent $event) | protected function SetSorting(kEvent $event) | ||||
{ | { | ||||
$event->setPseudoClass('_List'); | $event->setPseudoClass('_List'); | ||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBList */ | /* @var $object kDBList */ | ||||
$cur_sort1 = $cur_sort1_dir = $cur_sort2 = $cur_sort2_dir = false; | |||||
if ( $this->Application->isWebRequest() ) { | |||||
if ( $object->isMainList() ) { | if ( $object->isMainList() ) { | ||||
$sort_by = $this->Application->GetVar('sort_by'); | $sort_by = $this->Application->GetVar('sort_by'); | ||||
$cur_sort1 = $cur_sort1_dir = $cur_sort2 = $cur_sort2_dir = false; | |||||
if ( $sort_by ) { | if ( $sort_by ) { | ||||
$sortings = explode('|', $sort_by); | $sortings = explode('|', $sort_by); | ||||
list ($cur_sort1, $cur_sort1_dir) = explode(',', $sortings[0]); | list ($cur_sort1, $cur_sort1_dir) = explode(',', $sortings[0]); | ||||
if ( isset($sortings[1]) ) { | if ( isset($sortings[1]) ) { | ||||
list ($cur_sort2, $cur_sort2_dir) = explode(',', $sortings[1]); | list ($cur_sort2, $cur_sort2_dir) = explode(',', $sortings[1]); | ||||
} | } | ||||
} | } | ||||
} | } | ||||
else { | else { | ||||
$sorting_settings = $this->getListSetting($event, 'Sortings'); | $sorting_settings = $this->getListSetting($event, 'Sortings'); | ||||
$cur_sort1 = getArrayValue($sorting_settings, 'Sort1'); | $cur_sort1 = getArrayValue($sorting_settings, 'Sort1'); | ||||
$cur_sort1_dir = getArrayValue($sorting_settings, 'Sort1_Dir'); | $cur_sort1_dir = getArrayValue($sorting_settings, 'Sort1_Dir'); | ||||
$cur_sort2 = getArrayValue($sorting_settings, 'Sort2'); | $cur_sort2 = getArrayValue($sorting_settings, 'Sort2'); | ||||
$cur_sort2_dir = getArrayValue($sorting_settings, 'Sort2_Dir'); | $cur_sort2_dir = getArrayValue($sorting_settings, 'Sort2_Dir'); | ||||
} | } | ||||
$tag_sort_by = $event->getEventParam('sort_by'); | $tag_sort_by = $event->getEventParam('sort_by'); | ||||
if ( $tag_sort_by ) { | if ( $tag_sort_by ) { | ||||
if ( $tag_sort_by == 'random' ) { | if ( $tag_sort_by == 'random' ) { | ||||
$object->AddOrderField('RAND()', ''); | $object->AddOrderField('RAND()', ''); | ||||
} | } | ||||
else { | else { | ||||
// multiple sortings could be specified at once | // Multiple sortings could be specified at once. | ||||
$tag_sort_by = explode('|', $tag_sort_by); | $tag_sort_by = explode('|', $tag_sort_by); | ||||
foreach ($tag_sort_by as $sorting_element) { | foreach ( $tag_sort_by as $sorting_element ) { | ||||
list ($by, $dir) = explode(',', $sorting_element); | list ($by, $dir) = explode(',', $sorting_element); | ||||
$object->AddOrderField($by, $dir); | $object->AddOrderField($by, $dir); | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | |||||
$list_sortings = $this->_getDefaultSorting($event); | $list_sortings = $this->_getDefaultSorting($event); | ||||
// use default if not specified in session | // use default if not specified in session | ||||
if ( !$cur_sort1 || !$cur_sort1_dir ) { | if ( !$cur_sort1 || !$cur_sort1_dir ) { | ||||
$sorting = getArrayValue($list_sortings, 'Sorting'); | $sorting = getArrayValue($list_sortings, 'Sorting'); | ||||
if ( $sorting ) { | if ( $sorting ) { | ||||
▲ Show 20 Lines • Show All 811 Lines • ▼ Show 20 Line(s) | |||||
* | * | ||||
* @param string $changes_var_name | * @param string $changes_var_name | ||||
* @param bool $save | * @param bool $save | ||||
* @return void | * @return void | ||||
* @access public | * @access public | ||||
*/ | */ | ||||
public function SaveLoggedChanges($changes_var_name, $save = true) | public function SaveLoggedChanges($changes_var_name, $save = true) | ||||
{ | { | ||||
// Nothing needs to be saved > exit immediately. | |||||
if ( !$save ) { | |||||
return; | |||||
} | |||||
// 1. get changes, that were made | // 1. get changes, that were made | ||||
$changes = $this->Application->RecallVar($changes_var_name); | $changes = $this->Application->RecallVar($changes_var_name); | ||||
$changes = $changes ? unserialize($changes) : Array (); | $changes = $changes ? unserialize($changes) : Array (); | ||||
$this->Application->RemoveVar($changes_var_name); | $this->Application->RemoveVar($changes_var_name); | ||||
if (!$changes) { | if (!$changes) { | ||||
// no changes, skip processing | // no changes, skip processing | ||||
return ; | return ; | ||||
▲ Show 20 Lines • Show All 1543 Lines • Show Last 20 Lines |