0 Пользователей и 1 Гость просматривают эту тему.
  • 16 Ответов
  • 6482 Просмотров
*

Dr_Satyr

  • Осваиваюсь на форуме
  • 36
  • 4 / 0
Добрый день. Может быть кто нибудь сталкивался с подобной проблемой:

Хочу сделать доступ всем (даже не зарегистрированным) пользователям ресурса добавлять материалы в business directory, и конечно же хотелось бы что бы пользователи могли сами определить в какую из категорий отнести их фирму. Казалось бы, что проще - создавай шаблон для подачи материала, включай в него элемент "Related Categories" и радуйся. Ан нет. Оказывается, для того, что бы был доступен элемент "Related Categories" в форме Подачи материалов необходимо установить "Режим Доверия" и дать пользователю весь спектор настроек, вплоть до возможности вставлять HTML в форму, решать самому опубликовать материал или нет ну и т.п.

Очень бы хотелось дать возможность выбирать категорию самому пользователю, без всех остальных "благ". Пытался разобраться в коде приложения, но к сожалению в ООП на PHP не силён. Буду очень благодарен за совет, или за подсказку в каком месте посмотреть эти ограничения...
« Последнее редактирование: 15.04.2011, 22:56:44 от Dr_Satyr »
*

OKM

  • Захожу иногда
  • 68
  • 4 / 0
Re: Режим Доверия в "business directory" (ZOO 2.3)
« Ответ #1 : 28.02.2011, 19:12:42 »
components\com_zoo\partials\_administration.php

комментируете ненужное и включаете режим доверия
« Последнее редактирование: 28.02.2011, 19:21:00 от OKM »
*

Dr_Satyr

  • Осваиваюсь на форуме
  • 36
  • 4 / 0
Re: Режим Доверия в "business directory" (ZOO 2.3)
« Ответ #2 : 28.02.2011, 22:44:00 »
Спасибо... Это конечно же вариант... но в таком случае юзер сможет запихнуть в форму любой HTML чего очень не хотелось бы. Ну и сохранить административную часть на фронтэнде для админа тоже надо.

Покапался поглубже наткнулся на файлик components/com_zoo/controllers/submission.php. В нём функция  protected function _init(), а в функции такой код:
Код

        // get elements from positions
        $this->elements_config = array();
        foreach ($positions as $position) {
            foreach ($position as $element) {
if ($element_obj = $this->type->getElement($element->element)) {
if (!$this->submission->isInTrustedMode()) {
$metadata = $element_obj->getMetaData();
if ($metadata['trusted'] == 'true') {
continue;
}
}

$this->elements_config[$element->element] = $element;
}
            }
        }


На сколько я понимаю тут осуществляется проверка на "Защищенный режим"... но эксперименты с этим кодом не дали мне необходимого результата. Может я что-то не так понял?
*

vaa20003

  • Новичок
  • 7
  • 0 / 0
Re: Режим Доверия в "business directory" (ZOO 2.3)
« Ответ #3 : 21.03.2011, 10:39:48 »
Dr_Satyr спасибо за наводку :)
Меняешь разрешения в самих элементах. Например категории
administrator\components\com_zoo\elements\relatedcategories\relatedcategories.xml

Вторая строчка сверху, меняешь trusted="true" на trusted="false"

*

Dr_Satyr

  • Осваиваюсь на форуме
  • 36
  • 4 / 0
Re: Режим Доверия в "business directory" (ZOO 2.3)
« Ответ #4 : 21.03.2011, 23:47:18 »
О... так это ещё круче... наверное это самый безболезненный метод! Хотя в таком случае видимо не получится вынести изменения в шаблон и после апдейта все изменения затрутся, а ещё элемент relatedcategories это так называемые сопутствующие категории, а не выбор категорий ... конкретно мою проблему таким способом не решить. В принципе я уже решил задачу другим путём... изменив парочку файликов... завтра на работе напишу пост как что и где менять что бы получить требуемый результат.
« Последнее редактирование: 21.03.2011, 23:54:34 от Dr_Satyr »
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
Re: Режим Доверия в "business directory" (ZOO 2.3)
« Ответ #5 : 07.04.2011, 16:46:22 »
... завтра на работе напишу пост как что и где менять что бы получить требуемый результат.
А не трудно выложить инфу, что, где, как?
*

Dr_Satyr

  • Осваиваюсь на форуме
  • 36
  • 4 / 0
Re: Режим Доверия в "business directory" (ZOO 2.3)
« Ответ #6 : 08.04.2011, 00:38:33 »
Ну вобщем по порядку:

1) Выключаем проверку на "Режим Доверия" в форме отпарвки контента
ищем файлик /components/com_zoo/partials/_submission.php

В нём коментируем строки 39 и 41 вот так:
Код
//if ($this->submission->isInTrustedMode()) {
echo $this->partial('administration');
//}
Чего мы этим добились: Убрали проверку на "Режим доверия" при выводе формы отправки контента. Таким образом теперь каждый юзер увидит "административные" поля.

2) Выключаем ненужные административные поля в форме отправки контента (п.с. я оставил только выбор категорий)
ищем файлик /components/com_zoo/partials/_administration.php

В нем находим конструкции такого вида

Код
<div class="element">
<strong><?php echo JText::_('Categories'); ?></strong>
<div><?php echo JHTML::_('zoo.categorylist', $this->application, array(), 'categories[]', 'size="15" multiple="multiple"', 'value', 'text', $this->form->getTaintedValue('categories')); ?></div>
<?php if ($this->form->hasError('categories')) : ?><div class="error-message"><?php echo $this->form->getError('categories'); ?></div><?php endif; ?>
</div>

Как видно из "JText::_('Categories')" этот Div показывает нам список категорий.
Проанализировав нужные и ненужные блоки в этом фале можете оставить только то что вам необходимо

Чего мы добились в этом пункте: Теперь мы можем выводить только нужные нам поля из "Режима Доверия"

3) Теперь надо научить ZOO сохранять нужные нам поля в базе данных, так как по умолчанию и при сохранении идёт проверка на Режим Доверия. Рассмотрим на моём примере сохранение выбранных категорий (остальыне поля будут по аналогии)

Ищем файлик components/com_zoo/controllers/submission.php

В нём исправим функцию submission():

на строке 314 вставляем следующий код (если внимательно посмотреть то этот код встречается ниже в условии которое проверяет Режим Доверия - if ($this->submission->isInTrustedMode()) и код этот создаёт массив из выбранных категорий в форме подачи материала)              
Код
// set categories
$tmp_categories = $form->getValue('categories');
if (!empty($tmp_categories)) {
foreach ($form->getValue('categories') as $category) {
$categories[] = $category;
}
}
Дальше смотрим на строки 375-378 (номера строкк из оригинального файла без учёта предыдущих изменений, соответственно если изменения были уже внесены то этот код будет чуть ниже)
Код
if (!$edit || $this->submission->isInTrustedMode()) {
CategoryHelper::saveCategoryItemRelations($this->item->id, $categories);
}
Видим очередную проверку на Режим доверия. можем закоментирвоать првоерку либо поставить строку  "CategoryHelper::saveCategoryItemRelations($this->item->id, $categories);" перед проверкой
так:
Код
//if (!$edit || $this->submission->isInTrustedMode()) {
CategoryHelper::saveCategoryItemRelations($this->item->id, $categories);
//}
или так:
Код
CategoryHelper::saveCategoryItemRelations($this->item->id, $categories);

if (!$edit || $this->submission->isInTrustedMode()) {
CategoryHelper::saveCategoryItemRelations($this->item->id, $categories);
}

Всё. Готово. Рабочий вариант можно увидеть тут: http://all-zhodino.biz
« Последнее редактирование: 08.04.2011, 00:41:43 от Dr_Satyr »
*

M-BOY

  • Захожу иногда
  • 60
  • 2 / 0
Я делал все в точности по шагам, но административные поля у меня появляются только после того, как залогинюсь! В чем подвох?! :o
*

Dr_Satyr

  • Осваиваюсь на форуме
  • 36
  • 4 / 0
Я делал все в точности по шагам, но административные поля у меня появляются только после того, как залогинюсь! В чем подвох?! :o
Скорее всего у вас в настройках самого ZOO включен режим доверия. Все описанные действия нужны были для включения административных полей именно в вне режима доверия. Когда режим доверия включен, административные поля доступны только залогиненым юзерам, в этом его суть.
*

M-BOY

  • Захожу иногда
  • 60
  • 2 / 0
Так а где в компоненте его мона выключить? Просто пробовал на разных версиях ZOO - 2.3 и 2.4! Режим доверия не включаю, а результат один - админ полей не видать.
*

M-BOY

  • Захожу иногда
  • 60
  • 2 / 0
Прошу прощения, Оказался не внимательным дураком :laugh: Просто в первом пункте я комментировал ВСЁ, включая строку с выводом админ полей! Поэтому поля и не выводились.
Спасибо от себя лично, лови заслуженный +
*

M-BOY

  • Захожу иногда
  • 60
  • 2 / 0
При редактировании item-ов в разделе my-submissions(во фронтенде), выбор+сохранение категории не работает! И как можно сделать выбор категорий в submission - обязательным условием?
« Последнее редактирование: 20.09.2011, 21:42:23 от M-BOY »
*

pavel_28121

  • Захожу иногда
  • 266
  • 29 / 0
  • Cart for ZOO, Watermark for ZOO, Price fo ZOO
Ну раз убираете режим доверия, то уж убирайте его везде.

Проблема с тем, что для нового итема условие (!edit) все работает, а для старого (edit) ничего не сохраняется? т.к. массив категорий пуст.

Задайте его и все заработает.

Если что, пишите - помогу.

Вкусности для зуу на zooapps.ru
Расширения для Yootheme ZOO http://zooapps.ru, а также профессиональная помощь по Yootheme ZOO. Расширения для ZOO на заказ. ZooCart, ZooWatermark, ZooPrice.
*

M-BOY

  • Захожу иногда
  • 60
  • 2 / 0
Спасибо Павлу! помогает быстро и качественно! +
*

enerbe

  • Новичок
  • 7
  • 0 / 0
Здравствуйте. А можно ли сделать так, чтобы список категорий/подкатегорий выводился не просто древовидно, но и с возможностью сворачивания/разворачивания пунктов (как здесь например htt://web.artlebedev.ru/tools/technogrette/html/treeview).
*

barvik

  • Новичок
  • 7
  • 1 / 0
никто не пробовал делать под 2.5?
выложите хак, если есть
*

xavier13

  • Новичок
  • 7
  • 0 / 0
Как быть с версией 3.3. Приведенную инструкцию невозможно использовать засчет изменения структуры и кода файлов. очень нужно сделать возможность выбора и сохранения категории для подаваемого материала
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Превью в виде картинки с youtube для элемента MEDIA

Автор likrion

Ответов: 4
Просмотров: 2884
Последний ответ 13.10.2016, 07:02:34
от Театрал
[Решено] Как упорядочить приложения zoo во вкладках?

Автор aniangeless

Ответов: 2
Просмотров: 823
Последний ответ 24.03.2015, 17:27:01
от aniangeless
Адаптация ZOO 2.0 - Business к русскому языку

Автор denkog

Ответов: 65
Просмотров: 26784
Последний ответ 22.01.2015, 07:52:57
от stenli
[App Business Catalog]: Показ пустых категорий. Hack.

Автор userxp

Ответов: 13
Просмотров: 6180
Последний ответ 13.01.2014, 10:54:59
от мираж
[Решено] ZOO 3 Нужно комментарии в элементе

Автор rk3dnp

Ответов: 2
Просмотров: 679
Последний ответ 25.12.2013, 13:07:23
от rk3dnp