Trotor 27 10/13/13 23:43 - - - Поставлен мод который даёт возможность к репутации добавлять комментарии. Всё хорошо но есть один баг - если в коммент добавить знак вопроса, то после него обрезается весь текст (если текст идёт русскими символами).Вот текст хука - http://imtw.ru/uploads/imperiall/imgs/total_war1381707276_ah30reputationcorefunctions.txtМожет в этом причина? public function unicode_escape($str) { $escape_table = array( '%20' => ' ', '%21' => '!', '%2C' => ',', '%3A' => ':', '%3B' => ';', '%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' => 'я', //ukrainian char '%u0456' => 'і', '%u0406' => 'І', '%u0457' => 'ї', '%u0407' => 'Ї', '%u0454' => 'є', '%u0404' => 'Є', ); return strtr($str, $escape_table); } - - - Как сделать реализацию что бы список репутации начинался с новых.Вот скрин:То есть что бы самая новая оценка была сверху а не снизу. - - - Стоит приложение История Репутации. Но на странице её почему то страниц листалок намного больше чем самих оценок. Как убрать пустые страницы?Вот скрин: - - - Также в этом приложении попадают и оценки репутации с блогов, но они почему то ведут на id сообщения, который идентичен id записи блога. - - - Буду рад помощи по исправлению хотя бы одного бага. Заранее спасибо. Поделиться сообщением Ссылка на сообщение
Bot 5 10/13/13 23:43 Обратите внимание По указанному вами в профиле "Board url" находится не IP.Board, либо модифицированный пиратский скрипт с удаленными копирайтами. Если вы указали неверный URL, пожауйста, поправьте его, потому что он скорее всего потребуется при диагностике вашей проблемы. Нелицензионные скрипты не приветствуются, т.к. зачастую именно некорректное "нуление" и является причиной проблем в них. Поделиться сообщением Ссылка на сообщение
siv1987 2628 10/14/13 09:12 1. Дело скорее всего в этом $message = IPSText::truncate( $message, 199 );Хотя для "этого" есть более нормальный вариант декодирования public function unicode_escape($str) { $str = preg_replace_callback( '/%u([0-9a-f]{4})/i', array( $this, 'entity_decode' ), $str ); return $str; } public function entity_decode( $m ) { $m = is_array($m) ? $m[1] : $m; return html_entity_decode( ''.hexdec( $m ).';', null, 'utf-8' ); } 2. Изменить сортировку в sql запросе. По умолчанию это admin\applications\core\modules_public\ajax\reputation.php, _viewRep(). Если у хука есть файл который его перегружает, то нужно править его.'order' => 'rep_date DESC', 3. Какой-то счетчик не правильно работает, либо не правильно считается общее количество репутации. Отсюда и пустые листы 4. Автор не учел блоги, а все записи считает за репутацию сообщений. Это может быть причиной и бага в третьем пункте. 1 Поделиться сообщением Ссылка на сообщение
Trotor 27 10/14/13 21:49 1. Дело скорее всего в этом $message = IPSText::truncate( $message, 199 );Удалил. Не помогает. Значит не в ней. Хотя для "этого" есть более нормальный вариант декодированияПоставил. Проблема знака вопроса так и осталась :( - - - 2. Изменить сортировку в sql запросе. По умолчанию это admin\applications\core\modules_public\ajax\reputation.php, _viewRep(). Если у хука есть файл который его перегружает, то нужно править его.'order' => 'rep_date DESC',Спасибо. Нужно было в файле хука ah30ReputationClassPopupOverload.php поменять 'rep_date', на 'rep_date DESC', - - - Кстати. А не подскажите как в файле хука ( http://imtw.ru/uploads/imperiall/imgs/total_war1381707276_ah30reputationcorefunctions.txt ) добавить условие что бы в комментариях срабатывал фильтр на нецензурные слова? - - - 3. Какой-то счетчик не правильно работает, либо не правильно считается общее количество репутации. Отсюда и пустые листыПричина по моему ясна - он считает общее кол-во оценок репутации, в том числе и с удалённых сообщений. Но как указать ему что бы он не считал репу та которая была в удалённых сообщениях? - - - 4. Автор не учел блоги, а все записи считает за репутацию сообщений. Это может быть причиной и бага в третьем пункте.Да. Вот в файле нет и намёка на блоги - http://imtw.ru/uploads/imperiall/imgs/total_war1381787346_reputationhistory.txtКак указать что существуют и репутация в блогах? Поделиться сообщением Ссылка на сообщение
siv1987 2628 10/14/13 23:02 Поставил. Проблема знака вопроса так и осталасьТогда нужно дебажить. Причина по моему ясна - он считает общее кол-во оценок репутации, в том числе и с удалённых сообщений. Но как указать ему что бы он не считал репу та которая была в удалённых сообщениях?По сути никак. Костыли с джоином таблицы постов не подойдет, так как в таком случае не будет репутации из других приложений. Если она все равно не нужна, то вместо $this->DB->build( array( 'select' => 'COUNT(type_id) as max', 'from' => 'reputation_index', ) ); $this->DB->execute(); $total_possible = $this->DB->fetch(); поставить такой sql запрос $total_possible = $this->DB->buildAndFetch(array( 'select' => 'COUNT(*) as max', 'from' => array('reputation_index' => 'ri'), 'add_join' => array( array( 'from' => array( 'posts' => 'p' ), 'where' => 'ri.app="forums" AND ri.type="pid" AND ri.type_id=p.pid', 'type' => 'inner', ), ), )); И ниже 'p.pid=ri.type_id' заменить на 'ri.app="forums" AND ri.type="pid" AND ri.type_id=p.pid' 1 Поделиться сообщением Ссылка на сообщение
Trotor 27 10/15/13 01:24 Тогда нужно дебажить.Подскажите как это сделать. По сути никак. Костыли с джоином таблицы постов не подойдет, так как в таком случае не будет репутации из других приложений. Если она все равно не нужна, то вместоУра - помогли! И репутация с приложений туда не попадает. Но хотелось бы что бы там ещё и репутация с приложений (блоги и туториалы) попадала. Она у юзера отображается и засчитывается, но как её на список вывести? Поделиться сообщением Ссылка на сообщение