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

5 мес. 2 дн. назад #8481 от founder
Wedal, благодарю за ответ :) .

В связи с полученными ответами я решил не включать в сайт все города России, а ограничиться более численными по населению.
В шапке сайта будет выпадающее меню выбора города, оно же меню основных категорий(разделов).
В каждом городе(разделе) будут категории(рубрики): 1. Строительство домов; 2. Ремонт в помещениях; 3. Монтажные работы; и т.д. Рубрики во всех городах будут одинаковые.

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

И еще один момент: при создании подряда сразу регистрировать подрядчика в многостраничной форме.. как у вас в уроках. На первой страничке если пользователь авторизован будет видеть поля добавления, а если не авторизован увидит форму авторизации и форму регистрации с предложением авторизоваться или зарегистрироваться, и после как он заполнит нужные поля(без подтверждения по емэил) нажимал далее и переходил на страницу добавления объявления как зарегистрированный. Реализуемо?

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

5 мес. 1 день назад #8482 от Wedal
founder,

В шапке сайта будет выпадающее меню выбора города, оно же меню основных категорий(разделов).

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

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

Категориями у вас будут рубрики, не города. Соответственно, контент привязывается к одной из рубрик.

То есть, чтобы выбрав город пользователь выбирал : Заказы или Подряды или Подрядчики.. а уже потом использовал рубрики, А не сначала рубрики а потом типы..

Так и будет. Пользователь сначала добавляет новый элемент в тип контента, например, Заказ. Уже в нем он выбирает и рубрику и город.
Вообще, чтобы не путаться, посмотрите, например, на Avito. Как там работает каталог.

И еще один момент: при создании подряда сразу регистрировать подрядчика в многостраничной форме.. как у вас в уроках. На первой страничке если пользователь авторизован будет видеть поля добавления, а если не авторизован увидит форму авторизации и форму регистрации с предложением авторизоваться или зарегистрироваться, и после как он заполнит нужные поля(без подтверждения по емэил) нажимал далее и переходил на страницу добавления объявления как зарегистрированный. Реализуемо?

В принципе - да, но придется попрограммировать.

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

5 мес. 1 день назад - 5 мес. 1 день назад #8483 от founder
Wedal,

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


Так я и предпологал сначала, выбор города с помощью одного из полей типов контента. Подумав тоже понял что в категориях тоже возможно, даже хотел сделать каждому городу поддомен, но решил не спешить.
Просто не могу понять как сделать чтоб выбрав город один раз пользователь мог пользоваться всеми функциями больше не вспоминая о том что нужно выбрать город.
Может быть можно сделать основную категорию, добавление в которую будет подразумевать обязательный выбор города с помощь поля " выберите город ", и все материалы и рубрики создавать в этой категории. В материалах, типах контента сделать обязательным выбор года в этом же поле " выберите город ", на сайте в этой основной(главной и единственной) категории сделать фильтр по городам не по материалам а по самой категории, так чтоб после фильтрации списка в категории и подкатегориях не осталось ни одного материала другого города, а по полям материалов(типов) сделать другой фильтр(поиск) который будет искать уже только по полям материалов которые остались после фильтрации по категории. Чтобы пока не произошла очередная фильтрация по городу категории, материалы с другим городом просто не могли появиться в списке категории. Есть в себлоде поля которыми можно такое реализовать?

Благодарю за ответы

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

5 мес. 14 ч. назад #8484 от Wedal
founder, нет. Не надо дополнительных категорий. Это более сложная задачка. Я уже писал выше, что она должна решаться или с помощью сессий или с помощью Cookie. И там и там потребуется программирование + интеграция с SEBLOD.
Если, теоретически, еще один вариант. Можно попробовать использовать функционал мультисайтовости SEBLOD для разделения каталога по городам. Так на каждый город у вас будет отдельный поддомен.

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

5 мес. 14 ч. назад #8485 от founder
Wedal,
Понял, с категориями не вариант.

Если, теоретически, еще один вариант. Можно попробовать использовать функционал мультисайтовости SEBLOD для разделения каталога по городам. Так на каждый город у вас будет отдельный поддомен.


В эту сторону я смотрел, но ничего о мультисайтовости в seblod полезного не нашел, кроме того я подумал что он и будет переносить на поддомены категории..
Может быть у вас есть какой нибуть пример или урок(туториал) на тему "SEBLOD для разделения каталога по городам"?. Отдельный поддомен на каждый город, были бы отличным решением.

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

4 мес. 4 нед. назад #8487 от Wedal
founder, у меня нет такого урока. Вы можете посмотреть некоторую информацию о настройке мультисайтов здесь: www.seblod.com/community/blog/seblod-multi-sites-showcase

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

1 мес. 1 нед. назад #8565 от Radem
Имеется: Генерация главной страницы. Структура - Ротатор (groupx - fieldsx), баннеры (groupx-fieldsx), блок с текстом(одиночные поля), вывод новостей. Выборка данных через select-dynamic, материалы из 2-х категорий (1 - категория, где хранится материал с главной страницей, 2 категория - материалы с новостями). Вывод данных через кастомный шаблон на базе seb_minima, разметка страницы в нём же. Соответственно, в views-item исключительно поля, которые передаются в шаблон. Но улетают в шаблон они в виде массива, формируемого в views-item. И получается дурная простыня, которую крайне неудобно сортировать, не говоря о том, что в каждом подмассиве приходящего массива содержатся все улетающие из views-item поля. Вот и вопрос, можно ли как-то вручную формировать подмассивы до передачи их в шаблон, что бы это приходило в менее мусорном виде? Делать разметку шаблона сразу через визуальный редактор ну очень не хочется. Вижу решение "в лоб" в виде разделения поиска по блокам (ротатор, баннеры, блок с текстом, новости) и вывод на главную через отдельные модули, но уж очень мне этот вариант не нравится (разметка размазывается по дочерним шаблонам).

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

1 мес. 1 нед. назад #8569 от Wedal
Radem, очень сложно воспринимать на словах. Покажите:
1) Пример такого массива
2) Код, которым вы его получаете
3) Опишите, что именно вы хотели бы в нем сортировать

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

1 мес. 6 дн. назад - 1 мес. 6 дн. назад #8572 от Radem
Выборка через select-dynamic:
SELECT t0.id AS pid,t0.pk AS pk,t0.pkb AS pkb,t0.parent_id AS parent,t0.author_id AS author,t0.cck AS cck,t0.storage_location AS loc,tt.id AS type_id,tt.alias AS type_alias 
FROM `#__cck_core` AS t0 
LEFT JOIN `#__content` AS t1 ON t1.id = t0.pk 
LEFT JOIN `#__cck_core_types` AS tt ON tt.name = t0.cck 
WHERE t1.state = 1 
  AND t1.access IN (1,1,5) 
  AND ( t1.publish_up = '0000-00-00 00:00:00' OR t1.publish_up <= '2017-10-16 05:01' ) 
  AND ( t1.publish_down = '0000-00-00 00:00:00' OR t1.publish_down >= '2017-10-16 05:01' ) 
  AND ((t0.cck LIKE '%mnews%') OR (t0.cck LIKE '%mainpage%')) 
ORDER BY t1.catid ASC,t0.date_time DESC 
LIMIT 25
Сразу вопросы:
1 - подстановка текущей даты в publish_up/publish_down
2 - применение order by & limit ТОЛЬКО к t0.cck LIKE '%mnews%' (в категории %mainpage% 1 материал, который в любом случае должен выводиться - т.е. limit к нему не применяется)

Далее. В views-item у меня только список полей, передаваемых в шаблон - т.е. разметки страницы/перебора массива там нету.

Соответственно, создаётся массив:
[list] => Array
	[001] => CCK_Item Object
		/*подмассив для текстового поля 1, передаваемого через views-item
		  подмассив для текстового поля 2, ...
		  подмассив для текстового поля n.
		  GroupX баннеры
		  GroupX ротатор
		*/
		...
	[00n] => CCK_Item Object
		/*подмассив для текстового поля 1, передаваемого через views-item
		  подмассив для текстового поля 2, ...
		  подмассив для текстового поля n.
		  GroupX баннеры
			элемент groupx [1]
			...	
			элемент groupx [n]
		  GroupX ротатор
			элемент groupx [1]
			...	
			элемент groupx [n]
		*/
Беда в том, что подмассивы создаются для всех элементов, передаваемых через views-item, даже если их значения пусты. Т.е. как формировать передаваемый массив до передачи его в шаблон в виде:
[list] => Array
	[001] => CCK_Item Object
		подмассив для текстового поля 1 
	[002] => CCK_Item Object
		подмассив для текстового поля n
	[003] => CCK_Item Object
		GroupX баннеры
			элемент groupx [1]
			...	
			элемент groupx [n]
	[00n] => CCK_Item Object
		GroupX ротатор
			элемент groupx [1]
			...	
			элемент groupx [n]
Понятно, что сразу напрашивается решение "в лоб" - собирать страницу через джумловские модули, но хотелось бы этого избежать.

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

1 мес. 5 дн. назад #8575 от Wedal
Radem, если массив выдает select-dynamic, то там он и формируется. Формируется по единицам контента, что вполне логично. Что вам мешает пересобрать из полученных результатов удобные для вас массивы или объект? Проходите циклом по всем элементам списка (001,002,...,00n), и раскладываете элементы так, как вам нужно, либо через прямое обращение, либо через вложенный цикл/IF.

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

1 мес. 3 дн. назад #8578 от Radem
Ещё вопрос возник - как вставить позицию модуля в шаблон себлода (тот же seb_minima)? Джумловский способ через jdoc:include приводит к ошибке.

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

1 мес. 2 дн. назад #8579 от Wedal
Radem, примерно так:
<?php
jimport( 'joomla.application.module.helper' ); // подключаем нужный класс, один раз на странице, перед первым выводом
$module = JModuleHelper::getModules('our-module'); // получаем в массив все модули из заданной позиции
$attribs['style'] = 'xhtml'; // задаём, если нужно, оболочку модулей (module chrome)
echo JModuleHelper::renderModule($module[0], $attribs); // выводим первый модуль из заданной позиции
?>
Спасибо сказали: Radem

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

4 нед. 2 дн. назад #8580 от Radem
SELECT t0.id AS pid,t0.pk AS pk,t0.pkb AS pkb,t0.parent_id AS parent,t0.author_id AS author,t0.cck AS cck,t0.storage_location AS loc,tt.id AS type_id,tt.alias AS type_alias 
FROM `#__cck_core` AS t0 
LEFT JOIN `#__content` AS t1 ON t1.id = t0.pk 
LEFT JOIN `#__cck_core_types` AS tt ON tt.name = t0.cck 
WHERE t1.state = 1 
  AND t1.access IN (1,1,5) 
  AND ( t1.publish_up = '0000-00-00 00:00:00' OR t1.publish_up <= '2017-10-16 05:01' ) 
  AND ( t1.publish_down = '0000-00-00 00:00:00' OR t1.publish_down >= '2017-10-16 05:01' ) 
  AND ((t0.cck LIKE '%mnews%') OR (t0.cck LIKE '%mainpage%')) 
ORDER BY t1.catid ASC,t0.date_time DESC 
LIMIT 25

Как в данном запросе:
1 - подставить текущую дату/время?
2 - Применение order by/limit только к t0.cck LIKE '%mnews%'

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


Вверх