0.00
Рейтинг
0.11
Сила

Тимофеев Алексей

пробовал реализовать по образу и подобию как в блогах сделано, но так и не получилось…
пытался спросить у автора в чем моя ошибка, получил краткий и лаконичный ответ… мне просто перевели текст ошибки.
Так что пока что оставил эту затею, хотя и обидно…
именно поэтому и делил по этому полю… потому что функционально…
в моем проекте есть четыре разных функциональных раздела.
вот их и отделил. в будущем планируется 5 функциональный раздел, но под него уже в базе все есть, останется внести необходимые условия.
так же как в проекте предусмотрено два каталога и мне пришлось попотеть чтобы поставить два ЛС-Каталога на один движок.
Ах да совсем забыл… если кому интересно, то готов поделится идеей… поскольку она отличается от идеи netuser все решил фактически через один event…
просто из такого древнего курса БД Парадокс, я прекрасно помню что прежде чем вводить новое поле в базу стоит проверить, а нет ли возможности использовать имеющиеся поля…
дабы не усложнять архитектуру БД и запросы к БД… я понимая что тогда боролись за каждый лишний байт… сейчас борьба идет за мегабайт…
но все же… в итоге получается что blog_type используется только для разделения блогов на персональные и общественные…
хотя с другой стороны получится что можно делать и персональные и общественные на разные тематики…
в моем проекте как говорится енто не треба… так что пожалуй буду использовать blog_type для упрощения запросов… и как следствие снижение нагрузки…

в любом случае спасибо за идею… и пример ее реализации… очень для меня нужная тема…
в процессе у меня возник резонный вопрос… а зачем в базе создавать еще одно поле если уже есть blog_type, который используется для разделения блогов на персональные и так сказать общественные, не проще ли просто расширить список?
если убрать условие то кто угодно сможет редактировать комментарии…
Вот я так и подумал что нужно просто сразу идти в этом направлении… спасибо за подсказки…
пойду изучать ваш метод…
чтобы потом в итоге двойную работу не делать…
так это же можно и дальше развить… и преобразовать в целый Хак…
если в базе добавить в таблицу некоторые записи, то получится что коллективные блоги можно разбить на разные части… останется только дописывать blog_----_list.tpl…

а вообще странно… у меня по прежнему не хочет персональные показывать… хотя повторил в точности как вы описали… что-то все равно упускаю…
очень странно… но возникла ошибка:

Parse error: syntax error, unexpected T_PROTECTED in /home/photogra/test/classes/actions/ActionBlog.class.php on line 1076


сделал все как в ридми… проверил дважды и все равно остается эта ошибка…
вот жеж… упустил… не проверил в базе SQL…
Спасибо нашел ошибку, отсутствовал нужный столбец.
установил Хак как у многих можно редактировать но нажимаешь сохранить и появляется надпись: Error: Please try again later
попробовал все варианты описаные выше не помогает…
кэш чистил, проверил все ли файлы загрузились и так далее… не помогает… движок 0.3.1
что еще может быть?
т.е. у вас создана два евента Персонал и Коллектив и в шаблоне в ActionsBlogs есть два tpl файла соответствующего названия?
попробовал… сделал как вы и сказали… на мой взгляд метод верный и должен работать… но вот упрямо не хочет показывать список…
добавил в 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 сделав там соответствующие изменения.

Но результат оказался нулевой списка нет. Может что упустил???
спасибо огромное. буду пробовать ваш метод.
я то уже проект практически сдал, только вот попросили разделить блоги и вот тут сел в тупик…
буду пробовать, о результатах расскажу…
А можно по подробней рассказать о том как разделили список блогов на персональные и коллективные, мне впринципе не нать фильтры, достаточно просто разделение блогов, а то уже третьи сутки мучаюсь ну ни в какую не идут… персональные не показывает и все тут…
Спасибо! Сейчас попробую.
Может немного туплю, но чот никак не догоню куда вставлять
<fieldset>
	<label for="topic_text">{$aLang.topic_create_text}:</label>
	{include file=editor.tpl textarea="topic_text"}


в файле ActionTopic/add.tpl
Спасибо! на основе вашего поста добавил некоторое количество полей в свой проект!
Все вроде работает.
Верстка может и банальная но вот если изменить тут пару параметров то все расползется причем меняешь в одном блоке уползает в другом… и не поймешь кто так влияет на все это…
Чуть позже оформлю этот вопрос, сейчас нужно срочно закончить работу с профилями…
Есть… и что самое интересное стал экспериментирование и добавлять и выполз вопрос, который никак не могу разрешить… пока оставил до лучших времен… потом к нему вернусь…