+1.85
Рейтинг
2.99
Сила

Глеб

  • avatar Gleb
  • 0
BorisBritva, приятно, что получилось помочь.
Касаемо предложения: вероятно, смогу и большее, однако врядли вас устроит уровень знания первокурсника. Спасибо за предложение.

Всем комментаторам: прошу прощения, что не отвечал. Учебный процесс занимает всё свободное время.
  • avatar Gleb
  • 0
bestguys, практически, всё то же самое. Что именно не получается?
  • avatar Gleb
  • 0
Напишите мне. Постараемся решить проблему.
  • avatar Gleb
  • 0
Лень было писать создателей блогов, ограничился только модераторами.
1. Внесём изменения в ./classes/actions/ActionPeople.class.php
Изменяем функцию GetUserAdmins

/**
 * Получаем список модераторов и их блогов
 */
$aResult=$this->User_GetUsersModers($iCount,$iPage,USER_PER_PAGE);
$aUsersModers=$aResult['collection'];

Добавляем результат в Smarty
$this->Viewer_Assign('aUsersModers',$aUsersModers);

2. Изменяем ./classes/modules/user/User.class.php
Описываем функцию GetUsersModers.

/**
 * Получить список модераторов
 *
 * @param unknown_type $iCount
 * @param unknown_type $iPage
 * @param unknown_type $iPerPage
 * @return unknown
 */
public function GetUsersModers($iCount,$iPage,$iPerPage) {		
	if (false === ($data = $this->Cache_Get("user_moders_{$iPage}_{$iPerPage}"))) {						
		$data = array('collection'=>$this->oMapper->GetUsersModers($iCount,$iPage,$iPerPage),'count'=>$iCount);
		$this->Cache_Set($data, "user_moders_{$iPage}_{$iPerPage}", array("user_new","user_update"), 60*5);			
	}
	return $data;			
}

3. Правим ./classes/modules/user/mapper/User.mapper.class.php
Описываем функцию GetUsersModers.

public function GetUsersModers(&$iCount,$iCurrPage,$iPerPage) {

	$sql = "SELECT 
		*

		FROM 
		`".DB_TABLE_BLOG_USER."` , `".DB_TABLE_BLOG."` , `".DB_TABLE_USER."` 

		WHERE 
		".DB_TABLE_BLOG_USER.".is_moderator = 1
		AND ".DB_TABLE_BLOG_USER.".blog_id = ".DB_TABLE_BLOG.".blog_id
		AND ".DB_TABLE_USER.".user_id = ".DB_TABLE_BLOG_USER.".user_id

		GROUP BY 
		".DB_TABLE_USER.".user_login

		ORDER BY 
		".DB_TABLE_BLOG_USER.".is_moderator
				
		LIMIT ?d, ?d				
		";	
	$aReturn=array();
	if ($aRows=$this->oDb->selectPage($iCount,$sql,($iCurrPage-1)*$iPerPage, $iPerPage)) {
	foreach ($aRows as $aRow) {
		$aReturn[]=new UserEntity_User($aRow);
	}
	}
	return $aReturn;
}

4. Изменяем шаблон ./templates/skin/<ваш скин>/menu.people.tpl

			<thead>
				<tr>
					<td class="user">{$aLang.blog_user_moderators}</td>												
					<td class="strength">{$aLang.user_skill}</td>
					<td class="rating">{$aLang.user_rating}</td>
				</tr>
			</thead>
			{foreach from=$aUsersModers item=oUser}
				<tr>
					<td class="user"><a href="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_PROFILE}/{$oUser->getLogin()}/"><img src="{$oUser->getProfileAvatarPath(24)}" alt="" /></a><a href="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_PROFILE}/{$oUser->getLogin()}/" class="link">{$oUser->getLogin()}</a></td>														
					<td class="strength">{$oUser->getSkill()}</td>
					<td class="rating"><strong>{$oUser->getRating()}</strong></td>
				</tr>
			{/foreach}

Вроде как-то так.
  • avatar Gleb
  • 2
ALF, поддерживаю мысль. Однако я предполагал, что это покажется удобным средством для поиска людей, руководящих проектом. Иногда требуется связаться с администрацией.

  • avatar Gleb
  • 3
Lora_GT, попробовать можно. Совсем недавно думал на своём проекте реализовать отделение цветом администраторов, модераторов и пользователей. :-)

Вплотную не занимался (разве что научился ник «красить». Например: пользователь и администратор), но, полагаю, особых трудностей возникнуть не должно.

Увы, в связи с некоторой временной занятостью, не могу, с высокой вероятностью, пообещать оформить всё в отдельный топик.

Спасибо за предложение.
  • avatar Gleb
  • 0
Eman, очевидно же, что не хватает памяти.
Здесь, как мне кажется, можно обойтись без помощи поисковой системы.

Решения:
1. Править в php.ini директиву memory_limit
2. Использовать .htaccess (php_value memory_limit)
  • avatar Gleb
  • 4
Lora_GT, с полом (как и с остальными формами многочисленного выбора) немного иначе. Попробую привести пример с использованием радио-кнопок. (Возьму код из ./templates/skin/<ваш скин>/actions/ActionSettings/profile.tpl)

Правим шаблон:

<input type="radio" name="profile_sex" id="profile_sex_m" value="man" />  —  мужской<br />
<input type="radio" name="profile_sex" id="profile_sex_w" value="woman" />  —  женский<br />

Изменяем проверку
Мне кажется, достаточно того, чтобы $_POST['profile_sex'] был не пустым.

/**
 * Проверка пола
 */
if (empty(getRequest('profile_sex'))) {
        $this->Message_AddError($this->Lang_Get('registration_sex_error'),$this->Lang_Get('error'));
        $bError=true;
}

Добавляем фразу:
'registration_sex_error' => 'Вы не определились с полом',

Всё остальное — аналогично. Должно работать.
Если ошибся (ведь всего две недели кручу Livestreet), будьте добры, поправьте.
  • avatar Gleb
  • 0