} # a "magic" edit_id value which will indicate that no such edit_id is in the DB edits table # ( valid edit_id value in DB cannot be negative number ) # usually indicates that the user's edit session was finished define('EC_NO_EDITING', -1); # time of edit "session" expiration (in seconds) # !! it should be at least twice longer than EditConflict.editSleep value defined in js !! define('EC_AJAX_EXPIRE_TIME', 1 * 60); # total time of edit until the record will be deleted (three hours) # (counts when client has no javascript) # !! decrease to 3*60 for the debugging purposes !! define('EC_EDIT_EXPIRE_TIME', 3 * 60 * 60); # conflict notifications will expire in 30 days (in seconds) define('EC_NOTIFICATION_EXPIRE_TIME', 30 * 24 * 60 * 60); $wgExtensionCredits['specialpage'][] = array('name' => 'EditConflict', 'version' => '0.4.2', 'author' => 'QuestPC', 'url' => 'https://www.mediawiki.org/wiki/Extension:EditConflict', 'descriptionmsg' => 'editconflict_desc'); EditConflict::startup(); $wgExtensionMessagesFiles['EditConflict'] = EditConflict::$ExtDir . '/EditConflict_i18n.php'; $wgAutoloadClasses['ec_CurrentEdits'] = EditConflict::$ExtDir . '/CurrentEdits.php'; $wgSpecialPages['CurrentEdits'] = 'ec_CurrentEdits'; $wgHooks['EditPageMergeChanges'][] = 'EditConflict::doEditConflict'; $wgHooks['MakeGlobalVariablesScript'][] = 'EditConflict::jsWikiMessages'; $wgHooks['BeforePageDisplay'][] = 'EditConflict::checkNotification'; $wgHooks['EditPage::showEditForm:fields'][] = 'EditConflict::initEditing'; $wgHooks['userCan'][] = 'EditConflict::checkEditConflict'; $wgHooks['UserGetRights'][] = 'EditConflict::checkUserPageDelete'; $wgHooks['ArticleDeleteComplete'][] = 'EditConflict::checkArticleDelete'; $wgAjaxExportList[] = 'EditConflict::getNotifyText'; $wgAjaxExportList[] = 'EditConflict::clearRevId'; $wgAjaxExportList[] = 'EditConflict::markEditing'; $wgAjaxExportList[] = 'EditConflict::checkEditButton'; class EditConflict