public function __construct() { ini_get('safe_mode') || set_time_limit(180); parent::__construct(); $iaDbControl = $this->_iaCore->factory('dbcontrol', iaCore::ADMIN); $this->setHelper($iaDbControl); }
public function __construct() { parent::__construct(); $iaCron = $this->_iaCore->factory('cron'); $this->setTable($iaCron::getTable()); $this->setHelper($iaCron); }
public function __construct() { parent::__construct(); $iaAcl = $this->_iaCore->factory('acl'); $this->setHelper($iaAcl); $this->_objects = $iaAcl->getObjects(); }
public function __construct() { parent::__construct(); $this->_pluginName = IA_CURRENT_PLUGIN; $this->_template = 'manage'; $this->init(); }
public function __construct() { parent::__construct(); $iaExtra = $this->_iaCore->factory('extra', iaCore::ADMIN); $this->setHelper($iaExtra); $this->setTable(iaExtra::getTable()); $this->_folder = IA_PACKAGES; }
protected function _gridRead($params) { $action = 1 == count($this->_iaCore->requestPath) ? $this->_iaCore->requestPath[0] : null; switch ($action) { case 'items': $output = array('data' => null); if ($items = $this->_iaCore->factory('item')->getItems(true)) { foreach ($items as $key => $item) { $output['data'][] = array('title' => iaLanguage::get($item), 'value' => $item); } } break; case 'plans': $output = array('data' => null); $stmt = ''; if (!isset($params['itemname']) || isset($params['itemname']) && iaUsers::getItemName() == $params['itemname']) { $stmt = iaDb::convertIds(iaUsers::getItemName(), 'item'); $output['data'][] = array('title' => iaLanguage::get('funds'), 'value' => 0); } elseif (!empty($params['itemname'])) { $stmt = iaDb::convertIds($params['itemname'], 'item'); } $this->_iaCore->factory('plan'); if ($planIds = $this->_iaDb->onefield(iaDb::ID_COLUMN_SELECTION, $stmt, null, null, iaPlan::getTable())) { foreach ($planIds as $planId) { $output['data'][] = array('title' => iaLanguage::get('plan_title_' . $planId), 'value' => $planId); } } break; case 'gateways': $output = array('data' => null); if ($items = $this->getHelper()->getPaymentGateways()) { foreach ($items as $name => $title) { $output['data'][] = array('value' => $name, 'title' => $title); } } break; case 'members': $output = array('data' => null); if (!empty($params['query'])) { $where[] = 'CONCAT(`username`, `fullname`) LIKE :username'; $values['username'] = '******' . iaSanitize::sql($params['query']) . '%'; } $where || ($where[] = iaDb::EMPTY_CONDITION); $where = implode(' AND ', $where); $this->_iaDb->bind($where, $values); if ($members = $this->_iaDb->all(array('id', 'username', 'fullname'), $where, null, null, iaUsers::getTable())) { foreach ($members as $member) { $output['data'][] = array('title' => $member['username'], 'value' => $member['id']); } } break; default: $output = parent::_gridRead($params); } return $output; }
protected function _entryDelete($entryId) { $row = $this->_iaDb->row(array('name', 'item'), iaDb::convertIds($entryId)); $result = parent::_entryDelete($entryId); if ($result && $row) { $stmt = iaDb::printf("`key` = 'fieldgroup_:name' OR `key` = 'fieldgroup_description_:item_:name'", $row); $this->_iaDb->delete($stmt, iaLanguage::getTable()); } return $result; }
protected function _gridRead($params) { return $this->_iaCore->requestPath && 'store' == end($this->_iaCore->requestPath) ? $this->_getUsergroups() : parent::_gridRead($params); }
protected function _htmlAction(&$iaView) { switch ($iaView->name()) { case 'phpinfo': $this->_showPhpinfo($iaView); $iaView->display('index'); break; case 'clear_cache': $this->_clearCache($iaView); break; case 'sitemap': $this->_buildSitemap($iaView); break; default: parent::_htmlAction($iaView); } }
public function __construct() { parent::__construct(); $this->setHelper($this->_iaCore->factory('invoice')); $this->setTable(iaInvoice::getTable()); }
public function __construct() { parent::__construct(); $iaDbControl = $this->_iaCore->factory('dbcontrol', iaCore::ADMIN); $this->setHelper($iaDbControl); }
protected function _entryDelete($entryId) { $this->_iaCore->startHook('phpAdminBeforePlanDelete', array('entryId' => $entryId)); $result = parent::_entryDelete($entryId); if ($result) { // here we should drop the "for_plan" column of fields // if there are no more plans exist if (0 === (int) $this->_iaDb->one(iaDb::STMT_COUNT_ROWS)) { $this->_iaDb->update(array('for_plan' => 0), iaDb::convertIds(1, 'for_plan'), null, iaField::getTable()); } iaLanguage::delete(self::PATTERN_TITLE . $entryId); iaLanguage::delete(self::PATTERN_DESCRIPTION . $entryId); } return $result; }
private function _update(array $fieldData, $id) { $iaDb =& $this->_iaDb; $field = $iaDb->row(iaDb::ALL_COLUMNS_SELECTION, iaDb::convertIds($id)); if (empty($field) || $field['type'] != $fieldData['type']) { return false; } // set correct relations if (iaField::RELATION_REGULAR == $fieldData['relation']) { $this->_resetRelations($field['name'], $field['item']); } else { if ($fieldData['parents']) { $this->_setParents($field['name'], $fieldData['parents']); } if ($fieldData['children']) { $this->_setChildren($field['name'], $field['item'], $fieldData['values'], $fieldData['children']); } $this->_setRelations(); } unset($fieldData['parents'], $fieldData['children']); $iaDb->setTable(iaLanguage::getTable()); $iaDb->delete("`key` LIKE 'field\\_" . $field['name'] . "\\_%'"); foreach ($this->_iaCore->languages as $code => $language) { iaLanguage::addPhrase('field_' . $field['name'], $fieldData['title'][$code], $code, $field['extras']); if (isset($fieldData['annotation'][$code]) && $fieldData['annotation'][$code]) { iaLanguage::addPhrase('field_' . $field['name'] . '_annotation', $fieldData['annotation'][$code], $code, $field['extras']); } } unset($fieldData['title'], $fieldData['annotation']); $keys = array(); if (isset($fieldData['values']) && is_array($fieldData['values'])) { $newKeys = array(); foreach ($fieldData['values'] as $key => $value) { $key = $keys[$key] = isset($fieldData['keys'][$key]) ? $fieldData['keys'][$key] : $key; iaLanguage::addPhrase('field_' . $field['name'] . '_' . $key, $value, null, $field['extras']); $newKeys[] = $key; } $fieldData['values'] = implode(',', $newKeys); } elseif (iaField::TREE != $fieldData['type']) { unset($fieldData['values']); } elseif (iaField::TREE == $fieldData['type']) { $iaDb->setTable('fields_tree_nodes'); $iaDb->delete('`field` = :name && `item` = :item', null, array('name' => $field['name'], 'item' => $field['item'])); if ($fieldData['tree_nodes']) { foreach ($fieldData['tree_nodes'] as $node) { // insert default language iaLanguage::addPhrase('field_' . $field['item'] . '_' . $field['name'] . '_' . $node['node_id'], $node['text'], $this->_iaCore->iaView->language, $field['extras']); unset($node['text']); $node['field'] = $field['name']; $node['item'] = $field['item']; $node['extras'] = $field['extras']; $iaDb->insert($node); } } $iaDb->resetTable(); unset($fieldData['tree_nodes']); } unset($fieldData['keys']); if (isset($fieldData['lang_values']) && is_array($fieldData['lang_values'])) { foreach ($fieldData['lang_values'] as $languageCode => $phrases) { foreach ($phrases as $phraseKey => $phraseValue) { iaLanguage::addPhrase('field_' . $field['name'] . '_' . $phraseKey, $phraseValue, $languageCode, $field['extras']); } } } if (isset($fieldData['lang_values'])) { unset($fieldData['lang_values']); } if ($fieldData['searchable'] && $fieldData['type'] == iaField::NUMBER && isset($fieldData['_numberRangeForSearch']) && is_array($fieldData['_numberRangeForSearch']) && !empty($fieldData['_numberRangeForSearch'])) { $iaDb->delete("`key` LIKE 'field\\_" . $field['name'] . "\\_range\\_%'"); foreach ($fieldData['_numberRangeForSearch'] as $value) { iaLanguage::addPhrase('field_' . $field['name'] . '_range_' . $value, $value, null, $field['extras']); } unset($fieldData['_numberRangeForSearch']); } else { $iaDb->delete("`key` LIKE 'field\\_" . $field['name'] . "\\_range\\_%'"); } $iaDb->resetTable(); $tableName = $this->_iaCore->factory('item')->getItemTable($fieldData['item']); // avoid making fulltext second time if (!$field['searchable'] && $fieldData['searchable'] && in_array($fieldData['type'], array(iaField::TEXT, iaField::TEXTAREA))) { $indexes = $iaDb->getAll("SHOW INDEX FROM `{$iaDb->prefix}{$tableName}`"); $keyExists = false; foreach ($indexes as $i) { if ($i['Key_name'] == $field['name'] && $i['Index_type'] == 'FULLTEXT') { $keyExists = true; break; } } if (!$keyExists) { $iaDb->query("ALTER TABLE `{$iaDb->prefix}{$tableName}` ADD FULLTEXT (`{$field['name']}`)"); } } if ($field['searchable'] && !$fieldData['searchable'] && in_array($fieldData['type'], array(iaField::TEXT, iaField::TEXTAREA))) { $indexes = $iaDb->getAll("SHOW INDEX FROM `{$iaDb->prefix}{$tableName}`"); $keyExists = false; foreach ($indexes as $i) { if ($i['Key_name'] == $field['name'] && $i['Index_type'] == 'FULLTEXT') { $keyExists = true; break; } } if ($keyExists) { $iaDb->query("ALTER TABLE `{$iaDb->prefix}{$tableName}` DROP INDEX `{$field['name']}`"); } } $pagesList = $fieldData['pages']; unset($fieldData['pages'], $fieldData['groups'], $fieldData['item']); $result = parent::_entryUpdate($fieldData, $id); if ($pagesList) { $this->_setPagesList($id, $pagesList, $field['extras']); } if ($result) { if (in_array($fieldData['type'], array(iaField::TEXT, iaField::COMBO, iaField::RADIO, iaField::CHECKBOX))) { $sql = "ALTER TABLE `{$this->_iaDb->prefix}{$tableName}` "; $sql .= "CHANGE `{$field['name']}` `{$field['name']}` "; switch ($fieldData['type']) { case iaField::TEXT: $sql .= "VARCHAR ({$fieldData['length']}) "; $sql .= $fieldData['default'] ? "DEFAULT '{$fieldData['default']}' " : ''; break; default: if (isset($fieldData['values'])) { $values = explode(',', $fieldData['values']); $sql .= $fieldData['type'] == iaField::CHECKBOX ? 'SET' : 'ENUM'; $sql .= "('" . implode("','", $values) . "')"; if (!empty($fieldData['default'])) { $sql .= " DEFAULT '{$fieldData['default']}' "; } } break; } $sql .= 'NOT NULL'; $iaDb->query($sql); } } return $result; }
protected function _gridRead($params) { return count($this->_iaCore->requestPath) == 1 && 'positions' == $this->_iaCore->requestPath[0] ? $this->_getPositions() : parent::_gridRead($params); }
protected function _entryDelete($entryId) { $result = false; if ($row = $this->getById($entryId)) { $result = parent::_entryDelete($entryId); if ($result) { $pageName = $row['name']; // remove associated entries as well $this->_iaDb->delete("`key` IN ('page_title_{$pageName}', 'page_content_{$pageName}')", iaLanguage::getTable()); $this->_iaCore->factory('block', iaCore::ADMIN); $this->_iaDb->delete('`page_name` = :page', iaBlock::getMenusTable(), array('page' => $pageName)); // $this->_iaCore->factory('log')->write(iaLog::ACTION_DELETE, array('item' => 'page', 'name' => iaLanguage::get('page_title_' . $pageName), 'id' => (int) $entryId)); } } return $result; }
public function __construct() { parent::__construct(); $iaTemplate = $this->_iaCore->factory('template', iaCore::ADMIN); $this->setHelper($iaTemplate); }
protected function _gridRead($params) { $output = array(); switch ($params['action']) { case 'pages': $pageGroups = $this->_iaCore->factory('page', iaCore::ADMIN)->getGroups(); foreach ($pageGroups as $groupId => $group) { $children = array(); foreach ($group['children'] as $pageId => $pageTitle) { $children[] = array('text' => $pageTitle, 'leaf' => true, 'id' => $pageId); } $output[] = array('text' => $group['title'], 'id' => 'group_' . $groupId, 'cls' => 'folder', 'draggable' => false, 'children' => $children); } $output[0]['expanded'] = true; break; case 'menus': function recursiveRead($list, $pid = 0) { $result = array(); if (isset($list[$pid])) { foreach ($list[$pid] as $child) { $title = iaLanguage::get('page_title_' . $child['el_id'], 'none'); if ($title == 'none') { $title = iaLanguage::get('page_title_' . $child['page_name'], 'none'); if ($title == 'none' || $child['page_name'] == 'node') { $title = iaLanguage::get('_page_removed_'); } } else { $title .= (int) $child['el_id'] > 0 ? ' (custom)' : ' (no link)'; } $item = array('text' => $title, 'id' => $child['el_id'], 'expanded' => true, 'children' => recursiveRead($list, $child['el_id'])); $result[] = $item; } } return $result; } $output = array(); if ($name = (int) $params['id']) { $rows = $this->_iaDb->all(iaDb::ALL_COLUMNS_SELECTION, '`menu_id` = ' . $name . ' ORDER BY `id`', null, null, 'menus'); foreach ($rows as $row) { $output[$row['parent_id']][] = $row; } $output = recursiveRead($output); } break; case 'titles': $output['languages'] = array(); $languagesList = $this->_iaCore->languages; $node = isset($params['id']) ? iaSanitize::sql($params['id']) : false; $entry = isset($params['menu']) ? iaSanitize::sql($params['menu']) : false; if (isset($params['new']) && $params['new']) { ksort($languagesList); foreach ($languagesList as $code => $language) { $output['languages'][] = array('fieldLabel' => $language['title'], 'name' => $code, 'value' => ''); } } elseif ($node && $entry) { $key = false; $title = iaLanguage::get('page_title_' . $node, 'none'); if ($title != 'none') { $key = 'page_title_' . $node; } else { if ($pageId = (int) $node) { $page = $this->_iaDb->one('`name`', iaDb::convertIds($pageId), 'pages'); $key = 'page_title_' . $page; } else { $current = isset($params['current']) ? $params['current'] : ''; ksort($languagesList); foreach ($languagesList as $code => $language) { $output['languages'][] = array('fieldLabel' => $language['title'], 'name' => $code, 'value' => $current); } } } if ($key) { $titles = $this->_iaDb->all(iaDb::ALL_COLUMNS_SELECTION, "`key` = '{$key}' ORDER BY `code`", null, null, iaLanguage::getTable()); foreach ($titles as $row) { if (isset($languagesList[$row['code']])) { $output['languages'][] = array('fieldLabel' => $languagesList[$row['code']]['title'], 'name' => $row['code'], 'value' => $row['value']); } } } $output['key'] = $key; } break; case 'save': $output['message'] = iaLanguage::get('invalid_parameters'); $menu = isset($params['menu']) ? $params['menu'] : null; $node = isset($params['node']) ? $params['node'] : null; if ($menu && $node) { $rows = array(); foreach ($_POST as $code => $value) { $rows[] = array('code' => $code, 'value' => $value, 'extras' => $menu, 'key' => 'page_title_' . $node, 'category' => iaLanguage::CATEGORY_PAGE); } $this->_iaDb->setTable(iaLanguage::getTable()); $this->_iaDb->delete('`key` = :key', null, array('key' => 'page_title_' . $node)); $this->_iaDb->insert($rows); $this->_iaDb->resetTable(); $output['message'] = iaLanguage::get('saved'); $output['success'] = true; $this->_iaCore->iaCache->remove('menu_' . $menu . '.inc'); } break; default: $output = parent::_gridRead($params); } return $output; }
protected function _indexPage(&$iaView) { parent::_indexPage($iaView); $iaView->display($this->getName()); }
protected function _gridDelete($params) { $output = parent::_gridDelete($params); if ($output['result']) { $this->getHelper()->createJsCache(true); } return $output; }
protected function _delete(array $entryId) { return parent::_entryDelete($entryId); }
public function __construct() { parent::__construct(); $this->setTable(iaCore::getConfigTable()); }
protected function _gridUpdate($params) { if (isset($params['id']) && is_array($params['id']) && 2 == count($params) && isset($params['status'])) { $currentUserId = iaUsers::getIdentity()->id; if (in_array($currentUserId, $params['id'])) { $totalAdminsCount = (int) $this->_iaDb->one_bind(iaDb::STMT_COUNT_ROWS, '`usergroup_id` = :group AND `status` = :status AND `id` != :id', array('group' => iaUsers::MEMBERSHIP_ADMINISTRATOR, 'status' => iaCore::STATUS_ACTIVE, 'id' => $currentUserId)); if (0 == $totalAdminsCount && $params['status'] != iaCore::STATUS_ACTIVE) { return array('result' => false, 'message' => iaLanguage::get('action_not_allowed_since_you_only_admin')); } } } return parent::_gridUpdate($params); }
protected function _entryAdd(array $entryData) { parent::_entryAdd($entryData); return $this->_iaDb->getAffected() ? $entryData['id'] : false; }