Шаблоны

Введение Список команд шаблонов Request Список свойств объекта thumb Список свойств объекта preview Custom error pages Search Banners

Введение

Шаблоны это основа дизайна вашего сайта. Шаблоны представляют собой обычные *.php файлы в которые вставляются инструкции позволяющие управлять отображением контента. Если вы знаете html то вам достаточно взять готовый шаблон идущий в поставке и отредактировать html код не трогая инструкции заключенные между символами <? ?> чтобы получить готвый к работе сайт Шаблоны расположены в папке templates. Существует три типа шаблонов (подпапки: layouts, site, sub).
Рассмотрим их назначение:

  • layouts - макет сайта, главный шаблон в который вставляется весь контент (как правило содержит меню, шапку и футер)
  • site - основное тело страницы, как правило содежит тумбы
  • sub - субшаблоны, небольшие части html кода, которые часто повторяются на странице, например тумба с надписью, ссылка на тэг и т д

Список команд шаблонов

В квадратные скобки [] заключены необязательные параметры. В скобках указана область применения команды (L - layout, С - шаблон контента (папка site), S - субшаблон)

  • <?=Inxy::action()?> (LCS) - Выводит имя текущего шаблона контента
  • <?=Inxy::category()?> (LCS) - Выводит имя текущей категории
  • <?=Inxy::categoriesByCtr(['categories_by_ctr'[, 300]])?> (LC) - Выводит список категорий отсортированных по CTR, используется субшаблон categories_by_ctr
  • <?=Inxy::categoriesByLastClicks(['categories_by_last_clicks'[, 300]])?> (LC) - Выводит список категорий отсортированных по количеству кликов за последний реранк, используется субшаблон categories_by_last_clicks
  • <?=Inxy::categoriesByName(['categories_by_name'[, 300]])?> (LC) - Выводит список категорий отсортированных названию, используется субшаблон categories_by_name
  • <?=Inxy::description()?> (LC) - Выводит описание сайта (задается в настройках) на страницах с тумбами, на странице галереи выводит описание галереи
  • <?=Inxy::ifActionMatch(val, [true = 'highlight'[, false = 'default']])?> (LC) - Возвращает true если имя текущего действия совпадат с val иначе возвращает false. Используется для задания различных CSS стилей активным и не активным пунктам меню
  • <?=Inxy::ifCategoryMatch(val, [true = 'highlight'[, false = 'default']])?> (LC) - Возвращает true если имя текущей категории совпадат с val иначе возвращает false. Используется для задания различных CSS стилей активным и не активным пунктам меню
  • <?=Inxy::ifTagMatch(val, [true = 'highlight'[, false = 'default']])?> (LC) - Возвращает true если имя текущего тага совпадат с val иначе возвращает false. Используется для задания различных CSS стилей активным и не активным пунктам меню
  • <?=Inxy::join(items, template, separator) ?> (LC) - Объединяет массив items используя субшаблон template и разделитель separator
  • <?=Inxy::keywords()?> (L) - Выводит список ключевых слов (генерируется автоматически для каждой страницы)
  • <?=Inxy::name()?> (L) - Выводит заголовок сайта (задается в настройках)
  • <?Inxy::orderByCtr()?> (C) - Задает порядок сортировки тумб по CTR
  • <?Inxy::orderByDater()?> (C) - Задает порядок сортировки тумб по дате
  • <?=Inxy::paginator()?> (C) - Выводит список страниц (архив)
  • <?Inxy::setLayout(name)?> (C) - Задает макет который должен испольоваться со страницей контента (по умолчанию main)
  • <?Inxy::setThumbSub(name [, use_prefix = false])?> (C) - задает субшаблон который будет использоваться для вывода тумб
  • <?=Inxy::tag()?> (LC) - Выводит текущий таг
  • <?=Inxy::tagsByName(offset, limit, template)?> (LC) - Выводит максимум limit тагов отсортированных по имени начиная с offset используя субшаблон template
  • <?=Inxy::tagsByWeight(offset, limit, template)?> (LC) - Выводит максимум limit тагов отсортированных по популярности начиная с offset используя субшаблон template
  • <?=Inxy::title()?> (L) - Выводит заголовок сайта (задается в настройках) на страницах с тумбами, на странице галереи выводит заголовок галереи, на странице категории выводит заголовок категории (если задан)
  • <?=Inxy::test([count = 1])?> (C) - Выводит count тестовых тумб
  • <?=Inxy::thumb([count = 1])?> (C) - Выводит count тумб
  • <?=Inxy::total()?> (L) - Выводит общее количество галерей
  • <?=Inxy::totalNew()?> (L) - Выводит количество галерей в группе сделанных за последние 24 часа
  • <?=Inxy::tplUrl()?> (LCS) - относительный урл к папке с шаблонами
  • <?=Inxy::url(template)?> (LCS) - Выводит урл для действия template
  • <?=Inxy::virtual()?> (L) - замена функции php virtual которая некореектно работает с INXY

Текущая позиция. Как вывести имя категории, тэга, номер страницы и т д.

  • <?=Inxy::req()→action?> - выводит название текущего шаблона
  • <?=Inxy::req()→page?> - выводит номер текущей страницы
  • <?=Inxy::req()→group?> - имя текущей группы
  • <?=Inxy::req()→gal_id?> - выводит id галеры
  • <?=Inxy::req()→tag?> - выводит текущий tag
  • <?=Inxy::req()→category?> - выводит текущую категорию
  • <?=Inxy::req()→search?> - выводит поисковый запрос

Пример (для SEO URLS Enabled, группа по умолчанию mov)

URL Example action pagegroupgal_idtag categorysearch
example.com/ index 1 mov
example.com/recent.html recent 1 mov
example.com/mov/recent-2.html recent 2 mov
example.com/mov/tag/bareback-1.html index 1 mov bareback
example.com/my-gal-title-7678.html 7678
example.com/mov/index/amateur-1.htmlindex 1 mov amateur
example.com/mov/search/blond-1.html index 1 mov blond

Список свойств объекта gal

  • <?=$gal→media→page_url?> - урл страницы, если картинка показывается в отдельном html
  • <?=$gal→media→url?> - url media (видео,картинки)
  • <?=$gal→media→width?> - ширина картинки
  • <?=$gal→media→height?> - высота картинки
  • <?=$gal→media→isEmbed()?>
  • <?=$gal→media→isFlv()?>
  • <?=$gal→media→isJpg()?>
  • <?=$gal→previews→width?> - ширина тумбы
  • <?=$gal→previews→height?> - высота тумбы
  • <?=$gal→previews→url?> - url тумбы
  • <?=$gal→previews→media?> - объект медиа к которому относится данная превью
  • <?=$gal→gal_id?> - Индентификатор галереи
  • <?=$gal→type_id?> - тип галереи
  • <?=$gal→url?> - url галереи
  • <?=$gal→title?> - тайтл галереи
  • <?=$gal→description?> - описание галереи
  • <?=$gal→duration?> - длительность видео
  • <?=$gal→categories?> - массив категорий галереи
  • <?=$gal→tags?> - массив тэгов галерии
  • <?=$gal→publish_dt?> - дата публикации галереии
  • <?=$gal→paysite→domain?> - домен платника, которому принадлежит галеря
  • <?=$gal→paysite→name?> - название платника, котрому принадлежит галерея
  • <?=$gal→paysite→ref_url?> - реф ссылка на платник
  • <?=$gal→paysite→sponsor_id?> - идентификатор спонсора
  • <?=$gal→paysite→description?> - описание платника
  • <?=$gal→paysite→priority?> - приоритет платника
  • <?=$gal→paysite→disabled?> - активность платника

Список свойств объекта gal

  • <?=$thumb→categories?> - массив категорий для тумбы
  • <?=$thumb→ctr?> - CTR тумбы
  • <?=$thumb→click_url?> - ссылка на галеру с подсчетом статистики
  • <?=$thumb→clicks?> - кол-во кликов по тумбе
  • <?=$thumb→description?> - описание галеры
  • <?=$thumb→duration?> - длительность мувика
  • <?=$thumb→gal_id?> - ID галеры, которой принадлежит тумбы
  • <?=$thumb→gallery_url?> - прямая ссылка на галеру
  • <?=$thumb→height?> - высота тумбы
  • <?=$thumb→img_url?> - ссылка на файл в медахранилище
  • <?=$thumb→is_rotating?> - тумба в ротации
  • <?=$thumb→publish_dt?> - дата публикации
  • <?=$thumb→media_url?> - адрес большой картинки
  • <?=$thumb→paysite_domain?> - домен платника
  • <?=$thumb→paysite_name?> - имя платника
  • <?=$thumb→paysite_ref_url?> - ссылка на платник с рефкодом
  • <?=$thumb→last_views?> - показы за последний реранк
  • <?=$thumb→last_clicks?> - клики за последний реранк
  • <?=$thumb→tags?> - массив тэгов
  • <?=$thumb→thumb_url?> - адрес тумбы
  • <?=$thumb→title?> - title галеры
  • <?=$thumb→views?> - кол-во показов тумбы
  • <?=$thumb→width?> - ширина тумбы

Примечание

Если в описании или тайтле галерии используются html тэги или кавычки, тогда для того, чтобы шаблоны отрабатывали корректно, необходимо при выводе использовать PHP функции htmlspecialchars и strip_tags пример:

<?=htmlspecialchars(strip_tags($gal->description), ENT_QUOTES)?>

Проверка условий в шаблоне

Проверка имени текущего шаблона

<?=Inxy::ifActionMatch(action name, [val_if_true = 'highlight'[, val_if_false = 'default']])?> - возвращает true если имя текущего действия совпадат с val_if_true иначе возвращает val_if_false. Используется для задания различных CSS стилей активным и не активным пунктам меню

Пример использования:
<h2 class='<?=Inxy::ifActionMatch('recent')?>'>Recent</h2>

Если открыт урл http://example.com/ то код выводит:

<h2 class='default'>Recent</h2>

Если открыт урл http://example.com/recent.html то код выводит:

<h2 class='highlight'>Recent</h2>

Можно задать свои имена для css классов:

Пример использования:
<h2 class='<?=Inxy::ifActionMatch('recent', 'active', 'not_active')?>'>Recent</h2>

Если открыт урл example.com/ то код выводит:

<h2 class='active'>Recent</h2>

Если открыт урл example.com/recent.html то код выводит:

<h2 class='not_active'>Recent</h2>

Проверка имени категории и тэга

<?=Inxy::ifCategoryMatch(val, [val_if_true = 'highlight'[, val_if_false = 'default']])?> - Возвращает true если имя текущей категории совпадат с val иначе возвращает false. Используется для задания различных CSS стилей активным и не активным пунктам меню <?=Inxy::ifTagMatch(val, [val_if_true = 'highlight'[, val_if_false = 'default']])?> - Возвращает true если имя текущего тага совпадат с val иначе возвращает false. Используется для задания различных CSS стилей активным и не активным пунктам меню

Пример использования:
<h2 class='<?=Inxy::ifCategoryMatch('Teen')?>'>Teen</h2>

Если открыт урл example.com/mov/teen-1.html то код выводит:

<h2 class='highlight'>Teen</h2>

Если открыт урл example.com/mov/solo-1.html то код выводит:

<h2 class='default'>Teen</h2>

Проверка имени группы

<?=Inxy::ifGroupMatch(name, [val_if_true = 'highlight'[, val_if_false = 'default']])?> - Возвращает val_if_true если текущая группа совпадает с name иначе возвращает val_id_false.

Keep deleted gals visible (работает начиная с 1.08.23)

В настройках галочка Settings - General - Keep Deleted Gals Если отмечена, удаленные в фидере галеры не удаляются с сайта полностью, остается заголовок и описание, удаляются только тумбы, видео и т.д. При попытке зайти на такую галеру не будет выдана ошибка 404, будет выдан код 200.

В шаблоне галеры можно написать

<?if ($gal->isDeleted()) : ?>

	<?=$gal->title?>

	<h1>Ooopps, video was removed</h1>

<? else : ?>

     <!-- Обычный код галереи -->

<? endif; ?>

Если галерею удалить из админки САЙТА, то она удалится полностью! Т.е. будет выдан код 404

Custom error pages

Начиная с версии 1.06 вы можете создавать кастомные страницы для ошибок http (404, 502 etc) Для этого нужно создать шаблоны:

  • layouts/error.php
  • system/error.php

Пример:

  • system/error.php:
<?php $messages = array(
    404 => "Page not found",
    503 => "Server busy",
)?>
<h1><?=$e->status?></h1> 
<p><?=isset($messages[$e->status]) ? $messages[$e->status] : "Unknown error"?></p>
  • layouts/error.php:
<?=$content ?>

Related videos

Следующий код выводит максимум 20 релэйтед тумб. Используя шаблон sub/related.php

<?=Inxy::join($gal->related(20), 'related', '')?>

Пример файла sub/related.php:

<a rel='nofollow' target="_blank" title="<?=$item->title?>" href="<?=$item->gallery_url?>"><?=$item->title?></a><br/>

Примечание

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

Banners

Порядок выбора баннеров, если не найдены баннеры по по критериям пункта 1, то ищутся баннеры по критериям пункта 2 и т.д.:

  1. выбираются баннеры подходящие по размеру, платнику, стриму сайта, категориям (если указаны)
  2. выбираются баннеры подходящие по размеру, платнику, стриму сайта (категории игнорируются)
  3. выбираются баннеры подходящие по размеру, стриму сайта, категориям (платник игнорируется)
  4. выбираются баннеры подходящие по размеру и стриму
  5. выбираются баннеры подходящие по размеру

с версии 1.08

Баннеры выводятся с учетом ниши.

<?=Inxy::adv()->minSize(x,y)->maxSize(x,y)?>

Этот код работает по разному для разных страниц сайта:

  • Для первой страницы он выводит любой баннер подходящего размера.
  • Для страницы категории (не тага) выводит баннер платника у которого есть такая же категория.
  • Для страницы галереи выводит баннер платника у которого есть такая же категория что и галлереи.

с версии 1.07

код для вставки на галеру с учетом платника:

<?=Inxy::adv()->minSize(x,y)->maxSize(x,y)->paysite($gal->paysite->domain)?> // выводит баннер платника галереи
<?=Inxy::adv()->minSize(x,y)->maxSize(x,y)->paysite('example.com')?> // выводит баннер платника example.com

код для вставки на любую страницу без учета платника:

<?=Inxy::adv()->minSize(x,y)->maxSize(x,y)?>

minSize(x,y) - минимальные размеры банера maxSize(x,y) - максимальные размеры банера

Добавить баннеры можно в inxy-feeds во вкладке Banners в форме редактирования платника.

поиск по сайту

Поиск на сайте можно сделать установив бесплатный поисковый скрипт sphinx.

  1. Устновите sphinx
  2. Создайте sphinx source:
     source domain_name
     {
     	type		= mysql
     	sql_host	= localhost
     	sql_user	= your_inxy_db_user	
     	sql_pass	= your_inxy_db_pass
     	sql_db		= your_inxy_db
     
     	sql_query				= \
     		SELECT rt.rotation_id, title, categories, tags, description, rt.content_type_id \
     		FROM gals g JOIN rotation rt ON rt.gal_id = g.gal_id WHERE g.status_id = 3 AND g.disabled_sum = 0 AND rt.category_id IN (1,2,3)
      	  
     	sql_attr_uint = content_type_id
     
     	sql_query_info	= SELECT * FROM rotation WHERE rotation_id=$id
     }
  3. Создайте sphinx index
  4. Создайте файл конфига inxy/var/config/sphinx.php
    Example:
    <?
    return array(
      "host" => "localhost",
      "port" => 3312,
      "index" => "sphinx_index_name"
    );
    ?>
  5. Cоздайте cron job для обновления индекса поиска
    Шаблон поисковой строки:
    <form action="/">
    <input type="text" name="q">
    <input class="submit" type="submit"  value="Find" />
    </form>
  6. Создайте шаблон site/search.php для вывода результатов поиска (<?=Inxy::req()→search?> выводит текущую поисковую фразу)
 
ru/templates.txt · Last modified: 2012/04/06 14:11 by admin
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki