2009-03-10 16 views
0

Ich habe diese Klasse für Seitentitel:Dynamische Seite Titel

class UI { 

    private static $title; 

    public static function getTitle() { return self::$title; } 
    public static function setTitle($value) { self::$title = $value; } 
    } 

Also meiner Titelseite ich einfach declare dieses:

UI::setTitle('Kiubbo.com :: Todas las Noticias, Fotos y Videos'); 

und funktioniert gut. Das Problem besteht darin, die Titel der Kommentarseiten abhängig vom Inhalt (Titel der Links) zu ändern. Ich möchte die gleiche wie diese Variable sein (das hat den gleichen Namen, aber es seine für eine andere Funktion es ist nicht das gleiche getTitle):

<?php echo $article->getTitle(); ?> 

, die sein in dieser Funktion:

function showAllComments($article_id, $param) 
    { 

     $article = Article::getById($article_id); 

     if(!empty($article)) 
     { 
      ?> 
      <div class="news_item"> 
       <h2 class="news_item_title"><b><a href = "<?php echo $article->getUrl(); ?>"><?php echo $article->getTitle(); ?></a></b></h2>    

      </div> 

Wenn jemand kann helfen, dass ich es schätze.

Thx

Antwort

4

Ich bin nicht sicher, ob ich völlig verstehen, was Sie tun wollen. Wenn Sie möchten, dass jedes Objekt einen eigenen Titel hat, müssen Sie die Titelvariable nicht-statisch machen (und die Funktionen auch nicht-statisch). Eine statische Variable/Funktion hat nur eine Instanz pro Klasse.

1

ändern Sie "$ article-> getTitle()" zu "UI :: getTitle()" und es sollte funktionieren, aber ich glaube nicht, dass Sie das wirklich tun wollen, oder?

1

In showAllComments() vielleicht könnten Sie tun

UI::setTitle($article->getTitle()); 
+0

Ich versuche es, aber nicht funktioniert. Wahrscheinlich wird der Header vor der showAllComments-Funktion erstellt. – jcslzr

+0

Ja das macht Sinn. Vielleicht könnte showAllComments() eine Instanz von Article anstelle von article_id nehmen, dann können Sie sie außerhalb der Funktion holen und bevor Sie HTML ausgeben –

Verwandte Themen