2013-10-25 2 views
0

새로운 UI 클래스에서 작업하고 있는데 첫 번째 글자 이후에 스크립트가 모든 부분을 자르는 wierd 문제를 발견했다. 내 코드를 보여 드리죠. addPage가 foreach의 첫 문자 다음에 오는 모든 것을 자른다.

class UI { 


    // legger CSS-fil til <head> 
    public function addCSS($css_file) { 
     $this->css[] = array($css_file); 
    } 

    // legger javaScript-fil til <head> 
    public function addJS($js_file) { 
     $this->js[] = $js_file; 
    } 

    // legger sider til <body> 
    public function addPage($php_file) { 
     $this->php[] = $php_file; 
    } 

    // Funksjon for add 
    public function __construct() { 
     // CSS 
     $this->addCSS('bootstrap.css'); 
     $this->addCSS('style.css'); 

     // JS 
     $this->addJS('jquery.js'); 
     $this->addJS('bootstrap.js'); 
     $this->addJS('functions.js'); 

     // Sider 
     $this->addPage('home.php'); 
     $this->addPage('about.php'); 
    } 


    // Struktur for header 
    public function getHeader() { 
     $html = '<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta name="description" content=""> 
    <meta keywords=""> 
    <meta name="author" content="">'; 

     // Legger inn CSS 
     foreach ($this->css as $css) { 
      $html .= ' 
    <link rel="stylesheet" type="text/css" href="css/' . $css[0] . '" />'; 
     } 
    $html .= ' 
    <title>www.Dan-Levi.no</title> 
    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> 
    <!--[if lt IE 9]> 
     <script src="js/html5shiv.js"></script> 
     <script src="js/respond.min.js"></script> 
    <![endif]--> 
    </head> 
    <body>'; 
    return $html; 
    } 


    // Struktur for navigasjonen festet til bunn av siden 
    public function getNav() { 
     $html = ' 

    <div class="navbar navbar-inverse navbar-fixed-bottom"> 
     <div class="container"> 
      <div class="navbar-header"> 
       <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
       </button> 
      </div> 
      <div class="navbar-collapse collapse"> 
       <ul class="nav navbar-nav"> 
        <li class="active"><a href="#">Home</a></li> 
        <li><a href="#about">About</a></li> 
        <li><a href="#contact">Contact</a></li> 
        <li class="dropdown"> 
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Other stuff <b class="caret"></b></a> 
        <ul class="dropdown-menu"> 
         <li><a href="#">Lorem</a></li> 
         <li><a href="#">Ipsum</a></li> 
         <li><a href="#">Dolor</a></li> 
         <li class="divider"></li> 
         <li class="dropdown-header">Social</li> 
         <li><a href="#">Lorem</a></li> 
         <li><a href="#">Ipsum</a></li> 
         <li><a href="#">Dolor</a></li> 
        </ul> 
        </li> 
       </ul> 
       <span class="navbar-brand pull-right"><small>&copy; '; $html .= date('Y') ; $html .= ' '. htmlentities('Tømta') .' Data Service</small></span> 
      </div><!--/.navbar-collapse --> 
     </div> 
    </div><!--/.navbar -->'; 
     return $html; 
    } 


    // Struktur for siden 
    public function getContent() { 

     // Legger inn Sider 
     foreach ($this->php as $php) { 
      include 'pages/'.$php; 
     } 

    } 


    // Struktur for footer 
    public function getFooter() { 

     // Legger inn javaScript 
     foreach ($this->js as $js) { 
      $html = ' 
    <script type="text/javascript" src="js/' . $js[0] . '" ></script>'; 
     } 

     $html .= ' 

    </body> 
</html>'; 
    return $html; 
    } 


    // Printer ut sideheader 
    public function printHeader() { 
     print $this->getHeader(); 
    } 

    // printer ut navigasjonen 
    public function printNav() { 
     print $this->getNav(); 
    } 

    // printer ut sideinnhold 
    public function printContent() { 
     print $this->getContent(); 
    } 

    // printer ut sidefooter 
    public function printFooter() { 
     print $this->getFooter(); 
    } 

} 

addCSS과의 addPage 기능

의도 한 작품으로,하지만 addJS의 모든 것을 인하는이의 첫 글자를 반환 $this->addJS('functions.js');

페이지 소스의 끝은 다음과 같습니다

<div class="jumbotron"> 
     <div class="container"> 
      <h1>Test!</h1> 
      <p>Tootsie roll chocolate liquorice jelly. Chocolate cake liquorice cake pie dragée caramels liquorice wafer topping. Lemon drops cotton candy bear claw pudding icing. Chupa chups oat cake candy.</p> 
      <p><a class="btn btn-primary btn-lg">Sweet muffin cookie &raquo;</a></p> 
     </div> 
    </div> 



    <script type="text/javascript" src="js/f" ></script> 



    </body> 
</html> 

이것이 어떤 이유입니까? 나는 시행 착오를 시도하고 일부를 읽었으며,이 문제에 대해 머리를 맞출 수가 없다.

도움을 주시면 감사하겠습니다.

답변

0

나는 코드를 재 작성하고 그것을 지금처럼 작동하도록 구성 :

// Adds javaScript to <head> 
    public function addJavaScript($javascript_file) { 
     $this->javascript[] = $javascript_file; 
    } 

    // Construct 
    public function __construct() { 
     // JS 
     $this->addJavaScript('jquery.js'); 
     $this->addJavaScript('bootstrap.js'); 
     $this->addJavaScript('functions.js'); 

    } 

// Adds javaScript (Put this in head) 
     foreach ($this->javascript as $js_file) { 
      $html .= ' 
    <script src="js/' . $js_file . '"></script>'; 
     }