начинающий

RSS лента
Автор блога: forlord
изменение личных сообщений для сайта
+17
Давно хотел переделать личные сообщения для нашей CMS, но никак не было времени.
Теперь вроде появилось. вот примерные наброски из того, что уже есть.
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.

слева - люди с кем ты хоть раз переписывался, справа в верху - история переписки - 30 сообщений, ниже набор смайлов аля одноклассники.
Теперь ждем 1.6 и доделываю под эту версию.
Может есть какие пожелания!
ССылка на архив
Меняем быстро аватарки
+9
На многих соц сайтах есть возможность быстрой смены своей основной фотографии, когда у вас в профиле куча разных фото, и вам надоело, что если захотелось сменить аватар, то нужно заново загружать фото, которое уже есть в своем профиле.
Теперь все просто - под фото есть кнопочка - аватар, нажав на которую, выбранная фотография автоматически становится аватаром и ничего больше загружать не нужно :)
Итак начнемс:
шаг 1:
открываем templates\ваша тема\components\com_users_photos.tpl
ищем стоку <span style="font-size:10px; display:block"><strong>{$_LANG.HITS}:</strong> {$photo.hits}</span>
и после нее вставляем
Код PHP:
{if $my_profile}
			  	<div><form name="avatarka"  method="post" action="/components/users/ajax/avatar.php">
				<input type="hidden" name="url" value = "{$photo.imge}"/>
				<input type="hidden" name="avatar" value = "{$photo.small}"/>
				<input type="submit" name="submit" value="аватар" />
				<input name="id" type="hidden" value="{$user_id}" />
				<input name="login" type="hidden" value="{$login}" /></form> </div>
			    {/if}
шаг 2: открываем файл components\users\frontend.php
находим ///VIEW ALBUM|||  --- //Получаем личные фотографии --- while($photo = $inDB->fetch_assoc($private_res)){
вставляем
Код PHP:
$photo['small']  = $photo['file'];
$photo['imge']  = $photo['file'];
	{if (file_exists($_SERVER['DOCUMENT_ROOT'].'/images/users/photos/medium/'.$photo['imge'])){
	$photo['imge'] = '/images/users/photos/medium/'.$photo['imge'];
	}else{$photo['imge'] = '/images/photos/medium/'.$photo['imge'];}
далее находим  $smarty = $inCore->initSmarty(’components’, ’com_users_photos.tpl’); перед ней вставляем
Код PHP:
$login = $usr['login'];
и после $smarty = $inCore->initSmarty(’components’, ’com_users_photos.tpl’); вставляем
Код PHP:
$smarty->assign('imge', $imge);
$smarty->assign('login', $login); 
У меня в профили стоит вывод только личных фотографий, у кого стоит вывод и из фотоальбомов, из шага 2 нужно вставить код и для вывода альбома!  Если что-то не работает - пишите, много было исправлений в альбоме
Самое главное - не забудьте скачать файл и скопировать в /components/users/ajax/
(возможно что-то еще забыл  zst )
Если все правильно сделали у вас под фото появилась кнопка аватар, при на жатию на которую меняется аватар
P.S. чтобы кнопка аватар не вылазила в css нужно подправить .usr_photo_thumb  поставить высоту height:180px;
Показ новой фотографии друга в профиле
+10
Для тех кому важно видеть движуху друзей!
Наверное у многих на сайте стоит в профиле вкладка "Лента", ну или кто как обозвал :)
Очень не понравилось мне отображение последних фотографий друзей (почему-то они все выводятся из альбома).
Хотя судя по всему было бы интересней если показывалось, что загружают к себе в профиль.
И так начнем!
шаг 1: Качаем файл и закидываем его "core/js/main.js"
шаг 2: Открываем ваш файл стилей и вписываем
Код CSS:
#screenshot{background: #f6f6f6; border: 1px solid #ccc; color: #000; display: none; padding: 5px; position: absolute;}
и редактируем, если не устраивает вывод фото
шаг 3: Открываем templates\Ваш шаблон\components\com_users_profile.tpl
и в самом начале вписываем
Код PHP:
{add_js file="core/js/main.js"}
шаг 4: Идем в вкладку лента и заменяем что было между <tr> и </tr> на вот это
Код PHP:
 <tr>
              <td class="date">{$photo.pubdate}</td>
              <td>
               <a href="{profile_url login=$photo.login}" class="nickname">{$photo.nickname}</a> →
               <a href="/users/0/{$photo.user_id}/photo{$photo.id}.html" class="screenshot" rel="/images/users/photos/medium/{$photo.file}"  >{$photo.title}</a>
		</td>                                                
               </tr>
шаг 5: Открываем core\classes\user.class.php , находим функцию getUserFriendsPhotos и заменяем ее
Код PHP:
public static function getUserFriendsPhotos($user_id, $limit=10){
        $inDB           = cmsDatabase::getInstance();
        $inCore         = cmsCore::getInstance();
        $friends        = self::getFriends($user_id);
        if (!$friends) { return false; }
        $friends_sql    = '';
        foreach($friends as $id=>$friend){
            $friends_sql .= 'u.id = '.$friend['id'];
            if ($id < sizeof($friends)-1){ $friends_sql .= ' OR '; }
        }
        $sql = "SELECT DISTINCT p.id, p.title, p.user_id, p.imageurl as file, u.id as user_id, u.nickname as nickname, u.login as login, 
                       IF(DATE_FORMAT(p.pubdate, '%d-%m-%Y')=DATE_FORMAT(NOW(), '%d-%m-%Y'), DATE_FORMAT(p.pubdate, '<strong>Cегодня</strong> в %H:%i'),
                       IF(DATEDIFF(NOW(), p.pubdate)=1, DATE_FORMAT(p.pubdate, 'Вчера в %H:%i'),DATE_FORMAT(p.pubdate, '%d, %M') ))  as pubdate
                FROM cms_user_photos p, cms_users u
                WHERE p.user_id = u.id AND ({$friends_sql})
                ORDER BY p.pubdate DESC
                ";
        if ($limit) { $sql .= 'LIMIT '.$limit; }
        $result = $inDB->query($sql);
        $photos = array();
        if (!$inDB->num_rows($result)){ return false; }
        while ($photo = $inDB->fetch_assoc($result)){
            $photo['pubdate'] = $inCore->getRusDate($photo['pubdate']);
            $photos[] = $photo;
        }
        return $photos;
    }
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.

Если все сделано правильно то при наведении на последние фотографии друзей у вас отображается само фото
Вставляем знак зодиака в профиль
+7
По желанию fuze[drums] переделал чуть-чуть вывод знаков теперь без запроса вбазу. Это конечно не maxisoft`a вариант, а на много проще.
Выводит в профиль занак зодика в профиль.
Как обычно идем components\users\frontend.php
находим строку  $usr[’birthdate’] = $inCore->getRusDate($usr[’birthdate’]);
и после нее вставляем
Код PHP:
$den =substr($usr['birthdate'], 0, 2);
$mes =substr(substr($usr['birthdate'], 4), 0, strlen($mes)-5);
switch ($mes){
case "Январь":  if ($den <20) {$usr['zadiac']= "Козерог";}	else  $usr['zadiac']= "Водолей";	break;
case "Февраль":	if ($den <19){$usr['zadiac']= "Водолей";}	else  $usr['zadiac']= "Рыбы";		break;
case "Март":	if ($den <21){$usr['zadiac']= "Рыбы";}		else  $usr['zadiac']= "Овен";		break;
case "Апрель":	if ($den <21){$usr['zadiac']= "Овен";}		else  $usr['zadiac']= "Телец";		break;
case "Май":	if ($den <21){$usr['zadiac']= "Телец";}		else  $usr['zadiac']= "Близнецы";	break;
case "Июнь":	if ($den <21){$usr['zadiac']= "Близнецы";}	else  $usr['zadiac']= "Рак";		break;
case "Июль":	if ($den <23){$usr['zadiac']= "Рак";}		else  $usr['zadiac']= "Лев";		break;
case "Август":	if ($den <23){$usr['zadiac']= "Лев";}		else  $usr['zadiac']= "Дева";		break;
case "Сентябрь":if ($den <24){$usr['zadiac']= "Дева";}		else  $usr['zadiac']= "Весы";		break;
case "Октябрь":if ($den <24){$usr['zadiac']= "Весы";}		else  $usr['zadiac']= "Скорпион";	break;
case "Ноябрь":	if ($den <22){$usr['zadiac']= "Скорпион";}	else  $usr['zadiac']= "Стрелец";	break;
case "Декабрь":	if ($den <22){$usr['zadiac']= "Стрелец";}	else  $usr['zadiac']= "Козерог";	break;} 
после этого в шаблоне com_users_profile.tpl в удобное для Вас месте вставляем
Код PHP:
 <div class="field"><div class="title">Знак зодиака:</div><div class="value">{$usr.zadiac}</div></div>
Меняем скучные фотоальбомы на приятный просмотр фоторгафий
+12
Для начала скачиваем файл http://www.instantcms.ru/users/files/download370.html
распаковываем его в корень (или куда удобней не забываем про пути)
и начинамем править com_users_photos.tpl
В самом вверху пишем
Код PHP:
{add_js file='fancybox/jquery.fancybox-1.2.1.pack.js'}
        {add_css file='fancybox/jquery.fancybox.css'}
{literal}
	<script type="text/javascript">
		$(document).ready(function() {
$("a.iframe").fancybox(
  { 
"frameWidth" : 700,	 // ширина окна, px (425px - по умолчанию)
"frameHeight" : 700 // высота окна, px(355px - по умолчанию)
});
		});
	</script>
{/literal}
меняем
Код PHP:
<a class="usr_photo_link" href="{$photo.url}" title="{$photo.title}">
                            <img border="0" src="{$photo.file}" alt="{$photo.title}"/>
                        </a>
на
Код PHP:
<div class="usr_photo_thumb"><a  class="iframe"  href="/fancybox/photo.php?id={$user_id}&foto={$photo.id}" ><img border="0" src="{$photo.file}" alt="{$photo.title}"/></a>
готовый вариант можно посмотреть здесь!
http://www.psy-land.ru/users/0/65/photoalbum.html

Совсем забыл!!!!!!!!!!! Нужно закомментировать или удалить в components\users\frontend.php
находим //VIEW ALBUM//
Код PHP:
   //Получаем фотографии из галереи
    $public_sql = "SELECT id, DATE_FORMAT(pubdate, '%d-%m-%Y') as fpubdate, file, hits
                    FROM cms_photo_files
                    WHERE user_id = {$id} AND published = 1";

    $public_res = $inDB->query($public_sql);

    if ($inDB->num_rows($public_res)) {
        while($photo = $inDB->fetch_assoc($public_res)){
            $photo['file']  = '/images/photos/small/'.$photo['file'];
            $photo['url']   = '/photos/0/photo'.$photo['id'].'.html';
            $photos[]       = $photo;
        }
    }