Inurl component k2 исступленный. Нестандартный вывод дополнительных полей в К2

Жаропонижающие средства для детей назначаются педиатром. Но бывают ситуации неотложной помощи при лихорадке, когда ребенку нужно дать лекарство немедленно. Тогда родители берут на себя ответственность и применяют жаропонижающие препараты. Что разрешено давать детям грудного возраста? Чем можно сбить температуру у детей постарше? Какие лекарства самые безопасные?

При использовании CCK компонента K2, иногда бывает необходимость в использовании дополнительных полей. По умолчанию в компоненте K2 используется вывод всех дополнительных полей в одном месте, что очень не красиво и не удобно. Данная статья написана чтобы решить проблему с размещением дополнительных полей K2 в разных местах шаблона.

Для начала, если вы используете компонент K2 и его отдельные шаблоны то желательно скопировать все содержимое шаблонов K2 в ваш шаблон . Таким образом при обновлении K2 вы не потеряете свои новые дополнительные поля и все изменения которые внесли в файлы шаблона K2.

Шаг 1: Вывод дополнительных полей в разных местах шаблона материала K2

Итак, открываем папку: /components/com_k2/templates/

и копируем ее содержимое в папку с вашим шаблоном (предварительно создав папки com_k2/templates/): /templates/название_шаблона/html/com_k2/templates/

При желании можете сразу создать несколько шаблонов, например чтобы использовать различные стили вывода и оформления в разных категориях. Например после создания нескольких шаблонов, ваша директория и папки будет выглядить так:

  • /templates/название_шаблона/html/com_k2/templates/default/
  • /templates/название_шаблона/html/com_k2/templates/novosti/
  • /templates/название_шаблона/html/com_k2/templates/faq/

После этого необходимо создать группу полей и сами поля, после чего присвоить их к нужной категории:

и в 12 строчке после:

вставляем данный код:

// дополнительные поля материала K2 $extrafields = array(); foreach($this->item->extra_fields as $item) { $extrafields[$item->id] = $item->value; }

После этого нам необходимо удалить существующий вывод всех дополнительных полей. Для этого в этом же файле удалите все с 250 по 266 строки. А именно:

item->params->get("itemExtraFields") && count($this->item->extra_fields)): ?>

    item->extra_fields as $key=>$extraField): ?> value): ?>
  • typetype); ?> groupgroup; ?>"> name; ?>: value; ?>

Далее нам нужно вывести одно какое нибудь дополнительное поле в материале, например это будет поле которое имеет уникальный ID - 2 (узнать ID поля можно в административной панели K2, во вкладке Доп. поля). Для этого, в этом же файле item.php ищем подходящую позицию для размещения дополнительного поля (в нашем случае в самом верху материала, под логином пользователя) и вставляем следующий код:

где это ID дополнительного поля.

Обновляем страницу на сайте и видим наше одно поле, которое имеет идентификатор 2. Таким же образом вставляем другие поля в любом месте шаблона K2, только не забудьте менять ID при каждом новом добавлении поля в шаблон, в противном случае у вас получится одно и тоже поле в разных местах шаблона.

Далее нам необходимо добавить стиль оформления для дополнительного поля K2. Вы же хотите чтобы ваши доп.поля в K2 выглядили привлекательно? Для этого достаточно просто обрамить наш код DIV"ом или любым другим элементом по желанию и добавить к нему CSS класс для создания уникального стиля нашему дополнительному полю. Например сделаем так:

Вы думайте на этом все? НЕТ! Если вдруг вы уберете информацию в материале из дополнительного поля K2, то вы увидите такую неприятную картину:

После если мы обновим страницу сайта, то на странице материала, стиль поля исчезнет:

Если мы вновь введем информацию в поле «Демо», то наша кнопка (точнее поле) снова будет отображатся на сайте:

В примере выше, мы использовали 2 поля (Демо и Скачать), которые были установлены в разных местах шаблона и имели совершенно разные CSS стили оформления. Поле «Демо» содержащее идентификатор ID 1, была добавлена вверх страницы, а поле «Скачать» с идентификатором ID 2 было добавлено ниже вывода полного текста статьи и отцентровано по центру материала с использованием CSS стилей.

Вы можете использовать неограниченное количество дополнительных полей компонента K2 и расставлять их в разных местах шаблона и применять к ним различные эффекты и стили оформления. Незабывайте только указывать корректный идентификатор (ID) дополнительного поля!

Вот на этом вывод дополнительных полей K2 в разных местах шаблона завершен.

Шаг 2: Вывод дополнительных полей в разных местах категории материалов K2

Если вы также хотите вывести дополнительные поля в самой категории компонента K2, при этом используя разные места вывода, то вам необходимо открыть файл category_item.php в папке с шаблоном K2. После перейдите к 12 строке, и после:

// no direct access defined("_JEXEC") or die("Restricted access");

Вставьте следующий код:

// дополнительные поля категории K2 $extrafields = array(); if($this->item->params->get("catItemExtraFields") && count($this->item->extra_fields)) foreach($this->item->extra_fields as $item) { $extrafields[$item->id] = $item->value; }

Далее вам необходимо удалить стандартный вывод дополнительных полей в категории K2. Для этого в этом же файле category_item.php перейдите к 129 строке (нумерация может отличатся из-за внесения кода выше) и удалите все что связано с дополнительными полями (от 129 до 145 строки), а именно:

item->params->get("catItemExtraFields") && count($this->item->extra_fields)): ?>

    item->extra_fields as $key=>$extraField): ?> value): ?>
  • typetype); ?> groupgroup; ?>"> name; ?> value; ?>

Данный код выведет оба наших поля (c ID 1 и ID 2) в том месте где мы установили код (в данном случае мы установили код после вывода вступительного текста статьи K2 в категории материалов). Обратите внимание на то что к классу нашей кнопки мы добавили преффикс cat_, чтобы CSS стиль не смешался со стилем кнопок (полей) материалов K2:

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

Данное решение предназначено для Joomla 1.5 и 2.5 с использованием компонента K2 v2.5.4. В более ранних версиях компонента, может быть несоответствие строк.

Эта статья является единственным простым и гибким решением для вывода дополнительных полей в материалах и категориях K2.

Хотите оперативно получать новые уроки и статьи блога LAWANS.RU. Просто введите ВАШ e-mail на форме справа >>>

Привет Всем!

Сегодня хотел поговорить о таком компоненте для Joomla как K2 . Может кто-то им пользовался, кто-то только слышал, а для кого-то это незнакомое сочетание символов. По крайней мере я его использую в каждом втором проекте.

Сразу скажу, где можно взять этот компонент – getk2.org и его русификатор – getk2.org/assets/translations/

Что же он может? А может он много. По идее это мощная замена стандартному встроенному в joomla компоненту статей с богатым набором множества дополнительных функций. На нем можно сделать, к примеру - сайт новостей/сайт журнала, каталогов продукции, портфолио, базу знаний, каталог . Особенностью является создание кучи дополнительных полей для материалов.

Также имеется несколько конкретных типов контента – статьи, блог, страница продукта, список файлов каталога.

Давайте лучше поставим его и поглядим изнутри на K2 . После установки и русификации (она кстати ставится также как и компонент через Менеджер расширений ). Вот что получилось в админке:

Теги – слова для поиска статей, которые объединены по данному тегу.

Комментарии – да тут есть своя встроенная система комментариев (есть и капча с сервера гугля), чего так не хватает в стандартном компоненте статей joomla!

Доп. поля и Группы доп. полей – это как раз и есть дополнительные поля для статей, причём с объединением в группы.

Также как видите, имеется свой встроенный Медиа менеджер и Пользователи (для работы с контентом на сайте).

Кстати, если у вас есть уже статьи в стандартном компоненте Joomla , то их можно перекинуть в K2 . Для этого предусмотрительные разработчики сделали кнопку в панели K2 – Импортировать контент из Joomla (самая крайняя кнопка справа).

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

В итоге для Группы 1 я сделал следующие 3 поля (текстовое, выпадающий список, ссылка )

А для Группы 2 я сделал следующие 3 поля (текстовое поле, дата, поисковые метки )

Давайте теперь сделаем пару категорий с разными группами дополнительных полей.

И давайте, наконец, создадим для этих категорий. И ещё в одном из материалов добавим Теги .

Как видим, здесь можно добавить к материалу ещё изображение , галерею изображений (правда для этого нам нужен будет плагин Simple Image Gallery Pro , а он платный, но его на просторах инета найти не проблема), также вставить видео-аудио (для этого нам нужен будет плагин AllVideos и он бесплатный).

Наконец – вкладка Доп.поля . Тут наши доп. поля которые мы ранее добавляли (в полях стоят значения по умолчанию)

Есть также вкладка Вложения – там можно добавлять вложенные файлы для материала. Я добавлю для примера Pdf файл. И по такому же принципу добавил Материал 2 с дополнительными полями из Группы2.

Теперь давайте всё это отобразим на сайте через менюшку. Выбрав тип меню K2 – Категории.

И вот что на сайте отобразится, а именно список всех материалов категорий.

И если мы перейдём на Материал 1:

Как видим тут много всего отображается. Но если что-то не нужно, то лишнее можно отключить в настройках.

А вот и Материал 2.

В дополнительной информации отображаются наши дополнительные поля.

Вот собственно кратко по компоненту K2 . Не рассмотрел настройки компонента, но их можно поюзать самим, на русском языке там всё понятно. В дальнейшем буду разбирать примочки, которые можно прикрутить к нему.

И как всегда жду ваших вопросов и комментариев!

1 Копируем файл с языковыми константами компонента K2

Сначала создадим файл с языковыми константами компонента K2 для нужного языка. Для этого скопируем файл с сервера из директории /language/en-GB/en-GB.com_k2.ini в директорию с нужным языком и переименуем его. Например, для русской локализации создадим на сервере файл: /language/ru-RU/ru-RU.com_k2.ini .

2 Установка языка по умолчанию на сайте Joomla

Теперь в панели управления зададим язык для сайта - русский: Менеджер языков Языковые пакеты сайта По умолчанию и ставим галочку напротив русского языка.


3 Правка файла ru-RU.com_k2.ini в блокноте

Далее можно поступить так: скачать с сервера файл ru-RU.com_k2.ini , открыть его в блокноте и изменить значения языковых констант в файле, т.е. перевести их с английского на русский язык. Затем сохраняем отредактированный файл и закачиваем его обратно на сервер, заменив исходный файл "ru-RU.com_k2.ini".


4 Переопределение языковых констант в панели управления Joomla

Можно поступить по-другому и переопределить нужные фразы прямо из админки Joomla. Для этого тут же, в менеджере языков, переходим в раздел Переопределение констант (1). Выбираем язык и область действия (сайт или панель управления), для чего выбираем в фильтре Russian - Сайт (2). А затем, чтобы создать новое переопределение языковой константы, нажимаем кнопку Создать (3).


5 Создание нового переопределения языковой константы в Joomla

Откроется окно переопределения языковой константы. В поле Найти введите на английском языке называние константы или фразы, которую хотите перевести. Выберите в выпадающем списке Значение (чтобы найти слово или фразу в текстах констант) или Константа (искать в названии констант) (1). Нажмите кнопку Найти , появится список найденных констант. Найдите в нём интересующую константу (2).

Для компонента K2 константы обычно имеют в названии префикс К2_ .

Выберете эту константу из списка, и её значение появится в левом поле (3). Переводим её значение в поле Текст и сохраняем.


Переопределённая константа появилась в списке. Аналогичные действия необходимо повторить для всех языковых констант, текст для которых должен быть локализован.


Метод переопределения языковых констант также применим и к обычным статьям Joomla, а не только к статьям, созданным с помощью компонента K2.

В компоненте K2 доступно большое количество параметров, которые для удобства разделены на вкладки. Чтобы перейти к их изменению - нажмите на иконку Параметры K2. Настройка параметров в K2 позволяет задать опции по умолчанию для внешнего вида, способов отображения, доступных для показа пунктов, интеграция с другими расширениями и др.

Макет и Отображение

Настройки CSS

Включение использования файла стилей, выбор версии библиотеки jQuery для сайта и выбор локальной или удаленной копии jQuery для админки.

Макет и отображение страниц пользователя (автора)

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

Опции макета и просмотра для вывода материалов по тегу

Поля, которые будут доступны на странице вывода материалов по тегу. А также определение количества в списке тегов и их сортировка.

Макет и опции отображения для страниц поиска, Тег & Дата списков

Определение количества материалов, которые будут отображаться в результатах поиска, тегов и по дате. И выбор полей, отображаемых на этих страницах (заголовок, дата, вступительный текст, RSS и т.д.)

Уникальный момент, а также полностью готовый сайт вы можете заказать после перехода по ссылке - http://zakazatsayt.kiev.ua/

Контент

RSS-каналы

Настройка ленты RSS, где выбирается количество материалов, необходимые поля для показа, если выбрано отображение вводного текста, то можно указать ограничение в количестве символов. Также здесь предусмотрена защита от спам-ботов, копирующих E-mail рассылки, для этого указывается фиктивный адрес E-mail.

Очистка содержимого

Возможность установки запрета на использование HTML-тегов во вступительном или полном текстах. При включении функции очистки вводного (полного) текста от HTML , можно указать теги (атрибуты) , доступные для показа.

Доп поля

Установка размеров (ширины/высоты) для всплывающих окон дополнительных полей.

Изображения

Общие настройки для изображений:

  • установка качества картинок
  • ширина/высота для маленького/среднего/большого изображений
  • ширина изображения случайного материала
  • ширина изображения категории
  • ширина изображения пользователя в профиле и комментариях (аватар)

Онлайн-редактор изображений

Выбор из выпадающего списка онлайн-редактора, который будет запускаться из модуля K2 Quickicons .

Расширенные настройки изображения

Можно установить дату изменения изображения в URLе картинки. То есть, если открыть изображение в новом окне, то ссылка будет содержать дату. Так же здесь можно увеличить количество памяти, затрачиваемое на обработку изображения, но делать это нужно с осторожностью.

Социум

Здесь можно вставить HTML код для социальных закладок типа - Add this и Share this . Также для персонализации кнопки Twitter нужно указать свой аккаунт.

Компонент К2 является конструктором контента (содержимого сайта), который после установки на Joomla перехватывает управление организацией материалов и фактически предоставляет собственную панель управления в качестве альтернативы админке Joomla , по крайней мере в той ее части, что отвечает за формирование контента (K2 заменяет собой встроенный в Joomla компонент com_content). И это очень удачная замена!

В принципе, некоторые возможности, предоставляемые компонентом K2, сейчас уже реализованы в новой версии Joomla 1.6(7). Но мы еще не скоро, по крайней мере, не в ближайшие 2 года, соберемся переезжать на новые версии, поскольку они еще сыроваты. Поэтому компонент K2 становится для нас неплохим вариантом.

Отличия компонента K2 от стандартного компонента Joomla

Обычно самым главным отличием считают возможность организации в K2 структуры категории неограниченной вложенности, в отличие от стандартной двухуровневой вложенности материалов в Joomla (разделы и категории). И только одно это достоинство стоит многого.

Представим все возможности компонента K2 в виде списка:

  1. Неограниченная вложенность материалов в категориях K2 (можно создавать бесконечное количество подкатегорий, чего нет в стандартном компоненте контента в Joomla, там, как мы знаем, только раздел и категории в нем, дальнейшее разветвление невозможно).
  2. В K2 интегрирована система комментирования, которая при желании может быть защищена довольно надежной капчей от Google (в Joomla изначально системы комментирования не предусмотрено, но, правда, можно установить компонент JComments, который де факто является лучшей системой комментирования для Joomla).
  3. К статьям, написанным в K2, можно добавлять теги (ключевые слова, характерные для конкретных материалов), (вы сможете использовать довольно наглядное облако тегов). Выводится облако тегов из K2 с помощью специального модуля, который, кроме облака тегов, может выводить на страницы Joomla «хлебные крошки» («глубиномер», т.е. указатель категорий, в которые погружается пользователь по мере «углубления» в структуру сайта), архив материалов, календарь в стиле блога, список категорий (меню), окно поиска и др.
  4. В компоненте K2 можно при написании статей или создании категории добавлять к ним изображения. Вроде бы ничего такого в этом нет, ибо в Joomla это тоже можно делать, но разница кроется в унификации добавляемых изображений, которые будут автоматически приводится к стандартному размеру (очень удобно при ведении авторских блогов пользователями вашего ресурса).
  5. В шаблоне для каждой статьи, написанной в админке компонента K2, будет предусмотрено место для вставки галереи изображений. Причем, галерея добавляется в статью через K2 буквально парой кликов - вам нужно будет только указать путь до zip архива с несколькими изображениями и выбрать вариант показа фотогалереи. (Это очень удобно, подобная функция вставки изображений из фотогалереи, например, PhocaGallery в материал выполняется гораздо сложнее.)
  6. Точно так же, как и в случае фотогалерей, в шаблоне для статьи, написанной посредством компонента K2, будет предусмотрено место для видеоролика. Вставить видео в статью через K2 можно будет буквально в один клик (например, для вставки ролика с YouTube будет достаточно только ввести код ролика).
  7. Еще в K2 можно прикреплять к статьям файлы для скачивания опять же в один клик при написании или редактировании материалов через панель управления компонента K2.
  8. При написании статьи через админку компонента K2 у вас будет возможность указывать или выбирать из выпадающего списка значения тех или иных дополнительных полей. Дополнительные поля в K2 задаются и настраиваются в соответствующих разделах админки K2, а затем привязывают к определенной категории материалов.

Таким образом, при написании статей вы сможете заполнять дополнительные поля, которые могут, например, понадобиться при создании каталога в Joomla на базе компонента K2 .

Так же в шаблоне статей компонента K2 предусмотрено место для вывода кнопок социальных сетей (обычно называется «Социальный обмен»), что очень удобно, ибо вам не придется прикручивать кнопки социальных сетей к сайту самостоятельно с помощью сторонних расширений или скриптов.

При использовании K2 в Joomla зарегистрированные пользователи получат возможности добавлять свои статьи, используя для этого все возможности K2 (вставка изображений, галерей, видео, файлов, прописывание дополнительных полей и т.д), модерировать комментарии (при модерировании комментариев используется AJAX), оставленные к опубликованным ими статьям, а так же заполнять странички своих профилей.

Это все, что может предоставить нам компонент K2 для расширения стандартных возможностей Joomla. Но даже эти скромные возможности K2 способны изменить внешний вид и функционал вашего Joomla-сайта настолько, что его практически трудно будет узнать.

Тот, кто установил на своем сайте К2, никогда еще не возвращался к стандартному компоненту Joomla.

Этот обзорный материал будет продолжен серией публикаций об этом компоненте.

Поддержите проект — поделитесь ссылкой, спасибо!
Читайте также
Лучшие смартфоны с большим экраном — обзор моделей Смартфон с самым большим разрешением экрана Лучшие смартфоны с большим экраном — обзор моделей Смартфон с самым большим разрешением экрана Что нового во флагманском смартфоне Sony Что нового во флагманском смартфоне Sony Сравнение HTC Sensation с Sensation XE и XL Сравнение HTC Sensation с Sensation XE и XL