Мы будем Вам признательны, если Вы поддержите проект Open SLAED и используя Ваши возможности, разместите наш пресс-релиз на страницах своих сайтов, проектов, форумов, блогов. Текст пресс-релиза, возможно, видоизменить под Ваш формат, не искажая смысл. Пресс-релиз можно взять на данной странице.
Не для кого не секрет что некоторые сайты для экономии своего трафика и размера используемого места на сервере применяют удалённые изображения с других сайтов, тем самым поглощают чужой трафик и повышают нагрузку на сервер. Что бы этому воспрепятствовать, предлагаю к использованию следующие методы.
На случай если необходимо запретить использовать любые изображения сайта
1. Войдите в панель управления системой, отдел: Панель администратора >> Редактор
2. В файл конфигураций правил преобразований ЧПУ на серверном уровне: .htaccess
После:
Добавьте следующую запись:
Заместо: slaed укажите своё имя домена.
Заместо: net укажите своё окончание домена.
Заместо: http://www.slaed.net/images/logos/Logo_Web_2_2.gif укажите ссылку на ваш логотип или изображение которое будет отображаться на том сайте который использует Ваше изображение.
Для того, что бы запретить использовать изображения только определённой директории
1. Создайте файл: .htaccess со следующим содержанием:
Заместо: slaed укажите своё имя домена.
Заместо: net укажите своё окончание домена.
Заместо: http://www.slaed.net/images/logos/Logo_Web_2_2.gif укажите ссылку на ваш логотип или изображение которое будет отображаться на том сайте который использует Ваше изображение.
2. Загрузите созданный файл в директорию, использования изображений которой должны быть запрещены.
Для работы этих методов, сервер Вашего хостера должен поддерживать работу с .htaccess, Mod Rewrite должен быть установлен и активирован.
Модуль MiniChat. Модуль сделан и опробован на Slaed 1.6.
Спасибо за тестирование моего Блока: http://www.slaed.net/index.php?name=Files&op=view&id=522
В этой версии учел пожелания: fskon.
Пишите мне, я постараюсь выполнить ваши пожелания.
1. Убрал класс ОверЛиб, так как выпадающие меню выглядят не корректно в разных броузерах.
2. Убрал ограничение сообщений.
3. Добавил кнопки для листания текста.
Прежде чем перейти к описанию интеграции модулей, хотелось бы заметить, что в системе могут быть использованы различные модули, блоки и скрипты, не только из похожих по принципу построения систем, но и совершенно не похожих. Не смотря на то, что оригинальные модули и блоки используют стандартные функции, это не является основным фактором в их работе. В системе могут работать модули, совершенно не используя основные функции ядра. В некоторых случаях потребуются только не большие изменение в коде интегрируемого модуля, блока или скрипта.
В данном примере мы рассмотрим способ ручной интеграции модулей одной из самых популярных систем построения сайтов PHP-Nuke. Программу, написанную специально для нашей системы, для автоматической интеграции модулей PHP-Nuke в SLAED CMS Вы можете скачать на нашем проекте в каталоге файлов.
Прошу учитывать, что старые варианты использования кода в модулях PHP-Nuke могут незначительно отличаться от описанных в данной статье.
1. В самом верху изменяем способ защиты для модулей от стороннего доступа.
Старый вариант: if (!eregi("modules.php", $_SERVER["PHP_SELF"])) {
die ("You can"t access this file directly...");
}
Новый вариант: if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
2. Старые модули PHP-Nuke используют соединение с базой по средствам переменной $dbi. Наша система использует соединение с базой по средствам переменной $db, по этой причине необходимо изменить все переменные $dbi на $db.
Меняем все глобальные переменные $dbi в функциях, на новые $db. Если это необходимо, указываем переменную $db как глобальную.
Старый вариант: global $prefix, $dbi;
Новый вариант: global $prefix, $db;
Изменяем структуру запроса в базу данных.
Старый вариант: $result = sql_query("SELECT id, name FROM ".$prefix."_categories WHERE id=$id", $dbi);
Новый вариант: $result = $db->sql_query("SELECT id, name FROM ".$prefix."_categories WHERE id=$id");
Как вы заметили, удалена переменная $dbi в конце запроса и добавлена переменная $db в начале. Это нужно проделать со всеми запросами.
В запросах необходимо изменить:
sql_fetch_array на $db->sql_fetchrow sql_query на $db->sql_query sql_fetch_row на $db->sql_fetchrow sql_num_rows на $db->sql_numrows sql_free_result на $db->sql_freeresult
Если появляются вопросы по поводу запросов или правильности их написания, смотрим файл function/mysql.php
В некоторых модулях используются прямые запросы в базу данных в обход файла классов соединения с базой. В таком варианте запросы не подсчитываются. При желании вы так же можете изменить запросы подобного рода.
В запросах необходимо изменить:
mysql_fetch_array на $db->sql_fetchrow mysql_query на $db->sql_query mysql_fetch_row на $db->sql_fetchrow mysql_num_rows на $db->sql_numrows mysql_free_result на $db->sql_freeresult
В функциях не забываем указывать переменную $db как глобальную.
3. В некоторых модулях производится соединение с файлом конфигурации которое нужно заменить.
Старый вариант: include("config.php");
Новый вариант: include("config/config.php");
4. В некоторых модулях используется переменная основного адреса сайта, которую нужно заменить.
Старый вариант: $nukeurl
Новый вариант: $conf['homeurl']
Не исключено что в последствии возникнет необходимость использования параметров основных конфигураций системы. Для этих целей рекомендуется прописать в глобальные, переменную $conf, отвечающую за основные настройки, которые хранятся в файле config/config_global.php
5. В некоторых модулях используются функции темы OpenTable2() и CloseTable2() которые нужно заменить.
Старый вариант: OpenTable2();
Новый вариант: OpenTable();
Старый вариант: CloseTable2();
Новый вариант: CloseTable();
6. В стандартных модулях в начале скриптов используется соединение с файлом mainfile.php.
Необходимо удалить: require_once("mainfile.php"); или include("mainfile.php");
7. Во всех скриптах нужно произвести поиск и изменить стандартные ссылки modules.php на index.php.
Старый вариант: modules.php
Новый вариант: index.php
8. Во всех скриптах нужно произвести поиск и удалить стандартные цветовые переменные в глобальных, и заменить их в коде.
Старый вариант: bgcolor="$bgcolor1"
Новый вариант: class="bgcolor1"
Старый вариант: bgcolor="$bgcolor2"
Новый вариант: class="bgcolor2"
Старый вариант: bgcolor="$bgcolor3"
Новый вариант: class="bgcolor3"
Старый вариант: bgcolor="$bgcolor4"
Новый вариант: class="bgcolor4"
Современные тенденции развития “Warez-порталов” поражают, но еще большее удивление вызывают методы, которые используют их администраторы. Для тех, кто еще не понял о чем пойдет речь, приведу простой пример: существует простой сайт, относящийся к категории обзоров программного обеспечения, ничем существенным не выделяется, прибыли не приносит, и, следовательно, ни какой пользы его владельцу не дает. Стандартные методы раскрутки: раздача “халявных” icq-номерков, размещение материалов категории “warez” – не помогают.
Перед администратором подобного ресурса встает непростой вопрос о дальнейшем развитии и даже существовании сайта. Выход есть – западные ресурсы, а вернее их методы раскрутки. Безусловно, это самый простой способ привлечения новых посетителей на свой сайт и получения прибыли от рекламных баннеров. Ведь намного сложнее публиковать собственные обзоры, чем просто копировать их с других, подобных источников.
Отдельное внимание, я думаю, стоит уделить этим самым методам. Вышеуказанные (стандартные) способы, как уже было отмечено, мало, кого интересуют, и являются именно стандартным атрибутом. Портальные системы вида *Nuke, установленные на этих сайтах приходят в негодность. На их смену грядет новая эра – DDL. Выражаясь научным языком, DDL – это Data Definition Language, язык описания данных, используемый для создания и редактирование таблиц в базе данных SQL. Я бы сказал иначе, DDL (в понимании “движка” для сайтов) – это всепоглощающая чернь сети Интернет, заставляющая поголовно, почти каждого администратора или целую группу ведущих софт-обзорного сайта переходить на этот новый “супер-пупер-мегамощный” движок, сводя всю работу к нулю! Основные принципы работы такой системы заключаются в следующем: вместо привычных всем новостных таблиц, здесь располагается лишь одна, содержащая, как правило, три, четыре колонки (название объекта, дата добавления и адрес отправителя), материалы добавляются администраторами других сайтов, при чем им достаточно лишь указать ссылку на объект. Таким образом, все материалы на DDL-движке НЕ имеют описания и скриншотов! И в 50-70% случаев есть реальная возможность получить вместе со скачиваемым объектом, какую-нибудь “дрянь”, и в данном случае речь идет не только о вирусах или троянах. Обусловлена такая ситуация тем, что именно администраторы других ресурсов добавляют новые материалы. Зачем им это надо? Ответ прост – размещение ссылки на их сайт. А если добавить 10 ссылок на программы, “warez”, порнографические материалы, то отдача будет еще больше. И не важно, какие ссылки там размещаются, главное, чтобы имена архивов совпадали с заголовками объектов. А значит можно размещать там что угодно и в каких угодно количествах. А если у недовольных посетителей появятся вопросы или негативные отзывы, то всех их дружно пошлют в… не менее стандартный уже раздел “Disclaimer”, что в переводе значит “Отмазка”, повествующий, грубо говоря, о том, что администраторы ни в чем не виноваты, потому что размещают все бесплатно, и если у Вас после использования предоставленных на сайте материалов ОС вообще не запускается – это Ваши проблемы.
На англоязычных сайтах такая система существует уже приличное количество времени и подобных ресурсов появилось просто немеренное количество. Вот примерный список основных DDL и “warez-порталов”, активно рекламирующих свои сайты с помощью их систем: limneos.net, katz.ws, phazeddl.com, directdownloads.ws, ddldestination.com, ddloutpost.com, ddlgalaxy.com, ddl2.com, xtremedl.com, gotwarez.net, ddlspot.com, warezbs.com, datowarez.info, warezcollector.com, directdl.com, qualityddl.com, ddlworld.com, muchwarez.com, ddlnow.com, warezdownloads.info, warezterminal.com, robowarez.com, directwarez.com, ddl.phrozex.com , atomicddl.com, warezddl.mtvgr.com, novoting.com, ddlporn.com, ddlnetwork.net, submissionz.com, antoddl.com, warezfreaks.com
В рунете же DDL’щиков можно сосчитать буквально по пальцам. Ведь не каждый готов вот так запросто отдать 40, а то и все 60$ за уже готовый движок. Но наши “пытливые умы”, помимо размещения своих материалов на таких сайтах, нашли не менее хороший способ раскрутки – обмен ссылками с DDL-сайтами. Безусловно, он обеспечивает моментальную раскрутку и привлечение нескольких тысяч посетителей. Но! Стоит отметить, что это зарубежная аудитория и ей на врят ли понравиться читать русские новости. И опять встает вопрос, что же делать? И опять наши, русские “умники” находят ответ – перевести весь сайт на английский язык, и новости добавлять в том же стиле. А что, ведь это очень просто! Теперь больше не надо просматривать несколько десятков сайтов в поисках нужного тебе описания, чтобы просто скопировать его себе, без указания авторского права, разумеется. А нужно всего лишь найти официальный сайт программы, который зачастую и предоставляет описание на английском языке, и скопировать оттуда весь текст. Технология “copy / paste” все больше и больше процветает, сокращая работу news-maker’ов до абсолютного минимума! Таким первопроходцем стал AntoSoft.net – гнусный, никчемный сайт, соорудивший недавно свой DDL-отдел.
И вот теперь наступает самое главное – заработок на партнерских программах. Ни одна уважающая себя российская компания вроде Clx.ru или Txtbanner.net не станет регистрировать сайт, размещающий “warez-материалы” в столь откровенном виде. И на смену им приходит новый диктатор условий заработка – Zna.ru. C момента образования партнерской программы вышеуказанного сайта, администраторы чуть ли не всех сайтов с обзорами ПО (на сегодняшний день в базе zna.ru зарегистрировано более 10000 сайтов), решили заполучить таки вожделенные 50 WMZ, от привлечения новых посетителей, а в дальнейшем может быть и клиентов этого “магазина”. Посетителей нужно заставить переходить по ссылкам, а значит, для начала нужно привлечь их внимание. Вот тут то и идут вход самые изощренные методы: раньше, все использовали такую “фишку” как раздел “Девушка дня” (лишь на Debri.ru выкладываются настоящие материалы), за тем вход пошло добавление в раздел “Друзей” и “Партнеров” этой самой реферальной ссылки под заголовком, например, “Free Porno” или “ДеФФки”, а затем и вовсе добавление картинок порнографического характера, ссылающихся на Zna, в каждую новость. А умоляющие просьбы админов сайта 700mb.ru и угрожающие слова о закрытии столь “суперского” раздела, как “эротика”, вызывали широкую улыбку на моем лице.
Таким образом, более 80% сайтов словно сменили тематику, обзоры “софта” – это уже лишь мелочь, главная цель которой заключается в показе того, что сайт регулярно обновляется. Ни в коем случае не подумайте, что я имею в виду сайты типа SoftPortal.com, Soft-Best.net и др. Эти то, как раз никогда не участвовали в подобного рода затеях, и по сей день сохраняют отличную репутацию и места настоящих лидеров в сфере размещения обзоров программного обеспечения. Речь идет о так называемых “порталах”. Настоящий, смысл этого слова, увы, давно утерян, осталось лишь новое “понятие” этого термина, включающее в себя такие аспекты, как построение сайта на движках *Nuke и размещение “warez’a”. Единственный на сегодня стоящий портал (в лучшем смысле этого слова) – WoWeb.ru – зайдите, посмотрите.
Для примера, возьму конкретную историю одного сайта – SoftObzor.net. Составил я ее давно, но нигде не размещал. “Начну, прежде всего, с того, что с момента существования проекта на нем действительно были интересные и полезные материалы, администраторы общались на равных с пользователями. Но после обмена с так называемыми “гигантами” по посещаемости, авторы получили большой прирост в это области, который поднял их с нескольких сотен, до ни одной тысячи посетителей в день. Это их право, и обвинять их в этом было бы совершенно беспочвенно и не обоснованно. Но то, что стало с сайтом после этого, лучше даже и не видеть. Его заполнили “тонны” рекламы, новости выкладывались лишь по принципу “главное, чтобы было, а не то, что есть”, в каталоге программ массовость программ создавалась обманным путем, новости просто копировались с других сайтов схожей тематики (в том числе и с моего), грамматика стала совершенно чуждым понятием news-maker’ов, размещались материалы порнографического характера, причем такие, что хотелось побыстрее уйти с оттуда и не возвращаться никогда! А после вступления в партнерскую программу сайта Zna.ru сайт полностью превратился в “помойку”. Жажда наживы, желание получить таки вожделенные 50$ довели сайт до нынешнего состояния. А с недавнего времени авторы решили, что удобнее всего будет идти по принципу так называемых “собратьев” и на главной странице публиковать новости для англоязычной аудитории. Хороший ход, особенно если учесть обмен ссылками с таким сайтом, как PhazeDLL2, принявшим ту же политику.
Итог - совершенно никчемный сайт с ворованными материалами, администраторами, возомнившими себя чуть ли не богами и презирающими всех, у кого посещаемость меньше 4000 человек в день. У многих вызовет удивление тот факт, что и по сей день у сайта сохраняется стабильная посещаемость в районе 10-12 тысяч. Объясню, обусловлено это всего лишь обменом ссылками с хорошо посещаемыми сайтами – не больше. Ведь зайдя туда один раз, возвращаться уже мало кому захочется. А ведь у сайта было перспективное будущее…”
Эта история размещена в качестве поучительного материала, прежде всего для администраторов web-ресурсов, чтобы они не повторяли эти ошибки. Обращаясь к Вам, уважаемые web-мастера, хочу отметить, что 10-12 тысяч посетителей в день – это не круто, это лишние проблемы. Связано это с тем, что ни одна хостинг-компания не будет предоставлять Вам свои услуги на тех же условиях, как и раньше, при посещаемости, допустим 1000-2000 уникальных посетителей в день. Ежедневный расход траффика в таких случаях составляет 10-15GB трафика! Умножьте это число на 30 и получите ежемесячные затраты. Порой они превышают прибыль, получаемую от рекламы. В итоге, сайт возвращается к ситуации, что и в самом начале нашего с Вами разговора, только в другом обличии: более известном (отнюдь не в русскоязычной среде) и репутацией “помойки”. Подумайте, нужно ли Вам все это.
Чтобы создать собственный блок для сайта, построенного с использованием SLAED, достаточно простейших знаний HTML и PHP, а также соблюдение их синтаксиса. Кроме этого потребуется правильная постановка задачи и внимательность. В данной статье мы рассмотрим варианты ручного создания файловых блоков. В качестве примера ниже приведены коды, созданные для использования на всех версиях системы SLAED.
Для начала необходимо создать файл в директории блоков blocks/ Для того, что бы система идентифицировала данный файл как файловый блок, название файла должно быть такого типа: block-ваше_название.php В самом файле, для вывода информации необходимо использовать переменную $content за место стандартных методов echo или print, это единственная отличительная особенность которую нужно учитывать. Всё остальное реализуется при помощи стандартных методов и функций PHP и HTML. При реализации блоков учитывайте, любой PHP код должен начинаться c <?php и заканчиваться ?>
Ниже мы рассмотрим варианты реализации блоков на примерах реализованных в коде, с комментариями участков.
Пример 1
Пример 2
В примерах ниже мы рассмотрим варианты вывода информации в блок из других файлов.
Для работоспособности примеров:
1. Создаём файл demo.txt в директории blocks/ Директория значения не имеет, файл может находиться на другом сайте. Важно указать точный путь к файлу!
2. В файле напишите произвольный текст на своё усмотрение. Содержание данного файла может быть любым.
В качестве содержание файла demo.txt предлагаю использовать изначальный текст:
Пример 3
Пример 4
После того как файловый блок создан и находится в директории blocks/ необходимо добавить и активировать его в панели администратора системы, в отделе блоков: Панель администратора >> Блоки и баннеры >> Добавить новый блок
Заголовок – Указываем название для блока
Ссылка на канал RSS – Оставляем пустым
Время обновления – Оставляем как есть
Имя файла – Выбираем созданный файловый блок
Содержание – Оставляем пустым
Позиция – Выбираем на своё усмотрение
Отображать блок в модулях - Выбираем на своё усмотрение
Язык - Выбираем на своё усмотрение
Активировать? – Да
Время работы, в днях – 0 без ограничений
После истечения – Если без ограничений, оставляем как есть
Кто это будет видеть? - Выбираем на своё усмотрение
Прежде чем перейти к описанию интеграции модулей, хотелось бы заметить, что в системе могут быть использованы различные модули, блоки и скрипты, не только из похожих по принципу построения систем, но и совершенно не похожих. Не смотря на то, что оригинальные модули и блоки используют стандартные функции, это не является основным фактором в их работе. В системе могут работать модули, совершенно не используя основные функции ядра. В некоторых случаях потребуются только не большие изменение в коде интегрируемого модуля, блока или скрипта.
В данном примере мы рассмотрим способ ручной интеграции модулей одной из самых популярных систем построения сайтов PHP-Nuke. Программу, написанную специально для нашей системы, для автоматической интеграции модулей PHP-Nuke в SLAED Вы можете скачать на нашем проекте в каталоге файлов.
Прошу учитывать, что старые варианты использования кода в модулях PHP-Nuke могут незначительно отличаться от описанных в данной статье.
1. В самом верху изменяем способ защиты для модулей от стороннего доступа.
Старый вариант: if (!eregi("modules.php", $_SERVER["PHP_SELF"])) {
die ("You can"t access this file directly...");
}
Новый вариант: if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
2. Старые модули PHP-Nuke используют соединение с базой по средствам переменной $dbi. Наша система использует соединение с базой по средствам переменной $db, по этой причине необходимо изменить все переменные $dbi на $db.
Меняем все глобальные переменные $dbi в функциях, на новые $db. Если это необходимо, указываем переменную $db как глобальную.
Старый вариант: global $prefix, $dbi;
Новый вариант: global $prefix, $db;
Изменяем структуру запроса в базу данных.
Старый вариант: $result = sql_query("SELECT id, name FROM ".$prefix."_categories WHERE id=$id", $dbi);
Новый вариант: $result = $db->sql_query("SELECT id, name FROM ".$prefix."_categories WHERE id=$id");
Как вы заметили, удалена переменная $dbi в конце запроса и добавлена переменная $db в начале. Это нужно проделать со всеми запросами.
В запросах необходимо изменить:
sql_fetch_array на $db->sql_fetchrow sql_query на $db->sql_query sql_fetch_row на $db->sql_fetchrow sql_num_rows на $db->sql_numrows sql_free_result на $db->sql_freeresult
Если появляются вопросы по поводу запросов или правильности их написания, смотрим файл function/mysql.php
В некоторых модулях используются прямые запросы в базу данных в обход файла классов соединения с базой. В таком варианте запросы не подсчитываются. При желании вы так же можете изменить запросы подобного рода.
В запросах необходимо изменить:
mysql_fetch_array на $db->sql_fetchrow mysql_query на $db->sql_query mysql_fetch_row на $db->sql_fetchrow mysql_num_rows на $db->sql_numrows mysql_free_result на $db->sql_freeresult
В функциях не забываем указывать переменную $db как глобальную.
3. В некоторых модулях производится соединение с файлом конфигурации которое нужно заменить.
Старый вариант: include("config.php");
Новый вариант: include("config/config.php");
4. В некоторых модулях используется переменная основного адреса сайта, которую нужно заменить.
Старый вариант: $nukeurl
Новый вариант: $conf['homeurl']
Не исключено что в последствии возникнет необходимость использования параметров основных конфигураций системы. Для этих целей рекомендуется прописать в глобальные, переменную $conf, отвечающую за основные настройки, которые хранятся в файле config/config_global.php
5. В некоторых модулях используются функции темы OpenTable() и CloseTable() которые нужно заменить.
Старый вариант: OpenTable(); или OpenTable2();
Новый вариант: open();
Старый вариант: CloseTable(); или CloseTable2();
Новый вариант: close();
6. В стандартных модулях в начале скриптов используется соединение с файлом mainfile.php.
Необходимо удалить: require_once("mainfile.php"); или include("mainfile.php");
7. Во всех скриптах нужно произвести поиск и изменить стандартные ссылки modules.php на index.php.
Старый вариант: modules.php
Новый вариант: index.php
8. Во всех скриптах нужно произвести поиск и удалить стандартные цветовые переменные в глобальных, и заменить их в коде.
Старый вариант: bgcolor="$bgcolor1"
Новый вариант: class="bgcolor1"
Старый вариант: bgcolor="$bgcolor2"
Новый вариант: class="bgcolor2"
Старый вариант: bgcolor="$bgcolor3"
Новый вариант: class="bgcolor3"
Старый вариант: bgcolor="$bgcolor4"
Новый вариант: class="bgcolor4"