Jump to content

Gravatar в комментариях


Recommended Posts

Так мне кажется симпатичнее смотрятся комментарии.

 

1. Прикрепленный плагин для Smarty копируем в папку /Svarty/libs/plugins/

 

2. Добавляем поле email d БД запросом

 

ALTER TABLE `s_comments` ADD `email` VARCHAR( 255 ) NOT NULL AFTER `name`; 

3. В файле /api/Comments.php в запросах выборки в функциях get_comment и get_comments добавляем c.email,

 

4. в файлах /view/BlogView.php и /view/ProductView.php, чтоб не расписывать построчно, заменить строки

 

        // Автозаполнение имени для формы комментария
        if(!empty($this->user))
            $this->design->assign('comment_name', $this->user->name);


        
        // Принимаем комментарий
        if ($this->request->method('post') && $this->request->post('comment'))
        {
            $comment->name = $this->request->post('name');
            $comment->text = $this->request->post('text');
            $captcha_code =  $this->request->post('captcha_code', 'string');
            
            // Передадим комментарий обратно в шаблон - при ошибке нужно будет заполнить форму
            $this->design->assign('comment_text', $comment->text);
            $this->design->assign('comment_name', $comment->name);

на следующие строки

 

        // Автозаполнение имени для формы комментария
        if(!empty($this->user))
            $this->design->assign('comment_name', $this->user->name);
            $this->design->assign('comment_email', $this->user->email);
        
        // Принимаем комментарий
        if ($this->request->method('post') && $this->request->post('comment'))
        {
            $comment->name = $this->request->post('name');
            $comment->email = $this->request->post('email');
            $comment->text = $this->request->post('text');
            $captcha_code =  $this->request->post('captcha_code', 'string');
            
            // Передадим комментарий обратно в шаблон - при ошибке нужно будет заполнить форму
            $this->design->assign('comment_text', $comment->text);
            $this->design->assign('comment_name', $comment->name);
            $this->design->assign('comment_email', $comment->email);

5. Теперь вывод в шаблон, в файлах /design/{шаблон}/html/product.tpl и post.tpl после строк

 

            <!-- Имя и дата комментария-->
            <div class="comment_header">

добавляем строки

 

            {if $comment->email}
                <img src="{gravatar email="{$comment->email}" size="40"}">    
            {else}
                <img src="design/{$settings->theme|escape}/images/default_gravatar.jpg" height="40" width="40">
            {/if}

далее, строки

<label for="comment_name">Имя</label> <input class="input_name" type="text" id="comment_name" name="name" value="{$comment_name|escape}" data-format=".+" data-notice="Введите имя"/><br /> 

заменяем на

 

        <label>Имя</label>
        <input class="input_name" type="text" id="comment_name" name="name" value="{$comment_name}" data-format=".+" data-notice="Введите имя"/>
        <input class="input_name" type="text" id="comment_email" name="email" value="{$comment_email}" placeholder="e-mail"/><br /> 

6. Ну и в папку /design/{шаблон}/images/ добавляем файл default_gravatar.jpg для отображения аватарки по умолчанию.

 

function.gravatar.php

Link to post
Share on other sites

Проделал вышеописанное. Ничего не изменилось, кроме одного. Перестали отправлятся комментарии. При отправке ничего не происходит. )

Link to post
Share on other sites

Значить, что-то не так сделали, проверьте поэтапно.

1. Плагин Smarty скачали и установили?

2. Внесли изменения в БД?

3. В API добавили обработку поля, в 2-х местах?

4. Сделали изменения в BlogView.php и ProductView.php?

5. Вывод в шаблоне есть?

Link to post
Share on other sites

Кроха, в итоге получится, что Пользователь сможет со своего кабинета сменить аватарку?

Если да, то очень полезная вещь.

Link to post
Share on other sites

Gravatat, это сервис, где привязывается аватарка к Вашему емейлу, естественно можно зайдя на сервис поменять аватарку, причем для разных групп можно ставить свою аватарку, всего там 4 группы.

Link to post
Share on other sites
  • 2 months later...

3ий пункт еще раз можете обьяснить,ничего не понял!

 

найти запросы и добавить c.email

 

Кроха спасибо, придаст немного живости магазину.

Link to post
Share on other sites
  • 2 years later...

Можно проще: 

не нужно загружать аватарку по умолчанию и вместо 

{if $comment->email}
                <img src="{gravatar email="{$comment->email}" size="40"}">    
            {else}
                <img src="design/{$settings->theme|escape}/images/default_gravatar.jpg" height="40" width="40">
            {/if}

вставить

{if $comment->email}
                <img src="{gravatar email="{$comment->email}" size="40" default="mm"}">    
            {else}
                <img src="design/{$settings->theme|escape}/images/default_gravatar.jpg" height="40" width="40">
            {/if}
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...