Перейти к публикации

Управление шаблонами, проблема!


Рекомендованные сообщения

Здравствуйте есть проблемка с панелью. Захожу в управление щаблонами, выбераю свой, файлы не открывает, просто они пустые хотя записи в них есть, помогите решить проблему т.к. через фтп реально муторно все это делать.

Ссылка на сообщение
Поделиться на других сайтах

myxa59rus,

По вашему сообщению сложно давать какие либо советы. Подобные вопросы нужно смотреть визуально. Персональным сообщением предоставляйте доступ по FTP и к админпанели скрипта.

Ссылка на сообщение
Поделиться на других сайтах

myxa59rus,

На вашем сайте отключено и нет поддержки ЧПУ, соответственно ссылки вы должны использовать без ЧПУ http://dle-news.ru/e...x.html?rss.html в частности для вашего сайта ссылка на RSS выглядит как http://perm59cs.ru/engine/rss.php но у вас и данный URL не работает. 404 ошибка это серверная ошибка которая говорит что нет файла /engine/rss.php, убедитесь что данный файл присутствует на сервере и соответствует оригинальному. А также корректно установлены права доступа на папку /engine/

Ссылка на сообщение
Поделиться на других сайтах

Вот опять проблемы!

Не работают скрипты, вот пример http://perm59cs.ru/?do=monitor должна быть рамка с фото списвом игроков при нажатии+ ставили другой мониторинг серверов, он ваще крашить все призаходе на сайт проста выдаёт ошибку Fatal error: [] operator not supported for strings in /home/admin/data/www/perm59cs.ru/engine/modules/ServerMon/init.php on line 153 сам фаил код:

код второго мониторинга


<?php

class ServerMon {

	private static $timeout = 1;

	private static $servers;

	private static $imDir;

	private static $csDir;

	private static $cssDir;

	public static function run() {

		global $tpl, $js_array, $member_id, $metatags, $config;

		self::$imDir = '/engine/modules/ServerMon/images';

		self::$csDir = '/engine/modules/ServerMon/maps/cs';

		self::$cssDir = '/engine/modules/ServerMon/maps/css';


		self::$servers = @unserialize(file_get_contents(ENGINE_DIR . '/modules/ServerMon/data/servers.php'));

		if(isset($_POST['getPlayers']) && isset($_POST['server']) && !empty($_POST['server'])){

			@header( "Content-type: text/html; charset=utf-8" );

			echo '<div id="ServerMonPlayers" title="' . iconv("CP1251", "UTF-8", "Список игроков на сервере ") . htmlentities($_POST['server']) . '">';

			echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';

			$players = self::getPlayers($_POST['server']);

			if(!is_array($players)) $players = array();

			echo '<table width="100%" border="1">';

			echo iconv("CP1251", "UTF-8", '<tr><td>&nbsp;№</td><td>&nbsp;Ник</td><td>&nbsp;Килов:</td><td>&nbsp;На сервере:</td></tr>');

			foreach($players as $num => $player){

				echo '<tr>

				<td>&nbsp;' . $num . '</td>

				<td>&nbsp;' . htmlspecialchars($player['name'], ENT_NOQUOTES, "UTF-8") . '</td>

				<td>&nbsp;' . $player['score'] . '</td>

				<td>&nbsp;' . $player['time'] . '</td>

				</tr>';

			}

			echo '</table></div>';

		} elseif(isset($_POST['getSettings']) && isset($_POST['server']) && !empty($_POST['server'])){

			@header( "Content-type: text/html; charset=utf-8" );

			echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';

			echo '<div id="ServerMonSettings" title="' . iconv("CP1251", "UTF-8", "Настройки сервера ") . htmlentities($_POST['server']) . '">';

			$settings = self::getSettings($_POST['server']);

			if(!is_array($settings)) $settings = array();

			$num = 1;

			echo '<table width="100%" border="1">';

			echo iconv("CP1251", "UTF-8", '<tr><td>&nbsp;№</td><td>&nbsp;Название</td><td>&nbsp;Значение:</td></tr>');

			foreach($settings as $setting => $value){

				echo '<tr>

				<td>&nbsp;' . $num . '</td>

				<td>&nbsp;' . htmlspecialchars($setting, ENT_NOQUOTES, "UTF-8") . '</td>

				<td>&nbsp;' . htmlspecialchars($value, ENT_NOQUOTES, "UTF-8") . '</td>

				</tr>';

				$num++;

			}

			echo '</table></div>';

		} elseif(isset($_GET['iframe']) && isset($_GET['server']) && !empty($_GET['server'])){

				if(!(bool)preg_match('/[A-Za-z0-9.-_]:[0-9]/', $_GET['server'])){

					die('Сервер имеет неверный формат!');

				}

				$serv = explode(':', $_GET['server']);

				$server = self::getInfo($_GET['server']);


				if(!$server){

					$server['ip'] = $serv[0];

					$server['port'] = $serv[1];

					$server['offline'] = true;

				}


				$monTpl = new dle_template;

				$monTpl->dir = ENGINE_DIR . '/modules/ServerMon';

				$monTpl->load_template('iframe.tpl');


				if($server['offline']){

					$monTpl->set_block("'\[offline\](.*?)\[/offline\]'si", "\\1");

					$monTpl->set_block("'\[online\](.*?)\[/online\]'si", "");


					$monTpl->set('{ip}', $server['ip']);

					$monTpl->set('{port}', $server['port']);

					$monTpl->set('{image}', self::$imDir . '/offline.png');

					$monTpl->compile($server['ip'] . ':' . $server['port']);

				} else {

					$monTpl->set_block("'\[offline\](.*?)\[/offline\]'si", "");

					$monTpl->set_block("'\[online\](.*?)\[/online\]'si", "\\1");


					$image = ($server['game'] == 'cs') ? self::$csDir . DIRECTORY_SEPARATOR . $server['mapname'] . '.jpg' : self::$cssDir . DIRECTORY_SEPARATOR . $server['mapname'] . '.jpg' ;

					$image = file_exists( ROOT_DIR . $image ) ? $image : self::$imDir . '/noimage.png' ;


					$monTpl->set('{game}', $server['game']);

					$monTpl->set('{mapname}', $server['mapname']);

					$monTpl->set('{image}', $image);

					$monTpl->set('{hostname}', $server['hostname']);

					$monTpl->set('{players}', $server['players']);

					$monTpl->set('{maxplayers}', $server['maxplayers']);

					$monTpl->set('{ip}', $server['ip']);

					$monTpl->set('{port}', $server['port']);

					$monTpl->set('{os}', self::$imDir . '/' . $server['server_os'] . '.png');

					$monTpl->compile($server['ip'] . ':' . $server['port']);

				}

				echo '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />';

				echo $monTpl->result[$server['ip'] . ':' . $server['port']];

			die();

		} else {

			$monTpl = new dle_template;

			$monTpl->dir = ENGINE_DIR . '/modules/ServerMon';


			self::$servers = is_array(self::$servers) ? self::$servers : array();


			foreach(self::$servers as $server) {

				$serv = explode(':', $server);

				$server = self::getInfo($server);


				if(!$server){

					$server['ip'] = $serv[0];

					$server['port'] = $serv[1];

					$server['offline'] = true;

				}


				if(file_exists($monTpl->dir . DIRECTORY_SEPARATOR . $server['ip'] . ':' . $server['port'] . '.tpl')) $monTpl->load_template($server['ip'] . ':' . $server['port'] . '.tpl');

				else $monTpl->load_template('block.tpl');


				if($server['offline']){

					$monTpl->set_block("'\[offline\](.*?)\[/offline\]'si", "\\1");

					$monTpl->set_block("'\[online\](.*?)\[/online\]'si", "");


					$monTpl->set('{ip}', $server['ip']);

					$monTpl->set('{port}', $server['port']);

					$monTpl->set('{image}', self::$imDir . '/offline.png');

					$monTpl->compile($server['ip'] . ':' . $server['port']);

				} else {

					$monTpl->set_block("'\[offline\](.*?)\[/offline\]'si", "");

					$monTpl->set_block("'\[online\](.*?)\[/online\]'si", "\\1");


					$image = ($server['game'] == 'cs') ? self::$csDir . DIRECTORY_SEPARATOR . $server['mapname'] . '.jpg' : self::$cssDir . DIRECTORY_SEPARATOR . $server['mapname'] . '.jpg' ;

					$image = file_exists( ROOT_DIR . $image ) ? $image : self::$imDir . '/noimage.png' ;


					$monTpl->set('{game}', $server['game']);

					$monTpl->set('{mapname}', $server['mapname']);

					$monTpl->set('{image}', $image);

					$monTpl->set('{hostname}', $server['hostname']);

					$monTpl->set('{players}', $server['players']);

					$monTpl->set('{maxplayers}', $server['maxplayers']);

					$monTpl->set('{ip}', $server['ip']);

					$monTpl->set('{port}', $server['port']);

					$monTpl->set('{os}', self::$imDir . '/' . $server['server_os'] . '.png');

					$monTpl->compile($server['ip'] . ':' . $server['port']);

				}


				$tpl->set('{' . $server['ip'] . ':' . $server['port'] . '}', $monTpl->result[$server['ip'] . ':' . $server['port']]);

			}

			if($config['version_id'] < 9.0) {

				$js_array[] = "engine/modules/ServerMon/js/jq.js";

				$metatags .= PHP_EOL . '<link rel="stylesheet" type="text/css" href="/engine/modules/ServerMon/css/jq.css" />';

			}


			$js_array[] = "engine/modules/ServerMon/js/ServerMon.js";

			if($member_id['user_group'] == 1) $js_array[] = "engine/modules/ServerMon/js/admin.js";

		}

	}

	private static function getServer($server) {

		return explode(':', $server);

	}

	private static function getInfo($server) {

		$data = array();

		$server = self::getServer($server);

		$ip = $server[0];

		$port = intval($server[1]);


		$fp = @fsockopen("udp://$ip", $port, $errno, $errstr, self::$timeout);

		if (!$fp) {

			return false;

		}

		stream_set_timeout($fp, self::$timeout);

		stream_set_blocking($fp, true);

		$challenge = "\xFF\xFF\xFF\xFFTSource Engine Query\x00";

		fwrite($fp, $challenge);

		$buffer = fread($fp, 4096);

		if (!$buffer) {

			fclose($fp);

			return false;

		}

		$buffer = trim(substr($buffer, 4));

		fclose($fp);

		if (!trim($buffer)) {

			return false;

		}

		$tmp = explode("\x00", $buffer);

		$place = strlen($tmp[0] . $tmp[1] . $tmp[2] . $tmp[3] . $tmp[4]) + 5;

		$version = ord($buffer[$place + 2]); // Network Version

		if ($version == 47 || $version == 48) {

			$data['game'] = 'cs';

			$data['mapname'] = self::toShow($tmp[2]);

			$data['hostname'] = self::toShow($tmp[1]);

		} else {

			$data['game'] = 'css';

			$data['mapname'] = self::toShow($tmp[1]);

			$data['hostname'] = self::toShow($tmp[0]);

		}

		$data['players'] = ord($buffer[$place]);

		$data['maxplayers'] = ord($buffer[$place + 1]);

		$data['ip'] = self::toShow($ip);

		$data['port'] = $port;

		$data['server_os'] = $buffer[$place + 4]; // W indows or L inux

		#$data['server_secure'] = ord($tmp[14]); // VAC

		return $data;

	}

	private static function getPlayers($server) {

		$server = self::getServer($server);

		$ip = $server[0];

		$port = $server[1];


		$fp = fsockopen("udp://$ip", $port, $errno, $errstr, self::$timeout);

		if (!$fp) {

			return false;

		}

		stream_set_timeout($fp, self::$timeout);

		stream_set_blocking($fp, true);

		$challenge_code = "\xFF\xFF\xFF\xFF\x55\x00\x00\x00\x00";

		fwrite($fp, $challenge_code);

		$buffer = fread($fp, 4096);

		if (!trim($buffer)) {

			fclose($fp);

			return false;

		}

		$challenge_code = substr($buffer, 5, 4);

		$challenge = "\xFF\xFF\xFF\xFFU" . $challenge_code;

		fwrite($fp, $challenge);

		$buffer = fread($fp, 4096);

		if (!$buffer) {

			fclose($fp);

			return false;

		}

		$buffer = trim(substr($buffer, 4));

		fclose($fp);

		if (!trim($buffer)) {

			return false;

		}

		$player = array();

		$player_number = 0;

		$position = 2;

		do {

			$player_number++;

			$player[$player_number]['name'] = null;

			if (!isset($buffer[$position])) {

				return 'Сервер пуст ';

			}

			$player[$player_number]['id'] = ord($buffer[$position]);

			$position++;

			while ($buffer[$position] != "\x00" && $position < strlen($buffer)) {

				$player[$player_number]['name'] .= $buffer[$position];

				$position++;

			}

			$player[$player_number]['score'] = (ord($buffer[$position + 1])) + (ord($buffer[$position +

							2]) * 256) + (ord($buffer[$position + 3]) * 65536) + (ord($buffer[$position + 4]) *

					16777216);

			if ($player[$player_number]['score'] > 2147483648)

				$player[$player_number]['score'] -= 4294967296;

			$time = substr($buffer, $position + 5, 4);

			if (strlen($time) < 4) {

				return false;

			}

			list(, $time) = unpack("f", $time);

			$time = mktime(0, 0, $time);

			$player[$player_number]['time'] = date("H:i:s", $time);

			$position += 9;

		} while ($position < strlen($buffer));

		return $player;

	}

	private static function getSettings($server) {

		$server = self::getServer($server);

		$ip = $server[0];

		$port = $server[1];


		$fp = fsockopen("udp://$ip", $port, $errno, $errstr, self::$timeout);

		if (!$fp) {

			return false;

		}

		stream_set_timeout($fp, self::$timeout);

		stream_set_blocking($fp, true);

		$challenge_code = "\xFF\xFF\xFF\xFF\x56\x00\x00\x00\x00";

		fwrite($fp, $challenge_code);

		$buffer = fread($fp, 4096);

		if (!trim($buffer)) {

			fclose($fp);

			return false;

		}

		$challenge_code = substr($buffer, 5, 4);

		$challenge = "\xFF\xFF\xFF\xFFV" . $challenge_code;

		fwrite($fp, $challenge);

		$buffer = fread($fp, 4096);

		if (!$buffer) {

			fclose($fp);

			return false;

		}

		$second_packet = fread($fp, 4096);

		if (strlen($second_packet) > 0) {

			$reverse_check = dechex(ord($buffer[8]));

			if ($reverse_check[0] == "1") {

				$tmp = $buffer;

				$buffer = $second_packet;

				$second_packet = $tmp;

			}

			$buffer = substr($buffer, 13);

			$second_packet = substr($second_packet, 9);

			$buffer = trim($buffer . $second_packet);

		} else

			$buffer = trim(substr($buffer, 4));


		$setting = array();

		$tmp = substr($buffer, 2);

		$rawdata = explode("\x00", $tmp);

		for ($i = 1; $i < count($rawdata); $i += 2) {

				$rawdata[$i] = strtolower($rawdata[$i]);

				@$setting[$rawdata[$i]] = $rawdata[$i + 1];

		}

		return $setting;

	}

	private static function toShow($string){

		return htmlentities(iconv("UTF-8", "CP1251//IGNORE", $string), ENT_NOQUOTES, "CP1251");

	}

}

ServerMon::run();

?>

[/code]

еще не работает подписка на сайте, просто пишет тот код который вставляешь.

Да и вобще многие скрипты не работают должным образом в дле9.6 и это печально, очень много заморочек. как то можно перейти на версию ниже без потерь?

Изменено пользователем myxa59rus
Ссылка на сообщение
Поделиться на других сайтах

myxa59rus,

По вопросам сторонних скриптов, вам нужно обращаться к авторам этих скриптов. Более того данная ошибка не имеет отношения к версии скрипта вообще, ошибка в самом модуле, он получает недопустимые для него параметры. Решать данную проблему вам нужно с автором данного файла.

Да и вобще многие скрипты не работают должным образом в дле9.6 и это печально, очень много заморочек. как то можно перейти на версию ниже без потерь?

Если у вас есть бекапы БД и файлов от этих версий, вы можете восстановиться на данные бекапы и вернетесь к состоянию которое было до обновления, если у вас их нет, то нет.

Ссылка на сообщение
Поделиться на других сайтах

Вот еще проблема, почему не работает bbcode? вот пример http://perm59cs.ru/index.php?newsid=9 на форуме тоже не работает, в чем причина, подскажите.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...

myxa59rus,

Здравствуйте есть проблемка с панелью. Захожу в управление щаблонами, выбераю свой, файлы не открывает, просто они пустые хотя записи в них есть, помогите решить проблему т.к. через фтп реально муторно все это делать.

Помогите решить эту проблему. Спасибо

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...