Вопрос: Что делает хак ?
Ответ: Хак делает подсчёт количества скачиваний материала по удалённой ссылке если файл не загружен на сервер.
В: Как это происходит ?
О: Всё работает через [attachment=X] - название , ссылка , размер файла Вы записуете сами , а ссылка записывается под видом аттача.
В: Что мне нужно сделать чтобы установить хак ?
О: Читать полную новость.
И так после после небольшого диалога начинаем:
После успешной установки хака , там где Вы раньше загружали аттачи , появятся доп. поля , введя которые и нажав на "Загрузить" , файл появится в списке аттачей.
Установка:
1. Для начала делаем запрос:
2. Идём в engine/download.php
Заменим:
На:
И:
На:
3. Далее в engine/modules/functions.php
Заменим:
На:
4. Пойдём в engine/inc/files.php
После:
Вставим:
После:
Вставить:
Заменим:
На:
Установка завершена.
Автор: keiZ
После успешной установки хака , там где Вы раньше загружали аттачи , появятся доп. поля , введя которые и нажав на "Загрузить" , файл появится в списке аттачей.
Установка:
1. Для начала делаем запрос:
ALTER TABLE dle_files ADD COLUMN size VARCHAR(10) not null;
2. Идём в engine/download.php
Заменим:
$row = $db->super_query("SELECT name, onserver FROM " . PREFIX . "_files WHERE id ='$id'");
На:
$row = $db->super_query("SELECT name, onserver, size FROM " . PREFIX . "_files WHERE id ='$id'");
И:
$config['files_max_speed'] = intval($config['files_max_speed']);
$file = new download(FILE_DIR.$row['onserver'],$row['name'], $config['files_force'], $config['files_max_speed']);
if ($config['files_count'] == "yes" AND !$file->range) $db->query("UPDATE " . PREFIX . "_files set dcount=dcount+1 where id ='$id'");
$db->close();
$file = new download(FILE_DIR.$row['onserver'],$row['name'], $config['files_force'], $config['files_max_speed']);
if ($config['files_count'] == "yes" AND !$file->range) $db->query("UPDATE " . PREFIX . "_files set dcount=dcount+1 where id ='$id'");
$db->close();
На:
$config['files_max_speed'] = intval($config['files_max_speed']);
if ($row['size']) {
$file = "";
header("Location: {$row['onserver']}");
}
else {
$file = new download(FILE_DIR.$row['onserver'],$row['name'], $config['files_force'], $config['files_max_speed']);
}
if ($config['files_count'] == "yes" AND !$file->range) $db->query("UPDATE " . PREFIX . "_files set dcount=dcount+1 where id ='$id'");
$db->close();
if ($row['size']) {
$file = "";
header("Location: {$row['onserver']}");
}
else {
$file = new download(FILE_DIR.$row['onserver'],$row['name'], $config['files_force'], $config['files_max_speed']);
}
if ($config['files_count'] == "yes" AND !$file->range) $db->query("UPDATE " . PREFIX . "_files set dcount=dcount+1 where id ='$id'");
$db->close();
3. Далее в engine/modules/functions.php
Заменим:
$db->query("SELECT id, name, onserver, dcount FROM " . PREFIX . "_files WHERE $where");
while($row = $db->get_row()){
$size = formatsize(@filesize ( ROOT_DIR . '/uploads/files/' . $row['onserver'] ));
if (!$user_group[$member_id['user_group']]['allow_files'])
$link = "<span id="attachment">{$lang['att_denied']}</span>";
elseif ($config['files_count'] == 'yes')
$link = "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$size}] ({$lang['att_dcount']} {$row['dcount']})</span>";
else
$link = "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$size}]</span>";
$story = str_replace( '[attachment='.$row['id'].']', $link, $story );
}
$db->free();
while($row = $db->get_row()){
$size = formatsize(@filesize ( ROOT_DIR . '/uploads/files/' . $row['onserver'] ));
if (!$user_group[$member_id['user_group']]['allow_files'])
$link = "<span id="attachment">{$lang['att_denied']}</span>";
elseif ($config['files_count'] == 'yes')
$link = "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$size}] ({$lang['att_dcount']} {$row['dcount']})</span>";
else
$link = "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$size}]</span>";
$story = str_replace( '[attachment='.$row['id'].']', $link, $story );
}
$db->free();
На:
$db->query("SELECT id, name, onserver, dcount, size FROM " . PREFIX . "_files WHERE $where");
while($row = $db->get_row()){
$size = formatsize(@filesize ( ROOT_DIR . '/uploads/files/' . $row['onserver'] ));
$row['name'] = explode("/", $row['name']);
$row['name'] = end($row['name']);
if (!$user_group[$member_id['user_group']]['allow_files'])
$link = "<span id="attachment">{$lang['att_denied']}</span>";
elseif ($config['files_count'] == 'yes')
{
if ($row['size']) {
$link = "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$row['size']}] ({$lang['att_dcount']} {$row['dcount']})</span>";
}
else
$link = "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$size}] ({$lang['att_dcount']} {$row['dcount']})</span>";
}
else
{
if ($row['size']) {
$link = "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$row['size']}]</span>";
}
else
{
$link = "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$size}]</span>";
}
}
$story = str_replace( '[attachment='.$row['id'].']', $link, $story );
}
$db->free();
while($row = $db->get_row()){
$size = formatsize(@filesize ( ROOT_DIR . '/uploads/files/' . $row['onserver'] ));
$row['name'] = explode("/", $row['name']);
$row['name'] = end($row['name']);
if (!$user_group[$member_id['user_group']]['allow_files'])
$link = "<span id="attachment">{$lang['att_denied']}</span>";
elseif ($config['files_count'] == 'yes')
{
if ($row['size']) {
$link = "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$row['size']}] ({$lang['att_dcount']} {$row['dcount']})</span>";
}
else
$link = "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$size}] ({$lang['att_dcount']} {$row['dcount']})</span>";
}
else
{
if ($row['size']) {
$link = "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$row['size']}]</span>";
}
else
{
$link = "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$size}]</span>";
}
}
$story = str_replace( '[attachment='.$row['id'].']', $link, $story );
}
$db->free();
4. Пойдём в engine/inc/files.php
После:
if ($serverfile != '' AND !@file_exists(ROOT_DIR."/uploads/files/".$serverfile)) $serverfile = '';
Вставим:
if ($imageurldfl !="") {
if ($imgurldflname !=""){
if ($imagesize !=""){
$db->query("INSERT INTO " . PREFIX . "_files (news_id, name, onserver, author, date, size) values ('$news_id', '$imgurldflname', '$imageurldfl', '$author', '$added_time', '$imagesize')");
}
}
}
if ($imgurldflname !=""){
if ($imagesize !=""){
$db->query("INSERT INTO " . PREFIX . "_files (news_id, name, onserver, author, date, size) values ('$news_id', '$imgurldflname', '$imageurldfl', '$author', '$added_time', '$imagesize')");
}
}
}
После:
<input class="edit" type="text" name="imageurl" size=42></div>
<div class="hr_line"></div>
<div class="hr_line"></div>
Вставить:
<div>Название материала <input class="edit" type="text" name="imgurldflname" size=42></div>
<div>Ссылка на материал <input class="edit" type="text" name="imageurldfl" size=42></div>
<div>Размер <input class="edit" type="text" name="imagesize" size=42></div>
<div class="hr_line"></div>
<div>Ссылка на материал <input class="edit" type="text" name="imageurldfl" size=42></div>
<div>Размер <input class="edit" type="text" name="imagesize" size=42></div>
<div class="hr_line"></div>
Заменим:
$db->query("SELECT id, name, onserver FROM " . PREFIX . "_files where author = '$author' AND news_id = '$news_id'");
while($row = $db->get_row()){
$this_size = formatsize(@filesize(ROOT_DIR."/uploads/files/".$row['onserver']));
$file_link = "<a class=maintitle href="javascript:insertfile('[attachment={$row['id']}]')">{$row['name']}</a>";
while($row = $db->get_row()){
$this_size = formatsize(@filesize(ROOT_DIR."/uploads/files/".$row['onserver']));
$file_link = "<a class=maintitle href="javascript:insertfile('[attachment={$row['id']}]')">{$row['name']}</a>";
На:
$db->query("SELECT id, name, onserver, size FROM " . PREFIX . "_files where author = '$author' AND news_id = '$news_id'");
while($row = $db->get_row()){
if ($row['size']) {
$this_size = $row['size'];
} else {
$this_size = formatsize(@filesize(ROOT_DIR."/uploads/files/".$row['onserver']));
}
$file_link = "<a class=maintitle href="javascript:insertfile('[attachment={$row['id']}]')">{$row['name']}</a>";
while($row = $db->get_row()){
if ($row['size']) {
$this_size = $row['size'];
} else {
$this_size = formatsize(@filesize(ROOT_DIR."/uploads/files/".$row['onserver']));
}
$file_link = "<a class=maintitle href="javascript:insertfile('[attachment={$row['id']}]')">{$row['name']}</a>";
Установка завершена.
Автор: keiZ