[Member Awards Mod] - Мод, Награды для пользователей

Автор Omikron, 20 октября 2006, 10:07:06

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

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

Omikron

Member Awards Mod
Автор: JayBachatero
Последняя версия: 1.0.2
Совместим: 1.1 RC3, 1.1.2, 1.1.4, 1.1.5, 2.0 Beta 3.1 Public
Ссылка: https://github.com/Spuds/SMF-Member-Awards

Avdenago

#1
ЦитироватьЗдравствуйте - установил этот мод (русскую версию, взятую отсюда). У меня возник вопрос - почему в админке не появляется ссылка на этот мод, т.е. после установки первый раз появляются настройки, но в меню администрирования я не вижу ссылки на этот мод.
И ещё вопросик, возможно ли сделать так, чтобы награды отображались в самом форуме рядом с аватаром, а не только в профиле (напимер уменьшенные копии изображений, на IPB и вобле такое есть)?
Заранее благодарен за ответы.
по поводу пустых строк. я так и не доделал перевод. точнее где-то там косяк... 
Сейчас если будет время - попробую поправить



Итак. все было и проще и сложнее. Придется заново переустановить мод. Пропустил просто пару строчек...
ссылка та же.
www.dl.belweb.by/smfmods/MemberAwards_1-0-2_RussianEdition.zip
НО. Мод пока НЕ работает если кодировка выбрана UTF8. под utf8 сейчас пробую его адаптировать.


Версия для UTF8 тут
www.dl.belweb.by/smfmods/MemberAwards_1-0-2_RussianEdition-UTF8.zip

RR-N

#2
В дефолтной теме пол аватаром отображается иконка award. В других двух вавилон  и Yabb awards отображаются только если зайти в профиль. Как поставить чтобы они отображались под аватаром во всех темах?
Тоже самое относится и к моду кармы просмотр лога недоступен для администратора ни в каких темах оформления кроме дефолтной темы.

Mavn

руками внести изменения в других темах оформления согласно того что мод меняет в них
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

RR-N

Эх так и не понял где что менять. Может кто делал ткните что и в каком месте.

Bezmolvniy

#5
Устанавливаю мод MemberAwards_1-0 (английский, с вашего файлового архива я так ничего скачать и не могу, пробовал всем что у меня есть)
При установке выводит следующее:
ЦитироватьТип   Файл   Описание
1.   Изменение файла   ./index.php   Неудачно
2.   Изменение файла   ./Sources/Profile.php   Неудачно
3.   Изменение файла   ./Sources/Who.php   Успешно
4.   Изменение файла   ./Sources/Admin.php   Успешно
5.   Изменение файла   ./Sources/Subs.php   Успешно
6.   Изменение файла   ./Sources/ManagePermissions.php   Неудачно
7.   Изменение файла   ./Themes/default/index.template.php   Неудачно
8.   Изменение файла   ./Themes/default/Profile.template.php   Неудачно
9.   Изменение файла   ./Themes/default/Display.template.php   Успешно
10.   Изменение файла   ./Themes/default/languages/Modifications.english.php   Успешно
11.   Изменение файла   ./Themes/default/languages/ManagePermissions.english.php   Успешно
12.   Изменение файла   ./Themes/default/languages/Errors.english.php   Успешно
13.   Извлечение файла   ./Sources/ManageAwards.php   
14.   Извлечение файла   ./Themes/default/ManageAwards.template.php   
15.   Извлечение файла   ./Themes/default/languages/ManageAwards.english.php   
16.   Извлечение файла   $imagesdir/award.gif   
17.   Создать Дерево   ./awards   
18.   Выполнение кода   install.php

Необходимая информация FTP
Некоторые файлы, которые менеджер пакетов должен изменить, не имеют прав на запись. Измените эти права, используя FTP.
Файлы проверил - права на запись имеют.
В чем затык?

Avdenago

"Необходимая информация FTP
Некоторые файлы, которые менеджер пакетов должен изменить, не имеют прав на запись. Измените эти права, используя FTP."

Еще раз проверь права на запись.  "Это жжжж неспроста"

Bezmolvniy

Проверил еще раз - права есть.
Я в одном файле вообще все галки на правах поставил - все равно не пускает.
Может мод не через форум надо ставить а как-то иначе?...

Bezmolvniy

#8
как этот мод ручками установить?
ЦитироватьПроблем при установке вроде бы не наблюдалось, однако если таковые будут может помочь ручная установка(вручную скопировать файл мода и язковые файлы в соответсвующие директории, внести изменения в исполняемые файлы).
сие для меня темный лес...

Если не трудно, напишите, пожалуйста, что надо найти и заменить/дополнить в нижеуказанных файлах чтобы работал мод. Я скачал русскую версию.
Файлы:
./index.php
./Sources/Profile.php
./Sources/ManagePermissions.php
./Themes/default/index.template.php
./Themes/default/Profile.template.php

При установке без них пункты меню "Награды" появляются, но они мертвые

Avdenago

#9
Цитата: Bezmolvniy от 08 ноября 2006, 13:08:28
как этот мод ручками установить?
При установке без них пункты меню "Награды" появляются, но они мертвые

А дело то в том, что Вы не удасужились лишний раз проверить с какими версиями совместим данный мод. На офф. сайте там черным по белому написано - 1.1 RC3.
Хотя есть и мой недосмотр, надо было в статье продублировать... Хотя при установке в инфе мода должно писатся для каких версию он работает.

Bezmolvniy

спасибо
жаль что такого нет для 1.0.9 :(
стрянно... я пробовал моды 1.1 ставить, но мне сразу писало, что мод не подходит под версию форума и дальнейшая установка была невозможна. а тут и не ругался даже :(

Avdenago

Цитата: Bezmolvniy от 09 ноября 2006, 10:25:45
спасибо
жаль что такого нет для 1.0.9 :(
стрянно... я пробовал моды 1.1 ставить, но мне сразу писало, что мод не подходит под версию форума и дальнейшая установка была невозможна. а тут и не ругался даже :(
Ну. теоретически можно пробовать прикрутить этот мод.

Для этого ставится на локалхост 1.1 RC3 или же эксперементальный 1.0.9(предпочтительней, для вашего случая) - ставится мод. при этом смотрится что именно меняется - это кстати можно посмотреть и в файлах мода... - install.xml
в этом файле прописывается какие изменения в какие файлы вносятся.
Проблема совместимости частично завязана тут. Потому что некоторые моменты добавляются в определенные места, которые в данной версии могут отсутствовать...
Но в любом случае - кусок работы немерянный.
Плюс вариант написать автору мода и попросить его адаптировать под дургую версию форума.

Bezmolvniy

Спасибо за ответ)
попробую пойти по обоим путям... :)

Kurt95

Fatal error: Cannot redeclare awards() (previously declared in

в файле profile.php ..

что делать!? а предустановленных наград нет(картинок)!?!?!

Kurt95

#14
да и еще мод не сносится до конца..т.е. а админки Награды так и остаются :)

версия форума 1.1 RC2 ... я знаю,то для RC3 ..но может....поставится....

Avdenago

1. Предустановленных наград нет.
2. Установку данного мода на RC2 вы производите на свой страх и риск. И к сожалению сейчас нету никакого времени разбиратся, почему у вас на ДРУГОЙ версии вылазят какие-то глюки...   

Kurt95


Bezmolvniy

Установил мод на версию 1.1 RC3, все работает, все добавляется, но не отображается значек награды под аватаркой пользователя :( Как сие лечится?

Bezmolvniy

ыыыы... я переставлял форум с 1.0.9 на 1.1, таки там тема оформления другая...
все, я разобрался, по дефолтовой теме все работает

Avdenago

Цитата: Bezmolvniy от 24 ноября 2006, 00:12:47
ыыыы... я переставлял форум с 1.0.9 на 1.1, таки там тема оформления другая...
все, я разобрался, по дефолтовой теме все работает

А дело скорее всего было в том, что сама картинка награды лежала в дефолтовой теме...

uniqum

в Личных Сообщениях нет иконки под аватарой.
Пробовал колдовать над PersonalMessage.template.php , ничего не получилось...
Подскажите какой код вставить?

Julax

А у меня и в дефолтовой на RС3 никаких иконок под аватарами не наблюдается

Mavn

если у тебя тема оформления не дефолтовая то не будет потому как все изменения мод производит только для дефолтовой темы оформления
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Julax

я проверила в дефолтовой - ничего нету. Ну да ладно

Kurt95

народ...тема такая...

нельзя как - нить мофицировать этот мод...

Чтобы преждевременно созданные награды давались пользователю автоматом....за сообщения!?!?!??!

uniqum

Цитата: Mavn от 03 декабря 2006, 16:04:26
если у тебя тема оформления не дефолтовая то не будет потому как все изменения мод производит только для дефолтовой темы оформления
да даже и в дефолтовой нет.
зайди в личку, и посмотри. все остальные иконки есть, такие, как профиль, почта, лс, а наград нету.

Hamaus

Цитата: Mavn от 29 октября 2006, 18:15:01
руками внести изменения в других темах оформления согласно того что мод меняет в них
не могли бы вы выложить подробную инструкцию по исправлению этого бага.
Где и что именно нужно изменить.

Lysyj

Здравствуйте.у меня такой вопрос
Цитата: Kurt95 от 14 ноября 2006, 00:34:12
Fatal error: Cannot redeclare awards() (previously declared in

в файле profile.php ..

что делать!? а предустановленных наград нет(картинок)!?!?!

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

Lysyj

Цитата: Kurt95 от 10 декабря 2006, 20:40:42
народ...тема такая...

нельзя как - нить мофицировать этот мод...

Чтобы преждевременно созданные награды давались пользователю автоматом....за сообщения!?!?!??!

все можно сделать...делаешь награды,а в профиле ели где там хочешь,пишешь соединение с таблицей в которой посты,затем приравниваешь,если кол-во постов равно или больше например 100,то выводишь первый рисунок....и т.д

Lysyj

не получилось исправить ошибку.пишет теперь что все установилось нормально но когда нажимаю на профиль,то выводит ошибку

Fatal error: Cannot redeclare awards() (previously declared in /home/waplim/public_html/web/forum/Sources/Profile.php:2893) in /home/waplim/public_html/web/forum/Sources/Profile.php on line 3052

Gepard

Да уж... Все пользователи равны, но некоторые ровнее. То что награда под аватарой не показывается - обидно, некузяво и сводит на нет само желание заморачиваться с установкой (мне все моды приходится устанавливать только ручками).
Неужели нет ничего такого, чем бы я мог выделить отдельных посетителей своего форума? Красивый и яркий значок - типа ордена и медали за заслуги, и чтобы под аватарой, и чтобы установить это мог только админ. Чтобы все видели и это их и радовало и стимулировало ;) Вот это, я понимаю, награда, так награда, а так, как сейчас, не награда, а так - баловство, вот ей богу! ;)

Avdenago

Есть небольшой вариант. Но он будет требовать РУЧНОГО награждения...
За вариантами - в Асю.

SAS


Gepard

SAS! Не знаю, может и оно. Просто мод дает ошибку в базе данных - профель (любой становится недоступным), пока не удалишь мод. Ошибку в Load.php... Странно, что устанавливается нормально: никаких предупреждений о несовместимости нет. Версию форума я оставил старую: cr3 по понятным причинам - придется переустанавливать все моды набело, а вручную слишком замутно. :(

Mrak

Господа! Мод бесспорно хороший, удобный и пр. Но нельзя ли провести модификацию такого типа - чтобы было видно у кого сколько наград? Или отдельное поле в профиле, или ещё что... иначе толку-то так награждать? А желающим просмотреть награды что, всех подряд перебирать? Понятно, что можно зайдя в одну награду и посмотреть список всех ей награжденных... Но это зачастую не в кассу.((

Avdenago

Вроде бы в профиле есть ссылка на все награды данного пользователя.

Gepard

Цитата: Mrak от 16 января 2007, 01:53:17
Господа! Мод бесспорно хороший, удобный и пр. Но нельзя ли провести модификацию такого типа - чтобы было видно у кого сколько наград? Или отдельное поле в профиле, или ещё что... иначе толку-то так награждать? А желающим просмотреть награды что, всех подряд перебирать? Понятно, что можно зайдя в одну награду и посмотреть список всех ей награжденных... Но это зачастую не в кассу.((

+1

Согласен полностью! Вот прорисовываются же звездочки (количество, вид и т. д. в зависимости от группы), вот и награды бы прорисовывались - тоже типа рисуночки или смайлики, или медальки и так далее, у кого как фантазия на этот счет повернет ;) А хочешь деталей (мол, что за кракозябра у этого пользователя подрисована?) - щелк по ней - и махом в профиль, а уж там можно и детали почитать, за что наградили, например, за какие такие заслуги перед Родиной и Партией? ;) . Вот, по-моему, что имелось в виду. Ставил я этот мод и тестировал. Сразу скажу - наградная ссылочка-то у всех есть, ну и что? По каждой тыкаться, что ли? Ну и надоест быстро. И пользоваться примочкой никто не станет. Додумать этот мод надо. Вот что. До ума довести.

Avdenago

Так. Не стоит тут разводить философию. Вариантов несколько:
1. Делать самим.
2. Просить других.
2.1. Писать создателю мода и просить реализовать это.
3. Заюзать другой мод.

Плюс об этих недостатках я писал:
"Единственное есть несколько недочетов, которые в принципе не могут испортить общего впечатления от данного мода.
1. Отсутствие отображение самой награды под автарой.
2. Невозможность назначит награду прямо из топика."
http://www.simplemachines.ru/index.php?topic=190.new;topicseen#new

Mrak

Avdenago, да кто ж спорит. Понятно, что чужое ругать - дело нехитрое. Но неужели нельзя просто прописать в отображаемом профиле пользователя (положим, под аватарой) текстом, сколько у пользователя наград? Без всяких изменений самого мода? Эх, разбирался бы я нормально в коде ((( По-моему, для соображающих в пхп, задача не из самых сложных. Хотя, может быть я и ошибаюсь.

devICE

Это впринципе не очень сложная задача, но она требует как минимум определённых знаний (как в пхп, так и в коде SMF). Я сам сейчас разбираюсь как повесить значки предупреждения в панель пользователя (та которая слева от постов)...
Проблемы только в голове.

Mrak

devICE, это вы о Visal Warning Mod? Если получится - поделитесь? ;) К тому же я так понимаю, наши с Gepard предложения по исполнению достаточно аналогичны.

Надо все-таки доработать это дело. А то сам смысл мода теряется.

devICE

Да о нём самом, но только я пишу его с нуля. Т.к. тот очень не хорошо работал с кармой.
Проблемы только в голове.

kunts

Автор предложил следующую модификацию для показа наград под аватаром:
Цитата: JayBachatero
Ok in Display.php find

mysql_free_result($request);
$posters = array_unique($posters);


Add after

// Load the members awards
$awards_request = db_query("
SELECT pab.filename, pam.ID_MEMBER
FROM {$db_prefix}awards_members AS pam
LEFT JOIN {$db_prefix}awards AS pab ON (pab.ID_AWARD = pam.ID_AWARD)
WHERE pam.ID_MEMBER IN (" . implode(', ', $posters) . ")", __FILE__, __LINE__);

$context['awards'] = array();
$context['awards'][$row['ID_MEMBER']] = array();
while ($row = mysql_fetch_assoc($awards_request))
$context['awards'][$row['ID_MEMBER']][] = '<img src="' . dirname($scripturl) . '/' . (empty($modSettings['pa_awardsDir']) ? '' : $modSettings['pa_awardsDir'] . '/') . $row['filename'] . '" alt="' . $row['filename'] . '" />';

mysql_free_result($awards_request);



In Display.template.php find

// Show avatars, images, etc.?
if (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image']))
echo '
<div style="overflow: auto; width: 100%;">', $message['member']['avatar']['image'], '</div><br />';



Add after

// Show the fav award
if (isset($context['awards'][$message['member']['id']]))
{
echo '
<div style="overflow: auto; width: 100%;">';
foreach ($context['awards'][$message['member']['id']] as $badge)
echo '
', $badge;
echo '
</div><br />';
}


I didn't test this out so not sure if it's going to fully work.  It should work though.

У меня все получилось, но про бэкап забывать не советую. ;)
Взято тут.

kunts

#43
Вопрос про выдачу наград из топика или профиля все еще открыт... :(

devICE

А я кажется понял как сделать выдачу наград из топика :) Вот когда выпущу свой мод визуальных предупреждений, разберусь с наградами...
Проблемы только в голове.

Mrak

ЦитироватьАвтор предложил следующую модификацию для показа наград под аватаром:
Все-таки это тоже не совсем то, что хотелось бы. Подразумевается, что все награды одинаково маленького формата. А мне этот мод приглянулся сразу же как раз возможностью выдавать награды неплохих размеров. Я вот тут в силу своих сил повозился, и примрено набросал, то что хотелось бы получить.

В Display.template.php ищем:
// Show how many posts they have made.
echo '
', $txt[26], ': ', $message['member']['posts'], '
<br /><br />';

(Причем один <br /> из того, что выше, удаляем – чтобы между строками не было лишнего отступа)

После добавляем:
//Awards
echo '
<a href="', $scripturl, '?action=profile;sa=awards;u=', $message['member']['id'], '">', $txt[awards] ,': ', NUMBER , '</a><br /><br />';

В итоге получаем стрчоку под колличеством постов вида "Награды: N", которая к тому же является ссылкой на страницу наград пользователя. Медальку же из области "PM", сайт и пр. думается и вовсе удалить.

Единственное и самое мерзкое – разумеется, вместо NUMBER в добавляемом коде должна быть переменная, отвечающая за колличество наград у пользователя. И вот тут нужны знания пхп – потому как я с этой переменной уже разобраться не смог((

Если кто сможет доделать - будет очень хорошо ;)

ЗЫ: Совсем в идеале можно было бы ввести дополнительную графу в общем списке пользователей (количество наград) с возможностью ранжировать пользователей по нему. Тогда мод отрабатывал бы себя на 80-90%. Но что-то мне подсказывает, что это уже не так просто))

devICE

Mrak, кинь мне на мыло этот мод (сперва только в асю постучись)... Я с ним повозюкаюсь на досуге. Сейчас пока решаю мелкие проблемы с модом предупреждений...
Проблемы только в голове.

kunts

Mrak, мои познания в PHP минимальны, но следующий код у меня сработал. :)
if (isset($context['awards'][$message['member']['id']]))
{
$awards_count = sizeof($context['awards'][$message['member']['id']]);
echo '
<br /><b>Награды:</b>('.$awards_count.')<br/><div style="overflow: auto; width: 100%;">';
foreach ($context['awards'][$message['member']['id']] as $badge)
echo '
<a href="' . $scripturl . '?action=profile;u=' . $message['member']['id'] . ';sa=awards">', $badge,'</a>';
echo '
</div>';
}

Думаю понятно, что это все тот же предложенный автором кусок для Display.template.php, но с вычислением количества наград:
   "$awards_count = sizeof($context['awards'][$message['member']['id']]);"
и выводом этого количества:
   "<br /><b>Награды:</b>('.$awards_count.')"

Естественно, что без изменения Display.php работать не будет.

Mrak

Цитата: kunts от 19 января 2007, 16:22:32
Естественно, что без изменения Display.php работать не будет.
Видимо, мои познания в php ещё минимальней. :lol: Можно немного подробней - где и что меняем. Потому что у меня вот это дело:  "$awards_count = sizeof($context['awards'][$message['member']['id']]);" упорно выдает нолик на выходе. Разумеется, даже тогда, когда число наград этот нолик превышают.((

kunts

Mrak, полный список моих изменений:

В Display.php ищем:

mysql_free_result($request);
$posters = array_unique($posters);


Ниже добавляем:

// Load the members awards
$awards_request = db_query("
SELECT pab.filename, pam.ID_MEMBER
FROM {$db_prefix}awards_members AS pam
LEFT JOIN {$db_prefix}awards AS pab ON (pab.ID_AWARD = pam.ID_AWARD)
WHERE pam.ID_MEMBER IN (" . implode(', ', $posters) . ")", __FILE__, __LINE__);

$context['awards'] = array();
$context['awards'][$row['ID_MEMBER']] = array();
while ($row = mysql_fetch_assoc($awards_request))
$context['awards'][$row['ID_MEMBER']][] = '<img src="' . dirname($scripturl) . '/' . (empty($modSettings['pa_awardsDir']) ? '' : $modSettings['pa_awardsDir'] . '/') . $row['filename'] . '" alt="' . $row['filename'] . '" />';

mysql_free_result($awards_request);


В Display.template.php ищем:

// Show avatars, images, etc.?
if (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image']))
echo '
<div style="overflow: auto; width: 100%;">', $message['member']['avatar']['image'], '</div><br />';


Ниже добавляем:

// Show the fav award
if (isset($context['awards'][$message['member']['id']]))
{
$awards_count = sizeof($context['awards'][$message['member']['id']]);
echo '
<br /><b>Награды:</b>'.$awards_count.'<br/><div style="overflow: auto; width: 100%;">';
foreach ($context['awards'][$message['member']['id']] as $badge)
echo '
<a href="' . $scripturl . '?action=profile;u=' . $message['member']['id'] . ';sa=awards">', $badge,'</a>';
echo '
</div>';
}


Только вот если тебе сами иконки наград в топике не нужны, то тут лишнего кода получается - вагон. :)