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

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

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


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

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


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


Особености:
- кнопка видна только зарегистрированным пользователям
- кнопку можно нажать только 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}


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

Комментарии

чет не работает((
На локалке работает. а на сервере в админке пишет что модуль не найден. и че теперь делать?

TipTop

Администраторы 15 декабря 2010 12:54
Вот это конечено интересно хм..На локалке Да а на сервере НЕТ..Значит модуль работает но гдето ошибка при устаноке. Я бы попробывал еще раз с запроса для БД может там что не прописалось.
Несколько раз про бывал с базой, пишет тоже самое, нет модуля. sad А так хак очень полезный.

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


вот скрин! http://s46.radikal.ru/i111/1012/23/6f2755639250.jpg

TipTop

Администраторы 15 декабря 2010 15:07
Что бы заработала админка, нужно:

Шаг 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
TipTop,
Спасибо тебе огромное, про inc я не додул. сам дурак. внимательно надо было смотреть.
А тебе еще раз спасибо!
в админке
Fatal error: Call to undefined function dle_strlen() in /home/users2/w/wwwartem/domains/realkino.com/engine/inc/brokenlinks.php on line 38
Fatal error: Call to undefined function dle_strlen() in /home/www/******/engine/inc/brokenlinks.php on line 38

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

Пробовал заходить через другой браузер и чичтить куки
всем привет0 у меня дле 9.0 я все сдлелал как в инструкции и в коментарьях а все равно не работает пишет
Выбранная вами статья не найдена!
чет на 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'

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

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

TipTop

Администраторы 21 мая 2011 08:13
Цитата: zozo
Люди подскажите где взять этот файл 2. Дописать в конец файла /engine/classes/js/js_edit.js: у меня его нет там! Что делать ?


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


движок 9.2

спасибо! работает!

отписался от спама! , ато галочку поставил случаянно!
Как сделать так, чтобы и не зарегистрированные пользователи видели эту кнопку "Перезалейте"?

Информация

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


Личные сообщения

Ваши переписки