Example #1
0
 /**
  * Get instanz of the object (Singelton) 
  *
  * @return ClipboardHelper 
  */
 public static function getInstance()
 {
     if (self::$_objInstance == NULL) {
         self::$_objInstance = new ClipboardHelper();
     }
     return self::$_objInstance;
 }
 /**
  * Construct object
  * 
  * @param string $strFileName
  * @param string $strPath 
  */
 public function __construct($strFileName, $strPath)
 {
     $this->_objHelper = ClipboardHelper::getInstance();
     $this->_objXmlWriter = ClipboardXmlWriter::getInstance();
     $this->_objXmlReader = ClipboardXmlReader::getInstance();
     $this->_objFiles = Files::getInstance();
     $this->_filename = $strFileName;
     $this->_path = $strPath;
 }
Example #3
0
 /**
  * Prevent constructing the object (Singleton)
  */
 protected function __construct()
 {
     parent::__construct();
     $this->import('BackendUser', 'User');
     $this->_objHelper = ClipboardHelper::getInstance();
     $this->_objCbXml = ClipboardXml::getInstance();
     $this->_objDatabase = ClipboardDatabase::getInstance();
     $this->_objString = String::getInstance();
 }
Example #4
0
 /**
  * Prevent constructing the object (Singleton)
  */
 protected function __construct()
 {
     parent::__construct();
     $this->import('BackendUser', 'User');
     $this->_objXmlReader = ClipboardXmlReader::getInstance();
     $this->_objXmlWriter = ClipboardXmlWriter::getInstance();
     $this->_objHelper = ClipboardHelper::getInstance();
     $this->_objFiles = Files::getInstance();
     $this->_createClipboardFromFiles();
 }
Example #5
0
 /**
  * Create array set for insert query
  * 
  * @param XMLReader $objXml
  * @param integer $intId
  * @param string $strTable
  * @param string $strPastePos
  * @param integer $intElemId
  * @param bool $boolIsChild
  * @return array
  */
 protected function createArrSetForRow(&$objXml, $intId, $strTable, $strPastePos, $intElemId, $boolIsChild = FALSE)
 {
     $arrFields = $this->_objHelper->getFields($strTable);
     $arrSet = array();
     $strFieldType = '';
     $strFieldName = '';
     while ($objXml->read()) {
         switch ($objXml->nodeType) {
             case XMLReader::CDATA:
             case XMLReader::TEXT:
                 if (in_array($strFieldName, $arrFields)) {
                     switch ($strFieldName) {
                         case 'pid':
                         case 'id':
                             break;
                         case 'sorting':
                             if ($boolIsChild == TRUE) {
                                 $arrSet['pid'] = $intId;
                             } else {
                                 $arrSorting = $this->_objHelper->getNewPosition($strTable, $intElemId, $strPastePos);
                                 $arrSet['pid'] = $arrSorting['pid'];
                                 $arrSet['sorting'] = $arrSorting['sorting'];
                                 break;
                             }
                         default:
                             switch ($strFieldType) {
                                 case 'default':
                                     $strValue = str_replace($this->_objHelper->arrReplaceWith, $this->_objHelper->arrSearchFor, $objXml->value);
                                     $arrSet[$strFieldName] = $strValue;
                                     break;
                                 default:
                                     $arrSet[$strFieldName] = $objXml->value;
                                     break;
                             }
                             break;
                     }
                 }
             case XMLReader::ELEMENT:
                 if ($objXml->localName == 'field') {
                     $strFieldName = $objXml->getAttribute("name");
                     $strFieldType = $objXml->getAttribute("type");
                 }
                 break;
             case XMLReader::END_ELEMENT:
                 if ($objXml->localName == 'row') {
                     if ($strTable == 'tl_module') {
                         $arrSet['pid'] = $intId;
                     }
                     return $arrSet;
                 }
                 break;
         }
     }
 }
 /**
  * Write the given database rows to the xml object
  * 
  * @param string $strTable
  * @param array $arrRows
  * @param XMLWriter $objXml 
  */
 protected function writeGivenDbTableRows($strTable, $arrRows, &$objXml)
 {
     $arrFieldMeta = $this->_objHelper->getTableMetaFields($strTable);
     if (count($arrRows) > 0) {
         foreach ($arrRows as $row) {
             $objXml->startElement('row');
             foreach ($row as $field_key => $field_data) {
                 switch ($field_key) {
                     case 'id':
                     case 'pid':
                         break;
                     default:
                         if (!isset($field_data)) {
                             $objXml->startElement('field');
                             $objXml->writeAttribute("name", $field_key);
                             $objXml->writeAttribute("type", "null");
                             $objXml->text("NULL");
                             $objXml->endElement();
                             // End field
                         } else {
                             if ($field_data != "") {
                                 $objXml->startElement('field');
                                 $objXml->writeAttribute("name", $field_key);
                                 switch (strtolower($arrFieldMeta[$field_key]['type'])) {
                                     case 'binary':
                                     case 'varbinary':
                                     case 'blob':
                                     case 'tinyblob':
                                     case 'mediumblob':
                                     case 'longblob':
                                         $objXml->writeAttribute("type", "blob");
                                         $objXml->text("0x" . bin2hex($field_data));
                                         break;
                                     case 'tinyint':
                                     case 'smallint':
                                     case 'mediumint':
                                     case 'int':
                                     case 'integer':
                                     case 'bigint':
                                         $objXml->writeAttribute("type", "int");
                                         $objXml->text($field_data);
                                         break;
                                     case 'float':
                                     case 'double':
                                     case 'real':
                                     case 'decimal':
                                     case 'numeric':
                                         $objXml->writeAttribute("type", "decimal");
                                         $objXml->text($field_data);
                                         break;
                                     case 'date':
                                     case 'datetime':
                                     case 'timestamp':
                                     case 'time':
                                     case 'year':
                                         $objXml->writeAttribute("type", "date");
                                         $objXml->text("'" . $field_data . "'");
                                         break;
                                     case 'char':
                                     case 'varchar':
                                     case 'text':
                                     case 'tinytext':
                                     case 'mediumtext':
                                     case 'longtext':
                                     case 'enum':
                                     case 'set':
                                         $objXml->writeAttribute("type", "text");
                                         $objXml->writeCdata("'" . str_replace($this->_objHelper->arrSearchFor, $this->_objHelper->arrReplaceWith, $field_data) . "'");
                                         break;
                                     default:
                                         $objXml->writeAttribute("type", "default");
                                         $objXml->writeCdata("'" . str_replace($this->_objHelper->arrSearchFor, $this->_objHelper->arrReplaceWith, $field_data) . "'");
                                         break;
                                 }
                                 $objXml->endElement();
                                 // End field
                             }
                         }
                         break;
                 }
             }
             $objXml->endElement();
             // End row
         }
     }
 }