View file install/import/Ning/CorePages.php

File size: 1.32Kb
<?php

class Install_Import_Ning_CorePages extends Install_Import_Ning_Abstract
{
  protected $_fromFile = 'ning-pages-local.json';
  protected $_fromFileAlternate = 'ning-pages.json';
  protected $_toTable = 'engine4_core_pages';
  protected $_priority = 7000;

  public function reset()
  {
    // Delete the all custom page
    $this->getToDb()->delete($this->getToTable(), array(
      'custom = ?' => true
    ));
  }

  protected function _translateRow(array $data, $key = null)
  {

    $url = Engine_String::slug($data['title']);
    $hasUrl = true;
    $i = 0;
    do {
      $existingNameId = $this->getToDb()->select()
        ->from($this->getToTable(), 'page_id')
        ->where('url = ?', $url . ( $i ? '-' . $i : ''))
        ->limit(1)
        ->query()
        ->fetchColumn(0)
      ;
      if (!$existingNameId) {
        $hasUrl = false;
        $url = $url . ( $i ? '-' . $i : '');
      } else {
        $i++;
      }
    } while ($hasUrl);

    // Insert into comments?
    $this->getToDb()->insert($this->getToTable(), array(
      'custom' => 1,
      'displayname' => $data['title'],
      'title' => $data['title'],
      'description' => '',
      'keywords' => '',
      'url' => $url
    ));
    $pageIdentity = $this->getToDb()->lastInsertId();
    $this->setPageMap($data['id'], $pageIdentity);

    return false;
  }
}