Перейти к контенту
  • 0

Репутация


moscowall

Вопрос

Рекомендуемые сообщения

  • 0
Меня много что порадовало в тройке, но не репутация. На многих форумах принято репутацией называть такие моды, где при изменении репутации указывают причину повышения/понижения уровня репутации. А это рейтинг сообщений не иначе. И вообще какой то уклон в социальные сети чувствуется.
Ссылка на комментарий
Поделиться на других сайтах

  • 0
old_lamer, есть мод, позволяющий комментировать свою оценку. Из рейтинга твоих сообщений и составляется твоя репутация - разве это не логично?
Ссылка на комментарий
Поделиться на других сайтах

  • 0
А можно ссылку, где этот мод найти можно? В базовой версии я не увидел комментирования при изменении репутации. В базовой версии я увидел под сообщениями пользователей плюс и минус и цифорку. Можно изменить рейтинг сообщения, при этом без комментирования. Сумма рейтингов сообщений называется в ипб3 репутацией пользователя.
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Как же я не люблю регистрироваться на сайтах... рррр... но перешагнул через себя пошёл региться и получил "The email address you used is not accepted by this board. Please select a different email address."
Ссылка на комментарий
Поделиться на других сайтах

  • 0

При изменении репутации и добавления комментария в блоке который в сайдбаре и профиле получается вот такая абра-кадабра

post-82135-1251404648_thumb.jpg

Кто-то сталкивался?

Как лечить?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

У меня ставится, а при попытке написать что-то по русски репутация не повышается! Если же в поле текста вставить любую цифру то репутация изменяется и сохраняется комментарий. А вот с русским текстом ничего...(

Как исправить?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Сообщение отправляется так - skin_ahmodding_reputation:

	new Ajax.Request( rep.sendUrl + '&rating=' + value + '&rep_msg=' + $(id + '_msg').getValue().encodeParam(),

 

Принимается тут - ah30ReputationAjaxActionOverloader.php:

		require_once( IPS_HOOKS_PATH . 'ah30ReputationCoreFunctions.php' );
	$repCache = new ah30ReputationCoreFunctions();

	/* Add the rating */
	if( $repCache->addRate( $type, $type_id, $rating, $msg, 0, $app ) === false )

 

Передается сюда - ah30ReputationCoreFunctions.php, где всего одна обработка и тут же вставка в БД:

		$message = IPSText::truncate( $message, 50 );

 

Для латиницы "getValue().encodeParam()" действительно не смертельно для текста, а вот для русских символов не хватает декодирования. Сейчас поставлю мод и поэкспериментирую.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Мне это ничего не сказало...Было бы здорово, если бы Вы разобрались и сказали, что и где заменить! Изменено пользователем ModernTalking
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Наверное, не самое корректное решение, но все же. Перезаписать файл ah30ReputationCoreFunctions.php в папке hooks вашего форума. Русские буквы появятся.
Ссылка на комментарий
Поделиться на других сайтах

  • 0
		$escape_table = array(' ' => '%u0020', '!' => '%21', ',' => '%2C', ':' => '%3A', ';' => '%u003B', '=' => '%u003D', '"' => '%u0022', '>' => '%u003E', '<' => '%u003C', '\'' =>'%u0027', '/' => '%u002F', '_' => '%u005F', '|' => '%u007C', '.' => '%u002E', '?' => '%u003F', '-' => '%u002D', '0' => '%u0030', '1' => '%u0031', '2' => '%u0032', '3' => '%u0033', '4' => '%u0034', '5' => '%u0035', '6' => '%u0036', '7' => '%u0037', '8' => '%u0038', '9' => '%u0039', 'a' => '%u0061', 'b' => '%u0062', 'c' => '%u0063', 'd' => '%u0064', 'e' => '%u0065', 'f' => '%u0066', 'g' => '%u0067', 'h' => '%u0068', 'i' => '%u0069', 'j' => '%u006A', 'k' => '%u006B', 'l' => '%u006C', 'm' => '%u006D', 'n' => '%u006E', 'o' => '%u006F', 'p' => '%u0070', 'q' => '%u0071', 'r' => '%u0072', 's' => '%u0073', 't' => '%u0074', 'u' => '%u0075', 'v' => '%u0076', 'w' => '%u0077', 'x' => '%u0078', 'y' => '%u0079', 'z' => '%u007A', 'А' => '%u0410', 'Б' => '%u0411', 'В' => '%u0412', 'Г' => '%u0413', 'Д' => '%u0414', 'Е' => '%u0415', 'Ё' => '%u0401', 'Ж' => '%u0416', 'З' => '%u0417', 'И' => '%u0418', 'Й' => '%u0419', 'К' => '%u041A', 'Л' => '%u041B', 'М' => '%u041C', 'Н' => '%u041D', 'О' => '%u041E', 'П' => '%u041F', 'Р' => '%u0420', 'С' => '%u0421', 'Т' => '%u0422', 'У' => '%u0423', 'Ф' => '%u0424', 'Х' => '%u0425', 'Ц' => '%u0426', 'Ч' => '%u0427', 'Ш' => '%u0428', 'Щ' => '%u0429', 'Ъ' => '%u042A', 'Ы' => '%u042B', 'Ь' => '%u042C', 'Э' => '%u042D', 'Ю' => '%u042E', 'Я' => '%u042F', 'а' => '%u0430', 'б' => '%u0431', 'в' => '%u0432', 'г' => '%u0433', 'д' => '%u0434', 'е' => '%u0435', 'ё' => '%u0451', 'ж' => '%u0436', 'з' => '%u0437', 'и' => '%u0438', 'й' => '%u0439', 'к' => '%u043A', 'л' => '%u043B', 'м' => '%u043C', 'н' => '%u043D', 'о' => '%u043E', 'п' => '%u043F', 'р' => '%u0440', 'с' => '%u0441', 'т' => '%u0442', 'у' => '%u0443', 'ф' => '%u0444', 'х' => '%u0445', 'ц' => '%u0446', 'ч' => '%u0447', 'ш' => '%u0448', 'щ' => '%u0449', 'ъ' => '%u044A', 'ы' => '%u044B', 'ь' => '%u044C', 'э' => '%u044D', 'ю' => '%u044E', 'я' => '%u044F');
	$escape_table=array_flip($escape_table);
	$message = strtr($message, $escape_table);

	$message = IPSText::truncate($message, 50 );

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Да, русские символы косяково вставляет....

Сообщение отправляется так - skin_ahmodding_reputation:

Принимается тут - ah30ReputationAjaxActionOverloader.php:

Передается сюда - ah30ReputationCoreFunctions.php, где всего одна обработка и тут же вставка в БД:

 

Ну это я вчера посидел и тоже догадался, что так оно и есть. Только вот не смотрел ещё что делает IPSText::truncate() и чем вообще следовало бы обработать.

 

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

Ссылка на комментарий
Поделиться на других сайтах

  • 0

А вообще, этот мод у кого-нибудь корректно работает?

 

САМОЕ интересное, слово "Thanks" ввелось и корректно отобразилось в репутации пользователя, и репа добавилась......А вот по-русски не пишет и не отображает..((

Изменено пользователем ModernTalking
Ссылка на комментарий
Поделиться на других сайтах

  • 0

ModernTalking, у вас какая-то другая ошибка. Вообще на время отладки просто добавьте до строки:

		$message = IPSText::truncate($message, 50 );

Строки:

 echo "Incoming message: ".$message; 
die();

И сможете пронаблюдать, что приходит на сервер. В вашем случае, похоже, вообще ничего)

 

В общем и целом мне помогло. IPSText::truncate() тупо обрезает строку до заданной длины. А проблема с кракозябрами из-за использования encodeParam() - оно кодирует кириллицу в те самые unicode-коды символов.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Да и old_lamer тоже поможет, т.к. как раз раскрывает %u{код_символа} :D

 

А вот у ModernTalking в чем-то другом проблема, раз сообщения пустые приходят.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

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

 

А как декодятся сообщения на форуме, тоже локально таблички делают или может есть какой общий метод?

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.