Хаки и Скрипты Next Generation CMS
irbees2008 irbees2008 Опубликовано - 1 - августа Верстка
3992 - 0
  • Адаптировал: Русик
  • Уровень сложности исполнения: это делается простым копированием и нажиманием кнопки

Всем привет,сегодня я хочу рассказать и показать пример заполнения файла main.tpl вашего шаблона c использованием TWIGа. Ну да что там такого, берешь длешный,меняешь переменные ,добавляешь twig и все. Но нет, Русик показал более правильное заполнение этого файла.
Вот файл из дефолтного шаблона

Код:
[TWIG]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{ lang['langcode'] }}" lang="{{ lang['langcode'] }}" dir="ltr">
<head>
<meta http-equiv="content-type" content="text/html; charset={{ lang['encoding'] }}"/>
<meta http-equiv="content-language" content="{{ lang['langcode'] }}"/>
<meta name="generator" content="{{ what }} {{ version }}"/>
<meta name="document-state" content="dynamic"/>
{{ htmlvars }}
<link href='http://fonts.googleapis.com/css?family=PT+Sans:400,700&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="{{ tpl_url }}/css/normalize.css">
<link rel="stylesheet" href="{{ tpl_url }}/css/main.css">
<link rel="stylesheet" href="{{ tpl_url }}/css/style.css">
<link rel="stylesheet" href="{{ tpl_url }}/css/slider.css">
<!--[if lt IE 9]>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!--[if lte IE 7]>
<link rel="stylesheet" href="{{ tpl_url }}/css/ie7.css">
<script src="{{ tpl_url }}/js/ie7.js"></script>
<![endif]-->
<!--[if lte IE 6]>
<link rel="stylesheet" href="{{ tpl_url }}/css/ie6.css">
<![endif]-->
{% if pluginIsActive('rss_export') %}
<link href="{{ home }}/rss.xml" rel="alternate" type="application/rss+xml" title="RSS" />{% endif %}
<script src="{{ scriptLibrary }}/jq/jquery.js"></script>
<script type="text/javascript" src="{{ scriptLibrary }}/functions.js"></script>
<script type="text/javascript" src="{{ scriptLibrary }}/ajax.js"></script>
<title>{{ titles }}</title>
</head>
<body>
<div id="loading-layer"><img src="{{ tpl_url }}/img/loading.gif" alt=""/></div>
<div id="wrapper">
<header id="header">
<div id="logo">
<a href="{{ home }}"><img src="{{ tpl_url }}/img/logo.png" alt=""></a>
</div>
{% if (global.flags.isLogged) %}
{{ personal_menu }}
{% else %}
<div id="auth">
<a href="/register/" class="auth-registration">{{ lang.registration }}</a>
<a href="#auth-modal" rel="modal" class="auth-login">{{ lang.theme['login'] }}</a>
</div>
{% endif %}
<div class="clearfix"></div>
<div id="menu" class="clearfix">
<nav class="menu">
<ul>
<li><a href="{{ home }}">{{ lang.theme.home }}</a></li>
<li><a href="#">{{ lang.theme.news }}</a></li>
<li><a href="#">{{ lang.theme.forum }}</a></li>
<li><a href="#">{{ lang.theme.article }}</a>
<ul>
<li><a href="#">{{ lang.theme.recent_article }}</a></li>
<li><a href="#">{{ lang.theme.catalog }}</a></li>
<li><a href="#">{{ lang.theme.job }}</a></li>
</ul>
</li>
<li><a href="#">{{ lang.theme.blog }}</a></li>
<li><a href="#">{{ lang.theme.catalog }}</a></li>
<li><a href="#">{{ lang.theme.job }}</a></li>
<li><a href="#">{{ lang.theme.about }}</a></li>
</ul>
</nav>
<div id="search">
{{ search_form }}
</div>
</div>
</header>
<section id="container" class="clearfix">
<div id="content-main">
{% include "slider.tpl" %}
{% if isHandler('news:main|news:by.category|news:by.month|news:by.day') %}
<div class="articles full">
<div class="articles-switch">
<a href="#" id="articles-switch-1" class="articles-switch-1" onclick="javascript:save_articles_switch_one();"></a>
<a href="#" id="articles-switch-2" class="articles-switch-2" onclick="javascript:save_articles_switch_two();"></a>
</div>
<div class="block-title">{{ lang.news }}</div>
<div class="clearfix"></div>
{{ mainblock }}
</div>
{% else %}
{{ mainblock }}
{% endif %}
</div>
<aside id="sidebar">
<div class="block popular-block">
<div class="block-title">{{ lang.theme.popular_article }}</div>
<ul class="tabs tabs-full" id="popular-news">
<li class="active"><a href="#tab-1" data-transitional="fade">{{ lang.theme.day_1 }}</a></li>
<li><a href="#tab-2" data-transitional="fade">{{ lang.theme.day_2 }}</a></li>
<li><a href="#tab-3" data-transitional="fade">{{ lang.theme.day_3 }}</a></li>
</ul>
<div class="tab-content tab-bordered">
<div class="tab-pane active" id="tab-1">
{% if pluginIsActive('xnews') %}
{{ callPlugin('xnews.show', {'order' : 'last', 'count': '6', 'template' : 'xnews1'}) }}
{% endif %}
</div>
<div class="tab-pane" id="tab-2">
{% if pluginIsActive('xnews') %}
{{ callPlugin('xnews.show', {'order' : 'last', 'count': '6', 'template' : 'xnews1'}) }}
{% endif %}
</div>
<div class="tab-pane" id="tab-3">
{% if pluginIsActive('xnews') %}
{{ callPlugin('xnews.show', {'order' : 'last', 'count': '6', 'template' : 'xnews1'}) }}
{% endif %}
</div>
</div>
</div>
{% if pluginIsActive('archive') %}
<div class="block archive-block">
<div class="block-title">{{ lang.theme.archive_news }}</div>
{{ callPlugin('archive.show', {'maxnum' : 12, 'counter' : 1, 'template': 'archive', 'cacheExpire': 60}) }}
</div>
{% endif %}
{% if pluginIsActive('calendar') %}
{{ callPlugin('calendar.show', {}) }}
{% endif %}
{% if pluginIsActive('voting') %}
{{ voting }}
{% endif %}
{% if pluginIsActive('tags') %}
{{ plugin_tags }}
{% endif %}
{% if pluginIsActive('switcher') %}
{{ switcher }}
{% endif %}
{% if pluginIsActive('top_active_users') %}
<div class="block popular-authors-block">
<div class="block-title">{{ lang.theme.popular_authors }}</div>
{{ callPlugin('top_active_users.show', {'number' : 12, 'mode' : 'news', 'template': 'top_active_users', 'cacheExpire': 60}) }}
</div>
{% endif %}
</aside>
</section>
<footer id="footer">
<div class="copyright">
<p>© <a title="{{ home_title }}" href="{{ home }}">{{ home_title }}</a> Powered by
<a title="Next Generation CMS" target="_blank" href="http://ngcms.ru/">NG CMS</a> 2007
— {{ now|date("Y") }}. <br/>{{ lang.sql_queries }}: <b>{{ queries }}</b> | {{ lang.page_generation }}:
<b>{{ exectime }}</b> {{ lang.sec }} | <b>{{ memPeakUsage }}</b> Mb </p>
<p>{{ lang.all_right_reserved }} <br/> {{ lang.theme.copying_materials }}</p>
</div>
<div class="poweredby">
<p>{{ lang.theme.design_by }} - <a href="http://cargocollective.com/Qesoart">Qesoart</a></p>
<p>{{ lang.theme.bugs_report }}</p>
</div>
</footer>
</div>
{% if not (global.flags.isLogged) %}{{ personal_menu }}{% endif %}
{% if isHandler('news:news') %}
<script src="{{ tpl_url }}/js/jquery.custom-scrollbar.min.js"></script>{% endif %}
<script src="{{ tpl_url }}/js/slider.js"></script>
<script src="{{ tpl_url }}/js/script.js"></script>
</body>
</html>
[debug]
{debug_queries}<br/>{debug_profiler}
[/debug]
[/TWIG]

Как видите TWIG в начале и в конце файла, но как оказалось желательно делать так
Код:
<!DOCTYPE html>
<!--[TWIG] {% spaceless %}-->

..............

</body>
<!--{% endspaceless %} [/TWIG]-->
</html>

-doctype всегда должен находится на первой строке
-конструкция spaceless убирает пробелы и переносы строк в компелируемых и кешируемых шаблонах
-вы изменяете первые две строки и последние три строки
Ну и желательно еще сделать вот эти изменения в шаблоне для предпросмотра новостей в рабочем шаблоне https://ngcmshak.ru/twig/svezhenkii-hak-ot-rusika.html

Можешь почитать и вот эту статейку "Выскальзывающие пункты меню на jQuery"

Опрос

Ваше мнение

На каком движке ваш сайт?
Результаты

Последние комментарии

Теги

Anything in here will be replaced on browsers that support the canvas element

Статистика

  • Caйту: 4401 день
  • Новостей: 566
  • Комменты: 257
  • Зарегистрированно : 662
  • Онлайн всего: [6]
  • Гости: [5]
  • Поисковики: [1] Яндекс
  • Были сегодня : [3] Яндекс, Google, Яндекс
  • SQL запросов: 32
  • Генерация страницы: 0.359сек
  • Потребление памяти: 5.176 Mb 
  •   Яндекс.Метрика