Вводим описание блога для поля Description вручную

Возможно, что-то сделал не правильно. Я в PHP — 0)))

Добавил новое поле при добавление блога, для ввода описания поля description, независимо от самого описания блога которое выводится на странице.

Итак, приступим.


СРАЗУ ЗАМЕЧУ! ПОИСК ПО ФАЙЛАМ НАЧИНАЙТЕ СВЕРХУ.

Открываем ActionBlog.class.php
находим
$sText=$this->Text_Parser(getRequest('blog_description'));

Заменяем на
$oBlog->setDescription(getRequest('blog_description'));


Находим ниже.
$oBlog->setDescription($sText);

И заменяем на
$sText=$this->Text_Parser(getRequest('blog_seodescr'));
$oBlog->setSeodescr($sText);


Далее находим (ВТОРОЙ РАЗ УЖЕ)
$sText=$this->Text_Parser(getRequest('blog_description'));

И опять заменяем на
$oBlog->setDescription(getRequest('blog_description'));


Находим ниже
$oBlog->setDescription($sText);

И заменяем на
$sText=$this->Text_Parser(getRequest('blog_seodescr'));
$oBlog->setSeodescr($sText);


Ищем
$_REQUEST['blog_description']=$oBlog->getDescription();

Ниже вставляем
$_REQUEST['blog_seodescr']=$oBlog->getSeodescr();


Далее ищем функцию проверки описания блога. (это часть)
func_check(getRequest('blog_description'

копируем всю функцию и вставляем ниже.
В скопированной переименовываем blog_description на blog_seodescr
выставляем для blog_seodescr описание не больше 300 символов

Далее ищем все
$sTextSeo=preg_replace("/<.*>/Ui",' ',$oBlog->getDescription());

И заменяем на
$sTextSeo=preg_replace("/<.*>/Ui",' ',$oBlog->getSeodescr());


СОХРАНЯЕМ ActionBlog.class.php

ОТКРЫВАЕМ Blog.entity.class.php

В GET добавляем
public function getSeodescr() {
	return $this->_aData['blog_seodescr'];
}


а в SET
public function setSeodescr($data) {
	$this->_aData['blog_seodescr']=$data;
}


СОХРАНЯЕМ Blog.entity.class.php

ОТКРЫВАЕМ Blog.mapper.class.php


Ищем в самом верху
public function AddBlog(BlogEntity_Blog $oBlog)

Немного ниже, под под
blog_description,

Добавляем
blog_seodescr,


В VALUES добавляем еще один? (вопрос)

На пару строк ниже находим

$oBlog->getDescription(),

добавляем
$oBlog->getSeodescr(),


Теперь в функции
function UpdateBlog(BlogEntity_Blog $oBlog)

Ищем
blog_description= ?,

ниже добавляем
blog_seodescr= ?,


ниже, после
$oBlog->getDescription(),

добавляем
$oBlog->getSeodescr(),


СОХРАНЯЕМ Blog.mapper.class.php

В templates/habra/action/ActionBlog/add.tpl
после
<p><label for="blog_description">{$aLang.blog_create_description}:</label><br />
<textarea name="blog_description" id="blog_description" rows="20">{$_aRequest.blog_description}</textarea><br />
<span class="form_note">{$aLang.blog_create_description_notice}</span></p>


Добавляем
<p><label for="blog_seodescr">SEO описание:</label><br />
<input type="text" id="blog_seodescr" name="blog_seodescr" value="{$_aRequest.blog_seodescr}" class="w100p" /><br />
<span class="form_note">Описание для поисковиков.</span></p>


ВЫПОЛНЯЕМ ЗАПРОС
ALTER TABLE `prefix_blog` ADD `blog_seodescr` text collate utf8_bin NOT NULL;


З.Ы. у меня работает. На счет работы в версии из SVN не знаю. Но должно работать.

З.Ы.З.Ы. не знаю как скажется на блогах которые уже созданы.
Да и возможно намутил че-то с функцией проверки blog_description в файле ActionBlog.class.php!!!

15 комментариев

avatar
Для тех кто не понял для чего это.
Теперь для поля description можно задать другое описание, отдельное от основного описания блога.
  • _et
  • +1
avatar
или блогах? ;)
avatar
да, да.)) блогах)
Но ктобы, проф взглядом посмотрел код и сказал, где и что я напорол))
avatar
Знатаки PHP, ну поделитесь мнением на счет правильности моих действий.
Уж очень сомневаюсь, что не че не упорол))
  • _et
  • +1
avatar
а с кейвордами сможешь попробовать?
я пытался из статических страниц выдрать и адаптировать, только не получилось как-то.
avatar
щас, конечно, еще раз попробую, но если что.))
avatar
все, отбой, сделал — получилось.))
спасибо за мануал — основывался на нем.))
если нужно, потом отпишу действия.))
avatar
При регистрации вызывает ошибку функция CreatePersonalBlog в нее
Перед
return $this->AddBlog($oBlog);
вставляем
$oBlog->setSeodescr(SITE_DESCRIPTION);
Будет по умолчаннию для персонального блога подставлять описание для сайта.
avatar
Спасибо, свой хак подфиксил.))
avatar
Аналогично для keywords нужно сделать
avatar
Пожалуйста, выложите последнюю рабочую версию, если не трудно. Я в PHP — абсолютный 0, но для оптимизации надстройка очень важна.
avatar
Подскажите пожалуйста, как в description добавить название блога? То есть, по-умолчанию, на главной и на страницах, в description выводится только «название топика», а нужно: «блог: название топика».
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.