Добавляем шаблоны addnews
Недавно мой хороший знакомый столкнулся с проблемой шаблонности добавления новостей. Много категорий кардинально отличающихся друг от друга по содержанию и доп полям и чтобы не путать журналистов и просто обыденных пользователей, захотевших запостить новость был создан этот хак.
Назначение: Вывод для определенных категорий - своего шаблона добавления новостей.
Версия: тест на 9.7, 9.8, думаю пойдет на всей 9 линейки.
Время установки: 2 минуты
Установка:
1.Открыть файл engine/modules/addnews.php
Найти:
$tpl->load_template( 'addnews.tpl' );
Заменить на:
$load_tpl = $_REQUEST['t'];
if ($load_tpl == "") $load_tpl = "addnews";
$tpl->load_template( 'addnews/'.$load_tpl.'.tpl' );
2. Создать папку в templates/[вашшаблон]/ с названием addnews и переместить туда файл addnews.tpl
3. Создать копию addnews.tpl и назвать ее addcoffee.tpl (или как хотите, главное соблюдать дальше аналог)
где addcoffee - название категории. (главное латиницей).
4. Открыть templates/[вашшаблон]/addnews/addcoffee.tpl
Найти и удалить:
<tr>
<td class="label">
Категория:<span class="impot">*</span>
</td>
<td>{category}</td>
</tr>
Или что то подобное, где у вас находиться тег {category}
5. Найти что то подобное (кнопка отправки):
<button name="add" class="fbutton" type="submit"><span>Отправить</span></button>
И вставить выше:
<input type="hidden" name="catlist[]" value="12"/>
где 12 - id вашей категории.
6. Открыть .htaccess.
Найти
RewriteEngine On
Ниже вставить
RewriteRule ^addcoffee.html$ index.php?do=addnews&t=addcoffee [L]
Где addcoffee (2 раза) - имя вашей категории.
Для добавления еще шаблонов - проделать все с шага #3.
Для добавления в разные места шаблонов доп. поля, выполняем следующее:
1. Открыть файл engine/inc/xfields.php
Найти:
$output = preg_replace("'\\[if-edit\\](.*?)\\[/if-edit\\]'s", (!$xfieldsadd) ? "\\1" : "", $output);
}
Заменить на
$output = preg_replace("'\\[if-edit\\](.*?)\\[/if-edit\\]'s", (!$xfieldsadd) ? "\\1" : "", $output);
$outputList["{xfieldvalue_{$fieldname}}"] = $output;
$output='';
}
$output = implode(' ',$outputList);
2. Открыть файл engine/modules/addnews.php
Найти
$tpl->set( '{xfields}', $output );
Вставить ниже
$tpl->set( '', $outputList );
В ваш новый шаблон теперь можно выводить доп поля тегом {xfieldvalue_названиеполя}
Комментариев 1