Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Статическая страница на весь экран

Статическая страница на весь экран


     18.04.2014    dle, dle 10.1, статические страницы на весь экран    Все вопросы » Общие вопросы по PHP    3995

вопрос
Всем привет. Нужно реализовать статическую страницу на весь экран. Как показано ниже.

Статическая страница на весь экран


В данный момент стат. страница выводится в index.php с помощью этого условия
if($dle_module == 'static' && $static_result['name'] == 'map') {
    $tpl->load_template('map.tpl');
} else {
    $tpl->load_template('main.tpl');
}

Идет простая подмена шаблона. И как бы это условие всегда проверяется, да еще и на главной. А если у меня их будет не 1, а 100? Для каждой странице отдельное условие? Не камильфо.

А нужно вывод страницы реализовать по аналогии с выводом версии для печати, но при этом использовать генерацию стандартного шаблона.
Создал в таблице dle_static поле с названием full_size
Статическая страница на весь экран

Соответственно сделал при создании и редактировании стат.страницы checkbox
[/code]
Ну и пошел смотреть где же определяется шаблон в стат. страницах
Никак не могу понять, как нужно прописать, чтобы моя проблема заработала
[spoiler][code]if( $static_result['allow_template'] or $view_template == "print" ) {
            
            if( $view_template == "print" ) $tpl->load_template( 'static_print.tpl' );
            elseif( $static_result['tpl'] != '' ) $tpl->load_template( $static_result['tpl'] . '.tpl' );
            else $tpl->load_template( 'static.tpl' );
            
            if( strpos( $tpl->copy_template, "{custom" ) !== false ) {
                
                $tpl->copy_template = preg_replace_callback ( "#\\{custom(.+?)\\}#i", "custom_print", $tpl->copy_template );
            
            }
            
            if( ! $news_page ) $news_page = 1;
            
            if( $view_template == "print" ) {
                
                $template = str_replace( "{PAGEBREAK}", "", $template );
                $template = str_replace( "{pages}", "", $template );
                $template = preg_replace( "'\[PAGE=(.*?)\](.*?)\[/PAGE\]'si", "", $template );
            
            } else {
                
                $news_seiten = explode( "{PAGEBREAK}", $template );
                $anzahl_seiten = count( $news_seiten );
                
                if( $news_page  $anzahl_seiten ) {
                    $news_page = 1;
                }
                
                $template = $news_seiten[$news_page - 1];
                
                $template = preg_replace( '#(\A[\s]*]*>[\s]*|]*>[\s]*\Z)#is', '', $template ); // remove  at end of string
                

                $news_seiten = "";
                unset( $news_seiten );
                
                if( $anzahl_seiten > 1 ) {
                    
                    if( $news_page < $anzahl_seiten ) {
                        $pages = $news_page + 1;
                        if( $config['allow_alt_url'] == "yes" ) {
                            $nextpage = " | " . $lang['news_next'] . "";
                        } else {
                            $nextpage = " | " . $lang['news_next'] . "";
                        }
                    }
                    
                    if( $news_page > 1 ) {
                        $pages = $news_page - 1;
                        if( $config['allow_alt_url'] == "yes" ) {
                            $prevpage = "" . $lang['news_prev'] . " | ";
                        } else {
                            $prevpage = "" . $lang['news_prev'] . " | ";
                        }
                    }
                    
                    $tpl->set( '{pages}', $prevpage . $lang['news_site'] . " " . $news_page . $lang['news_iz'] . $anzahl_seiten . $nextpage );
                    
                    if( $config['allow_alt_url'] == "yes" ) {
                        $replacepage = "\\2";
                    } else {
                        $replacepage = "\\2";
                    }
                    
                    $template = preg_replace( "'\[PAGE=(.*?)\](.*?)\[/PAGE\]'si", $replacepage, $template );
                
                } else {
                    
                    $tpl->set( '{pages}', '' );
                    $template = preg_replace( "'\[PAGE=(.*?)\](.*?)\[/PAGE\]'si", "", $template );
                
                }
            
            }
            
            if( $config['allow_alt_url'] == "yes" ) $print_link = $config['http_home_url'] . "print:" . $static_result['name'] . ".html";
            else $print_link = $config['http_home_url'] . "engine/print.php?do=static&amp;page=" . $static_result['name'];

            if( @date( "Ymd", $static_result['date'] ) == date( "Ymd", $_TIME ) ) {
                
                $tpl->set( '{date}', $lang['time_heute'] . langdate( ", H:i", $static_result['date'] ) );
            
            } elseif( @date( "Ymd", $static_result['date'] ) == date( "Ymd", ($_TIME - 86400) ) ) {
                
                $tpl->set( '{date}', $lang['time_gestern'] . langdate( ", H:i", $static_result['date'] ) );
            
            } else {
                
                $tpl->set( '{date}', langdate( $config['timestamp_active'], $static_result['date'] ) );
            
            }

            $news_date = $static_result['date'];    
            $tpl->copy_template = preg_replace_callback ( "#\{date=(.+?)\}#i", "formdate", $tpl->copy_template );
            

            $tpl->set( '{description}', $static_descr );
            $tpl->set( '{static}', $template );
            $tpl->set( '{views}', $static_result['views'] );

            if ($config['allow_search_print']) {

                $tpl->set( '[print-link]', "" );
                $tpl->set( '[/print-link]', "" );

            } else {

                $tpl->set( '[print-link]', "" );
                $tpl->set( '[/print-link]', "" );

            }
            
            if( $_GET['page'] == "dle-rules-page" ) if( $do != "register" ) {
                
                $tpl->set( '{ACCEPT-DECLINE}', "" );
            
            } else {
                
                $tpl->set( '{ACCEPT-DECLINE}', "&nbsp;&nbsp;&nbsp;" );
            
            }
            
            $tpl->compile( 'content' );

            $tpl->clear();
        
        } else
            $tpl->result['content'] = $template;



Весь код module/static.php

Ответа пока нет


1 комментарий

teleoperator27
Юзер

teleoperator27 - 20 апреля 2014 12:02 -

круто. я бы сделал так: 1. для этой сттатической страницы создал бы свой шаблон на всю ширину. 2, В майн.тпл использовал бы два тега: [static=страница] и [/not-static=страница] и не зачем огород с php городить, все на уровне шаблонов делается

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх