mishiko
Постоялец
- Регистрация
- 5 Сен 2011
- Сообщения
- 320
- Реакции
- 135
- Автор темы
- #1
Хак сам просматривает файл engine/engine.php и ищет установленные вами модули, и позволяет их выбирать для отображения, поэтому вам не придётся искать специальные адреса и списывать их вручную.
Автор модуля: REZER
Сайт: Для просмотра ссылки Войди
Версия DLE: 11.x (на более ранних не проверялась, но теоретически должно работать)
Внимание! Если у вас после установки выводятся ошибки, то необходимо скачать файл ниже, и произвести инструкцию от туда. Причиной этому может быть неправильное копирование текста браузером.
1. Открыть файл engine/inc/options.php и найти:
2. Открыть файл engine/engine.php и найти:
Далее найти:
1. Открыть файл engine/inc/options.php и найти:
Выше добавить:showRow( $lang['opt_sys_offline'], $lang['opt_sys_offlined'], makeCheckBox( "save_con[site_offline]", "{$config['site_offline']}" ) );
$mainPageReplaceJS = <<<HTML
<script type="text/javascript">
jQuery( "select[name='save_con[main_page_show]']" ).change(function(){
var thisVal = jQuery( this ).val();
jQuery( "div[id*='main_page_show_']" ).hide();
jQuery( "div[id='main_page_show_" + thisVal + "']" ).show();
});
jQuery( "select[name='save_con[main_page_show]']" ).change();
</script>
HTML;
$listMainPageTypes = array( 'default' => 'По умолчанию (список новостей)', 'lastnews' => 'Последние новости (lastnews)', 'cat' => 'Категорию (выбрать)', 'static' => 'Статическая страница (выбрать)', 'module' => 'Модуль (выбрать)', 'newsid' => 'Новость (указать ID)' );
$categoriesList = CategoryNewsSelection( $config['main_page_show_cat'], 0, false );
$staticPages = array();
$staticQuery = $db->query( "SELECT `name`,`descr` FROM ".PREFIX."_static ORDER BY `id`" );
while( $staticRow = $db->get_row( $staticQuery ) ){
$staticPages[ $staticRow['name'] ] = $staticRow['descr'];
}
$modulePages = array();
$modulePagesLang = array(
'search' => 'Поиск по сайту',
'stats' => 'Статистика сайта',
'addnews' => 'Добавление новости',
'register' => 'Регистрация пользователя',
'lostpassword' => 'Восстановление пароля',
'rules' => 'Правила сайта',
'alltags' => 'Облако тегов',
'favorites' => 'Закладки пользователя',
'feedback' => 'Обратная связь',
'lastcomments' => 'Последние комментарии',
'pm' => 'Персональные сообщения',
'board' => 'Доска объявлений',
'blog' => 'Блоги пользователей',
'selection' => 'Подборка новостей из блогов',
'faq' => 'FAQ - справка сайта',
'proposal' => 'Отзывы и расширения',
'iphoto' => 'Фотоальбом IPhoto'
);
$modulePagesHide = array( 'changemail', 'deletenews', 'comments', 'static', 'auth-social', 'unsubscribe', 'newsletterunsubscribe' );
$engineContent = file_get_contents( ENGINE_DIR.'/engine.php' );
preg_match_all( "/case \"([^\"]*)\"/is", $engineContent, $engineModules );
if( count( $engineModules[1] ) > 0 && is_array( $engineModules[1] ) ){
foreach( $engineModules[1] as $moduleAltName ){
if( in_array( $moduleAltName, $modulePagesHide ) ) continue;
$moduleName = $modulePagesLang[ $moduleAltName ] ? $modulePagesLang[ $moduleAltName ] : $moduleAltName.' - не известен';
$modulePages[ $moduleAltName ] = $moduleName;
}
}
showRow( 'Главная страница сайта', 'Выберите, что необходимо выводить на главной странице сайта.',
makeDropDown( $listMainPageTypes, "save_con[main_page_show]", "{$config['main_page_show']}" ).
"<div id=\"main_page_show_cat\" style=\"display: none; margin: 5px 0 0;\"><select class=\"uniform\" name=\"save_con[main_page_show_cat]\">{$categoriesList}</select></div>".
"<div id=\"main_page_show_static\" style=\"display: none; margin: 5px 0 0;\">".makeDropDown( $staticPages, "save_con[main_page_show_static]", "{$config['main_page_show_static']}" )."</div>".
"<div id=\"main_page_show_module\" style=\"display: none; margin: 5px 0 0;\">".makeDropDown( $modulePages, "save_con[main_page_show_module]", "{$config['main_page_show_module']}" )."</div>".
"<div id=\"main_page_show_newsid\" style=\"display: none; margin: 5px 0 0;\"><input type=\"text\" style=\"width:70px;\" name=\"save_con[main_page_show_newsid]\" value=\"{$config['main_page_show_newsid']}\"> - id новости</div>"
);
showRow( 'Заголовок главной страницы', 'Сохранять ли заголовок главной страницы сайта? Если значение будет выбрано 'Заменять', то заголовок главной страницы будет браться из выбранного вами модуля/новости/категории/страницы.'.$mainPageReplaceJS, makeDropDown( array( "0" => 'Заменять', "1" => 'Сохранять' ), "save_con[main_page_show_replace_title]", "{$config['main_page_show_replace_title']}" ) );
2. Открыть файл engine/engine.php и найти:
Выше добавить:switch ( $do ) {
if( in_array( $config['main_page_show'], array( 'lastnews', 'cat', 'static', 'module', 'newsid' ) ) && $dle_module == 'main' ){
if( $config['main_page_show'] == 'lastnews' ) $do = 'lastnews';
if( $config['main_page_show'] == 'cat' ){
$do = 'cat';
$cat_info = get_vars( "category" );
$category_id = intval( $config['main_page_show_cat'] );
$_GET['category'] = (string) $cat_info[ $config['main_page_show_cat'] ]['alt_name'];
$category = $db->safesql( strip_tags( $cat_info[ $config['main_page_show_cat'] ]['alt_name'] ) );
}
if( $config['main_page_show'] == 'static' ){
$do = 'static';
$_GET['page'] = $config['main_page_show_static'];
};
if( $config['main_page_show'] == 'module' ) $do = totranslit( $config['main_page_show_module'] );
if( $config['main_page_show'] == 'newsid' ) $newsid = intval( $config['main_page_show_newsid'] );
if( $config['main_page_show_replace_title'] == 1 ) $oldMetatags = $metatags;
}
Далее найти:
Выше добавить:$titl_e = '';
if( in_array( $config['main_page_show'], array( 'lastnews', 'cat', 'static', 'module', 'newsid' ) ) && $dle_module == 'main' && $config['main_page_show_replace_title'] == '1' ){
unset( $newsid, $_GET['category'], $category_id, $_GET['page'], $subaction, $news_found );
$metatags = $oldMetatags;
$do = 'main';
}