Организация сайта игр на основе InstantCMS

Опубликовано:
Редактировалось: 1 раз — сегодня в 02:45
Просмотров: 1471
+5
Голосов: 5
На днях я решил сделать небольшой сайтик игр, да вот незадача, что на Инстанте то практически функционала под это дело нет. Мне надо было категории игр, страницы игр, не ниже 2 уровня в урле, красивый вывод, загрузка рекламы с умом и наконец то самое главное пост загрузку игры по клику, так как загрузка страницы сразу с игрой это достаточно нехорошо, лишние звуки, реклама забирает на себя внимание (страдает монетизация) ну вот собственно и стоял вопрос, как же это все организовать в кучу. Использовать подходил больше всего каталог статей, разделы как компоненты 1 уровень урла, игры второй уровень, есть все необходимые seo параметры, нетрудно настроить и модуль вывода последних статей и популярных, но нереализуемой оставалась задача по организации самих игр в статье, как и писал выше.

Поговорил с программистами, варианты были разные. Стал разговаривать с Lokanaft, он весьма смышленный малый, и он мне пообещал сделать решение, после того как понял в чем задача. Пока туда сюда решение было сделано, и появился очень хороший способ как во первых ставить удобно нужный контент, во вторых как его монетизировать. Самое интересное, что такие образом можно играться с очень разными вещами, я например уже сделал гораздо лучше чем хотел, так как на 1 странице стал размещать несколько игр сразу с красивым спойлером. Несомненно это даст плюс в поведенческом траффике. Нажал на кнопку появилась игра, нажал другую, вторая игра. Удобно для посетителя, а это один из самых важных моментов. Теперь же непосредственно само решение.

Открываем папку filters - includes и меняем код на

function getLink($file){
if(strpos($file, '?')){
$file = explode('?',$file);
$file[1] = str_replace('&', '&', $file[1]);
mb_parse_str($file[1], $params);
$file = $file[0];
}
$file = preg_replace ('/[^a-zA-Z0-9-_.]/i', '', $file);
$file = str_replace ('..', '.', $file);
$filefull = PATH.'/includes/myphp/'.$file;

if (file_exists($filefull)){
ob_start();
include $filefull;
$link = ob_get_clean();
} else {
$link = 'Файл "/includes/myphp/'.$file.'" не найден!';
}
return $link;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function f_includes(&$text){

if(strpos($text, '{ФАЙЛ') !== false){
$regex = '/{(ФАЙЛ=)s*(.*?)}/i';
$matches = array();
preg_match_all( $regex, $text, $matches, PREG_SET_ORDER );
foreach ($matches as $elm) {
$file = trim($elm[2]);



if ($file){
$output = getLink($file);
} else { $output = ''; }
$text = str_replace('{ФАЙЛ='.$file.'}', $output, $text );
}
}
return true;
}
?>
Комментарии (3)
VopisUVD #
: 0
Демку бы глянуть что получилось...
Letsgo #
: 0
Кину в скайпе сайт.
Токарев #
: 0
статья интересная и полезная, а вот скрипт не понял... чо делает, зачем нужен? демку ннада)

Голосуем

Самый нужный компонент