/** * 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; }
/** * 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(); }
/** * 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(); }
/** * 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 } } }