public function testObjectIndexerPerformance() { if (class_module_system_module::getModuleByName("news") === null) { return; } $arrNewsIds = array(); echo "Indexing without deferred indexer...\n"; class_module_system_changelog::$bitChangelogEnabled = false; $intTimeStart = microtime(true); $intQueriesStart = class_db::getInstance()->getNumber(); for ($intI = 0; $intI < 15; $intI++) { $objNews = new class_module_news_news(); $objNews->setStrTitle("demo 1"); $objNews->setStrIntro("intro demo news"); $objNews->setStrText("text demo news"); $objNews->updateObjectToDb(); $arrNewsIds[] = $objNews->getSystemid(); } echo "Queries pre indexing: ", class_db::getInstance()->getNumber() - $intQueriesStart . " \n"; $objHandler = new class_module_search_request_endprocessinglistener(); $objHandler->handleEvent(class_system_eventidentifier::EVENT_SYSTEM_REQUEST_AFTERCONTENTSEND, array()); $intTimeEnd = microtime(true); $time = $intTimeEnd - $intTimeStart; echo "Object updates: ", sprintf('%f', $time), " sec.\n"; echo "Queries total: ", class_db::getInstance()->getNumber() - $intQueriesStart . " \n"; echo "\nIndexing with deferred indexer...\n"; $objConfig = class_module_system_setting::getConfigByName("_search_deferred_indexer_"); $objConfig->setStrValue("true"); $objConfig->updateObjectToDb(); $intTimeStart = microtime(true); $intQueriesStart = class_db::getInstance()->getNumber(); for ($intI = 0; $intI < 15; $intI++) { $objNews = new class_module_news_news(); $objNews->setStrTitle("demo 1"); $objNews->setStrIntro("intro demo news"); $objNews->setStrText("text demo news"); $objNews->updateObjectToDb(); $arrNewsIds[] = $objNews->getSystemid(); } echo "Queries pre indexing: ", class_db::getInstance()->getNumber() - $intQueriesStart . " \n"; echo "Triggering queue update event...\n"; $objHandler = new class_module_search_request_endprocessinglistener(); $objHandler->handleEvent(class_system_eventidentifier::EVENT_SYSTEM_REQUEST_AFTERCONTENTSEND, array()); $intTimeEnd = microtime(true); $time = $intTimeEnd - $intTimeStart; echo "Object updates: ", sprintf('%f', $time), " sec.\n"; echo "Queries total: ", class_db::getInstance()->getNumber() - $intQueriesStart . " \n"; $objConfig = class_module_system_setting::getConfigByName("_search_deferred_indexer_"); $objConfig->setStrValue("false"); $objConfig->updateObjectToDb(); foreach ($arrNewsIds as $strNewsId) { class_objectfactory::getInstance()->getObject($strNewsId)->deleteObjectFromDatabase(); } }
/** * Renderes the content of a single widget. * * @return string * @permissions view */ protected function actionGetWidgetContent() { //load the aspect and close the session afterwards class_module_system_aspect::getCurrentAspect(); $objWidgetModel = new class_module_dashboard_widget($this->getSystemid()); if ($objWidgetModel->rightView()) { $objConcreteWidget = $objWidgetModel->getConcreteAdminwidget(); if (!$objConcreteWidget->getBitBlockSessionClose()) { class_carrier::getInstance()->getObjSession()->sessionClose(); } //disable the internal changelog class_module_system_changelog::$bitChangelogEnabled = false; class_response_object::getInstance()->setStrResponseType(class_http_responsetypes::STR_TYPE_JSON); $strReturn = json_encode($objConcreteWidget->generateWidgetOutput()); } else { class_response_object::getInstance()->setStrStatusCode(class_http_statuscodes::SC_UNAUTHORIZED); $strReturn = "<message><error>" . xmlSafeString($this->getLang("commons_error_permissions")) . "</error></message>"; } return $strReturn; }
/** * Checks if version is enabled in general and for the passed object * * @param interface_versionable $objSourceModel * * @return bool * @throws class_exception */ private function isVersioningAvailable(interface_versionable $objSourceModel) { if (self::$bitChangelogEnabled !== null) { return self::$bitChangelogEnabled; } // if(class_module_system_setting::getConfigValue("_system_changehistory_enabled_") != "true") { // self::$bitChangelogEnabled = false; // return false; // } if (!$objSourceModel instanceof interface_versionable) { throw new class_exception("object passed to create changelog not implementing interface_versionable", class_logger::$levelWarning); } //changes require at least kajona 3.4.9 $arrModul = class_module_system_module::getPlainModuleData("system"); if (version_compare($arrModul["module_version"], "3.4.9") < 0) { self::$bitChangelogEnabled = false; return false; } self::$bitChangelogEnabled = true; return true; }
protected function tearDown() { parent::tearDown(); class_module_system_changelog::$bitChangelogEnabled = null; }
public function testObjectIndexerPerformance() { if (class_module_system_module::getModuleByName("news") === null) { return; } $objNews = new class_module_news_news(); $objNews->setStrTitle("demo 1"); $objNews->setStrIntro("intro demo news"); $objNews->setStrText("text demo news"); $objNews->updateObjectToDb(); $strNewsId = $objNews->getSystemid(); echo "Status changes with disabled changelog indexer integration...\n"; class_module_system_changelog::$bitChangelogEnabled = false; $intTimeStart = microtime(true); $intQueriesStart = class_db::getInstance()->getNumber(); for ($intI = 0; $intI < 150; $intI++) { $objNews->setIntRecordStatus($intI % 2); $objNews->updateObjectToDb(); } $intTimeEnd = microtime(true); $time = $intTimeEnd - $intTimeStart; echo "Object updates: ", sprintf('%f', $time), " sec.\n"; echo "Queries: ", class_db::getInstance()->getNumber() - $intQueriesStart . " \n"; echo "Status changes with enabled changelog indexer integration...\n"; class_module_system_changelog::$bitChangelogEnabled = true; $intTimeStart = microtime(true); $intQueriesStart = class_db::getInstance()->getNumber(); for ($intI = 0; $intI < 150; $intI++) { $objNews->setIntRecordStatus($intI % 2); $objNews->updateObjectToDb(); } $intTimeEnd = microtime(true); $time = $intTimeEnd - $intTimeStart; echo "Object updates: ", sprintf('%f', $time), " sec.\n"; echo "Queries: ", class_db::getInstance()->getNumber() - $intQueriesStart . " \n"; class_objectfactory::getInstance()->getObject($strNewsId)->deleteObjectFromDatabase(); }
/** * Creates a list of the recent messages for the current user. * The structure is returned in an json-format. * * @permissions view * @xml * @autoTestable * * @return string */ protected function actionGetRecentMessages() { class_carrier::getInstance()->getObjSession()->setBitBlockDbUpdate(true); class_session::getInstance()->sessionClose(); class_module_system_changelog::$bitChangelogEnabled = false; class_response_object::getInstance()->setStrResponseType(class_http_responsetypes::STR_TYPE_JSON); $intMaxAmount = $this->getParam("limit") != "" ? $this->getParam("limit") : 5; $arrMessages = class_module_messaging_message::getObjectList($this->objSession->getUserID(), 0, $intMaxAmount - 1); $arrReturn = array(); foreach ($arrMessages as $objOneMessage) { $arrReturn[] = array("systemid" => $objOneMessage->getSystemid(), "title" => $objOneMessage->getStrDisplayName(), "unread" => $objOneMessage->getBitRead(), "details" => class_link::getLinkAdminHref($objOneMessage->getArrModule("modul"), "edit", "&systemid=" . $objOneMessage->getSystemid(), false)); } $arrReturn = array("messages" => $arrReturn, "messageCount" => class_module_messaging_message::getNumberOfMessagesForUser($this->objSession->getUserID(), true)); return json_encode($arrReturn); }
/** * Generates the list of favorite tags for the current user. * Returned structure is json based. * * @return string * @permissions view */ protected function actionGetFavoriteTags() { class_session::getInstance()->sessionClose(); class_carrier::getInstance()->getObjSession()->setBitBlockDbUpdate(true); class_module_system_changelog::$bitChangelogEnabled = false; $arrReturn = array(); $arrFavorites = class_module_tags_favorite::getAllFavoritesForUser(class_carrier::getInstance()->getObjSession()->getUserID(), 0, 10); foreach ($arrFavorites as $objOneFavorite) { $arrReturn[] = array("name" => $objOneFavorite->getStrDisplayName(), "onclick" => "location.href='" . getLinkAdminHref("tags", "showAssignedRecords", "&systemid=" . $objOneFavorite->getMappedTagSystemid(), false) . "'", "url" => getLinkAdminHref("tags", "showAssignedRecords", "&systemid=" . $objOneFavorite->getMappedTagSystemid(), false)); } class_response_object::getInstance()->setStrResponseType(class_http_responsetypes::STR_TYPE_JSON); return json_encode($arrReturn); }