пробовал реализовать по образу и подобию как в блогах сделано, но так и не получилось…
пытался спросить у автора в чем моя ошибка, получил краткий и лаконичный ответ… мне просто перевели текст ошибки.
Так что пока что оставил эту затею, хотя и обидно…
именно поэтому и делил по этому полю… потому что функционально…
в моем проекте есть четыре разных функциональных раздела.
вот их и отделил. в будущем планируется 5 функциональный раздел, но под него уже в базе все есть, останется внести необходимые условия.
так же как в проекте предусмотрено два каталога и мне пришлось попотеть чтобы поставить два ЛС-Каталога на один движок.
просто из такого древнего курса БД Парадокс, я прекрасно помню что прежде чем вводить новое поле в базу стоит проверить, а нет ли возможности использовать имеющиеся поля…
дабы не усложнять архитектуру БД и запросы к БД… я понимая что тогда боролись за каждый лишний байт… сейчас борьба идет за мегабайт…
но все же… в итоге получается что blog_type используется только для разделения блогов на персональные и общественные…
хотя с другой стороны получится что можно делать и персональные и общественные на разные тематики…
в моем проекте как говорится енто не треба… так что пожалуй буду использовать blog_type для упрощения запросов… и как следствие снижение нагрузки…
в любом случае спасибо за идею… и пример ее реализации… очень для меня нужная тема…
в процессе у меня возник резонный вопрос… а зачем в базе создавать еще одно поле если уже есть blog_type, который используется для разделения блогов на персональные и так сказать общественные, не проще ли просто расширить список?
Вот я так и подумал что нужно просто сразу идти в этом направлении… спасибо за подсказки…
пойду изучать ваш метод…
чтобы потом в итоге двойную работу не делать…
так это же можно и дальше развить… и преобразовать в целый Хак…
если в базе добавить в таблицу некоторые записи, то получится что коллективные блоги можно разбить на разные части… останется только дописывать blog_----_list.tpl…
а вообще странно… у меня по прежнему не хочет персональные показывать… хотя повторил в точности как вы описали… что-то все равно упускаю…
установил Хак как у многих можно редактировать но нажимаешь сохранить и появляется надпись: Error: Please try again later
попробовал все варианты описаные выше не помогает…
кэш чистил, проверил все ли файлы загрузились и так далее… не помогает… движок 0.3.1
что еще может быть?
попробовал… сделал как вы и сказали… на мой взгляд метод верный и должен работать… но вот упрямо не хочет показывать список…
добавил в Blog.mapper.class.php
public function GetPersBlogsRating(&$iCount,$iCurrPage,$iPerPage) {
$iCurrentUserId=-1;
if (is_object($this->oUserCurrent)) {
$iCurrentUserId=$this->oUserCurrent->getId();
}
$sql = "SELECT
b.*,
u.user_profile_avatar as user_profile_avatar,
u.user_profile_avatar_type as user_profile_avatar_type,
u.user_login as user_login,
IF(bu.blog_id IS NULL,0,1) as current_user_is_join
FROM
".DB_TABLE_BLOG." as b
LEFT JOIN (
SELECT
blog_id
FROM ".DB_TABLE_BLOG_USER."
WHERE user_id = ?d
) AS bu ON b.blog_id = bu.blog_id,
".DB_TABLE_USER." as u
WHERE
b.blog_type='personal'
AND
b.user_owner_id=u.user_id
ORDER by b.blog_rating desc
LIMIT ?d, ?d
;
";
$aReturn=array();
if ($aRows=$this->oDb->selectPage($iCount,$sql,$iCurrentUserId,($iCurrPage-1)*$iPerPage, $iPerPage)) {
foreach ($aRows as $aRow) {
$aReturn[]=new BlogEntity_Blog($aRow);
}
}
return $aReturn;
}
Изменив <> на = там где 'personal' и переименовав
Затем в Blog.class.php добавил
public function GetPersBlogsRating($iCurrPage,$iPerPage) {
$s1=-1;
if ($this->oUserCurrent) {
$s1=$this->oUserCurrent->getId();
}
if (false === ($data = $this->Cache_Get("blog_rating_{$iCurrPage}_{$iPerPage}_$s1"))) {
$data = array('collection'=>$this->oMapperBlog->GetPersBlogsRating($iCount,$iCurrPage,$iPerPage),'count'=>$iCount);
$this->Cache_Set($data, "blog_rating_{$iCurrPage}_{$iPerPage}_$s1", array("blog_update","blog_new"), 60*15);
}
return $data;
И тоже в нужном месте переименовал на GetPersBlogsRating и переименовал сам метод на GetPersBlogsRating
Далее открыл ActionBlogs.class.php
и добавил
protected function EventShowPersBlogs() {
/**
* Передан ли номер страницы
*/
$iPage= preg_match("/^\d+$/i",$this->GetEventMatch(2)) ? $this->GetEventMatch(2) : 1;
/**
* Получаем список блогов
*/
$aPersResult=$this->Blog_GetPersBlogsRating($iPage,BLOG_BLOGS_PER_PAGE);
$aPersBlogs=$aPersResult['collection'];
/**
* Формируем постраничность
*/
$aPaging=$this->Viewer_MakePaging($aPersResult['count'],$iPage,BLOG_BLOGS_PER_PAGE,4,DIR_WEB_ROOT.'/'.ROUTE_PAGE_BLOGS);
/**
* Загружаем переменные в шаблон
*/
$this->Viewer_Assign('aPaging',$aPaging);
$this->Viewer_Assign("aPersBlogs",$aPersBlogs);
$this->Viewer_AddHtmlTitle($this->Lang_Get('blog_menu_all_list'));
/**
* Устанавливаем шаблон вывода
*/
$this->SetTemplateAction('index');
}
Соответственно переименовав сам евент… на EventShowPersBlogs() и EventShowBlogs() на EventShowPersBlogs(), и по аналогии aPersBlogs
Вроде все должно работать… но список не показывает…
В качестве шаблона использовал из шаблона blog_list.tpl сделав там соответствующие изменения.
Но результат оказался нулевой списка нет. Может что упустил???
спасибо огромное. буду пробовать ваш метод.
я то уже проект практически сдал, только вот попросили разделить блоги и вот тут сел в тупик…
буду пробовать, о результатах расскажу…
А можно по подробней рассказать о том как разделили список блогов на персональные и коллективные, мне впринципе не нать фильтры, достаточно просто разделение блогов, а то уже третьи сутки мучаюсь ну ни в какую не идут… персональные не показывает и все тут…
Верстка может и банальная но вот если изменить тут пару параметров то все расползется причем меняешь в одном блоке уползает в другом… и не поймешь кто так влияет на все это…
Чуть позже оформлю этот вопрос, сейчас нужно срочно закончить работу с профилями…
Есть… и что самое интересное стал экспериментирование и добавлять и выполз вопрос, который никак не могу разрешить… пока оставил до лучших времен… потом к нему вернусь…
пытался спросить у автора в чем моя ошибка, получил краткий и лаконичный ответ… мне просто перевели текст ошибки.
Так что пока что оставил эту затею, хотя и обидно…
в моем проекте есть четыре разных функциональных раздела.
вот их и отделил. в будущем планируется 5 функциональный раздел, но под него уже в базе все есть, останется внести необходимые условия.
так же как в проекте предусмотрено два каталога и мне пришлось попотеть чтобы поставить два ЛС-Каталога на один движок.
дабы не усложнять архитектуру БД и запросы к БД… я понимая что тогда боролись за каждый лишний байт… сейчас борьба идет за мегабайт…
но все же… в итоге получается что blog_type используется только для разделения блогов на персональные и общественные…
хотя с другой стороны получится что можно делать и персональные и общественные на разные тематики…
в моем проекте как говорится енто не треба… так что пожалуй буду использовать blog_type для упрощения запросов… и как следствие снижение нагрузки…
в любом случае спасибо за идею… и пример ее реализации… очень для меня нужная тема…
пойду изучать ваш метод…
чтобы потом в итоге двойную работу не делать…
если в базе добавить в таблицу некоторые записи, то получится что коллективные блоги можно разбить на разные части… останется только дописывать blog_----_list.tpl…
а вообще странно… у меня по прежнему не хочет персональные показывать… хотя повторил в точности как вы описали… что-то все равно упускаю…
сделал все как в ридми… проверил дважды и все равно остается эта ошибка…
Спасибо нашел ошибку, отсутствовал нужный столбец.
попробовал все варианты описаные выше не помогает…
кэш чистил, проверил все ли файлы загрузились и так далее… не помогает… движок 0.3.1
что еще может быть?
добавил в Blog.mapper.class.php
Изменив <> на = там где 'personal' и переименовав
Затем в Blog.class.php добавил
И тоже в нужном месте переименовал на GetPersBlogsRating и переименовал сам метод на GetPersBlogsRating
Далее открыл ActionBlogs.class.php
и добавил
Соответственно переименовав сам евент… на EventShowPersBlogs() и EventShowBlogs() на EventShowPersBlogs(), и по аналогии aPersBlogs
Вроде все должно работать… но список не показывает…
В качестве шаблона использовал из шаблона blog_list.tpl сделав там соответствующие изменения.
Но результат оказался нулевой списка нет. Может что упустил???
я то уже проект практически сдал, только вот попросили разделить блоги и вот тут сел в тупик…
буду пробовать, о результатах расскажу…
в файле ActionTopic/add.tpl
Все вроде работает.
Чуть позже оформлю этот вопрос, сейчас нужно срочно закончить работу с профилями…