/** * Returns custom plugin variables. * * @return array List of variables. */ public function getParameters() { $objectTypes = array(); if (ModUtil::available($this->modname) && ModUtil::loadApi($this->modname)) { $objectTypes['collection'] = array('name' => $this->__('Collections')); $objectTypes['movie'] = array('name' => $this->__('Movies')); } $active = $this->getPluginVar('ObjectTypes', array()); foreach ($objectTypes as $k => $v) { $objectTypes[$k]['nwactive'] = in_array($k, $active); } $args = $this->getPluginVar('Args', array()); return array('number' => 1, 'param' => array('ObjectTypes' => $objectTypes, 'Args' => $args)); }
/** * Search plugin main function **/ public function search($args) { if (!SecurityUtil::checkPermission('News::', '::', ACCESS_READ)) { return true; } ModUtil::dbInfoLoad('Search'); $tables = DBUtil::getTables(); $newsColumn = $tables['news_column']; $where = Search_Api_User::construct_where($args, array($newsColumn['title'], $newsColumn['hometext'], $newsColumn['bodytext']), $newsColumn['language']); // Only search in published articles that are currently visible $where .= " AND ({$newsColumn['published_status']} = '0')"; $date = DateUtil::getDatetime(); $where .= " AND ('$date' >= {$newsColumn['from']} AND ({$newsColumn['to']} IS NULL OR '$date' <= {$newsColumn['to']}))"; $sessionId = session_id(); ModUtil::loadApi('News', 'user'); $permChecker = new News_ResultChecker($this->getVar('enablecategorization'), $this->getVar('enablecategorybasedpermissions')); $articles = DBUtil::selectObjectArrayFilter('news', $where, null, null, null, '', $permChecker, null); foreach ($articles as $article) { $item = array( 'title' => $article['title'], 'text' => $article['hometext'], 'extra' => $article['sid'], 'created' => $article['from'], 'module' => 'News', 'session' => $sessionId ); $insertResult = DBUtil::insertObject($item, 'search_result'); if (!$insertResult) { return LogUtil::registerError($this->__('Error! Could not load any articles.')); } } return true; }
/** * upgrade module */ public function upgrade($oldversion) { switch ($oldversion) { case '2.1': // reset all modvars to default $this->setVar('smiliepath', 'modules/BBSmile/images/smilies'); $this->setVar('activate_auto', '1'); $this->setVar('remove_inactive', '1'); $this->setVar('smiliepath_auto', 'modules/BBSmile/images/smilies_auto'); $this->setVar('smilie_array', BBSmile_Util::getDefaultSmilies()); // load the 'auto' smilies ModUtil::loadApi($this->name, 'admin', true); ModUtil::apiFunc($this->name, 'admin', 'updatesmilies', array('forcereload' => 1)); // create hook HookUtil::registerProviderBundles($this->version->getHookProviderBundles()); case '3.0.0': // current version } return true; }
/** * initialise the theme module * * This function is only ever called once during the lifetime of a particular * module instance. * This function MUST exist in the pninit file for a module * * @return bool true on success, false otherwise */ public function install() { // create the table if (!DBUtil::createTable('themes')) { return false; } // detect all themes on install ModUtil::loadApi('Theme', 'admin', true); ModUtil::apiFunc('Theme', 'admin', 'regenerate'); // define defaults for module vars $this->setVar('modulesnocache', ''); $this->setVar('enablecache', false); $this->setVar('compile_check', true); $this->setVar('cache_lifetime', 1800); $this->setVar('cache_lifetime_mods', 1800); $this->setVar('force_compile', false); $this->setVar('trimwhitespace', false); $this->setVar('maxsizeforlinks', 30); $this->setVar('itemsperpage', 25); $this->setVar('cssjscombine', false); $this->setVar('cssjscompress', false); $this->setVar('cssjsminify', false); $this->setVar('cssjscombine_lifetime', 3600); // View $this->setVar('render_compile_check', true); $this->setVar('render_force_compile', false); $this->setVar('render_cache', true); $this->setVar('render_expose_template',false); $this->setVar('render_lifetime', 3600); // Initialisation successful return true; }
private static function internalUserAccountValidation($uid, $reportErrors = false, $userObj = false) { if (!$uid || !is_numeric($uid) || (int) $uid != $uid) { // We got something other than a uid from the authentication process. if (!LogUtil::hasErrors() && $reportErrors) { LogUtil::registerError(__('Sorry! Login failed. The information you provided was incorrect.')); } } else { if (!$userObj) { // Need to make sure the Users module stuff is loaded and available, especially if we are authenticating during // an upgrade or install. ModUtil::loadApi('Users', 'user', true); // The user's credentials have authenticated with the authentication module's method, but // now we have to check the account status itself. If the account status would not allow the // user to log in, then we return false. $userObj = self::getVars($uid); if (!$userObj) { // Might be a registration $userObj = self::getVars($uid, false, 'uid', true); } } if (!$userObj || !is_array($userObj)) { // Note that we have not actually logged into anything yet, just authenticated. throw new Zikula_Exception_Fatal(__f('A %1$s (%2$s) was returned by the authenticating module, but a user account record (or registration request record) could not be found.', array('uid', $uid))); } if (!isset($userObj['activated'])) { // Provide a sane value. $userObj['activated'] = UsersConstant::ACTIVATED_INACTIVE; } if ($userObj['activated'] != UsersConstant::ACTIVATED_ACTIVE) { if ($reportErrors) { $displayVerifyPending = ModUtil::getVar(UsersConstant::MODNAME, UsersConstant::MODVAR_LOGIN_DISPLAY_VERIFY_STATUS, UsersConstant::DEFAULT_LOGIN_DISPLAY_VERIFY_STATUS); $displayApprovalPending = ModUtil::getVar(UsersConstant::MODNAME, UsersConstant::MODVAR_LOGIN_DISPLAY_APPROVAL_STATUS, UsersConstant::DEFAULT_LOGIN_DISPLAY_VERIFY_STATUS); if ($userObj['activated'] == UsersConstant::ACTIVATED_PENDING_REG && ($displayApprovalPending || $displayVerifyPending)) { $moderationOrder = ModUtil::getVar(UsersConstant::MODNAME, UsersConstant::MODVAR_REGISTRATION_APPROVAL_SEQUENCE, UsersConstant::DEFAULT_REGISTRATION_APPROVAL_SEQUENCE); if (!$userObj['isverified'] && ($moderationOrder == UsersConstant::APPROVAL_AFTER || $moderationOrder == UsersConstant::APPROVAL_ANY || !empty($userObj['approved_by'])) && $displayVerifyPending) { $message = __('Your request to register with this site is still waiting for verification of your e-mail address. Please check your inbox for a message from us.'); } elseif (empty($userObj['approved_by']) && ($moderationOrder == UsersConstant::APPROVAL_BEFORE || $moderationOrder == UsersConstant::APPROVAL_ANY) && $displayApprovalPending) { $message = __('Your request to register with this site is still waiting for approval from a site administrator.'); } if (isset($message) && !empty($message)) { return LogUtil::registerError($message); } // It is a pending registration but the site admin elected to not display this to the user. // No exception here because the answer is simply "no." This will fall through to return false. } elseif ($userObj['activated'] == UsersConstant::ACTIVATED_INACTIVE && ModUtil::getVar(UsersConstant::MODNAME, UsersConstant::MODVAR_LOGIN_DISPLAY_INACTIVE_STATUS, UsersConstant::DEFAULT_LOGIN_DISPLAY_INACTIVE_STATUS)) { $message = __('Your account has been disabled. Please contact a site administrator for more information.'); } elseif ($userObj['activated'] == UsersConstant::ACTIVATED_PENDING_DELETE && ModUtil::getVar(UsersConstant::MODNAME, UsersConstant::MODVAR_LOGIN_DISPLAY_DELETE_STATUS, UsersConstant::DEFAULT_LOGIN_DISPLAY_DELETE_STATUS)) { $message = __('Your account has been disabled and is scheduled for removal. Please contact a site administrator for more information.'); } else { $message = __('Sorry! Either there is no active user in our system with that information, or the information you provided does not match the information for your account.'); } LogUtil::registerError($message); } $userObj = false; } } return $userObj; }
/** * Add default block data for new installs * This is called after a complete pn installation since the blocks * need to be populated with module id's which are only available * once the install has been completed */ public function defaultdata() { // load block api ModUtil::loadApi('Blocks', 'admin', true); // sanity check - truncate existing tables to ensure a clean blocks setup $connection = $this->entityManager->getConnection(); $platform = $connection->getDatabasePlatform(); $connection->executeUpdate($platform->getTruncateTableSQL('blocks', true)); $connection->executeUpdate($platform->getTruncateTableSQL('block_positions', true)); $connection->executeUpdate($platform->getTruncateTableSQL('block_placements', true)); // create the default block positions - left, right and center for the traditional 3 column layout $left = ModUtil::apiFunc('Blocks', 'admin', 'createposition', array('name' => 'left', 'description' => $this->__('Left blocks'))); $right = ModUtil::apiFunc('Blocks', 'admin', 'createposition', array('name' => 'right', 'description' => $this->__('Right blocks'))); $center = ModUtil::apiFunc('Blocks', 'admin', 'createposition', array('name' => 'center', 'description' => $this->__('Center blocks'))); $search = ModUtil::apiFunc('Blocks', 'admin', 'createposition', array('name' => 'search', 'description' => $this->__('Search block'))); $header = ModUtil::apiFunc('Blocks', 'admin', 'createposition', array('name' => 'header', 'description' => $this->__('Header block'))); $footer = ModUtil::apiFunc('Blocks', 'admin', 'createposition', array('name' => 'footer', 'description' => $this->__('Footer block'))); $topnav = ModUtil::apiFunc('Blocks', 'admin', 'createposition', array('name' => 'topnav', 'description' => $this->__('Top navigation block'))); $bottomnav = ModUtil::apiFunc('Blocks', 'admin', 'createposition', array('name' => 'bottomnav', 'description' => $this->__('Bottom navigation block'))); // define an array of the default blocks $blocks = array(); // build the menu content $languages = ZLanguage::getInstalledLanguages(); $saveLanguage = ZLanguage::getLanguageCode(); $menucontent = array(); $topnavcontent = array(); foreach ($languages as $lang) { ZLanguage::setLocale($lang); ZLanguage::bindCoreDomain(); $menucontent['displaymodules'] = '0'; $menucontent['stylesheet'] = 'extmenu.css'; $menucontent['template'] = 'blocks_block_extmenu.tpl'; $menucontent['blocktitles'][$lang] = $this->__('Main menu'); // insert the links $menucontent['links'][$lang][] = array('name' => $this->__('Home'), 'url' => '{homepage}', 'title' => $this->__("Go to the home page"), 'level' => 0, 'parentid' => null, 'image' => '', 'active' => '1'); $menucontent['links'][$lang][] = array('name' => $this->__('Administration'), 'url' => '{Admin:admin:adminpanel}', 'title' => $this->__('Go to the site administration'), 'level' => 0, 'parentid' => null, 'image' => '', 'active' => '1'); $menucontent['links'][$lang][] = array('name' => $this->__('My Account'), 'url' => '{Users}', 'title' => $this->__('Go to your account panel'), 'level' => 0, 'parentid' => null, 'image' => '', 'active' => '1'); $menucontent['links'][$lang][] = array('name' => $this->__('Log out'), 'url' => '{Users:user:logout}', 'title' => $this->__('Log out of this site'), 'level' => 0, 'parentid' => null, 'image' => '', 'active' => '1'); $menucontent['links'][$lang][] = array('name' => $this->__('Site search'), 'url' => '{Search}', 'title' => $this->__('Search this site'), 'level' => 0, 'parentid' => null, 'image' => '', 'active' => '1'); $topnavcontent['displaymodules'] = '0'; $topnavcontent['stylesheet'] = 'extmenu.css'; $topnavcontent['template'] = 'blocks_block_extmenu_topnav.tpl'; $topnavcontent['blocktitles'][$lang] = $this->__('Top navigation'); // insert the links $topnavcontent['links'][$lang][] = array('name' => $this->__('Home'), 'url' => '{homepage}', 'title' => $this->__("Go to the site's home page"), 'level' => 0, 'parentid' => null, 'image' => '', 'active' => '1'); $topnavcontent['links'][$lang][] = array('name' => $this->__('My Account'), 'url' => '{Users}', 'title' => $this->__('Go to your account panel'), 'level' => 0, 'parentid' => null, 'image' => '', 'active' => '1'); $topnavcontent['links'][$lang][] = array('name' => $this->__('Site search'), 'url' => '{Search}', 'title' => $this->__('Search this site'), 'level' => 0, 'parentid' => null, 'image' => '', 'active' => '1'); } ZLanguage::setLocale($saveLanguage); $menucontent = serialize($menucontent); $topnavcontent = serialize($topnavcontent); $searchcontent = array('displaySearchBtn' => 1, 'active' => array('Users' => 1)); $searchcontent = serialize($searchcontent); $hellomessage = $this->__('<p><a href="http://zikula.org/">Zikula</a> is a content management system (CMS) and application framework. It is secure and stable, and is a good choice for sites with a large volume of traffic.</p><p>With Zikula:</p><ul><li>you can customise all aspects of the site\'s appearance through themes, with support for CSS style sheets, JavaScript, Flash and all other modern web development technologies;</li><li>you can mark content as being suitable for either a single language or for all languages, and can control all aspects of localisation and internationalisation of your site;</li><li>you can be sure that your pages will display properly in all browsers, thanks to Zikula\'s full compliance with W3C HTML standards;</li><li>you get a standard application-programming interface (API) that lets you easily augment your site\'s functionality through modules, blocks and other extensions;</li><li>you can get help and support from the Zikula community of webmasters and developers at <a href="http://www.zikula.org">zikula.org</a>.</li></ul><p>Enjoy using Zikula!</p><p><strong>The Zikula team</strong></p><p><em>Note: Zikula is Free Open Source Software (FOSS) licensed under the GNU General Public License.</em></p>'); $blocks[] = array('bkey' => 'Extmenu', 'collapsable' => 1, 'defaultstate' => 1, 'language' => '', 'mid' => ModUtil::getIdFromName('Blocks'), 'title' => $this->__('Main menu'), 'description' => $this->__('Main menu'), 'content' => $menucontent, 'positions' => array($left)); $blocks[] = array('bkey' => 'Search', 'collapsable' => 1, 'defaultstate' => 1, 'language' => '', 'mid' => ModUtil::getIdFromName('Search'), 'title' => $this->__('Search box'), 'description' => $this->__('Search block'), 'content' => $searchcontent, 'positions' => array($search)); $blocks[] = array('bkey' => 'Html', 'collapsable' => 1, 'defaultstate' => 1, 'language' => '', 'mid' => ModUtil::getIdFromName('Blocks'), 'title' => $this->__("This site is powered by Zikula!"), 'description' => $this->__('HTML block'), 'content' => $hellomessage, 'positions' => array($center)); $blocks[] = array('bkey' => 'Login', 'collapsable' => 1, 'defaultstate' => 1, 'language' => '', 'mid' => ModUtil::getIdFromName('Users'), 'title' => $this->__('User log-in'), 'description' => $this->__('Login block'), 'positions' => array($right)); //$blocks[] = array('bkey' => 'Online', 'collapsable' => 1, 'defaultstate' => 1, 'language' => '', 'mid' => ModUtil::getIdFromName('Users'), 'title' => $this->__('Who\'s on-line'), 'description' => $this->__('Online block'), 'positions' => array($right)); $blocks[] = array('bkey' => 'Extmenu', 'collapsable' => 1, 'defaultstate' => 1, 'language' => '', 'mid' => ModUtil::getIdFromName('Blocks'), 'title' => $this->__('Top navigation'), 'description' => $this->__('Theme navigation'), 'content' => $topnavcontent, 'positions' => array($topnav)); // create each block and then update the block // the create creates the initial block record, the update sets the block placement foreach ($blocks as $position => $block) { ModUtil::apiFunc('Blocks', 'admin', 'create', $block); } return; }
public function update_hour($args) { if (!SecurityUtil::checkPermission('IWtimeframes::', "::", ACCESS_ADMIN)) { return LogUtil::registerError($this->__('Not authorized to manage timeFrames.'), 403); } $hid = FormUtil::getPassedValue('hid', isset($args['hid']) ? $args['hid'] : null, 'GET'); $start = FormUtil::getPassedValue('start', isset($args['start']) ? $args['start'] : null, 'GET'); $end = FormUtil::getPassedValue('end', isset($args['end']) ? $args['end'] : null, 'GET'); $descriu = FormUtil::getPassedValue('descriu', isset($args['descriu']) ? $args['descriu'] : null, 'GET'); //Comprovem que els valors han arribat if ((!isset($hid)) or (!isset($start)) or (!isset($end))) { return LogUtil::registerError($this->__('Error! Could not do what you wanted. Please check your input.')); } //Carregem l'API de l'usuari per poder consultar les dades de l'hora que volem modificar if (!ModUtil::loadApi('IWtimeframes', 'user')) { return LogUtil::registerError($this->__('Error! Could not load module.')); } //Cridem la funciᅵ get de l'API que ens retornarᅵ les dades de l'hora $registre = ModUtil::apiFunc('IWtimeframes', 'user', 'get_hour', array('hid' => $hid)); //Comprovem que la consulta anterior ha tornat amb resultats if ($registre == false) { return LogUtil::registerError($this->__('Could not find the time over to do the action')); } //Comprovacions de seguretat if (!SecurityUtil::checkPermission('IWtimeframes::', "$registre[hora]::$hid", ACCESS_EDIT)) { return LogUtil::registerError($this->__('Not authorized to manage timeFrames.')); } $where = "hid=" . $hid; $item = array('start' => $start, 'end' => $end, 'descriu' => $descriu); $tablename = 'IWtimeframes'; if (!DBUtil::updateObject($item, $tablename, $where)) { return LogUtil::registerError($this->__('The modify of the frame time failed.')); } return true; }
/** * Generate the upgrade module page. * * This function upgrade available module to an upgrade * * @param string $username Username of the admin user. * @param string $password Password of the admin user. * * @return void */ function _upg_upgrademodules($username, $password) { _upg_header(); $modvars = DBUtil::selectObjectArray('module_vars'); foreach ($modvars as $modvar) { if ($modvar['value'] == '0' || $modvar['value'] == '1') { $modvar['value'] = serialize($modvar['value']); DBUtil::updateObject($modvar, 'module_vars'); } } // force load the modules admin API ModUtil::loadApi('Extensions', 'admin', true); echo '<h2>' . __('Starting upgrade') . '</h2>' . "\n"; echo '<ul id="upgradelist" class="check">' . "\n"; // reset for User module //$GLOBALS['_ZikulaUpgrader']['_ZikulaUpgradeFrom12x'] = false; $results = ModUtil::apiFunc('Extensions', 'admin', 'upgradeall'); if ($results) { foreach ($results as $modname => $result) { if ($result) { echo '<li class="passed">' . DataUtil::formatForDisplay($modname) . ' ' . __('upgraded') . '</li>' . "\n"; } else { echo '<li class="failed">' . DataUtil::formatForDisplay($modname) . ' ' . __('not upgraded') . '</li>' . "\n"; } } } echo '</ul>' . "\n"; if (!$results) { echo '<ul class="check"><li class="passed">' . __('No modules required upgrading') . '</li></ul>'; } // wipe out the deprecated modules from Modules list. $modTable = 'modules'; $sql = "DELETE FROM {$modTable} WHERE name = 'Header_Footer' OR name = 'AuthPN' OR name = 'pnForm' OR name = 'Workflow' OR name = 'pnRender' OR name = 'Admin_Messages'"; DBUtil::executeSQL($sql); // store localized displayname and description for Extensions module $extensionsDisplayname = __('Extensions'); $extensionsDescription = __('Manage your modules and plugins.'); $sql = "UPDATE modules SET name = 'Extensions', displayname = '{$extensionsDisplayname}', description = '{$extensionsDescription}' WHERE modules.name = 'Extensions'"; DBUtil::executeSQL($sql); // regenerate the themes list ModUtil::apiFunc('Theme', 'admin', 'regenerate'); // store the recent version in a config var for later usage. This enables us to determine the version we are upgrading from System::setVar('Version_Num', Zikula_Core::VERSION_NUM); System::setVar('language_i18n', ZLanguage::getLanguageCode()); // Relogin the admin user to give a proper admin link SessionUtil::requireSession(); echo '<p class="z-statusmsg">' . __('Finished upgrade') . " - \n"; $authenticationInfo = array('login_id' => $username, 'pass' => $password); $authenticationMethod = array('modname' => 'Users', 'method' => 'uname'); if (!UserUtil::loginUsing($authenticationMethod, $authenticationInfo)) { $url = sprintf('<a href="%s">%s</a>', DataUtil::formatForDisplay(System::getBaseUrl()), DataUtil::formatForDisplay(System::getVar('sitename'))); echo __f('Go to the startpage for %s', $url); } else { upgrade_clear_caches(); $url = sprintf('<a href="%s">%s</a>', ModUtil::url('Admin', 'admin', 'adminpanel'), DataUtil::formatForDisplay(System::getVar('sitename'))); echo __f('Go to the admin panel for %s', $url); } echo "</p>\n"; _upg_footer(); }
/** * Load an API module. * * @deprecated * @see ModUtil::loadApi() * * @param string $modname The name of the module. * @param string $type The type of functions to load. * @param boolean $force Determines to load Module even if module isn't active. * * @return string|boolean Name of module loaded, or false on failure. */ function pnModAPILoad($modname, $type = 'user', $force = false) { LogUtil::log(__f('Warning! Function %1$s is deprecated. Please use %2$s instead.', array(__FUNCTION__, 'ModUtil::loadApi()')), E_USER_DEPRECATED); return ModUtil::loadApi($modname, $type, $force); }
private function upgradeModules() { // force load the modules admin API \ModUtil::loadApi('ZikulaExtensionsModule', 'admin', true); // this also regenerates all the modules return \ModUtil::apiFunc('ZikulaExtensionsModule', 'admin', 'upgradeall'); // returns array(array(modname => boolean)) }
/** * Search plugin main function **/ public function search($args) { // Permission check $this->throwForbiddenUnless(SecurityUtil::checkPermission('AddressBook::', '::', ACCESS_READ), LogUtil::getErrorMsgPermission()); ModUtil::dbInfoLoad('Search'); $ztable = DBUtil::getTables(); $addresstable = $ztable['addressbook_address']; $addresscolumn = $ztable['addressbook_address_column']; $searchTable = $ztable['search_result']; $searchColumn = $ztable['search_result_column']; $searchcols = array($addresscolumn['lname'], $addresscolumn['fname'], $addresscolumn['company'], $addresscolumn['city'], $addresscolumn['zip'], $addresscolumn['address1'], $addresscolumn['address2'], $addresscolumn['state'], $addresscolumn['country'], $addresscolumn['contact_1'], $addresscolumn['contact_2'], $addresscolumn['contact_3'], $addresscolumn['contact_4'], $addresscolumn['contact_5']); $cusfields = DBUtil::selectFieldArray('addressbook_customfields', 'id'); // Get user id if (UserUtil::isLoggedIn()) { $user_id = UserUtil::getVar('uid'); } else { $user_id = 0; } for ($i = 0; $i < count($cusfields); $i++) { $colname = 'custom_' . $cusfields[$i]; array_push($searchcols, $addresscolumn[$colname]); } $where = search_construct_where($args, $searchcols); // admin always sees all records but favorites if (SecurityUtil::checkPermission('AddressBook::', '::', ACCESS_ADMIN)) { $where .= " AND ({$addresscolumn['user_id']} IS NOT NULL)"; } else { // global protect - users see only their own records (admin sees all) if (ModUtil::getVar('AddressBook', 'globalprotect') == 1 && !SecurityUtil::checkPermission('AddressBook::', '::', ACCESS_ADMIN)) { $where .= " AND ({$addresscolumn['user_id']}={$user_id})"; } else { // if private = 1, show only private records if ($private == 1) { $where .= " AND ({$addresscolumn['user_id']}={$user_id} AND {$addresscolumn['private']} = 1)"; } else { // if private = 0, show all records $where .= " AND (({$addresscolumn['private']} = 0) OR ({$addresscolumn['user_id']}={$user_id} AND {$addresscolumn['private']} = 1))"; } } } $sessionId = session_id(); $insertSql = "INSERT INTO {$searchTable}\n ({$searchColumn['title']},\n {$searchColumn['text']},\n {$searchColumn['extra']},\n {$searchColumn['module']},\n {$searchColumn['created']},\n {$searchColumn['session']})\n VALUES "; ModUtil::loadApi('AddressBook', 'user'); if (ModUtil::getVar('AddressBook', 'addressbooktype') == 1) { $sort = "sortname DESC,sortcompany DESC"; } else { $sort = "sortcompany DESC,sortname DESC"; } $permChecker = new addressbook_result_checker(); //$addresses = DBUtil::selectObjectArray('addressbook_address', $where, null, null, '', $permChecker, null); $addresses = DBUtil::selectObjectArrayFilter('addressbook_address', $where, null, null, null, '', $permChecker, null); foreach ($addresses as $address) { $line_1 = $address['fname'] . " " . $address['lname']; if (empty($line_1)) { $line_1 = $address['company']; } else { if (!empty($address['company'])) { $line_1 .= " [" . $address['company'] . "]"; } } if (ModUtil::getVar('AddressBook', 'zipbeforecity') == 1) { $line_2 = $address['zip'] . " " . $address['city']; } else { $line_2 = $address['city'] . " " . $address['zip']; } $sql = $insertSql . '(' . '\'' . DataUtil::formatForStore($line_1) . '\', ' . '\'' . DataUtil::formatForStore($line_2) . '\', ' . '\'' . DataUtil::formatForStore($address['id']) . '\', ' . '\'' . 'AddressBook' . '\', ' . '\'' . DataUtil::formatForStore($address['cr_date']) . '\', ' . '\'' . DataUtil::formatForStore($sessionId) . '\')'; $insertResult = DBUtil::executeSQL($sql); if (!$insertResult) { return LogUtil::registerError($this->__('Error! Could not load addresses.')); } } return true; }
/** * Return list of admin modules * * Syntax used in menutree * {ext:Blocks:adminlinks:[flat,category]} * Last param is optional. It can be flat and/or category separated by a comma. * 'flat' will add the admin links in the current menu. Without 'flat' the links are grouped one level down * 'category' additionally groups the admin links by their category. * You can combine 'flat' and 'category' to have the category links added in the current menu. * * @param array $args['item'] menu node to be replaced * @param string $args['lang'] current menu language * @param string $args['extrainfo'] additional params - if 'flat' then return links ungrouped. if 'category' module links grouped by category * @return mixed array of links if successful, false otherwise */ public function adminlinks($args) { $item = isset($args['item']) && !empty($args['item']) ? $args['item'] : null; $lang = isset($args['lang']) && !empty($args['lang']) ? $args['lang'] : null; $extrainfo = isset($args['extrainfo']) && !empty($args['extrainfo']) ? $args['extrainfo'] : null; // $item ang lang params are required if (!$item || !$lang) { return false; } // Convert extrainfo into flags $extrainfo = $extrainfo ? preg_split("/[\\s]*,[\\s]*/", trim($extrainfo)) : array(); $flag = array(); $flag['flat'] = in_array("flat", $extrainfo); //now true or false $flag['category'] = in_array("category", $extrainfo); //now true or false // Make sure admin API is loaded if (!ModUtil::loadApi('Admin', 'admin', true)) { return false; } if (!SecurityUtil::checkPermission('Admin::', "::", ACCESS_EDIT)) { return array(); // Since no permission, return empty links } // get id for first element, use api func to aviod id conflicts inside menu $idoffset = Blocks_MenutreeUtil::getIdOffset($item['id']); $lineno = 0; $links = array(); // if not flat, group the links into a single menu entry if (!$flag['flat']) { $links['adminlinks'] = array($lang => array('id' => $idoffset++, 'name' => $item['name'], 'href' => ModUtil::url('Admin', 'admin', 'adminpanel'), 'title' => $item['title'], 'className' => $item['className'], 'state' => $item['state'], 'lang' => $lang, 'lineno' => $lineno++, 'parent' => $item['parent'])); } // need to set parent node id - if links are grouped - use your_accont item id // otherwise parent id of replaced menu node $parentNode = !$flag['flat'] ? $links['adminlinks'][$lang]['id'] : $item['parent']; // First work on the Admin module categories $catinfo = array(); // used to store menu information for the categories $catlinks = array(); if ($flag['category']) { // Get all the Categories $categories = ModUtil::apiFunc('Admin', 'admin', 'getall'); foreach ($categories as $item) { if (SecurityUtil::checkPermission('Admin::', "{$item['catname']}::{$item['cid']}", ACCESS_EDIT)) { // Set up the menu information for this category $catinfo[$item['cid']] = array('id' => $idoffset, 'no' => 0); $catlinks[] = array($lang => array('id' => $idoffset++, 'name' => $item['catname'], 'href' => ModUtil::url('Admin', 'admin', 'adminpanel', array('acid' => $item['cid'])), 'title' => $item['description'], 'className' => '', 'state' => 1, 'lang' => $lang, 'lineno' => $lineno++, 'parent' => $parentNode)); } } } // Now work on admin capable modules $adminmodules = ModUtil::getAdminMods(); $displayNameType = ModUtil::getVar('Admin', 'displaynametype', 1); $default_cid = ModUtil::getVar('Admin', 'startcategory'); $adminlinks = array(); foreach ($adminmodules as $adminmodule) { if (SecurityUtil::checkPermission("{$adminmodule['name']}::", '::', ACCESS_EDIT)) { $cid = ModUtil::apiFunc('Admin', 'admin', 'getmodcategory', array('mid' => ModUtil::getIdFromName($adminmodule['name']))); $cid = isset($catinfo[$cid]) ? $cid : $default_cid; // make sure each module is assigned a category $modinfo = ModUtil::getInfo(ModUtil::getIdFromName($adminmodule['name'])); if ($modinfo['type'] == 2 || $modinfo['type'] == 3) { $menutexturl = ModUtil::url($modinfo['name'], 'admin'); } else { $menutexturl = 'admin.php?module=' . $modinfo['name']; } if ($displayNameType == 1) { $menutext = $modinfo['displayname']; } elseif ($displayNameType == 2) { $menutext = $modinfo['name']; } elseif ($displayNameType == 3) { $menutext = $modinfo['displayname'] . ' (' . $modinfo['name'] . ')'; } $adminlinks[] = array($lang => array('id' => $idoffset++, 'name' => $menutext, 'href' => $menutexturl, 'title' => $modinfo['description'], 'className' => '', 'state' => 1, 'lang' => $lang, 'lineno' => $flag['category'] ? $catinfo[$cid]['no']++ : $lineno++, 'parent' => $flag['category'] ? $catinfo[$cid]['id'] : $parentNode)); } } $links = array_merge($links, $catlinks, $adminlinks); return $links; }