Разделение коллективных блогов по направлениям
6
Иду дальше по пути развития нашего будущего проекта. Осталось совсем ничего, добавить еще один фильтр и Авторизация по OpetID. OpetID – это потом. А щас фильтр :).
В чем идея (точнее не совсем идея, и даже не новшество). Есть коллективные блоги, у себя в проекте назвал их тематическими. Т.е. каждый коллективный блог будет иметь определенную тему. Для начало, скажем что это: «Веб-дизайн» и «Образование»
Что сделал:
Добавил нужный текст а языковой файл. После изменил add.tpl
В Blog.entity.class.php добавил
В Blog.class.php в эванте EventAddBlog добавил
(после $oBlog=new BlogEntity_Blog(); конечно).
В Blog.mapper.class.php изменл запрос
Естественно изменения коснулись и таблицы prefix_blog, добавил поле blog_category.
Вроде все сделал, чтоб блог можно было добавить, указав его категорию. Блоги добавляются, но вот тока в таблице prefix_blog поле blog_category остается пустым.
У себя пока идей нет, может кто заметит в чем проблема?
В чем идея (точнее не совсем идея, и даже не новшество). Есть коллективные блоги, у себя в проекте назвал их тематическими. Т.е. каждый коллективный блог будет иметь определенную тему. Для начало, скажем что это: «Веб-дизайн» и «Образование»
Что сделал:
Добавил нужный текст а языковой файл. После изменил add.tpl
<p><label for="blog_category">{$aLang.blog_create_blog_category}:</label><br />
<select name="blog_category" id="blog_category" onChange="">
<option value="blog_category">{$aLang.blog_create_blog_category_education}</option>
<option value="blog_category">{$aLang.blog_create_blog_category_web}</option>
</select>
<br />
<span class="form_note">{$aLang.blog_create_blog_category_notice}</span></p> В Blog.entity.class.php добавил
public function getCategory() {
return $this->_aData['blog_category'];
}
public function setCategory($data) {
$this->_aData['blog_category']=$data;
}В Blog.class.php в эванте EventAddBlog добавил
$oBlog->setCategory(getRequest('blog_category'));(после $oBlog=new BlogEntity_Blog(); конечно).
В Blog.mapper.class.php изменл запрос
public function AddBlog(BlogEntity_Blog $oBlog) {
$sql = "INSERT INTO ".DB_TABLE_BLOG."
(user_owner_id,
blog_title,
blog_description,
blog_type,
blog_category,
blog_date_add,
blog_limit_rating_topic,
blog_url,
blog_avatar,
blog_avatar_type
)
VALUES(?d, ?, ?, ?, ?, ?, ?, ?, ?, ?)
";
if ($iId=$this->oDb->query($sql,$oBlog->getOwnerId(),$oBlog->getTitle(),$oBlog->getDescription(),$oBlog->getType(),$oBlog->getCategory(),$oBlog->getDateAdd(),$oBlog->getLimitRatingTopic(),$oBlog->getUrl(),$oBlog->getAvatar(),$oBlog->getAvatarType())) {
return $iId;
}
return false;
} Естественно изменения коснулись и таблицы prefix_blog, добавил поле blog_category.
Вроде все сделал, чтоб блог можно было добавить, указав его категорию. Блоги добавляются, но вот тока в таблице prefix_blog поле blog_category остается пустым.
У себя пока идей нет, может кто заметит в чем проблема?
- +1
- 26 марта 2010, 16:11
- netuser
Мне башкой об стенку убиться надо. Заработался слишком, после выходных сразу дошло в чем дело:
В базе поле blog_category было ENUM? и значения blog_category там не было.
Правильно будет так:
Вот теперь работает
<p><label for="blog_category">{$aLang.blog_create_blog_category}:</label><br />
<select name="blog_category" id="blog_category" onChange="">
<option value="blog_category">{$aLang.blog_create_blog_category_education}</option>
<option value="blog_category">{$aLang.blog_create_blog_category_web}</option>
</select>
<br />
<span class="form_note">{$aLang.blog_create_blog_category_notice}</span></p> В базе поле blog_category было ENUM? и значения blog_category там не было.
Правильно будет так:
<p><label for="blog_category">{$aLang.blog_create_blog_category}:</label><br />
<select name="blog_category" id="blog_category" onChange="">
<option value="education">{$aLang.blog_create_blog_category_education}</option>
<option value="web">{$aLang.blog_create_blog_category_web}</option>
</select>
<br />
<span class="form_note">{$aLang.blog_create_blog_category_notice}</span></p> Вот теперь работает
Для версии 0.4 есть?
Там в Blog.class.php немного другие строчки, помогите пожалуйста, уважаемый netuser. =)
Что изменить надо?
Там в Blog.class.php немного другие строчки, помогите пожалуйста, уважаемый netuser. =)
/**
* Добавляет блог
*
* @param BlogEntity_Blog $oBlog
* @return unknown
*/
public function AddBlog(BlogEntity_Blog $oBlog) {
if ($sId=$this->oMapperBlog->AddBlog($oBlog)) {
$oBlog->setId($sId);
//чистим зависимые кеши
$this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG,array('blog_new',"blog_new_user_{$oBlog->getOwnerId()}"));
return $oBlog;
}
return false;
}Что изменить надо?
в процессе у меня возник резонный вопрос… а зачем в базе создавать еще одно поле если уже есть blog_type, который используется для разделения блогов на персональные и так сказать общественные, не проще ли просто расширить список?

- phtimofeeff
- 10 апреля 2010, 15:59
- ↓
просто из такого древнего курса БД Парадокс, я прекрасно помню что прежде чем вводить новое поле в базу стоит проверить, а нет ли возможности использовать имеющиеся поля…
дабы не усложнять архитектуру БД и запросы к БД… я понимая что тогда боролись за каждый лишний байт… сейчас борьба идет за мегабайт…
но все же… в итоге получается что blog_type используется только для разделения блогов на персональные и общественные…
хотя с другой стороны получится что можно делать и персональные и общественные на разные тематики…
в моем проекте как говорится енто не треба… так что пожалуй буду использовать blog_type для упрощения запросов… и как следствие снижение нагрузки…
в любом случае спасибо за идею… и пример ее реализации… очень для меня нужная тема…
дабы не усложнять архитектуру БД и запросы к БД… я понимая что тогда боролись за каждый лишний байт… сейчас борьба идет за мегабайт…
но все же… в итоге получается что blog_type используется только для разделения блогов на персональные и общественные…
хотя с другой стороны получится что можно делать и персональные и общественные на разные тематики…
в моем проекте как говорится енто не треба… так что пожалуй буду использовать blog_type для упрощения запросов… и как следствие снижение нагрузки…
в любом случае спасибо за идею… и пример ее реализации… очень для меня нужная тема…

- phtimofeeff
- 10 апреля 2010, 16:18
- ↑
- ↓
Комментарии (12)
RSS свернуть / развернуть