function initialize(Zikula_Form_View $view) { $this->id = (int) FormUtil::getPassedValue('id', -1, 'GETPOST'); $objectid = FormUtil::getPassedValue('objectid', '', 'GETPOST'); $redirect = base64_decode(FormUtil::getPassedValue('redirect', '', 'GETPOST')); $view->caching = false; $comment = ModUtil::apiFunc('EZComments', 'user', 'get', array('id' => $this->id)); if ($comment == false || !is_array($comment)) { return LogUtil::registerError($this->__('No such comment found.'), ModUtil::url('EZComments', 'user', 'main')); } // check if user is allowed to modify this content $modifyowntime = (int) ModUtil::getVar('EZComments', 'modifyowntime'); $ts = strtotime($comment['date']); if (!SecurityUtil::checkPermission('EZComments::', '::', ACCESS_ADMIN)) { // user has no admin permissions. Only commenting user should be able to modify if ($comment['uid'] != UserUtil::getVar('uid')) { // foreign content and no admin permissions $view->assign('nomodify', 1); $this->nomodify = 1; } else { if ($modifyowntime > 0 && $ts + $modifyowntime * 60 * 60 < time()) { $view->assign('nomodify', 1); $this->nomodify = 1; } } } else { $view->assign('nomodify', 0); $this->nomodify = 0; } $view->assign('redirect', isset($redirect) && !empty($redirect) ? true : false); // finally asign the comment information $view->assign($comment); return true; }
/** * Return a reference depending on this reference name * * @param int $args['ref'] Id of the reference that have to be returned * @return array array of items, or false on failure */ public function getref($args) { if (!isset($args['ref'])) { return LogUtil::registerError(__('Error! Could not do what you wanted. Please check your input.')); } return DBUtil::selectObjectByID('IWwebbox', $args['ref'], 'ref', '', ''); }
public function Install() { // Checks if module IWmain is installed. If not returns error $modid = ModUtil::getIdFromName('IWmain'); $modinfo = ModUtil::getInfo($modid); if ($modinfo['state'] != 3) { return LogUtil::registerError($this->__('Module IWmain is needed. You have to install the IWmain module before installing it.')); } // Check if the version needed is correct $versionNeeded = '2.0'; if (!ModUtil::func('IWmain', 'admin', 'checkVersion', array('version' => $versionNeeded))) { return false; } // create module tables $tables = array('IWstats', 'IWstats_summary'); foreach ($tables as $table) { if (!DBUtil::createTable($table)) { return false; } } // create several indexes for IWstats table $table = DBUtil::getTables(); $c = $table['IWstats_column']; if (!DBUtil::createIndex($c['moduleid'], 'IWstats', 'moduleid')) { return false; } if (!DBUtil::createIndex($c['uid'], 'IWstats', 'uid')) { return false; } if (!DBUtil::createIndex($c['ip'], 'IWstats', 'ip')) { return false; } if (!DBUtil::createIndex($c['ipForward'], 'IWstats', 'ipForward')) { return false; } if (!DBUtil::createIndex($c['ipClient'], 'IWstats', 'ipClient')) { return false; } if (!DBUtil::createIndex($c['userAgent'], 'IWstats', 'userAgent')) { return false; } if (!DBUtil::createIndex($c['isadmin'], 'IWstats', 'isadmin')) { return false; } // Set up config variables $this->setVar('skippedIps', '') ->setVar('modulesSkipped', '') ->setVar('deleteFromDays', 90) ->setVar('keepDays', 90); // create the system init hook EventUtil::registerPersistentModuleHandler('IWstats', 'core.postinit', array('IWstats_Listeners', 'coreinit')); // Initialisation successful return true; }
function mediashare_source_browserapi_addMediaItem($args) { $dom = ZLanguage::getModuleDomain('mediashare'); if (!isset($args['albumId'])) { return LogUtil::registerError(__f('Missing [%1$s] in \'%2$s\'', array('albumId', 'source_browserapi.addMediaItem'), $dom)); } $uploadFilename = $args['uploadFilename']; // FIXME Required because the globals?? //pnModAPILoad('mediashare', 'edit'); // For OPEN_BASEDIR reasons we move the uploaded file as fast as possible to an accessible place // MUST remember to remove it afterwards!!! // Create and check tmpfilename $tmpDir = pnModGetVar('mediashare', 'tmpDirName'); if (($tmpFilename = tempnam($tmpDir, 'Upload_')) === false) { return LogUtil::registerError(__f("Unable to create a temporary file in '%s'", $tmpDir, $dom) . ' - ' . __('(uploading image)', $dom)); } if (is_uploaded_file($uploadFilename)) { if (move_uploaded_file($uploadFilename, $tmpFilename) === false) { unlink($tmpFilename); return LogUtil::registerError(__f('Unable to move uploaded file from \'%1$s\' to \'%2$s\'', array($uploadFilename, $tmpFilename), $dom) . ' - ' . __('(uploading image)', $dom)); } } else { if (!copy($uploadFilename, $tmpFilename)) { unlink($tmpFilename); return LogUtil::registerError(__f('Unable to copy the file from \'%1$s\' to \'%2$s\'', array($uploadFilename, $tmpFilename), $dom) . ' - ' . __('(adding image)', $dom)); } } $args['mediaFilename'] = $tmpFilename; $result = pnModAPIFunc('mediashare', 'edit', 'addMediaItem', $args); unlink($tmpFilename); return $result; }
function delete() { // security check if (!SecurityUtil::checkPermission('AddressBook::', '::', ACCESS_ADMIN)) { return LogUtil::registerPermissionError(); } $ot = FormUtil::getPassedValue('ot', 'categories', 'GETPOST'); $id = (int) FormUtil::getPassedValue('id', 0, 'GETPOST'); $url = ModUtil::url('AddressBook', 'admin', 'view', array('ot' => $ot)); $class = 'AddressBook_DBObject_' . ucfirst($ot); if (!class_exists($class)) { return z_exit(__f('Error! Unable to load class [%s]', $ot)); } $object = new $class(); $data = $object->get($id); if (!$data) { LogUtil::registerError(__f('%1$s with ID of %2$s doesn\'\\t seem to exist', array($ot, $id))); return System::redirect($url); } $object->delete(); if ($ot == "customfield") { $sql = "ALTER TABLE addressbook_address DROP adr_custom_" . $id; try { DBUtil::executeSQL($sql, -1, -1, true, true); } catch (Exception $e) { } } LogUtil::registerStatus($this->__('Done! Item deleted.')); return System::redirect($url); }
/** * Get version metadata for a module. * * @param string $moduleName Module Name. * @param string $rootdir Root directory of the module (default: modules). * * @return Zikula_AbstractVersion|array */ public static function getVersionMeta($moduleName, $rootdir = 'modules') { $modversion = array(); $class = "{$moduleName}_Version"; if (class_exists($class)) { try { $modversion = new $class(); } catch (Exception $e) { LogUtil::log(__f('%1$s threw an exception reporting: "%2$s"', array($class, $e->getMessage())), Zikula_AbstractErrorHandler::CRIT); throw new InvalidArgumentException(__f('%1$s threw an exception reporting: "%2$s"', array($class, $e->getMessage())), 0, $e); } if (!$modversion instanceof Zikula_AbstractVersion) { LogUtil::registerError(__f('%s is not an instance of Zikula_AbstractVersion', get_class($modversion))); } } elseif (is_dir("{$rootdir}/{$moduleName}/lib")) { LogUtil::registerError(__f('Could not find %1$s for module %2$s', array("{$moduleName}_Version", $moduleName))); } else { // pre 1.3 modules $legacyVersionPath = "{$rootdir}/{$moduleName}/pnversion.php"; if (!file_exists($legacyVersionPath)) { if (!System::isUpgrading()) { LogUtil::log(__f("Error! Could not load the file '%s'.", $legacyVersionPath), Zikula_AbstractErrorHandler::CRIT); LogUtil::registerError(__f("Error! Could not load the file '%s'.", $legacyVersionPath)); } $modversion = array('name' => $moduleName, 'description' => '', 'version' => 0); } else { include $legacyVersionPath; } } return $modversion; }
/** * Search * * do the actual search and display the results * * @return output the search results */ public function search($args) { if (!SecurityUtil::checkPermission('EZComments::', '::', ACCESS_READ)) { return true; } $minlen = 3; $maxlen = 30; if (strlen($args['q']) < $minlen || strlen($args['q']) > $maxlen) { return LogUtil::registerStatus($this->__f('The comments can only be searched for words that are longer than %1$s and less than %2$s characters!', array($minlen, $maxlen))); } ModUtil::dbInfoLoad('Search'); $tables = DBUtil::getTables(); // ezcomments tables $ezcommentstable = $tables['EZComments']; $ezcommentscolumn = $tables['EZComments_column']; // our own tables $searchTable = $tables['search_result']; $searchColumn = $tables['search_result_column']; // where $where = Search_Api_User::construct_where($args, array($ezcommentscolumn['subject'], $ezcommentscolumn['comment'])); $where .= " AND " . $ezcommentscolumn['url'] . " != ''"; $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\n "; $comments = DBUtil::selectObjectArray('EZComments', $where); foreach ($comments as $comment) { $sql = $insertSql . '(' . '\'' . DataUtil::formatForStore($comment['subject']) . '\', ' . '\'' . DataUtil::formatForStore($comment['comment']) . '\', ' . '\'' . DataUtil::formatForStore($comment['url']) . '\', ' . '\'' . 'EZComments' . '\', ' . '\'' . DataUtil::formatForStore($comment['date']) . '\', ' . '\'' . DataUtil::formatForStore($sessionId) . '\')'; $insertResult = DBUtil::executeSQL($sql); if (!$insertResult) { return LogUtil::registerError($this->__('Error! Could not load items.')); } } return true; }
/** * */ public function moduleSearch($args) { $dom = ZLanguage::getModuleDomain('MUBoard'); $searchsubmit = $this->request->getPost()->filter('searchsubmit', 'none', FILTER_SANITIZE_STRING); $searchoptions = $this->request->getPost()->filter('searchoptions', 'all', FILTER_SANITIZE_STRING); $searchplace = $this->request->getPost()->filter('searchplace', 'title', FILTER_SANITIZE_STRING); $resultorder = $this->request->getPost()->filter('resultorder', 'none', FILTER_SANITIZE_STRING); $kind = $this->request->query->filter('kind', 'none', FILTER_SANITIZE_STRING); // user has not entered a string and there is 'none' as kind of search if ($searchsubmit == 'none' && $kind == 'none') { // return search form template return $this->searchRedirect(); } else { if ($searchsubmit != 'none' && $kind == 'none') { $searchstring = $this->request->getPost()->filter('searchstring', '', FILTER_SANITIZE_STRING); if ($searchstring == '') { $url = ModUtil::url($this->name, 'search', 'modulesearch'); return LogUtil::registerError(__('You have to enter a string!', $dom), null, $url); } else { $args['searchstring'] = $searchstring; $args['searchoptions'] = $searchoptions; $args['searchplace'] = $searchplace; $args['resultorder'] = $resultorder; $args['kind'] = $kind; } } if ($searchsubmit == 'none' && $kind != 'none') { $args['kind'] = $kind; } } return ModUtil::apiFunc($this->name, 'search', 'moduleSearch', $args); }
/** * Validate the data for a category * * @param array $data The data for the category. * * @return boolean true/false Whether the provided data is valid. */ public static function validateCategoryData($data) { $view = \Zikula_View::getInstance(); if (empty($data['name'])) { $msg = $view->__('Error! You did not enter a name for the category.'); \LogUtil::registerError($msg); return false; } if (empty($data['parent_id'])) { $msg = $view->__('Error! You did not provide a parent for the category.'); \LogUtil::registerError($msg); return false; } // get entity manager $em = \ServiceUtil::get('doctrine')->getManager(); // process name $data['name'] = self::processCategoryName($data['name']); // check that we don't have another category with the same name // on the same level $dql = "\n SELECT count(c.id)\n FROM Zikula\\Core\\Doctrine\\Entity\\Category c\n WHERE c.name = '" . $data['name'] . "'\n AND c.parent = " . $data['parent_id']; if (isset($data['id']) && is_numeric($data['id'])) { $dql .= " AND c.id <> " . $data['id']; } $query = $em->createQuery($dql); $exists = (int) $query->getSingleScalarResult(); if ($exists > 0) { $msg = $view->__f('Category %s must be unique under parent', $data['name']); \LogUtil::registerError($msg); return false; } return true; }
public function handleCommand(Zikula_Form_View $view, &$args) { if ($args['commandName'] == 'save') { if (!$this->view->isValid()) { return false; } $data = $this->view->getValues(); if (!ModUtil::setVars('Content', $data['config'])) { return $this->view->setErrorMsg($this->__('Failed to set configuration variables')); } if ($data['config']['categoryUsage'] < 4) { // load the category registry util $mainCategory = CategoryRegistryUtil::getRegisteredModuleCategory('Content', 'content_page', $data['config']['categoryPropPrimary']); if (!$mainCategory) { return LogUtil::registerError($this->__('Main category property does not exist.')); } if ($data['config']['categoryUsage'] < 3) { $secondCategory = CategoryRegistryUtil::getRegisteredModuleCategory('Content', 'content_page', $data['config']['categoryPropSecondary']); if (!$secondCategory) { return LogUtil::registerError($this->__('Second category property does not exist.')); } } } LogUtil::registerStatus($this->__('Done! Saved module configuration.')); } else if ($args['commandName'] == 'cancel') { } $url = ModUtil::url('Content', 'admin', 'main'); return $this->view->redirect($url); }
/** * Update operation. * @param object $entity The treated object. * @param array $params Additional arguments. * * @return bool False on failure or true if everything worked well. */ function Reviews_operation_update(&$entity, $params) { $dom = ZLanguage::getModuleDomain('Reviews'); // initialise the result flag $result = false; $objectType = $entity['_objectType']; $currentState = $entity['workflowState']; // get attributes read from the workflow if (isset($params['nextstate']) && !empty($params['nextstate'])) { // assign value to the data object $entity['workflowState'] = $params['nextstate']; if ($params['nextstate'] == 'archived') { // bypass validator (for example an end date could have lost it's "value in future") $entity['_bypassValidation'] = true; } } // get entity manager $serviceManager = ServiceUtil::getManager(); $entityManager = $serviceManager->getService('doctrine.entitymanager'); // save entity data try { //$this->entityManager->transactional(function($entityManager) { $entityManager->persist($entity); $entityManager->flush(); //}); $result = true; } catch (\Exception $e) { LogUtil::registerError($e->getMessage()); } // return result of this operation return $result; }
/** * Vetos (denies) a login attempt, and forces the user to change his password. * * This handler is triggered by the 'user.login.veto' event. It vetos (denies) a * login attempt if the users's account record is flagged to force the user to change * his password maintained by the Users module. If the user does not maintain a * password on his Users account (e.g., he registered with and logs in with a Google * Account or an OpenID, and never established a Users password), then this handler * will not trigger a change of password. * * @param Zikula_Event $event The event that triggered this handler. * * @return void */ public static function forcedPasswordChangeListener(Zikula_Event $event) { $userObj = $event->getSubject(); $userMustChangePassword = UserUtil::getVar('_Users_mustChangePassword', $userObj['uid'], false); if ($userMustChangePassword && ($userObj['pass'] != Users_Constant::PWD_NO_USERS_AUTHENTICATION)) { $event->stop(); $event->setData(array( 'redirect_func' => array( 'modname' => self::$modname, 'type' => 'user', 'func' => 'changePassword', 'args' => array( 'login' => true, ), 'session' => array( 'var' => 'Users_Controller_User_changePassword', 'namespace' => 'Zikula_Users', ) ), )); LogUtil::registerError(__("Your log-in request was not completed. You must change your web site account's password first.")); } }
public function Install() { // Checks if module IWmain is installed. If not returns error $modid = ModUtil::getIdFromName('IWmain'); $modinfo = ModUtil::getInfo($modid); if ($modinfo['state'] != 3) { return LogUtil::registerError($this->$this->__('Module IWmain is needed. You have to install the IWmain module before installing it.')); } // Check if the version needed is correct $versionNeeded = '3.0.0'; if (!ModUtil::func('IWmain', 'admin', 'checkVersion', array('version' => $versionNeeded))) { return false; } // Create module table if (!DBUtil::createTable('IWusers')) return false; if (!DBUtil::createTable('IWusers_friends')) return false; // Create the index if (!DBUtil::createIndex('iw_uid', 'IWusers', 'uid')) return false; if (!DBUtil::createIndex('iw_uid', 'IWusers_friends', 'uid')) return false; if (!DBUtil::createIndex('iw_fid', 'IWusers_friends', 'fid')) return false; //Create module vars $this->setVar('friendsSystemAvailable', 1) ->setVar('invisibleGroupsInList', '$') ->setVar('usersCanManageName', 0) ->setVar('allowUserChangeAvatar', '1') ->setVar('allowUserSetTheirSex', '0') ->setVar('allowUserDescribeTheirSelves', '1') ->setVar('avatarChangeValidationNeeded', '1') ->setVar('usersPictureFolder', 'photos'); return true; }
public function install() { \DoctrineHelper::createSchema($this->entityManager, static::getEntities()); $this->createLicenses(); $temporaryUploadCollection = new CollectionEntity(); $temporaryUploadCollection->setTitle($this->__('Temporary Upload Collection'))->setDescription($this->__('This collection is needed as temporary storage for uploaded files. Do not edit or delete!')); $this->entityManager->persist($temporaryUploadCollection); $exampleCollection = new CollectionEntity(); $exampleCollection->setTitle($this->__('Example collection'))->setDescription($this->__('Edit or delete this example collection')); $this->entityManager->persist($exampleCollection); $this->entityManager->flush(); if ($temporaryUploadCollection->getId() != CollectionEntity::TEMPORARY_UPLOAD_COLLECTION_ID) { \LogUtil::registerError($this->__('The id of the generated "temporary upload collection" must be 1, but has a different value. This should not have happened. Please report this error.')); } \HookUtil::registerProviderBundles($this->version->getHookProviderBundles()); \HookUtil::registerSubscriberBundles($this->version->getHookSubscriberBundles()); $this->setVar('descriptionEscapingStrategyForCollection', 'text'); $this->setVar('descriptionEscapingStrategyForMedia', 'text'); $this->setVar('defaultCollectionTemplate', 'cards'); $this->setVar('slugEditable', true); $this->setVar('lastNewVersionCheck', 0); $this->setVar('newVersionAvailable', false); $this->createUploadDir(); return true; }
/** * Create or edit record. * * @return string|boolean Output. */ public function edit() { if (!SecurityUtil::checkPermission('ExampleDoctrine::', '::', ACCESS_ADD)) { return LogUtil::registerPermissionError(ModUtil::url('ExampleDoctrine', 'user', 'index')); } $id = $this->request->query->getInt('id'); if ($id) { // load user with id $user = $this->entityManager->find('ExampleDoctrine_Entity_User', $id); if (!$user) { return LogUtil::registerError($this->__f('User with id %s not found', $id)); } } else { $user = new ExampleDoctrine_Entity_User(); } /* @var $form Symfony\Component\Form\Form */ $form = $this->serviceManager->getService('symfony.formfactory')->create(new ExampleDoctrine_Form_UserType(), $user); if ($this->request->getMethod() == 'POST') { $form->bindRequest($this->request); if ($form->isValid()) { $data = $form->getData(); $this->entityManager->persist($data); $this->entityManager->flush(); return $this->redirect(ModUtil::url('ExampleDoctrine', 'user', 'view')); } } return $this->view->assign('form', $form->createView())->fetch('exampledoctrine_user_edit.tpl'); }
public function get_sense_grup() { $users = DBUtil::selectObjectArray('users', '', '', -1, -1, 'uid'); // Check for a DB error if ($users === false) { return LogUtil::registerError($this->__('Error! Could not load items.')); } // get all users that are in any group $allUsersWithGroup = DBUtil::selectObjectArray('group_membership', '', '', -1, -1, 'uid'); if ($allUsersWithGroup === false) { return LogUtil::registerError($this->__('Error! Could not load items.')); } $diff = array_diff_key($users, $allUsersWithGroup); $usersList = '$$'; $registres = array(); if (count($diff) > 0) { foreach ($diff as $user) { $usersList .= $user['uid'] . '$$'; } //get all users information $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue'); $usersInfo = ModUtil::func('IWmain', 'user', 'getAllUsersInfo', array('sv' => $sv, 'list' => $usersList, 'info' => 'ccn')); foreach ($usersInfo as $key => $value) { $registres[] = array('name' => $value, 'id' => $key); } } return $registres; }
public function install() { if (!SecurityUtil::checkPermission('IWdocmanager::', '::', ACCESS_ADMIN)) { return LogUtil::registerPermissionError(); } // Checks if module IWmain is installed. If not returns error if (!ModUtil::available('IWmain')) { return LogUtil::registerError(__('Module IWmain is required. You have to install the IWmain module previously to install it.')); } // Check if the version needed is correct $versionNeeded = '3.0.0'; if (!ModUtil::func('IWmain', 'admin', 'checkVersion', array('version' => $versionNeeded))) { return false; } if (!DBUtil::createTable('IWdocmanager')) return false; if (!DBUtil::createTable('IWdocmanager_categories')) return false; //Create indexes $table = DBUtil::getTables(); $c = $table['IWdocmanager_column']; DBUtil::createIndex($c['author'], 'IWdocmanager', 'author'); DBUtil::createIndex($c['categoryId'], 'IWdocmanager', 'categoryId'); //Create module vars $this->setVar('documentsFolder', 'documents') ->setVar('notifyMail', '') ->setVar('editTime', '45') ->setVar('deleteTime', '20'); return true; }
/** * Do the migration * * With this function, the actual migration is done. * * @return boolean true on sucessful migration, false else * @since 0.2 */ function EZComments_migrateapi_pnFlashGames() { // Security check if (!SecurityUtil::checkPermission('EZComments::', '::', ACCESS_ADMIN)) { return LogUtil::registerError('pnFlashGames comments migration: Not Admin'); } // Get datbase setup $tables = DBUtil::getTables(); $Commentstable = $tables['pnFlashGames_comments']; $Commentscolumn = $tables['pnFlashGames_comments_column']; $Usertable = $tables['users']; $Usercolumn = $tables['users_column']; $sql = "SELECT {$Commentscolumn['gid']},\n {$Commentscolumn['uname']},\n {$Commentscolumn['date']},\n {$Commentscolumn['comment']},\n {$Usercolumn['uid']}\n FROM {$Commentstable}\n LEFT JOIN {$Usertable}\n ON {$Commentscolumn['uname']} = {$Usercolumn['uname']}"; $result = DBUtil::executeSQL($sql); if ($result == false) { return LogUtil::registerError('pnFlashGames migration: DB Error: ' . $sql . ' -- ' . mysql_error()); } // loop through the old comments and insert them one by one into the DB $items = DBUtil::marshalObjects($result, array('gid', 'uname', 'date', 'comment', 'uid')); foreach ($items as $item) { // set the correct user id for anonymous users if (empty($item['uid'])) { $item['uid'] = 1; } $id = ModUtil::apiFunc('EZComments', 'user', 'create', array('mod' => 'pnFlashGames', 'objectid' => DataUtil::formatForStore($item['gid']), 'url' => ModUtil::url('pnFlashGames', 'user', 'display', array('id' => $item['gid'])), 'comment' => $item['comment'], 'subject' => '', 'uid' => $item['uid'], 'date' => $item['date'])); if (!$id) { return LogUtil::registerError('pnFlashGames migration: Error creating comment'); } } return LogUtil::registerStatus('pnFlashGames migration successful'); }
/** * Setup form. * * @param Zikula_Form_View $view Current Zikula_Form_View instance. * * @return boolean */ public function initialize(Zikula_Form_View $view) { // load and assign registred categories $categories = CategoryRegistryUtil::getRegisteredModuleCategories('ExampleDoctrine', 'User', 'id'); $view->assign('registries', $categories); $id = FormUtil::getPassedValue('id', null, "GET", FILTER_SANITIZE_NUMBER_INT); if ($id) { // load user with id $user = $this->entityManager->find('ExampleDoctrine_Entity_User', $id); if ($user) { // switch to edit mode $this->_id = $id; } else { return LogUtil::registerError($this->__f('User with id %s not found', $id)); } } else { $user = new ExampleDoctrine_Entity_User(); } $userData = $user->toArray(); // overwrite attributes array entry with a form compitable format $field1 = $user->getAttributes()->get('field1') ? $user->getAttributes()->get('field1')->getValue() : ''; $field2 = $user->getAttributes()->get('field2') ? $user->getAttributes()->get('field2')->getValue() : ''; $userData['attributes'] = array('field1' => $field1, 'field2' => $field2); // assign current values to form fields $view->assign('user', $user)->assign('meta', $user->getMetadata() != null ? $user->getMetadata()->toArray() : array())->assign($userData); $this->_user = $user; return true; }
/** * Function to delete an ids log entry */ public function deleteidsentry() { // verify auth-key $this->checkCsrfToken(); // Security check if (!SecurityUtil::checkPermission('SecurityCenter::', '::', ACCESS_DELETE)) { return LogUtil::registerPermissionError(); } // get paramters $id = (int)FormUtil::getPassedValue('id', 0, 'GETPOST'); // sanity check if (!is_numeric($id)) { return LogUtil::registerError($this->__f("Error! Received a non-numeric object ID '%s'.", $id)); } $class = 'SecurityCenter_DBObject_Intrusion'; $object = new $class(); $data = $object->get($id); // check for valid object if (!$data) { return LogUtil::registerError($this->__f('Error! Invalid %s received.', "object ID [$id]")); } else { // delete object $object->delete(); } // redirect back to view function $this->redirect(ModUtil::url('SecurityCenter', 'admin', 'viewidslog')); }
/** * display theme changing user interface */ public function main() { // check if theme switching is allowed if (!System::getVar('theme_change')) { LogUtil::registerError($this->__('Notice: Theme switching is currently disabled.')); $this->redirect(ModUtil::url('Users', 'user', 'main')); } if (!SecurityUtil::checkPermission('Theme::', '::', ACCESS_COMMENT)) { return LogUtil::registerPermissionError(); } // get our input $startnum = FormUtil::getPassedValue('startnum', isset($args['startnum']) ? $args['startnum'] : 1, 'GET'); // we need this value multiple times, so we keep it $itemsperpage = $this->getVar('itemsperpage'); // get some use information about our environment $currenttheme = ThemeUtil::getInfo(ThemeUtil::getIDFromName(UserUtil::getTheme())); // get all themes in our environment $allthemes = ThemeUtil::getAllThemes(ThemeUtil::FILTER_USER); $previewthemes = array(); $currentthemepic = null; foreach ($allthemes as $key => $themeinfo) { $themename = $themeinfo['name']; if (file_exists($themepic = 'themes/'.DataUtil::formatForOS($themeinfo['directory']).'/images/preview_medium.png')) { $themeinfo['previewImage'] = $themepic; $themeinfo['largeImage'] = 'themes/'.DataUtil::formatForOS($themeinfo['directory']).'/images/preview_large.png'; } else { $themeinfo['previewImage'] = 'system/Theme/images/preview_medium.png'; $themeinfo['largeImage'] = 'system/Theme/images/preview_large.png'; } if ($themename == $currenttheme['name']) { $currentthemepic = $themepic; unset($allthemes[$key]); } else { $previewthemes[$themename] = $themeinfo; } } $previewthemes = array_slice($previewthemes, $startnum-1, $itemsperpage); $this->view->setCaching(Zikula_View::CACHE_DISABLED); $this->view->assign('currentthemepic', $currentthemepic) ->assign('currenttheme', $currenttheme) ->assign('themes', $previewthemes) ->assign('defaulttheme', ThemeUtil::getInfo(ThemeUtil::getIDFromName(System::getVar('Default_Theme')))); // assign the values for the pager plugin $this->view->assign('pager', array('numitems' => sizeof($allthemes), 'itemsperpage' => $itemsperpage)); // Return the output that has been generated by this function return $this->view->fetch('theme_user_main.tpl'); }
function getPluginData($filtAfterDate = null) { if (!$this->pluginAvailable()) { return array(); } if (!SecurityUtil::checkPermission('ZphpBB2::', '::', ACCESS_READ, $this->userNewsletter)) { return array(); } //ModUtil::load('ZphpBB2'); $table_prefix = ModUtil::getVar('ZphpBB2', 'table_prefix', 'phpbb_'); $TOPICS_TABLE = $table_prefix . "topics"; $POSTS_TABLE = $table_prefix . "posts"; $POSTS_TEXT_TABLE = $table_prefix . "posts_text"; $FORUMS_TABLE = $table_prefix . "forums"; $connection = Doctrine_Manager::getInstance()->getCurrentConnection(); $sql = "SELECT forum_id, forum_name FROM {$FORUMS_TABLE} WHERE auth_view <= 0 AND auth_read <= 0"; $stmt = $connection->prepare($sql); try { $stmt->execute(); } catch (Exception $e) { return LogUtil::registerError(__('Error in plugin') . ' ZphpBB2: ' . $e->getMessage()); } $userforums = $stmt->fetchAll(Doctrine_Core::FETCH_ASSOC); $allowedforums = array(); foreach (array_keys($userforums) as $k) { if (SecurityUtil::checkPermission('ZphpBB2::', ":" . $userforums[$k]['forum_id'] . ":", ACCESS_READ, $this->userNewsletter)) { $allowedforums[] = $userforums[$k]['forum_id']; } } if (count($allowedforums) == 0) { // user is not allowed to read any forum at all return array(); } $sql = "SELECT {$TOPICS_TABLE}.topic_title, {$TOPICS_TABLE}.topic_replies, {$TOPICS_TABLE}.topic_views, {$TOPICS_TABLE}.topic_id, \n {$POSTS_TABLE}.post_id, {$POSTS_TABLE}.poster_id, {$POSTS_TABLE}.post_time, \n {$POSTS_TEXT_TABLE}.post_subject, {$POSTS_TEXT_TABLE}.post_text, \n {$FORUMS_TABLE}.forum_name \n FROM {$TOPICS_TABLE} \n INNER JOIN {$POSTS_TABLE} ON {$POSTS_TABLE}.topic_id = {$TOPICS_TABLE}.topic_id \n INNER JOIN {$POSTS_TEXT_TABLE} ON {$POSTS_TEXT_TABLE}.post_id = {$POSTS_TABLE}.post_id \n INNER JOIN {$FORUMS_TABLE} ON {$FORUMS_TABLE}.forum_id = {$TOPICS_TABLE}.forum_id"; $sql .= " WHERE {$TOPICS_TABLE}.forum_id IN (" . implode(',', $allowedforums) . ")"; if ($filtAfterDate) { $sql .= " AND FROM_UNIXTIME(post_time)>='" . $filtAfterDate . "'"; } $sql .= " ORDER BY post_time DESC LIMIT " . $this->nItems; $stmt = $connection->prepare($sql); try { $stmt->execute(); } catch (Exception $e) { return LogUtil::registerError(__('Error in plugin') . ' ZphpBB2: ' . $e->getMessage()); } $items = $stmt->fetchAll(Doctrine_Core::FETCH_BOTH); foreach (array_keys($items) as $k) { $items[$k]['topicurl'] = ModUtil::url('ZphpBB2', 'user', 'viewtopic', array('t' => $items[$k]['topic_id'])); $items[$k]['posturl'] = ModUtil::url('ZphpBB2', 'user', 'viewtopic', array('p' => $items[$k]['post_id'] . '#' . $items[$k]['post_id'])); $items[$k]['postdate'] = DateUtil::getDatetime($items[$k]['post_time']); $items[$k]['username'] = UserUtil::getVar('uname', $items[$k]['poster_id']); $items[$k]['nl_title'] = $items[$k]['topic_title']; $items[$k]['nl_url_title'] = System::getBaseUrl() . $items[$k]['posturl']; $items[$k]['nl_content'] = $items[$k]['forum_name'] . ', ' . $items[$k]['username'] . "<br />\n" . $items[$k]['post_text']; $items[$k]['nl_url_readmore'] = $items[$k]['nl_url_title']; } return $items; }
/** * Set plugins */ function mediashare_adminapi_setTemplateGlobally($args) { $dom = ZLanguage::getModuleDomain('mediashare'); $new = array('template' => DataUtil::formatForStore($args['template'])); if (!DBUtil::updateObject($new, 'mediashare_albums', '1=1', 'id')) { return LogUtil::registerError(__f('Error in %1$s: %2$s.', array('adminapi.setTemplateGlobally', 'Could not set the template.'), $dom)); } return true; }
function updateFile($orgFileReference, $newFilename) { $dom = ZLanguage::getModuleDomain('mediashare'); $orgFilename = $this->storageDir . '/' . DataUtil::formatForOS($orgFileReference); if (!copy($newFilename, $orgFilename)) { return LogUtil::registerError(__f('Unable to copy the file from \'%1$s\' to \'%2$s\'', array($newFilename, $orgFileReference), $dom)); } return true; }
public function initialize(Zikula_Form_View $view) { $this->contentId = (int) FormUtil::getPassedValue('cid', isset($this->args['cid']) ? $this->args['cid'] : -1); $this->language = ZLanguage::getLanguageCode(); $content = ModUtil::apiFunc('Content', 'Content', 'getContent', array('id' => $this->contentId, 'language' => $this->language, 'translate' => false)); if ($content === false) { return $this->view->registerError(null); } $this->contentType = ModUtil::apiFunc('Content', 'Content', 'getContentType', $content); if ($this->contentType === false) { return $this->view->registerError(null); } $this->pageId = $content['pageId']; if ((bool) $this->getVar('inheritPermissions', false) === true) { if (!ModUtil::apiFunc('Content', 'page', 'checkPermissionForPageInheritance', array('pageId' => $this->pageId, 'level' => ACCESS_EDIT))) { throw new Zikula_Exception_Forbidden(LogUtil::getErrorMsgPermission()); } } else { if (!SecurityUtil::checkPermission('Content:page:', $this->pageId . '::', ACCESS_EDIT)) { throw new Zikula_Exception_Forbidden(LogUtil::getErrorMsgPermission()); } } $page = ModUtil::apiFunc('Content', 'Page', 'getPage', array('id' => $this->pageId, 'includeContent' => false, 'filter' => array('checkActive' => false))); if ($page === false) { return $this->view->registerError(null); } if ($this->language == $page['language']) { return $this->view->registerError(LogUtil::registerError($this->__f('Sorry, you cannot translate an item to the same language as it\'s default language ("%1$s"). Change the current site language ("%2$s") to some other language on the <a href="%3$s">localisation settings</a> page.<br /> Another way is to add, for instance, <strong>&lang=de</strong> to the url for changing the current site language to German and after that the item can be translated to German.', array($page['language'], $this->language, ModUtil::url('Settings', 'admin', 'multilingual'))))); } $translationInfo = ModUtil::apiFunc('Content', 'Content', 'getTranslationInfo', array('contentId' => $this->contentId)); if ($translationInfo === false) { return $this->view->registerError(null); } PageUtil::setVar('title', $this->__("Translate content item") . ' : ' . $page['title']); $templates = $this->contentType['plugin']->getTranslationTemplates(); $this->view->assign('translationtemplates', $templates); $this->view->assign('page', $page); $this->view->assign('data', $content['data']); $this->view->assign('isTranslatable', $content['isTranslatable']); $this->view->assign('translated', isset($content['translated']) ? $content['translated'] : array()); $this->view->assign('translationInfo', $translationInfo); $this->view->assign('translationStep', $this->contentId); $this->view->assign('language', $this->language); $this->view->assign('contentType', $this->contentType); Content_Util::contentAddAccess($this->view, $this->pageId); if (!$this->view->isPostBack() && FormUtil::getPassedValue('back', 0)) { $this->backref = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; } if ($this->backref != null) { $returnUrl = $this->backref; } else { $returnUrl = ModUtil::url('Content', 'admin', 'editpage', array('pid' => $this->pageId)); } ModUtil::apiFunc('PageLock', 'user', 'pageLock', array('lockName' => "contentTranslateContent{$this->contentId}", 'returnUrl' => $returnUrl)); return true; }
/** * get all categories for a user * */ public function getusercategories($args) { $args['returnCategory'] = 1; $userRootCat = $this->getuserrootcat($args); if (!$userRootCat) { return LogUtil::registerError($this->__f('Error! The user root node seems to point towards an invalid category: %s.', $userRoot)); } $relative = isset($args['relative']) ? $args['relative'] : false; return CategoryUtil::getCategoriesByParentID($userRootCat['id'], '', $relative); }
public function setDocRoot($value) { $this->throwForbiddenUnless(SecurityUtil::checkPermission('Llicencies::', '::', ACCESS_ADMIN)); if (ModUtil::setVar($this->name, 'LlicenciesDocRoot', $value)){ LogUtil::registerStatus(__('El paràmetre s\'ha actualitzat correctament.')); } else LogUtil::registerError(__('El paràmetre no s\'ha pogut actualitzar.')); return true; }
/** * Initialise the IWmenu module creating module tables and module vars * @author Albert Perez Monfort (aperezm@xtec.cat) * @return bool true if successful, false otherwise */ public function Install() { // Checks if module IWmain is installed. If not returns error $modid = ModUtil::getIdFromName('IWmain'); $modinfo = ModUtil::getInfo($modid); if ($modinfo['state'] != 3) { return LogUtil::registerError($this->__('Module IWmain is needed. You have to install the IWmain module previously to install it.')); } // Check if the version needed is correct $versionNeeded = '3.0.0'; if (!ModUtil::func('IWmain', 'admin', 'checkVersion', array('version' => $versionNeeded))) { return false; } // Create module table if (!DBUtil::createTable('IWmenu')) return false; //Create indexes $pntable = DBUtil::getTables(); $c = $pntable['IWmenu_column']; if (!DBUtil::createIndex($c['id_parent'], 'IWmenu', 'id_parent')) return false; //Create module vars ModUtil::setVar('IWmenu', 'height', 26); // Default height ModUtil::setVar('IWmenu', 'width', 200); // Default width ModUtil::setVar('IWmenu', 'imagedir', "menu"); // Default directori of menu images // checks if module vhmenu exists. If it exists import module vhmenu tables $modid = ModUtil::getIdFromName('IWmenu'); $modinfo = ModUtil::getInfo($modid); if ($modinfo['state'] == 3) { // get the objects from the db ModUtil::load('IWvhmenu', 'user'); $items = DBUtil::selectObjectArray('IWvhmenu'); if ($items) { foreach ($items as $item) { $groups = str_replace('|0', '', $item['groups']); $groups = substr($groups, 1, strlen($groups)); $itemArray = array('text' => $item['text'], 'url' => $item['url'], 'icon' => '', 'id_parent' => $item['id_parent'], 'groups' => $groups, 'active' => $item['active'], 'target' => $item['target'], 'descriu' => $item['descriu']); DBUtil::insertObject($itemArray, 'IWmenu', 'mid'); } } } return true; }
/** * Initialise the IWmyrole module creating module vars * @author Albert Pérez Monfort (aperezm@xtec.cat) * @author Josep Ferràndiz Farré (jferran6@xtec.cat) * @return bool true if successful, false otherwise */ public function install() { // Checks if module IWmain is installed. If not returns error $modid = ModUtil::getIdFromName('IWmain'); $modinfo = ModUtil::getInfo($modid); if ($modinfo['state'] != 3) { return LogUtil::registerError($this->__('Module IWmain is required. You have to install the IWmain module previously to install it.')); } // Check if the version needed is correct $versionNeeded = '3.0.0'; if (!ModUtil::func('IWmain', 'admin', 'checkVersion', array('version' => $versionNeeded))) { return false; } // Name of the initial group $name = "changingRole"; // The API function is called. $check = ModUtil::apiFunc('Groups', 'admin', 'getgidbyname', array('name' => $name)); if ($check != false) { // Group already exists // LogUtil::registerError (_GROUPS_ALREADYEXISTS); $gid = $check; } else { // Falta mirar si existeix $gid = ModUtil::apiFunc('Groups', 'admin', 'create', array('name' => $name, 'gtype' => 0, 'state' => 0, 'nbumax' => 0, 'description' => $this->__('Initial group of users that can change the role'))); // Success } // The return value of the function is checked here if ($gid != false) { $this->setVar('rolegroup', $gid); // Gets the first sequence number of permissions list $pos = DBUtil::selectFieldMax('group_perms', 'sequence', 'MIN'); // SET MODULE AND BLOCK PERMISSIONS // insert permission myrole:: :: administration in second place ModUtil::apiFunc('permissions', 'admin', 'create', array('realm' => 0, 'id' => $gid, 'component' => 'IWmyrole::', 'instance' => '::', 'level' => '800', 'insseq' => $pos + 1)); } $this->setVar('groupsNotChangeable', ''); //Initialation successfull return true; }
/** * Gets from the database all the items in the submenus * @author: Albert Pï¿œrez Monfort (aperezm@xtec.cat) * @param: id parent of the menu which want the submenus * @return: And array with the items information */ public function getAllSubMenuItems($args) { $values = array(); // Security check if (!SecurityUtil::checkPermission('IWvhmenu::', '::', ACCESS_READ)) { return LogUtil::registerPermissionError(); } $table = DBUtil::getTables(); $c = $table['IWvhmenu_column']; $where = "$c[id_parent]=$args[id_parent] AND $c[active]=1"; $orderby = "$c[iorder]"; // get the objects from the db $items = DBUtil::selectObjectArray('IWvhmenu', $where, $orderby); // Check for an error with the database code, and if so set an appropriate // error message and return if ($items === false) { return LogUtil::registerError($this->__('Error! Could not load items.')); } // Return the items return $items; }