loading...

Авторизация ...

Имя пользователя :
Пароль :
я всё забыл!

В помощь вебмастеруСовместимость модулей "Thanks" от PAV и MSW

Написал ksges, 5 апреля 2011 | 9 комментариев | рейтинг новости не нравится   +3   нравится Версия для печати
Совместимость модулей "Thanks" от PAV и MSW

Cовместимость
Модуль: Thanks 1.5 DLE версий: 8.2*, 8.3-9.2 от MSW
и
Модуль: Спасибо, версия 1.6 DLE версий: 5.x-6.x от PAV

ПРЕАМБУЛА
стояла лицуха дле 5.7, на которую был накачен модуль PAV
люди исправно благодарили друг друга.

обновился до 9.2 и увы, PAV свой модуль забросил, а благодарности хотелось сохранить.
К счастью, модуль thanks от MSW позволил это сделать

прошу не пинать ногами - я не программист - нужда заставила

АМБУЛА
имеем

Модуль спасибо, версия 1.6 Написал PAV, 4 января 2008
http://4dle.ru/2008/01/04/modul_spasibo_versija_16.html

наверное подойдет и для
Модуль "Thanks" 1.6 Final (только для DLE 6.7) автор: PAV 09 марта 2008
http://dle-news.ru/modules/269-modul-thanks-1.6-final-tolko-dlja-dle.html

меняем на Thanks 1.5 (AJAX+cache) автор: MSW [7-01-2011, 12:42]
http://0-web.ru/dle/free-mod-dle/5-thanks-ajax-cache.html


Инсталл не выполняется

+++++++++++++++++++++++
PAV

TABLE `dle_thanks` (
`id` int(10) unsigned NOT NULL auto_increment,
`news_id` int(10) NOT NULL default '0',
`member` varchar(40) NOT NULL default '',
`ip` varchar(16) NOT NULL default '',

------------
MSW

TABLE `".PREFIX."_thanks` (
`id` int(12) NOT NULL auto_increment,
`id_post` int(15) NOT NULL default '0',
`user_id` int(15) NOT NULL default '0',
`user_name` varchar(255) NOT NULL default '',
`host_ip` varchar(255) NOT NULL default '',
`time` int(15) NOT NULL,
+++++++++++++++++++++++++++++++

меняем ручками столбцы dle_thanks в phpmyadmin

`news_id` на `id_post`
`member` на `user_name`
`ip`на `host_ip`

приводим параметры всех столбцов в соответствие с MSW

далее выполняем

ALTER  TABLE `dle_thanks` ADD `user_id` int(15) NOT NULL default '0' after `id_post`;
ALTER  TABLE `dle_thanks` ADD `time` int(15) NOT NULL after `host_ip`;



в таблице dle_users

меняем
PAV
`thanks_num` mediumint(8) NOT NULL default '0',
на MSW
thx_num int(11) DEFAULT '0' NOT NULL;

далее
все по ReadMe
* Модуль: Thanks 1.5
* Автор: MSW
* Сайт поддержки: http://0-web.ru/


+
если есть желание чтобы тэг {thx_num} работал и в комментариях
правим
comments.class.php
после
if( $row['is_register'] and $row['icq'] ) $tpl->set( '{icq}', stripslashes( $row['icq'] ) );
            else $tpl->set( '{icq}', '--' );
добавляем        
            $r_thx_num="";
            if( $row['is_register'] and $row['thx_num'] ) $r_thx_num = ($row['thx_num']) ? "Благодарностей: ".stripslashes($row['thx_num']) :

"";
            $tpl->set('{thx_num}', $r_thx_num);

comments.tpl ставим в нужное место {thx_num}

==================

Если после установки мода
пользователи когда нажимают спасибо, получают
"Гости не имеют возможности благодарить"

тогда в файле thanks.php
удалить:
        $user_ip = $db->safesql($_SERVER["REMOTE_ADDR"]);
        $check_ip = $db->query("SELECT host_ip FROM ".PREFIX."_thanks WHERE id_post='".$news_id."' AND host_ip='".$user_ip."' AND time >= '".$time."'");

$db->num_rows($check_ip)==0 &&

`host_ip`,

'{$user_ip}',

заменить:
    include ENGINE_DIR.'/data/config.php';
    require_once ENGINE_DIR.'/classes/mysql.php';
    require_once ENGINE_DIR.'/data/dbconfig.php';
    require_once ENGINE_DIR.'/modules/functions.php';
    require_once ENGINE_DIR.'/modules/sitelogin.php';

на
require_once ENGINE_DIR.'/init.php';



РЕЗУЛЬТАТ: _http://def.kondopoga.ru


Отблагодарили: suntar, geokond, ruslanhydyrov, MeHMeT

Комментарии пользователей

  Экспорт комментариев в RSS
 Сортировать по рейтингу, по дате

Написал roller, 6 апреля 2011 в 13:22 плохой комментарий   +2   хороший комментарий
Новостей: 2, комментариев: 286, Пользователи
Карма:
Что-то через чур много действий. Было бы куда приятней увидеть готовый, законченный вариант в 1 архиве.

Написал Borchun, 6 апреля 2011 в 14:10 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 139, Пользователи
Карма:
нет такого слова "амбула"

Написал Yeti, 6 апреля 2011 в 14:13 плохой комментарий   0   хороший комментарий
Новостей: 1, комментариев: 109, Пользователи
Карма:
roller,
да уж, чёрт ногу сломит, ничего внятного, выдержки из соображений, когда перед глазами то, что делаешь и понимаешь что и зачем делаешь.
Чем осознать, что автор наваял проще самому с нуля...
Нужно было сделать:
1.инстал с нуля а в конце написать чей код использован и кто авторы.
2. обновление для тех у кого установлен вариант MSW чистый или PAV-a.

В итоге перечитал несколько раз и совет автору, просто нужно было верно назвать публикацию - Переход с Модуля Спасибо PAV-a на модуль Thanks от MSW.

совместимость это когда и тот и другой работают

Написал ksges, 6 апреля 2011 в 16:07 плохой комментарий   0   хороший комментарий
Новостей: 1, комментариев: 1, Пользователи
Карма:
Приношу извинния - я не кодер.
Структуры и четкости изложения ждать нечего.
Приперло - сделал.
надеюсь, кому-то поможет и сэкономит время.

Написал как у меня получилось сделать.
Это бесплатно и РАБОТАЕТ!
это не нулл левый, авторы обоих модулей известны.


перед этим я пообщался лично с MSW и он объяснил что структуру БД сделал совместимой. Поэтому так и назвал новость. Некорректно?

Написал Sander1, 6 апреля 2011 в 17:26 плохой комментарий   +2   хороший комментарий
Новостей: 36, комментариев: 310, Пользователи
Карма: 21±
Я бы рекомендовал это:
thx_num int(11) DEFAULT '0' NOT NULL;

Заменить на:
thx_num tinyint(1) UNSIGNED NOT NULL DEFAULT '0'

Если же у вас очень популярный сайт и "спасибов" будет больше чем 255, то:
thx_num smallint(1) UNSIGNED NOT NULL DEFAULT '0'

Тогда максимально количество "спасибо" будет 65535. Думаю всем хватит.
А вот выделять много памяти под то что заведомо не будет использоваться - я думаю это лишнее.

PS. INT = 4294967295

Написал Брупт, 6 апреля 2011 в 20:42 плохой комментарий   0   хороший комментарий
Новостей: 4, комментариев: 103, Пользователи
Карма: 10±
Поправь tinyint(3) и smallint(5)

И если с учетом знака, то количество будет в 2 раза меньше )

Написал Sander1, 7 апреля 2011 в 01:50 плохой комментарий   +2   хороший комментарий
Новостей: 36, комментариев: 310, Пользователи
Карма: 21±
thx_num tinyint(1) NOT NULL DEFAULT '0'

Это от -127 до 127, итого 255
thx_num tinyint(1) UNSIGNED NOT NULL DEFAULT '0'

Так мы переносим отрицательные значения в плюс, т.е. число может быть от 0 до 255.

Брупт, вот что мне не понятно..
tinyint(3) на практике ничем не отличается от tinyint(1).
Т.е. при попытке поставить значение 300, получил:
Warning: #1264 Out of range value for column '***' at row 1

Может они чем-то в теории отличаются или на уровне сервера...

PS.
заменить:
include ENGINE_DIR.'/data/config.php';
require_once ENGINE_DIR.'/classes/mysql.php';
require_once ENGINE_DIR.'/data/dbconfig.php';
require_once ENGINE_DIR.'/modules/functions.php';
require_once ENGINE_DIR.'/modules/sitelogin.php';

на
require_once ENGINE_DIR.'/init.php';

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

Написал Брупт, 7 апреля 2011 в 23:52 плохой комментарий   0   хороший комментарий
Новостей: 4, комментариев: 103, Пользователи
Карма: 10±
В числовых типах значение в скобках указывает количество выводимых символов. Если добавить атрибут zerofill, то ко всем числам, в которых символов меньше указанного будут добавлены нули )

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

Написал Sander1, 8 апреля 2011 в 00:11 плохой комментарий   0   хороший комментарий
Новостей: 36, комментариев: 310, Пользователи
Карма: 21±
Спасибо, уже вычитал )
Насчет ошибок ты не прав. Ну или тут фигню написали...
Если число символов, необходимых для вывода числа, превышает М, под столбец будет выделено больше символов

Информация



Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
Анализ Тиц и PR сайта