Ну вобщем по порядку:
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