Нестандартний висновок додаткових полів в к2

Для початку - якщо Ви використовуєте компонент K2 і його окремі шаблони, то потрібно скопіювати весь вміст шаблону K2 в Ваш шаблон Joomla. Таким чином, при оновленні K2 (особливо це стосується J2.5 і вище) Ви не втратите свої зміни, які Ви зробили в файлах шаблону K2.

Створюємо копію шаблону K2

Відкриваємо папку: / components / com_k2 / templates / і копіюємо її вміст в папку з вашим шаблоном (попередньо створивши папки com_k2 / templates /): / templates / імя_вашего_Joomlaшаблона / html / com_k2 / templates /
Якщо Ви будете використовувати поділ доп.полей не скрізь, то вельми корисним буде створення окремого шаблону для цих цілей. Наприклад, частина статей ми будемо виводити так, як вони і виводяться в К2 за замовчуванням (нехай шаблон так і називається default), а наш модернізований шаблон банально обзовём new. Щоб було зрозуміліше - дивимося дерево на картинці (будьте уважні - з приводу імені файлу CSS-стилю в цій папці ми пожуём нижче). У нашому прикладі ми використовуємо шаблон від компанії Yootheme - Nano3.

Нестандартний висновок додаткових полів в к2

Вміст папки default повністю копіюємо в папку new. Саме в папці new ми і буедм виробляти всі подальші маніпуляції.

Так як К2 за замовчуванням "тягне" стилі з "рідної" папки компонента (/components/com_k2/css/k2.css), вирішимо проблему наступним чином:

Надаючи базове перевизначення для item.php. ми робимо рестайлінг назви і видаляємо стиль font-family за замовчуванням, створений K2, а замість цього успадковуємо його з шаблону. У цьому випадку, ви повинні побачити зміна назва стилю.

Як це розширити?

Ви можете натиснути правою кнопкою в вашому браузері на будь-якій частині, яку ви хочете змінити, це буде оголошений клас CSS або ID і використовувані настройки, розділити нову структуру CSS в типографіку, колір і розташування, а потім просто скопіювати потрібний селектор CSS і вставити у відповідний файл CSS корекції. Внесіть зміни та збережіть.

Налаштування стилів

У item.php ми надаємо посилання на імпорт, щоб завантажити файл CSS - k2.css. Ви можете скопіювати всі CSS з файлу стилів компонента K2 - k2.css і помістити його тут. Я віддаю перевагу перевизначати тільки те, що потрібно. У k2.css ми надаємо посилання на 3 додаткових CSS просто розбитих на типографіку, розташування і кольору, ви не повинні використовувати їх, якщо ви не хочете, я розділив їх, на прохання просунутих клієнтів.

Працюємо з додатковими полями K2

Нестандартний висновок додаткових полів в к2

Тепер розберемося c вмістом папки нашого К2-шаблону.

Поділяємо додаткові поля

Відкриваємо файл /templates/названіе_шаблона/html/com_k2/templates/new/category_item.php і після рядка:

(Це практично на самому початку файлу) вставляємо наступний код:

Після цього нам необхідно видалити існуючий висновок всіх додаткових полів. Шукаємо в районі 136-го рядка код (від версії до версії номера рядків можуть змінюватися - для цього у Вас повинна бути голова на плечах і більш-менш прямі руки) і видаляємо його:

Далі нам потрібно вивести одне додаткове поле внизу intro -Текст матеріалу, це буде поле Демо. яке має унікальний ID - 1 (дізнатися ID поля можна в адміністративній панелі K2, у вкладці Доп. поля):

Нестандартний висновок додаткових полів в к2

де [1] - це і є id додаткового поля Демо. Оновлюємо сторінку на сайті і бачимо наше одне поле, яке має ідентифікатор 1. Таким же чином вставляємо інші поля в будь-якому місці шаблона K2, тільки не забудьте міняти ID при кожному новому додаванні поля в шаблон, в іншому випадку у вас вийде одне і теж поле в різних місцях шаблону:

Нестандартний висновок додаткових полів в к2

Важливе зауваження: в даний час можна використовувати аліаси доп. полів замість id, що істотно спростить навігацію в файлах К2-шаблону:

Таким чином, щасливі власники К2, починаючи з версії 2.6.1, можуть насолоджуватися ще й тим, що тепер можливий висновок назви (name) і значення (value) будь-якого додаткового поля в будь-якому місці шаблона! Ну, а ми, так би мовити, для простоти, попрацюємо поки "по-старому".
І ще одне зауваження. Як Ви вже могли помітити, у нас вивелося тільки значення додаткового поля, ім'я поля в нашому випадку не було необхідно, і ми його упустили. Якщо ж Ви хочете вивести і назва поля, і його значення - потрібно трохи змінити код, який ми додавали на початку (пам'ятаєте, після рядка заборони прямого доступу до файлу):

Індивідуальне оформлення кожного поля

Далі нам необхідно індивідуально оформити додаткову поле K2. Для цього достатньо просто обрамити наш код DIV'ом або будь-яким іншим елементом за бажанням і додати до нього CSS-клас або id для створення унікального стилю. Наприклад, зробимо так:

Після цього відкриваємо CSS файл компонента K2 (це наш файлик new_style.css) і створюємо стиль оформлення. Тут вже робіть оформлення як душа забажає. Наприклад, ось так:

Але я використовував вже готові стилі шаблон і просто прописав class = "uk-button uk-button-success", плюс додав своїх для позиціонування:

Результат отримаємо такий:

Нестандартний висновок додаткових полів в к2

ускладнюємо завдання

В "штатному" режимі додаткові поля К2 виводяться циклом, ми ж в попередньому прикладі прибрали цикл і вивели поля індивідуально. Але не запарити ми, якщо у нас два десятка полів, і нам не потрібно робити індивідуальне оформлення для кожного поля, а потрібно лише приховати одне-два поля від сторонніх? Виведемо знову циклом, виключивши непотрібні поля. Ситуація з аліасами нам не підійде однозначно. Наприклад, будемо виводити поле "оптова ціна" тільки для конкретної групи користувачів К2 (назвемо їх умовно "Оптовики"). В даному прикладі розглянемо поля "Дрібний опт" і "Великий гурт" id яких дорівнюють відповідно 19 і 20, і групу користувачів "Оптовики", id якої дорівнює 5.

Зверніть увагу: ми працюємо не з групами користувачів JOOMLA, а з групами користувачів К2. Це важливо!

Таким чином, в цьому шматку коду ми виводимо всі поля, крім незаповнених і тих, у яких id = 19 і id = 20. Тепер перевіримо, який id у користувача, і якщо він з групи "Оптовики" (тобто id групи користувачів К2 = 5) - виведемо по опісанноий раніше методикою залишилися два поля:

Дивимося готовий код:

Думаю, простота даного рішення не введе в ступор навіть мало-мальськи присвяченого в тему Джумлера. Використовуючи дану методику, можна не тільки виводити / приховувати доп. поля, а й при бажанні розміщувати їх в різному порядку, на початку і кінці статей, а також виводити в одній статті поля з різних груп.

Схожі статті