Перейти к контенту
  • 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

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

 

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

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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