function testLoadSkin()
 {
     $r = $this->_skinM->loadSkin('{what-an-id}');
     $this->assertTrue($r->is('SKINID_NOT_FOUND'));
     $r = $this->_skinM->loadSkin('{331d1a7c-bf6d-4527-8b1a-b0ee08077a76}');
     $this->assertFalse(isError($r));
     $this->assertEquals('skins_c/working', $this->_pAPI->smarty->compile_dir);
 }
 function testLoadLanguage()
 {
     $r = $this->_i18n->loadLanguage('not_found', 'core/tests');
     $this->assertTrue(isError($r));
     $this->assertTrue($r->is('LANGUAGE_FILE_NOT_FOUND'));
     $r = $this->_i18n->loadLanguage('i18n_example', 'core/tests');
     $this->assertFalse(isError($r));
     $this->assertEquals('i18n_example', $this->_i18n->getLanguage());
 }
Exemple #3
0
 function loadModuleFromConfig($module, $config)
 {
     $mod = databaseLoadModule($module);
     if (isError($mod)) {
         return $mod;
     }
     $mOpts = $config[$module];
     $a = $mod->connect($mOpts['Host'], $mOpts['User'], $mOpts['Password'], $mOpts['DatabaseName']);
     if (isError($a)) {
         return $a;
     }
     $mod->setPrefix($mOpts['Prefix']);
     return $mod;
 }
 function testFindAllDrivers()
 {
     // non existing dir
     $r = DatabaseDriverManager::findAllDriversInDirectory('invalid');
     $this->assertTrue($r->is(new Error('PARAM_ISNOT_A_DIR', 'invalid')));
     // a file
     $r = DatabaseDriverManager::findAllDriversInDirectory('index.php');
     $this->assertTrue($r->is(new Error('PARAM_ISNOT_A_DIR', 'index.php')));
     // where morgos drivers are located
     $r = DatabaseDriverManager::findAllDriversInDirectory('core/dbdrivers');
     $this->assertFalse(isError($r));
     global $installedDrivers;
     $this->assertEquals($installedDrivers, DatabaseDriverManager::getAllInstalledDrivers());
 }
 function getAllFields($tableName)
 {
     $tableName = $this->escapeString($tableName);
     $q = $this->query("SHOW COLUMNS FROM {$tableName}");
     if (!isError($q)) {
         $allFields = array();
         if ($q->numRows() > 0) {
             while ($row = $q->fetchArray()) {
                 $allFields[] = $row;
             }
         }
         return $allFields;
     } else {
         return $q;
     }
 }
 /**
  * Initializes the object.
  *
  * @param $groupID (int)
  * @param $lCode (string) the language code
  * @public
  */
 function initFromDatabaseGroupIDandLanguageCode($groupID, $lCode)
 {
     if (!is_numeric($groupID)) {
         return new Error('DATABASEOBJECT_SQL_INJECTION_FAILED', __FILE__, __LINE__);
     }
     $languageCode = $this->_db->escapeString($lCode);
     $fullTableName = $this->getFullTableName();
     $sql = "SELECT * FROM {$fullTableName} WHERE group_id='{$groupID}' AND language_code='{$languageCode}'";
     $q = $this->_db->query($sql);
     if (!isError($q)) {
         if ($this->_db->numRows($q) == 1) {
             $row = $this->_db->fetchArray($q);
             $this->initFromArray($row);
             $this->setField('ID', $row['translated_group_id']);
         } else {
             return new Error('TRANSLATEDGROUP_CANTFIND_GROUP', $groupID, $languageCode);
         }
     } else {
         return $q;
     }
 }
 /**
  * Initializes the object for a page and translation.
  *
  * @param $pageID (int)
  * @param $languageCode (string)
  * @public
  */
 function initFromDatabasePageIDandLanguageCode($pageID, $languageCode)
 {
     if (!is_numeric($pageID)) {
         return new Error('DATABASEOBJECT_SQL_INJECTION_ATTACK_FAILED', __FILE__, __LINE__);
     }
     $languageCode = $this->db->escapeString($languageCode);
     $fTN = $this->getFullTableName();
     $sql = "SELECT * FROM {$fTN} WHERE {$pageID}='{$pageID}' AND languageCode='{$languageCode}'";
     $q = $this->db->query($sql);
     if (!isError($q)) {
         if ($this->db->numRows($q) == 1) {
             $row = $this->db->fetchArray($q);
             $this->initFromArray($row);
             $this->setOption('ID', $row['translatedPageID']);
         } else {
             return new Error('ERROR_TRANSLATEDPAGE_CANTFIND_PAGE', $pageID, $languageCode);
         }
     } else {
         return $q;
     }
 }
 function onForgotPassword($userAccount, $accountEmail)
 {
     $userM =& $this->_pluginAPI->getUserManager();
     $config =& $this->_pluginAPI->getConfigManager();
     $user = $userM->newUser();
     if ($userAccount != null && $accountEmail != null) {
         $r = new Error('USER_FILLIN_EMAIL_OR_LOGIN');
     } elseif ($userAccount != null) {
         $r = $user->initFromDatabaseLogin($userAccount);
     } elseif ($accountEmail != null) {
         $r = $user->initFromDatabaseEmail($accountEmail);
     } else {
         $r = new Error('USER_FILLIN_EMAIL_OR_LOGIN');
     }
     if (isError($r)) {
         return $r;
     }
     $newPassword = $user->resetPassword();
     $t =& $this->_pluginAPI->getI18NManager();
     $sm =& $this->_pluginAPI->getSmarty();
     $sm->assign('MorgOS_UserName', $user->getLogin());
     $sm->assign('MorgOS_Login', $user->getLogin());
     $sm->assign('MorgOS_NewPassword', $newPassword);
     $sm->assign('MorgOS_SiteTitle', $config->getStringItem('/site/title'));
     $sm->assign('MorgOS_SiteTeam', 'The ' . $config->getStringItem('/site/title') . ' Team');
     $this->sendUserMail($user->getEmail(), $t->translate('New password notification'), $sm->fetch('user/forgotpasswordmail.tpl'));
     $this->_pluginAPI->addMessage($t->translate('A new password is mailed to you.'), NOTICE);
     $this->_pluginAPI->executePreviousAction();
 }
Exemple #9
0
        $email_to = $payer_email;
        $message = $buyer_success_message . "\n";
        if (in_array('1', $DigitalProduct)) {
            @mail($email_to, $subject, $message, $header);
            @copy("../sessions/{$custom}.dat", "../download_sessions/{$custom}.dat");
        }
        $fps = fopen("good_orders/{$txn_id}.txt", "w");
        fwrite($fps, $mail_Body . "\n");
        fclose($fps);
        exit;
    } else {
        unable();
    }
} elseif (strcmp($res, "INVALID") == 0) {
    fraud();
    isError();
}
function fraud()
{
    global $lang, $account_paypal, $url, $website_name, $ip, $charset;
    $_SESSION["abuseipn"]++;
    if ($_SESSION["abuseipn"] > 3) {
        $headrs = "From: {$website_name} <{$account_paypal}>\n";
        $headrs .= "Content-type: text/plain; charset={$charset}\n";
        $sendToMe = "{$account_paypal}";
        $errSub = $lang['ipn_instant_error'] . "\n";
        $errMessage = $lang['ipn_instant_error'] . "\n" . $lang['ipn_logged_ip'] . " " . $ip . "\n" . $lang['ipn_reasons'] . "\n" . $lang['ipn_payment_came_back_log'] . "\n" . "\n" . $lang['ipn_please_investigate'] . "\n" . $lang['ipn_instant_ipn'] . "\n";
        @mail($sendToMe, $errSub, $errMessage, $headrs);
        unset($_SESSION["abuseipn"]);
    }
    $dd = date("Y-m-d - H:i:s");
 function getCurrrentAdmins()
 {
     $userM =& $this->_pluginAPI->getUserManager();
     $db =& $this->_pluginAPI->getDBModule();
     $tPrefix =& $db->getPrefix();
     $adminGroup = $userM->newGroup();
     $adminGroup->initFromDatabaseGenericName('administrator');
     $adminID = $adminGroup->getID();
     $sql = "SELECT userID FROM {$tPrefix}group_users WHERE groupID={$adminID}";
     $q = $db->query($sql);
     $admins = array();
     $currentUser = $userM->getCurrentUser();
     while ($row = $db->fetchArray($q)) {
         $admin = $userM->newUser();
         $a = $admin->initFromDatabaseID($row['userID']);
         if (isError($a)) {
             continue;
         }
         if ($admin->getID() == $currentUser->getID()) {
             $isCurrent = true;
         } else {
             $isCurrent = false;
         }
         $adminArray = array('Login' => $admin->getLogin(), 'ID' => $admin->getID(), 'IsCurrent' => $isCurrent);
         //$permissions = array ('UserManager'=>'Y', 'PluginManager'=>'N');
         //$adminArray['Permissions'] = $permissions;
         $admins[] = $adminArray;
     }
     return $admins;
 }
 /**
  * Adds a group to the database
  *
  * @param $group (object group)
  */
 function addGroupToDatabase(&$group)
 {
     $gIR = $this->isGroupNameRegistered($group->getGenericName());
     if (!isError($gIR)) {
         if ($gIR == false) {
             return $group->addToDatabase();
         } else {
             $groupName = $group->getGenericName();
             return new Error('GROUPNAME_ALREADY_REGISTERED', $groupName);
         }
     } else {
         return $gIR;
     }
 }
 /**
  * HiLink::getSmsCount()
  * Returns number of messages in $box
  * @param string $box of: SMS_BOX_IN, SMS_BOX_OUT, SMS_BOX_DRAFT, SMS_BOX_DELETED, SMS_BOX_UNREAD
  * @return int or false on error
  */
 public function getSmsCount($box = 'default')
 {
     $ch = $this->init_curl($this->host . '/api/sms/sms-count', null, false);
     $ret = curl_exec($ch);
     curl_close($ch);
     $res = simplexml_load_string($ret);
     if (isError($res)) {
         return false;
     }
     switch ($box) {
         case 'in':
         case 'inbox':
         case 1:
         case SMS_BOX_IN:
             return "" . $res->LocalInbox;
         case 'out':
         case 'outbox':
         case 2:
         case SMS_BOX_OUT:
             return "" . $res->LocalOutbox;
         case 'draft':
         case 'drafts':
         case 3:
         case SMS_BOX_DRAFT:
             return "" . $res->LocalDraft;
         case 'deleted':
         case 4:
         case SMS_BOX_DELETED:
             return "" . $res->localDeleted;
         case 'unread':
         case 'new':
         case SMS_BOX_UNREAD:
             return "" . $res->LocalUnread;
         default:
             return array('inbox' => "" . $res->LocalInbox, 'outbox' => "" . $res->LocalOutbox, 'draft' => "" . $res->LocalDraft, 'deleted' => "" . $res->LocalDeleted, 'unread' => "" . $res->LocalUnread);
     }
 }
 function onRegister($login, $email, $password)
 {
     $uM =& $this->_pluginAPI->getUserManager();
     $u = $uM->newUser();
     $u->initFromArray(array('login' => $login, 'email' => $email, 'password' => md5($password)));
     $r = $uM->addUserToDatabase($u);
     if (!isError($r)) {
         $this->_pluginAPI->addMessage('Your account was succesfully created', NOTICE);
     } elseif ($r->is('USERMANAGER_LOGIN_EXISTS')) {
         $this->_pluginAPI->addMessage('This login is already used, try another one.', ERROR);
     } elseif ($r->is('USERMANAGER_EMAIL_EXISTS')) {
         $this->_pluginAPI->addMessage('This email is already used, try another one.', ERROR);
     } else {
         $this->_pluginAPI->addMessage('There was a problem with adding you to the database', ERROR);
     }
     $this->_pluginAPI->executePreviousAction();
 }
 /**
  * Runs the system and show a page (or redirect to another page)
  * @param $defaultAction (string)
  * @public
  */
 function run($defaultAction)
 {
     $this->loadSkin();
     $this->loadPlugins();
     $this->assignErrors();
     $a = $this->getActionToExecute($defaultAction);
     $action = $this->getActionFromName($a);
     if (isError($action)) {
         $this->error($action);
     }
     $user = $this->_userManager->getCurrentUser();
     $perms = $this->_actionManager->getActionRequiredPermissions($a);
     foreach ($perms as $perm) {
         if (!$user->hasPermission($perm)) {
             $this->error('USER_HASNOTPERMISSION_VIEWPAGE');
         }
     }
     if ($this->canUserViewPage($action)) {
         if ($action->getPageName()) {
             $page = $this->_pageManager->newPage();
             $page->initFromName($action->getPageName());
             if ($page->isAdminPage()) {
                 $this->_eventManager->triggerEvent('viewAnyAdminPage', array($page->getID()));
             } else {
                 $this->_eventManager->triggerEvent('viewPage', array($page->getID()));
             }
         }
         $r = $this->_actionManager->executeAction($a);
         if (isError($r)) {
             if ($r->is('ACTIONMANAGER_INVALID_INPUT')) {
                 $this->_pluginAPI->addMessage('Invalid input', ERROR);
                 $this->_pluginAPI->executePreviousAction();
             } else {
                 $this->error($r);
             }
         }
     } else {
         return new Error('USER_HASNOTPERMISSION_VIEWPAGE');
     }
 }
 function setPageVars($pageID, $pageLang)
 {
     $pM =& $this->_pluginAPI->getPageManager();
     $root = $pM->newPage();
     $root->initFromName('site');
     $page = $pM->newPage();
     $page->initFromDatabaseID($pageID);
     //echo $pageLang;
     $tPage = $page->getTranslation($pageLang);
     if (isError($tPage)) {
         return $tPage;
     }
     $sm =& $this->_pluginAPI->getSmarty();
     $sm->assign('MorgOS_CurrentPage_Title', $tPage->getTitle());
     $sm->assign('MorgOS_CurrentPage_Content', $tPage->getContent());
     $sm->assign('MorgOS_Site_HeaderImage', $this->getHeaderImageLink());
     $sm->assign('MorgOS_Copyright', 'Powered by MorgOS &copy; 2006');
     $sm->assign('MorgOS_Menu', $this->getMenuArray($page->getParentPage(), $pageLang));
     $sm->assign('MorgOS_RootMenu', $this->getMenuArray($root, $pageLang));
     $sm->assign('MorgOS_ExtraSidebar', '');
     $sm->assign('MorgOS_ExtraHead', '');
     return true;
 }
 /**
  * Returns an array with all menu items. 
  * The first item in the array is the first menu item (duh)
  * 
  * @param $rootPage (object page) The root page.
  * @public
  * @return (object page array)
  */
 function getMenu($rootPage)
 {
     $tableName = $this->_db->getPrefix() . 'pages';
     $parentPageID = $rootPage->getID();
     if (!is_numeric($parentPageID)) {
         return new Error('DATABASEOBJECT_SQL_INJECTION_ATTACK_FAILED', __FILE__, __LINE__);
     }
     $sql = "SELECT page_id FROM {$tableName} WHERE parent_page_id='{$parentPageID}' \n\t\t\tAND place_in_menu!=" . MORGOS_MENU_INVISIBLE . " ORDER BY place_in_menu ASC";
     $q = $this->_db->query($sql);
     if (!isError($q)) {
         $allPages = array();
         while ($pageRow = $this->_db->fetchArray($q)) {
             $newPage = $this->newPage();
             $newPage->initFromDatabaseID($pageRow['page_id']);
             $allPages[] = $newPage;
         }
         return $allPages;
     } else {
         return $q;
     }
 }
 function installConfigAndDatabase($siteName, $siteDefaultLanguage, $dbDriverName, $databaseHost, $databaseUser, $databasePassword, $databaseName, $databasePrefix, $adminLogin, $adminPassword, $adminMail)
 {
     DatabaseDriverManager::findAllDriversInDirectory('core/dbdrivers');
     $dbDriver = DatabaseDriverManager::loadDriver($dbDriverName);
     if (!isError($dbDriver)) {
         $dbDriver->connect($databaseHost, $databaseUser, $databasePassword, $databaseName);
         $dbDriver->setPrefix($databasePrefix);
         $pluginManager = new pluginManager($this->_pluginAPI);
         $pluginManager->findAllPlugins('interface/core-plugins/');
         // an hack for viewPage to be first
         $foundPlugins = array_reverse($pluginManager->getAllFoundPlugins());
         foreach ($foundPlugins as $plugin) {
             if (is_a($plugin, 'InstallablePlugin')) {
                 $a = $plugin->install($this->_pluginAPI, $dbDriver, $siteDefaultLanguage);
                 if (isError($a)) {
                     var_dump($a);
                     die('Something went wrong');
                 }
             }
         }
         $userM = new userManager($dbDriver);
         $admin = $userM->newUser();
         $a = $admin->initFromArray(array('login' => $adminLogin, 'password' => md5($adminPassword), 'email' => $adminMail));
         $userM->addUserToDatabase($admin);
         $group = $userM->newGroup();
         $group->initFromArray(array('generic_name' => 'administrator', 'generic_description' => 'The admin users'));
         $userM->addGroupToDatabase($group);
         $group->assignPermission('edit_admin', true);
         $admin->addToGroup($group);
         $group = $userM->newGroup();
         $group->initFromArray(array('generic_name' => 'normaluser', 'generic_description' => 'All users'));
         $userM->addGroupToDatabase($group);
         $group->assignPermission('edit_admin', false);
         $admin->addToGroup($group);
         $group = $userM->newGroup();
         $group->initFromArray(array('generic_name' => 'anonymous', 'generic_description' => 'Not logged in'));
         $userM->addGroupToDatabase($group);
         $group->assignPermission('edit_admin', false);
         $configContents = '<?php' . PHP_NL . PHP_NL;
         $configContents .= '$configItems[\'/databases/driver\']=\'' . $dbDriverName . '\';' . PHP_NL;
         $configContents .= '$configItems[\'/databases/host\']=\'' . $databaseHost . '\';' . PHP_NL;
         $configContents .= '$configItems[\'/databases/password\']=\'' . $databasePassword . '\';' . PHP_NL;
         $configContents .= '$configItems[\'/databases/user\']=\'' . $databaseUser . '\';' . PHP_NL;
         $configContents .= '$configItems[\'/databases/database\']=\'' . $databaseName . '\';' . PHP_NL;
         $configContents .= '$configItems[\'/databases/table_prefix\']=\'' . $databasePrefix . '\';' . PHP_NL . PHP_NL;
         $configContents .= '$configItems[\'/site/title\']=\'' . $siteName . '\';' . PHP_NL;
         $configContents .= '$configItems[\'/site/default_language\']=\'' . $siteDefaultLanguage . '\';' . PHP_NL;
         $configContents .= '$configItems[\'/site/enableUsers\']=true;' . PHP_NL;
         $configContents .= '$configItems[\'/languages/' . $siteDefaultLanguage . '\']=\'' . $siteDefaultLanguage . '\';' . PHP_NL;
         $configContents .= '?>';
         $c = @fopen('config.php', 'w');
         if ($c !== false) {
             fwrite($c, $configContents);
             fclose($c);
             header('Location: index.php');
         } else {
             $sm =& $this->_pluginAPI->getSmarty();
             $sm->assign('CONFIG_CONTENT', htmlspecialchars($configContents));
             $sm->display('installer/save_config_manual.tpl');
         }
     } else {
         var_dump($dbModule);
     }
 }
 function findAllSkins($dir)
 {
     foreach (scandir($dir) as $dirName) {
         if (is_dir($dir . $dirName)) {
             if (file_exists($dir . $dirName . '/skin.php')) {
                 $skin = new skin($dir . $dirName . '/skin.php', $dir, $dirName);
                 if (!isError($skin->canRun())) {
                     $this->_allFoundSkins[$skin->getID()] = $skin;
                 }
             }
         }
     }
 }
 /**
  * Adds a user setting to the configmanager.
  * A user setting is defined a setting that can be changed
  *  from GET, COOKIE, a db field or a default value
  *
  * @param $name (string)
  * @param $defaultValue (string)
  * @param $dbField (string) default = null
  *
  * @public
  * @since 0.3
  * @return (string) The initial value
  */
 function addUserSetting($name, $defaultValue, $dbField = null)
 {
     if ($dbField) {
         $currentUser = $this->_userManager->getCurrentUser();
         if ($currentUser) {
             $userValue = $currentUser->getFieldValue($dbField);
             if ($userValue != null and !isError($userValue)) {
                 $defaultValue = $userValue;
             }
         }
     }
     return $this->_configManager->addUserSetting($name, STRING, $defaultValue);
 }
 function testCreateTable()
 {
     $sql = 'CREATE TABLE editors (ID int(11) auto_increment, name varchar (255) NOT NULL, isNice ENUM(\'Y\', \'N\'), number int(5), UNIQUE  KEY (name), PRIMARY  KEY (ID) )';
     $query = $this->_dbModule->query($sql);
     $this->assertEquals(0, $this->_dbModule->numRows($query), 'Wrong data CREATE returned');
     //var_dump ($this->_dbModule->_XMLSQLBackend->_XMLBackend->getTable ('editors'));
     $query = $this->_dbModule->query('SELECT * FROM editors');
     $this->assertFalse(isError($query), 'Unexpecter error');
     $this->assertEquals(0, $this->_dbModule->numRows($query), 'Wrong data SELECT returned');
     $query = $this->_dbModule->query("INSERT INTO editors (name, isNice, number) VALUES ('nathan and co', 'Y', '3')");
     $this->assertFalse(isError($query), 'Unexpecter error');
     $query = $this->_dbModule->query("INSERT INTO editors (name, isNice, number) VALUES ('nathan and co2', 'Y', '5')");
     $this->assertFalse(isError($query), 'Unexpecter error');
     $query = $this->_dbModule->query("INSERT INTO editors (name, isNice, number) VALUES ('nathan and co', 'Y', '3')");
     $this->assertTrue(isError($query), 'Unexpecter un-error double unique key');
     $query = $this->_dbModule->query("INSERT INTO editors (name, isNice, number) VALUES ('nathan and co', 'A', '3')");
     $this->assertTrue(isError($query), 'Unexpecter un-error, wrong enum value');
     $query = $this->_dbModule->query('SELECT * FROM editors');
     $allRows = array();
     while ($row = $this->_dbModule->fetchArray($query)) {
         $allRows[] = $row;
     }
     $row1 = array('ID' => 1, 'name' => 'nathan and co', 'isNice' => 'Y', 'number' => 3);
     $row2 = array('ID' => 2, 'name' => 'nathan and co2', 'isNice' => 'Y', 'number' => 5);
     $this->assertEquals(array($row1, $row2), $allRows, 'Wrong data SELECT returned');
 }
 function testInstall()
 {
     $e = $this->testManager->installAllTables();
     $this->assertFalse(isError($e), 'Unexpected error: ' . $e);
     $this->assertTrue($this->testManager->isInstalled(), 'Returned wrong value.');
 }
 /**
  * Gets all the groups where the user is in
  *
  * @public
  * @return (object group array)
  */
 function getAllGroups()
 {
     $prefix = $this->db->getPrefix();
     $ID = $this->getID();
     $sql = "SELECT groupID FROM {$prefix}group_users WHERE userID='{$ID}'";
     $q = $this->db->query($sql);
     if (!isError($q)) {
         $allGroups = array();
         while ($row = $this->db->fetchArray($q)) {
             $c = $this->getCreator();
             $g = $c->newGroup();
             $g->initFromDatabaseID($row['groupID']);
             $allGroups[] = $g;
         }
         return $allGroups;
     } else {
         return $q;
     }
 }
    function testCreateTablePrimaryAndUniqueKey()
    {
        $sql = 'CREATE TABLE users (
			ID int (11) auto_increment,
			email varchar(255) NOT NULL,
			PRIMARY KEY (ID),
			UNIQUE KEY (email)
		)';
        $query = $this->_dbModule->query($sql);
        $this->assertEquals(0, $this->_dbModule->numRows($query), 'Wrong data CREATE returned');
        $query = $this->_dbModule->query('SELECT * FROM users');
        $this->assertFalse(isError($query), 'Unexpecter error');
        $this->assertEquals(0, $this->_dbModule->numRows($query), 'Wrong data SELECT returned');
        $query = $this->_dbModule->query("INSERT INTO users (email) VALUES ('*****@*****.**')");
        $this->assertFalse(isError($query), 'Unexpecter error');
        $query = $this->_dbModule->query("INSERT INTO users (email) VALUES ('*****@*****.**')");
        $this->assertFalse(isError($query), 'Unexpecter error');
        $query = $this->_dbModule->query("INSERT INTO users (email) VALUES ('*****@*****.**')");
        $this->assertTrue(isError($query), 'Un non expected error');
        $query = $this->_dbModule->query('SELECT * FROM users');
        $allRows = array();
        while ($row = $this->_dbModule->fetchArray($query)) {
            $allRows[] = $row;
        }
        $row1 = array('ID' => 1, 'email' => '*****@*****.**');
        $row2 = array('ID' => 2, 'email' => '*****@*****.**');
        $this->assertEquals(array($row1, $row2), $allRows, 'Wrong data SELECT returned');
    }
 function parseInsert($sqlSequence)
 {
     $tableName = $this->getDataAfterKeyword($sqlSequence, 'INTO');
     $orderOfFields = explode(',', substr($sqlSequence, strpos($sqlSequence, '(') + 1, strpos($sqlSequence, ')') - strpos($sqlSequence, '(') - 1));
     foreach ($orderOfFields as $key => $field) {
         $field = trim($field);
         $orderOfFields[$key] = $field;
     }
     $valuesString = $this->getAllDataAfterKeyword($sqlSequence, 'VALUES');
     $valuesString = trim($valuesString);
     $valuesString[0] = ' ';
     $valuesString[strlen($valuesString) - 1] = ' ';
     $valuesString = trim($valuesString);
     $valuesFields = $this->splitData(',', $valuesString);
     //var_dump ($valuesFields);
     if (count($orderOfFields) != count($valuesFields)) {
         return "ERROR_XMLSQL_PARSE_ERROR";
     }
     $table = $this->_XMLBackend->getTable($tableName);
     $tableFields = $table->getFields();
     foreach ($tableFields as $field) {
         $key = array_search($field->getName(), $orderOfFields);
         if ($key !== false) {
             $value = $this->parseBetweenTwoChars('\'', '\'', $valuesFields[$key]);
         } else {
             $value = NULL;
         }
         $values[$field->getName()] = $value;
     }
     $row = new row($tableFields, $values, $table->getNewInternalID());
     $a = $table->addRow($row);
     if (!isError($a)) {
         return new SQLInsertQuery($a);
     } else {
         return $a;
     }
 }
 function getAllEvents()
 {
     $fTN = $this->_db->getPrefix() . 'calendar';
     $sql = "SELECT eventID FROM {$fTN}";
     $q = $this->_db->query($sql);
     if (isError($q)) {
         return $q;
     }
     $events = array();
     while ($row = $this->_db->fetchArray($q)) {
         $event = $this->newEvent();
         $event->initFromDatabaseID($row['eventID']);
         $events[] = $event;
     }
     return $events;
 }
 function menuToArray($menu)
 {
     $pageLang = 'en_UK';
     $array = array();
     foreach ($menu as $menuItem) {
         if ($menuItem->getPluginID() == null or in_array($menuItem->getPluginID(), $this->_pluginManager->getAllLoadedPluginsID())) {
             $itemArray = array();
             $itemArray['Childs'] = $this->menuToArray($this->_pageManager->getMenu($menuItem));
             $t = $menuItem->getTranslation($pageLang);
             if (isError($t)) {
                 var_dump($menuItem);
             }
             $itemArray['Title'] = $t->getNavTitle();
             $itemArray['Link'] = $menuItem->getLink();
             $itemArray['ID'] = $menuItem->getID();
             $itemArray['PlaceInMenu'] = $menuItem->getPlaceInMenu();
             $newParents = array();
             foreach ($menu as $parent) {
                 if ($parent->getID() !== $menuItem->getID()) {
                     $tp = $parent->getTranslation($pageLang);
                     $newParents[$parent->getID()] = $tp->getNavTitle();
                 }
             }
             $itemArray['PossibleNewParents'] = $newParents;
             $parent = $menuItem->getParentPage();
             $itemArray['canMoveUp'] = !$parent->isRootPage();
             $array[] = $itemArray;
         }
     }
     return $array;
 }
Exemple #27
0
 /**
  * get the record for single record 
  * */
 public function getRecordByName($domain, $record_name, $line = "default")
 {
     global $_G;
     if ($_G["record.{$domain}.{$record_name}.{$line}"]) {
         return $_G["record.{$domain}.{$record_name}.{$line}"];
     }
     $domainId = $this->getDomainId($domain);
     if ($this->isError($domainId)) {
         $msg = "can't get domainId of {$domain}";
         error_log($msg);
         $this->throwError($domainId, $msg);
         return $domainId;
     }
     $ret = $this->getRecordlist($domainId);
     if (isError($ret)) {
         return $ret;
     }
     foreach ($ret["records"]["record"] as $ir) {
         if ($ir["name"] == $record_name && $ir["line"] == $line) {
             $_G["record.{$domain}.{$record_name}.{$line}"] = $ir;
             return $ir;
         }
     }
     return array("status" => array('code' => RECORD_ERROR));
 }
 function getAllTables()
 {
     $q = $this->query("SHOW TABLES FROM {$this->_dbName}");
     if (!isError($q)) {
         $allTables = array();
         while ($row = $this->fetchArray($q)) {
             $allTables[] = $row[0];
         }
         return $allTables;
     } else {
         return $q;
     }
 }
 function testRemoveUserFromDatabase()
 {
     $user = $this->uM->newUser();
     $user->initFromDatabaseLogin('normalUser');
     $r = $this->uM->removeUserFromDatabase($user);
     $this->assertFalse(isError($r));
     $this->assertFalse($this->uM->isGroupNameRegistered('normalUser'));
 }
 function getAllTables()
 {
     $q = $this->query("SHOW TABLES FROM {$this->dbName}");
     if (!isError($q)) {
         $allTables = array();
         while ($row = mysql_fetch_assoc($q)) {
             $allTables[] = $row['Tables_in_' . $this->dbName];
         }
         return $allTables;
     } else {
         return $q;
     }
 }