Critical Error 155 Опубликовано: 4 декабря 2013 Рассказать Опубликовано: 4 декабря 2013 (изменено) В разработке очередного адаптивного сайта возникла необходимость в выводе информации на основном сайте только для мобильных устройств и наоборот. Для этого я решил добавить два новых глобальных тега на основе проверки используемого посетителем устройства. В движке уже предусмотрена функция проверки мобильного устройства - check_smartphone() - возвращающая true если посетитель использует какое-либо мобильное устройство. Вот небольшой туториал по установке: Открываем файл engine/classes/templates.class.php и находим функцию check_tag. После нее добавим новую функцию check_mobile() function check_mobile( $matches=array() ) { $block = $matches[2]; if ($matches[1] == "mobile") $action = true; else $action = false; if( $action ) { if( !check_smartphone() ) return ""; else return $block; } else { if( check_smartphone() ) return ""; else return $block; } } Полдела сделано. Едем дальше. В этом же файле находим функцию load_template(). После условия if (strpos ( $this->template, "[not-news=" ) !== false) { $this->template = preg_replace_callback ( "#\\[(not-news)=(.+?)\\](.*?)\\[/not-news\\]#is", array( &$this, 'check_tag'), $this->template ); } добавляем след. код if (strpos ( $this->template, "[mobile]" ) !== false) { $this->template = preg_replace_callback ( "#\\[(mobile)\\](.*?)\\[/mobile\\]#is", array( &$this, 'check_mobile'), $this->template ); } if (strpos ( $this->template, "[not-mobile]" ) !== false) { $this->template = preg_replace_callback ( "#\\[(not-mobile)\\](.*?)\\[/not-mobile\\]#is", array( &$this, 'check_mobile'), $this->template ); } Далее в функции sub_load_template() после условия if (strpos ( $template, "[not-news=" ) !== false) { $template = preg_replace_callback ( "#\\[(not-news)=(.+?)\\](.*?)\\[/not-news\\]#is", array( &$this, 'check_tag'), $template ); } вставляем код if (strpos ( $template, "[mobile]" ) !== false) { $template = preg_replace_callback ( "#\\[(mobile)\\](.*?)\\[/mobile\\]#is", array( &$this, 'check_mobile'), $template ); } if (strpos ( $template, "[not-mobile]" ) !== false) { $template = preg_replace_callback ( "#\\[(not-mobile)\\](.*?)\\[/not-mobile\\]#is", array( &$this, 'check_mobile'), $template ); } Вот, в общем-то, и все телодвижения. Теперь в любом файле шаблона есть возможность вывода информации только для мобильного устройства либо только для ПК. [mobile] текст [/mobile] - для девайсов [not-mobile] текст [/not-mobile] - для ПКС разделом немного промахнулся. Владимир, если посчитаете нужным, перенесите в Хаки. Изменено 4 декабря 2013 пользователем Critical Error 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.