<?PHP /* ===================================================== Модуль Автообмен ссылок v1.4 для DataLife Engine ----------------------------------------------------- Created by nick-on [http://alldle.ru/] ----------------------------------------------------- ===================================================== Данный код защищен авторскими правами ===================================================== Файл: partner.php ----------------------------------------------------- Назначение: Добавление ссылки ===================================================== */ if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } // ---------------------------------------------------------------------------- // ---- Настройка // ---------------------------------------------------------------------------- define("SITE_LIMIT", 20); define("PLUG", ENGINE_DIR . '/inc/plugins/'); define("PARTNER_UPLOAD", ROOT_DIR."/uploads/partner/"); define("ITEM_IMAGE", "{THEME}/images/partner.gif"); // ---------------------------------------------------------------------------- // ----- Дальше ничего не трогать!! // ---------------------------------------------------------------------------- define("IMAGE_SIZE", 150); define("SITE_PREFIX", $config['http_home_url']."go.php?"); @set_time_limit(0); $allowed_extensions = array("gif", "jpg", "png", "jpe", "jpeg"); require_once PLUG . '/partner.functions.php'; require_once ENGINE_DIR.'/classes/parse.class.php'; $parse = new ParseFilter(Array(), Array(), 1, 1); // ---------------------------------------------------------------------------- // Определение откуда пришёл пользователь (Получаем реферер) // ---------------------------------------------------------------------------- if ($_SERVER['REMOTE_ADDR']) $ip = $_SERVER['REMOTE_ADDR']; else $ip = "not detected"; if (!empty($HTTP_ENV_VARS) && isset($HTTP_ENV_VARS['HTTP_REFERER'])) { $HTTP_REFERER = $HTTP_ENV_VARS['HTTP_REFERER']; } else if (@getenv('HTTP_REFERER')) { $HTTP_REFERER = getenv('HTTP_REFERER'); }; $ref_site_ereg = clear_url($HTTP_REFERER); if (!eregi($config['http_home_url'], $HTTP_REFERER) and trim( $HTTP_REFERER ) != "" ) { $sql_query = "SELECT * FROM ".PREFIX."_partner WHERE site_url LIKE '%$ref_site_ereg%'"; $result = $db->query($sql_query); while ($row = $db->get_row($result)) { // ---- while start $ereg_url = clear_url($row['site_url']); if (trim($ereg_url) != "") { if (eregi($ereg_url, $HTTP_REFERER)) { $sql_query = "UPDATE ".PREFIX."_partner SET views = views + 1 WHERE id = '" . $row['id'] . "'"; $db->query($sql_query); } } }; // ----- while end }; // ---------------------------------------------------------------------------- // Отображение общего списка партнёров // ---------------------------------------------------------------------------- if ($partner_action == "show") { $partner = dle_cache("partner", $config['skin']); if (!$partner) { $partner = "<table cellpadding=4 cellspacing=0>"; $result = $db->query("SELECT site_url, site_name, site_image, site_description, id FROM ".PREFIX."_partner WHERE locked = 0 ORDER BY views DESC, clicks DESC LIMIT 0, ".SITE_LIMIT); while ($row = $db->get_row($result)) { if (trim($row['site_image']) != "") { $image_url = $config['http_home_url']."uploads/partner/" . $row['site_image']; } else { $image_url = $config['http_home_url']."engine/skins/images/users.png"; } $site_desc = stripslashes($row['site_description']); $partner .= "<tr> <td class=stext><img src=\"".ITEM_IMAGE."\" border=0></td> <td class=stext style=\"padding:2px\"> <a onMouseover=\"showhint('<center><img src=$image_url border=0><br>$site_desc</center>', this, event, '160px')\" href=\"" . SITE_PREFIX . $row['site_url']."\" target=\"_blank\">$row[site_name]</a> </td></tr>"; }; $partner .= "</table>"; create_cache ("partner", $partner); }; // ---------------------------------------------------------------------------- // Добавление ссылки в базу // ---------------------------------------------------------------------------- } elseif ($_POST['proceed'] == "add") { $sec_code = trim($_SESSION['sec_code_session']); $site_name = $db->safesql($parse->process($_POST['reg_site_name'])); $site_url = $db->safesql($parse->process($_POST['reg_site_url'])); $site_desc = $db->safesql($parse->process($_POST['reg_site_desc'])); $sec_code_inp = $db->safesql($parse->process($_POST['reg_sec_code'])); $stop = false; // Проверка длины имени сайта и ссылки if (strlen($site_name) > 60 or strlen($site_url) > 255) { msgbox ($lang['all_info'], "Превышена длина имени сайта или его ссылки.<br> Имя сайта должно быть не больше 60 символов, а ссылка не более 255 символов<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); // Проверка имени сайта } elseif ((preg_match("/[\||\'|\"|\!|\$|\@|\&\~\*\+]/", $site_name)) or (empty($site_name))) { msgbox ($lang['all_info'], "Неверно указано имя сайта.<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); // Проверка ссылки сайта } elseif (!(eregi("http:\/\/", $site_url) || eregi("www", $site_url))) { msgbox ($lang['all_info'], "Неверно указана ссылка сайта.<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); // Проверка кода } elseif ($sec_code != $sec_code_inp) { msgbox ($lang['all_info'], "Неверно указан код.<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); // Описание сайта } elseif (strlen($site_desc) > 255) { msgbox ($lang['all_info'], "Неверно указано описание сайта.<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); }; // --- Проверка ссылки .. $checked = false; $status = check_url($site_url); switch ($status) { case -1: msgbox ($lang['all_info'], "Нет соединения с Вашим сервером! Невозможно проверить наличие нашей ссылки на Вашем сайте.. попробуйте повторить операцию позже<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); break; case 0: msgbox ($lang['all_info'], "Перед добавлением ссылки на Наш сайт Вам необходимо поставить нашу ссылку на Ваш сайт, в противном случае ссылка не будет добавлена!<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); break; case 1: $checked = true; break; } if ($checked == true) { // Закачка файла if (trim($_FILES['reg_site_image']['name']) != "") { $file_temp = $_FILES['reg_site_image']['tmp_name']; $file_name = $_FILES['reg_site_image']['name']; $file_size = $_FILES['reg_site_image']['size']; $max_size = $config['max_up_size'] * 1024; /* --- Ограничение по размеру (настраивается в админпанели) --- */ if ($file_size > $max_size) { $stop = true; msgbox ($lang['all_info'], "Ошибка загрузки файла. Слишком большой размер.<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); } else { $file_ext = explode(".", strtolower($file_name)); $file_ext = end($file_ext); /* --- Проверка расширения файла --- */ if (in_array($file_ext, $allowed_extensions)) { $file_prefix = time(); $upload_name = PARTNER_UPLOAD."large_".$file_prefix."_".$file_name; $thumb_name = PARTNER_UPLOAD."thumb_".$file_prefix."_".$file_name; $only_name = basename($thumb_name); $upload_complete = false; $upload_result = @move_uploaded_file($file_temp, $upload_name); if (!$upload_result) { msgbox ($lang['all_info'], "Ошибка загрузки файла.<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); } else { /* --- Уменьшение картинки --- */ require_once ENGINE_DIR."/inc/makethumb.php"; $thumb = new thumbnail($upload_name); if ($thumb->size_auto(IMAGE_SIZE)) { $thumb->jpeg_quality($config['jpeg_quality']); $thumb->save($thumb_name); /* --- Удаление исходного файла --- */ if (file_exists($upload_name)) @unlink($upload_name); $upload_complete = true; } else { /* --- Если файл меньше размером чем IMAGE_SIZE --- */ rename($upload_name, $thumb_name); $upload_complete = true; } } } else { $stop = true; msgbox ($lang['all_info'], "Выбранный файл запрещён к закачке<br><a href=\"$config[http_home_url]\">Вернуться назад</a>"); } }; }; if ($stop == false) { $url = str_replace("http://", "", $site_url); $url = str_replace("www.", "", $url); // Проверка на наличие дубликатов ссылки $dupe_url = $db->query("SELECT id FROM ".PREFIX."_partner WHERE site_url LIKE '%$url%'"); if ($db->num_rows($dupe_url) > 0) { $stop = true; msgbox ($lang['all_info'], "Данный адрес сайта уже есть в базе.<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); } else { // --- Регистрируем --- // if ($upload_complete == true) { $db->query("INSERT INTO ".PREFIX."_partner (site_description, site_name, site_url, site_image, views, locked, ip) VALUES ('$site_desc', '$site_name', '$site_url', '$only_name', '0', '0', '$ip')"); } else { $db->query("INSERT INTO ".PREFIX."_partner (site_description, site_name, site_url, views, locked, ip) VALUES ('$site_desc', '$site_name', '$site_url', '0', '2', '$ip')"); }; clear_cache('partner'); // ------------------------------------------------------------------------- // Отправка письма админу (Уведомление о регистрации) // ------------------------------------------------------------------------- $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/plain; charset=\"{$config['charset']}\"\n"; $headers .= "From: \"{$config['home_title']}\" <{$config['admin_mail']}>\n"; $headers .= "Return-Path: {$config['admin_mail']}\n"; $headers .= "X-Priority: 3\n"; $headers .= "X-Mailer: DLE with PHP!\n"; $now = langdate($config['timestamp_active'], time()); $msg = <<<TEXT Время регистрации: {$now}\n Название: {$site_name}\n URL: {$site_url}\n Описание: {$site_desc}\n IP: {$ip}\n TEXT; @mail($config['admin_mail'], 'Регистрация сайта', $msg, $headers); // ---- mail end .... msgbox ($lang['all_info'], "Ваш сайт успешно зарегистрирован. Спасибо за сотрудничество!<br><a href=\"$config[http_home_url]\">Вернуться назад</a>"); } } }; // ---------------------------------------------------------------------------- // Форма добавления новой ссылки // ---------------------------------------------------------------------------- } elseif ($partner_action == "partner-form") { $sql_query = "SELECT site_name, site_url, site_description, site_image FROM ".PREFIX."_partner WHERE locked = '0' ORDER BY views DESC, clicks DESC"; $sql_result = $db->query($sql_query); $partners = "<table cellpadding=\"4\" cellspacing=\"0\" width=\"100%\">"; $all_count = $db->num_rows($sql_result); if ($all_count != 0) { $count = 0; $flag = false; while ($row = $db->get_row($sql_result)) { $site_name = stripslashes($row['site_name']); $site_link = "<a href=\"" . $row['site_url'] . "\" target=\"_blank\" class=\"stext\">" . $site_name . "</a>"; if ($flag == false) { $left_column .= $site_link . "<br/>"; $flag = true; } else { $right_column .= $site_link . "<br/>"; $flag = false; } }; $partners .= <<<HTML <tr> <td align="left" valign="top" class="stext">$left_column</td> <td align="right" valign="top" class="stext">$right_column</td> </tr> HTML; } else { $partners .= "<tr><td colspan=\"2\" align=\"center\" class=\"stext\">- нет данных -</td></tr>"; } $partners .= "</table>"; $tpl->load_template('partner.tpl'); $tpl->set('{partners}', $partners); $tpl->copy_template = '<!-- -->' . $tpl->copy_template . '<!-- the end partner form -->'; $tpl->compile('content'); }; ?> |