dbObj = Zend_Db::factory('Pdo_Mysql', array( 'host' => 'localhost', 'username' => 'DUMMY', 'password' => 'DUMMY', 'dbname' => 'DUMMY' )); $this->dbObj->getConnection(); } protected function holeDatenArray(){ $select = $this->dbObj->select(); $select->from('alt_import_faq', array('id', 'active', 'email', 'titel', 'frage', 'antwort')); $select->where('active > 0'); $select->order('id ASC'); $stmt = $this->dbObj->query($select); $result = $stmt->fetchAll(); return $result; } protected function _erzeugeDrupalDatensatz(array $parDbInhalteArray){ $nodeRevisionInhalteArray = array('title' => $parDbInhalteArray['titel'], 'uid' => self::$uidKennung, 'body' => $parDbInhalteArray['frage'], 'teaser' => $parDbInhalteArray['frage'], 'log' => 'JP Importscript', 'timestamp' => time(), 'format' => 0); //NODE-REVISION ERZEUGEN!! if($this->testmodus === false){ $erzeugt = $this->dbObj->insert('drupal_node_revisions', $nodeRevisionInhalteArray); $revisionLastInsertVid = $this->dbObj->lastInsertId(); } else { //Fake $erzeugt = true; } if($this->debug){ echo('
##### NODE-REVISION ######
'); echo('
'.print_r($nodeRevisionInhalteArray, true).'
'); } $nodeInhalteArray = array( 'vid' => $revisionLastInsertVid, 'type' => self::$faqElementKennung, 'language' => self::$sprachkennung, 'title' => $parDbInhalteArray['titel'], 'uid' => self::$uidKennung, 'status' => self::$statusAktivKennung, 'created' => time(), 'changed' => time(), 'comment' => 0, 'promote' => 0, 'moderate' => 0, 'sticky' => 0, 'tnid' => 0, 'translate' => 0 ); //NODE-EINTRAG ERZEUGEN!! if($this->testmodus === false){ $erzeugt = $this->dbObj->insert('drupal_node', $nodeInhalteArray); } else { //Fake $erzeugt = true; } if($this->debug){ echo('
##### BASISDATEN ######
'); echo('
'.print_r($nodeInhalteArray, true).'
'); } if(empty($erzeugt)){ throw new Exception('Ein Datensatz konnte nicht erzeugt werden!'); } $lastInsertId = $this->dbObj->lastInsertId(); //VID = NID $updateWerteArray = array('nid' => $lastInsertId); if($this->testmodus === false){ $this->dbObj->update('drupal_node_revisions', $updateWerteArray, 'vid = '.$revisionLastInsertVid); } $cckDbWerteArray = array('vid' => $lastInsertId, 'nid' => $lastInsertId, 'field_faq_antwort_value' => $parDbInhalteArray['antwort'], 'field_faq_antwort_format' => 1); if($this->testmodus === false){ $erzeugtDateien = $this->dbObj->insert('drupal_content_type_faq_element', $cckDbWerteArray); } if($this->debug){ echo('
##### CCK ######
'); echo('
'.print_r($cckDbWerteArray, true).'
'); } return !empty($erzeugt) and !empty($erzeugtDateien); } public function proceed(){ echo('+++++++++ Import gestartet! +++++++++
'); try { $vorbereiteteDaten = $this->holeDatenArray(); foreach ($vorbereiteteDaten as $einzelVorbereiteteDaten){ $this->_erzeugeDrupalDatensatz($einzelVorbereiteteDaten); } echo('+++++++++ Import erfolgreich beendet! +++++++++'); }catch (Exception $e){ echo('+++++++++ Import fehlgeschlagen! +++++++++'); throw $e; } } } $giObj = new FaqImport(); $giObj->proceed(); ?>