Дополнительное поле при создании фотосета
Дополнительное поле при создании фотосета
HOWTO: Для 0.5.xШаблон: new
Спасибо nickostyle за вдохновение и напутствие :)
Цель: создать дополнительное поле, в фотосет'е
- Часть I Добавление дополнительного поля при создании фотосета
- Часть II Скрытие дополнительного поля от пользователей (видеть поле могут только администраторы)
Поехали…
Часть I
В файле: templates/skin/new/actions/ActionPhotoset/add.tpl
после:
<p><label for="topic_tags">{$aLang.topic_create_tags}:</label><br />
<input type="text" id="topic_tags" name="topic_tags" value="{$_aRequest.topic_tags}" class="w100p" /><br />
<span class="form_note">{$aLang.topic_create_tags_notice}</span></p>
добавим
<p><label for="topic_photocontent">{$aLang.topic_create_photoset}:</label><br />
<input type="text" id="topic_photocontent" name="topic_photocontent" value="{$_aRequest.topic_photocontent}" class="w100p" />
В файле classes/modules/topic/entity/Topic.entity.class.php
Вставляем (в пределах класса):
public function getPhotoContent() {
$this->extractExtra();
if (isset($this->aExtra['topic_photocontent'])) {
$photocontent=$this->aExtra['topic_photocontent'];
return $photocontent;
}
return null;
}
public function setPhotoContent($data) {
$this->extractExtra();
$this->aExtra['topic_photocontent']=$data;
$this->setExtra($this->aExtra);
}
В файле: classes/actions/ActionPhotoset.class.php
после строчки
$_REQUEST['topic_main_photo']=$oTopic->getPhotosetMainPhotoId();
вставляем строчку
$_REQUEST['topic_photocontent']=$oTopic->getPhotoContent();
далее после строки (встречается два раза — примерно 469 и 615 строки)
$oTopic->setTextHash(md5($oTopic->getType().$oTopic->getText().$oTopic->getTitle()));
вставляем
$oTopic->setPhotoContent(getRequest('topic_photocontent'));
В файле templates/skin/new/topic_photoset.tpl
после:
{$oTopic->getText()}
{/if}
</div>
вставить:
<a href="{$oTopic->getsetPhotoContent()}">{$aLang.topic_create_photoset}: {$oTopic->getPhotoContent()}</a>
Осталось подправить файл templates/language/russian.php
Дописываем к /**
* Фотосет
*/
'topic_create_photoset' =>'Ссылка на файлы',
Можно так:
Все! Новое поле при создании фотосета в "вечном двигателе" готово к использованию.
Часть II
Скрываем дополнительное поле, от лаз пользователейВ файле templates/skin/new/topic_photoset.tpl
оборачиваем поле:
<a href="{$oTopic->getsetPhotoContent()}">{$aLang.topic_create_photoset}: {$oTopic->getPhotoContent()}</a>
в
{if $oUserCurrent and $oUserCurrent->isAdministrator()}
...
{/if}
bamboo method
Работа:
Создание и редактирование фотосета
Опубликованный фотосет «глазами» администратора
Опубликованный фотосет «глазами» пользователя
Таким образом, с помощью небольших манипуляций, запилили дополнительное поле в фотосете.
Спасибо за внимание.
2 комментария