Дополнительное поле при создании поста
Создал дополнительное поле при создании/редактировании поста — Ссылка на источник, все работает нормально, но вот проблема, ссылка отображается как простой текст. Вроде как, для отображения как ссылки, нужно что-то добавить в ActionTopic.class.php (у меня версия 0.3.1) в разделы «Парсим на предмет ХТМЛ тегов», но вот что не могу сообразить, может кто что-нибудь посоветует.
Для ясности проделал следующие операции.
1. В ActionTopic.class.php после:
добавил:
после:
в 2-х местах (добавление и редактирование) добавил:
2. В Topic.entity.class.php перед:
добавил:
и перед:
добавил:
3. В Topic.mapper.class.php добавил source сюда:
и сюда:
4. Выполнил запрос в базу:
5. В шаблон topic.tpl добавил:
6. В шаблон actions/ActionTopic/add.tpl добавил:
7. В файл языка russian.php добавил:
Для ясности проделал следующие операции.
1. В ActionTopic.class.php после:
$_REQUEST['topic_title']=$oTopic->getTitle();
добавил:
$_REQUEST['topic_source']=$oTopic->getSource();
после:
$oTopic->setTextSource(getRequest('topic_text'));
в 2-х местах (добавление и редактирование) добавил:
$oTopic->setSource(getRequest('topic_source'));
2. В Topic.entity.class.php перед:
public function getTags() {
return $this->_aData['topic_tags'];
}
добавил:
public function getSource() {
return $this->_aData['topic_source'];
}
и перед:
public function setTextSource($data) {
$this->_aData['topic_text_source']=$data;
}
добавил:
public function setSource($data) {
$this->_aData['topic_source']=$data;
}
3. В Topic.mapper.class.php добавил source сюда:
public function AddTopic(TopicEntity_Topic $oTopic) {
$sql = "INSERT INTO ".DB_TABLE_TOPIC."
(blog_id,
user_id,
topic_type,
topic_title,
topic_source,
topic_tags,
topic_date_add,
topic_user_ip,
topic_publish,
topic_publish_draft,
topic_publish_index,
topic_cut_text,
topic_forbid_comment,
topic_text_hash
)
VALUES(?d, ?d, ?, ?, ?, ?, ?, ?, ?d, ?d, ?d, ?, ?, ?d, ?)
";
if ($iId=$this->oDb->query($sql,$oTopic->getBlogId(),$oTopic->getUserId(),$oTopic->getType(),$oTopic->getTitle(),$oTopic->getSource(),$oTopic->getTags(),$oTopic->getDateAdd(),$oTopic->getUserIp(),$oTopic->getPublish(),$oTopic->getPublishDraft(),$oTopic->getPublishIndex(),$oTopic->getCutText(),$oTopic->getForbidComment(),$oTopic->getTextHash()))
и сюда:
public function UpdateTopic(TopicEntity_Topic $oTopic) {
$sql = "UPDATE ".DB_TABLE_TOPIC."
SET
blog_id= ?d,
topic_title= ?,
topic_source = ?,
topic_tags= ?,
topic_date_add = ?,
topic_date_edit = ?,
topic_user_ip= ?,
topic_publish= ?d ,
topic_publish_draft= ?d ,
topic_publish_index= ?d,
topic_rating= ?f,
topic_count_vote= ?d,
topic_count_read= ?d,
topic_count_comment= ?d,
topic_cut_text = ? ,
topic_forbid_comment = ? ,
topic_text_hash = ?
WHERE
topic_id = ?d
";
if ($this->oDb->query($sql,$oTopic->getBlogId(),$oTopic->getTitle(),$oTopic->getSource(),$oTopic->getTags(),$oTopic->getDateAdd(),$oTopic->getDateEdit(),$oTopic->getUserIp(),$oTopic->getPublish(),$oTopic->getPublishDraft(),$oTopic->getPublishIndex(),$oTopic->getRating(),$oTopic->getCountVote(),$oTopic->getCountRead(),$oTopic->getCountComment(),$oTopic->getCutText(),$oTopic->getForbidComment(),$oTopic->getTextHash(),$oTopic->getId())) {
4. Выполнил запрос в базу:
ALTER TABLE `prefix_topic` ADD `topic_source` varchar(250) default NULL AFTER `topic_forbid_comment`
5. В шаблон topic.tpl добавил:
{if $oTopic->getSource()}
<br />
<br />
<i>Источник: {$oTopic->getSource()}</i>{/if}
6. В шаблон actions/ActionTopic/add.tpl добавил:
<p><label for="topic_source">{$aLang.topic_source}:</label><br />
<input type="text" id="topic_source" name="topic_source" value="{$_aRequest.topic_source}" class="w100p" /><br />
<span class="form_note">{$aLang.topic_source_notice}</span></p>
7. В файл языка russian.php добавил:
'topic_source' => 'Источник',
'topic_source_notice' => 'Укажите ссылку на сайт, с которого Вы взяли материалы для этого поста. Это поле является обязательным для постов, в которых содержатся тексты и графика, созданные не лично Вами.',
25 комментариев
Извиняюсь, если не так понял.
кто нить подскажите как сделать на 0.4.2, очень хочу кое-что проверить, если получится позже сюда выложу
Возник другой вопрос, может знаете ответ. Делаю дополнительное поле в профиле. Данное поле будет содержать перечисление интересов пользователя через запятую. Пытаюсь сделать так, чтобы при нажатии на какой-либо конкретный интерес выводился список всех пользователей с таким же интересом (как это вконтакте реализовано).
Поле сделал по аналогии с полями страна, город, т.е. добавил в БД поля с аналогичными параметрами, в mapper, entity добавил нужный код для обработки данных. Но вот не могу понять как сделать так чтобы все что написано в поле через запятую воспринималось не как один единственный интерес, а интересы разделенные через запятую являлись отдельными ссылками.
Я пытался сделать следующим образом:
В user.class.php в код вставил конструкцию типа
для того чтобы запятые разделяли тест на отдельные ссылки, т.е. стало выглядеть так:
Но ничего не изменилось и вся информация в поле продолжает отображаться единой ссылкой. Подскажите я вообще в правильном направлении двигаюсь или таким образом такую задачу в принципе решить нельзя?
А не…
templates/skin/new/topic.tpl
(вставляем как по howto)
Аналогично сделаешь изменения в файле
templates/skin/new/topic_link.tpl
А не
templates/skin/new/topic_list.tpl
Если так сделаешь, все будет работать — проверено на 0.5.1
на 0.5.x