public function update(SplSubject $subject) { // looks for an observer method with the state name if (method_exists($this, $subject->getState())) { call_user_func_array(array($this, $subject->getState()), array($subject)); } }
/** * 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; }
public function update(SplSubject $subject) { echo 'ConcreteObserver3 state is ', $subject->getState(), '<br>'; }
/** * Method collects and stores extension version details into the database. * * @access protected * @param SplSubject $subject a subject notifying this observer * @return void */ protected function loadIntoDB(SplSubject &$subject) { // flush every 50 rows to database if ($this->sumRecords !== 0 && $this->sumRecords % 50 === 0) { $GLOBALS['TYPO3_DB']->exec_INSERTmultipleRows('cache_extensions', self::$fieldNames, $this->arrRows, self::$fieldIndicesNoQuote); $this->arrRows = array(); } // order must match that of self::$fieldNamses! $this->arrRows[] = array($subject->getExtkey(), $subject->getVersion(), tx_em_Tools::makeVersion($subject->getVersion(), 'int'), intval($subject->getAlldownloadcounter()), intval($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() : '', intval($subject->getLastuploaddate()), $subject->getT3xfilemd5(), $this->repositoryUID, tx_em_Tools::getDefaultState($subject->getState() ? $subject->getState() : ''), intval($subject->getReviewstate()), tx_em_Tools::getDefaultCategory($subject->getCategory() ? $subject->getCategory() : ''), $subject->getDescription() ? $subject->getDescription() : '', $subject->getDependencies() ? $subject->getDependencies() : '', $subject->getUploadcomment() ? $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; }