Пример #1
0
 public static function isDbInstalled()
 {
     if (Digitalus_Db_Table::tableExists(Digitalus_Db_Table::getTableName(self::DB_NAME))) {
         return true;
     }
     return false;
 }
Пример #2
0
 private function _updateTemplateReferences()
 {
     $this->_db->query("ALTER TABLE `" . Digitalus_Db_Table::getTableName('users') . "` ADD `openid` VARCHAR(100) NOT NULL AFTER `email`");
     $this->_db->query("UPDATE `" . Digitalus_Db_Table::getTableName('pages') . "` SET `publish_level` = '1' WHERE `publish_level` = 0");
     $siteSettings = new Model_SiteSettings();
     $siteSettings->set('xml_declaration', 'never');
     $siteSettings->set('publish_pages', 0);
     $siteSettings->save();
     return true;
 }
Пример #3
0
 public function delete($id)
 {
     $rsMenusChilds = $this->fetchAll("parent = " . $id);
     foreach ($rsMenusChilds as $rowMenusChild) {
         $this->delete($rowMenusChild->menu_id);
     }
     $result = parent::delete('menu_id = ' . $id);
     // Delete cache
     $this->_cache->removeCache($this->_cache_key);
     return $result;
 }
Пример #4
0
 private function _updateTemplateReferences()
 {
     $this->_db->query("UPDATE `" . Digitalus_Db_Table::getTableName('pages') . "` SET `content_template` = 'block' WHERE `content_template` LIKE 'block_%'");
     $this->_db->query("UPDATE `" . Digitalus_Db_Table::getTableName('pages') . "` SET `content_template` = 'module' WHERE `content_template` LIKE 'module_%'");
     $this->_db->query("UPDATE `" . Digitalus_Db_Table::getTableName('pages') . "` SET `content_template` = 'default' WHERE `content_template` NOT IN ('block','module')");
     $this->_db->query("UPDATE `" . Digitalus_Db_Table::getTableName('pages') . "` SET `content_template` = 'default_default' WHERE `namespace` = 'content' AND `content_template` = 'default'");
     $this->_db->query("UPDATE `" . Digitalus_Db_Table::getTableName('pages') . "` SET `content_template` = 'default_default' WHERE `namespace` = 'content' AND `content_template` = 'module'");
     $this->_db->query("ALTER TABLE `" . Digitalus_Db_Table::getTableName('pages') . "` ADD `publish_date` INT(11) NOT NULL AFTER `create_date`");
     $this->_db->query("ALTER TABLE `" . Digitalus_Db_Table::getTableName('pages') . "` ADD `archive_date` INT(11) NOT NULL AFTER `publish_date`");
     $this->_db->query("ALTER TABLE `" . Digitalus_Db_Table::getTableName('pages') . "` ADD `publish_level` INT(11) NOT NULL AFTER `archive_date`");
     return true;
 }
Пример #5
0
 /**
  * build the login request
  *
  * @param string $username
  * @param string $password
  */
 public function __construct($username = null, $password = null)
 {
     // set up the db authentication
     // zend auth uses FETCH_ASSOC for the fetchmode
     $this->_dbAdapter = clone Zend_Db_Table::getDefaultAdapter();
     $this->_dbAdapter->setFetchMode(ZEND_DB::FETCH_ASSOC);
     $this->_username = $username;
     $this->_password = $password;
     $this->_authAdapter = new Zend_Auth_Adapter_DbTable($this->_dbAdapter, Digitalus_Db_Table::getTableName($this->_userTable), $this->_identityColumn, $this->_credentialColumn, "MD5(?) AND active = 1");
     // set up storage
     // @todo: i can not get zend to persist the identities for some reason .. figure out why
     $this->_storage = new Zend_Session_Namespace(self::USER_NAMESPACE);
 }
Пример #6
0
 /**
  * Creates the challenge table
  *
  * @return bool True for success, false if table already exists
  */
 public function createChallengeTable()
 {
     if (!Login_Challenge::isDbInstalled()) {
         $db = Zend_Registry::get('database');
         $sql = "CREATE TABLE `?` (\n                        `challenge_id` VARCHAR(50) NOT NULL,\n                        `user_name` VARCHAR(30) NOT NULL,\n                        `valid` TINYINT(1) NOT NULL DEFAULT 1,\n                        `timestamp` INT(11) NOT NULL,\n                        PRIMARY KEY (`challenge_id`),\n                        INDEX (`user_name`),\n                        FOREIGN KEY (`user_name`) REFERENCES `?`(`name`) ON DELETE CASCADE ON UPDATE CASCADE\n                    ) ENGINE = InnoDB DEFAULT CHARSET=utf8";
         $stmtClass = $db->getStatementClass();
         $stmt = new $stmtClass($db, $sql);
         try {
             $stmt->execute(array(Digitalus_Db_Table::getTableName(Login_Challenge::DB_NAME), Digitalus_Db_Table::getTableName('users')));
         } catch (Exception $e) {
             return false;
         }
         return true;
     }
     return false;
 }
Пример #7
0
 public function __construct()
 {
     parent::__construct();
 }
Пример #8
0
 public function select()
 {
     $select = parent::select();
     $select->where('namespace = ?', $this->_namespace);
     return $select;
 }
Пример #9
0
 public function __construct()
 {
     parent::__construct();
     $this->_name = Digitalus_Db_Table::getTableName($this->_name);
 }
Пример #10
0
 /**
  *
  * Optimises the databases
  *
  * @return void
  */
 public function optimise()
 {
     $db_data = Digitalus_Db_Table::getTableName('data');
     $db_pages = Digitalus_Db_Table::getTableName('pages');
     $db_page_nodes = Digitalus_Db_Table::getTableName('page_nodes');
     $db_traffic_log = Digitalus_Db_Table::getTableName('traffic_log');
     $db_users = Digitalus_Db_Table::getTableName('users');
     $db_user_bookmarks = Digitalus_Db_Table::getTableName('user_bookmarks');
     $db_user_notes = Digitalus_Db_Table::getTableName('user_notes');
     /* *****************************************************************
      * OPTIMIZE
      **************************************************************** */
     $this->_db->query("OPTIMIZE TABLE\n            `{$db_data}` , `{$db_pages}` , `{$db_page_nodes}` , `{$db_traffic_log}` , `{$db_users}` , `{$db_user_bookmarks}` , `{$db_user_notes}`;");
 }
Пример #11
0
 public function insertPages()
 {
     $pages = Digitalus_Db_Table::getTableName('pages', $this->_config['prefix']);
     $pageNodes = Digitalus_Db_Table::getTableName('page_nodes', $this->_config['prefix']);
     $queries = array('INSERT INTO `' . $pages . '` VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' => array(array(1, 'administrator', time(), time(), time(), time(), 1, 'Site Offline', 'Site Offline', 'content', 'default_default', 0, 1, 0), array(2, 'administrator', time(), time(), time(), time(), 1, '404 Page', '404 Page', 'content', 'default_default', 0, 0, 0), array(3, 'administrator', time(), time(), time(), time(), 1, 'Home', 'Home', 'content', 'default_default', 0, 2, 1)), 'INSERT INTO `' . $pageNodes . '` VALUES (?, ?, ?, ?, ?, ?)' => array(array(1, 'errorsite', 'en', 'Site Offline', 'Site Offline', "Sorry, our site is currently offline for maintenance."), array(2, 'errorsite', 'en', '404 Page', 'HTTP/1.1 404 Not Found', "Sorry, the page you are looking for has moved or been renamed."), array(3, 'content', 'en', 'Home', 'Digitalus CMS', "Congratulations! You have successfully installed Digitalus CMS.<br />To get started why don't you log in and change this page:<br /><ol><li>Log in to site administration with the username and password you set up in the installer.</li><li>Go to the pages section.</li><li>Click on the Home page on the left sidebar.</li><li>Now update it and click update page!</li></ol>If you have any questions here are some helpful links:<br /><ul><li><a href=\"http://forum.digitaluscms.com\">Digitalus Forum</a></li><li><a href=\"http://wiki.digitaluscms.com\">Digitalus Documentation</a><br /></li></ul>")));
     foreach ($queries as $sql => $inserts) {
         $stmt = $this->_db->prepare($sql);
         foreach ($inserts as $data) {
             $stmt->execute($data);
         }
     }
 }
Пример #12
0
 /**
  * inserts the new page
  * defaults to inserting it into the root
  * @todo add these pages to the relations table
  *
  * @param unknown_type $parentId
  * @return unknown
  */
 private function _addPage($page, $parentId = 0)
 {
     if (!$parentId > 0) {
         $parentId = 0;
     }
     $sql = "SELECT id FROM " . Digitalus_Db_Table::getTableName('content') . " WHERE title = '{$page}' AND content_type = 'page' AND parent_id = " . $parentId;
     $exists = $this->_db->fetchRow($sql);
     if ($exists) {
         //the page already exists
         $this->log($this->view->getTranslation('ignoring') . ' ' . $page . ', ' . $this->view->getTranslation('page already exists in this location'));
         return $exists->id;
     } else {
         $data = array('content_type' => 'page', 'title' => $page, 'label' => $page, 'parent_id' => $parentId);
         if ($this->_db->insert(Digitalus_Db_Table::getTableName('content'), $data)) {
             $this->log($this->view->getTranslation('inserting') . ' ' . $page);
             return $this->_db->lastInsertId();
         } else {
             $this->log($this->view->getTranslation('ERROR: an error occured inserting') . ' ' . $page);
             return $parentId;
         }
     }
 }
Пример #13
0
 public function select($withFromPart = self::SELECT_WITHOUT_FROM_PART)
 {
     $select = parent::select($withFromPart);
     $select->where('namespace = ?', $this->_namespace);
     return $select;
 }
Пример #14
0
 /**
  * returns the current 404 error log
  *
  * @return zend_db_rowset
  */
 public function get404Log()
 {
     $sql = "\r\n            SELECT id, referer, uri, FROM_UNIXTIME(date_time) AS date_time\r\n            FROM " . Digitalus_Db_Table::getTableName('error_log') . "\r\n            ORDER BY date_time DESC";
     return $this->_db->fetchAll($sql);
 }