2008-06-27

Движок е107. Структура скрипта администрирования RSS-потоков

Сегодня я решил что лучше не описывать весь движок полностью(если в нем куча файлов как например в DataLifeEngine или е107). Поэтому теперь буду расписывать конкретные функции и плагины скрипта.

Начем с движка е107, а точнее, RSS-потоки и их возможности.


Распишем для начала структуру плагина:


12 768 admin_prefs.php

1 367 e_meta.php

images

languages

4 040 plugin.php

23 435 rss.php

2 506 rss_menu.php

6 479 rss_shortcodes.php

455 rss_sql.php

5694 rss_template.php


e107rus\e107_plugins\rss_menu\images


e107rus\e107_plugins\rss_menu\languages

3723 English.php

3944 Russian.php


Теперь расмотрим каждый нужный нам файл:



admin_prefs.php


Рекомендации:


Array_flip метод не рекомендуется для удаления пункта обнаружения.
Использовать форму “handler” не рекомендуется, она присутствует только для обратной совместимости.
Редактировать и удалять языковый файл не рекомендуется, используйте вместо LAN_EDIT т.д..
Используя слова, как created, update, options т.д.. Следует использовать не стандартные переменные..
Общие админ значки используются. ADMIN_ICON_EDIT т.д.
Использовать $caption = "whatever" — нет необходимости .


Код файла:


require_once("../../class2.php");

if(!getperms("P")){ header("location:".e_BASE."index.php"); }

$lan_file = e_PLUGIN."rss_menu/languages/".e_LANGUAGE.".php";

require_once(file_exists($lan_file) ? $lan_file : e_PLUGIN."rss_menu/languages/English.php");


require_once(e_ADMIN."auth.php");


$imagedir = e_IMAGE."admin_images/";

$lan_file = e_PLUGIN.'rss_menu/languages/'.e_LANGUAGE.'.php';

include_once(file_exists($lan_file) ? $lan_file : e_PLUGIN.'rss_menu/languages/English.php');

require_once(e_PLUGIN.'rss_menu/rss_shortcodes.php');

$rss = new rss;


global $tp;


//удалить запись


if(isset($_POST['delete'])){

$d_idt = array_keys($_POST['delete']);

$message = ($sql -> db_Delete("rss", "rss_id='".$d_idt[0]."'")) ? LAN_DELETED : LAN_DELETED_FAILED;

$e107cache->clear("rss");

}


//создать RSS канал


if(isset($_POST['create_rss'])){

$message = $rss -> dbrss("create");

}


//обновить RSS канал


if(isset($_POST['update_rss'])){

$message = $rss -> dbrss("update");

}


//импортировать RSS канал


if(isset($_POST['import_rss'])){

$message = $rss -> dbrssimport();

}


//обновить предел


if(isset($_POST['update_limit'])){

$message = $rss -> dbrsslimit();

}

//настройки обновления


if(isset($_POST['updatesettings'])){

$message = $rss->dboptions();

}


//config check

if($rss->file_check()){

$message = RSS_LAN_ERROR_2; // space found in file.

}



//показать сообщение


if(isset($message)){

$rss->show_message('', $message);

}


//выгрузить шаблон


if (is_readable(THEME."rss_template.php")) {

require_once(THEME."rss_template.php");

} else {

require_once(e_PLUGIN."rss_menu/rss_template.php");

}


//листинг


if(e_QUERY){

$qs = explode(".", e_QUERY);

$field = (isset($qs[1])) ? $qs[1] : "";

$sort = (isset($qs[2])) ? $qs[2] : "";

}


//создать

if(isset($qs[0]) && $qs[0] == 'create' && !$_POST){

$rss -> rssadmincreate();


//импортировать

}elseif(isset($qs[0]) && $qs[0] == 'import'){

$rss -> rssadminimport();


//настройки

}elseif(isset($qs[0]) && $qs[0] == 'options'){

$rss -> rssadminoptions();


//список

}else{


$rss -> rssadminlist();

}


require_once(e_ADMIN."footer.php");


Настройки отображения


function admin_prefs_adminmenu(){

global $sql, $qs;


$act = $qs[0];

if($act==""){$act="list";}


$var['list']['text'] = RSS_LAN_ADMINMENU_2;

$var['list']['link'] = e_SELF."?list";


$var['create']['text'] = LAN_CREATE;

$var['create']['link'] = e_SELF."?create";


$var['import']['text'] = RSS_LAN_ADMINMENU_4;

$var['import']['link'] = e_SELF."?import";


$var['options']['text'] = LAN_OPTIONS;

$var['options']['link'] = e_SELF."?options";


show_admin_menu(RSS_LAN_ADMINMENU_1, $act, $var);


}


Конец настроек отображения







class rss{


//проверка конфигурации


function file_check(){

$arrays = file_get_contents(e_BASE."e107_config.php");

$arrays2 = file_get_contents(e_PLUGIN."rss_menu/languages/".e_LANGUAGE.".php");

if($arrays[0] != "<" || $arrays2[0] != "<"){

return TRUE;

}

}



//Администратор: список: существующие rss-ленты


function rssadminlist(){

global $qs, $ns, $sql, $rs, $tp, $field, $sort, $rss_shortcodes, $row, $RSS_ADMIN_LIST_HEADER, $RSS_ADMIN_LIST_TABLE, $RSS_ADMIN_LIST_FOOTER;


$fieldstag = array('id'=>'rss_id','path'=>'rss_path','name'=>'rss_name','url'=>'rss_url','limit'=>'rss_limit');

$order = (isset($fieldstag[$field])) ? "ORDER BY ".$fieldstag[$field]." ".$sort : "ORDER BY rss_id";


$query = "SELECT * FROM #rss ".$order;

if(!$sql->db_Select_gen($query))

{

$this->show_message(LAN_ERROR, RSS_LAN_ERROR_3);

}

else

{

$text = $tp -> parseTemplate($RSS_ADMIN_LIST_HEADER, FALSE, $rss_shortcodes);

while($row=$sql->db_Fetch())

{

$text .= $tp -> parseTemplate($RSS_ADMIN_LIST_TABLE, FALSE, $rss_shortcodes);

}

$text .= $tp -> parseTemplate($RSS_ADMIN_LIST_FOOTER, FALSE, $rss_shortcodes);

$ns->tablerender(RSS_LAN_ADMIN_1, $text);

}

}


//создать

function rssadmincreate(){

global $ns, $qs, $rs, $sql, $tp, $rss_shortcodes, $row, $RSS_ADMIN_CREATE_TABLE;


if( isset($qs[1]) && $qs[1] == "edit" && isset($qs[2]) && is_numeric($qs[2]) ){

if(!$sql -> db_Select("rss", "*", "rss_id='".intval($qs[2])."' ")){

$this->show_message(LAN_ERROR, RSS_LAN_ERROR_5);

}else{

$row = $sql -> db_Fetch();


$row['rss_name'] = $tp -> toForm($row['rss_name']);

$row['rss_path'] = $tp -> toForm($row['rss_path']);

$row['rss_url'] = $tp -> toForm($row['rss_url']);

$row['rss_text'] = $tp -> toForm($row['rss_text']);

}

}

$text = $tp -> parseTemplate($RSS_ADMIN_CREATE_TABLE, FALSE, $rss_shortcodes);

$ns->tablerender(RSS_LAN_ADMIN_10, $text);

}


//импортировать


function rssadminimport(){

global $sql, $ns, $i, $qs, $rs, $tp, $rss_shortcodes, $feed, $pref;

global $RSS_ADMIN_IMPORT_HEADER, $RSS_ADMIN_IMPORT_TABLE, $RSS_ADMIN_IMPORT_FOOTER;


$sqli = new db;

$feedlist = array();


//новости


$feed['name'] = ADLAN_0;

$feed['url'] = 'news'; //the identifier for the rss feed url

$feed['topic_id'] = ''; //the topic_id, empty on default (to select a certain category)

$feed['path'] = 'news'; //this is the plugin path location

$feed['text'] = RSS_PLUGIN_LAN_7;

$feed['class'] = '0';

$feed['limit'] = '9';

$feedlist[] = $feed;


//новостные категории


if($sqli -> db_Select("news_category", "*","category_id!='' ORDER BY category_name ")){

while($rowi = $sqli -> db_Fetch()){

$feed['name'] = ADLAN_0.' > '.$rowi['category_name'];

$feed['url'] = 'news';

$feed['topic_id'] = $rowi['category_id'];

$feed['path'] = 'news';

$feed['text'] = RSS_PLUGIN_LAN_10.' '.$rowi['category_name'];

$feed['class'] = '0';

$feed['limit'] = '9';

$feedlist[] = $feed;

}

}


//download

$feed['name'] = ADLAN_24;

$feed['url'] = 'download';

$feed['topic_id'] = '';

$feed['path'] = 'download';

$feed['text'] = RSS_PLUGIN_LAN_8;

$feed['class'] = '0';

$feed['limit'] = '9';

$feedlist[] = $feed;


//категории загрузок


if($sqli -> db_Select("download_category", "*","download_category_id!='' ORDER BY download_category_order ")){

while($rowi = $sqli -> db_Fetch()){

$feed['name'] = ADLAN_24.' > '.$rowi['download_category_name'];

$feed['url'] = 'download';

$feed['topic_id'] = $rowi['download_category_id'];

$feed['path'] = 'download';

$feed['text'] = RSS_PLUGIN_LAN_11.' '.$rowi['download_category_name'];

$feed['class'] = '0';

$feed['limit'] = '9';

$feedlist[] = $feed;

}

}


//comments

$feed['name'] = RSS_PLUGIN_LAN_14;

$feed['url'] = 'comments';

$feed['topic_id'] = '';

$feed['path'] = 'comments';

$feed['text'] = RSS_PLUGIN_LAN_9;

$feed['class'] = '0';

$feed['limit'] = '9';

$feedlist[] = $feed;


//Плагин канал, используя e_rss.php плагина в папку


$plugin_feedlist = array();

foreach($pref['e_rss_list'] as $val)

{

if (is_readable(e_PLUGIN.$val."/e_rss.php")) {

require_once(e_PLUGIN.$val."/e_rss.php");

$plugin_feedlist = $eplug_rss_feed;

}

}


/* if($sqli -> db_Select("plugin","plugin_path","plugin_installflag = '1' ORDER BY plugin_path ")){

while($rowi = $sqli -> db_Fetch()){

if (is_readable(e_PLUGIN.$rowi['plugin_path']."/e_rss.php")) {

require_once(e_PLUGIN.$rowi['plugin_path']."/e_rss.php");

$plugin_feedlist = $eplug_rss_feed;

}

}

}*/


$feedlist = array_merge($feedlist, $plugin_feedlist);


$render=FALSE;

$i=0;

$text = $RSS_ADMIN_IMPORT_HEADER;

foreach($feedlist as $k=>$feed){

$feed['topic_id'] = $tp -> toDB($feed['topic_id']);

$feed['url'] = $tp -> toDB($feed['url']);


//проверка, если канал еще не готов


if(!$sql -> db_Select("rss", "*", "rss_path='".$feed['path']."' AND rss_url='".$feed['url']."' AND rss_topicid='".$feed['topic_id']."' "))

{

$render=TRUE;

$text .= $tp -> parseTemplate($RSS_ADMIN_IMPORT_TABLE, FALSE, $rss_shortcodes);

$i++;

}

}

$text .= $tp -> parseTemplate($RSS_ADMIN_IMPORT_FOOTER, FALSE, $rss_shortcodes);


if(!$render){

$this->show_message(RSS_LAN_ADMIN_11, RSS_LAN_ERROR_6);

}else{

$ns->tablerender(RSS_LAN_ADMIN_11, $text);

}

}


//настройки


function rssadminoptions(){

global $ns, $qs, $rs, $sql, $tp, $rss_shortcodes, $row, $RSS_ADMIN_OPTIONS_TABLE;


$text = $tp -> parseTemplate($RSS_ADMIN_OPTIONS_TABLE, FALSE, $rss_shortcodes);

$ns->tablerender(LAN_OPTIONS, $text);

return;

}


//показать сообщение


function show_message($caption='', $text=''){

global $ns;

$ns -> tablerender($caption, "

$text
");

}


//Создать, обновить базу данных


function dbrss($mode='create'){

global $qs, $sql, $ns, $rs, $tp, $e107cache;


if($_POST['rss_name'] && $_POST['rss_url'] && $_POST['rss_path']){


$_POST['rss_name'] = $tp -> toDB(trim($_POST['rss_name']));

$_POST['rss_url'] = $tp -> toDB($_POST['rss_url']);

$_POST['rss_topicid'] = $tp -> toDB($_POST['rss_topicid']);

$_POST['rss_path'] = $tp -> toDB($_POST['rss_path']);

$_POST['rss_text'] = $tp -> toDB($_POST['rss_text']);

$_POST['rss_class'] = (intval($_POST['rss_class']) ? intval($_POST['rss_class']) : '0');

$_POST['rss_limit'] = intval($_POST['rss_limit']);


if(isset($_POST['rss_datestamp']) && $_POST['rss_datestamp']!=''){

$datestamp = intval($_POST['rss_datestamp']);

}else{

$datestamp = time();

}


if($mode == 'create'){

$message = ($sql -> db_Insert("rss", "'0', '".$_POST['rss_name']."', '".$_POST['rss_url']."', '".$_POST['rss_topicid']."', '".$_POST['rss_path']."', '".$_POST['rss_text']."', '".$datestamp."', '".$_POST['rss_class']."', '".$_POST['rss_limit']."' ")) ? LAN_CREATED : LAN_CREATED_FAILED;

$e107cache->clear("rss");


}elseif($mode == 'update'){

$message = ($sql -> db_Update("rss", "rss_name = '".$_POST['rss_name']."', rss_url = '".$_POST['rss_url']."', rss_topicid = '".$_POST['rss_topicid']."', rss_path = '".$_POST['rss_path']."', rss_text = '".$_POST['rss_text']."', rss_datestamp = '".$datestamp."', rss_class = '".$_POST['rss_class']."', rss_limit = '".$_POST['rss_limit']."' WHERE rss_id = '".intval($_POST['rss_id'])."' ")) ? LAN_UPDATED : LAN_UPDATED_FAILED;

$e107cache->clear("rss");

}

}else{

$message = RSS_LAN_ERROR_7;

}

return $message;

}


//ипортировать rss-потоки


function dbrssimport(){

global $sql, $tp;


foreach($_POST['importid'] as $key=>$value)

{

$rss_topcid = ($_POST['topic_id'][$key] ? $tp -> toDB($_POST['topic_id'][$key]) : '');

$rss_url = ($_POST['url'][$key] ? $tp -> toDB($_POST['url'][$key]) : '');

$rss_path = ($_POST['path'][$key] ? $tp -> toDB($_POST['path'][$key]) : '');

$rss_name = ($_POST['name'][$key] ? $tp -> toDB($_POST['name'][$key]) : '');

$rss_text = ($_POST['text'][$key] ? $tp -> toDB($_POST['text'][$key]) : '');

$rss_datestamp = time();

$rss_class = ($_POST['class'][$key] ? intval($_POST['class'][$key]) : '0');

$rss_limit = ($_POST['limit'][$key] ? intval($_POST['limit'][$key]) : '0');


$sql -> db_Insert("rss", "'0', '".$rss_name."', '".$rss_url."', '".$rss_topcid."', '".$rss_path."', '".$rss_text."', '".$rss_datestamp."', '".$rss_class."', '".$rss_limit."' ");

}

$message = count($_POST['importid'])." ".RSS_LAN_ADMIN_18;

return $message;


}


function dbrsslimit(){

global $sql, $tp;

foreach($_POST['limit'] as $key=>$value)

{

$sql -> db_Update("rss", "rss_limit = '".intval($value)."' WHERE rss_id = '".intval($key)."' ");

}

header("location:".e_SELF."?r3");

}


//обновить настройки


function dboptions(){

global $tp, $pref;


$pref['rss_othernews'] = $_POST['rss_othernews'];


save_prefs();

return LAN_SAVED;

}



} //end class



?>


Здесь мы рассмотрели ваозможности скрипта в администрировании RSS-потоков движка е107.





Спасибо за прочтение =) Заходите еще на мой блог:

PHPMYSQLCODER.blogpost.com

2008-06-26

.htaccess - что и как?

Вспомнилось как я когда-то мучился не знаю что-же это за файл и что с ним нужно(или можно) сделать, так что вот сделаю небольшое описание этого файла. Практически во всех описаных мной скриптах встречается этот файл. Так что опишу его здесь.

.htaccess - это файл конфигурации веб-сервера(Apache). Он не обязателен но тем не менее используеться очень часто. Практически .htaccess это аналог файла httpd.conf но в отличии от него .htaccess влияет только на папку в которой находиться.

Сейчас я роспишу главные вопросы(и ответы на них) которые можно решить с помощью даного файла:
1) Как сделать перенаправление на другую страницу?

Redirect / http://www.phpmysqlcoder.blogspot.com


2) Как запретить отображение содержимого каталога если нет индексного файла?
Options -Indexes

3) Страницы ошибок

ErrorDocument 401 /401error.html
ErrorDocument 403 /403error.html
ErrorDocument 404 /404error.html
ErrorDocument 500 /500error.html
4) Как запретить доступ к файлам?

deny from all

5) Как закрыть каталог паролем?

AuthName "Auth message"
AuthType Basic
require [имяпользователя2] ... [имяпользователяN]>
AuthUserFile "/полный путь к файлу/.имя файла"




Спасибо за прочтение =) Заходите еще на мой блог:

PHPMYSQLCODER.blogpost.com

2008-06-25

Структура CMS-движка DataLifeEngine. Мои описания и комментарии

Структура CMS-движка DataLifeEngine. Версия 6,7



Сайт разработчика: http://www.dle-news.ru/

*Если слева от названия нету чисел значит это папка её структура будет рассмотрена позже

**Если под папкой пусто - значит в ней нет файлов или эти файлы - картинки

Ну что же - начнем!

Размер (б) Имя файла

(каталога)

\upload

3 620 .htaccess

8 497 admin.php - админка

3 116 autobackup.php - автобекап

backup

engine

10 657 index.php - главная страница

66 639 install.php - установка

language

templates

uploads


\upload\backup


45 index.html

Двигатель

\upload\engine
ajax

cache

classes

data

4 749 download.php - файл загрузки

editor

30 065 engine.php - "двигатель движка" ;)

2 613 go.php - вперед

33 253 images.php - картинки

inc

16 757 init.php

modules

2 385 opensearch.php - открыть поиск

12 645 preview.php - предосмотр

6 333 print.php - печать

9 589 rss.php - RSS-читалка

skins

Аякс

\upload\engine\ajax

19 313 addcomments.php - добавить комментарий

16 697 antivirus.php - проверка на вирусы

17 465 bbcode.php - ББКоды

7 371 bbcodes.js - ББкоды(ява)

14 153 calendar.php - календарь новостей

13 929 clean.php - чистилка базы

4 725 dle_ajax.js - (аякс система движка)

9 753 editcomments.php - редактирование коментариев

12 217 editnews.php - редактирование новостей

5 113 favorites.php - Избранное

6 627 js_edit.js - редактирование(ява)

4 585 keywords.php - Тэги

734 loading.gif

3 368 menu.js - меню(ява)

8 057 newsletter.php - новости по подписке

9 505 pages.php - страницы

6 557 pm.php - личные сообщения

6 713 poll.php - опросы

5 441 rating.php - рейтинг

7 317 registration.php - регистрация

7 081 rss.php - RsS-поток

2 789 updates.php - обновления

8 685 vote.php - голосования

\upload\engine\cache
57 .htaccess

system

\upload\engine\cache\system

31 .htaccess

Классы

\upload\engine\classes
5 885 download.class.php - клас загрузки

flashplayer

6 713 google.class.php - гугль клас

highslide

10 825 mail.class.php - почтовый клас

7 917 mysql.class.php - мускуль класс

1 985 mysql.php - мускуль

7 609 mysqli.class.php - мускульи клас

46 425 parse.class.php - парс клас

10 077 rss.class.php - рсс клас

5 633 templates.class.php - клас шаблонов


\upload\engine\classes\flashplayer


35 118 mp3.swf 42 696 player.swf


\upload\engine\classes\highslide


graphics

6 914 highslide-html.js - графика для аякса

19 288 highslide.js - графика для аякса


\upload\engine\classes\highslide\graphics


\upload\engine\data


57 .htaccess

emoticons


\upload\engine\data\emoticons


\upload\engine\editor


3 873 comments.php - комментарии

1 486 demo.css - демо стиль

4 197 emoticons.php - смайлы

5 669 fullnews.php - полная новость

5 317 fullsite.php - полный сайт

4 281 newsletter.php - новости по рассылке

scripts 5 461 shortnews.php - короткая новость

5 249 shortsite.php - короткий сайт

4 361 static.php - статистика


\upload\engine\editor\scripts


\upload\engine\editor\scripts\border


\upload\engine\editor\scripts\icons


\upload\engine\editor\scripts\icons\english


\upload\engine\editor\scripts\language


english

\upload\engine\editor\scripts\language\english


594 bookmark.js - закладка

1 352 border.js - рамка

2 942 box.js - бокс

391 characters.js - пользователи

1 243 color.js - цвет

9 314 editor_lang.js - язык редактора

1 991 flash.js - флеш

1 077 form_button.js - кнопка формы

961 form_check.js - проверка формы

590 form_file.js - файл формы

784 form_form.js - форма формы ;)

724 form_hidden.js - скрытая форма

1 165 form_list.js - список форм

1 021 form_radio.js - форма радио

1 388 form_text.js - текст формы

1 214 hyperlink.js - ссылки

2 225 image.js - картинки

1 990 image_background.js - картннка обоев

378 length.js - длина

1 338 list.js - список

1 423 media.js - медиа

2 652 paragraph.js - параграф

450 paste_text.js - вставить текст

489 paste_word.js - вставить слово

390 percent.js - процент

275 preview.js - предосмотр

1 242 search.js - поиск

1 242 source_html.js - исходник в HTML

602 spellcheck.jsпроверка

1 454 styles.js - стили

1 048 styles_cssText.js - стили текста 1

1 148 styles_cssText2.js - стили текста 2

4 446 table_edit.js - редактор таблиц

4 825 table_editCell.js - редактор ячеек в таблице

1 307 table_insert.js - вставка таблицы

3 111 table_size.js - размер таблицы

2 925 text1.js - текст 1

2 810 text2.js - текст 2

450 url.js - ссылка


\upload\engine\editor\scripts\moz


\upload\engine\editor\scripts\quick


ie

moz
\upload\engine\editor\scripts\quick\ie


3 031 main.js - главная

17 665 main_xhtml.js - гдавная xHTML

18 597 xhtmleditor.js - главная редактора xHTML

\upload\engine\editor\scripts\quick\moz


\upload\engine\editor\scripts\style


\upload\engine\editor\scripts\style\silver


\upload\engine\editor\scripts\table


\upload\engine\inc


30 693 addnews.php - добавить новость

10 349 addvote.php - добавить голосование

20 429 banners.php - баннеры

12 013 blockip.php - блокировка по IP

36 609 categories.php - категории

6 433 clean.php - чистка базы

13 493 cmoderation.php - предмодерация

11 649 comments.php - комментарии

13 749 dboption.php - настройки базы данных

42 881 dumper.php - дампер базы данных

72 357 editnews.php - редактировать новости

64 669 editusers.php - редатировать пользователей

11 345 editvote.php - редактировать голосования

8 933 email.php - ел почта

49 573 files.php - файлы

23 809 functions.inc.php - функции

9 569 googlemap.php - карта сайта гугль

18 377 help.php - помощь

10 469 init.php

30 865 inserttag.php - вставить тэг

20 649 iptools.php - интрументы ИП

25 465 main.php - главная

10 349 makethumb.php - создать thumb

22 913 massactions.php - массовые операции

23 061 newsletter.php - почтовые новости

66 061 options.php - настройки

9 797 preview.php - предосмотр

34 253 rss.php - RSS

18 565 rssinform.php - RSS-информация

7 481 search.php - поиск

28 177 static.php - статистика

44 641 templates.php - шаблоны

24 709 userfields.php - поля пользователей

42 401 usergroup.php - группы пользователей

15 857 wordfilter.php - фильтр слов(цензор)

33 985 xfields.php - поля

Модули

\upload\engine\modules


12 857 addcomments.php - добавить комментарий

20 037 addnews.php - добавить новость

14 597 antibot.php - антибот(каптча)

3 997 banned.php - список забаненых

5 813 banners.php - баннеры

18 081 bbcode.php - ББКоды

13 077 calendar.php - календарь новостей

8 341 comments.php - комментарии

6 845 cron.php - крон

5 325 c_navigation.php - навигация

4 825 deletenews.php - удалить новость

5 713 favorites.php - избранное

8 701 feedback.php

fonts

61 149 fullsearch.php - расширеный поиск

34 617 functions.php - функции

4 101 gzip.php - файл сжатия

2 773 imagepreview.php - предосмотр страниц

22 073 lastcomments.php - последние комментарии

7 501 lostpassword.php - востановление пароля

2 337 offline.php - пользователь офланйн

23 565 pm.php - личные сообщения

3 757 pm_alert.php - указатель на личное сообщение

6 917 poll.ph - опрос

18 553 profile.php - профиль пользователя

18 377 register.php - регистрация

6 677 rssinform.php - RSS-информация

60 737 search.php - Поиск

12 909 show.custom.php - показать выбраные результаты посика

41 165 show.full.php - показать полные результаты поиска

28 325 show.short.php - показать краткие результаты поиска

8 141 sitelogin.php - вход на сайт

7 689 static.php - статистика

8 765 stats.php - статистика

3 765 topnews.php - лучшие новости

9 521 vote.php - голосование


\upload\engine\modules\fonts

\upload\engine\skins


\upload\engine\skins\bbcodes


7 688 color.html - цвет images


\upload\engine\skins\bbcodes\images


\upload\engine\skins\images


\upload\language


English Russian

\upload\language\English


77 207 adminpanel.lng - англ язык админпанели

19 301 website.lng - англ язык сайта


\upload\language\Russian


92 270 adminpanel.lng - рус язык админпанели

22 267 website.lng - рус язык вебсайта

\upload\templates
1 397 banned.tpl - список забаненых

Default

963 opensearch.tpl - поиск

989 print.tpl - печать


Simple


\upload\templates\Default


\upload\templates\Default\bbcodes


\upload\templates\Default\css


36 .htaccess

8 724 engine.css

9 369 style.css


\upload\templates\Default\dleimages


\upload\templates\Default\images


\upload\templates\Simple


Шаблонные файлы - отсюда \upload\engine\modules


31 .htaccess

2 532 addcomments.tpl

3 148 addnews.tpl

bbcodes

1 529 comments.tpl

css

dleimages

2 518 feedback.tpl

2 864 fullstory.tpl

images

1 077 info.tpl

57 informer.tpl

2 830 login.tpl

1 988 lostpassword.tpl

14 004 main.tpl

155 navigation.tpl

1 045 offline.tpl

6 286 pm.tpl

1 493 poll.tpl

6 964 preview.css

5 492 registration.tpl

1 076 search.tpl

4 472 searchresult.tpl

1 485 shortstory.tpl

309 speedbar.tpl

1 289 static.tpl

9 326 stats.tpl

7 803 userinfo.tpl

1 176 vote.tpl

80 949 bytes


\upload\templates\Simple\css


Стили движка


36 .htaccess

8 440 engine.css - стиль движка

3 295 style.css - общий стиль


Конец ;)


Спасибо за прочтение =) Заходите еще на мой блог:

PHPMYSQLCODER.blogpost.com

Ищу друзей блоггеров ;)

Приветствую Вас на моем блоге ;)

Если у вас есть блог - можете разместить ссылку на него на моем блоге, взамен попрошу добавить ссылку на свой блог у Вас.

ЗЫ: Желающие отписуйтесь в комментариях

Спасибо за прочтение =) Заходите еще на мой блог:

PHPMYSQLCODER.blogpost.com

Мой обзор и комментарии Vkontakte messenger by DX 1.1


Предисловие:

В последнее время очень сильно начали развиваться социальные сети, а особенно в последнее время известный сайт(кстати первый по посещаемости в "русском интернете") vkontakte.ru.

Так вот сегодня я хотел бы описать возможности использования использования этой социальной сети как способ рекламы.

Vkontakte messenger by DX 1.1

Рассмотрим возможности этого скрипта:



  • Рассылать сообщения на стены ВКонтакте по диапазону id
  • Рассылать сообщения на стены друзей каждого заданного аккаунта
  • Флуд на стену конкретного человека
  • Рассылать сообщения на собственные стены каждого заданного аккаунта
  • Позволяет указать задержку отправки
  • Позволяет рандомизировать сообщение
  • Позволяет задать список прокси-серверов
  • Добавлять предложение каждому заданному аккаунту
  • Добавлять вопрос каждому заданному аккаунту
  • Добавлять заметку каждому заданному аккаунту
  • Имеется чекер аккаунтов
По-моему получаеться очень даже неплохо ;)

Советы по использованию скрипта:

-Ставьте побольше задержку отправления(пордяка 2000-3000 мс)
-Используйте побольше аккаунтов
-Обязательно рандомизируйте сообщение(лучше не цифрами а текстом)
-Рейтинг всех аккаунтов должен быть больше чем 30%(иначе аккаунт не имеет права писать на стены)
-Сообщение может пройти только на открытую стену ;)

И естественно где можно использовать данный скрипт:

1) На моем хостинге http://antichat.sich.in.ua/vkmes.php
2) Можете скачать скрипт и поставить на своем(почти все бесплатные хостинги контакт уже забанил такчто лучше юзайте платный)

Скачать


Спасибо за прочтение =) Заходите еще на мой блог:

PHPMYSQLCODER.blogpost.com

2008-06-23

Розложеный по полочкам движок CMSImple


Для начала раскажу немного об этом скрипте:



К достоинствам Cmsimple можно отнести:

* Простоту установки, настройки, создания сайта и шаблонов на базе Cmsimple
* Наличие визуального редактор позволяет создавать сайты полным чайникам
* Весь текст сайта хранится в одном html файле, который можно создать в любом удобном редакторе
* Система бесплатна при сохранении ссылки на сайт разработчика
* Дешевый хостинг (нужен только PHP, СУБД не требуется)
* Малый вес: до 100Kb
* Трехуровневая структура создаваемого сайта
* Наличие гостевой, почтовой формы, поиска, проверки на "битые" ссылки, печатный просмотр страниц
* Простое cоздание мультиязычных сайтов
* PHP-скриптинг
* Простая и удобная админка
* Автоматическая «карта сайта»
* Автоматический backup
* Множество готовых шаблонов и плагинов Наличие русской версии, русского сайта поддержки Техническую поддержку Cmsimple, регулярные обновления, форум

Минусы тоже есть

* Возможность сделать только одно динамическое меню
* Хранение контента в текстовом файле, а не в СУБД: при большом объеме текста на сайте (свыше 2Mb текста или 1000 страниц) и приличного потока посетителей (свыше 10 000 посетителей в день), система способна неплохо нагрузить сервер
* Одинаковые мета-тэги страниц - минус для SEO (легко лечится скриптингом)


Начнем разгребать скрипт:

1) Папки и файлы на которые поделен скрипт:

1.1) 2lang - информация о скрипте
1.2) cmsimple - содержит в себе каталог
1.2.1) languages - содержит 12 файлов со следующими названиями: da.php, de.php, en.php, es.php, fi.php, fr.php, gr.php, nl.php, no.php, pt.php, ru.php, se.php - соответственно постранам. Вывод - скрипт поддерживает 12 языков.
1.2.2) Также в папке cmsimple следующие файлы -
.htaccess
adm.php - админка сайта
cms.php - основные функции скрипта
config.php - файл конфигурации настроек сайта
functions.php - дополнительные функции скрипта
image.php - файл картинок скрипта
log.txt - лог входов
login.php - вход в админку(только в админку. регистрации в скрипте нет что я считаю плюсом)
mailform.php - файл обратной связи
oedit.php - редактирование контента
search.php - скрипт поиска по сайту
1.3) content - контент сайта
.htacces
content.html - вся информация сайта находиться в этом файле - если не получаеться что-то изменить через админку - просто редактируйте этот файл. Достаточно иметь начальный знание html для редактирования этого файла
1,4) downloads - все файлы загружаемые через админку находяться здесь
1,5) images - все картинки загружаемые из админки
flags - подпапка с каритнками-флагами стран поддерживающих CMSimple
1.6) Plugins - здесь храняться дополнительные плагины
1,7) Templates - в папке находяться шаблоны сайта
по умолчанию это 1.7.1) cmsimple_ru_bordo
1.7.2) default
1.7.3) subsilverlike
Так как файлы в шаблонах одинаковый рассмотрим шаблон subsilverlike

1.7.3.1) папка images - содежит файл top.jpg - верхнее лого сайта.
1.7.3.2) папка menu - содержит 4 gif картинки - иконки для меню.
1.7.3.3) файл stylesheet.css - главный файл стилей шаблона
1.7.3.4) файл template.htm - глайный файл шаблона. В нем описано размещение обьектов страницы

Спасибо за прочтение =) Заходите еще на мой блог:

PHPMYSQLCODER.blogpost.com

Первый пост

Открываю свой первый блог. Есть новые некоторые идею по теме PHP, MySQL. Скоро буду вылаживать.Надеюсь вам понравиться мой контент. Советую почитать.

Здесь я буду вылаживать различные бесплатные скрипты с полными комментариями и описаниями от меня на PHP и MySQL. Вы сможете найти здесь описания от скриптов простейших плагинов до сложнейших CMS.