Inurl component k2 аккуратный. K2: дополнительные поля в разных местах шаблона

Компонент K2 один из популярнейших компонентов для создания блогов, журналов, каталогов созданный компанией JoomlaWorks и завоевавшем в 2010 году статус "Лучшее расширение для Joomla"
Компонент K2 на сегодняшний день установлен на тысячах сайтов в виду своего удобства и широкого функционала, который не может в полной степени обеспечить базовый компонент материалов (com_content) идущий в составе дистрибутива Joomla.
Скачать компонент K2 для Joomla 1.5 и Joomla 1.7 вы можно на официальном сайте разработчика .
Если вам нужна помощь по компоненту по поищите на Joomlaforum
Если же перед вами стоит задача сделать шаблон для компонента K2 - то мой перевод руководства по созданию шаблона компонента K2 к вашим услугам

Мультикатегории в K2

Опубликовано 23.11.2012 15:15 Автор: Сергей Вячеславович Давно искал способ для того чтобы присвоить одному материалу в K2 несколько категорий, да и чтоб при этом работа сайта не пострадала. Кажется нашел, мир не без добрых разработчиков.

Новая версия K2 и новые типы полей

Опубликовано 22.11.2012 21:21 Автор: Сергей Вячеславович K2 развивается и становится все более похожим на настоящую CCK для Joomla. На этой неделе разработчики - команда JoomlaWorks снова представила новую версию K2 - версию 2.6.2.

Новая версия компонента K2 теперь для Joomla3

Опубликовано 12.10.2012 07:56

Выход новой версии Joomla 3 стимулировал многих разработчиков к переписыванию компонентов для полной совместимости с новой версией Joomla, команда JoomlaWorks с компонентом K2 не отстает и от остальных.

Новая версия K2 - теперь с интеграцией Community Builder

Опубликовано 19.02.2012 11:42 Автор: Сергей Вячеславович
Новая версия K2.5.5, по словам разработчиков, выйдет в ближайшую неделю. Она продолжит серию улучшений этого компонента, а также обеспечит совместимость с новой Joomla 2.5.
UPDATE. K2 версия 2.5.5 для Joomla 1.5 и Joomla 2.5 вышла 7 марта 2012 года и доступна к загрузке.
Внимание Некоторые вебмастера сообщают об ошибках в новом релизе. Будьте осторожнее - делайте бэкапы перед обновлением.

От автора: приветствую Вас уважаемые читатели. Как Вы знаете в CMS Joomla для создания материала предусмотрено определенное фиксированное количество полей, которые формируют его структуру и контент. К примеру, название, текст, изображение, привязка к категории и т.д. При этом добавить дополнительные элементы, в стандартном функционале возможности нет, без внесения правок в движек, конечно. Поэтому в данной статье мы с Вами рассмотрим расширение K2 Joomla, которое представляет собой конструктор контента, для выше указанной CMS.

Как уже говорилось стандартный компонент материалов com_content, хоть и выполняет свои задачи, но все же его функционал очень ограничен, в плане расширяемости. То есть мы не можем, используя админку Joomla добавить дополнительные поля к структуре материала, при этом, я уже не говорю о более сложных вещах, к примеру, о механизме добавления комментариев. Конечно зная API Joomla, можно расширить функционал компонента com_content, добавив необходимый код, но для новичков это достаточно сложная задача. Поэтому как правило для решения различных не стандартных задач используются сторонние расширения, которые добавляют недостающий функционал в CMS.

Но что делать, если к примеру нам необходимо добавить парочку дополнительных полей в стандартный материал – систему комментариев, а также возможность вставки видео непосредственно в контент материала. Ответ прост – установить необходимые расширения, а именно компонент комментариев (сейчас не важно какой) и плагин вставки видео контента. Но что касается добавления дополнительных полей – это уже проблема, так как порой очень сложно отыскать подходящее расширение. Поэтому в данном случае наиболее удачное решение – это использование конструктора контента (Content Construction Kit или CCK), который избавит Вас от необходимости устанавливать различные дополнительные расширения (в том числе и выше перечисленные).

Content Construction Kit или CCK – это система создания пользовательских типов контента. То есть – это специальное расширение в котором предусмотрены инструменты для создания и настройки различных типов контента. При этом, как правило, тип контента формируется путем создания необходимых полей. Соответственно количество полей, которые можно привязать к материалу не ограничивается. То есть разработчик самостоятельно, используя панель администратора создает необходимые поля и привязывает их к новому типу контента, которые в будущем будут использоваться для наполнения сайта содержимым.

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

Основные возможности компонента

1. Удобная панель управления компонента.

2. Собственный менеджер категорий, поддерживающий неограниченный уровень вложенности.

3. В компонент k2 джумла встроен удобный менеджер элементов (материалов) с стандартным набором полей, которые можно дополнить собственными при необходимости.

4. Интегрированная система комментирования с встроенной защитой от спама, система голосования, а также иконки социальных сетей.

Современные тенденции и подходы в веб-разработке

Узнайте алгоритм быстрого роста с нуля в сайтостроении

5. Интегрированная система тегов (ключевых слов), которые Вы можете привязать к создаваемым элементам, по аналогии с CMS WordPress, что может быть полезно при создании блога.

6. К каждому материалу, помимо дополнительных полей, можно привязать изображение, а так же, при необходимости, галерею изображений, правда для этого необходимо установить специальный плагин.

7. Гибкая система настроек.

8. Конструктор K2 Joomla 3, так же предоставляет возможность прикрепить к создаваемому элементу произвольный файл для последующего скачивания посетителями сайта.

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

10. Добавление и редактирование материалов из пользовательской части сайта. При этом у пользователя должны быть соответствующие права.

Конечно, я перечислил только основные возможности компонента К2, на самом деле его возможности колоссальны и думаю Вы в этом сами убедитесь если будете использовать его в своих наработках. Более подробная работа с данным расширением рассмотрена в курсе . Всего Вам доброго и удачного кодирования!!!

Современные тенденции и подходы в веб-разработке

Узнайте алгоритм быстрого роста с нуля в сайтостроении

Небольшая предыстория о том, как я познакомился с этим замечательным компонентом (давно это было).

С Joomla я знаком с самого её рождения. Если точнее, то даже с её "эмбриона" - CMS-ки под названием Mambo. В те далёкие времена о конструкторах контента ещё никто и слыхом не слыхивал: для многих в диковинку было ещё само понятие "CMS" ! А если кто-нибудь и слыхал такое слово, то ассоциировал исключительно с господствовавшим в то время на этом рынке phpNuke.

И вот, когда в Джумле, помимо com_content, появились альтернативы со страшным названием "Content Construction Kit" (CCK ), я с ужасом посматривал на сие "новшество". Но вскоре мне пришлось делать каталог товаров. Порывшись в Сети в поисках решения (разумеется, страшное слово CCK я для себя считал неприемлемым), я остановился на магазине Virtuemart, который мог работать просто в режиме каталога. Но, столкнувшись с массой ненужных настроек и "фенечек", я понял, что что-то не то делаю. И тут один знакомый Джумлер/Мамбер показал каталог, который он делал с помощью ненавистного для меня конструктора контента - это был K2. И не просто показал, но и дал в админке полазить.

Я был шокирован!

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

МАМА ДОРОГАЯ! Такого количества настроек, как в этом компоненте, не было и во всей Джумле! Первым, конечно, было ощущение страха. Однако, вспомнив горький опыт с Virtuemart, я взял себя в руки и начал "копать".

Первым открытием для меня оказалось то, что можно было оформлять статьи и (или) элементы каталога независимо от общего шаблона Joomla. Второе открытие - это дополнительные поля ! Причём для каждой категории товара можно было назначить свою группу полей! Следующим новшеством, поразившим меня наповал, было неограниченная вложенность категорий , чего так сильно не хватало в com_content. На этом открытия не закончились, но уже на этом этапе я сделал вывод:

CCK - это не страшно, и даже очень полезно!

Давайте посмотрим, что об этом расширении пишут греки на официальном сайте (мой вольный перевод):

Она обеспечивает богатые формы для содержимого (дополнительные поля для статьи, изображения, видео- и фотогалереи, вложения файлов), неограниченную вложенность категорий, теги, комментарии, плагины, расширяющие возможности дополнительных полей (по аналогии с Drupal), мощный API плагинов, расширяющих возможности категорий и пользовательских форм, ACL, интерфейс редактирования, суб-шаблоны и многое другое!

Иными словами, мы получаем на выходе уникально оформленное содержимое - будь то обычная статья или элемент каталога какого-нибудь товара. Помимо этого, в базовом пакете присутствует целый комплекс модулей, расширяющих и без того широкие возможности K2: облако тэгов, меню категорий, последние добавления, популярное, поиск и другие полезные "фенечки".

Компонент K2 – достаточно сложный компонент для Joomla, благодаря которому можно значительно расширить функционал сайта, превратив его в портал с огромными возможностями. В силу того, что компонент K2 имеет действительно внушающий список настроек, то и рассказать о нем нужно подробно. Поставить на один уровень этот компонент можно будет разве что с VirtueMart (создает интернет-магазин). Для изучения K2 потребуется немало времени, но это вполне окупится теми возможностями, которые откроются после.

Компонент K2: работа с контентом

Разработчики K2 стремились создать компонент, который сможет создавать на CMS Джумла полноценные порталы, к примеру, как на Joomla или на WordPress, о чем даже говорит лозунг, размещенный на официальном сайте продукта. По мнению многих специалистов, полученный продукт превзошел все другие разработки, которые были созданные ранее.

Веб-мастера при помощи K2 могут создавать не только порталы различных тематик, но и каталоги, полноценные магазины, блоги и многое другое.

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

Вообще K2 выступает в качестве замены стандартной форме размещения контента. По факту компонент заменяет собой движок com_content, который дает пользователю возможность работать с информационной частью площадки и создавать контент благодаря использованию собственной веб-панели. Заметим, что самые новые версии Joomla уже получили часть функционала от K2, но далеко не все разработчики проявили желание обновлять свою Джумлу до последней версии. Многие так и остались сидеть на версии 1,5, и вот тут в некоторых случаях без компонента K2 точно не обойтись.

Собственно, получить его можно по URL: http://ucoz.ws/?http://joomru.com//index.php?option=com_k2&Itemid=190&id=115_d1fb3b0162f8bd73a4f657fff600e348&lang=ru&task=download&view=item
https://www.youtube.com/watch?v=GYIaS8r9T0Y
Но давайте от громких фраз перейдем к конкретике:

  • Одно из главных преимуществ K2 – возможность создания многоуровневой структуры, в то время как обычный функционал Joomla имеет двухуровневую систему – «раздел» и «категория»;
  • В К2 есть возможность организовать неплохую систему комментирования с капчей, разработанной Google. Стандартно Joomla не имеет такой возможности, но вообще этот вопрос решается при помощи компонента JComments (заметим, что он является одним из лучших вариантов для организации комментирования);
  • Компонент K2 предоставляет возможность добавлять к статьям теги по аналогии, как и в WordPress. Но помимо тегов также можно выводить архив материалов, окно поиска, список категорий, календари, хлебные крошки и т.д.;
  • После установки К2, у веб-администраторов появляется возможность создавать статьи в самой Joomla и админ-панели К2, вставляя в них нужные картинки. В принципе, ничего особенного тут нет, но есть один приятный момент: К2 может подгонять изображения под один размер, что особенно важно для авторских блогов;
  • В панели К2 можно вставлять галереи прямо в статьи, при чем всего в несколько кликов. Для показа достаточно указать путь к архиву с изображениями или фотографиями и выбрать вариант показа. К слову, в Joomla также есть возможность вставки галереи, но только при помощи установки дополнительных расширений, к примеру, как Phoca Gallery Plugin;
  • Можно также вставлять и видеоролики. Причем вставка роликов происходит значительно проще, нежели вставка изображений (достаточно скопировать код и вставить в статью);
  • Компонент K2 дает возможность вставлять ссылки для скачивания, а сделать это можно всего за пару кликов во время создания или редактирования материала;
  • Еще одним достоинством K2, является возможность установки кнопок социальных сетей. И в самой Джумле это можно сделать, но только при помощи дополнительных расширений и компонентов. При выполнении работ с K2 правда есть один не самый приятный момент – список социальных сетей ориентирован на западного пользователя, но при знании кода этот лист можно переделать под отечественного посетителя (список социальных сетей, к примеру, можно взять с популярного сервиса «Одна кнопка»);
  • В админке панели K2 можно настроить возможность заполнять дополнительные поля при создании статьи. Эти поля в свою очередь можно привязать к определённой категории, что может быть очень полезно, когда на базе компонента создается каталог. В итоге вы получите нечто похожее на карточку работы Virtue Mart;
  • При помощи компонента K2 добавляется функционал, который дает возможность размещать материалы зарегистрированным пользователям. Иными словами, будет создан портал с личными блогами юзеров. Заметим, что пользователи смогут добавлять не только свои материалы, но и пользоваться всеми остальными возможностями компонента (вставка фото и видео, заполнение дополнительных полей и т.д.). Пользователи также могут редактировать свои профили, а также выполнять модерацию комментариев.

https://www.youtube.com/watch?v=qVBRT_lHoj8
В принципе, это главные функции, которые можно реализовать при помощи K2. Установив и настроив компонент K2 можно добавить вашему сайту на Joomla значительно больше функционала, нежели при помощи стандартных методов Joomla. А для получения подобного функционала придется поставить кучу дополнений, часть из которых будет платной.

Русификация K2

Компонент разработан заграницей, поэтому его основной язык – английский, из-за чего в настройках не каждый человек будет способен разобраться. То есть для полноценной работы с K2 – необходимо его русифицировать. Русификация доступна по URL: http://getk2.org/extend/translations . Процесс установки схож с установкой самого компонента, поэтому проблем не должно возникнуть.

После завершения установки, Joomla станет полностью понятна русскоязычным пользователям (конечно, при условии, что компонент русифицировался успешно).

В завершение отметим, что разобраться в работе компонента можно и самостоятельно, стоит лишь быть максимально внимательным. А научиться придется действительно многому: заниматься импортом статей из Joomla, организовать иерархию категорий, создавать галереи, работать с админкой K2, настраивать внешний вид статей и т.д.
https://www.youtube.com/watch?v=ZBkEyoHmZqU

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

Для начала, если вы используете компонент K2 и его отдельные шаблоны то желательно скопировать все содержимое шаблонов K2 в ваш шаблон Joomla. Таким образом при обновлении 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, при этом создавая любой внешний вид (хоть кнопка, хоть картинка, все что угодно и на ваше усмотрение).

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

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