/extensions/MoodBar/MoodBar.php

https://github.com/ChuguluGames/mediawiki-svn · PHP · 142 lines · 112 code · 16 blank · 14 comment · 1 complexity · a820eba6e16b8d74a7617e96dcc369ef MD5 · raw file

  1. <?php
  2. /**
  3. * MoodBar extension
  4. * Allows specified users to send their "mood" back to the site operator.
  5. */
  6. $wgExtensionCredits['other'][] = array(
  7. 'author' => array( 'Andrew Garrett', 'Timo Tijhof' ),
  8. 'descriptionmsg' => 'moodbar-desc',
  9. 'name' => 'MoodBar',
  10. 'url' => 'http://www.mediawiki.org/wiki/MoodBar',
  11. 'version' => '0.1',
  12. 'path' => __FILE__,
  13. );
  14. // Object model
  15. $wgAutoloadClasses['MBFeedbackItem'] = dirname(__FILE__).'/FeedbackItem.php';
  16. $wgAutoloadClasses['MoodBarFormatter'] = dirname(__FILE__).'/Formatter.php';
  17. // API
  18. $wgAutoloadClasses['ApiMoodBar'] = dirname(__FILE__).'/ApiMoodBar.php';
  19. $wgAPIModules['moodbar'] = 'ApiMoodBar';
  20. // Hooks
  21. $wgAutoloadClasses['MoodBarHooks'] = dirname(__FILE__).'/MoodBar.hooks.php';
  22. $wgHooks['BeforePageDisplay'][] = 'MoodBarHooks::onPageDisplay';
  23. $wgHooks['ResourceLoaderGetConfigVars'][] = 'MoodBarHooks::resourceLoaderGetConfigVars';
  24. $wgHooks['MakeGlobalVariablesScript'][] = 'MoodBarHooks::makeGlobalVariablesScript';
  25. $wgHooks['LoadExtensionSchemaUpdates'][] = 'MoodBarHooks::onLoadExtensionSchemaUpdates';
  26. // Special page
  27. $wgAutoloadClasses['SpecialMoodBar'] = dirname(__FILE__).'/SpecialMoodBar.php';
  28. $wgSpecialPages['MoodBar'] = 'SpecialMoodBar';
  29. // User rights
  30. $wgAvailableRights[] = 'moodbar-view';
  31. // Internationalisation
  32. $wgExtensionMessagesFiles['MoodBar'] = dirname(__FILE__).'/MoodBar.i18n.php';
  33. // Resources
  34. $mbResourceTemplate = array(
  35. 'localBasePath' => dirname(__FILE__) . '/modules',
  36. 'remoteExtPath' => 'MoodBar/modules'
  37. );
  38. $wgResourceModules['ext.moodBar.init'] = $mbResourceTemplate + array(
  39. 'styles' => 'ext.moodBar/ext.moodBar.init.css',
  40. 'scripts' => 'ext.moodBar/ext.moodBar.init.js',
  41. 'messages' => array(
  42. 'moodbar-trigger-feedback',
  43. 'moodbar-trigger-share',
  44. 'moodbar-trigger-editing',
  45. 'tooltip-p-moodbar-trigger-feedback',
  46. 'tooltip-p-moodbar-trigger-share',
  47. 'tooltip-p-moodbar-trigger-editing',
  48. ),
  49. 'position' => 'top',
  50. 'dependencies' => array(
  51. 'jquery.cookie',
  52. 'jquery.client',
  53. ),
  54. );
  55. $oldVersion = version_compare( $wgVersion, '1.17', '<=' );
  56. if ( !$oldVersion ) {
  57. $wgResourceModules['ext.moodBar.init']['dependencies'][] = 'mediawiki.user';
  58. }
  59. $wgResourceModules['ext.moodBar.core'] = $mbResourceTemplate + array(
  60. 'styles' => 'ext.moodBar/ext.moodBar.core.css',
  61. 'scripts' => 'ext.moodBar/ext.moodBar.core.js',
  62. 'messages' => array(
  63. 'moodbar-close',
  64. 'moodbar-intro-feedback',
  65. 'moodbar-intro-share',
  66. 'moodbar-intro-editing',
  67. 'moodbar-type-happy-title',
  68. 'moodbar-type-sad-title',
  69. 'moodbar-type-confused-title',
  70. 'tooltip-moodbar-what',
  71. 'moodbar-what-target',
  72. 'moodbar-what-label',
  73. 'moodbar-what-expanded',
  74. 'moodbar-what-collapsed',
  75. 'moodbar-what-content',
  76. 'moodbar-what-link',
  77. 'moodbar-form-title',
  78. 'moodbar-form-note',
  79. 'moodbar-form-note-dynamic',
  80. 'moodbar-form-policy-text',
  81. 'moodbar-form-policy-label',
  82. 'moodbar-form-submit',
  83. 'moodbar-privacy',
  84. 'moodbar-privacy-link',
  85. 'moodbar-disable-link',
  86. 'moodbar-loading-title',
  87. 'moodbar-error-title',
  88. 'moodbar-success-title',
  89. 'moodbar-loading-subtitle',
  90. 'moodbar-error-subtitle',
  91. 'moodbar-success-subtitle',
  92. ),
  93. 'dependencies' => array(
  94. 'mediawiki.util',
  95. 'ext.moodBar.init', // just in case
  96. 'jquery.localize',
  97. 'jquery.moodBar',
  98. ),
  99. 'position' => 'bottom',
  100. );
  101. $wgResourceModules['jquery.moodBar'] = $mbResourceTemplate + array(
  102. 'scripts' => 'jquery.moodBar/jquery.moodBar.js',
  103. 'dependencies' => array(
  104. 'mediawiki.util',
  105. ),
  106. );
  107. /** Configuration **/
  108. /** The registration time after which users will be shown the MoodBar **/
  109. $wgMoodBarCutoffTime = null;
  110. /** MoodBar configuration settings **/
  111. $wgMoodBarConfig = array(
  112. 'bucketConfig' =>
  113. array(
  114. 'buckets' =>
  115. array(
  116. 'feedback' => 80,
  117. 'share' => 10,
  118. 'editing' => 10,
  119. ),
  120. 'version' => 3,
  121. 'expires' => 30,
  122. ),
  123. 'infoUrl' => 'http://www.mediawiki.org/wiki/MoodBar',
  124. 'privacyUrl' => 'about:blank',
  125. 'disableExpiration' => 365,
  126. );