Куда идем?

Себлод - вопросы и решения

Больше
9 года 3 мес. назад #7500 от hush
Wedal, добрый вечер

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

летсго, как говорится!

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 3 мес. назад - 9 года 3 мес. назад #7501 от hush
hush ответил в теме Себлод - вопросы и решения
РЕШЕНИЕ
Oops! Template not found..

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

Т.е., например, нажали Admin Form, Seblod подгружает поля, а в этот момент вы нажимаете Site Form, тем самым не даете ему завершить корректно операцию. Здесь спешить не нужно. Решением проблемы является повторное открытие и повторное сохранение закладок форм.

(решение нашел в инете - проверил - работает)
Последнее редактирование: 9 года 3 мес. назад пользователем hush.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 3 мес. назад #7502 от hush
hush ответил в теме Себлод - вопросы и решения
ЗАДАЧА

итак - расписание на сайте...

1) сделал два form content &types:
  • первая форма - добавить мероприятие
  • вторая - добавить ведущего
  • в первой форме есть выпадающий список ведущих (из формы 2)

2) сделал LIST SEARCH TYPES, который выводит мероприятия, сделанные в форме 1

ЗАДАЧА:
как сделать так, чтобы при показе мероприятия в LIST SEARCH TYPES автоматически добавлялась не только ссылка на ведущего, но и другие поля из формы 2 (описание, фото и т.п.)?

надеюсь понятно объяснил))

спасибо

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 3 мес. назад #7503 от Wedal
Wedal ответил в теме Себлод - вопросы и решения
hush, следует начать немного с другого. Не говорите "формы", говорите "типы контента". Тип контента - это как материалы Joomla или категории Joomla. Каждый тип имеет форму на фронтенде и в админке, а также макет отображения материала, созданного по заполненной форме. Каждый тип контента сохраняет данные в базе данных.

Первым делом неплохо было бы определиться, какие типы контента вам требуются. Скорее всего пока их 2: мероприятия и ведущие.

Если вам нужно показать в отображении мероприятия уже существующие(!) данные ведущего, то потребуется использовать еще один тип поиска, чтобы этого ведущего найти, ведь в типе контента "Мероприятие" есть только ID этого ведущего. Т.е. задача сводится к тому, чтобы показать в описании материала, например, данные автора, который этот материал написал.

Как это можно сделать? Показать на странице мероприятия модуль, который будет отображать результаты поиска автора. Но чтобы поиск работал, нужно передать в него данные из Мероприятия(ID ведущего). По умолчанию SEBLOD это не умеет. Есть 2 варианта:
1) Использовать www.seblod.com/products/2311 - платный плагин, который стоит 10 евро и создан именно для этой цели.
2) В макете отображения материала выполнить SQL-запрос к базе данных, передав в него ID автора, который у нас уже есть, и получить все нужные данные о нем, а дальше вывести их красиво здесь же.

Первый способ требует небольших денег, а второй небольших знаний.
Спасибо сказали: hush

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 3 мес. назад #7504 от hush
hush ответил в теме Себлод - вопросы и решения

Wedal пишет: hush, следует начать немного с другого. Не говорите "формы", говорите "типы контента". Тип контента - это как материалы Joomla или категории Joomla. Каждый тип имеет форму на фронтенде и в админке, а также макет отображения материала, созданного по заполненной форме. Каждый тип контента сохраняет данные в базе данных.

Первым делом неплохо было бы определиться, какие типы контента вам требуются. Скорее всего пока их 2: мероприятия и ведущие.

Если вам нужно показать в отображении мероприятия уже существующие(!) данные ведущего, то потребуется использовать еще один тип поиска, чтобы этого ведущего найти, ведь в типе контента "Мероприятие" есть только ID этого ведущего. Т.е. задача сводится к тому, чтобы показать в описании материала, например, данные автора, который этот материал написал.

Как это можно сделать? Показать на странице мероприятия модуль, который будет отображать результаты поиска автора. Но чтобы поиск работал, нужно передать в него данные из Мероприятия(ID ведущего). По умолчанию SEBLOD это не умеет. Есть 2 варианта:
1) Использовать www.seblod.com/products/2311 - платный плагин, который стоит 10 евро и создан именно для этой цели.
2) В макете отображения материала выполнить SQL-запрос к базе данных, передав в него ID автора, который у нас уже есть, и получить все нужные данные о нем, а дальше вывести их красиво здесь же.

Первый способ требует небольших денег, а второй небольших знаний.




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

по поводу реализации: не хочется платить за готовое решение - мне нужно понимать, как это работает, коли взялся изучать.
Поэтому вопрос-предложение: я готов заплатить эти 10 евро, если подскажете, как выполнить пункт 2 (В макете отображения материала выполнить SQL-запрос к базе данных, передав в него ID автора, который у нас уже есть, и получить все нужные данные о нем, а дальше вывести их красиво здесь же.)

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 3 мес. назад #7506 от Wedal
Wedal ответил в теме Себлод - вопросы и решения
hush, посмотрите эту статью: wedal.ru/rasshireniya-joomla/seblod-konstruktor-kontenta-cck-dlya-joomla-chast-11-znakomstvo-s-shablonami-seblod.html
Вам нужны "Переопределения". В статье есть ссылка на переведенную документацию по ним. Познакомьтесь подробно. Это очень мощный инструмент, позволяющий создавать любые макеты страниц, какие только возможно.

Теперь о том, как вывести в макете значения полей(пример из той же документации):

Поле со всеми настройками:
echo $cck->renderField('имя_поля');

Только значение поля:
echo $cck->get('имя_поля')->value;

Название опции поля (например, для Select simple, checkbox):
echo $cck->get('имя_поля')->text;

Ссылка, которая установлена в настройках поля (путь):
echo $cck->get('имя_поля')->link;

Лейбл поля:
echo $cck->get('имя_поля')->label;

Описание поля:
echo $cck->get('имя_поля')->description;


Для вашей задачи нужно использовать:
echo $cck->get('имя_поля')->value;
подставляя имя поля выбора ведущего, которое в данном типе контента у вас есть. Таким образом вы получаете в макете значение ID ведущего.

Далее в этом же макете выполняется SQL-запрос по стандартам Joomla. Вот подробное описание на оф. сайте:
docs.joomla.org/Selecting_data_using_JDatabase

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

Платный плагин делает примерно это же, только вместо SQL-запроса создается отдельный тип поиска.
Спасибо сказали: hush

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 3 мес. назад #7507 от hush
hush ответил в теме Себлод - вопросы и решения
Спасибо за ответ и статью!

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 3 мес. назад #7509 от hush
hush ответил в теме Себлод - вопросы и решения
Wedal, добрый день

вопросов стало еще больше.

попробую зайти с другой стороны:
у меня есть два типа контента - события и ведущие. В типе контента СОБЫТИЯ есть поле ВЫБРАТЬ ВЕДУЩЕГО. Оно должно забирать поля определенного ведущего из типа контента СОБЫТИЯ. Верно?

Тип поля ВЫБРАТЬ ВЕДУЩЕГО - Article (Related) (как на картинке)




теперь вопрос:
куда вставлять эту конструкцию echo $cck->get('имя_поля')->value; ?
В это поле? или я все неправильно понял?

Вложения:

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 3 мес. назад - 9 года 3 мес. назад #7511 от Wedal
Wedal ответил в теме Себлод - вопросы и решения
hush, все верно, только поле ВЫБРАТЬ ВЕДУЩЕГО должно забирать данные из типа контента ВЕДУЩИЕ. А если говорить точнее, не забирать данные, а выбирать один из материалов. Поле Article (Related) для этого отлично подходит. Вот здесь есть видеоурок по созданию связи двух типов контента через это поле: jamesmorrell.com/content-relationships
Далее нужно еще посмотреть, какие вообще данные передаются из него. Быть может SQL-запрос и не потребуется.

По echo $cck->get('имя_поля')->value; вы не поняли. Это делается уже в макете отображения вашего события. Этот макет должен быть переопределен в используемый шаблон Joomla, примерно также, как вы бы делали это с макетами Joomla. Почему пишу "примерно"? Поскольку отличия все-таки есть и они описаны по ссылкам, которые давал выше.

Да, еще забыл написать одну очень важную вещь. Если вы собираетесь подробно вникать в SEBLOD и макеты, настоятельно рекомендую установить и использовать шаблон контента seb_minima . Он не входит в основной SEBLOD и должен быть установлен отдельно. Он бесплатен. Суть этого шаблона в том, чтобы заменить все позиции в макете на одну(или несколько, просто идущих друг под другом), чтобы вы могли создать всё так, как хотите вы, а не как создано в шаблоне seb_one. Т.е. по-сути, это пустой шаблон макета SEBLOD, в котором вы можете выводить поля с помощью echo $cck->get('имя_поля')->value;. Наверное окончательно вас запутал :)

Вот порядок действий:
1) Устанавливаете шаблон seb_minima через менеджер расширений Joomla.
2) В настройках типов контента СОБЫТИЯ и ВЫБРАТЬ ВЕДУЩЕГО ставите этот шаблон по умолчанию для вкладок Form и Content
3) Переопределяете макет Content типа контента СОБЫТИЯ в шаблон seb_minima. Как это сделать описано по ссылкам выше.
4) Открываете переопределенный макет на редактирование и добавляете в него:
Code:
<?php echo $cck->get('имя_поля')->value; ?>
заменяя имя_поля на ваше.
5) Просматриваете событие. Если все сделано правильно, вы увидите выведенное значение поля.
6) Используя пункты 1-5, верстаете ваш макет, как душе угодно.

Дополнительно. Если пункты 1-5 получились, используйте конструкцию:
Code:
<pre><?php print_r($cck) ?></pre>
чтобы увидеть все данные
Там посмотрите, что передалось от ВЕДУЩЕГО. Как минимум, будет ID, что достаточно для составления SQL-запроса. Как максимум, будет все вам необходимое.
Последнее редактирование: 9 года 3 мес. назад пользователем Wedal.
Спасибо сказали: hush

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 3 мес. назад - 9 года 3 мес. назад #7519 от hush
hush ответил в теме Себлод - вопросы и решения
Wedal, большое спасибо за развернутые ответы! - появились новые вопросы))

1) Устанавливаете шаблон seb_minima через менеджер расширений Joomla.
2) В настройках типов контента СОБЫТИЯ и ВЫБРАТЬ ВЕДУЩЕГО ставите этот шаблон по умолчанию для вкладок Form и Content
3) Переопределяете макет Content типа контента СОБЫТИЯ в используемый шаблон Joomla. Как это сделать описано по ссылкам выше.


миниму установил и в настройках типов контентов ДОБАВИТЬ СОБЫТИЕ и ДОБАВИТЬ ВЕДУЩЕГО поставил его по умолчанию для вкладок admin form, site form, content - это вроде понятно


дальше - переодпределение.
вопрос 1:

Переопределяете макет Content типа контента СОБЫТИЯ


в статье про переопределения с себлод-про написано, что сначала нужно создать систему папок в папке positions:
positions
-type_content
--admin
--content
--intro
--site

где вместо type_content нужно прописать название название соответствующего типа контента. Если это я понял правильно, то какое название писать? Алиас?

вот как выглядят типы контента в менеджере TYPE-CONTENT (по названиям - ДОБАВИТЬ МЕРОПРИЯТИЕ = СОБЫТИЕ(переименовал))


вот как в менеджере шаблонов:



а вот структура папок, которую я сделал - все ли верно?


после добавить php-файлы для позиции MAINBODY во все папки (admin, content, intro, site)



на этом мозг остановился

Переопределяете макет Content типа контента СОБЫТИЯ в используемый шаблон Joomla.

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

И вот что дальше - сделал систему папок, добавил php файлы - и это все переопределение? (если честно - пока не понимаю, зачем таки они нужны, эти переопределения, ну...)

И если переопределения - просто добавить-убрать позицию - не проще ли сделать это через templateDetails.xml?
добавил там позицию - она сразу появилась в шаблоне при редактировании типа контента (проверил)
Вложения:
Последнее редактирование: 9 года 3 мес. назад пользователем hush.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 3 мес. назад - 9 года 3 мес. назад #7520 от Wedal
Wedal ответил в теме Себлод - вопросы и решения
hush, вы запутались, поскольку я неправильно написал. Нужно переопределять макеты SEBLOD не в используемый шаблон Joomla, а в шаблон, который используется в типе контента, т.е., в вашем случае, в seb_minima. В сообщении выше это поправил, чтобы другие люди не путались.

Зачем мы все это делаем?
Смысл в том, чтобы получить этот самый чистый файл mainbody.php, который показан на последней картинке в сообщении выше. Это и есть ваш переопределенный макет. В нем вы можете строить любую html-структуру и с помощью php-вставок echo $cck->get('имя_поля')->value; выводить значения полей.

Можно было бы и не заморачиваться всеми этими переопределениями, а использовать стандартный seb_one, но для веб-мастера это не очень удобно, поскольку этот шаблон содержит много лишних позиций и генерирует большой код, а также не позволяет создать точную html-структуру, которая вам требуется, не говоря уже про выполнение SQL-запросов.

Теперь важная мысль. В данном случае на сайте одновременно используются 2 шаблона: шаблон Joomla и шаблон SEBLOD. Шаблон Joomla формирует общее отображение сайта, а шаблон SEBLOD формирует отображение компонента контента, т.е. является аналогией макета article из com_content.

В остальном, судя по описанию, вы все сделали правильно.
Последнее редактирование: 9 года 3 мес. назад пользователем Wedal.
Спасибо сказали: hush

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 3 мес. назад - 9 года 3 мес. назад #7521 от hush
hush ответил в теме Себлод - вопросы и решения
wedal,
с переопределенным макетом вроде разобрался - подставляю значения полей - работает

1 =========================
файл mainbody.php типа контента ДОБАВИТЬ МЕРОПРИЯТИЕ (content)
<?php
// No Direct Access
defined( '_JEXEC' ) or die;


все ок:
echo $cck->get('datebegin')->text;
echo $cck->get('datebegin')->value; - вывод начала мероприятия

echo $cck->get('dateend')->text;
echo $cck->get('dateend')->value; - вывод окончания мероприятия



не работает
echo $cck->get('photogl')->value; - должно выводиться значение поля ФОТО (собственно - фото) из типа контента ВЕДУЩИЕ
echo $cck->get('grouplider')->value; - должно выводиться значение поля ИМЯ (собственно - имя вещуего) из типа контента ВЕДУЩИЕ

?>

2 ========================

Дополнительно. Если пункты 1-5 получились, используйте конструкцию:
<pre><?php print_r($cck) ?></pre>


Вывел <?php print_r($cck) ?> - появилась вот такая портянка:
19-Нояб-20152015-11-19 14:45:0027-Нояб-20152015-11-27 14:45:00Саратов CCK_Rendering Object ( [me:CCK_Rendering:private] => Array ( [sity] => stdClass Object ( [id] => 558 [title] => Город [name] => sity [folder] => 1 [type] => select_simple [description] => [published] => 1 [label] => Город [selectlabel] => Выберите город [display] => 3 [required] => [validation] => [defaultvalue] => [options] => Москва||Санкт-Петербург||Киров||Саратов||Нижний Новгород [options2] => {"options":[]} [minlength] => 0 [maxlength] => 255 => 32 [cols] => 0 [rows] => 0 [ordering] => 0 [sorting] => 0 [divider] => , [bool] => 0 [location] => [extended] => [style] => [script] => [bool2] => 0 [bool3] => 0 [bool4] => 0 [bool5] => 0 [bool6] => 0 [bool7] => 0 [bool8] => 1 [css] => [attributes] => [storage] => standard [storage_cck] => gruppa [storage_location] => joomla_article [storage_table] => #__cck_store_form_gruppa [storage_field] => sity [storage_field2] => [storage_params] => [storages] => [checked_out] => 404 [checked_out_time] => 2015-11-16 10:14:44 [label2] => [variation] => [link] => [link_options] => [markup] => [markup_class] => [typo] => [typo_label] => 0 [typo_options] => [access] => 1 [restriction] => [restriction_options] => [position] => mainbody [typo_target] => text [linked] => [state] => 1 [text] => Саратов [value] => Саратов ) [datebegin] => stdClass Object ( [id] => 544 [title] => Начало [name] => datebegin [folder] => 1 [type] => calendar [description] => [published] => 1 [label] => Начало [selectlabel] => [display] => 3 [required] => [validation] => [defaultvalue] => [options] => [options2] => {"format":"d-M-

и т.п.

На что нужно смотреть? (алиасов фото и имени ведущих в этой портянке не нашел)

3 ========================

Для вашей задачи нужно использовать:
echo $cck->get('имя_поля')->value;
подставляя имя поля выбора ведущего, которое в данном типе контента у вас есть. Таким образом вы получаете в макете значение ID ведущего.

Далее в этом же макете выполняется SQL-запрос по стандартам Joomla. Вот подробное описание на оф. сайте:
docs.joomla.org/Selecting_data_using_JDatabase

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


Полез смотреть как делать запрос и на этом мыслительный процесс в очередной раз заглох))) никогда не выполнял sql-запросы - что можно почитать по этой теме (желательно на русском)

п.с. - нашел вот такое решение — это то, что нужно (в примере - как получить заголовок статьи)?
Получаем единичное значение из базы
Иногда нужно просто получить одно значение из базы.
//1. Создадим экземпляр класса
$db =& JFactory::getDBO();

//2. Создадим запрос к базе данных, в данном случае мы выбираем первую статью
$query='SELECT title FROM jos_content ORDER BY id ASC LIMIT 1 ';

//3. Установим этот запрос в экземпляр класса работы с базами данных
$db->setQuery($query);

//4. Выполним запрос и получим данные
$datavalue = $db->loadResult();

//5. Посмотрим что нам вернул этот метод, это должна быть строка с заголовком первой статьи.
print_r($datavalue);


спасибо!
Последнее редактирование: 9 года 3 мес. назад пользователем hush.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 3 мес. назад - 9 года 2 мес. назад #7522 от Wedal
Wedal ответил в теме Себлод - вопросы и решения
hush,

1) Не работает для типа контента ВЕДУЩИЕ, т.к. это макет типа контента МЕРОПРИЯТИЯ. Здесь все верно. Единственное, что советую проверить, так это то, что выводится в поле выбора ведущего. Проверить можно вот так:
Code:
<pre><?php print_r($cck->get('название_поля_выбора ведущего')) ?></pre>

2) Видите портянку, т.к. не обернули вывод в теги pre, как я вам писал. Как обернете, все выстроится ровно и можно будет разобрать что там к чему. Все данные, которые вы увидите, могут быть выведены в текущем макете.

3) Если вы никогда не выполняли SQL-запросы в принципе, то нужно сначала познакомиться с языком SQL. Основы там элементарные, пока дело не дойдет до JOIN. С этом сложнее, но можно один раз разобраться и получить очень мощный инструмент. Потренироваться в выполнении SQL-запросов можно в PhpMyAdmin, но делать это нужно либо на тестовой БД, либо на БД, для которой имеется резервная копия(чтобы все восстановить, если потребуется).

Что касается выполнения SQL-запросов в Joomla, то пример, который вы привели, работает, но данный подход устарел и небезопасен, поскольку не содержит фильтрацию передаваемых данных. Если говорить простым языком, то вы можете (и для вашей задачи это вам потребуется) передать в запрос переменную из макета (ID ведущего). Если на эту переменную может повлиять посетитель сайта (например, она передается в URL), то злоумышленник может заменить ID на спец. символы, содержащие кавычки, изменив, таким образом, ваш SQL-запрос на другой, и получив из БД данные, доступ к которым ограничен, например, список пользователей с хэшами паролей. Это называется SQL-инъекция.

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

Вам, в любом случае, советую выполнить запрос именно так, как вы описали, а затем уже переделать его в правильный формат, ссылку на который я давал в прошлых сообщениях. Там отличие только в том, как формируется запрос. Правильный подход:
Code:
$query->select($db->quoteName(array('user_id', 'profile_key', 'profile_value', 'ordering'))); $query->from($db->quoteName('#__user_profiles')); $query->where($db->quoteName('profile_key') . ' LIKE '. $db->quote('\'custom.%\'')); $query->order('ordering ASC');
Последнее редактирование: 9 года 2 мес. назад пользователем Wedal.
Спасибо сказали: hush

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 2 мес. назад - 9 года 2 мес. назад #7526 от hush
hush ответил в теме Себлод - вопросы и решения
Wedal,
немного в сторону:

на описание мероприятия поставил редактор (wysiwyg) - после сохранения введеный текст (описание) сбрасывается и появляется ::cck::70::/cck:: (там же, в редакторе)
в чем может быть причина?


=====================
конструкция <pre><?php print_r($cck->get('название_поля_выбора ведущего') ?></pre> не работает - выводит - ошибка сервера

Видите портянку, т.к. не обернули вывод в теги pre, как я вам писал.

- получилось
Последнее редактирование: 9 года 2 мес. назад пользователем hush.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 2 мес. назад - 9 года 2 мес. назад #7527 от hush
hush ответил в теме Себлод - вопросы и решения
Вот кстати видео, в котором рассматривается вариант с подстановкой живых значение (собственно, весь предыдущий текст об этом - может пригодится), но с плагином SD Live CCK Field (который упоминался ранее)

Последнее редактирование: 9 года 2 мес. назад пользователем hush.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
9 года 2 мес. назад #7529 от Wedal
Wedal ответил в теме Себлод - вопросы и решения
hush,

на описание мероприятия поставил редактор (wysiwyg) - после сохранения введеный текст (описание) сбрасывается и появляется ::cck::70::/cck:: (там же, в редакторе)
в чем может быть причина?

Вероятно в хранилище данных. Оно должно быть Standart. Почитайте эту статью: wedal.ru/rasshireniya-joomla/seblod-konstruktor-kontenta-cck-dlya-joomla-chast-6-khranilishcha-dannykh.html

конструкция <pre><?php print_r($cck->get('название_поля_выбора ведущего') ?></pre> не работает - выводит - ошибка сервера

Не хватает одной закрывающей скобки в конце.
Спасибо сказали: hush

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
8 года 10 мес. назад #7686 от spro1
spro1 ответил в теме Себлод - вопросы и решения
Всем доброго дня!
Виталий, когда-то давным давно я начал читать статьи про себлод на вашем сайте, очень хотелось научиться, но не было задач и вот появились! нужно сделать достаточно простой каталог услуг
будут категории и подкатегории
на начальной странице каталога нужно показать список категорий(возможно с подкатегориями), по возможности вывести список услуг из всех категорий
при просмотре категории услуги должны выводиться в виде таблицы построчно либо в две колонки - основная картинка и краткое описание
в самой услуге основное фото, дополнительные фото и текстовое описание

разбираюсь уже второй день, перечитал ваши статьи и еще статьи на других сайтах, но так пока ничего и не получилось(((

можете кратко описать последовательность действий? Или может есть видеоурок по созданию простого каталога на seblod'e?

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
8 года 10 мес. назад #7687 от Wedal
Wedal ответил в теме Себлод - вопросы и решения
spro1, под вашу задачу будет достаточно и стандартных средств Joomla. Сейчас Joomla имеет в настройках материала поля вводного и основного изображения. Вы можете использовать материалы Joomla из определенной категории и ее подкатегорий, как услуги, выводить их списком, блогом или через последние новости, а гибкость макетов Joomla позволит вам оформить страницы как угодно - главное, понимать как работает html, css и немного php.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
8 года 8 мес. назад #7813 от Radem
Radem ответил в теме Себлод - вопросы и решения
Добрый день, Wedal. Возникла такая задача. Есть страница с каталогом. на неё, в идеале, должна производиться выдача такого вида:

Название категории 1
Материал 1
Материал 2
...
Материал Х

Название категории 2
Материал 1
Материал 2
...
Материал Х

Если с выводом и оформлением материалов проблем нет, то вот как сделать вывод названия категории для ГРУППЫ материалов, а не для каждого, ума не приложу.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
8 года 8 мес. назад #7816 от Wedal
Wedal ответил в теме Себлод - вопросы и решения
Radem, была у меня недавно похожая задача. Думал над ней. В итоге решил совсем отказаться от подобного подхода. Не очень хороший он. Ну а если делать, то нужно создавать свой шаблон SEBLOD -List и делать в нем рендеринг под задачу. Вариантов, как это сделать проще, я не видел. Можно, конечно, сделать просто вывод категорий списком, и в каждую из них добавить поле, которое будет вытягивать из базы список материалов это категории, но это плохой, с точки зрения нагрузки, подход. Так делать не надо.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
8 года 8 мес. назад - 8 года 8 мес. назад #7818 от Radem
Radem ответил в теме Себлод - вопросы и решения
Я тоже пришёл к варианту с своим шаблоном. Получать id категории и название из $cck и загонять в foreach. Но вот на этапе потрошения массива и появились проблемы. Не понимаю, как из него вычленить нужные данные. Да, я понимаю, что есть масса решений "в лоб" - да тот же list & search через модули, и просто скрывать их для дочерних материалов, но это всё костыли.

И вот ещё интересный момент. Использую bootstrap, поэтому разметкой себлода не пользуюсь. На странице вывода отдельного материала получилось вырезать все лишние div, кроме 1-го (вида <div id="cck63_mainbody" class="cck-pos-mainbody seb_css3 vertical cck63-deepest">). И вот где его искать - без понятия.

Ещё забавная задача. Как вывести слайдер в виде модуля понятно, но как можно собрать слайдер сразу в материале, через конструктор контента (что бы органично встроить в макет страницы)?

И попутно маленький вопрос по fieldx. Создаю новое поле для изображения(media, место хранения:none), цепляю его через fieldx (custom-article-introtext[поле]). При создании контента, указываю первое изображение, а при попытке подцепить 2-ое, медиа менеджер раскрывается на весь экран, и не даёт вставить изображение. При попытке сохранить 1 картинку, ничего не происходит(содержимое просто сбрасывается.).
Последнее редактирование: 8 года 8 мес. назад пользователем Radem.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.