Многие спрашивают, как же сделать второй зц на сайте. В этой статье я постараюсь описать
данный процесс.
Примером для наших экспериментов будет родной ЗЦ
Итак начнем:
Создаем папку dl и кидаем туда все папки и файлы от родного зц
1 нам необходимо сделать новую таблицу в базе данных- `dl`. Для создания базы нам необходимо
зайти в phpmyadmin и сделать такой sql запрос:
DROP TABLE IF EXISTS `dl`;
CREATE TABLE `dl` (
`id` int(11) NOT NULL auto_increment,
`refid` int(11) NOT NULL,
`adres` text NOT NULL,
`time` int(11) NOT NULL,
`name` text NOT NULL,
`type` varchar(4) NOT NULL,
`avtor` varchar(25) NOT NULL,
`ip` text NOT NULL,
`soft` text NOT NULL,
`text` text NOT NULL,
`screen` text NOT NULL,
PRIMARY KEY (`id`),
KEY `refid` (`refid`),
KEY `type` (`type`),
KEY `time` (`time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
- это создаст новую базу
2 если мы хотим сделать загруз полноценным модулем системы, то необходимо сделать еще кое
какие изменения в базе, а именно в таблице `cms_settings` сделать запрос такого типа
INSERT INTO `cms_settings` (`key`, `val`) VALUES
('mod_dl', '1'),
('mod_dl_msg', 'Загрузки временно закрыты');
3 Далее переходим к самому загрузу. нам необхордимо пакетное преобразование файлов, ибо все
делать в ручную очень долго и нудно, я рекомендую программу PsPad (скачать можно тут
www.pspad.com/ru/ ) Программа простая и тем не менее предлагает широкий спктр инструментов
для разработчика.
4 открываем программу, открываем папку(dl) с загрузом, выделяем все файлы и перетаскиваем их
в рабочее поле пограммы pspad (далее программы).
5 Далее в на панели инструментов ищем кнопку "поиск и/или замена файла" и делаем так:
В поле исходный текст пишем download? ставим галку заменить на, вписываем dl ставим кодировку
UTF-8 и границы поиска- Открытые файлыю жмем ОК видим 67 вхождений download найдено в 22
файлах. Ура замена прошла успешно.
6 В файле index.php ищем строку 27 и пишем так
// Закрываем доступ к загрузкам
if (!$set['mod_dl'] && $dostadm != 1)
{
require_once ("../incfiles/head.php");
echo '<p>' . $set['mod_dl_msg'] . '</p>';
require_once ("../incfiles/end.php");
exit;
}
В строке 44
if (!$set['mod_dl'])
7 создаем файл config.php и кидаем его в папку dl:
<?php
defined('_IN_JOHNCMS') or die('Error: restricted access');
// Статистика загрузок //
function dlcount()
{
global $realtime;
$fl = mysql_num_rows(mysql_query("select `id` from `dl` where `type`='file' ;"));
$old = $realtime - (3 * 24 * 3600);
$fl1 = mysql_num_rows(mysql_query("select `id` from `dl` where `time` > '" . $old . "'
and `type`='file' ;"));
$out = $fl;
if ($fl1 > 0)
{
$out = $out . "/<a href='dl/index.php?act=new'><font
color='#FF0000'>+$fl1</font></a>";
}
return $out;
}
// проверка на существование каталога //
function prov1($catalog)
{
$cat1 = mysql_query("select * from `dl` where type='cat' and id = '" . $catalog . "';");
$cat2 = mysql_num_rows($cat1);
$adrdir = mysql_fetch_array($cat1);
if (($cat2 == 0) || (!is_dir("$adrdir[adres]/$adrdir[name]")))
{
echo "Ошибка при выборе категории<br/><a href='?'>К категориям</a><br/>";
require_once ('../incfiles/end.php');
exit;
}
}
?>
в индексе после 19 строки вставляем
require_once ("config.php");
8 Далее делаем еще одно пакетное преобразование (см. пункт 3) меняем provcat на provcat1
(7вхождений)
9 Далее открываем файл ../pages/mainmenu.php и вставляем куда необходимо
require_once ("dl/config.php");
echo '<div class="menu"><a href="dl/">Загрузки2</a> (' . dlcount() . ')</div>';
10 В папке panel находим файл main.php открываем программой, ищем строку 114 (case
'modules'
после 147 строки вставляем
echo '<input name="dl" type="checkbox" value="1" ' . ($set['mod_dl'] ? 'checked="checked"' :
'') . ' /> загрузки2<br />';
после 130 строки вставляем
mysql_query("UPDATE `cms_settings` SET `val`='" . (isset($_POST['dl']) ? intval($_POST['dl'])
: 0) . "' WHERE `key`='mod_dl';");
11 все файлы которые вы редактировали (все в папке dl), mainmenu.php, main.php льете на хост,
Ставите chmod 777 на папки:
/dl/arctemp/
/dl/files/
/dl/graftemp/
/dl/screen/
/dl/mp3temp/
/dl/upl/
12 готова!