public function get($class) { $full_class_name = 'PerchAPI_' . $class; switch ($class) { case 'DB': return PerchDB::fetch(); break; case 'Lang': if ($this->Lang === false) { $this->Lang = new $full_class_name($this->version, $this->app_id); } return $this->Lang; break; case 'Settings': return PerchSettings::fetch(); break; default: if ($this->Lang === false) { $this->Lang = new PerchAPI_Lang($this->version, $this->app_id); } return new $full_class_name($this->version, $this->app_id, $this->Lang); break; } return false; }
public function render_inputs($details = array()) { $id = $this->Tag->input_id(); $val = ''; if (isset($details[$id]) && $details[$id] != '') { $json = $details[$id]; $val = $json['tag']; } $DB = PerchDB::fetch(); $sql = 'SELECT * FROM ' . PERCH_DB_PREFIX . 'members_tags ORDER BY tagDisplay'; $memberTags = $DB->get_rows($sql); $opts = array(); $opts[] = array('label' => '', 'value' => ''); if (PerchUtil::count($memberTags)) { foreach ($memberTags as $memberTag) { $opts[] = array('label' => $memberTag['tagDisplay'], 'value' => $memberTag['tag']); } } if (PerchUtil::count($opts)) { $s = $this->Form->select($id, $opts, $val); } else { $s = '-'; } return $s; }
function __construct($api = false) { if ($api) { $this->api = $api; } $this->db = PerchDB::fetch(); if (defined('PERCH_DB_PREFIX')) { $this->table = PERCH_DB_PREFIX . $this->table; } if (!$this->dynamic_fields_column) { $this->dynamic_fields_column = str_replace('ID', 'DynamicFields', $this->pk); } }
public static function get_backup_search_sql($key) { $db = PerchDB::fetch(); $opts = func_get_arg(1); // backup query using REGEXP $sql = ' \'' . __CLASS__ . '\' AS source, 0-(LENGTH(r.regionPage)-LENGTH(REPLACE(r.regionPage, \'/\', \'\'))) AS score, r.regionPage AS col1, ci.itemSearch AS col2, ci.itemJSON AS col3, r.regionOptions AS col4, p.pageNavText AS col5, p.pageTitle AS col6, regionTemplate AS col7, r.regionKey AS col8 FROM ' . PERCH_DB_PREFIX . 'content_regions r, ' . PERCH_DB_PREFIX . 'content_items ci, ' . PERCH_DB_PREFIX . 'pages p WHERE r.regionID=ci.regionID AND r.regionRev=ci.itemRev AND r.pageID=p.pageID AND r.regionPage!=\'*\' AND r.regionSearchable=1 AND ci.itemSearch REGEXP ' . $db->pdb('[[:<:]]' . $key . '[[:>:]]') . ' AND r.regionPage LIKE ' . $db->pdb($opts['from-path'] . '%') . ' '; return $sql; }
public static function fetch() { if (!isset(self::$instance)) { if (defined('PDO::MYSQL_ATTR_LOCAL_INFILE')) { $c = 'PerchDB_MySQL'; PerchDB::$driver = 'PDO'; } else { $c = 'PerchDB_MySQLi'; PerchDB::$driver = 'MySQLi'; } self::$instance = new $c(); } return self::$instance; }
<h1>Installing...</h1> <?php if (defined('PERCH_DB_PREFIX')) { echo '<ul class="importables">'; if (isset($_GET['auto'])) { echo '<li class="success icon">Your config file was written automatically.</li>'; } $db = PerchDB::fetch(); $Perch = Perch::fetch(); $sql = file_get_contents('database.sql'); $sql = str_replace('__PREFIX__', PERCH_DB_PREFIX, $sql); $sql = str_replace('__PERCH_LOGINPATH__', PERCH_LOGINPATH, $sql); $sql = str_replace('__PERCH_VERSION__', $Perch->version, $sql); $queries = explode(';', $sql); $msgs = array(); if (PerchUtil::count($queries) > 0) { foreach ($queries as $query) { $query = trim($query); if ($query != '') { if (!$db->execute($query)) { if ($db->error_msg != '') { $msgs[] = $db->error_msg; $db->error_msg = false; } } } } // test that it worked $tables = $db->get_rows('SHOW TABLES'); $db_fail = true;
<?php // Prevent running directly: if (!defined('PERCH_DB_PREFIX')) { exit; } $sql = "\n\n\t\tALTER TABLE `__PREFIX__members` CHANGE `memberPassword` `memberPassword` CHAR(255) NULL DEFAULT NULL;\n\n\t"; $sql = str_replace('__PREFIX__', PERCH_DB_PREFIX, $sql); $DB = PerchDB::fetch(); $statements = explode(';', $sql); foreach ($statements as $statement) { $statement = trim($statement); if ($statement != '') { $DB->execute($statement); } } $Settings->set('perch_members_update', '1.4');
/** * Reorder keys into source order * * @return void * @author Drew McLellan */ private function _reorder_keys() { if (PerchUtil::count($this->key_requests)) { $Perch = Perch::fetch(); $page = $Perch->get_page(); $db = PerchDB::fetch(); $i = 0; foreach ($this->key_requests as $key) { if (!in_array($key, $this->keys_reordered)) { $sql = 'UPDATE ' . $this->table . ' SET regionOrder=' . $i . ' WHERE regionPage=' . $db->pdb($page) . ' AND regionKey=' . $db->pdb($key) . ' LIMIT 1'; $db->execute($sql); $this->keys_reordered[] = $key; } $i++; } } }
<?php echo '<li>DB driver: ' . PerchDB::$driver . '</li>'; $sql = 'SHOW TABLES'; $rows = $DB->get_rows($sql); if (PerchUtil::count($rows)) { $tables = array(); foreach ($rows as $row) { foreach ($row as $key => $val) { $tables[] = PerchUtil::html($val); } } echo '<li>DB tables: ' . implode(', ', $tables) . '</li>'; } ?> <li>Users: <?php echo PerchDB::fetch()->get_value('SELECT COUNT(*) FROM ' . PERCH_DB_PREFIX . 'users'); ?> </li> <li>App runtimes: <pre><?php $file = PerchUtil::file_path(PERCH_PATH . '/config/apps.php'); echo PerchUtil::html(file_get_contents($file)); ?> </pre></li> <?php $ScheduledTasks = new PerchScheduledTasks(); $apps = $ScheduledTasks->get_scheduled(); if (PerchUtil::count($apps)) { foreach ($apps as $appID => $tasks) { $task_list = array(); echo '<li>Scheduled tasks for ' . $appID . ': '; foreach ($tasks as $task) {
public function __construct($details) { $this->db = PerchDB::fetch(); $this->details = $details; $this->table = PERCH_DB_PREFIX . $this->table; }
public function test_mysql() { $db = PerchDB::fetch(); $res = $db->get_table_meta($this->table); if ($res === false) { $sql = 'CREATE TABLE `' . $this->table . '` ( `ID` int(10) NOT NULL auto_increment, `Alias` varchar(255) character set utf8 NOT NULL, `Location` varchar(255) character set utf8 NOT NULL, `Template` varchar(255) character set utf8 NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1'; $db->execute($sql); } }