Регистрация

Модуль "Битая ссылка"

TipTop 13-12-2010, 21:52 7613 Mодули DLE

Модуль "Битая ссылка"


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

Модуль "Битая ссылка"


Модуль "Битая ссылка"


Особености:
- кнопка видна только зарегистрированным пользователям
- кнопку можно нажать только 1 раз (в каждой новости)
- в админке: список новостей с жалобами (новости сортируются по кол. жалоб)[/i]
- в админке: кто пожаловался
- в админке: если нажать на [Удалить] то все жалобы удаляются

Установка:

1: Делаем запрос к базе данных:

ALTER TABLE `dle_post` ADD `nolink` smallint(5) NOT NULL default '0';
ALTER TABLE `dle_post` ADD `nolink_users` text NOT NULL;



2. Дописать в конец файла /engine/classes/js/js_edit.js:

function brokenLink( id ) {
    var ajax = new dle_ajax();
    ajax.onShow ('');
    var varsString = "news_id=" + id;
    ajax.setVar("skin", dle_skin);
    ajax.requestFile = dle_root + "engine/ajax/brokenLink.php";
    ajax.method = 'GET';
    ajax.element = 'broken-id-' + id;
    ajax.sendAJAX(varsString);
};



3: В файле /engine/modules/show.full.php перед кодом:

if( $row['votes'] ) $tpl->set( '{poll}', $tpl->result['poll'] );


добавляем:

$broken_arr = explode( ',', $row['nolink_users'] );
            
            if( ! in_array( $member_id['name'], $broken_arr ) ) $tpl->set( '{brokenLink}', "<span class=\"brokenbt\" id=\"broken-id-" . $row['id'] . "\"><span class=\"brokenclick\" onclick=\"brokenLink('" . $row['id'] . "'); return false;\" title=\"\">Перезалейте!</span></span>" );
            else $tpl->set( '{brokenLink}', "" );



4: В файле /engine/engine.php меняем:

// ################ Новость целиком #################
            if ($subaction != '' or $newsid) {
                if (! $newsid) $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 0,1";
                else $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post where  id = '$newsid'";

на:

            // ################ Новость целиком #################
            if ($subaction != '' or $newsid) {
                if (! $newsid) $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle, nolink_users FROM " . PREFIX . "_post WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 0,1";
                else $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle, nolink_users FROM " . PREFIX . "_post where  id = '$newsid'";



6: В файле /engine/inc/options.php перед кодом:

array (
                                            'name' => $lang['opt_rules'],
                                            'url' => "$PHP_SELF?mod=static&action=doedit&page=rules",
                                            'descr' => $lang['opt_rulesc'],
                                            'image' => "rules.png",
                                            'access' => $user_group[$member_id['user_group']]['admin_static']
                                ),


добавляем:

array (
                                            'name' => "Broken Links",
                                            'url' => "$PHP_SELF?mod=brokenLinks",
                                            'descr' => "",
                                            'image' => "broen.png",
                                            'access' => $user_group[$member_id['user_group']]['admin_editusers']
                            ),


7. Дописать в конец файла /templates//templates/Simple/css/style.css:


.brokenbt { margin-top: 25px; display: block; }
.brokenclick {
    padding: 5px 7px;
    color: #222;
    border: 1px solid #DEDEDE;

    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    border-radius: 5px;

    background-color: #F2F2F2;
    background: -moz-linear-gradient(#F2F2F2 10%, #DEDEDE 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0.5, #F2F2F2), color-stop(0.5, #DEDEDE));
}

.brokenclick:hover {
    cursor: pointer;
    color: #fff;
    border-color: #c00;
    -moz-box-shadow: 0 0 5px #c00;
    -webkit-box-shadow: 0 0 5px #c00;
    box-shadow: 0 0 5px #c00;

    background-color: #c00;
    background: -moz-linear-gradient(#c00 10%, #f33 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0.5, #c00), color-stop(0.5, #f33));
}




8: В файле /templates/templates/Simple/fullstory.tpl после:

Новость отредактировал
<font color="red"><strong>{editor}</strong></font> - {edit-date}</i></span>[edit-reason]<div class="quote">Причина: {edit-reason}</div>[/edit-reason][/edit-date]


добавляем:

{brokenLink}


Внимание! У вас нет прав для просмотра скрытого текста.

Похожие новости

Альтернатива стандартной форме входа DLE

Представляю вашему вниманию альтернативную форму входа для DLE + небольшой мини профиль.

08.11.16 Mодули DLE
Сворачивающиеся блоки 2.1 (AJAX)

Автор: MSW ICQ: 365-888 Версия DataLife Engine: 8.3 Пример: _http://megafile.mksat.net/

26.01.10 Mодули DLE
Последние комментарии

Мод для Dle , выводящий Последние комментарии, который вы можете видеть слева.

18.07.09 Mодули DLE

Комментарии (20)

avatar
#1 caSper
чет не работает((
avatar
#2 alex28j
На локалке работает. а на сервере в админке пишет что модуль не найден. и че теперь делать?
avatar
#3 Пользователь offline TipTop
Вот это конечено интересно хм..На локалке Да а на сервере НЕТ..Значит модуль работает но гдето ошибка при устаноке. Я бы попробывал еще раз с запроса для БД может там что не прописалось.
avatar
#4 alex28j
Несколько раз про бывал с базой, пишет тоже самое, нет модуля. sad А так хак очень полезный.

Файл выбранного раздела админпанели не найден


вот скрин! http://s46.radikal.ru/i111/1012/23/6f2755639250.jpg
avatar
#5 Пользователь offline TipTop
Что бы заработала админка, нужно:

Шаг 1.

array (
'name' => "Broken Links",
'url' => "$PHP_SELF?mod=brokenLinks",
'descr' => "",
'image' => "broen.png",
'access' => $user_group[$member_id['user_group']]['admin_edi
tusers']
),



поменять на:

array (
'name' => "Broken Links",
'url' => "$PHP_SELF?mod=brokenlinks",
'descr' => "",
'image' => "broken.png",
'access' => $user_group[$member_id['user_group']]['admin_edi
tusers']
),



Шаг 2.

Изменить имя файла brokenLinks на brokenlinks в папке inc
avatar
#6 alex28j
TipTop,
Спасибо тебе огромное, про inc я не додул. сам дурак. внимательно надо было смотреть.
А тебе еще раз спасибо!
avatar
#7 wwwartem
в админке
Fatal error: Call to undefined function dle_strlen() in /home/users2/w/wwwartem/domains/realkino.com/engine/inc/brokenlinks.php on line 38
avatar
#8 Deftoner
Fatal error: Call to undefined function dle_strlen() in /home/www/******/engine/inc/brokenlinks.php on line 38

Такая же какашка хелп пипл
avatar
#9 dimon212909
Люди, че делать, на денвере идет на хосте нет,и brokenLinks на brokenlinks поменял, в админке пишет нет доступа
avatar
#10 wwwartem
Deftoner,
у тебя ниже 9 версии?
avatar
#11 Aktteon
На 9 все работает как швейцарские часы!
avatar
#12 dzheka3d
А у меня вся админка работает нормально. Сайт тоже нормально. Но как только в админке нажимаешь broken links - появляется пустая страница с надписью Hacking attempt!

Пробовал заходить через другой браузер и чичтить куки
avatar
#13 ilya555
всем привет0 у меня дле 9.0 я все сдлелал как в инструкции и в коментарьях а все равно не работает пишет
Выбранная вами статья не найдена!
avatar
#14 caSper
чет на 9.2 не работает

2. Дописать в конец файла /engine/classes/js/js_edit.js:
И чет я ненашол такова файла

и как в базу добавляю то ошибку вибивает
Ошибка

SQL-запрос:

ALTER TABLE `dle_post` ADD `nolink` smallint( 5 ) NOT NULL default '0';


Ответ MySQL:
#1060 - Duplicate column name 'nolink'

все отбой разобрался:) вот бы еще чтоб админу приходило в личку сообщение что нажали на Перезалейте..
avatar
#15 motlik
Цитата: wwwartem
dle_strlen

Там нужно заменить dle_strlen на strlen
avatar
#16 zozo
Люди подскажите где взять этот файл 2. Дописать в конец файла /engine/classes/js/js_edit.js: у меня его нет там! Что делать ?
avatar
#17 Пользователь offline TipTop
Цитата: zozo
Люди подскажите где взять этот файл 2. Дописать в конец файла /engine/classes/js/js_edit.js: у меня его нет там! Что делать ?


Смотри архив установочный DLE там есть папка
Developer \ uncompressed \ dle_js.js
avatar
#18 Angelok
Народ подскажите в чем ошибка:
модуль установился...в админке его вижу...но при нажатии на новость или категорию на сайте, вместо новостей пустое место....


движок 9.2

avatar
#19 pro7
спасибо! работает!

отписался от спама! , ато галочку поставил случаянно!
avatar
#20 pronchak
Как сделать так, чтобы и не зарегистрированные пользователи видели эту кнопку "Перезалейте"?
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Powered by Dleshka.org. Копирование материала строго запрещено.
Закрыть