PageRenderTime 38ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/htroot/manager/actions/welcome.static.php

https://github.com/gunf/novo-isaak.local
PHP | 230 lines | 191 code | 23 blank | 16 comment | 40 complexity | 178a97aa7680dc45a8e8b081f2f29de6 MD5 | raw file
  1. <?php if(IN_MANAGER_MODE!="true") die("<b>INCLUDE_ORDERING_ERROR</b><br /><br />Please use the MODx Content Manager instead of accessing this file directly.");
  2. unset($_SESSION['itemname']); // clear this, because it's only set for logging purposes
  3. if($modx->hasPermission('settings') && (!isset($settings_version) || $settings_version!=$modx_version)) {
  4. // seems to be a new install - send the user to the configuration page
  5. echo '<script type="text/javascript">document.location.href="index.php?a=17";</script>';
  6. exit;
  7. }
  8. $script = <<<JS
  9. <script type="text/javascript">
  10. function hideConfigCheckWarning(key){
  11. var myAjax = new Ajax('index.php?a=118', {
  12. method: 'post',
  13. data: 'action=setsetting&key=_hide_configcheck_' + key + '&value=1'
  14. });
  15. myAjax.addEvent('onComplete', function(resp){
  16. fieldset = $(key + '_warning_wrapper').getParent().getParent();
  17. var sl = new Fx.Slide(fieldset);
  18. sl.slideOut();
  19. });
  20. myAjax.request();
  21. }
  22. </script>
  23. JS;
  24. $modx->regClientScript($script);
  25. // set placeholders
  26. $modx->setPlaceholder('theme',$manager_theme ? $manager_theme : '');
  27. $modx->setPlaceholder('home', $_lang["home"]);
  28. $modx->setPlaceholder('logo_slogan',$_lang["logo_slogan"]);
  29. $modx->setPlaceholder('site_name',$site_name);
  30. $modx->setPlaceholder('welcome_title',$_lang['welcome_title']);
  31. // setup message info
  32. if($modx->hasPermission('messages')) {
  33. include_once MODX_MANAGER_PATH.'includes/messageCount.inc.php';
  34. $_SESSION['nrtotalmessages'] = $nrtotalmessages;
  35. $_SESSION['nrnewmessages'] = $nrnewmessages;
  36. $msg = '<a href="index.php?a=10"><img src="'.$_style['icons_mail_large'].'" /></a>
  37. <span style="color:#909090;font-size:15px;font-weight:bold">&nbsp;'.$_lang["inbox"].($_SESSION['nrnewmessages']>0 ? " (<span style='color:red'>".$_SESSION['nrnewmessages']."</span>)":"").'</span><br />
  38. <span class="comment">'.sprintf($_lang["welcome_messages"], $_SESSION['nrtotalmessages'], "<span style='color:red;'>".$_SESSION['nrnewmessages']."</span>").'</span>';
  39. $modx->setPlaceholder('MessageInfo',$msg);
  40. }
  41. // setup icons
  42. if($modx->hasPermission('new_user')||$modx->hasPermission('edit_user')) {
  43. $icon = '<a class="hometblink" href="index.php?a=75"><img src="'.$_style['icons_security_large'].'" width="32" height="32" alt="'.$_lang['user_management_title'].'" /><br />'.$_lang['security'].'</a>';
  44. $modx->setPlaceholder('SecurityIcon',$icon);
  45. }
  46. if($modx->hasPermission('new_web_user')||$modx->hasPermission('edit_web_user')) {
  47. $icon = '<a class="hometblink" href="index.php?a=99"><img src="'.$_style['icons_webusers_large'].'" width="32" height="32" alt="'.$_lang['web_user_management_title'].'" /><br />'.$_lang['web_users'].'</a>';
  48. $modx->setPlaceholder('WebUserIcon',$icon);
  49. }
  50. if($modx->hasPermission('new_module') || $modx->hasPermission('edit_module')) {
  51. $icon = '<a class="hometblink" href="index.php?a=106"><img src="'.$_style['icons_modules_large'].'" width="32" height="32" alt="'.$_lang['manage_modules'].'" /><br />'.$_lang['modules'].'</a>';
  52. $modx->setPlaceholder('ModulesIcon',$icon);
  53. }
  54. if($modx->hasPermission('new_template') || $modx->hasPermission('edit_template') || $modx->hasPermission('new_snippet') || $modx->hasPermission('edit_snippet') || $modx->hasPermission('new_plugin') || $modx->hasPermission('edit_plugin') || $modx->hasPermission('manage_metatags')) {
  55. $icon = '<a class="hometblink" href="index.php?a=76"><img src="'.$_style['icons_resources_large'].'" width="32" height="32" alt="'.$_lang['element_management'].'" /><br />'.$_lang['elements'].'</a>';
  56. $modx->setPlaceholder('ResourcesIcon',$icon);
  57. }
  58. if($modx->hasPermission('bk_manager')) {
  59. $icon = '<a class="hometblink" href="index.php?a=93"><img src="'.$_style['icons_backup_large'].'" width="32" height="32" alt="'.$_lang['bk_manager'].'" /><br />'.$_lang['backup'].'</a>';
  60. $modx->setPlaceholder('BackupIcon',$icon);
  61. }
  62. // do some config checks
  63. if (($modx->config['warning_visibility'] == 0 && $_SESSION['mgrRole'] == 1) || $modx->config['warning_visibility'] == 1) {
  64. include_once "config_check.inc.php";
  65. $modx->setPlaceholder('settings_config',$_lang['settings_config']);
  66. $modx->setPlaceholder('configcheck_title',$_lang['configcheck_title']);
  67. if($config_check_results != $_lang['configcheck_ok']) {
  68. $modx->setPlaceholder('config_check_results',$config_check_results);
  69. $modx->setPlaceholder('config_display','block');
  70. }
  71. else {
  72. $modx->setPlaceholder('config_display','none');
  73. }
  74. } else {
  75. $modx->setPlaceholder('config_display','none');
  76. }
  77. // include rss feeds for important forum topics
  78. include_once "rss.inc.php";
  79. // modx news
  80. $modx->setPlaceholder('modx_news',$_lang["modx_news_tab"]);
  81. $modx->setPlaceholder('modx_news_title',$_lang["modx_news_title"]);
  82. $modx->setPlaceholder('modx_news_content',$feedData['modx_news_content']);
  83. // security notices
  84. $modx->setPlaceholder('modx_security_notices',$_lang["security_notices_tab"]);
  85. $modx->setPlaceholder('modx_security_notices_title',$_lang["security_notices_title"]);
  86. $modx->setPlaceholder('modx_security_notices_content',$feedData['modx_security_notices_content']);
  87. // recent document info
  88. $html = $_lang["activity_message"].'<br /><br /><ul>';
  89. $sql = "SELECT id, pagetitle, description FROM $dbase.`".$table_prefix."site_content` WHERE $dbase.`".$table_prefix."site_content`.deleted=0 AND ($dbase.`".$table_prefix."site_content`.editedby=".$modx->getLoginUserID()." OR $dbase.`".$table_prefix."site_content`.createdby=".$modx->getLoginUserID().") ORDER BY editedon DESC LIMIT 10";
  90. $rs = mysql_query($sql);
  91. $limit = mysql_num_rows($rs);
  92. if($limit<1) {
  93. $html .= '<li>'.$_lang['no_activity_message'].'</li>';
  94. } else {
  95. for ($i = 0; $i < $limit; $i++) {
  96. $content = mysql_fetch_assoc($rs);
  97. if($i==0) {
  98. $syncid = $content['id'];
  99. }
  100. $html.='<li><span style="width: 40px; text-align:right;">'.$content['id'].'</span> - <span style="width: 200px;"><a href="index.php?a=3&amp;id='.$content['id'].'">'.$content['pagetitle'].'</a></span>'.($content['description']!='' ? ' - '.$content['description'] : '').'</li>';
  101. }
  102. }
  103. $html.='</ul>';
  104. $modx->setPlaceholder('recent_docs',$_lang['recent_docs']);
  105. $modx->setPlaceholder('activity_title',$_lang['activity_title']);
  106. $modx->setPlaceholder('RecentInfo',$html);
  107. // user info
  108. $modx->setPlaceholder('info',$_lang['info']);
  109. $modx->setPlaceholder('yourinfo_title',$_lang['yourinfo_title']);
  110. $html = '
  111. <p>'.$_lang["yourinfo_message"].'</p>
  112. <table border="0" cellspacing="0" cellpadding="0">
  113. <tr>
  114. <td width="150">'.$_lang["yourinfo_username"].'</td>
  115. <td width="20">&nbsp;</td>
  116. <td><b>'.$modx->getLoginUserName().'</b></td>
  117. </tr>
  118. <tr>
  119. <td>'.$_lang["yourinfo_role"].'</td>
  120. <td>&nbsp;</td>
  121. <td><b>'.$_SESSION['mgrPermissions']['name'].'</b></td>
  122. </tr>
  123. <tr>
  124. <td>'.$_lang["yourinfo_previous_login"].'</td>
  125. <td>&nbsp;</td>
  126. <td><b>'.$modx->toDateFormat($_SESSION['mgrLastlogin']+$server_offset_time).'</b></td>
  127. </tr>
  128. <tr>
  129. <td>'.$_lang["yourinfo_total_logins"].'</td>
  130. <td>&nbsp;</td>
  131. <td><b>'.($_SESSION['mgrLogincount']+1).'</b></td>
  132. </tr>
  133. </table>
  134. ';
  135. $modx->setPlaceholder('UserInfo',$html);
  136. // online users
  137. $modx->setPlaceholder('online',$_lang['online']);
  138. $modx->setPlaceholder('onlineusers_title',$_lang['onlineusers_title']);
  139. $timetocheck = (time()-(60*20));//+$server_offset_time;
  140. include_once "actionlist.inc.php";
  141. $sql = "SELECT * FROM $dbase.`".$table_prefix."active_users` WHERE $dbase.`".$table_prefix."active_users`.lasthit>'$timetocheck' ORDER BY username ASC";
  142. $rs = mysql_query($sql);
  143. $limit = mysql_num_rows($rs);
  144. if($limit<1) {
  145. $html = "<p>".$_lang['no_active_users_found']."</p>";
  146. } else {
  147. $html = $_lang["onlineusers_message"].'<b>'.strftime('%H:%M:%S', time()+$server_offset_time).'</b>):<br /><br />
  148. <table border="0" cellpadding="1" cellspacing="1" width="100%" bgcolor="#ccc">
  149. <thead>
  150. <tr>
  151. <td><b>'.$_lang["onlineusers_user"].'</b></td>
  152. <td><b>'.$_lang["onlineusers_userid"].'</b></td>
  153. <td><b>'.$_lang["onlineusers_ipaddress"].'</b></td>
  154. <td><b>'.$_lang["onlineusers_lasthit"].'</b></td>
  155. <td><b>'.$_lang["onlineusers_action"].'</b></td>
  156. </tr>
  157. </thead>
  158. <tbody>
  159. ';
  160. for ($i = 0; $i < $limit; $i++) {
  161. $activeusers = mysql_fetch_assoc($rs);
  162. $currentaction = getAction($activeusers['action'], $activeusers['id']);
  163. $webicon = ($activeusers['internalKey']<0)? "<img src='media/style/{$manager_theme}/images/tree/globe.gif' alt='Web user' />":"";
  164. $html.= "<tr bgcolor='#FFFFFF'><td><b>".$activeusers['username']."</b></td><td>$webicon&nbsp;".abs($activeusers['internalKey'])."</td><td>".$activeusers['ip']."</td><td>".strftime('%H:%M:%S', $activeusers['lasthit']+$server_offset_time)."</td><td>$currentaction</td></tr>";
  165. }
  166. $html.= '
  167. </tbody>
  168. </table>
  169. ';
  170. }
  171. $modx->setPlaceholder('OnlineInfo',$html);
  172. // invoke event OnManagerWelcomePrerender
  173. $evtOut = $modx->invokeEvent('OnManagerWelcomePrerender');
  174. if(is_array($evtOut)) {
  175. $output = implode("",$evtOut);
  176. $modx->setPlaceholder('OnManagerWelcomePrerender', $output);
  177. }
  178. // invoke event OnManagerWelcomeHome
  179. $evtOut = $modx->invokeEvent('OnManagerWelcomeHome');
  180. if(is_array($evtOut)) {
  181. $output = implode("",$evtOut);
  182. $modx->setPlaceholder('OnManagerWelcomeHome', $output);
  183. }
  184. // invoke event OnManagerWelcomeRender
  185. $evtOut = $modx->invokeEvent('OnManagerWelcomeRender');
  186. if(is_array($evtOut)) {
  187. $output = implode("",$evtOut);
  188. $modx->setPlaceholder('OnManagerWelcomeRender', $output);
  189. }
  190. // load template file
  191. $customWelcome = $base_path.'manager/media/style/'.$modx->config['manager_theme'] .'/welcome.html';
  192. if( is_readable($customWelcome) ) {
  193. $tplFile = $customWelcome;
  194. } else {
  195. $tplFile = $base_path.'assets/templates/manager/welcome.html';
  196. }
  197. $handle = fopen($tplFile, "r");
  198. $tpl = fread($handle, filesize($tplFile));
  199. fclose($handle);
  200. // merge placeholders
  201. $tpl = $modx->mergePlaceholderContent($tpl);
  202. $tpl = preg_replace('~\[\+(.*?)\+\]~', '', $tpl); //cleanup
  203. if ($js= $modx->getRegisteredClientScripts()) {
  204. $tpl .= $js;
  205. }
  206. echo $tpl;
  207. ?>