function check_all() { $check = array(); if (allow_version()) { $check['allow_version'] = '1'; } else { $check['allow_version'] = '0'; } if ($gdv = gdVersion()) { if ($gdv >= 2) { $check['gdVersion'] = '1'; } else { $check['gdVersion'] = '0'; } } else { $check['gdVersion'] = '0'; } if (is_writable('hm_content/uploads')) { $check['uploadWritable'] = '1'; } else { if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { $check['uploadWritable'] = '1'; } else { $check['uploadWritable'] = '0'; } } if (function_exists('mcrypt_encrypt')) { $check['mcrypt'] = '1'; } else { $check['mcrypt'] = '0'; } if (!in_array('0', $check)) { return TRUE; } else { return FALSE; } }
/** * Generate images of alternate sizes. */ function resizeImage($cnvrt_arry) { global $platform, $imgs, $cnvrt_path, $reqd_image, $convert_writable, $convert_magick, $convert_GD, $convert_cmd, $cnvrt_alt, $cnvrt_mesgs, $compat_quote; if (empty($imgs) || $convert_writable == FALSE) { return; } if ($convert_GD == TRUE && !($gd_version = gdVersion())) { return; } if ($cnvrt_alt['no_prof'] == TRUE) { $strip_prof = ' +profile "*"'; } else { $strip_prof = ''; } if ($cnvrt_alt['mesg_on'] == TRUE) { $str = ''; } foreach ($imgs as $img_file) { if ($cnvrt_alt['indiv'] == TRUE && $img_file != $reqd_image['file']) { continue; } $orig_img = $reqd_image['pwd'] . '/' . $img_file; $cnvrtd_img = $cnvrt_path . '/' . $cnvrt_arry['prefix'] . $img_file; if (!is_file($cnvrtd_img)) { $img_size = GetImageSize($orig_img); $height = $img_size[1]; $width = $img_size[0]; $area = $height * $width; $maxarea = $cnvrt_arry['maxwid'] * $cnvrt_arry['maxwid'] * 0.9; $maxheight = $cnvrt_arry['maxwid'] * 0.75 + 1; if ($area > $maxarea || $width > $cnvrt_arry['maxwid'] || $height > $maxheight) { if ($width / $cnvrt_arry['maxwid'] >= $height / $maxheight) { $dim = 'W'; } if ($height / $maxheight >= $width / $cnvrt_arry['maxwid']) { $dim = 'H'; } if ($dim == 'W') { $cnvt_percent = round(0.9375 * $cnvrt_arry['maxwid'] / $width * 100, 2); } if ($dim == 'H') { $cnvt_percent = round(0.75 * $cnvrt_arry['maxwid'] / $height * 100, 2); } // convert it if ($convert_magick == TRUE) { // Image Magick image conversion if ($platform == 'Win32' && $compat_quote == TRUE) { $winquote = '"'; } else { $winquote = ''; } exec($winquote . $convert_cmd . ' -geometry ' . $cnvt_percent . '%' . ' -quality ' . $cnvrt_arry['qual'] . ' -sharpen ' . $cnvrt_arry['sharpen'] . $strip_prof . ' "' . $orig_img . '"' . ' "' . $cnvrtd_img . '"' . $winquote); $using = $cnvrt_mesgs['using IM']; } elseif ($convert_GD == TRUE) { // GD image conversion if (eregi('\\.jpg$|\\.jpeg$', $img_file) == TRUE && (imageTypes() & IMG_JPG) == TRUE) { $src_img = imageCreateFromJpeg($orig_img); } elseif (eregi('\\.gif$', $img_file) == TRUE && (imageTypes() & IMG_PNG) == TRUE) { $src_img = imageCreateFromPng($orig_img); } elseif (eregi('\\.gif$', $img_file) == TRUE && (imageTypes() & IMG_GIF) == TRUE) { $src_img = imageCreateFromGif($orig_img); } else { continue; } $src_width = imageSx($src_img); $src_height = imageSy($src_img); $dest_width = $src_width * ($cnvt_percent / 100); $dest_height = $src_height * ($cnvt_percent / 100); if ($gd_version >= 2) { $dst_img = imageCreateTruecolor($dest_width, $dest_height); imageCopyResampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_height, $src_width, $src_height); } else { $dst_img = imageCreate($dest_width, $dest_height); imageCopyResized($dst_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_height, $src_width, $src_height); } imageDestroy($src_img); if (eregi('\\.jpg$|\\.jpeg$/i', $img_file) == TRUE && (imageTypes() & IMG_JPG) == TRUE) { imageJpeg($dst_img, $cnvrtd_img, $cnvrt_arry['qual']); } elseif (eregi('\\.gif$', $img_file) == TRUE && (imageTypes() & IMG_PNG) == TRUE) { imagePng($dst_img, $cnvrtd_img); } elseif (eregi('\\.gif$/i', $img_file) == TRUE && (imageTypes() & IMG_GIF) == TRUE) { imageGif($dst_img, $cnvrtd_img); } imageDestroy($dst_img); $using = $cnvrt_mesgs['using GD'] . $gd_version; } if ($cnvrt_alt['mesg_on'] == TRUE && is_file($cnvrtd_img)) { $str .= " <small>\n" . ' ' . $cnvrt_mesgs['generated'] . $cnvrt_arry['txt'] . $cnvrt_mesgs['converted'] . $cnvrt_mesgs['image_for'] . $img_file . $using . ".\n" . " </small>\n <br />\n"; } } } } if (isset($str)) { return $str; } }
</head> <body> <div id="content"> <p class="hello_world">Chào mừng bạn đến với HoaMai CMS, chúng ta cần cài đặt để bắt đầu sử dụng mã nguồn</p> <h1 class="title">Bước 1: Kiểm tra cấu hình máy chủ</h1> <div class="form_content"> <?php $check = array(); if (allow_version()) { $check['allow_version'] = '1'; echo '<div class="alert alert-success" role="alert">Phiên bản PHP lớn hơn 5.3</div>'; } else { $check['allow_version'] = '0'; echo '<div class="alert alert-danger" role="alert">Phiên bản PHP lớn hơn 5.3</div>'; } if ($gdv = gdVersion()) { if ($gdv >= 2) { $check['gdVersion'] = '1'; echo '<div class="alert alert-success" role="alert">Phiên bản thư viện GD lớn hơn 2.0</div>'; } else { $check['gdVersion'] = '0'; echo '<div class="alert alert-danger" role="alert">Phiên bản thư viện GD lớn hơn 2.0</div>'; } } else { $check['gdVersion'] = '0'; echo '<div class="alert alert-danger" role="alert">Thư viện GD chưa được cài đặt</div>'; } if (is_writable('hm_content/uploads')) { $check['uploadWritable'] = '1'; echo '<div class="alert alert-success" role="alert">Thư mục hm_content/uploads được ghi</div>'; } else {
function _checkEnvironment() { global $_CONF, $_TABLES, $_PLUGINS, $_SYSTEM, $LANG_ADMIN, $LANG01, $filemgmt_FileStore, $filemgmt_SnapStore, $filemgmt_SnapCat, $_FF_CONF, $_MG_CONF, $LANG_FILECHECK; $retval = ''; $permError = 0; $T = new Template($_CONF['path_layout'] . 'admin'); $T->set_file('page', 'envcheck.thtml'); $menu_arr = array(array('url' => $_CONF['site_admin_url'] . '/envcheck.php', 'text' => $LANG01['recheck']), array('url' => $_CONF['site_admin_url'] . '/filecheck.php', 'text' => $LANG_FILECHECK['filecheck']), array('url' => $_CONF['site_admin_url'], 'text' => $LANG_ADMIN['admin_home'])); $retval .= COM_startBlock($LANG01['hosting_env'], '', COM_getBlockTemplate('_admin_block', 'header')); $retval .= ADMIN_createMenu($menu_arr, $LANG01['php_warning'], $_CONF['layout_url'] . '/images/icons/envcheck.png'); $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer')); /* * First we will validate the general environment.. */ $T->set_block('page', 'envs', 'env'); // PHP Version $T->set_var('item', $LANG01['php_version']); $classCounter = 0; if (_phpOutOfDate()) { $T->set_var('status', '<span class="notok">' . phpversion() . '</span>'); } else { $T->set_var('status', '<span class="yes">' . phpversion() . '</span>'); } $T->set_var('recommended', '5.2.0+'); $T->set_var('notes', $LANG01['php_req_version']); $T->set_var('rowclass', $classCounter % 2 + 1); $T->parse('env', 'envs', true); $classCounter++; $rg = ini_get('register_globals'); $sm = ini_get('safe_mode'); $ob = ini_get('open_basedir'); $rg = ini_get('register_globals'); $T->set_var('item', 'register_globals'); $T->set_var('status', $rg == 1 ? '<span class="notok">' . $LANG01['on'] . '</span>' : '<span class="yes">' . $LANG01['off'] . '</span>'); $T->set_var('recommended', $LANG01['off']); $T->set_var('notes', $LANG01['register_globals']); $T->set_var('rowclass', $classCounter % 2 + 1); $T->parse('env', 'envs', true); $classCounter++; $sm = ini_get('safe_mode'); $T->set_var('item', 'safe_mode'); $T->set_var('status', $sm == 1 ? '<span class="notok">' . $LANG01['on'] . '</span>' : '<span class="yes">' . $LANG01['off'] . '</span>'); $T->set_var('recommended', $LANG01['off']); $T->set_var('notes', $LANG01['safe_mode']); $T->set_var('rowclass', $classCounter % 2 + 1); $T->parse('env', 'envs', true); $classCounter++; $ob = ini_get('open_basedir'); if ($ob == '') { $open_basedir_restriction = 0; } else { $open_basedir_restriction = 1; $open_basedir_directories = $ob; } $T->set_var('item', 'open_basedir'); $T->set_var('status', $ob == '' ? '<span class="yes">' . $LANG01['off'] . '</span>' : '<span class="notok">' . $LANG01['enabled'] . '</span>'); $T->set_var('notes', $LANG01['open_basedir']); $T->set_var('rowclass', $classCounter % 2 + 1); $T->parse('env', 'envs', true); $classCounter++; $memory_limit = _return_bytes(ini_get('memory_limit')); $memory_limit_print = $memory_limit / 1024 / 1024; $T->set_var('item', 'memory_limit'); $T->set_var('status', $memory_limit < 50331648 ? '<span class="notok">' . $memory_limit_print . 'M</span>' : '<span class="yes">' . $memory_limit_print . 'M</span>'); $T->set_var('recommended', '48M'); $T->set_var('notes', $LANG01['memory_limit']); $T->set_var('rowclass', $classCounter % 2 + 1); $T->parse('env', 'envs', true); $classCounter++; $fu = ini_get('file_uploads'); $T->set_var('item', 'file_uploads'); $T->set_var('status', $fu == 1 ? '<span class="yes">' . $LANG01['on'] . '</span>' : '<span class="notok">' . $LANG01['off'] . '</span>'); $T->set_var('recommended', $LANG01['on']); $T->set_var('notes', $LANG01['file_uploads']); $T->set_var('rowclass', $classCounter % 2 + 1); $T->parse('env', 'envs', true); $classCounter++; $upload_limit = _return_bytes(ini_get('upload_max_filesize')); $upload_limit_print = $upload_limit / 1024 / 1024; $T->set_var('item', 'upload_max_filesize'); $T->set_var('status', $upload_limit < 8388608 ? '<span class="notok">' . $upload_limit_print . 'M</span>' : '<span class="yes">' . $upload_limit_print . 'M</span>'); $T->set_var('recommended', '8M'); $T->set_var('notes', $LANG01['upload_max_filesize']); $T->set_var('rowclass', $classCounter % 2 + 1); $T->parse('env', 'envs', true); $classCounter++; $post_limit = _return_bytes(ini_get('post_max_size')); if ($post_limit == 0) { $post_limit_print = 'unlimited'; $T->set_var('status', '<span class="yes">' . $post_limit_print . '</span>'); } else { $post_limit_print = $post_limit / 1024 / 1024; $T->set_var('status', $post_limit < 8388608 ? '<span class="notok">' . $post_limit_print . 'M</span>' : '<span class="yes">' . $post_limit_print . 'M</span>'); } $T->set_var('item', 'post_max_size'); $T->set_var('recommended', '8M'); $T->set_var('notes', $LANG01['post_max_size']); $T->set_var('rowclass', $classCounter % 2 + 1); $T->parse('env', 'envs', true); $classCounter++; $max_execution_time = ini_get('max_execution_time'); $T->set_var('item', 'max_execution_time'); $T->set_var('status', $max_execution_time < 30 ? '<span class="notok">' . $max_execution_time . ' secs</span>' : '<span class="yes">' . $max_execution_time . ' secs</span>'); $T->set_var('recommended', '30 secs'); $T->set_var('notes', $LANG01['max_execution_time']); $T->set_var('rowclass', $classCounter % 2 + 1); $T->parse('env', 'envs', true); $classCounter++; $T->set_block('page', 'libs', 'lib'); if ($sm != 1 && $open_basedir_restriction != 1) { switch ($_CONF['image_lib']) { case 'imagemagick': // ImageMagick if (PHP_OS == "WINNT") { $binary = "/convert.exe"; } else { $binary = "/convert"; } clearstatcache(); if (!@file_exists($_CONF['path_to_mogrify'] . $binary)) { $T->set_var(array('item' => $LANG01['imagemagick'], 'status' => '<span class="notok">' . $LANG01['not_found'] . '</span>', 'notes' => $LANG01['im_not_found'])); } else { $T->set_var(array('item' => $LANG01['imagemagick'], 'status' => '<span class="yes">' . $LANG01['ok'] . '</span>', 'notes' => $LANG01['im_ok'])); } break; case 'gdlib': // GD Libs if ($gdv = gdVersion()) { if ($gdv >= 2) { $T->set_var(array('item' => $LANG01['gd_lib'], 'status' => '<span class="yes">' . $LANG01['ok'] . '</span>', 'notes' => $LANG01['gd_ok'])); } else { $T->set_var(array('item' => $LANG01['gd_lib'], 'status' => '<span class="yes">' . $LANG01['ok'] . '</span>', 'notes' => $LANG01['gd_v1'])); } } else { $T->set_var(array('item' => $LANG01['gd_lib'], 'status' => '<span class="notok">' . $LANG01['not_found'] . '</span>', 'notes' => $LANG01['gd_not_found'])); } break; case 'netpbm': // NetPBM if (PHP_OS == "WINNT") { $binary = "/jpegtopnm.exe"; } else { $binary = "/jpegtopnm"; } clearstatcache(); if (!@file_exists($_CONF['path_to_netpbm'] . $binary)) { $T->set_var(array('item' => $LANG01['netpbm'], 'status' => '<span class="notok">' . $LANG01['not_found'] . '</span>', 'notes' => $LANG01['np_not_found'])); } else { $T->set_var(array('item' => $LANG01['netpbm'], 'status' => '<span class="yes">' . $LANG01['ok'] . '</span>', 'notes' => $LANG01['np_ok'])); } break; } $T->set_var('rowclass', $classCounter % 2 + 1); $T->parse('lib', 'libs', true); $classCounter++; if ($_CONF['jhead_enabled']) { if (PHP_OS == "WINNT") { $binary = "/jhead.exe"; } else { $binary = "/jhead"; } clearstatcache(); if (!@file_exists($_CONF['path_to_jhead'] . $binary)) { $T->set_var(array('item' => $LANG01['jhead'], 'status' => '<span class="notok">' . $LANG01['not_found'] . '</span>', 'notes' => $LANG01['jhead_not_found'])); } else { $T->set_var(array('item' => $LANG01['jhead'], 'status' => '<span class="yes">' . $LANG01['ok'] . '</span>', 'notes' => $LANG01['jhead_ok'])); } $T->set_var('rowclass', $classCounter % 2 + 1); $T->parse('lib', 'libs', true); $classCounter++; } if ($_CONF['jpegtrans_enabled']) { if (PHP_OS == "WINNT") { $binary = "/jpegtran.exe"; } else { $binary = "/jpegtran"; } clearstatcache(); if (!@file_exists($_CONF['path_to_jpegtrans'] . $binary)) { $T->set_var(array('item' => $LANG01['jpegtran'], 'status' => '<span class="notok">' . $LANG01['not_found'] . '</span>', 'notes' => $LANG01['jpegtran_not_found'])); } else { $T->set_var(array('item' => $LANG01['jpegtran'], 'status' => '<span class="yes">' . $LANG01['ok'] . '</span>', 'notes' => $LANG01['jpegtran_ok'])); } $T->set_var('rowclass', $classCounter % 2 + 1); $T->parse('lib', 'libs', true); $classCounter++; } } else { $T->set_var(array('item' => $LANG01['graphics'], 'status' => $LANG01['not_checked'], 'notes' => $LANG01['bypass_note'])); } // extract syndication storage path $feedpath = $_CONF['rdf_file']; $pos = strrpos($feedpath, '/'); $feedPath = substr($feedpath, 0, $pos + 1); $file_list = array($_CONF['path_data'], $_CONF['path_log'] . 'error.log', $_CONF['path_log'] . 'access.log', $_CONF['path_log'] . 'captcha.log', $_CONF['path_log'] . 'spamx.log', $_CONF['path_data'] . 'layout_cache/', $_CONF['path_data'] . 'temp/', $_CONF['path_html'], $feedPath, $_CONF['rdf_file'], $_CONF['path_html'] . 'images/articles/', $_CONF['path_html'] . 'images/topics/', $_CONF['path_html'] . 'images/userphotos/', $_CONF['path_html'] . 'images/library/File/', $_CONF['path_html'] . 'images/library/Flash/', $_CONF['path_html'] . 'images/library/Image/', $_CONF['path_html'] . 'images/library/Media/', $_CONF['path_html'] . 'images/library/userfiles/'); $mg_file_list = array($_CONF['path'] . 'plugins/mediagallery/tmp/', $_MG_CONF['path_mediaobjects'], $_MG_CONF['path_mediaobjects'] . 'covers/', $_MG_CONF['path_mediaobjects'] . 'orig/', $_MG_CONF['path_mediaobjects'] . 'disp/', $_MG_CONF['path_mediaobjects'] . 'tn/', $_MG_CONF['path_mediaobjects'] . 'orig/0/', $_MG_CONF['path_mediaobjects'] . 'disp/0/', $_MG_CONF['path_mediaobjects'] . 'tn/0/', $_MG_CONF['path_mediaobjects'] . 'orig/1/', $_MG_CONF['path_mediaobjects'] . 'disp/1/', $_MG_CONF['path_mediaobjects'] . 'tn/1/', $_MG_CONF['path_mediaobjects'] . 'orig/2/', $_MG_CONF['path_mediaobjects'] . 'disp/2/', $_MG_CONF['path_mediaobjects'] . 'tn/2/', $_MG_CONF['path_mediaobjects'] . 'orig/3/', $_MG_CONF['path_mediaobjects'] . 'disp/3/', $_MG_CONF['path_mediaobjects'] . 'tn/3/', $_MG_CONF['path_mediaobjects'] . 'orig/4/', $_MG_CONF['path_mediaobjects'] . 'disp/4/', $_MG_CONF['path_mediaobjects'] . 'tn/4/', $_MG_CONF['path_mediaobjects'] . 'orig/5/', $_MG_CONF['path_mediaobjects'] . 'disp/5/', $_MG_CONF['path_mediaobjects'] . 'tn/5/', $_MG_CONF['path_mediaobjects'] . 'orig/6/', $_MG_CONF['path_mediaobjects'] . 'disp/6/', $_MG_CONF['path_mediaobjects'] . 'tn/6/', $_MG_CONF['path_mediaobjects'] . 'orig/7/', $_MG_CONF['path_mediaobjects'] . 'disp/7/', $_MG_CONF['path_mediaobjects'] . 'tn/7/', $_MG_CONF['path_mediaobjects'] . 'orig/8/', $_MG_CONF['path_mediaobjects'] . 'disp/8/', $_MG_CONF['path_mediaobjects'] . 'tn/8/', $_MG_CONF['path_mediaobjects'] . 'orig/9/', $_MG_CONF['path_mediaobjects'] . 'disp/9/', $_MG_CONF['path_mediaobjects'] . 'tn/9/', $_MG_CONF['path_mediaobjects'] . 'orig/a/', $_MG_CONF['path_mediaobjects'] . 'disp/a/', $_MG_CONF['path_mediaobjects'] . 'tn/a/', $_MG_CONF['path_mediaobjects'] . 'orig/b/', $_MG_CONF['path_mediaobjects'] . 'disp/b/', $_MG_CONF['path_mediaobjects'] . 'tn/b/', $_MG_CONF['path_mediaobjects'] . 'orig/c/', $_MG_CONF['path_mediaobjects'] . 'disp/c/', $_MG_CONF['path_mediaobjects'] . 'tn/c/', $_MG_CONF['path_mediaobjects'] . 'orig/d/', $_MG_CONF['path_mediaobjects'] . 'disp/d/', $_MG_CONF['path_mediaobjects'] . 'tn/d/', $_MG_CONF['path_mediaobjects'] . 'orig/e/', $_MG_CONF['path_mediaobjects'] . 'disp/e/', $_MG_CONF['path_mediaobjects'] . 'tn/e/', $_MG_CONF['path_mediaobjects'] . 'orig/f/', $_MG_CONF['path_mediaobjects'] . 'disp/f/', $_MG_CONF['path_mediaobjects'] . 'tn/f/', $_MG_CONF['path_html'] . 'watermarks/'); $fm_file_list = array($filemgmt_FileStore, $filemgmt_FileStore . 'tmp/', $filemgmt_SnapStore, $filemgmt_SnapStore . 'tmp/', $filemgmt_SnapCat, $filemgmt_SnapCat . 'tmp/'); $forum_file_list = array($_FF_CONF['uploadpath'] . '/', $_FF_CONF['uploadpath'] . '/tn/'); if (in_array('mediagallery', $_PLUGINS)) { $file_list = array_merge($file_list, $mg_file_list); } if (in_array('filemgmt', $_PLUGINS)) { $file_list = array_merge($file_list, $fm_file_list); } if (in_array('forum', $_PLUGINS)) { $file_list = array_merge($file_list, $forum_file_list); } $T->set_block('page', 'perms', 'perm'); $classCounter = 0; foreach ($file_list as $path) { $ok = _isWritable($path); if (!$ok) { $T->set_var('location', $path); $T->set_var('status', $ok ? '<span class="yes">' . $LANG01['ok'] . '</span>' : '<span class="notwriteable">' . $LANG01['not_writable'] . '</span>'); $T->set_var('rowclass', $classCounter % 2 + 1); $classCounter++; $T->parse('perm', 'perms', true); if (!$ok) { $permError = 1; } } /* --- debug code --- else { $T->set_var('location',$path); $T->set_var('status', $ok ? '<span class="yes">'.$LANG01['ok'].'</span>' : '<span class="notwriteable">'.$LANG01['not_writable'].'</span>'); $T->set_var('rowclass',($classCounter % 2)+1); $classCounter++; $T->parse('perm','perms',true); } ----------------------- */ } // special test to see if we can create a directory under layout_cache... $rc = @mkdir($_CONF['path_data'] . 'layout_cache/test/'); if (!$rc) { $T->set_var('location', $_CONF['path_data'] . 'layout_cache/<br /><strong>' . $_GLFUSION['errstr'] . '</strong>'); $T->set_var('status', '<span class="notwriteable">' . $LANG01['unable_mkdir'] . '</span>'); $T->set_var('rowclass', $classCounter % 2 + 1); $classCounter++; $T->parse('perm', 'perms', true); $permError = 1; @rmdir($_CONF['path_data'] . 'layout_cache/test/'); } else { $ok = _isWritable($_CONF['path_data'] . 'layout_cache/test/'); if (!$ok) { $T->set_var('location', $path); $T->set_var('status', $ok ? '<span class="yes">' . $LANG01['ok'] . '</span>' : '<span class="notwriteable">' . $LANG01['not_writable'] . '</span>'); $T->set_var('rowclass', $classCounter % 2 + 1); $classCounter++; $T->parse('perm', 'perms', true); if (!$ok) { $permError = 1; } } @rmdir($_CONF['path_data'] . 'layout_cache/test/'); } // special test to see if existing cache files exist and are writable... $rc = _checkCacheDir($_CONF['path_data'] . 'layout_cache/', $T, $classCounter); if ($rc > 0) { $permError = 1; } if ($permError) { $button = 'Recheck'; $action = 'checkenvironment'; $T->set_var('error_message', $LANG01['correct_perms']); $recheck = '<button type="submit" name="submit" onclick="submitForm( checkenv, \'checkenvironment\' );">' . LB; $recheck .= 'Recheck' . LB; $recheck .= '<img src="layout/arrow-recheck.gif" alt=""/>' . LB; $recheck .= '</button>' . LB; } else { $classCounter = 0; $recheck = ''; $T->set_var('location', $LANG01['directory_permissions']); $T->set_var('status', 1 ? '<span class="yes">' . $LANG01['ok'] . '</span>' : '<span class="notwriteable">' . $LANG01['not_writable'] . '</span>'); $T->set_var('rowclass', $classCounter % 2 + 1); $classCounter++; $T->parse('perm', 'perms', true); $T->set_var('location', $LANG01['file_permissions']); $T->set_var('status', 1 ? '<span class="yes">' . $LANG01['ok'] . '</span>' : '<span class="notwriteable">' . $LANG01['not_writable'] . '</span>'); $T->set_var('rowclass', $classCounter % 2 + 1); $classCounter++; $T->parse('perm', 'perms', true); } $T->set_var(array('lang_host_env' => $LANG01['hosting_env'], 'lang_setting' => $LANG01['setting'], 'lang_current' => $LANG01['current'], 'lang_recommended' => $LANG01['recommended'], 'lang_notes' => $LANG01['notes'], 'lang_filesystem' => $LANG01['filesystem_check'], 'lang_php_settings' => $LANG01['php_settings'], 'lang_php_warning' => $LANG01['php_warning'], 'lang_current_php_settings' => $LANG01['current_php_settings'], 'lang_show_phpinfo' => $LANG01['show_phpinfo'], 'lang_hide_phpinfo' => $LANG01['hide_phpinfo'], 'lang_graphics' => $LANG01['graphics'], 'phpinfo' => _phpinfo())); if (!defined('DEMO_MODE')) { $T->set_var(array('phpinfo' => _phpinfo())); } else { $T->set_var('phpinfo', ''); } $T->parse('output', 'page'); $retval .= $T->finish($T->get_var('output')); return $retval; }
function woo_get_image($key = 'image', $width = null, $height = null, $class = "thumbnail", $quality = 90, $id = null, $link = 'src', $repeat = 1, $offset = 0, $before = '', $after = '', $single = false, $force = false, $return = false) { if (empty($id)) { global $post; $id = $post->ID; } $output = ''; $custom_field = get_post_meta($id, $key, true); $set_width = ' width="' . $width . '" '; $set_height = ' height="' . $height . '" '; if (!empty($custom_field)) { // If the user set a custom field //Check for smaller images if ($gdv = gdVersion()) { $image_size = @getimagesize($custom_field); $image_size_width = $image_size[0]; $image_size_height = $image_size[1]; } if ($force == false) { // Does simple check to verify if images are smaller then specified. if ($width == null or $width > $image_size_width) { $set_width = ''; } if ($height == null or $height > $image_size_height) { $set_height = ''; } } if (get_option('woo_resize') == 'true') { $img_link = '<img src="' . get_bloginfo('template_url') . '/thumb.php?src=' . $custom_field . '&h=' . $height . '&w=' . $width . '&zc=1&q=' . $quality . '" alt="' . get_the_title($id) . '" class="' . $class . '" ' . $set_height . $set_width . ' />'; if ($link == 'img') { // Just output the image $output .= $before; $output .= $img_link; $output .= $after; } else { // Default - output with link if ((is_single() or is_page()) and $single == false) { $href = $custom_field; } else { $href = get_permalink($id); } $output .= $before; $output .= '<a title="Permanent Link to ' . get_the_title($id) . '" href="' . $href . '">' . $img_link . '</a>'; $output .= $after; } } else { // Not Resize $img_link = '<img src="' . $custom_field . '" alt="' . get_the_title($id) . '" ' . $set_height . $set_width . ' class="' . $class . '" />'; if ($link == 'img') { // Just output the image $output .= $before; $output .= $img_link; $output .= $after; } else { // Default - output with link if ((is_single() or is_page()) and $single == false) { $href = $custom_field; } else { $href = get_permalink($id); } $output .= $before; $output .= '<a title="Permanent Link to ' . get_the_title($id) . '" href="' . $href . '">' . $img_link . '</a>'; $output .= $after; } } if ($return == TRUE) { return $output; } else { echo $output; // Done } } elseif (empty($custom_field) && get_option('woo_auto_img') == 'true') { if ($offset >= 1) { $repeat = $repeat + $offset; } $attachments = get_children(array('post_parent' => $id, 'numberposts' => $repeat, 'post_type' => 'attachment', 'post_mime_type' => 'image')); if (empty($attachments)) { return; } $counter = -1; $size = 'large'; foreach ($attachments as $att_id => $attachment) { $counter++; if ($counter < $offset) { continue; } $output = ''; $src = wp_get_attachment_image_src($att_id, $size, true); //$link = get_attachment_link($id); $custom_field = $src[0]; //Check for smaller images if ($gdv = gdVersion()) { $image_size = @getimagesize($custom_field); $image_size_width = $image_size[0]; $image_size_height = $image_size[1]; } if ($force == false) { // Does simple check to verify if images are smaller then specified. if ($width == null or $width > $image_size_width) { $set_width = ''; } if ($height == null or $height > $image_size_height) { $set_height = ''; } } if (get_option('woo_resize') == 'true') { $img_link = '<img src="' . get_bloginfo('template_url') . '/thumb.php?src=' . $custom_field . '&h=' . $height . '&w=' . $width . '&zc=1&q=' . $quality . '" alt="' . get_the_title($id) . '" class="' . $class . '" ' . $set_height . $set_width . ' />'; if ($link == 'img' and $single == false) { // Just output the image $output .= $before; $output .= $img_link; $output .= $after; } else { // Default - output with link if ((is_single() or is_page()) and $single == false) { $href = $custom_field; } else { $href = get_permalink($id); } $output .= $before; $output .= '<a title="Permanent Link to ' . get_the_title($id) . '" href="' . $href . '">' . $img_link . '</a>'; $output .= $after; } } else { // Not Resize $img_link = '<img src="' . $custom_field . '" alt="' . get_the_title($id) . '" ' . $set_height . $set_width . ' />'; if ($link == 'img') { // Just output the image $output .= $before; $output .= $img_link; $output .= $after; } else { // Default - output with link if ((is_single() or is_page()) and $single == false) { $href = $custom_field; } else { $href = get_permalink($id); } $output .= $before; $output .= '<a title="Permanent Link to ' . get_the_title($id) . '" href="' . $href . '">' . $img_link . '</a>'; $output .= $after; } } if ($return == TRUE) { return $output; } else { echo $output; // Done } } } else { return; } }
function MG_checkEnvironment() { global $_CONF, $_MG_CONF, $LANG_MG01, $_TABLES; $retval = ''; $T = new Template($_MG_CONF['template_path']); $T->set_file('admin', 'envcheck.thtml'); $T->set_var('site_url', $_CONF['site_url']); $T->set_var('site_admin_url', $_CONF['site_admin_url']); $T->set_var('xhtml', XHTML); $T->set_block('admin', 'CheckRow2', 'CRow2'); $T->set_block('admin', 'CheckRow1', 'CRow1'); $T->set_var('CRow2', ''); if (ini_get('safe_mode') != 1) { switch ($_CONF['image_lib']) { case 'imagemagick': // ImageMagick $binary = 'convert' . (PHP_OS == 'WINNT' ? '.exe' : ''); clearstatcache(); if (!@file_exists($_MG_CONF['path_to_imagemagick'] . $binary)) { $T->set_var(array('config_item' => 'ImageMagick Programs', 'status' => '<span style="color:red">' . $LANG_MG01['not_found'] . '</span>')); } else { $T->set_var(array('config_item' => 'ImageMagick Programs', 'status' => '<span style="color:green">' . $LANG_MG01['ok'] . '</span>')); } $T->parse('CRow2', 'CheckRow2', true); break; case 'netpbm': // NetPBM $binary = 'jpegtopnm' . (PHP_OS == 'WINNT' ? '.exe' : ''); clearstatcache(); if (!@file_exists($_CONF['path_to_netpbm'] . $binary)) { $T->set_var(array('config_item' => 'NetPBM Programs', 'status' => '<span style="color:red">' . $LANG_MG01['not_found'] . '</span>')); } else { $T->set_var(array('config_item' => 'NetPBM Programs', 'status' => '<span style="color:green">' . $LANG_MG01['ok'] . '</span>')); } $T->parse('CRow2', 'CheckRow2', true); break; case 'gdlib': // GD Libs if ($gdv = gdVersion()) { if ($gdv >= 2) { $T->set_var(array('config_item' => 'GD Libraries', 'status' => '<span style="color:green">v2 Installed</span>')); } else { $T->set_var(array('config_item' => 'GD Libraries', 'status' => '<span style="color:yellow">v1 Installed</span>')); } } else { $T->set_var(array('config_item' => 'GD Libraries', 'status' => '<span style="color:red">' . $LANG_MG01['not_found'] . '</span>')); } $T->parse('CRow2', 'CheckRow2', true); break; } if ($_MG_CONF['jhead_enabled']) { $binary = '/jhead' . (PHP_OS == 'WINNT' ? '.exe' : ''); clearstatcache(); if (!@file_exists($_MG_CONF['jhead_path'] . $binary)) { $T->set_var(array('config_item' => 'jhead Program', 'status' => '<span style="color:red">' . $LANG_MG01['not_found'] . '</span>')); } else { $T->set_var(array('config_item' => 'jhead Program', 'status' => '<span style="color:green">' . $LANG_MG01['ok'] . '</span>')); } $T->parse('CRow2', 'CheckRow2', true); } if ($_MG_CONF['jpegtran_enabled']) { $binary = '/jpegtran' . (PHP_OS == 'WINNT' ? '.exe' : ''); clearstatcache(); if (!@file_exists($_MG_CONF['jpegtran_path'] . $binary)) { $T->set_var(array('config_item' => 'jpegtran Program', 'status' => '<span style="color:red">' . $LANG_MG01['not_found'] . '</span>')); } else { $T->set_var(array('config_item' => 'jpegtran Program', 'status' => '<span style="color:green">' . $LANG_MG01['ok'] . '</span>')); } $T->parse('CRow2', 'CheckRow2', true); } if ($_MG_CONF['ffmpeg_enabled']) { $binary = '/ffmpeg' . (PHP_OS == 'WINNT' ? '.exe' : ''); clearstatcache(); if (!@file_exists($_MG_CONF['ffmpeg_path'] . $binary)) { $T->set_var(array('config_item' => 'ffmpeg Program', 'status' => '<span style="color:red">' . $LANG_MG01['not_found'] . '</span>')); } else { $T->set_var(array('config_item' => 'ffmpeg Program', 'status' => '<span style="color:green">' . $LANG_MG01['ok'] . '</span>')); } $T->parse('CRow2', 'CheckRow2', true); } if ($_MG_CONF['zip_enabled']) { $binary = '/unzip' . (PHP_OS == 'WINNT' ? '.exe' : ''); clearstatcache(); if (!@file_exists($_MG_CONF['zip_path'] . $binary)) { $T->set_var(array('config_item' => 'unzip Program', 'status' => '<span style="color:red">' . $LANG_MG01['not_found'] . '</span>')); } else { $T->set_var(array('config_item' => 'unzip Program', 'status' => '<span style="color:green">' . $LANG_MG01['ok'] . '</span>')); } $T->parse('CRow2', 'CheckRow2', true); } } else { $T->set_var(array('config_item' => 'Program Locations', 'status' => '<span style="color:red">Unable to check because of safe_mode restrictions</span>')); $T->parse('CRow2', 'CheckRow2', true); } $tmp = $T->get_var('CRow2'); if (!empty($tmp)) { $T->set_var('config_title', $LANG_MG01['host_environment']); $T->parse('CRow1', 'CheckRow1', true); } // Now Check the directory permissions... $T->set_var('CRow2', ''); $T->set_var('config_title', $LANG_MG01['mg_dir_structure']); $errCount = 0; // check tmp path if (!is_writable($_MG_CONF['tmp_path'])) { $T->set_var(array('config_item' => 'tmp Path', 'status' => '<span style="color:red">' . $LANG_MG01['not_writable'] . '</span>')); $T->parse('CRow2', 'CheckRow2', true); } else { $T->set_var(array('config_item' => 'tmp Path', 'status' => '<span style="color:green">' . $LANG_MG01['ok'] . '</span>')); $T->parse('CRow2', 'CheckRow2', true); } // Now check directory permissions... $loopy = array('1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'a', 'b', 'c', 'd', 'e', 'f'); $elements = count($loopy); // do orig for ($i = 0; $i < $elements; $i++) { if (!is_writable($_MG_CONF['path_mediaobjects'] . 'orig/' . $loopy[$i])) { $errCount++; $T->set_var(array('config_item' => $_MG_CONF['path_mediaobjects'] . 'orig/' . $loopy[$i], 'status' => '<span style="color:red">' . $LANG_MG01['not_writable'] . '</span>')); $T->parse('CRow2', 'CheckRow2', true); } } for ($i = 0; $i < $elements; $i++) { if (!is_writable($_MG_CONF['path_mediaobjects'] . 'disp/' . $loopy[$i])) { $T->set_var(array('config_item' => $_MG_CONF['path_mediaobjects'] . 'disp/' . $loopy[$i], 'status' => '<span style="color:red">' . $LANG_MG01['not_writable'] . '</span>')); $errCount++; $T->parse('CRow2', 'CheckRow2', true); } } for ($i = 0; $i < $elements; $i++) { if (!is_writable($_MG_CONF['path_mediaobjects'] . 'tn/' . $loopy[$i])) { $T->set_var(array('config_item' => $_MG_CONF['path_mediaobjects'] . 'tn/' . $loopy[$i], 'status' => '<span style="color:red">' . $LANG_MG01['not_writable'] . '</span>')); $T->parse('CRow2', 'CheckRow2', true); $errCount++; } } if (!is_writable($_MG_CONF['path_mediaobjects'] . 'covers/')) { $T->set_var(array('config_item' => $_MG_CONF['path_mediaobjects'] . 'covers/', 'status' => '<span style="color:red">' . $LANG_MG01['not_writable'] . '</span>')); $T->parse('CRow2', 'CheckRow2', true); $errCount++; } if ($errCount == 0) { $T->set_var(array('config_item' => $LANG_MG01['mg_directories'], 'status' => '<span style="color:green">' . $LANG_MG01['ok'] . '</span>')); $T->parse('CRow2', 'CheckRow2', true); } $T->parse('CRow1', 'CheckRow1', true); // check php.ini settings... $T->set_var('CRow2', ''); $T->set_var('config_title', $LANG_MG01['php_ini_settings']); $inichecks = array('upload_max_filesize', 'file_uploads', 'post_max_size', 'max_execution_time', 'memory_limit', 'max_input_time', 'safe_mode', 'upload_tmp_dir'); for ($i = 0; $i < count($inichecks); $i++) { $T->set_var(array('config_item' => $inichecks[$i], 'status' => ini_get($inichecks[$i]))); $T->parse('CRow2', 'CheckRow2', true); } $T->parse('CRow1', 'CheckRow1', true); $T->set_var(array('lang_recheck' => $LANG_MG01['recheck'], 'lang_continue' => $LANG_MG01['continue'])); $T->parse('output', 'admin'); $retval .= $T->finish($T->get_var('output')); return $retval; }
} // Grab a random Background Image or set FALSE if none was found $bg_img = sizeof($bg_imgs) ? rand(0, sizeof($bg_imgs) - 1) : false; } $fonts = array(); if ($fonts_dir = @opendir(IP_ROOT_PATH . CAPTCHA_FONTS_PATH)) { while (true == ($file = @readdir($fonts_dir))) { if (substr(strtolower($file), -3) == 'ttf') { $fonts[] = $file; } } @closedir($fonts_dir); } $font = rand(0, sizeof($fonts) - 1); // Generate $image = gdVersion() >= 2 ? imagecreatetruecolor($total_width, $total_height) : imagecreate($total_width, $total_height); $background_color = imagecolorallocate($image, $bg_color[0], $bg_color[1], $bg_color[2]); imagefill($image, 0, 0, $background_color); #imagecolortransparent($image, $background_color); // Generate backgrund if ($chess == '1' || $chess == '2' && rand(0, 1)) { // Draw rectangles for ($i = 0; $i <= 8; $i++) { $rectanglecolor = imagecolorallocate($image, rand(100, 200), rand(100, 200), rand(100, 200)); imagefilledrectangle($image, 0, 0, round($total_width - $total_width / 8 * $i), round($total_height), $rectanglecolor); $rectanglecolor = imagecolorallocate($image, rand(100, 200), rand(100, 200), rand(100, 200)); imagefilledrectangle($image, 0, 0, round($total_width - $total_width / 8 * $i), round($total_height / 2), $rectanglecolor); } } if ($ellipses == '1' || $ellipses == '2' && rand(0, 1)) { // Draw random ellipses
function resize_image($image_file_name, $resize_width, $resize_height, $resize_quality) { // Check file and read into memory $image_data = getimagesize($image_file_name); $pic_width = $image_data[0]; $pic_height = $image_data[1]; switch ($image_data[2]) { case '1': $read_function = 'imagecreatefromgif'; $type = 'image/gif'; break; case '2': $read_function = 'imagecreatefromjpeg'; $type = 'image/jpeg'; break; case '3': $read_function = 'imagecreatefrompng'; $type = 'image/png'; break; default: return false; } $src = @$read_function($image_file_name); // Resize image if (!$src) { return false; } if ($pic_width / $pic_height > $resize_width / $resize_height) { $resize_height = $resize_width * ($pic_height / $pic_width); } else { $resize_width = $resize_height * ($pic_width / $pic_height); } $resize = gdVersion() == 1 ? @imagecreate($resize_width, $resize_height) : @imagecreatetruecolor($resize_width, $resize_height); $resize_function = gdVersion == 1 ? 'imagecopyresized' : 'imagecopyresampled'; @$resize_function($resize, $src, 0, 0, 0, 0, $resize_width, $resize_height, $pic_width, $pic_height); // Write file to disk switch ($image_data[2]) { case '1': @unlink($image_file_name); // Check gif support and use convert to jpeg if not possible if (imagetypes() & IMG_GIF) { @imagegif($resize, $image_file_name); $type = 'image/gif'; } else { @imagejpeg($resize, $image_file_name, $resize_quality); $type = 'image/jpeg'; } break; case '2': @unlink($image_file_name); @imagejpeg($resize, $image_file_name, $resize_quality); $type = 'image/jpeg'; break; case '3': @unlink($image_file_name); @imagepng($resize, $image_file_name); $type = 'image/png'; break; } @chmod($image_file_name, 0777); imagedestroy($src); imagedestroy($resize); return $type; }
function _checkEnvironment() { global $_CONF, $_TABLES, $_PLUGINS, $_SYSTEM, $LANG_ADMIN, $LANG_ENVCHECK, $_SCRIPTS; $retval = ''; $permError = 0; $T = new Template($_CONF['path_layout'] . 'admin'); $T->set_file('page', 'envcheck.thtml'); $_SCRIPTS->setJavaScriptLibrary('jquery'); $javascript = ' $(document).ready(function(){ $("#toggle_phpinfo").click(function(){ $("#panel_phpinfo").slideToggle("slow"); }); });'; $_SCRIPTS->setJavascript($javascript, true); $menu_arr = array(array('url' => $_CONF['site_admin_url'] . '/envcheck.php', 'text' => $LANG_ENVCHECK['recheck']), array('url' => $_CONF['site_admin_url'], 'text' => $LANG_ADMIN['admin_home'])); $retval .= COM_startBlock($LANG_ENVCHECK['hosting_env'], '', COM_getBlockTemplate('_admin_block', 'header')); $retval .= ADMIN_createMenu($menu_arr, $LANG_ENVCHECK['php_warning'], $_CONF['layout_url'] . '/images/icons/envcheck.png'); // *********************************************** // PHP Settings Section - First we will validate the general environment. $header_arr = array(array('text' => $LANG_ENVCHECK['setting'], 'field' => 'settings'), array('text' => $LANG_ENVCHECK['current'], 'field' => 'current'), array('text' => $LANG_ENVCHECK['recommended'], 'field' => 'recommended'), array('text' => $LANG_ENVCHECK['notes'], 'field' => 'notes')); $text_arr = array('has_menu' => false, 'title' => $LANG_ENVCHECK['php_settings'], 'form_url' => "{$_CONF['site_admin_url']}/envcheck.php"); $data_arr = array(); if (_phpOutOfDate()) { $current = '<span class="notok">' . phpversion() . '</span>'; } else { $current = '<span class="yes">' . phpversion() . '</span>'; } $data_arr[] = array('settings' => $LANG_ENVCHECK['php_version'], 'current' => $current, 'recommended' => '5.2.0+', 'notes' => $LANG_ENVCHECK['php_req_version']); $rg = ini_get('register_globals'); $sm = ini_get('safe_mode'); $ob = ini_get('open_basedir'); $current = $rg == 1 ? '<span class="notok">' . $LANG_ENVCHECK['on'] . '</span>' : '<span class="yes">' . $LANG_ENVCHECK['off'] . '</span>'; $data_arr[] = array('settings' => 'register_globals', 'current' => $current, 'recommended' => $LANG_ENVCHECK['off'], 'notes' => $LANG_ENVCHECK['register_globals']); $current = $sm == 1 ? '<span class="notok">' . $LANG_ENVCHECK['on'] . '</span>' : '<span class="yes">' . $LANG_ENVCHECK['off'] . '</span>'; $data_arr[] = array('settings' => 'safe_mode', 'current' => $current, 'recommended' => $LANG_ENVCHECK['off'], 'notes' => $LANG_ENVCHECK['safe_mode']); $ob = ini_get('open_basedir'); if ($ob == '') { $open_basedir_restriction = 0; } else { $open_basedir_restriction = 1; $open_basedir_directories = $ob; } $current = $ob == '' ? '<span class="yes">' . $LANG_ENVCHECK['off'] . '</span>' : '<span class="notok">' . $LANG_ENVCHECK['enabled'] . '</span>'; $data_arr[] = array('settings' => 'open_basedir', 'current' => $current, 'recommended' => $LANG_ENVCHECK['off'], 'notes' => $LANG_ENVCHECK['open_basedir']); $memory_limit = _return_bytes(ini_get('memory_limit')); $memory_limit_print = $memory_limit / 1024 / 1024; $current = $memory_limit < 50331648 ? '<span class="notok">' . $memory_limit_print . 'M</span>' : '<span class="yes">' . $memory_limit_print . 'M</span>'; $data_arr[] = array('settings' => 'memory_limit', 'current' => $current, 'recommended' => '48M', 'notes' => $LANG_ENVCHECK['memory_limit']); $fu = ini_get('file_uploads'); $current = $fu == 1 ? '<span class="yes">' . $LANG_ENVCHECK['on'] . '</span>' : '<span class="notok">' . $LANG_ENVCHECK['off'] . '</span>'; $data_arr[] = array('settings' => 'file_uploads', 'current' => $current, 'recommended' => $LANG_ENVCHECK['on'], 'notes' => $LANG_ENVCHECK['file_uploads']); $upload_limit = _return_bytes(ini_get('upload_max_filesize')); $upload_limit_print = $upload_limit / 1024 / 1024; $current = $upload_limit < 8388608 ? '<span class="notok">' . $upload_limit_print . 'M</span>' : '<span class="yes">' . $upload_limit_print . 'M</span>'; $data_arr[] = array('settings' => 'upload_max_filesize', 'current' => $current, 'recommended' => '8M', 'notes' => $LANG_ENVCHECK['upload_max_filesize']); $post_limit = _return_bytes(ini_get('post_max_size')); $post_limit_print = $post_limit / 1024 / 1024; $current = $post_limit < 8388608 ? '<span class="notok">' . $post_limit_print . 'M</span>' : '<span class="yes">' . $post_limit_print . 'M</span>'; $data_arr[] = array('settings' => 'post_max_size', 'current' => $current, 'recommended' => '8M', 'notes' => $LANG_ENVCHECK['post_max_size']); $max_execution_time = ini_get('max_execution_time'); $current = $max_execution_time < 30 ? '<span class="notok">' . $max_execution_time . ' secs</span>' : '<span class="yes">' . $max_execution_time . ' secs</span>'; $data_arr[] = array('settings' => 'max_execution_time', 'current' => $current, 'recommended' => '30 secs', 'notes' => $LANG_ENVCHECK['max_execution_time']); $admin_list = ADMIN_simpleList('', $header_arr, $text_arr, $data_arr); $T->set_var('php_settings_list', $admin_list); // *********************************************** // Libraries $header_arr = array(array('text' => $LANG_ENVCHECK['item'], 'field' => 'item'), array('text' => $LANG_ENVCHECK['status'], 'field' => 'status'), array('text' => $LANG_ENVCHECK['notes'], 'field' => 'notes')); $text_arr = array('has_menu' => false, 'title' => $LANG_ENVCHECK['libraries'], 'form_url' => "{$_CONF['site_admin_url']}/envcheck.php"); $data_arr = array(); if (extension_loaded('openssl')) { $data_arr[] = array('item' => $LANG_ENVCHECK['openssl_library'], 'status' => '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>', 'notes' => $LANG_ENVCHECK['openssl_ok']); } else { $data_arr[] = array('item' => $LANG_ENVCHECK['openssl_library'], 'status' => '<span class="notok">' . $LANG_ENVCHECK['not_found'] . '</span>', 'notes' => $LANG_ENVCHECK['openssl_not_found']); } if ($sm != 1 && $open_basedir_restriction != 1) { switch ($_CONF['image_lib']) { case 'imagemagick': // ImageMagick if (PHP_OS == "WINNT") { $binary = "/convert.exe"; } else { $binary = "/convert"; } clearstatcache(); if (!@file_exists($_CONF['path_to_mogrify'] . $binary)) { $data_arr[] = array('item' => $LANG_ENVCHECK['imagemagick'], 'status' => '<span class="notok">' . $LANG_ENVCHECK['not_found'] . '</span>', 'notes' => $LANG_ENVCHECK['im_not_found']); } else { $data_arr[] = array('item' => $LANG_ENVCHECK['imagemagick'], 'status' => '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>', 'notes' => $LANG_ENVCHECK['im_ok']); } break; case 'gdlib': // GD Libs if ($gdv = gdVersion()) { if ($gdv >= 2) { $data_arr[] = array('item' => $LANG_ENVCHECK['gd_lib'], 'status' => '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>', 'notes' => $LANG_ENVCHECK['gd_ok']); } else { $data_arr[] = array('item' => $LANG_ENVCHECK['gd_lib'], 'status' => '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>', 'notes' => $LANG_ENVCHECK['gd_v1']); } } else { $data_arr[] = array('item' => $LANG_ENVCHECK['gd_lib'], 'status' => '<span class="notok">' . $LANG_ENVCHECK['not_found'] . '</span>', 'notes' => $LANG_ENVCHECK['gd_not_found']); } break; case 'netpbm': // NetPBM if (PHP_OS == "WINNT") { $binary = "/jpegtopnm.exe"; } else { $binary = "/jpegtopnm"; } clearstatcache(); if (!@file_exists($_CONF['path_to_netpbm'] . $binary)) { $data_arr[] = array('item' => $LANG_ENVCHECK['netpbm'], 'status' => '<span class="notok">' . $LANG_ENVCHECK['not_found'] . '</span>', 'notes' => $LANG_ENVCHECK['np_not_found']); } else { $data_arr[] = array('item' => $LANG_ENVCHECK['netpbm'], 'status' => '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>', 'notes' => $LANG_ENVCHECK['np_ok']); } break; default: $data_arr[] = array('item' => $LANG_ENVCHECK['graphics'], 'status' => $LANG_ENVCHECK['not_checked'], 'notes' => $LANG_ENVCHECK['not_used_note']); } /* Left incase we decided to use jhead and/or jpegtran Program in future if ( $_CONF['jhead_enabled'] ) { if (PHP_OS == "WINNT") { $binary = "/jhead.exe"; } else { $binary = "/jhead"; } clearstatcache(); if (! @file_exists( $_CONF['path_to_jhead'] . $binary ) ) { $data_arr[] = array( 'item' => $LANG_ENVCHECK['jhead'], 'status' => '<span class="notok">' . $LANG_ENVCHECK['not_found'] . '</span>', 'notes' => $LANG_ENVCHECK['jhead_not_found'], ); } else { $data_arr[] = array( 'item' => $LANG_ENVCHECK['jhead'], 'status' => '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>', 'notes' => $LANG_ENVCHECK['jhead_ok'], ); } } if ( $_CONF['jpegtrans_enabled'] ) { if (PHP_OS == "WINNT") { $binary = "/jpegtran.exe"; } else { $binary = "/jpegtran"; } clearstatcache(); if (! @file_exists( $_CONF['path_to_jpegtrans'] . $binary ) ) { $data_arr[] = array( 'item' => $LANG_ENVCHECK['jpegtran'], 'status' => '<span class="notok">' . $LANG_ENVCHECK['not_found'] . '</span>', 'notes' => $LANG_ENVCHECK['jpegtran_not_found'], ); } else { $data_arr[] = array( 'item' => $LANG_ENVCHECK['jpegtran'], 'status' => '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>', 'notes' => $LANG_ENVCHECK['jpegtran_ok'], ); } } */ } else { $data_arr[] = array('item' => $LANG_ENVCHECK['graphics'], 'status' => $LANG_ENVCHECK['not_checked'], 'notes' => $LANG_ENVCHECK['bypass_note']); } $admin_list = ADMIN_simpleList('', $header_arr, $text_arr, $data_arr); $T->set_var('graphics_list', $admin_list); // *********************************************** // Directory / File Permissions $header_arr = array(array('text' => $LANG_ENVCHECK['location'], 'field' => 'location'), array('text' => $LANG_ENVCHECK['status'], 'field' => 'status')); $text_arr = array('has_menu' => false, 'title' => $LANG_ENVCHECK['filesystem_check'], 'form_url' => "{$_CONF['site_admin_url']}/envcheck.php"); $data_arr = array(); // extract syndication storage path $feedpath = $_CONF['rdf_file']; $pos = strrpos($feedpath, '/'); $feedPath = substr($feedpath, 0, $pos + 1); $file_list = array($_CONF['path_data'], $_CONF['path_log'] . 'error.log', $_CONF['path_log'] . 'access.log', $_CONF['path_log'] . 'captcha.log', $_CONF['path_log'] . 'spamx.log', $_CONF['path_log'] . '404.log', $_CONF['path_data'] . 'layout_cache/', $_CONF['path_html'], $feedPath, $_CONF['rdf_file'], $_CONF['path_html'] . 'images/articles/', $_CONF['path_html'] . 'images/topics/', $_CONF['path_html'] . 'images/userphotos/', $_CONF['path_html'] . 'images/library/File/', $_CONF['path_html'] . 'images/library/Flash/', $_CONF['path_html'] . 'images/library/Image/', $_CONF['path_html'] . 'images/library/Media/'); /* For Media Gallery Plugin - left in incase add plugin api checks in future $mg_file_list = array($_CONF['path'].'plugins/mediagallery/tmp/', $_MG_CONF['path_mediaobjects'], $_MG_CONF['path_mediaobjects'].'covers/', $_MG_CONF['path_mediaobjects'].'orig/', $_MG_CONF['path_mediaobjects'].'disp/', $_MG_CONF['path_mediaobjects'].'tn/', $_MG_CONF['path_mediaobjects'].'orig/0/', $_MG_CONF['path_mediaobjects'].'disp/0/', $_MG_CONF['path_mediaobjects'].'tn/0/', $_MG_CONF['path_mediaobjects'].'orig/1/', $_MG_CONF['path_mediaobjects'].'disp/1/', $_MG_CONF['path_mediaobjects'].'tn/1/', $_MG_CONF['path_mediaobjects'].'orig/2/', $_MG_CONF['path_mediaobjects'].'disp/2/', $_MG_CONF['path_mediaobjects'].'tn/2/', $_MG_CONF['path_mediaobjects'].'orig/3/', $_MG_CONF['path_mediaobjects'].'disp/3/', $_MG_CONF['path_mediaobjects'].'tn/3/', $_MG_CONF['path_mediaobjects'].'orig/4/', $_MG_CONF['path_mediaobjects'].'disp/4/', $_MG_CONF['path_mediaobjects'].'tn/4/', $_MG_CONF['path_mediaobjects'].'orig/5/', $_MG_CONF['path_mediaobjects'].'disp/5/', $_MG_CONF['path_mediaobjects'].'tn/5/', $_MG_CONF['path_mediaobjects'].'orig/6/', $_MG_CONF['path_mediaobjects'].'disp/6/', $_MG_CONF['path_mediaobjects'].'tn/6/', $_MG_CONF['path_mediaobjects'].'orig/7/', $_MG_CONF['path_mediaobjects'].'disp/7/', $_MG_CONF['path_mediaobjects'].'tn/7/', $_MG_CONF['path_mediaobjects'].'orig/8/', $_MG_CONF['path_mediaobjects'].'disp/8/', $_MG_CONF['path_mediaobjects'].'tn/8/', $_MG_CONF['path_mediaobjects'].'orig/9/', $_MG_CONF['path_mediaobjects'].'disp/9/', $_MG_CONF['path_mediaobjects'].'tn/9/', $_MG_CONF['path_mediaobjects'].'orig/a/', $_MG_CONF['path_mediaobjects'].'disp/a/', $_MG_CONF['path_mediaobjects'].'tn/a/', $_MG_CONF['path_mediaobjects'].'orig/b/', $_MG_CONF['path_mediaobjects'].'disp/b/', $_MG_CONF['path_mediaobjects'].'tn/b/', $_MG_CONF['path_mediaobjects'].'orig/c/', $_MG_CONF['path_mediaobjects'].'disp/c/', $_MG_CONF['path_mediaobjects'].'tn/c/', $_MG_CONF['path_mediaobjects'].'orig/d/', $_MG_CONF['path_mediaobjects'].'disp/d/', $_MG_CONF['path_mediaobjects'].'tn/d/', $_MG_CONF['path_mediaobjects'].'orig/e/', $_MG_CONF['path_mediaobjects'].'disp/e/', $_MG_CONF['path_mediaobjects'].'tn/e/', $_MG_CONF['path_mediaobjects'].'orig/f/', $_MG_CONF['path_mediaobjects'].'disp/f/', $_MG_CONF['path_mediaobjects'].'tn/f/', $_MG_CONF['path_html'].'watermarks/', ); $fm_file_list = array( $filemgmt_FileStore, $filemgmt_FileStore.'tmp/', $filemgmt_SnapStore, $filemgmt_SnapStore.'tmp/', $filemgmt_SnapCat, $filemgmt_SnapCat.'tmp/', ); $forum_file_list = array( $_FF_CONF['uploadpath'].'/', $_FF_CONF['uploadpath'].'/tn/', ); if (in_array('mediagallery', $_PLUGINS)) { $file_list = array_merge($file_list, $mg_file_list); } if (in_array('filemgmt', $_PLUGINS)) { $file_list = array_merge($file_list, $fm_file_list); } if (in_array('forum', $_PLUGINS)) { $file_list = array_merge($file_list, $forum_file_list); } */ $T->set_block('page', 'perms', 'perm'); foreach ($file_list as $path) { $ok = _isWritable($path); if (!$ok) { $status = $ok ? '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>' : '<span class="notwriteable">' . $LANG_ENVCHECK['not_writable'] . '</span>'; $data_arr[] = array('location' => $path, 'status' => $status); if (!$ok) { $permError = 1; } } /* --- debug code --- else { $status = $ok ? '<span class="yes">'.$LANG_ENVCHECK['ok'].'</span>' : '<span class="notwriteable">'.$LANG_ENVCHECK['not_writable'].'</span>'; $data_arr[] = array( 'location' => $path, 'status' => $status ); } ----------------------- */ } // special test to see if we can create a directory under layout_cache... $rc = @mkdir($_CONF['path_data'] . 'layout_cache/test/'); if (!$rc) { $location = $_CONF['path_data'] . 'layout_cache/'; $status = '<span class="notwriteable">' . $LANG_ENVCHECK['unable_mkdir'] . '</span>'; $data_arr[] = array('location' => $location, 'status' => $status); $permError = 1; @rmdir($_CONF['path_data'] . 'layout_cache/test/'); } else { $ok = _isWritable($_CONF['path_data'] . 'layout_cache/test/'); if (!$ok) { $status = $ok ? '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>' : '<span class="notwriteable">' . $LANG_ENVCHECK['not_writable'] . '</span>'; $data_arr[] = array('location' => $path, 'status' => $status); if (!$ok) { $permError = 1; } } @rmdir($_CONF['path_data'] . 'layout_cache/test/'); } // special test to see if existing cache files exist and are writable... $rc = _checkCacheDir($_CONF['path_data'] . 'layout_cache/', $data_arr); if ($rc > 0) { $permError = 1; } if (!$permError) { $recheck = ''; $status = 1 ? '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>' : '<span class="notwriteable">' . $LANG_ENVCHECK['not_writable'] . '</span>'; $data_arr[] = array('location' => $LANG_ENVCHECK['directory_permissions'], 'status' => $status); $status = 1 ? '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>' : '<span class="notwriteable">' . $LANG_ENVCHECK['not_writable'] . '</span>'; $data_arr[] = array('location' => $LANG_ENVCHECK['file_permissions'], 'status' => $status); } $admin_list = ADMIN_simpleList('', $header_arr, $text_arr, $data_arr); $T->set_var('filesystem_list', $admin_list); // *********************************************** // Current PHP Settings $T->set_var(array('lang_current_php_settings' => $LANG_ENVCHECK['current_php_settings'], 'lang_showhide_phpinfo' => $LANG_ENVCHECK['showhide_phpinfo'], 'phpinfo' => _phpinfo())); /* if ( !defined('DEMO_MODE') ) { $T->set_var(array( 'phpinfo' => _phpinfo(), )); } else { $T->set_var('phpinfo',''); } */ $T->set_var('phpinfo', _phpinfo()); $T->parse('output', 'page'); $retval .= $T->finish($T->get_var('output')); $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer')); return $retval; }