0 Пользователей и 1 Гость просматривают эту тему.
  • 23 Ответов
  • 5409 Просмотров
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Статус пользователя
« : 18.08.2008, 13:32:49 »
Добрый день подскажите как можно и можно ли сделать на ДГ статус автора по кол-ву добавленных им работ,Например 10ть фото- новичёк, 20-фото- любитель.Примерно можно глянуть тут http://photosite.ua/photo_galery.php?id_galery=13&r=0&f=0&p=0&p_page=0&d=0&m=0&y=0под каждой фоткой вывод автора и его статус(рейтинг)
*

beliyadm

  • Moderator
  • 9512
  • 1651 / 66
  • Севастополь == Россия
Re: Статус пользователя
« Ответ #1 : 18.08.2008, 13:47:59 »
Можно и достаточно несложно.
Будет дополнительный запрос в базу и массив с статусами для вывода.
Готового решения нет, нужно писать
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Re: Статус пользователя
« Ответ #2 : 18.08.2008, 13:55:48 »
Если вам не сложно,я думаю данный хак многим бы пригодился
*

beliyadm

  • Moderator
  • 9512
  • 1651 / 66
  • Севастополь == Россия
Re: Статус пользователя
« Ответ #3 : 18.08.2008, 14:02:02 »
мне несложно, но сейчас некогда, может быть на днях...
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Re: Статус пользователя
« Ответ #4 : 18.08.2008, 14:08:34 »
Супер,спасибо большое,будем ждать
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Re: Статус пользователя
« Ответ #5 : 18.08.2008, 14:09:20 »
там вывод примерно такой 10 фоток- одна картинка, 20 фоток- другая картинка
*

beliyadm

  • Moderator
  • 9512
  • 1651 / 66
  • Севастополь == Россия
Re: Статус пользователя
« Ответ #6 : 19.08.2008, 11:44:37 »
для страницы с средним эскизом.
Файл sub_viewdetails.php, находим строки 387-388:

	
$database->setQuery("select id from #__users where username = '$imgowner'");
	
$op $database->loadResult();
    
//формирование статусов
	
if (
$count_pic '10'){
 
	
	
$status 'новичек';
 
	
} else if (
$count_pic >= '10' && $count_pic '50') {
 
	
	
$status 'начинающий';
	
} else if (
$count_pic >= '50' && $count_pic '100') {
 
	
	
$status 'умелый';
	
}
     
//формирование статусов завершено

и после них добавляем

	
//добавляем запрос на кол-во загруженных картинок пользователем
	
$database->setQuery("select count(id) from #__datsogallery where owner = '$imgowner' and published = 1 and approved = 1");
	
$count_pic $database->loadResult();
	
//окончание запроса

Дальше идет условие - если у изображения не прописан руками автор, то показывается ник пользователя, загрузившего изображение, вот туда то мы и добавим отображение статуса и кол-ва загруженных им фотографий
Было

if ($imgauthor == NULL){
    echo 
"<tr class='sectiontableentry1'><td width='30%' valign='top'><strong>"._DG_AUTHOR.":</strong></td>\n
    <td width='70%' valign='top'><a href='" 
sefRelToAbs("$dgurl&func=special&sorting=owner&op=$op") . "'><strong></td>\n</tr>\n";
    }

Стало

    
if ($imgauthor == NULL){
    echo 
"<tr class='sectiontableentry1'><td width='30%' valign='top'><strong>"._DG_AUTHOR.":</strong></td>\n
    <td width='70%' valign='top'><a href='" 
sefRelToAbs("$dgurl&func=special&sorting=owner&op=$op") . "'><strong>"$imgowner ."</strong></a> ".$status." (".$count_pic.")</td>\n</tr>\n";
    }


Теперь для страницы с мини эскизами:
Файл datsogallery.php в том же месте, где мы его правили, добавляя имя автора и заголовок.
Перед строкой
$dghits _DG_HITS;
добавляем тот же наш код с запросом, и рисуем вывод:
echo '<div>'.$row1->owner.' '.$status.'('.$count_pic.')<br /> '.$tle.'</div>';
« Последнее редактирование: 19.08.2008, 12:59:31 от beliyadm »
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Re: Статус пользователя
« Ответ #7 : 19.08.2008, 11:53:30 »
Цитировать
Дальше идет условие - если у изображения не прописан руками автор, то показывается ник пользователя, загрузившего изображение, вот туда то мы и добавим отображение статуса и кол-ва загруженных им фотографий
    if ($imgauthor == NULL){
    echo "<tr class='sectiontableentry1'><td width='30%' valign='top'><strong>"._DG_AUTHOR.":</strong></td>\n
    <td width='70%' valign='top'><a href='" . sefRelToAbs("$dgurl&func=special&sorting=owner&op=$op") . "'><strong>". $imgowner ."</strong></a> ".$status." (".$count_pic.")</td>\n</tr>\n";
    }
Этот код куда вставить надо?
*

beliyadm

  • Moderator
  • 9512
  • 1651 / 66
  • Севастополь == Россия
Re: Статус пользователя
« Ответ #8 : 19.08.2008, 11:59:39 »
Этот код куда вставить надо?
обновил код в предыдущем сообщении
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Re: Статус пользователя
« Ответ #9 : 19.08.2008, 12:32:54 »
А как вместо Новичёк и последующих вставить изображение?
*

beliyadm

  • Moderator
  • 9512
  • 1651 / 66
  • Севастополь == Россия
Re: Статус пользователя
« Ответ #10 : 19.08.2008, 12:36:31 »
А как вместо Новичёк и последующих вставить изображение?
$status '<img src="путь к изображению" alt="текстовое описание статуса" />';
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Re: Статус пользователя
« Ответ #11 : 19.08.2008, 12:49:43 »
У меня такая проблемма везде пишет новичёк( что это может быть?
« Последнее редактирование: 19.08.2008, 12:55:01 от newjey »
*

beliyadm

  • Moderator
  • 9512
  • 1651 / 66
  • Севастополь == Россия
Re: Статус пользователя
« Ответ #12 : 19.08.2008, 12:54:43 »
А в чём разница?
внимательно читай код - после ссылки добавлено ".$status." (".$count_pic.")
У меня оно выглядит так:
Автор: admin новичек (9)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Re: Статус пользователя
« Ответ #13 : 19.08.2008, 12:56:38 »
У меня такая проблемма везде пишет новичёк( что это может быть?
*

beliyadm

  • Moderator
  • 9512
  • 1651 / 66
  • Севастополь == Россия
Re: Статус пользователя
« Ответ #14 : 19.08.2008, 13:00:23 »
прошу прощения, совершенно дурацкую ошибку сделал, обновил код выше :) (после запросов на count(id) нужно добавить код с формированием статусов
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Re: Статус пользователя
« Ответ #15 : 19.08.2008, 13:12:16 »
admin  новичек (82) выводит вот так
*

beliyadm

  • Moderator
  • 9512
  • 1651 / 66
  • Севастополь == Россия
Re: Статус пользователя
« Ответ #16 : 19.08.2008, 13:21:28 »
Код
if ($ad_showres){
    echo "<tr class='sectiontableentry1'><td width='30%' valign='top'><strong>"._DG_SIZE.":</strong></td>\n
    <td width='70%' valign='top'>".$res."</td>\n</tr>\n"; }
    if ($ad_showfimgsize){
    echo "<tr class='sectiontableentry2'><td width='30%' valign='top'><strong>"._DG_FILESIZE.":</strong></td>\n
    <td width='70%' valign='top'>".$dgfilesize."</td>\n</tr>\n"; }
    if ($ad_showimgauthor){
    $database->setQuery("select id from #__users where username = '$imgowner'");
$op = $database->loadResult();
//добавляем запрос на кол-во загруженных картинок пользователем
$database->setQuery("select count(id) from #__datsogallery where owner = '$imgowner' and published = 1 and approved = 1");
$count_pic = $database->loadResult();
    //формирование статусов
if ($count_pic < '10'){
  $status = 'новичек';
  } else if ($count_pic >= '10' && $count_pic < '20') {
  $status = 'начинающий';
} else if ($count_pic >= '20' && $count_pic < '30') {
  $status = 'умелый';
} else if ($count_pic >= '30') {
  $status = 'хотите немного магии?';
}
     //формирование статусов завершено
//окончание добавленного кода
    if ($imgauthor == NULL){
    echo "<tr class='sectiontableentry1'><td width='30%' valign='top'><strong>"._DG_AUTHOR.":</strong></td>\n
    <td width='70%' valign='top'><a href='" . sefRelToAbs("$dgurl&func=special&sorting=owner&op=$op") . "'><strong>". $imgowner ."</strong></a> ".$status." (".$count_pic.")</td>\n</tr>\n";
    } else {
    echo "<tr class='sectiontableentry1'><td width='30%' valign='top'><strong>"._DG_AUTHOR.":</strong></td>\n
    <td width='70%' valign='top'><a href='" . sefRelToAbs("$dgurl&func=special&sorting=owner&op=$op") . "'><strong>". $imgauthor ."</strong></a></td>\n</tr>\n"; }
    }
    echo "</table>\n";
    }
Показывает: Автор: admin умелый (23)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Re: Статус пользователя
« Ответ #17 : 19.08.2008, 13:29:26 »
В профиле(просмотр средних эскизов) настроил всё чётко а вот,просмотр миниэскизов не получаеться настроить(
*

beliyadm

  • Moderator
  • 9512
  • 1651 / 66
  • Севастополь == Россия
Re: Статус пользователя
« Ответ #18 : 19.08.2008, 13:38:47 »
Полный фрагмент кода для мини эскизов:
Код
	//добавляем запрос на кол-во загруженных картинок пользователем
$database->setQuery("select count(id) from #__datsogallery where owner = '$row1->owner' and published = 1 and approved = 1 ");
$count_pic = $database->loadResult();
//формирование статусов
if ($count_pic < '10'){
  $status = 'новичек';
  } else if ($count_pic >= '10' && $count_pic < '20') {
  $status = 'начинающий';
} else if ($count_pic >= '20' && $count_pic < '30') {
  $status = 'умелый';
} else if ($count_pic >= '30') {
  $status = 'хотите немного магии?';
}
  //формирование статусов завершено
    //окончание добавленного кода
    $dghits = _DG_HITS;
    $dgvotes = _DG_RATING;
    $dgcomment = _DG_COMMENT1;
    $tle = jsspecialchars($row1->imgtitle);
    if ($ad_showtip) {
echo "<a href='" . sefRelToAbs("$dgurl&func=detail&catid=$catid&id=$row1->id") . "'";
    echo "onmouseover=\"return overlib('";
    echo "<strong>$tle</strong>";
    if ($ad_showimgcounter > 0){ echo "<br />$dghits: $row1->imgcounter";}
    if ($ad_showrating > 0) { echo "<br />$dgvotes: $frating";}
    if ($ad_showcomment > 0) { echo "<br />$dgcomment : $comments";}
    echo "');\"";
    echo "onmouseout=\"return nd();\"><img src='$thumbnailpath$row1->imgthumbname' style='".$ad_imgstyle."' alt='".$tle."' /></a><br />";
    } else {
    echo "<div align='center'><a href='" . sefRelToAbs("$dgurl&func=detail&catid=$catid&id=$row1->id") . "'><img src='$thumbnailpath$row1->imgthumbname' style='".$ad_imgstyle."' alt='".$tle."' /><div>$tle</div></a></div>";
    }
    echo '<div>'.$row1->owner.' '.$status.'('.$count_pic.')<br /> '.$tle.'</div>';
    echo "</td>\n";
    $rowcounter++;
    }
if ($rowcounter % $ad_cp <> 0) {
for ($i = 1; $i <= ($ad_cp - ($rowcounter % $ad_cp)); $i++) {
echo "<td width='".@$cw."' valign='middle'>&nbsp;</td>\n";
}
}

echo "</tr>\n</table>\n";
[картинка]
admin хотите немного магии?(30)
test 2
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Re: Статус пользователя
« Ответ #19 : 19.08.2008, 13:52:31 »
Супер!!!Огромное спасибо.Всё работает
*

beliyadm

  • Moderator
  • 9512
  • 1651 / 66
  • Севастополь == Россия
Re: Статус пользователя
« Ответ #20 : 19.08.2008, 14:03:31 »
ну и замечательно
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

newjey

  • Захожу иногда
  • 405
  • 2 / 0
Re: Статус пользователя
« Ответ #21 : 15.01.2009, 13:48:01 »
beliyadm а можешь подсказать как к этому же хаку добавить кол-во загружаемых фотографий в сутки?Например пользователь Новичёк у которого меньше 5ти фоток может добавить 1 фотографию в сутки,а пользователь Умелый у которго больше 5ти фоток может добавить уже 2е фотографии в сутки.
Как это можно реализовать?
*

roma-sever

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Re: Статус пользователя
« Ответ #22 : 16.10.2009, 00:36:04 »
Подскажите, а можно сделать также в версии DG 1.8.2 ? :laugh:
*

beliyadm

  • Moderator
  • 9512
  • 1651 / 66
  • Севастополь == Россия
Re: Статус пользователя
« Ответ #23 : 16.10.2009, 14:23:40 »
а можно сделать также в версии DG 1.8.2 ? :laugh:
можно, если сделаете - все скажут только спасибо
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться