/** * Method collects and stores extension version details into the database. * * @param \SplSubject|\TYPO3\CMS\Extensionmanager\Utility\Parser\AbstractExtensionXmlParser &$subject a subject notifying this observer * @return void */ protected function loadIntoDatabase(\SplSubject &$subject) { // flush every 50 rows to database if ($this->sumRecords !== 0 && $this->sumRecords % 50 === 0) { $GLOBALS['TYPO3_DB']->exec_INSERTmultipleRows('tx_extensionmanager_domain_model_extension', self::$fieldNames, $this->arrRows, self::$fieldIndicesNoQuote); $this->arrRows = array(); } $versionRepresentations = \TYPO3\CMS\Core\Utility\VersionNumberUtility::convertVersionStringToArray($subject->getVersion()); // order must match that of self::$fieldNames! $this->arrRows[] = array($subject->getExtkey(), $subject->getVersion(), $versionRepresentations['version_int'], 0, (int) $subject->getAlldownloadcounter(), (int) $subject->getDownloadcounter(), !is_null($subject->getTitle()) ? $subject->getTitle() : '', $subject->getOwnerusername(), !is_null($subject->getAuthorname()) ? $subject->getAuthorname() : '', !is_null($subject->getAuthoremail()) ? $subject->getAuthoremail() : '', !is_null($subject->getAuthorcompany()) ? $subject->getAuthorcompany() : '', (int) $subject->getLastuploaddate(), $subject->getT3xfilemd5(), $this->repositoryUid, $this->extensionModel->getDefaultState($subject->getState() ?: ''), (int) $subject->getReviewstate(), $this->extensionModel->getCategoryIndexFromStringOrNumber($subject->getCategory() ?: ''), $subject->getDescription() ?: '', $subject->getDependencies() ?: '', $subject->getUploadcomment() ?: ''); ++$this->sumRecords; }
/** * Method collects and stores extension version details into the database. * * @param \SplSubject|\TYPO3\CMS\Extensionmanager\Utility\Parser\AbstractExtensionXmlParser &$subject a subject notifying this observer * @return void */ protected function loadIntoDatabase(\SplSubject &$subject) { // flush every 50 rows to database if ($this->sumRecords !== 0 && $this->sumRecords % 50 === 0) { GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_extensionmanager_domain_model_extension')->bulkInsert('tx_extensionmanager_domain_model_extension', $this->arrRows, self::$fieldNames); $this->arrRows = []; } $versionRepresentations = \TYPO3\CMS\Core\Utility\VersionNumberUtility::convertVersionStringToArray($subject->getVersion()); // order must match that of self::$fieldNames! $this->arrRows[] = [$subject->getExtkey(), $subject->getVersion(), $versionRepresentations['version_int'], 0, (int) $subject->getAlldownloadcounter(), (int) $subject->getDownloadcounter(), !is_null($subject->getTitle()) ? $subject->getTitle() : '', $subject->getOwnerusername(), !is_null($subject->getAuthorname()) ? $subject->getAuthorname() : '', !is_null($subject->getAuthoremail()) ? $subject->getAuthoremail() : '', !is_null($subject->getAuthorcompany()) ? $subject->getAuthorcompany() : '', (int) $subject->getLastuploaddate(), $subject->getT3xfilemd5(), $this->repositoryUid, $this->extensionModel->getDefaultState($subject->getState() ?: ''), (int) $subject->getReviewstate(), $this->extensionModel->getCategoryIndexFromStringOrNumber($subject->getCategory() ?: ''), $subject->getDescription() ?: '', $subject->getDependencies() ?: '', $subject->getUploadcomment() ?: '']; ++$this->sumRecords; }