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

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

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

Особености:
— кнопка видна только зарегистрированным пользователям
— кнопку можно нажать только 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}’, «Перезалейте!» );
            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}’ AND date  $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’ => «broken.png»,
                                           ‘access’ => $user_group[$member_id[‘user_group’]][‘admin_edi
                                            tusers’]
                                ),


7. Дописать в конец файла /templates/ВАША ТЕМА/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/ВАША ТЕМА/fullstory.tpl после:


{full-story}

{brokenLink}

Забрать

Прикреплённые файлы:
Файл: ed_broken_links_v1.zip
Размер: [9,85 Kb] (забрали: 8 раз)