Добавляем кнопку СПАСИБО без установки доп. модов

Автор vladok, 22 марта 2007, 00:14:41

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

vladok

Задача -дать пользователю возможность поблагодарить другого за пост нажатием на кнопку "Спасибо".
Под. задача -отобразить счетчик "спасиб" в левом поле под аватором
Сверх. задача - не устанавливать доп. моды :)

Итак.
У нас есть вывод счетчика кармы -т.е. репутации и есть возможность ее добавить -но реализованная достаточно неудобно и неброско. Т.е. фактически все уже есть. Дело за малым -подправить слегка
Display.template.php, чтобы встроить в нее дублирующую невзрачный плюсик яркую и броскую кнопку СПАСИБО.

Бекапим в сторонку Display.template.php из /Themes/default/

Ищем // Show "« Last Edit: Time by Person »" if this post was edited.
if ($settings['show_modify'] && !empty($message['modified']['name']))

echo '
« <i>', $txt[211], ': ', $message['modified']['time'], ' ', $txt[525], ' ', $message['modified']['name'], '</i> »';

echo '
</td>
<td align="', !$context['right_to_left'] ? 'right' : 'left', '" valign="bottom" class="smalltext">';


Сразу за ним добавляем

// Is this user allowed to modify this member's karma?
echo '
<a href="', $scripturl, '?action=modifykarma;sa=applaud;uid=', $message['member']['id'], ';topic=', $context['current_topic'], '.' . $context['start'], ';m=', $message['id'], ';sesc=', $context['session_id'], '">', '<img src="', $settings['images_url'], '/spasibo.gif" alt="" border="0" />', '</a><br />';


и в директорию темки /Themes/default/images/ помещаем spasibo.gif из аттачмента

Сохраняем измененную Display.template.php  и реплейсим ей Display.template.php  в  /Themes/default/

Все :)
Харе кришна, май либер зольдат...

G00dvin


Спасибо! Но все же это не то. Ни где не видно кто сказал спасибо. И эта кнопочка висит в каждом сообщении, а хотелось бы что бы только в первом сообщении поста. И уж совсем обнаглеть, то могла бы открывать скрытую ссылку автора (если он вдруг захотел бы ее скрыть).

Но все равно, вооот такое пасиб.

ПиСи У нас просто патовая ситуация пришлось срочно менять хост, домен... и захотелось более продвинутый движок. А как назло на нашего компьютерщика эпохондрия напала. Вот и учусь (простите если вдруг попадутся совсем глупые вопросы). Месяц назат я мог только смайлик в сообщение вставить.

vladok

Для того, чтобы пользователь мог увидеть, кто сказал ему спасибо - существует [Karma Description Mod] Мод кармы, репутации - http://www.simplemachines.ru/index.php/topic,353.0.html
В сочетании с вышеописанной фичей - хорошее решение вопроса о "спасибах" :) Заодно и в минус просто так не кликнуть -обосновывать придется...
***

Говорить спасибо за неувиденный линк - это как то ... преждевременно  ::)
Харе кришна, май либер зольдат...

G00dvin

ЦитироватьГоворить спасибо за неувиденный линк - это как то ... преждевременно 
vladok - ну а если с хорошей анатацией? К примеру новый альбом популярного исполнителя... пока не сказал ПАСИБ ссылочку не увидел.

vladok

Я уж лучше под посты отдам. Все веселее будет, чем на спасибы напрашиватся :)
Харе кришна, май либер зольдат...

G00dvin

ЦитироватьЯ уж лучше под посты отдам. Все веселее будет, чем на спасибы напрашиватся

vladok - вот тут я с тобой согласен. Но есть много товарищей, что готовы поспорить на данную тему. Так как я их мнения не разделяю, то конкретных доводов привести не могу. И потребность в данной функции все же есть.

deadbead

Такая идея.... При нажатии на [спасибо] в поле таблицы [Karma Description Mod] "за что" пишим что то типа "ThisPost=<ID>", где <ID> - id поста
А потом из таблицы [Karma Description Mod] запросом вытаскиваем имена юзеров и вставляем под постом... Вроде неплохо) и не сложно)
Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

ffdown

2deadbead свежая мысль, вот тока выразил бы ты ещё её в коде)

deadbead

Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

ffdown

Собстна уже опробовал и уже отспасибился)) Всё кул!

deadbead

Наверное еще стоит добавить, то вариант, который предложенный vladok имеет недостаток в плане, что нет проверки имеет ли право пользователь менять карму. Кнопка спасибо в его варианте отображается в любом случае.

В том что накатал я такая проверка есть. Более того ссылка "Спасибо" отображается только если пользователь еще не сказал спасибо в этом посте.
Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

Xansen

Классная реализация. Имхо минус без объяснения не надо ставить, а постоянно + жать и причину писать тоже не хоцца! Огромный + топикстартеру.

Xansen

Только один вопрос. Можно ли как то реализовать такой вариант:
у меня при нажатии на плюс стоит обязательный ввод причины плюсования. Можно как нибудь сделать так чтобы при нажатии СПАСИБО не требовало ввод причины?

deadbead

Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

vladok

#14
Маленькое и лостаточно уже старое -все забывал отпостить - изменение кода - (кстати -минихак работает и под SMF 1.1.х и под SMF 2.0 Beta 3 Public  ) - добавляем пр-ку на мемберность -чтобы гости не видели кнопки и не пытались ее юзать)

Итак -ищем опять таки (см. 1й пост)

      // Show "« Last Edit: Time by Person »" if this post was edited.
      if ($settings['show_modify'] && !empty($message['modified']['name']))
         
         echo '
« <i>', $txt[211], ': ', $message['modified']['time'], ' ', $txt[525], ' ', $message['modified']['name'], '</i> »';

      echo '
                        </td>
                        <td align="', !$context['right_to_left'] ? 'right' : 'left', '" valign="bottom" class="smalltext">';


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

    // Is this user allowed to modify this member's karma?
            if ($message['member']['karma']['allow'])
            echo '
                                <a href="', $scripturl, '?action=modifykarma;sa=applaud;uid=', $message['member']['id'], ';topic=', $context['current_topic'], '.' . $context['start'], ';m=', $message['id'], ';sesc=', $context['session_id'], '">', '<img src="', $settings['images_url'], '/spasibo.gif" alt="" border="0" />', '</a><br />';


Не забываем засунуть кнопку спасибо (см. 1 й пост) в директорию images темплаты, в которой проводите изменение.
Харе кришна, май либер зольдат...

Xansen

Цитата: deadbead от 23 апреля 2008, 18:21:36
Хм... Так и не требует вроде О_о

У меня как раз требует:(
в личку кинул линк на форум.

deadbead

Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

Xansen

Кто нибудь пробовал к данной реализации прикрутить "безобъяснительное" СПАСИБО?

deadbead

Врядли выйдет.. Т.к. это реализация лишь выводит ссылку "прибавить карму" в другое место... А отмена объяснения причин требует модификации исходников мода КармаДискрипшн.
Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

vladok

Кстати -оффтоп - на офф. сайте вовсю щупают за вымя мод Грека "Карма дискрипшен" пытаясь прикрутить ее под 2ку.
Под двойку уж вовсю моды клепают -уж 9 страниц наклепали :)
Такое ощущение что весь запад дружно на нее переползает...

Жаль.
Хороший мод, а под 2ку его видимо переделают все таки западные товарищи...
Харе кришна, май либер зольдат...

digger®

Цитата: vladok от 28 апреля 2008, 23:16:42
Кстати -оффтоп - на офф. сайте вовсю щупают за вымя мод Грека "Карма дискрипшен" пытаясь прикрутить ее под 2ку.
Под двойку уж вовсю моды клепают -уж 9 страниц наклепали :)
Такое ощущение что весь запад дружно на нее переползает...

Жаль.
Хороший мод, а под 2ку его видимо переделают все таки западные товарищи...

Под 2ку есть такая штука Advanced Reputation System

vladok

Есть, но слишком уж навернут....
Русифицировал на скорую руку этот Advanced Reputation System - воткнул в локалке, покрутил немного, плюнул и ... снес. Овчинка выделки не стоит. Слишком кардинально меняет старую добрую привычную всем юзерам карму.
Харе кришна, май либер зольдат...