Перейти к содержимому



Как прикрутить аватары

#1 DeHuC_64

DeHuC_64
  • Пользователь
  • 459 сообщений
  • Репутация: 41
0

Отправлено 21 Октябрь 2014 - 17:46

Всем привет, подскажите как прикрутить вывод граватаров к данному коду, хтелось бы ещё регулировать их размер...

<?php
function src_simple_recent_comments($src_count=7, $src_length=60, $pre_HTML='<li><h2>Recent Comments</h2>', $post_HTML='</li>') {
    global $wpdb;
     $sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,
            SUBSTRING(comment_content,1,$src_length) AS com_excerpt
        FROM $wpdb->comments
        LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID)
        WHERE comment_approved = '1' AND comment_type = '' AND post_password = ''
        ORDER BY comment_date_gmt DESC
        LIMIT $src_count";
    $comments = $wpdb->get_results($sql);
$output = $pre_HTML;
    $output .= "\n<ul>";
    foreach ($comments as $comment) {
$output .= "\n\t<li><a href=\"" .get_permalink($comment->ID) . "#comment-" . $comment->comment_ID ."\" title=\"К записи: " . //$comment->post_title . "\"><strong>" . $comment->comment_author . "</strong>"</a>: " .
$comment->post_title . "\"><strong>" . $comment->comment_author ."</strong></a>: " .
strip_tags($comment->com_excerpt) . "...</li> ";
  }
    $output .= "\n</ul>";
    $output .= $post_HTML;
    echo $output;
   
}
?>

 


 

 

  • 0

#2 cloudopia

cloudopia
  • Пользователь
  • 11 сообщений
  • Репутация: 1

Отправлено 21 Октябрь 2014 - 20:51

А аватары (то бишь иконки юзеров) где хранятся? Локально? В этом случае добавить к select поле со ссылками на аватары и выводить их через тег <img>. Если в социальных сетях, то по социальному id (который можно получить также из базы, если конечно, он туда добавляется), можно вытащить аватарку с другого сервера. 
Например, с фейсбука (фейсбук еще позволяет задавать размеры сразу при выдаче) такая конструкция, в userid - социальный номер юзера ставится:
<img src=’https://graph.facebook.com/<userid>/picture?width=32&height=32′ />
По аватарной тематике как раз седня заметочку накропал - http://cloudopia.ru/...ar-facebook/831
 
С других социалок иначе, но тоже можно. 

  • 0

#3 DeHuC_64

DeHuC_64
    Topic Starter
  • Пользователь
  • 459 сообщений
  • Репутация: 41

Отправлено 21 Октябрь 2014 - 20:54

cloudopia, с граватара под вордпресс, знаю что можно только не получаеться


  • 0

#4 cloudopia

cloudopia
  • Пользователь
  • 11 сообщений
  • Репутация: 1

Отправлено 21 Октябрь 2014 - 23:04

А с граватара... Так вот же у них документация под пхп. что там может не получится? тоже вытягивается с ихнего сайта картинка. и подставляется в img. технология такая же как и с фейсбука... Привязка идет к email

https://ru.gravatar....ent/images/php/

 

В общем, надо добавить к select поле, где хранится мыло того юзера, который ввел комментарий (comment_author_email), а дальше скопировать вот эту функцию, что по ссылке и подставить туда мыло и размер картинки. По умолчанию 80 пикселов стоит. 

Примерно так:

"SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, <-- вот тут после запятой ставь comment_author_email. После него тоже запятая. Остальной запрос без изменений.
А вывод аватара - там уже самостоятельно смотрите, куда именно засунуть, чтоб красиво смотрелось. 
get_gavatar($comment->comment_author_email, 40)
 
функцию эту в тот же модуль запихнуть, ну или по include подключать. 

  • 0

#5 DeHuC_64

DeHuC_64
    Topic Starter
  • Пользователь
  • 459 сообщений
  • Репутация: 41

Отправлено 22 Октябрь 2014 - 01:17

cloudopia, думаете я чё нибудь пойму из этого ?


  • 0

#6 cloudopia

cloudopia
  • Пользователь
  • 11 сообщений
  • Репутация: 1

Отправлено 22 Октябрь 2014 - 03:24

Издеваетесь, да? Что именно не поймете? 
И почему вы считаете возможным помещать трудночитаемый код, чтобы другие в нем разбирались, а сами не хотите разобраться в особенностях вывода комментариев? 
 
В запрос в строго указанное место (и не трогая остальное) получилось вставить указанное поле comment_author_email, как было описано выше?
 
Точно также вставляется и конструкция get_gavatar($comment->comment_author_email, 40). Находите куда вставлять (скорее всего, перед именем пользователя, то бишь перед $comment->comment_author. Представления о html-тегах имеется?
 
Но я вообще переписал бы все более читабельно, например так (все что выше строки с $comment =... без изменений)
$comments = $wpdb->get_results($sql);
?>
<?=$pre_HTML;?>
foreach ($comments as $comment) { // открываем цикл foreach
 $href = get_permalink($comment->ID) . "#comment-" . $comment->comment_ID;
 $title="К записи: ".$comment->post_title;
 $avatar = get_gavatar($comment->comment_author_email, 40); // вот это наш аватар размерами 40x40.
?>
<li> 
 <a href="<?=$href?>" title="<?=$title?>">
 <?=$avatar?>
 <strong><?=$comment->comment_author?></strong>
 </a>
 <?=strip_tags($comment->com_excerpt) ?>
</li>
<?=$post_HTML?>
<?
  } // закрываем цикл foreach
 } // а это закрывает функцию
?> 

HTML-код узнаете? Только вместо обычного текста подставляются значения переменных, которые записываются в <? ?>

(вводил ночью, но вроде нет ошибок синтаксиса, все php конструкции заканчиваются точкой с запятой, все теги закрываются)

 

 

И функцию get_avatar копируете по указанной ссылке и ничего в ней не меняя, вставляете до строки function src_simple_recent_comments. Запускаете сайт - если скрипт ругается о том, что функция уже определена (а она может быть определена, поскольку используется же плагин этот), то удаляете вставленную функцию.
 

Сообщение отредактировал cloudopia: 22 Октябрь 2014 - 03:25

  • 0

#7 DeHuC_64

DeHuC_64
    Topic Starter
  • Пользователь
  • 459 сообщений
  • Репутация: 41

Отправлено 24 Октябрь 2014 - 18:10

cloudopia, всё равно не чё не получилось, всё сыпется сразу...


  • 0


Оформление форума – IPBSkins.ru