8Dle
Авторизация

Удаляем не нужные Функции (Избавляемся от лишнего веса)

8Dle 3-09-2015, 07:12 Seo 0 комментариев
Удаляем не нужные Функции (Избавляемся от лишнего веса)

Давайте удалим ненужные функции движка DataLife Engine, удаление ненужного функционала с цель улучшить или оптимизировать движка дле. Обзор имеет несколько частей. С помощью данной статьи предлагается удалить функцию Календаря и Архива новостей, удалять вывод новостей "за весь год", "за весь месяц", "за день", удалить "Вывод всех последних новостей", а также "Вывод всех новостей пользователя", "Вывод непрочитанных новостей" и удалить все что связано с облаком тегов и тегами. Многие функции можно отличить в самом движке, но не все, автор данной статьи решил показать как оптимизировать движок DLE вручную.

Удаление ненужных частей движка
Удаление Календаря и Архива новостей. Зачем они нам, если на 99% сайтов DLE их никто не использует.

1) Открываем /index.php, находим код и удаляем (Если версия 10.5 - Открываем Engine/main.php) :
$tpl->set ( '{calendar}', $tpl->result['calendar'] );
$tpl->set ( '{archives}', $tpl->result['archive'] );

2) Открываем файл /engine/init.php находим код и удаляем его :
require_once ENGINE_DIR . '/modules/calendar.php';


3) Заходим в /engine/modules и удаляем файл calendar.php. Ну вот и все, мы удалили календарь и архивы.

И в этом же файле, ищем и удаляем:
if (isset ( $_GET['year'] )) $year = intval ( $_GET['year'] ); else $year = '';
if (isset ( $_GET['month'] )) $month = @$db->safesql ( sprintf("%02d", intval ( $_GET['month'] ) ) ); else $month = '';
if (isset ( $_GET['day'] )) $day = @$db->safesql ( sprintf("%02d", intval ( $_GET['day'] ) ) ); else $day = '';


Далее ищем код :
if (!$newsid) $sql_skin = $db->super_query ( "SELECT category FROM " . PREFIX . "_post where month(date) = '$month' AND year(date) = '$year' AND dayofmonth(date) = '$day' AND alt_name ='$news_name'" );
else $sql_skin = $db->super_query ( "SELECT category FROM " . PREFIX . "_post where  id = '$newsid' AND approve" );


И заменяем на:
if ($newsid) $sql_skin = $db->super_query ( "SELECT category FROM " . PREFIX . "_post where  id = '$newsid' AND approve" );


Удаляем вывод новостей "за весь год", "за весь месяц", "за день". Абсолютно не нужная функция, которая дублирует и нагружает ресурс, кто ими пользуется не понятно, да и суть не в том, хоть и это дубли которые можно просто скрыть от индекса, лучше их просто удалить.
Итак, удаление вывода новостей за год, месяц, день делаем следующим образом:

1) Открываем файл /engine/engine.php, находим код и удаляем :
// ################ Новости за год #################
            if ($year != '' and $month == '' and $day == '') {
              if ($cstart) {
                   
                    $cstart = $cstart - 1;
                  $cstart = $cstart * $config['news_number'];
             }
 
               $newsmodule = true;
              
                $url_page = $config['http_home_url'] . $year;
               $user_query = "year=" . $year;
               
                if (isset ( $_SESSION['dle_sort_date'] )) $news_sort_by = $_SESSION['dle_sort_date'];
               if (isset ( $_SESSION['dle_direction_date'] )) $news_direction_by = $_SESSION['dle_direction_date'];
                 
                $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}date >= '{$year}-01-01'AND date < '{$year}-01-01' + INTERVAL 1 YEAR AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
                $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post where {$stop_list}date >= '{$year}-01-01'AND date < '{$year}-01-01' + INTERVAL 1 YEAR AND approve=1" . $where_date;
           }
            
            // ################ Новости за месяц #################
          if ($year != '' and $month != '' and $day == '') {
              if ($cstart) {
                  $cstart = $cstart - 1;
                  $cstart = $cstart * $config['news_number'];
             }
 
               if (intval($month) < 1 OR intval($month) > 12) {
                  header("HTTP/1.0 301 Moved Permanently");
                   header("Location: ".str_replace("index.php","",$_SERVER['PHP_SELF'])."{$year}/01/");
                    die("Redirect");
                }
 
               $newsmodule = true;
             $url_page = $config['http_home_url'] . $year . "/" . $month;
                $user_query = "year=" . $year . "&month=" . $month;
              
                if (isset ( $_SESSION['dle_sort_date'] )) $news_sort_by = $_SESSION['dle_sort_date'];
               if (isset ( $_SESSION['dle_direction_date'] )) $news_direction_by = $_SESSION['dle_direction_date'];
                 
                $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}date >= '{$year}-{$month}-01'AND date < '{$year}-{$month}-01' + INTERVAL 1 MONTH AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
               $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post where {$stop_list}date >= '{$year}-{$month}-01'AND date < '{$year}-{$month}-01' + INTERVAL 1 MONTH AND approve=1" . $where_date;
          }
        
            // ################ Новости за день #################
 
           if ($year != '' and $month != '' and $day != '' and $subaction == '') {
             if ($cstart) {
                  $cstart = $cstart - 1;
                  $cstart = $cstart * $config['news_number'];
             }
 
               if (intval($month) < 1 OR intval($month) > 12) {
                  header("HTTP/1.0 301 Moved Permanently");
                   header("Location: ".str_replace("index.php","",$_SERVER['PHP_SELF'])."{$year}/01/");
                    die("Redirect");
                }
 
               if (intval($day) < 1 OR intval($day) > 31) {
                  header("HTTP/1.0 301 Moved Permanently");
                   header("Location: ".str_replace("index.php","",$_SERVER['PHP_SELF'])."{$year}/{$month}/01/");
                   die("Redirect");
                }
 
               $newsmodule = true;            
                $url_page = $config['http_home_url'] . $year . "/" . $month . "/" . $day;
               $user_query = "year=" . $year . "&month=" . $month . "&day=" . $day;
                 
                if (isset ( $_SESSION['dle_sort_date'] )) $news_sort_by = $_SESSION['dle_sort_date'];
               if (isset ( $_SESSION['dle_direction_date'] )) $news_direction_by = $_SESSION['dle_direction_date'];
                 
                $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
              $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR AND approve=1" . $where_date;
            }

Далее в том же файле ищем код и удаляем его :
if ($month) $cache_prefix .= "month_" . $month;
     if ($year) $cache_prefix .= "year_" . $year;
        if ($day) $cache_prefix .= "day_" . $day;


Далее ищем код и тоже его удаляем:
if ($year != '' and $month == '' and $day == '') $nam_e = $lang['title_date'] . ' ' . $year . ' ' . $lang['title_year'];
if ($year != '' and $month != '' and $day == '') $nam_e = $lang['title_date'] . ' ' . $r[$month - 1] . ' ' . $year . ' ' . $lang['title_year1'];
if ($year != '' and $month != '' and $day != '' and $subaction == '') $nam_e = $lang['title_date'] . ' ' . $day . '.' . $month . '.' . $year;

3) Открываем файл .htaccess что в главной директории (там где index.php), находим код и удаляем :

# За день
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2&day=$3 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&day=$3&cstart=$4 [L]
# За весь месяц
RewriteRule ^([0-9]{4})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&cstart=$3 [L]
# Вывод за весь год
RewriteRule ^([0-9]{4})(/?)+$ index.php?year=$1 [L]
RewriteRule ^([0-9]{4})/page/([0-9]+)(/?)+$ index.php?year=$1&cstart=$2 [L]

Все теперь мы без этой не нужной функции.

Удаляем "Вывод всех последних новостей". Для многих это тоже лишняя функция, которая не столь важна для любого сайт.
Итак, удаляем вывод всех последних новостей на сайте
Открываем файл /engine/engine.php, находим код и удаляем его :
elseif ($do == 'lastnews') {
            // ################ Вывод всех последних новостей #################        
            if ($cstart) {
              $cstart = $cstart - 1;
              $cstart = $cstart * $config['news_number'];
         }
 
           $newsmodule = true;
          
            $url_page = $config['http_home_url'] . "lastnews";
          $user_query = "do=lastnews";
             
            if (isset ( $_SESSION['dle_sort_lastnews'] )) $news_sort_by = $_SESSION['dle_sort_lastnews'];
           else $news_sort_by = "date";
            if (isset ( $_SESSION['dle_direction_lastnews'] )) $news_direction_by = $_SESSION['dle_direction_lastnews'];
            else $news_direction_by = "DESC";
            
            $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
          $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}approve=1" . $where_date;
        }

Далее в этом же файле ищем код и удаляем его:

elseif ($do == "lastnews") {
$cache_prefix = "_lastnews";
}

Ищем код и удаляем его :
elseif ($do == 'lastnews') $nam_e = $lang['last_news'];


2) Открываем файл .htaccess что в главной директории (там где index.php), находим код и удаляем :
# вывод всех последних новостей
RewriteRule ^lastnews(/?)+$ index.php?do=lastnews [L]
RewriteRule ^lastnews/page/([0-9]+)(/?)+$ index.php?do=lastnews&cstart=$1 [L]


SEO Оптимизация DLE Удаляем "Вывод всех новостей пользователя", ну что можно еще добавить, совершенно не нужная функция, вот и все.
Итак, удаление всех новостей пользователя
----------------------
1) Открываем файл /engine/engine.php, находим код и удаляем его :
elseif ($subaction == 'allnews') {
          // ################ Вывод всех новостей пользователя #################
          if ($cstart) {
               
                $cstart = $cstart - 1;
              $cstart = $cstart * $config['news_number'];
          
            }
 
           $newsmodule = true;
          
            $url_page = $config['http_home_url'] . "user/" . urlencode ( $user ) . "/news";
         $user_query = "subaction=allnews&user=" . urlencode ( $user );
           
            if (isset ( $view_template ) and $view_template == "rss") {
              
                $sql_select = "SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name FROM " . PREFIX . "_post where {$stop_list}autor = '$user' AND approve=1" . $where_date . " ORDER BY date DESC LIMIT 0," . $config['rss_number'];
             
            } else {
                 
                if (isset ( $_SESSION['dle_sort_allnews'] )) $news_sort_by = $_SESSION['dle_sort_allnews'];
             if (isset ( $_SESSION['dle_direction_allnews'] )) $news_direction_by = $_SESSION['dle_direction_allnews'];
               
                $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}autor = '$user' AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
              $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}autor = '$user' AND approve=1" . $where_date;
         }
            $allow_active_news = true;
        }


Далее находим код и удаляем его :
elseif ($subaction == 'allnews') {
$cache_prefix = "_allnews_". $user;
}


Далее ищем код и удаляем его :
elseif ($subaction == 'allnews') {
  $nam_e = $lang['show_user_news'] . ' ' . $user;
  
    if ($config['allow_alt_url'] == "yes") {
        $rss_url = $config['http_home_url'] . "user/" . urlencode ( $user ) . "/" . "rss.xml";
  } else {
        $rss_url = $config['http_home_url'] . "engine/rss.php?subaction=allnews&user=" . urlencode ( $user );
   }
 
}


2) Открываем файл /engine/modules/profile.php, находим код и удаляем его :
$tpl->set( '[rss]', "<a href="\""" .="" $config['http_home_url']="" "user="" "="" urlencode(="" $row['name']="" )="" rss.xml"="" "\"="" title="\""" $lang['rss_user']="">" );
$tpl->set( '[/rss]', "</a>" );


Далее ищем снизу же код и удаляем его :
$tpl->set( '[rss]', "<a href="\"engine/rss.php?subaction=allnews&user="" .="" urlencode(="" $row['name']="" )="" "\"="" title="\""" $lang['rss_user']="">" );
$tpl->set( '[/rss]', "</a>" );


Далее ищем и удаляем :
$tpl->set_block( "'\\[rss\\](.*?)\\[/rss\\]'si", "" );


3) Открываем файл .htaccess что в главной директории (там где index.php), находим код и удаляем :
RewriteRule ^user/([^/]*)/news(/?)+$ index.php?subaction=allnews&user=$1 [L]
RewriteRule ^user/([^/]*)/news/page/([0-9]+)(/?)+$ index.php?subaction=allnews&user=$1&cstart=$2 [L]
RewriteRule ^user/([^/]*)/news/rss.xml(/?)+$ engine/rss.php?subaction=allnews&user=$1 [L]


Вот и все, еще минус одна не нужная функция.

SEO Оптимизация DLE Удаление "Вывод непрочитанных новостей". Совсем не нужная вещь, которая к тому же неправильно работает.
Приступим, удаление непрочитанных новостей

1) Открываем файл /engine/engine.php, находим код и удаляем его :
elseif ($subaction == 'newposts') {
         // ################ Вывод непрочитанных новостей #################
          if ($cstart) {
              $cstart = $cstart - 1;
              $cstart = $cstart * $config['news_number'];
         }
 
           $newsmodule = true;
          
            $url_page = $config['http_home_url'] . "newposts";
          $user_query = "subaction=newposts";
          
            $thistime = date ( "Y-m-d H:i:s", $_TIME );
          
            if (isset ( $_SESSION['member_lasttime'] )) {
               $lasttime = date ( "Y-m-d H:i:s", $_SESSION['member_lasttime'] );
           } else {
                $lasttime = date ( "Y-m-d H:i:s", (time () + ($config['date_adjust'] * 60) - (3600 * 4)) );
         }
            
            if (isset ( $_SESSION['dle_sort_newposts'] )) $news_sort_by = $_SESSION['dle_sort_newposts'];
           if (isset ( $_SESSION['dle_direction_newposts'] )) $news_direction_by = $_SESSION['dle_direction_newposts'];
             
            $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}approve=1 AND date between '$lasttime' and '$thistime' order by " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
            $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}approve=1 AND date between '$lasttime' and '$thistime'";
           
            $config['allow_cache'] = false;
     }


Далее находим код и удаляем тоже :
elseif ($subaction == 'newposts') $nam_e = $lang['title_new'];


2) Открываем /engine/init.php находим код и удаляем :
$tpl->set( '{newposts-link}', $config['http_home_url'] . "newposts/" );


и так же
$tpl->set( '{newposts-link}', $PHP_SELF . "?subaction=newposts" );


3) Открываем файл .htaccess что в главной директории (там где index.php), находим код и удаляем :

# вывод непрочитанных статей
RewriteRule ^newposts(/?)+$ index.php?subaction=newposts [L]
RewriteRule ^newposts/page/([0-9]+)(/?)+$ index.php?subaction=newposts&cstart=$1 [L]


Если ваш сайт не использует теги, то их можно удалить подчистую :
Итак, удаляем код тегов

1) Открываем файлы /engine/modules/show.short.php & show.full.php & show.costum.php находим код и удаляем :
if( $config['allow_tags'] and $row['tags'] ) { 
        $tpl->set( '[tags]', "" );
       $tpl->set( '[/tags]', "" ); 
        $tags = array ();
       $row['tags'] = explode( ",", $row['tags'] );
        foreach ( $row['tags'] as $value ) {   
            $value = trim( $value );
    if( $config['allow_alt_url'] ) $tags[] = "<a href="\""" .="" $config['http_home_url']="" "tags="" "="" urlencode(="" $value="" )="" \"="">" . $value . "</a>";
    else $tags[] = "<a href="\"$PHP_SELF?do=tags&tag="" .="" urlencode(="" $value="" )="" "\"="">" . $value . "</a>";
 }
   $tpl->set( '{tags}', implode( ", ", $tags ) );
   } else {
    $tpl->set_block( "'\\[tags\\](.*?)\\[/tags\\]'si", "" );
 $tpl->set( '{tags}', "" );
   }


2) Открываем /engine/engine.php, находим код и удаляем :
elseif ($do == 'tags') {
            // ################ Поиск новостей по тегу #################           
            if ($cstart) {
              $cstart = $cstart - 1;
              $cstart = $cstart * $config['news_number'];
         }
 
           $tag = urldecode ( $_GET['tag'] );
 
          if ( $config['charset'] == "windows-1251" AND $config['charset'] != detect_encoding($tag) ) {
               $tag = iconv( "UTF-8", "windows-1251//IGNORE", $tag );
          }
 
           $tag = htmlspecialchars ( strip_tags ( stripslashes ( trim ( $tag ) ) ), ENT_COMPAT, $config['charset'] );
 
          define( 'CLOUDSTAG', $tag );
 
            $tag = @$db->safesql ( $tag );
 
           $url_page = $config['http_home_url'] . "tags/" . urlencode ( $tag );
            $user_query = "do=tags&tag=" . urlencode ( $tag );
       
            if (isset ( $_SESSION['dle_sort_tags'] )) $news_sort_by = $_SESSION['dle_sort_tags'];
           if (isset ( $_SESSION['dle_direction_tags'] )) $news_direction_by = $_SESSION['dle_direction_tags'];
             
            $db->query ( "SELECT news_id FROM " . PREFIX . "_tags WHERE tag='{$tag}'" );
          
            $tag_array = array ();
           
            while ( $row = $db->get_row () ) {
                
                $tag_array[] = $row['news_id'];
          
            }
            
            if (count ( $tag_array )) {
              
                $tag_array = "(" . implode ( ",", $tag_array ) . ")";
            
            } else {
                 
                $tag_array = "('undefined')";
            
            }
            
            $db->free ();
             
            $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}p.id IN {$tag_array} AND p.approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
           $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}id IN {$tag_array} AND approve=1" . $where_date;
          $allow_active_news = true;
           
            $tag_array = array ();
          unset ( $tag_array );
 
       }


Потом в этом же файле находим (13 раз) и удаляем :
p.tags,


Далее ищем код и удаляем :
elseif ($do == 'tags') {
$cache_prefix = "_tagscl_". $tag;
}


Далее ищем и удаляем следующий код :
elseif ($do == 'alltags') $nam_e = $lang['tag_cloud'];
elseif ($do == 'tags') $nam_e = stripslashes($tag);


3) Открываем файл /engine/init.php, находим код и удаляем :
if( $do == "tags" AND !$_GET['tag'] ) $do = "alltags";


4) Открываем файл /index.php, находим код и удаляем :
$tpl->set ( '{tags}', $tpl->result['tags_cloud'] );


5) Открываем файл .htaccess что в главной директории (там где index.php), находим код и удаляем :
# вывод отдельному тегу
RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]


На этом оканчивается удаления ненужных частей движка, далее можно приступить к оптимизации DLE - смотрите ниже в блоке Похожие новости. Материал берется как с Alaev info так и написан Gameer.

Жмите на Кнопу ниже, или подписывайтесь!


Читайте также
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


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

Авторизация