Дополнительное поле при создании фотосета

Дополнительное поле при создании фотосета

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 комментария

avatar
Спасибо, ценный топик!
avatar
Согласен, молодец
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.