}
if (class_exists('WP_Importer')) {
- class Toolbox_Import extends WP_Importer
- {
- private $_dbh;
- private $_post;
- function __construct()
- {
- }
-
- function connect()
+ class Toolbox_Import extends WP_Importer
+ {
+ private $_dbh;
+ private $_post;
+ private $_options;
+
+
+ public function __construct()
+ {
+ $this->_getOptions();
+ }
+
+ private function _getOptions()
+ {
+ // read options for the import and if they aren't set then give a warning.
+ $this->_options = get_option(GLM_WP_IMPORT_SETTINGS);
+ }
+
+ private function _connect()
{
if ($this->_dbh) {
return;
}
- // read options for the import and if they aren't set then give a warning.
- $options = get_option(GLM_WP_IMPORT_SETTINGS);
- // try making a postgres connection to the database
- $connString = 'dbname=' . $options['db_name'];
- $connString .= ' host=' . $options['db_host'];
- $connString .= ' user=' . $options['db_user'];
- $driverOptions = array(
- PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
- );
- $this->_dbh = new PDO('pgsql:'.$connString, null, null, $driverOptions);
- $this->_dbh->setAttribute(
- PDO::ATTR_ERRMODE,
- PDO::ERRMODE_EXCEPTION
- );
+ // try making a postgres connection to the database
+ $connString = 'dbname=' . $this->_options['db_name'];
+ $connString .= ' host=' . $this->_options['db_host'];
+ $connString .= ' user=' . $this->_options['db_user'];
+ $driverOptions = array(
+ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
+ );
+ $this->_dbh = new PDO('pgsql:'.$connString, null, null, $driverOptions);
+ $this->_dbh->setAttribute(
+ PDO::ATTR_ERRMODE,
+ PDO::ERRMODE_EXCEPTION
+ );
+ }
+
+ private function _header()
+ {
+ echo '<div class="wrap">';
+ echo '<h2>'.__('Toolbox Importer').'</h2>';
+ }
+
+ private function _footer()
+ {
+ echo '</div>';
+ }
+
+ private function _greet()
+ {
+ echo '<h2>Hello there person!</h2>';
+ $this->_connect();
+ $sql = "SELECT * FROM toolbox.pages";
+ $data = $this->_dbh->query($sql)->fetchAll();
+ printf('<p>Found %d Pages</p>', count($data));
+ echo '<a href="admin.php?import=toolbox&step=1">Start the Import Now</a>';
}
- function header()
- {
- echo '<div class="wrap">';
- echo '<h2>'.__('Toolbox Importer').'</h2>';
- }
-
- function footer()
- {
- echo '</div>';
- }
-
- function greet()
- {
- echo '<h2>Hello there person!</h2>';
- $this->connect();
- $sql = "SELECT * FROM toolbox.pages";
- $data = $this->_dbh->query($sql)->fetchAll();
- printf('<p>Found %d Pages</p>', count($data));
- echo '<a href="admin.php?import=toolbox&step=1">Start the Import Now</a>';
- }
-
- function displayImage($data, $alignment)
+ private function _displayImage($data, $alignment)
{
if ($data['caption']) {
$content .= '[caption id="attachment_'.$data['id'].'" align="align'.$alignment.'"]'
return $content;
}
- function fetchAllPages()
- {
- $this->connect();
+ private function _fetchAllPages()
+ {
+ $this->_connect();
+ $where = '';
+ if ($this->_options['member_page_id']) {
+ $where = "WHERE id NOT IN ({$this->_options['member_page_id']})
+ AND parent != {$this->_options['member_page_id']} ";
+ }
$pageSql = "
SELECT *
- FROM toolbox.pages
+ FROM {$this->_options['toolbox_schema']}.{$this->_options['toolbox_page_table']}
+ $where
ORDER BY parent,pos";
$pageData = $this->_dbh->query($pageSql)->fetchAll(PDO::FETCH_ASSOC);
$paragraphSql = "
SELECT *
- FROM toolbox.paragraphs
+ FROM {$this->_options['toolbox_schema']}.{$this->_options['toolbox_paragraphs_table']}
WHERE page = :page
ORDER BY pos";
$paraStmt = $this->_dbh->prepare($paragraphSql);
- $data = $this->_dbh->query($pageSql)->fetchAll();
+ $data = $this->_dbh->query($pageSql)->fetchAll();
foreach ($data as &$page) {
$paraStmt->bindParam(':page', $page['id'], PDO::PARAM_INT);
$paraStmt->execute();
break;
}
$iterator = 1;
- $page['pageContent'] = '';
- foreach ($paragraphs as $paragraph) {
- switch ($iterator) {
- case 1:
- if ($paragraph['title']) {
- $page['pageContent'] .= '<h1>'.$paragraph['title'].'</h1>';
- }
- if ($paragraph['image']) {
- $page['pageContent'] .= $this->displayImage($paragraph, $primaryAlign);
- }
- break;
- case 2:
- if ($paragraph['title']) {
- $page['pageContent'] .= '<h2>'.$paragraph['title'].'</h2>';
+ $page['pageContent'] = '';
+ foreach ($paragraphs as $paragraph) {
+ switch ($iterator) {
+ case 1:
+ if ($paragraph['title']) {
+ $page['pageContent'] .= '<h1>'.$paragraph['title'].'</h1>';
+ }
+ if ($paragraph['image']) {
+ $page['pageContent'] .= $this->_displayImage($paragraph, $primaryAlign);
+ }
+ break;
+ case 2:
+ if ($paragraph['title']) {
+ $page['pageContent'] .= '<h2>'.$paragraph['title'].'</h2>';
+ }
+ if ($paragraph['image']) {
+ $page['pageContent'] .= $this->_displayImage($paragraph, $secondaryAlign);
+ }
+ break;
+ default:
+ if ($paragraph['title']) {
+ $page['pageContent'] .= '<h2>'.$paragraph['title'].'</h2>';
+ }
+ if ($alternateImg && $page['template'] == 3) {
+ $align = ($iterator%2 == 0) ? 'left' : 'right';
+ } else {
+ $align = $secondaryAlign;
+ }
+ if ($paragraph['image']) {
+ $page['pageContent'] .= $this->_displayImage($paragraph, $align);
+ }
+ break;
}
- if ($paragraph['image']) {
- $page['pageContent'] .= $this->displayImage($paragraph, $secondaryAlign);
- }
- break;
- default:
- if ($paragraph['title']) {
- $page['pageContent'] .= '<h2>'.$paragraph['title'].'</h2>';
- }
- if ($alternateImg && $page['template'] == 3) {
- $align = ($iterator%2 == 0) ? 'left' : 'right';
- } else {
- $align = $secondaryAlign;
- }
- if ($paragraph['image']) {
- $page['pageContent'] .= $this->displayImage($paragraph, $align);
- }
- break;
- }
- $page['pageContent'] .= $paragraph['description'];
- ++$iterator;
+ $page['pageContent'] .= $paragraph['description'];
+ ++$iterator;
}
}
return $data;
- }
+ }
+
+ private function _readOptions()
+ {
+ var_dump($this->_options);
+ }
- function import()
- {
+ private function _import()
+ {
echo '<p>Fetching Pages</p>';
// grab all pages and build the post array
- $pages = $this->fetchAllPages();
- echo '<pre>'.print_r($pages, true).'</pre>';
- }
-
- function dispatch()
- {
- if (empty($_GET['step'])) {
- $step = 0;
- } else {
- $step = filter_var($_GET['step'], FILTER_VALIDATE_INT);
- }
- switch($step) {
- case 0:
- $this->greet();
- break;
- case 1:
- $this->import();
- break;
- }
- }
- }
- }
+ $pages = $this->_fetchAllPages();
+ foreach ($pages as $page) {
+ $post = array(
+ 'post_content' => $page['pageContent'],
+ 'post_name' => $page['navigation_name'],// slug ?
+ 'post_title' => $page['navigation_name'],
+ 'post_status' => 'publish',
+ 'post_type' => 'page',
+ 'post_author' => 'steve',
+ 'ping_status' => 'closed',
+ 'post_parent' => $this->_post[$page['parent']]['ID'],
+ 'menu_order' => $page['pos'],
+ 'comment_status' => 'closed',
+ );
+ $ID = wp_insert_post($post, true);
+ $newPost = get_post($ID, ARRAY_A);
+ $this->_post[$page['id']] = $newPost;
+ }
+ var_dump($pages);
+ }
+
+ public function dispatch()
+ {
+ $this->_header();
+
+ if (empty($_GET['step'])) {
+ $step = 0;
+ } else {
+ $step = filter_var($_GET['step'], FILTER_VALIDATE_INT);
+ }
+ switch($step) {
+ case 0:
+ $this->_greet();
+ $this->_readOptions();
+ break;
+ case 1:
+ $this->_import();
+ break;
+ }
+
+ $this->_footer();
+ }
+ }
+}
- $toolbox_import = new Toolbox_Import();
+$toolbox_import = new Toolbox_Import();
- register_importer(
+register_importer(
'toolbox',
__('Toolbox', 'import-toolbox-pages'),
sprintf(
'options-general.php?page=glmwpimporter'
),
array($toolbox_import, 'dispatch')
- );
+);