コード例 #1
0
ファイル: ItemList.php プロジェクト: robbrandt/MUVideo
 /**
  * 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));
 }
コード例 #2
0
ファイル: Search.php プロジェクト: projectesIF/Sirius
    /**
     * 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;
    }
コード例 #3
0
ファイル: Installer.php プロジェクト: rmaiwald/BBSmile
 /**
  * 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;
 }
コード例 #4
0
ファイル: Installer.php プロジェクト: projectesIF/Sirius
    /**
     * 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;
    }
コード例 #5
0
ファイル: UserUtil.php プロジェクト: rtznprmpftl/Zikulacore
 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;
 }
コード例 #6
0
ファイル: Installer.php プロジェクト: projectesIF/Sirius
    /**
     * 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;
    }
コード例 #7
0
ファイル: Admin.php プロジェクト: projectesIF/Sirius
    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;
    }
コード例 #8
0
ファイル: orig_upgrade.php プロジェクト: Git-Host/AMPPS
/**
 * 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();
}
コード例 #9
0
/**
 * 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);
}
コード例 #10
0
 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))
 }
コード例 #11
0
ファイル: Search.php プロジェクト: nmpetkov/AddressBook
 /**
  * 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;
 }
コード例 #12
0
 /**
  * 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;
 }