killserver
-
Публикации
10 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем killserver
-
-
заметил несколько ошибок в новой версии 11.3:
function dle_strpos($str, $needle, $charset ) {
идёт проверка "mb_strrpos" вместо "mb_strpos".
Далее, антивирус ругается на файл "engine/classes/typograf.class.php", "engine/ajax/typograf.php" и "engine/classes/html5player/flashmediaelement.swf" хотя - они есть в дистрибутиве. Если найду ещё чего-то в таком духе - опубликую сюда-же ;-)
-
В силу того, что отдел по СЕО-продвижению постоянно требовал вставить в файл robots.txt директивы Host и Sitemap на разнообразных сайтах -я решил пойти немного более простым путём и сделать универсальный генератор. Задумка была такова - добавить только требуемые директивы в уже существующий файл, находящийся в корне без боязни, что его захотят изменить в любой момент. Возможно - будет полезно кому-то ещё ;-)
И так, инструкция по установке:
создаём файл robots.php в корневой директории с содержанием:
<?php $distr_charset = "utf-8"; header("Content-type: text/html; charset=".$distr_charset); define('DATALIFEENGINE', true); define('ROOT_DIR', dirname (__FILE__)); if(!file_exists(ROOT_DIR. DIRECTORY_SEPARATOR ."engine". DIRECTORY_SEPARATOR ."data". DIRECTORY_SEPARATOR ."config.php")) { echo iconv("windows-1251", $distr_charset, "Не найден файл конфигурации!"); die(); } if(!file_exists(ROOT_DIR. DIRECTORY_SEPARATOR ."engine". DIRECTORY_SEPARATOR ."engine.php")) { echo iconv("windows-1251", $distr_charset, "Не найден файл /engine/engine.php"); die(); } if(!file_exists(ROOT_DIR. DIRECTORY_SEPARATOR .".htaccess")) { echo iconv("windows-1251", $distr_charset, "Не найден файл /.htaccess"); die(); } if(file_exists(ROOT_DIR. DIRECTORY_SEPARATOR ."engine". DIRECTORY_SEPARATOR ."modules". DIRECTORY_SEPARATOR ."robots.php")) { echo iconv("windows-1251", $distr_charset, "Модуль robots уже установлен"); die(); } require_once(ROOT_DIR. DIRECTORY_SEPARATOR ."engine". DIRECTORY_SEPARATOR ."data". DIRECTORY_SEPARATOR ."config.php"); $robots = '<?php if(!file_exists(ENGINE_DIR."/../robots.txt")) { die(); } header("Content-Type: text/plain; charset=".$config["charset"]); $file = file_get_contents($config["http_home_url"]."robots.txt"); $add = array(); if(stripos($file, "Host")===false) { $site = $config["http_home_url"]; $site = str_Replace(array("https", "http", ":", "//"), "", $site); $site = explode("/", $site); $add[] = "Host: ".$site[0]; } if(stripos($file, "Sitemap")===false) { $add[] = "Sitemap: ".$config["http_home_url"]."sitemap.xml"; } if(sizeof($add)>0) { $file .= "\n\n".implode("\n", $add); } echo $file; die();'; $if = @file_put_contents(ROOT_DIR. DIRECTORY_SEPARATOR ."engine". DIRECTORY_SEPARATOR ."modules". DIRECTORY_SEPARATOR ."robots.php", $robots); if(!$if) { echo iconv("windows-1251", $config["charset"], "Невозможно записать модуль /engine/modules/robots.php"); die(); } $read = file_get_contents(ROOT_DIR. DIRECTORY_SEPARATOR ."engine". DIRECTORY_SEPARATOR ."engine.php"); if(strpos($read, 'include ENGINE_DIR . \'/modules/robots.php\';')===false) { $str = strpos($read, 'switch ( $do ) {')+16; $first = substr($read, 0, $str); $end = substr($read, $str); $if = @file_put_contents(ROOT_DIR. DIRECTORY_SEPARATOR ."engine". DIRECTORY_SEPARATOR ."engine.php", $first.' case "robots" : include ENGINE_DIR . \'/modules/robots.php\'; break; '.$end); if(!$if) { echo iconv("windows-1251", $config["charset"], "Невозможно изменить /engine/engine.php"); die(); } } $file = file_get_contents(ROOT_DIR. DIRECTORY_SEPARATOR .".htaccess"); if(strpos($file, 'RewriteRule ^robots.txt$ index.php?do=robots [L]')===false) { $str = strpos($file, 'RewriteRule ^rules.html$ index.php?do=rules [L]'); $first = substr($file, 0, $str); $end = substr($file, $str); $if = @file_put_contents(ROOT_DIR. DIRECTORY_SEPARATOR .".htaccess", $first.' RewriteRule ^robots.txt$ index.php?do=robots [L] '.$end); if(!$if) { echo iconv("windows-1251", $config["charset"], "Невозможно изменить /.htaccess"); die(); } } echo iconv("windows-1251", $config["charset"], "Успешно установили robots");
и открываем в браузере http://site.ru/robots.php где site.ru - адрес Вашего сайта.
После установки данной модификации - у Вас будет возможность в автоматическом режиме производить добавление директив Host и Sitemap для Вашего сайта без боязни смены домена или что-то в этом духе. Если есть пожелания - готов выслушать. Надеюсь подобное разработчики добавят в будущих релизах :-)
-
немного подниму тему в силу того, что может кому-то да пригодится:
function getip() { if(isset($_SERVER)) { if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif(isset($_SERVER['HTTP_CLIENT_IP']) && !empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif(isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR'])) { $ip = $_SERVER['REMOTE_ADDR']; } else { $ip = false; } } else { if(getenv('HTTP_X_FORWARDED_FOR')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('REMOTE_ADDR')) { $ip = getenv('REMOTE_ADDR'); } else { $ip = false; } } if(strpos($ip, ",")!==false) { $ips = explode(",", $ip); $ip = current($ips); unset($ips); } return $ip; }
функция является универсальной для разных типов настроек и серверов. Удобно тем, что используя данную функцию - не нужно беспокоиться о том, на каких настройках или под какими системами анти-ддоса бегает сайт
Немного ошибок в версии 11.3
в Прием багов
Опубликовано:
делал обновление движка просто перезаписью всех файлов, потому - мог просто не заметить того, что файлы отсутствуют
тогда не логичнее проверять на наличие установленного расширения самого mbstring?)