%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.149 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/old/administrator/components/com_kunena/models/ |
Upload File : |
<?php /** * Kunena Component * @package Kunena.Administrator * @subpackage Models * * @copyright (C) 2008 - 2014 Kunena Team. All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * @link http://www.kunena.org **/ defined ( '_JEXEC' ) or die (); jimport ( 'joomla.application.component.model' ); jimport ( 'joomla.filesystem.folder' ); jimport ( 'joomla.filesystem.file' ); /** * Reportconfiguration Model for Kunena * * @since 2.0 **/ class KunenaAdminModelReport extends KunenaModel { /** * Method to generate all the reportconfiguration. * * @return string * @since 1.6 */ public function getSystemReport () { $kunena_db = JFactory::getDBO (); if(!$this->app->getCfg('smtpuser' )) { $jconfig_smtpuser = 'Empty'; } else { $jconfig_smtpuser = $this->app->getCfg('smtpuser' ); } if($this->app->getCfg('ftp_enable' )) { $jconfig_ftp = 'Enabled'; } else { $jconfig_ftp = 'Disabled'; } if($this->app->getCfg('sef' )) { $jconfig_sef = 'Enabled'; } else { $jconfig_sef = 'Disabled'; } if($this->app->getCfg('sef_rewrite' )) { $jconfig_sef_rewrite = 'Enabled'; } else { $jconfig_sef_rewrite = 'Disabled'; } if (file_exists(JPATH_ROOT.'/.htaccess')) { $htaccess = 'Exists'; } else { $htaccess = 'Missing'; } if(ini_get('register_globals')) { $register_globals = '[u]register_globals:[/u] [color=#FF0000]On[/color]'; } else { $register_globals = '[u]register_globals:[/u] Off'; } if(ini_get('safe_mode')) { $safe_mode = '[u]safe_mode:[/u] [color=#FF0000]On[/color]'; } else { $safe_mode = '[u]safe_mode:[/u] Off'; } if(extension_loaded('mbstring')) { $mbstring = '[u]mbstring:[/u] Enabled'; } else { $mbstring = '[u]mbstring:[/u] [color=#FF0000]Not installed[/color]'; } if(extension_loaded('gd')) { $gd_info = gd_info (); $gd_support = '[u]GD:[/u] '.$gd_info['GD Version'] ; } else { $gd_support = '[u]GD:[/u] [color=#FF0000]Not installed[/color]'; } $maxExecTime = ini_get('max_execution_time'); $maxExecMem = ini_get('memory_limit'); $fileuploads = ini_get('upload_max_filesize'); $kunenaVersionInfo = KunenaVersion::getVersionHTML (); // Get Kunena default template $ktemplate = KunenaFactory::getTemplate(); $ktemplatedetails = $ktemplate->getTemplateDetails(); $jtemplatedetails = $this->_getJoomlaTemplate(); $joomlamenudetails = $this->_getJoomlaMenuDetails(); $collation = $this->_getTablesCollation(); $kconfigsettings = $this->_getKunenaConfiguration(); // Get Joomla! languages installed $joomlalanguages = $this->_getJoomlaLanguagesInstalled(); // Check if Mootools plugins and others kunena plugins are enabled, and get the version of this modules $plg['jfirephp'] = $this->getExtensionVersion('system/jfirephp', 'System - JFirePHP'); $plg['ksearch'] = $this->getExtensionVersion('search/kunena', 'Search - Kunena Search'); $plg['kdiscuss'] = $this->getExtensionVersion('content/kunenadiscuss', 'Content - Kunena Discuss'); $plg['jxfinderkunena'] = $this->getExtensionVersion('finder/plg_jxfinder_kunena', 'Finder - Kunena Posts'); $plg['kjomsocialmenu'] = $this->getExtensionVersion('community/kunenamenu', 'JomSocial - My Kunena Forum Menu'); $plg['kjomsocialmykunena'] = $this->getExtensionVersion('community/mykunena', 'JomSocial - My Kunena Forum Posts'); $plg['kjomsocialgroups'] = $this->getExtensionVersion('community/kunenagroups', 'JomSocial - Kunena Groups'); foreach ($plg as $id=>$item) { if (empty($item)) unset ($plg[$id]); } if (!empty($plg)) $plgtext = '[quote][b]Plugins:[/b] ' . implode(' | ', $plg) . ' [/quote]'; else $plgtext = '[quote][b]Plugins:[/b] None [/quote]'; $mod = array(); $mod['kunenalatest'] = $this->getExtensionVersion('mod_kunenalatest', 'Kunena Latest'); $mod['kunenastats'] = $this->getExtensionVersion('mod_kunenastats', 'Kunena Stats'); $mod['kunenalogin'] = $this->getExtensionVersion('mod_kunenalogin', 'Kunena Login'); $mod['kunenasearch'] = $this->getExtensionVersion('mod_kunenasearch', 'Kunena Search'); foreach ($mod as $id=>$item) { if (empty($item)) unset ($mod[$id]); } if (!empty($mod)) $modtext = '[quote][b]Modules:[/b] ' . implode(' | ', $mod) . ' [/quote]'; else $modtext = '[quote][b]Modules:[/b] None [/quote]'; $thirdparty = array(); $thirdparty['aup'] = $this->getExtensionVersion('com_alphauserpoints', 'AlphaUserPoints'); $thirdparty['cb'] = $this->getExtensionVersion('com_comprofiler', 'CommunityBuilder'); $thirdparty['jomsocial'] = $this->getExtensionVersion('com_community', 'Jomsocial'); $thirdparty['uddeim'] = $this->getExtensionVersion('com_uddeim', 'UddeIM'); foreach ($thirdparty as $id=>$item) { if (empty($item)) unset ($thirdparty[$id]); } if (!empty($thirdparty)) $thirdpartytext = '[quote][b]Third-party components:[/b] ' . implode(' | ', $thirdparty) . ' [/quote]'; else $thirdpartytext = '[quote][b]Third-party components:[/b] None [/quote]'; $sef = array(); $sef['sh404sef'] = $this->getExtensionVersion('com_sh404sef', 'sh404sef'); $sef['joomsef'] = $this->getExtensionVersion('com_joomsef', 'ARTIO JoomSEF'); $sef['acesef'] = $this->getExtensionVersion('com_acesef', 'AceSEF'); foreach ($sef as $id=>$item) { if (empty($item)) unset ($sef[$id]); } if (!empty($sef)) $seftext = '[quote][b]Third-party SEF components:[/b] ' . implode(' | ', $sef) . ' [/quote]'; else $seftext = '[quote][b]Third-party SEF components:[/b] None [/quote]'; // Get integration settings $integration_settings = $this->getIntegrationSettings(); $report = '[confidential][b]Joomla! version:[/b] '.JVERSION.' [b]Platform:[/b] '.$_SERVER['SERVER_SOFTWARE'].' (' .$_SERVER['SERVER_NAME'].') [b]PHP version:[/b] '.phpversion().' | '.$safe_mode.' | '.$register_globals.' | '.$mbstring .' | '.$gd_support.' | [b]MySQL version:[/b] '.$kunena_db->getVersion().' | [b]Base URL:[/b]' .JUri::root(). '[/confidential][quote][b]Database collation check:[/b] '.$collation.' [/quote][quote][b]Joomla! SEF:[/b] '.$jconfig_sef.' | [b]Joomla! SEF rewrite:[/b] ' .$jconfig_sef_rewrite.' | [b]FTP layer:[/b] '.$jconfig_ftp.' | [confidential][b]Mailer:[/b] '.$this->app->getCfg('mailer' ).' | [b]Mail from:[/b] '.$this->app->getCfg('mailfrom' ).' | [b]From name:[/b] '.$this->app->getCfg('fromname' ).' | [b]SMTP Secure:[/b] '.$this->app->getCfg('smtpsecure' ).' | [b]SMTP Port:[/b] '.$this->app->getCfg('smtpport' ).' | [b]SMTP User:[/b] '.$jconfig_smtpuser.' | [b]SMTP Host:[/b] '.$this->app->getCfg('smtphost' ).' [/confidential] [b]htaccess:[/b] '.$htaccess .' | [b]PHP environment:[/b] [u]Max execution time:[/u] '.$maxExecTime.' seconds | [u]Max execution memory:[/u] ' .$maxExecMem.' | [u]Max file upload:[/u] '.$fileuploads.' [/quote] [quote][b]Kunena menu details[/b]:[spoiler] '.$joomlamenudetails.'[/spoiler][/quote][quote][b]Joomla default template details :[/b] '.$jtemplatedetails->name.' | [u]author:[/u] '.$jtemplatedetails->author.' | [u]version:[/u] '.$jtemplatedetails->version.' | [u]creationdate:[/u] '.$jtemplatedetails->creationdate.' [/quote][quote][b]Kunena default template details :[/b] '.$ktemplatedetails->name.' | [u]author:[/u] '.$ktemplatedetails->author.' | [u]version:[/u] '.$ktemplatedetails->version.' | [u]creationdate:[/u] '.$ktemplatedetails->creationDate.' [/quote][quote] [b]Kunena version detailed:[/b] '.$kunenaVersionInfo.' | [u]Kunena detailed configuration:[/u] [spoiler] '.$kconfigsettings.'[/spoiler]| [u]Kunena integration settings:[/u][spoiler] '.implode(' ', $integration_settings).'[/spoiler]| [u]Joomla! detailed language files installed:[/u][spoiler] '.$joomlalanguages.'[/spoiler][/quote]'.$thirdpartytext.' '.$seftext.' '.$plgtext.' '.$modtext; return $report; } /** * Method to get all languages installed into Joomla! and the default one * * @return string * @since 2.0 */ protected function _getJoomlaLanguagesInstalled() { $lang = JFactory::getLanguage(); $languages = $lang->getKnownLanguages(); $table_lang = '[table]'; $table_lang .= '[tr][th]Joomla! languages installed:[/th][/tr]'; foreach ($languages as $language) { $table_lang .= '[tr][td]'. $language['tag'] .'[/td][td]'. $language['name'].'[/td][/tr]'; } $table_lang .= '[/table]'; return $table_lang; } /** * Method to get all the kunena configuration settings. * * @return string * @since 1.6 */ protected function _getKunenaConfiguration() { if ($this->config) { $params = $this->config->getProperties(); $kconfigsettings = '[table]'; $kconfigsettings .= '[tr][th]Kunena config settings:[/th][/tr]'; foreach ($params as $key => $value ) { if (!is_array($value) && $key != 'id' && $key != 'board_title' && $key != 'email' && $key != 'offline_message' && $key != 'recaptcha_publickey' && $key != 'recaptcha_privatekey' && $key != 'email_visible_address' && $key != 'recaptcha_theme' && $key != 'stopforumspam_key' && $key != 'ebay_affiliate_id') { $kconfigsettings .= '[tr][td]'.$key.'[/td][td]'.$value.'[/td][/tr]'; } } $kconfigsettings .= '[/table]'; } else { $kconfigsettings = 'Your configuration settings aren\'t yet recorded in the database'; } return $kconfigsettings; } /** * Method to get the default joomla template. * * @return string * @since 1.6 */ protected function _getJoomlaTemplate() { $db = JFactory::getDBO (); // Get Joomla! frontend assigned template $query = "SELECT template FROM #__template_styles WHERE client_id=0 AND home=1"; $db->setQuery($query); $template = $db->loadResult(); if (KunenaError::checkDatabaseError()) return false; $xml = simplexml_load_file(JPATH_SITE.'/templates/'.$template.'/templateDetails.xml'); if (!$xml || $xml->getName() != 'extension') { return false; } $data = new stdClass(); $data->name = (string) $xml->name; $data->type = (string) $xml->attributes()->type; $data->creationdate = (string) $xml->creationdate; $data->author = (string) $xml->author; $data->copyright = (string) $xml->copyright; $data->authorEmail = (string) $xml->authorEmail; $data->authorUrl = (string) $xml->authorUrl; $data->version = (string) $xml->version; $data->description = (string) $xml->description; $data->thumbnail = (string) $xml->thumbnail; if (!$data->creationdate) $data->creationdate = JText::_('Unknown'); if (!$data->author) JText::_('Unknown'); return $data; } /** * Method to get all joomla menu details about kunena. * * @return string * @since 1.6 */ protected function _getJoomlaMenuDetails() { $items = KunenaMenuFix::getAll(); $joomlamenudetails = '[table][tr][td][u] ID [/u][/td][td][u] Name [/u][/td][td][u] Menutype [/u][/td][td][u] Link [/u][/td][td][u] Path [/u][/td][/tr] '; foreach($items as $item) { $link = preg_replace('/^.*\?(option=com_kunena&)?/', '', $item->link); $joomlamenudetails .= '[tr][td]'.$item->id.' [/td][td] '.$item->title.' [/td][td] '.$item->menutype.' [/td][td] '.$link.' [/td][td] '.$item->route.'[/td][/tr] '; } $joomlamenudetails .='[/table]'; return $joomlamenudetails; } /** * Method to check the tables collation. * * @return string * @since 1.6 */ protected function _getTablesCollation() { $kunena_db = JFactory::getDBO (); // Check each table in the database if the collation is on utf8 $tableslist = $kunena_db->getTableList(); $collation = ''; foreach($tableslist as $table) { if (preg_match('`_kunena_`',$table)) { $kunena_db->setQuery("SHOW FULL FIELDS FROM " .$table. ""); $fullfields = $kunena_db->loadObjectList (); if (KunenaError::checkDatabaseError()) return null; $fieldTypes = array('tinytext','text','char','varchar'); foreach ($fullfields as $row) { $tmp = strpos ( $row->Type , '(' ); if ($tmp) { if ( in_array(substr($row->Type,0,$tmp),$fieldTypes) ) { if(!empty($row->Collation) && !preg_match('`utf8`',$row->Collation)) { $collation .= $table.' [color=#FF0000]have wrong collation of type '.$row->Collation.' [/color] on field '.$row->Field.' '; } } } else { if ( in_array($row->Type,$fieldTypes) ) { if(!empty($row->Collation) && !preg_match('`utf8`',$row->Collation)) { $collation .= $table.' [color=#FF0000]have wrong collation of type '.$row->Collation.' [/color] on field '.$row->Field.' '; } } } } } } if(empty($collation)) { $collation = 'The collation of your table fields are correct'; } return $collation; } /** * Return extension version string if installed. * * @param string $extension * @param string $name * @return string * @since 1.6 */ protected function getExtensionVersion($extension, $name) { if (substr($extension, 0, 4) == 'com_') { $path = JPATH_ADMINISTRATOR . "/components/{$extension}"; } elseif (substr($extension, 0, 4) == 'mod_') { $path = JPATH_SITE . "/modules/{$extension}"; } else { list($folder, $element) = explode('/', $extension, 2); $path = JPATH_PLUGINS . "/{$folder}/{$element}"; } $version = $this->findExtensionVersion($path); return $version ? '[u]'.$name.'[/u] '.$version : ''; } /** * Tries to find the extension manifest file and returns version * * @param $path $path Path to extension directory * @return string Version number */ public function findExtensionVersion($path) { if (is_file($path)) { // Make array from the xml file $xmlfiles = array($path); } elseif (is_dir($path)) { // Get an array of all the XML files from the directory $xmlfiles = JFolder::files($path, '\.xml$', 1, true); } $version = null; if (!empty($xmlfiles)) { $installer = JInstaller::getInstance(); foreach ($xmlfiles as $file) { // Is it a valid Joomla installation manifest file? $manifest = $installer->isManifest($file); $newversion = $manifest ? (string) $manifest->version[0] : null; // We check all files just in case if there are more than one manifest file if (version_compare($newversion, $version, '>')) { $version = $newversion; } } } return $version; } public function getIntegrationSettings() { $plugins_list = array('alphauserpoints' => 'Kunena - AlphaUserPoints','comprofiler' => 'Kunena - Community Builder','gravatar' => 'Kunena - Gravatar','community' => 'Kunena - JomSocial','joomla' => 'Kunena - Joomla', 'kunena' => 'Kunena - Kunena', 'uddeim' => 'Kunena - UddeIM'); $plugin_final = array(); foreach($plugins_list as $name=>$desc) { $plugin = JPluginHelper::getPlugin('kunena', $name); if ($plugin) { $pluginParams = new JRegistry($plugin->params); $params = $pluginParams->toArray(); $plugin_final[] = '[b]'.$desc.'[/b] Enabled: '; foreach ($params as $param=>$value) { $plugin_final[] = "{$param}={$value} "; } $plugin_final[] = "\n"; } else { $plugin_final[] = "[b]{$desc}[/b] Disabled\n"; } } return $plugin_final; } }