2006-12-02 04:36:16 +00:00
< ? php
/*
2009-11-17 10:35:34 +00:00
* e107 website system
*
2009-11-18 01:06:08 +00:00
* Copyright ( C ) 2008 - 2009 e107 Inc ( e107 . org )
2009-11-17 10:35:34 +00:00
* Released under the terms and conditions of the
* GNU General Public License ( http :// www . gnu . org / licenses / gpl . txt )
*
*
*
* $Source : / cvs_backup / e107_0 . 8 / e107_admin / admin . php , v $
2010-02-10 18:18:01 +00:00
* $Revision $
* $Date $
* $Author $
2009-11-17 10:35:34 +00:00
*/
2006-12-02 04:36:16 +00:00
require_once ( '../class2.php' );
2016-11-11 13:44:20 +01:00
if ( varset ( $_GET [ 'mode' ]) == 'customize' )
{
$adminPref = e107 :: getConfig () -> get ( 'adminpref' , 0 );
// If not Main Admin and "Apply dashboard preferences to all administrators"
// is checked in admin theme settings.
if ( ! getperms ( " 1 " ) && $adminPref == 1 )
{
e107 :: redirect ( 'admin' );
exit ;
}
}
2013-03-20 23:50:30 -07:00
include_once ( e107 :: coreTemplatePath ( 'admin_icons' )); // Needs to be loaded before infopanel AND in boot.php
2012-12-06 14:53:58 -08:00
if ( vartrue ( $_GET [ 'iframe' ]) == 1 )
2012-05-17 09:19:44 +00:00
{
define ( 'e_IFRAME' , true );
}
2016-01-13 01:31:12 -08:00
2006-12-02 04:36:16 +00:00
$e_sub_cat = 'main' ;
2012-12-04 00:14:43 -08:00
2013-02-26 21:27:36 -08:00
if ( varset ( $pref [ 'adminstyle' ]) == 'cascade' || varset ( $pref [ 'adminstyle' ]) == 'beginner' ) // Deprecated Admin-include.
{
$pref [ 'adminstyle' ] = 'infopanel' ;
}
2016-11-07 14:12:19 +01:00
if ( in_array ( $pref [ 'adminstyle' ], array ( 'infopanel' , 'flexpanel' )))
2012-12-04 00:14:43 -08:00
{
2016-11-07 14:12:19 +01:00
require_once ( e_ADMIN . 'includes/' . $pref [ 'adminstyle' ] . '.php' );
2016-11-04 10:40:45 +01:00
2016-11-07 14:12:19 +01:00
$_class = 'adminstyle_' . $pref [ 'adminstyle' ];
2013-02-07 15:22:00 +02:00
if ( class_exists ( $_class , false ))
{
2016-11-07 14:12:19 +01:00
$adp = new $_class ;
}
else
{
$adp = new adminstyle_infopanel ;
2013-02-07 15:22:00 +02:00
}
2012-12-04 00:14:43 -08:00
}
2013-05-18 01:31:56 -07:00
2013-02-09 16:02:03 +02:00
require_once ( e_ADMIN . 'boot.php' );
require_once ( e_ADMIN . 'auth.php' );
2008-08-25 10:46:46 +00:00
require_once ( e_HANDLER . 'upload_handler.php' );
2013-02-26 21:27:36 -08:00
2008-08-25 10:46:46 +00:00
2013-05-18 01:31:56 -07:00
new admin_start ;
2006-12-02 04:36:16 +00:00
2013-05-18 01:31:56 -07:00
$mes = e107 :: getMessage ();
2013-04-22 03:29:10 -07:00
2013-05-18 01:31:56 -07:00
if ( ! isset ( $pref [ 'adminstyle' ])) $pref [ 'adminstyle' ] = 'infopanel' ; // Shouldn't be needed - but just in case
2013-04-22 03:29:10 -07:00
2013-05-18 01:31:56 -07:00
class admin_start
2013-04-22 03:29:10 -07:00
{
2013-05-18 01:31:56 -07:00
private $incompat = array (
'banhelper' => 1.7 ,
'slir_admin' => 1.0 ,
'facebook_like' => 0.7 ,
'unanswered' => 1.4 ,
'lightwindow' => '1.0b' ,
'aa_jquery' => 1.2 ,
2016-02-17 16:51:25 +01:00
'aa_jquery' => 1.4 ,
2013-05-18 01:31:56 -07:00
'who' => 1.0 ,
2013-05-29 16:16:17 +02:00
'ratings' => 4.2 ,
2014-09-07 16:34:17 +02:00
'lightbox' => 1.5 ,
2016-03-03 15:44:35 -08:00
'e107slider' => 0.1 ,
'forumthanks' => 0.5
2013-05-18 01:31:56 -07:00
);
private $allowed_types = null ;
2015-08-24 17:39:28 -07:00
private $refresh = false ;
2017-01-04 18:14:15 -08:00
private $exit = false ;
2013-05-18 01:31:56 -07:00
2016-12-06 12:47:10 -08:00
private $deprecated = array ();
function __construct ()
{
2017-01-20 10:13:36 -08:00
if ( ! getperms ( '0' ) || varset ( $_GET [ 'mode' ]) === 'customize' ) // don't display this tuff to regular admins only main admin.
2016-12-21 20:34:52 -08:00
{
return null ;
}
2016-12-22 10:15:10 -08:00
// Files that can cause comflicts and problems.
2016-12-06 12:47:10 -08:00
$this -> deprecated = array (
2016-12-06 11:17:20 -08:00
e_ADMIN . " ad_links.php " ,
e_PLUGIN . " tinymce4/e_meta.php " ,
e_THEME . " bootstrap3/css/bootstrap_dark.css " ,
e_PLUGIN . " search_menu/languages/English.php " ,
e_LANGUAGEDIR . " English/lan_parser_functions.php " ,
e_HANDLER . " np_class.php " ,
e_CORE . " shortcodes/single/user_extended.sc " ,
e_ADMIN . " download.php " ,
e_PLUGIN . " banner/config.php " ,
e_PLUGIN . " forum/newforumposts_menu_config.php " ,
e_PLUGIN . " forum/e_latest.php " ,
e_PLUGIN . " forum/e_status.php " ,
e_PLUGIN . " forum/forum_post_shortcodes.php " ,
e_PLUGIN . " forum/forum_shortcodes.php " ,
e_PLUGIN . " forum/forum_update_check.php " ,
e_PLUGIN . " online_extended_menu/online_extended_menu.php " ,
e_PLUGIN . " online_extended_menu/images/user.png " ,
2016-12-22 10:15:10 -08:00
e_PLUGIN . " online_extended_menu/languages/English.php " ,
2016-12-22 13:53:47 -08:00
e_PLUGIN . " pm/sendpm.sc " ,
2016-12-30 14:45:54 -08:00
e_PLUGIN . " pm/shortcodes/ " ,
e_PLUGIN . " social/e_header.php "
2016-12-06 11:17:20 -08:00
);
2016-12-06 12:47:10 -08:00
2016-12-06 11:17:20 -08:00
if ( ! empty ( $_POST [ 'delete-deprecated' ]))
{
$this -> deleteDeprecated ();
}
2017-01-04 18:14:15 -08:00
2017-01-04 18:08:58 -08:00
e107 :: getDb () -> db_Mark_Time ( 'Check Paths' );
2015-08-24 17:39:28 -07:00
$this -> checkPaths ();
2017-01-04 18:08:58 -08:00
e107 :: getDb () -> db_Mark_Time ( 'Check Timezone' );
2015-08-24 17:39:28 -07:00
$this -> checkTimezone ();
2017-01-04 18:08:58 -08:00
e107 :: getDb () -> db_Mark_Time ( 'Check Writable' );
2013-05-18 02:02:00 -07:00
$this -> checkWritable ();
2017-01-04 18:17:15 -08:00
2017-01-04 18:08:58 -08:00
e107 :: getDb () -> db_Mark_Time ( 'Check Incompatible Plugins' );
2013-05-18 01:31:56 -07:00
$this -> checkIncompatiblePlugins ();
2017-01-04 18:17:15 -08:00
2017-01-04 18:08:58 -08:00
e107 :: getDb () -> db_Mark_Time ( 'Check Filetypes' );
2013-05-18 01:31:56 -07:00
$this -> checkFileTypes ();
2017-01-04 18:17:15 -08:00
2017-01-04 18:08:58 -08:00
e107 :: getDb () -> db_Mark_Time ( 'Check Suspect Files' );
2013-05-18 01:31:56 -07:00
$this -> checkSuspiciousFiles ();
2017-01-04 18:17:15 -08:00
2017-01-04 18:08:58 -08:00
e107 :: getDb () -> db_Mark_Time ( 'Check Deprecated' );
2015-07-17 18:22:56 -07:00
$this -> checkDeprecated ();
2017-01-04 18:17:15 -08:00
e107 :: getDb () -> db_Mark_Time ( 'Check HTMLArea' );
$this -> checkHtmlarea ();
2017-01-04 18:08:58 -08:00
e107 :: getDb () -> db_Mark_Time ( 'Check Htaccess' );
2016-12-01 11:20:56 -08:00
$this -> checkHtaccess ();
2015-08-24 17:39:28 -07:00
2017-01-04 18:17:15 -08:00
e107 :: getDb () -> db_Mark_Time ( 'Check Core Update' );
$this -> checkCoreUpdate ();
if ( $this -> exit === true )
{
return null ;
}
e107 :: getDb () -> db_Mark_Time ( 'Check New Install' );
$this -> checkNewInstall ();
e107 :: getDb () -> db_Mark_Time ( 'Check Plugin Update' );
$this -> checkPluginUpdate ();
e107 :: getDb () -> db_Mark_Time ( 'Check Theme Update' );
$this -> checkThemeUpdate ();
e107 :: getDb () -> db_Mark_Time ( 'Check Password Encryption' );
$this -> checkPasswordEncryption ();
2015-08-24 17:39:28 -07:00
if ( $this -> refresh == true )
{
e107 :: getRedirect () -> go ( e_SELF );
}
2013-04-22 03:29:10 -07:00
}
2015-08-24 17:39:28 -07:00
function checkPaths ()
{
$create_dir = array ( e_MEDIA , e_SYSTEM , e_CACHE , e_CACHE_CONTENT , e_CACHE_IMAGE , e_CACHE_DB , e_LOG , e_BACKUP , e_CACHE_URL , e_TEMP , e_IMPORT );
2016-12-01 11:20:56 -08:00
$mes = e107 :: getMessage ();
2015-08-24 17:39:28 -07:00
foreach ( $create_dir as $dr )
{
if ( ! is_dir ( $dr ))
{
if ( mkdir ( $dr , 0755 ))
{
$this -> refresh = true ;
}
2016-12-01 11:20:56 -08:00
else
{
$mes -> addWarning ( " Unable to create <b> " . $dr . " </b>. Please check your folder permissions. " );
}
2015-08-24 17:39:28 -07:00
}
}
}
function checkTimezone ()
{
$mes = e107 :: getMessage ();
$timezone = e107 :: pref ( 'core' , 'timezone' );
if ( e107 :: getDate () -> isValidTimezone ( $timezone ) == false )
{
$mes -> addWarning ( " Your timezone setting ( " . $timezone . " ) is invalid. It has been reset to UTC. To Modify, please go to Admin -> Preferences -> Date Display Options. " , 'default' , true );
e107 :: getConfig () -> set ( 'timezone' , 'UTC' ) -> save ( false , true , false );
$this -> refresh = true ;
}
}
2013-05-18 02:02:00 -07:00
2017-01-04 18:08:58 -08:00
private function checkCoreUpdate ()
{
// auto db update
if ( '0' != ADMINPERMS )
{
return null ;
}
//$sc = e107::getScBatch('admin');
//echo $tp->parseTemplate('{ADMIN_COREUPDATE=alert}',true, $sc);
global $dont_check_update , $e107info ;
global $dbupdate , $dbupdatep , $e107cache ;
require_once ( e_ADMIN . 'update_routines.php' );
2017-01-04 18:14:15 -08:00
if ( update_check () === true )
{
if ( e_DEBUG !== true )
{
$this -> exit = true ;
}
}
2017-01-04 18:08:58 -08:00
}
private function checkPluginUpdate ()
{
require_once ( e_HANDLER . 'e_marketplace.php' );
$mp = new e_marketplace (); // autodetect the best method
$versions = $mp -> getVersionList ( 'plugin' );
$plugins = e107 :: getPref ( 'plug_installed' );
if ( empty ( $plugins ))
{
return null ;
}
$tp = e107 :: getParser ();
foreach ( $plugins as $folder => $version )
{
if ( ! empty ( $versions [ $folder ][ 'version' ]) && version_compare ( $version , $versions [ $folder ][ 'version' ], '<' ))
{
$link = " <a rel='external' href=' " . $versions [ $folder ][ 'url' ] . " '> " . $versions [ $folder ][ 'name' ] . " </a> " ;
$dl = $mp -> getDownloadModal ( 'plugin' , $versions [ $folder ]);
$caption = LAN_DOWNLOAD . " : " . $versions [ $folder ][ 'name' ] . " " . $versions [ $folder ][ 'version' ];
$lans = array ( 'x' => $link , 'y' => LAN_PLUGIN );
$message = $tp -> lanVars ( LAN_NEWER_VERSION_OF_X , $lans );
2017-01-15 12:59:33 -08:00
$message .= " <a href=' " . $dl . " ' class='e-modal' data-modal-caption= \" " . $caption . " \" title= \" " . LAN_DOWNLOAD . " \" > " . $tp -> toGlyph ( 'fa-arrow-circle-o-down' ) . " </a> " ;
2017-01-04 18:08:58 -08:00
e107 :: getMessage () -> addInfo ( $message );
e107 :: getMessage () -> addDebug ( " Local version: " . $version . " Remote version: " . $versions [ $folder ][ 'version' ]);
}
}
}
private function checkThemeUpdate ()
{
require_once ( e_HANDLER . 'e_marketplace.php' );
$mp = new e_marketplace (); // autodetect the best method
$versions = $mp -> getVersionList ( 'theme' );
$themes = scandir ( e_THEME );
if ( empty ( $themes ))
{
return null ;
}
$tp = e107 :: getParser ();
$list = e107 :: getTheme () -> getThemeList ();
foreach ( $list as $data )
{
$folder = $data [ 'path' ];
$version = $data [ 'version' ];
if ( ! empty ( $versions [ $folder ][ 'version' ]) && version_compare ( $version , $versions [ $folder ][ 'version' ], '<' ))
{
$link = " <a rel='external' href=' " . $versions [ $folder ][ 'url' ] . " '> " . $versions [ $folder ][ 'name' ] . " </a> " ;
$lans = array ( 'x' => $link , 'y' => LAN_THEME );
$dl = $mp -> getDownloadModal ( 'theme' , $versions [ $folder ]);
$caption = LAN_DOWNLOAD . " : " . $versions [ $folder ][ 'name' ] . " " . $versions [ $folder ][ 'version' ];
$message = $tp -> lanVars ( LAN_NEWER_VERSION_OF_X , $lans );
2017-01-15 12:59:33 -08:00
$message .= " <a href=' " . $dl . " ' class='e-modal' data-modal-caption= \" " . $caption . " \" title= \" " . LAN_DOWNLOAD . " \" > " . $tp -> toGlyph ( 'fa-arrow-circle-o-down' ) . " </a> " ;
2017-01-04 18:08:58 -08:00
e107 :: getMessage () -> addInfo ( $message );
e107 :: getMessage () -> addDebug ( " Local version: " . $version . " Remote version: " . $versions [ $folder ][ 'version' ]);
}
}
}
2016-12-08 08:54:55 -08:00
/**
*
*/
2016-12-07 18:23:57 -08:00
private function checkNewInstall ()
{
2016-12-08 08:54:55 -08:00
$upgradeAlertFlag = e_CACHE . 'dismiss.upgrade.alert.txt' ;
if ( ! empty ( $_GET [ 'dismiss' ]) && $_GET [ 'dismiss' ] == 'upgrade' )
{
file_put_contents ( $upgradeAlertFlag , 'true' );
}
2016-12-07 18:23:57 -08:00
$pref = e107 :: getPref ( 'install_date' );
$v2ReleaseDate = strtotime ( 'August 27, 2015' );
$numDays = ( abs ( $pref - time ()) / 60 / 60 / 24 );
if ( $numDays < 3 ) // installed in the past 3 days.
{
echo e107 :: getMessage () -> setTitle ( 'Need Help?' , E_MESSAGE_INFO ) -> addInfo ( " <p>Connect with our community for <a href='http://e107help.org' rel='external'>free support</a> with any e107 issues you may encounter. </p> " ) -> render ();
}
2016-12-08 08:54:55 -08:00
elseif ( $pref < $v2ReleaseDate && ! file_exists ( $upgradeAlertFlag )) // installed prior to v2 release.
2016-12-07 18:23:57 -08:00
{
2016-12-08 08:54:55 -08:00
$message = " Connect with our community for <a href='http://e107help.org' rel='external'>free support</a> with any upgrading issues you may encounter. " ;
$message .= " <div class='text-right'><a class='btn btn-xs btn-primary ' href='admin.php?dismiss=upgrade'>Don't show again</a></div> " ; //todo do it with class=e-ajax and data-dismiss='alert'
echo e107 :: getMessage () -> setTitle ( 'Upgrading?' , E_MESSAGE_INFO ) -> addInfo ( $message ) -> render ();
2016-12-07 18:23:57 -08:00
}
e107 :: getMessage () -> setTitle ( null , E_MESSAGE_INFO );
}
2013-05-18 02:02:00 -07:00
function checkWritable ()
{
$mes = e107 :: getMessage ();
2013-10-31 17:51:12 -07:00
if ( deftrue ( 'e_MEDIA' ) && is_dir ( e_MEDIA ) && ! is_writable ( e_MEDIA ))
2013-05-18 02:02:00 -07:00
{
$mes -> addWarning ( " The folder " . e_MEDIA . " is not writable. Please correct before proceeding. " );
}
2013-10-31 17:51:12 -07:00
if ( deftrue ( 'e_SYSTEM' ) && is_dir ( e_SYSTEM ) && ! is_writable ( e_SYSTEM ))
2013-05-18 02:02:00 -07:00
{
$mes -> addWarning ( " The folder " . e_SYSTEM . " is not writable. Please correct before proceeding. " );
2016-03-21 14:22:49 -07:00
}
$files = e107 :: getFile () -> scandir ( e_IMAGE . " avatars " , 'jpg,gif,png,jpeg' );
if ( is_dir ( e_IMAGE . " avatars " ) && ! is_writable ( e_IMAGE . " avatars " ) && ! empty ( $files ))
{
$mes -> addWarning ( " Legacy avatars folder detected. Please make sure " . e_IMAGE . " avatars/ is writable. Please correct before proceeding. " );
}
2013-05-18 02:02:00 -07:00
}
2013-05-18 01:31:56 -07:00
function checkHtmlarea ()
{
$mes = e107 :: getMessage ();
if ( is_dir ( e_ADMIN . 'htmlarea' ) || is_dir ( e_HANDLER . 'htmlarea' ))
{
2016-03-21 14:22:49 -07:00
$mes -> addWarning ( e_HANDLER_ABS . " htmlarea/<br /> " . e_ADMIN_ABS . " htmlarea/ " );
2013-05-18 01:31:56 -07:00
}
}
2013-04-22 03:29:10 -07:00
2013-05-18 01:31:56 -07:00
function checkIncompatiblePlugins ()
2006-12-02 04:36:16 +00:00
{
2013-05-18 01:31:56 -07:00
$mes = e107 :: getMessage ();
$installedPlugs = e107 :: getPref ( 'plug_installed' );
$inCompatText = " " ;
$incompatFolders = array_keys ( $this -> incompat );
foreach ( $this -> incompat as $folder => $version )
2006-12-02 04:36:16 +00:00
{
2013-05-18 01:31:56 -07:00
if ( vartrue ( $installedPlugs [ $folder ]) && $version == $installedPlugs [ $folder ])
{
$inCompatText .= " <li> " . $folder . " v " . $installedPlugs [ $folder ] . " </li> " ;
}
2006-12-02 04:36:16 +00:00
}
2013-05-18 01:31:56 -07:00
if ( $inCompatText )
{
$text = " <ul> " . $inCompatText . " </ul> " ;
2015-07-13 19:09:30 -07:00
$mes -> addWarning ( " The following plugins are not compatible with this version of e107 and should be uninstalled: " . $text . " <a class='btn btn-default' href=' " . e_ADMIN . " plugin.php'>uninstall</a> " );
2013-05-18 01:31:56 -07:00
}
2006-12-02 04:36:16 +00:00
}
2015-07-17 18:22:56 -07:00
2016-06-16 12:23:20 -07:00
function checkPasswordEncryption ()
{
$us = e107 :: getUserSession ();
$mes = e107 :: getMessage ();
if ( $us -> passwordAPIExists () === true && $us -> getDefaultHashType () !== PASSWORD_E107_PHP && e107 :: pref ( 'core' , 'password_CHAP' ) == 0 )
{
$message = " It is HIGHLY recommended that you [change your password encoding] to the PHP Default. (Password hashes will be automatically upgraded during user login.) " ;
$srch = array ( '[' , ']' );
$repl = array ( " <a class='alert-link' href=' " . e_ADMIN . " prefs.php#nav-core-prefs-security'> " , " </a> " );
$mes -> addWarning ( str_replace ( $srch , $repl , $message ));
}
2016-03-21 14:22:49 -07:00
2016-06-16 12:23:20 -07:00
}
2016-03-21 14:22:49 -07:00
2016-12-01 11:20:56 -08:00
private function checkDependencies ()
{
}
2016-03-21 14:22:49 -07:00
2016-12-06 11:17:20 -08:00
private function checkDeprecated ()
2015-07-17 18:22:56 -07:00
{
2016-02-11 11:21:03 -08:00
2015-07-17 18:22:56 -07:00
$found = array ();
2016-12-06 11:17:20 -08:00
foreach ( $this -> deprecated as $path )
2015-07-17 18:22:56 -07:00
{
if ( file_exists ( $path ))
{
$found [] = $path ;
}
}
if ( ! empty ( $found ))
{
2016-12-06 11:17:20 -08:00
$frm = e107 :: getForm ();
$text = $frm -> open ( 'deprecatedFiles' , 'post' );
2017-01-09 08:27:46 +01:00
$text .= ADLAN_186 ;
2015-07-17 18:22:56 -07:00
$text .= " <ul><li> " . implode ( " </li><li> " , $found ) . " </li></ul> " ;
2016-12-06 11:17:20 -08:00
$text .= $frm -> button ( 'delete-deprecated' , LAN_DELETE , 'delete' );
$text .= $frm -> close ();
2015-07-17 18:22:56 -07:00
e107 :: getMessage () -> addWarning ( $text );
}
}
2016-12-06 11:17:20 -08:00
private function deleteDeprecated ()
{
$mes = e107 :: getMessage ();
foreach ( $this -> deprecated as $file )
{
if ( ! file_exists ( $file ))
{
continue ;
}
if ( @ unlink ( $file ))
{
$mes -> addSuccess ( " Deleted " . $file );
}
else
{
$mes -> addError ( " Unable to delete " . $file . " . Please remove the file manually. " );
}
}
}
2016-12-01 11:20:56 -08:00
function checkHtaccess () // upgrade scenario
{
if ( ! file_exists ( e_BASE . " .htaccess " ) && file_exists ( e_BASE . " e107.htaccess " ))
{
if ( rename ( e_BASE . " e107.htaccess " , e_BASE . " .htaccess " ) === false )
{
e107 :: getMessage () -> addWarning ( " Please rename your <b>e107.htaccess</b> file to <b>.htaccess</b> " );
}
}
}
2013-05-18 01:31:56 -07:00
function checkFileTypes ()
2006-12-02 04:36:16 +00:00
{
2013-05-18 01:31:56 -07:00
$mes = e107 :: getMessage ();
$this -> allowed_types = get_filetypes (); // Get allowed types according to filetypes.xml or filetypes.php
if ( count ( $this -> allowed_types ) == 0 )
{
2016-03-21 14:22:49 -07:00
$this -> allowed_types = array ( 'zip' => 1 , 'gz' => 1 , 'jpg' => 1 , 'png' => 1 , 'gif' => 1 , 'pdf' => 1 );
2017-01-13 10:34:44 -08:00
$mes -> addDebug ( " Setting default filetypes: " . implode ( ', ' , array_keys ( $this -> allowed_types )));
2013-05-18 01:31:56 -07:00
}
2006-12-02 04:36:16 +00:00
}
2013-05-18 01:31:56 -07:00
2006-12-02 04:36:16 +00:00
2008-12-30 15:56:12 +00:00
2013-05-18 01:31:56 -07:00
function checkSuspiciousFiles ()
2008-08-25 10:46:46 +00:00
{
2013-05-18 01:31:56 -07:00
$mes = e107 :: getMessage ();
$public = array ( e_UPLOAD , e_AVATAR_UPLOAD );
2015-07-16 14:29:19 -07:00
$tp = e107 :: getParser ();
2013-05-18 01:31:56 -07:00
$exceptions = array ( " . " , " .. " , " / " , " CVS " , " avatars " , " Thumbs.db " , " .ftpquota " , " .htaccess " , " php.ini " , " .cvsignore " , 'e107.htaccess' );
//TODO use $file-class to grab list and perform this check.
foreach ( $public as $dir )
2008-08-25 10:46:46 +00:00
{
2013-05-18 01:31:56 -07:00
if ( is_dir ( $dir ))
2008-08-25 10:46:46 +00:00
{
2013-05-18 01:31:56 -07:00
if ( $dh = opendir ( $dir ))
2008-08-25 10:46:46 +00:00
{
2013-05-18 01:31:56 -07:00
while (( $file = readdir ( $dh )) !== false )
2008-08-25 10:46:46 +00:00
{
2013-05-18 01:31:56 -07:00
if ( is_dir ( $dir . " / " . $file ) == FALSE && ! in_array ( $file , $exceptions ))
2008-08-25 10:46:46 +00:00
{
2013-05-18 01:31:56 -07:00
$fext = substr ( strrchr ( $file , " . " ), 1 );
if ( ! array_key_exists ( strtolower ( $fext ), $this -> allowed_types ) )
2008-08-25 10:46:46 +00:00
{
2013-05-18 01:31:56 -07:00
if ( $file == 'index.html' || $file == " null.txt " )
{
if ( filesize ( $dir . '/' . $file ))
{
$potential [] = str_replace ( '../' , '' , $dir ) . '/' . $file ;
}
}
else
{
$potential [] = str_replace ( '../' , '' , $dir ) . '/' . $file ;
}
2006-12-02 04:36:16 +00:00
}
2008-12-30 15:56:12 +00:00
}
2006-12-02 04:36:16 +00:00
}
2013-05-18 01:31:56 -07:00
closedir ( $dh );
2006-12-02 04:36:16 +00:00
}
}
}
2013-05-18 01:31:56 -07:00
if ( isset ( $potential ))
{
//$text = ADLAN_ERR_3."<br /><br />";
2015-07-16 14:29:19 -07:00
$mes -> addWarning ( $tp -> toHtml ( ADLAN_ERR_3 , true ));
2013-05-18 01:31:56 -07:00
$text = '<ul>' ;
foreach ( $potential as $p_file )
{
$text .= '<li>' . $p_file . '</li>' ;
}
$mes -> addWarning ( $text );
//$ns -> tablerender(ADLAN_ERR_1, $text);
}
2006-12-02 04:36:16 +00:00
}
2013-05-18 01:31:56 -07:00
2006-12-02 04:36:16 +00:00
}
2013-05-18 01:31:56 -07:00
2006-12-02 04:36:16 +00:00
// ---------------------------------------------------------
2013-05-20 04:50:11 -07:00
2006-12-02 04:36:16 +00:00
2017-01-04 18:08:58 -08:00
2013-05-12 04:51:06 -07:00
2006-12-02 04:36:16 +00:00
// end auto db update
2008-08-25 10:46:46 +00:00
/*
2008-12-30 15:56:12 +00:00
if ( e_QUERY == 'purge' && getperms ( '0' ))
2008-08-25 10:46:46 +00:00
{
2006-12-02 04:36:16 +00:00
$admin_log -> purge_log_events ( false );
}
2008-08-25 10:46:46 +00:00
*/
2006-12-02 04:36:16 +00:00
$td = 1 ;
2012-12-08 00:36:34 -08:00
2008-08-25 10:46:46 +00:00
2012-12-03 02:21:51 -08:00
// DEPRECATED
2008-12-30 15:56:12 +00:00
function render_links ( $link , $title , $description , $perms , $icon = FALSE , $mode = FALSE )
2008-08-25 10:46:46 +00:00
{
2012-12-03 02:21:51 -08:00
return e107 :: getNav () -> renderAdminButton ( $link , $title , $description , $perms , $icon , $mode );
2006-12-02 04:36:16 +00:00
}
2008-08-25 10:46:46 +00:00
2012-12-05 21:30:17 -08:00
function render_clean () // still used by classis, tabbed etc.
2008-08-25 10:46:46 +00:00
{
2006-12-02 04:36:16 +00:00
global $td ;
2009-11-08 12:08:35 +00:00
$text = " " ;
while ( $td <= ADLINK_COLS )
{
2006-12-02 04:36:16 +00:00
$text .= " <td class='td' style='width:20%;'></td> " ;
$td ++ ;
}
$text .= " </tr> " ;
$td = 1 ;
return $text ;
}
2008-12-04 20:17:54 +00:00
2009-07-04 13:36:15 +00:00
2012-12-04 00:14:43 -08:00
if ( is_object ( $adp ))
{
2016-11-07 14:12:19 +01:00
$adp -> render ();
2012-12-04 00:14:43 -08:00
}
else
{
require_once ( e_ADMIN . 'includes/' . $pref [ 'adminstyle' ] . '.php' );
}
2009-07-04 13:36:15 +00:00
2006-12-02 04:36:16 +00:00
2008-08-25 10:46:46 +00:00
2008-12-30 15:56:12 +00:00
function admin_info ()
2008-08-25 10:46:46 +00:00
{
2006-12-02 04:36:16 +00:00
global $tp ;
$width = ( getperms ( '0' )) ? " 33% " : " 50% " ;
$ADMIN_INFO_TEMPLATE = "
< div style = 'text-align:center' >
< table style = 'width: 100%; border-collapse:collapse; border-spacing:0px;' >
< tr >
< td style = 'width: ".$width."; vertical-align: top' >
{ ADMIN_STATUS }
</ td >
< td style = 'width:".$width."; vertical-align: top' >
{ ADMIN_LATEST }
</ td > " ;
if ( getperms ( '0' ))
{
$ADMIN_INFO_TEMPLATE .= "
< td style = 'width:".$width."; vertical-align: top' > { ADMIN_LOG } </ td > " ;
}
$ADMIN_INFO_TEMPLATE .= "
</ tr ></ table ></ div > " ;
return $tp -> parseTemplate ( $ADMIN_INFO_TEMPLATE );
}
2008-12-30 15:56:12 +00:00
function status_request ()
2008-08-25 10:46:46 +00:00
{
2006-12-02 04:36:16 +00:00
global $pref ;
2009-07-04 03:08:03 +00:00
if ( $pref [ 'adminstyle' ] == 'classis' || $pref [ 'adminstyle' ] == 'cascade' || $pref [ 'adminstyle' ] == 'beginner' || $pref [ 'adminstyle' ] == 'tabbed' ) {
2006-12-02 04:36:16 +00:00
return TRUE ;
} else {
return FALSE ;
}
}
2008-08-25 10:46:46 +00:00
2008-12-30 15:56:12 +00:00
function latest_request ()
2008-08-25 10:46:46 +00:00
{
2006-12-02 04:36:16 +00:00
global $pref ;
2009-07-04 03:08:03 +00:00
if ( $pref [ 'adminstyle' ] == 'classis' || $pref [ 'adminstyle' ] == 'cascade' || $pref [ 'adminstyle' ] == 'beginner' || $pref [ 'adminstyle' ] == 'tabbed' ) {
2006-12-02 04:36:16 +00:00
return TRUE ;
} else {
return FALSE ;
}
}
2008-12-30 15:56:12 +00:00
function log_request ()
2008-08-25 10:46:46 +00:00
{
2006-12-02 04:36:16 +00:00
global $pref ;
2009-07-04 03:08:03 +00:00
if ( $pref [ 'adminstyle' ] == 'classis' || $pref [ 'adminstyle' ] == 'cascade' || $pref [ 'adminstyle' ] == 'beginner' || $pref [ 'adminstyle' ] == 'tabbed' ) {
2006-12-02 04:36:16 +00:00
return TRUE ;
} else {
return FALSE ;
}
}
2012-12-03 01:40:47 -08:00
// getPlugLinks() - moved to sitelinks_class.php : pluginLinks();
2008-08-25 10:46:46 +00:00
2006-12-02 04:36:16 +00:00
require_once ( " footer.php " );
2017-01-09 08:27:46 +01:00
?>