PageRenderTime 24ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/mwCalendar.php

http://mwcalendar.googlecode.com/
PHP | 100 lines | 53 code | 27 blank | 20 comment | 7 complexity | 4af2db7f4795b426663be26e64363762 MD5 | raw file
  1. <?php
  2. //error_reporting(E_ALL);
  3. ini_set("display_errors", 0);
  4. //include("file_with_errors.php");
  5. //error_log( "c:\Inetpub\wwwroot\mediawiki\extensions\calendar\trunk\php.log");
  6. # Confirm MW environment
  7. if (!defined('MEDIAWIKI')) {
  8. die( 'This file is a MediaWiki extension, it is not a valid entry point' );
  9. }
  10. ########## DEBUGGER ################
  11. define( 'mwcalendar_debugger', 0); // 0=off, 1=standard, 2=custom, 3=all
  12. ########## DEBUGGER ################
  13. ######### OPTIONS ###############
  14. define( 'mwcalendar_email_ical_mode', 1 ); // 0=off, 1=attachment, 2=embedded, 3=html email only
  15. define( 'mwcalendar_email_allday_format',1 ); // 1=20101215-20101216 (Outlook?), 2=20101215T000000-20101215T325959
  16. define( 'mwc_week_start_monday', true);
  17. ######### OPTIONS ###############
  18. # set the version
  19. define('mwcalendar_version','0.3.3'); //do not modify format
  20. define('mwcalendar_version_label',' (beta)'); //do not modify format
  21. define( 'mwcalendar_base_path', dirname(__FILE__) );
  22. require_once( mwcalendar_base_path . '/includes/main.php' );
  23. require_once( mwcalendar_base_path . '/includes/conversion.php' );
  24. require_once( mwcalendar_base_path . '/includes/helpers.php');
  25. # Credits
  26. $wgExtensionCredits['parserhook'][] = array(
  27. 'name'=>'mwCalendar',
  28. 'author'=>'Eric Fortin',
  29. 'url'=>'http://www.mediawiki.org/wiki/Extension:MW_Calendar',
  30. 'description'=>'MediaWiki Calendar',
  31. 'version'=> mwcalendar_version . mwcalendar_version_label
  32. );
  33. $wgExtensionFunctions[] = "mwCalendar";
  34. $wgExtensionMessagesFiles['mwCalendar'] = mwcalendar_base_path . "/includes/i18n.php";
  35. $wgShowSQLErrors=true;
  36. function mwCalendar() {
  37. global $wgParser;
  38. $wgParser->setHook( "mwcalendar", "launchCalendar" );
  39. wfLoadExtensionMessages( 'mwCalendar' );
  40. }
  41. function launchCalendar($paramstring, $params = array()) {
  42. global $wgVersion,$wgParser, $mwcDebugger;
  43. ##version check!
  44. if(version_compare($wgVersion, '1.14.0', '<')){
  45. return "You must be running MediaWiki version (1.14.0) or higher. Sorry, your version is ($wgVersion).";
  46. }
  47. $wgParser->disableCache();
  48. // conversion option; no need to do any normal calendar initializations
  49. if($ret = run_conversion($params)) {return $ret;}
  50. $calendar = new mwCalendar($params);
  51. $ret = $calendar->display();
  52. if(mwcalendar_debugger){
  53. $ret .= "<center><b><font color=red>*** DEBUG MODE ACTIVATED ***</font></b></center>";
  54. }
  55. $ret .= '<small>v.'.mwcalendar_version . mwcalendar_version_label.'</small><br>';
  56. return $ret;
  57. }
  58. // this will query any wiki-page calendar previous used and port that
  59. // data into this new database calendar
  60. function run_conversion($params){
  61. global $run_conversion, $calendar_source, $calendar_target, $calendar_startdate;
  62. # $calendar_source - ex: "Calendar:Main Page/Team Calendar"
  63. # $calendar_target - ex: "Supprot Team"
  64. # $calendar_startdate - ex: "1/1/2009" - any standard date would work as php auto detects the date
  65. # $run_conversion: (careful, this WILL create duplicates... run only ONCE!
  66. # true - run conversion and update database
  67. # false (default) - only display pages found - trial run
  68. if( isset($calendar_source) && isset($calendar_target) && isset($calendar_startdate) ){
  69. $conversion = new conversion($run_conversion);
  70. return $conversion->convert( $calendar_source, $calendar_target, $calendar_startdate );
  71. }
  72. return false;
  73. }