File size: 2.19Kb
<?php
class Install_Import_Ning_ForumTopics extends Install_Import_Ning_Abstract
{
protected $_fromFile = 'ning-discussions-local.json';
protected $_fromFileAlternate = 'ning-discussions.json';
protected $_toTable = 'engine4_forum_topics';
protected function _translateRow(array $data, $key = null)
{
if( !empty($data['groupId']) /*|| empty($data['category'])*/ ) {
return false;
}
if( empty($data['category']) ) {
$data['category'] = 'general discussion';
}
$userIdentity = $this->getUserMap($data['contributorName']);
$topicIdentity = $key + 1;
// Get forum id
switch( $data['category'] ) {
case 'announcements';
$forum_id = 1;
break;
case 'introductions':
$forum_id = 5;
break;
case 'other stuff':
$forum_id = 4;
break;
default:
$title = ucwords($data['category']);
$forum_id = $this->getToDb()->select()
->from('engine4_forum_forums', array('forum_id'))
->where('title = ?', $title)
->limit(1)
->query()
->fetchColumn(0)
;
if( !$forum_id ) {
// Insert forum
$this->getToDb()->insert('engine4_forum_forums', array(
'category_id' => 2,
'title' => $title,
'description' => '',
'creation_date' => $this->_translateTime(strtotime($data['createdDate'])),
'modified_date' => $this->_translateTime(strtotime($data['updatedDate'])),
));
$forum_id = $this->getToDb()->lastInsertId();
}
break;
}
$newData = array();
$newData['topic_id'] = $topicIdentity;
$newData['forum_id'] = $forum_id;
$newData['user_id'] = $userIdentity;
$newData['title'] = $data['title'];
$newData['description'] = $data['description'];
$newData['creation_date'] = $this->_translateTime(strtotime($data['createdDate']));
$newData['modified_date'] = $this->_translateTime(strtotime($data['updatedDate']));
$newData['sticky'] = false;
$newData['closed'] = false;
$newData['post_count'] = ( empty($data['comments']) ? 0 : count($data['comments']) ) + 1;
return $newData;
}
}