PageRenderTime 59ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/mod_jfusion_activity/mod_jfusion_activity.php

http://jfusion.googlecode.com/
PHP | 148 lines | 112 code | 15 blank | 21 comment | 29 complexity | f3bd7d6c0c88c7a16a0b8dc65d751fcc MD5 | raw file
Possible License(s): Apache-2.0
  1. <?php
  2. /**
  3. * @package JFusion
  4. * @subpackage Modules
  5. * @author JFusion development team
  6. * @copyright Copyright (C) 2008 JFusion. All rights reserved.
  7. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
  8. */
  9. // no direct access
  10. defined('_JEXEC' ) or die('Restricted access' );
  11. /**
  12. * load the helper file
  13. */
  14. require_once(dirname(__FILE__).DS.'helper.php');
  15. //check if the JFusion component is installed
  16. $model_file = JPATH_ADMINISTRATOR .DS.'components'.DS.'com_jfusion'.DS.'models'.DS.'model.factory.php';
  17. $factory_file = JPATH_ADMINISTRATOR .DS.'components'.DS.'com_jfusion'.DS.'models'.DS.'model.jfusionpublic.php';
  18. if (file_exists($model_file) && file_exists($factory_file)) {
  19. /**
  20. * require the JFusion libraries
  21. */
  22. require_once($model_file);
  23. require_once($factory_file);
  24. $jname = $params->get('jfusionplugin');
  25. if(JFusionFunction::validPlugin($jname)) {
  26. $view = $params->get('view', 'auto');
  27. $public =& JFusionFactory::getPublic($jname);
  28. if($view == 'auto') {
  29. $db =& JFusionFactory::getDatabase($jname);
  30. //first check to see if the auto (forum) mode is even supported
  31. if(JFusionFunction::methodDefined($public, "getActivityQuery")) {
  32. defined('_DATE_FORMAT_LC2') or define('_DATE_FORMAT_LC2','%A, %d %B %Y %H:%M');
  33. defined('LAT') or define('LAT', 0);
  34. defined('LCT') or define('LCT', 1);
  35. defined('LCP') or define('LCP', 2);
  36. defined('LINKTHREAD') or define('LINKTHREAD', 0);
  37. defined('LINKPOST') or define('LINKPOST', 1);
  38. // configuration
  39. $config['mode'] = $params->get('mode', 0);
  40. $config['lat_mode'] = $params->get('lat_mode', 0);
  41. $config['show_reply_num'] = $params->get('show_reply_num', 0);
  42. $config['linktype'] = $params->get('linktype', 0);
  43. $config['display_body'] = $params->get('display_body', 0);
  44. $config['replace_subject'] = $params->get('replace_subject', 0);
  45. $config['new_window'] = $params->get('new_window', 0);
  46. $config['forum_mode'] = $params->get('forum_mode', 0);
  47. $config['character_limit'] = $params->get('character_limit', 150);
  48. $config['character_limit_subject'] = $params->get('character_limit_subject', 50);
  49. $config['result_limit'] = $params->get('result_limit', 5);
  50. $config['date_format'] = $params->get('custom_date', _DATE_FORMAT_LC2);
  51. $config['tz_offset'] = $params->get('tz_offset', 0);
  52. $config['result_order'] = ($params->get('result_order', 0)) ? "DESC" : "ASC";
  53. $config['showdate'] = $params->get('showdate', 1);
  54. $config['showuser'] = $params->get('showuser', 1);
  55. $config['display_name'] = $params->get('display_name', 0);
  56. $config['shownew'] = $params->get('shownew', 0);
  57. $config['userlink'] = $params->get('userlink', 0);
  58. $config['userlink_software'] = $params->get('userlink_software', false);
  59. $config['userlink_custom'] = $params->get('userlink_custom', false);
  60. $config['avatar'] = $params->get('avatar', 0);
  61. $config['avatar_software'] = $params->get('avatar_software', 'jfusion');
  62. $config['avatar_height'] = $params->get('avatar_height', 53);
  63. $config['avatar_width'] = $params->get('avatar_width', 40);
  64. $config['debug'] = $params->get('debug');
  65. $config['itemid'] = $params->get('itemid');
  66. $config['selected_forums'] = $params->get('selected_forums_'.$jname);
  67. if ($params->get('new_window')) {
  68. $config['new_window'] = '_blank';
  69. } else {
  70. $config['new_window'] = '_self';
  71. }
  72. //can be used in plugins filterActivityResults
  73. defined('ACTIVITY_MODE') or define('ACTIVITY_MODE', $config['mode']);
  74. if ($config['forum_mode'] == 0 || empty($config['selected_forums'])) {
  75. $selectedforumssql = "";
  76. } else if (is_array($config['selected_forums'])) {
  77. $selectedforumssql = implode(",", $config['selected_forums']);
  78. } else {
  79. $selectedforumssql = $config['selected_forums'];
  80. }
  81. //define some other JFusion specific parameters
  82. $query = $public->getActivityQuery($selectedforumssql, $config['result_order'], $config['result_limit']);
  83. // load
  84. if($config['mode']==LAT) {
  85. $db->setQuery($query[$config['mode'].$config['lat_mode']]);
  86. } else {
  87. $db->setQuery($query[$config['mode']]);
  88. }
  89. $results = $db->loadObjectList();
  90. if($config['debug']) {
  91. $resultBeforeFiltering = $results;
  92. }
  93. if (!empty($results)) {
  94. $public->filterActivityResults($results, $config['result_limit']);
  95. }
  96. //reorder the keys for the for loop
  97. if(is_array($results)) {
  98. $results = array_values($results);
  99. }
  100. if ($config['debug']) {
  101. $queryMode = ($config['mode']==LAT) ? $config['mode'].$config['lat_mode'] : $config['mode'];
  102. $debug = 'Query mode: ' . $queryMode . '<br><br>';
  103. $sqlQuery = ($config['mode']==LAT) ? $query[$config['mode'].$config['lat_mode']] : $query[$config['mode']];
  104. $debug .= 'SQL Query: ' . $sqlQuery .'<br><br>';
  105. $debug .= 'Error: ' . $db->stderr() . '<br><br>';
  106. $debug .= "Results Before Filtering:<br><pre>".print_r($resultBeforeFiltering,true).'</pre><br><br>';
  107. $debug .= "Results After Filtering:<br><pre>".print_r($results,true).'</pre><br><br>';
  108. die($debug);
  109. } else {
  110. modjfusionActivityHelper::appendAutoOutput($results, $jname, $config, $params);
  111. require(JModuleHelper::getLayoutPath('mod_jfusion_activity'));
  112. }
  113. } else {
  114. echo JText::_('NOT_IMPLEMENTED_YET');
  115. }
  116. } else {
  117. if(method_exists($public, "renderActivityModule")) {
  118. $output = $public->renderActivityModule($view, $params);
  119. echo $output;
  120. } else {
  121. echo JText::_('NOT_IMPLEMENTED_YET');
  122. }
  123. }
  124. } else {
  125. if (empty($jname)) {
  126. echo JText::_('MODULE_NOT_CONFIGURED');
  127. } else {
  128. echo JText::_('NO_PLUGIN');
  129. }
  130. }
  131. } else {
  132. echo JText::_('NO_COMPONENT');
  133. }