ilch Forum » Ilch CMS 2.x » Module und Modifikationen » Hilfe bei Modulen - PHP-OOP Model-View

Geschlossen
  1. #31
    User Pic
    Raptusguru Mitglied
    Registriert seit
    10.02.2010
    Beiträge
    148
    Beitragswertungen
    11 Beitragspunkte
    So,

    https://underground-community.com/index.php/mobileilch/index/index/app/mobileilch/action/article


    so komm ich zumindest an die Parameter ran ^^. Muss mir erstmal einer sagen ^^.

    Nun bekomm ich wieder:

    Fatal error: Call to undefined method Ilch\View::getRequestedArticles() in /customers/c/1/8/underground-community.com/httpd.www/application/modules/mobileilch/views/index/index.php on line 15


    view/index.php
    <?php
    
    $adminAccess = null;
    if ($this->getUser()) {
        $adminAccess = $this->getUser()->isAdmin();
    }
    
    $isAppRequest = $this->getRequest()->getParam('app');
    
    
    if(!empty($isAppRequest) && $isAppRequest == 'mobileilch'){
    	
    	if($this->getRequest()->getParam('action') == 'article'){
    		//ARTICLES______________________________________________________________________________________________
    		$this->getRequestedArticles();
    		$articles = $this->get('articles');
    		$categoryMapper = $this->get('categoryMapper');
    		$commentMapper = $this->get('commentMapper');
    		$userMapper = $this->get('userMapper');
    		
    		
    				if ($articles != ''){
    					$displayedArticles = 0;
    
    					foreach ($articles as $article){
    						if (!is_in_array($this->get('readAccess'), explode(',', $article->getReadAccess())) && $adminAccess == false) {
    							continue;
    						}
    
    						$displayedArticles++;
    
    						$date = new \Ilch\Date($article->getDateCreated());
    						$commentsCount = $commentMapper->getCountComments(sprintf(Modules\Article\Config\Config::COMMENT_KEY_TPL, $article->getId()));
    						$image = $article->getImage();
    						$imageSource = $article->getImageSource();
    
    						$catIds = explode(",", $article->getCatId());
    						$categories = '';
    						foreach ($catIds as $catId) {
    							$articlesCats = $categoryMapper->getCategoryById($catId);
    							$categories .= '<a href="'.$this->getUrl(['controller' => 'cats', 'action' => 'show', 'id' => $catId]).'">'.$articlesCats->getName().'</a>, ';
    						}
    						
    						
    						if ($article->getTeaser()){
    						$this->escape($article->getTeaser());
    						}
    						
    						$this->escape($article->getTitle());
    						
    						if (!empty($image)){
    						$this->getBaseUrl($image);
    							if (!empty($imageSource)){
    								$this->escape($imageSource);
    							}
    						}
    						
    						$content = $article->getContent(); 
    						
    						if ($article->getAuthorId() != ''){
    							$user = $userMapper->getUserById($article->getAuthorId());
    							if ($user != ''){
    						$this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $user->getId()]) ?>"><?=$this->escape($user->getName());
    							}
    						}
    						
    						
    						if ($article->getKeywords() != ''){
    							$article->getKeywords();
    						}
    					}
    				}
    		//ARTICELS END__________________________________________________________________________________________
    	}
    	/*elseif(){
    		//FORUM_________________________________________________________________________________________________
    		
    		//FORUM END_____________________________________________________________________________________________
    	}
    	elseif(){
    		//GÄSTEBUCH_____________________________________________________________________________________________
    		
    		//GÄSTEBUCH END_________________________________________________________________________________________
    	}
    	*/
    	else $this->get('noRequest');
    	
    }
    else $this->get('noRequest');


    controllers/index.php
    <?php
    /**
     * @copyright Ilch 2.0
     * @package ilch
     */
    
    namespace Modules\Mobileilch\Controllers;
    use Modules\Article\Mappers\Article as ArticleMapper;
    use Modules\Article\Mappers\Category as CategoryMapper;
    use Modules\Comment\Mappers\Comment as CommentMapper;
    use Modules\User\Mappers\User as UserMapper;
    
    
    //Article
    //use Modules\Mobileilch\Controllers\MIArticles as MIArticleController;
    
    //Weitere wie Forum, Gästebuch usw...
    //....
    //....
    //....
    
    class Index extends \Ilch\Controller\Frontend
    {
    	
    	public function indexAction(){
    		$this->getView()->set('noRequest', 'Diese Website verwendet das Mobile ilch Plugin!!');
    	}
    
    	
        public function getRequestedArticles(){
    		$articleMapper = new ArticleMapper();
            $categoryMapper = new CategoryMapper();
            $commentMapper = new CommentMapper();
            $userMapper = new UserMapper();
            $pagination = new \Ilch\Pagination();
    
           // $pagination->setRowsPerPage(!$this->getConfig()->get('article_articlesPerPage') ? $this->getConfig()->get('defaultPaginationObjects') : $this->getConfig()->get('article_articlesPerPage'));
           // $pagination->setPage($this->getRequest()->getParam('page'));
    
            $userId = null;
            if ($this->getUser()) {
                $userId = $this->getUser()->getId();
            }
            $user = $userMapper->getUserById($userId);
    
            $ids = [3];
            if ($user) {
                $ids = [];
                foreach ($user->getGroups() as $us) {
                    $ids[] = $us->getId();
                }
            }
            $readAccess = explode(',',implode(',', $ids));
    
            $this->getView()->set('categoryMapper', $categoryMapper)
                ->set('commentMapper', $commentMapper)
                ->set('userMapper', $userMapper)
                ->set('article_articleRating', \Ilch\Registry::get('config')->get('article_articleRating'))
                ->set('articles', $articleMapper->getArticles($this->locale, $pagination))
                ->set('pagination', $pagination)
                ->set('readAccess', $readAccess);
    		//$MIArticleController = new MIArticleController();
    		//$MIArticleController->getArticles();
    	}
    	
    	
    }


    WHY? ^^
    0 Mitglieder finden den Beitrag gut.
  2. #32
    User Pic
    Raptusguru Mitglied
    Registriert seit
    10.02.2010
    Beiträge
    148
    Beitragswertungen
    11 Beitragspunkte
    Also,

    um mir das mal zu verdeutlichen..

    wenn ich z.b.:

    domain.de/index.php/mobileilch/index aufrufe.. dann wird auf die methode indexAction im Controller zugegriffen? Soweit korrekt?

    Wenn ich nun z.b.:

    domain.de/index.php/mobileilch/index/getrequestedArticles aufrufe, dann wird auf die methode getRequestetArticles des Controllers zugegriffen? Ist das korrekt?

    Sorry für meine ganzen Fragen, aber diese Art PHP hab ich noch nie mit zutun gehabt ^^.

    Aber noch einen habe ich:
    Wenn ich domain.de/index.php/mobileilch/index/getrequestetarticles/app/mobileilch/action/article aufrufe..

    daaaaannnn greife ich auf die Methode getRequestedArticles des Controllers zu und kann mit $this->getRequest()->getParam('app') auf den String im Parameter app zugreifen über die view/index/index.php????
    Korrekt?

    MFG das wandelnte Fragezeichen ^^
    0 Mitglieder finden den Beitrag gut.
  3. #33
    User Pic
    Raptusguru Mitglied
    Registriert seit
    10.02.2010
    Beiträge
    148
    Beitragswertungen
    11 Beitragspunkte
    So... was fürn Drama ^^.

    index.php/mobileilch/index/index ruft den view index/index.php mit controllers/Index.php und die Methode indexAction() auf.

    index.php/mobileilch/article/index ruft den view article/index.php mit controllers/Article.php und die methode indexAction() auf

    und

    index.php/mobileilch/article/article ruft den view article/article.php mit controllers/Article.php und die methode article() auf.

    ich glaube nun habe ich es raus -> puhh.
    Eine JSON Ausgabe habe ich auch schon. Nur müsste ich die jetzt nochmal in schön erstellen ^^.
    0 Mitglieder finden den Beitrag gut.
  4. #34
    User Pic
    corian Entwickler
    Registriert seit
    16.06.2011
    Beiträge
    879
    Beitragswertungen
    84 Beitragspunkte
    Hallo, eigentlich sollte die Warnung "no valid secure token given, add function getTokenField() to formular" nur bei POST kommen, mit GET kannst du Parameter an die Url hängen.
    Ich hätte Heute Abend auch etwas Zeit für TS. Einfach PN an mich bei Interesse.
    0 Mitglieder finden den Beitrag gut.
  5. #35
    User Pic
    Raptusguru Mitglied
    Registriert seit
    10.02.2010
    Beiträge
    148
    Beitragswertungen
    11 Beitragspunkte
    Hey Corian,

    danke für dein Angebot ^^.

    War gestern leider etwas spät geworden bei mir.

    Ich habe jetzt zumindest schonmal nen Anfang und versuch nun das nen bissl zu optimieren.
    Der Anfang war ziemlich schwer, bei diesem View und Controller krams durchzublicken. Ich denke für einige "Ex 1.1 prozedural Hobby Coder" wäre es sicherlich hilfreich nen kleines Tutorial zu machen ^^.

    Aber hier mal meine, ähhm, Ausgabe ^^. Fällt dir nochwas auf was man da noch verbessern könnte?

    So siehts gerade aus in der Ausgabe
                                <div class="panel-body">
                                    
    	<div id="json_output">
    	{"1":{"ARTIKELTEASER":"Sea of Thieves","ARTIKELTITEL":"Sea of Thieves - Erster Eindruck","ARTIKELIMAGE":"https:\/\/underground-community.com\/application\/modules\/media\/static\/upload\/5a69f5188df5611.png","ARTIKELIMAGESOURCE":"Keine Quelle angegeben","ARTIKELCONTENT":"Seit dem 24.01.18 läuft die Closed Beta von "Sea of Thives", dessen Entwicklerstudio "Rare" unter anderem auch für Donkey Kong Country verantwortlich war.Im Rahmen einer Einladung zur Closed Beta durfte ich also Sea of Thieves zocken und muss sagen, dass die ersten Eindrücke sehr positiv sind. Daher möchte ich einen kleinen Einblick in meine Erlebnisse geben.Wir werden beim starten des Games gleich feststellen, dass es sich um eine Alpha-Version handelt, so zumindest laut Startbildschirm.Okay, soweit verstanden ^^, also drücken wir einfach einen Button der uns gleich zu einer Auswahlmöglichkeit weiterleitet. Hier können wir nun auswählen welches art oder modi des Onlinegames wir gerne spielen möchten. Ich entschied mich meist für das erste Multicrew Schiff auf dem bis zu 4 Spieler platz finden. Bei dem mittelren Modus könnt ihr zu zweit euer unwesen treiben, wobei hier auch das Schiff kleiner ist und weniger Kanonen an Board hat. Als letztes habt ihr noch die Möglichkeit alleine in See zu stechen, ohne nervige Mates ;) .In der "Lobby" angekommen habt ihr die Möglichkeit noch eure Freunde an Board zu holen. Ansonsten werden euch nach Bestätigung 3 Leute zugewiesen mit denen ihr die See erobern könnt.Wie dem auch sei, starten wir meistens auf einer kleinen Insel, einem Outpost. Hier befinden wir uns in einer Art Kneipe für Hobbypiraten ^^. Manchmal joint ihr auch einer bereits bestehenden Crew, wo evtl. einer der Mitglieder der Session geleaved ist. Hierbei joint ihr dort, wo euer Schiff eben gerade ist.Zurück zum Outpost: Dort finden sich neben eueren neuen Crewmitgliedern auch einige Fässer. In diesen sind z.B. Kanonenkugeln, Bananen oder Holzplanken. Nehmt mit was ihr tragen könnt, denn man kann nie genug davon haben.Ihr macht euch auf dem Weg zum Schiff, welches beim Outpost vor Anker liegt. Auf dem Deck angekommen werdet ihr wohl feststellen, dass irgendeiner immer zuspät kommt ^^. Also wartet bis die Crew vollständig versammelt ist bevor ihr los schippert.Manch einer wird so überwältigt sein von der Atmosphäre der Umgebung, dass er glatt das Sprechen verlernt hat und euch nicht zu Antworten vermag, wenn ihr InGame Voice benutzt. Aber das scheint normal zu sein, da ja nicht jeder ein Mikrofon besitzt (*hust*).Alle versammeln sich also in der Kapitänskajüte und Voten für ein Abenteuer, eine Mission die euch auf die Reise schickt einen Schatz zu bergen. Nachdem erfolgreich gevotet wurde, erhaltet ihr eine Karte auf der entweder die Insel zu sehen ist auf der sich der Schatz befindet, oder eine Art kleines Rätsel in Textform, welches mehr richtung Reim geht, aber eigendlich leicht zu verstehen ist.Ihr oder auch einer, der des lesens einer Karte mächtig ist und mit Kompass umgehen kann, sucht die Insel auf einer Karte und gibt den Kurs an den Steuermann weiter.Nun können ganz nach rollenspiel Strategie, oder auch wild durchgewürfelt, alle Crewimitglieder anpacken das Schiff startklar zu machen. Es müssen der Anker eingeholt, die Segel gesetzt und das Steuerrad ergriffen werden.Bei großen Schiffen lohnt es sich zusammen am Ankerrad anzupacken, da es zu zweit oder gar zu viert um einiges schneller geht.Wenn nun die Segel gesetzt wurden und alles soweit ok ist, hat der Steuermann vollste Kontrolle über das Wohlergehen des Schiffen, denn es können im Meer so einige Sachen auf euch lauern. Schiffswracks die aus dem Meer ragen, kleiner Sandbänke, kleine und auch große Felsbrocken. Daher lohnt es sich wenn einer im Aussichtsturm oder ganz vorne am Schiff stellung bezieht und ein wachsames Auge auf die See hat und jedes ungewöhnliche Objekt an den Kapitän weiterzuleiten.Während der Fahrt sollte immer darauf geachtet werden, dass die Segel im Wind stehen. Die Windrichtung erkennt man an gut dargestellten kleinen Linien welche ihre Bahnen durch den Himmel ziehen, aber dennoch nicht im Gameplay störend wirken. Nebenbei ist es immer gut ein Mitglied im Aussichtsturm zu haben der die See nach Schiffen absucht, denn es passiert nicht selten, dass andere Piraten versuchen euch zu berauben, in dem Glauben, dass ihr gerade erfolgreich von einer Schatzsuche zum Outpost unterwegs seid.Solltet ihr einmal beschossen werden und einige Treffer kassieren, dann liegt es an der Crew schnell zu handeln, damit das Schiff nicht voll Wasser läuft. Hierzu werdet ihr Holzplanken brauchen die ihr auf die Löcher im Schiffsbauch nageln müsst.Ihr habt also nun euere Zielinsel erreicht und wisst auch schon wo der Schatz vergraben sein sollte. Buddelt ihn aus während die Crewmitglieder euch Skelette, die aus dem Boden hinaus kriechen und euch das Leben schwer machen wollen, bekämpfen. Mit dem erbeuteten Schatz und evtl. anderen tollen Sachen die ihr während eurer Schatzsuche auf der Insel ergattern konntet, macht ihr euch wieder auf den Weg zurück zum Schiff.Auf dem Schiff angekommen werft ihr noch einen Blick zurück auf die tolle Insel, um euch dieses Abenteuer noch lange im Gedächtnis zu behalten.Ihr setzt also wieder die Segel, lichtet den Anker, setzt Kurs auf den nächten Outpost und schippert dem Gold entgegen. Doch oh oh... da braut sich was zusammen...Nun heist es entweder ihr umschifft den Sturm, oder ihr wagt die Durchfahrt in das Monstrum. Ich entscheide mich dazu das "Monstrum" zu umschiffen, da durch den vielen Regen und den Sturm das Schiff voll Wasser läuft und ihr alle Hände zu tun haben werdet das Schiff am sinken zu hindern. Zudem kann auch mal der Blitz einschlagen und euch dabei erwischen.Am Ende seid ihr sicher am Outpost angelangt und habt euren Schatz verkauft und einiges an Gold dafür bekommen, wovon ihr euch neue Items, Werkzeuge und neue Schatzkarten kaufen könnt um in das nächste Abenteuer zu starten. Doch erst wartet ihr am besten ab wo der Sturm hinziehen wird.&nbsp;Neben viel Schatzsucherei und dem ausweichen von Stürmen hatte ich auch das ein oder andere mal das Vergnügen, einer tollen Crew beizutreten. Mit ihnen konnte ich Seeschlachten gegen andere Piraten führen, Kanonen auf Schiffe ballern und diese zum sinken bewegen, Schätze des untergegangenen Schiffes einsammeln und mich auch im Nahkampf erproben.Sea of Thieves ist ein Game indem es reichlich Action und viel zu sehen gibt. Die Spannung segelt immer mit und lässt einen eintauchen in ein gut umgesetztes Piratenabenteuer. Da die Entwickler noch Content vorenthalten bis zum Release, wird bis auf die Spielwelt und deren schöne Orte, feindliche Piratenspieler und Insel Skelette, das bergen von Schätzen und die Exploration, nicht viel Umfang an strategischen Ausweichmöglichkeiten oder andersweitige Arten des Piratenlebens geboten. Ich finde auch mehr Schiffstypen wären toll sowie eine größere Map. Die Map an sich ist ganz cool, aber nach ein paar Tagen Spielzeit kennt man die Map auswendig.Ich hoffe, dass noch einiges an Dynamik ins Spiel kommt, denn bis jetzt wirkt alles, bis auf die Spieler und der Sturm, sehr statisch.Trotz allem ist dieses Game ein Hingucker und kann, wenn beim Release noch einiges dazukommen sollte, einen in viele tolle Monate des Piratenlebens begleiten.Ich wünsche den Entwicklern viel Erfolg und empfehle das Game, falls noch Content kommen sollte, gerne weiter, wenn auch ungern für den Preis von rund 70€. Ich hoffe ihr lasst noch mit euch verhandeln ^^.Vielen Dank.","ARTIKELAUTHORPROFIL":"https:\/\/underground-community.com\/index.php\/user\/profil\/index\/user\/1","ARTIKELAUTHORNAME":"Raptusguru","ARTIKELDATE":"25.Januar2018","ARTIKELTIME":"17:09","ARTIKELCATEGORIENAME":"Games","ARTIKELCATEGORIEURL":"https:\/\/underground-community.com\/index.php\/mobileilch\/cats\/show\/id\/3","ARTIKELVISITS":30,"ARTIKELKEYWORDS":"Sea of Thieves, Closed Beta, Piratenabenteuer, Games, Open World, Survival, Schatzsuche, Rare, Windows, Raptusguru, Underground-Community, XBOX, Unreal Engine"},"2":{"ARTIKELTEASER":"Slender Man Trailer","ARTIKELTITEL":"Slender Man ab Mai im Kino","ARTIKELIMAGE":"https:\/\/underground-community.com\/application\/modules\/media\/static\/upload\/5a69f5188df5611.png","ARTIKELIMAGESOURCE":"Keine Quelle angegeben","ARTIKELCONTENT":"Horror Fans aufgepasst: Slender Man..... na klingelts?Slender Man wird uns bald in den Kinos gesellschaft leisten und hoffentlich für schaurigen Horror sorgen ^^. Wer das Game kennt wird sicherlich die eine oder andere verstörende Situation im Hinterkopf behalten haben und wir alle hoffen, dass der Film genau dieses feeling vermitteln wird.Hier der Trailer.&nbsp;","ARTIKELAUTHORPROFIL":"https:\/\/underground-community.com\/index.php\/user\/profil\/index\/user\/1","ARTIKELAUTHORNAME":"Raptusguru","ARTIKELDATE":"03.Januar2018","ARTIKELTIME":"21:41","ARTIKELCATEGORIENAME":"Games","ARTIKELCATEGORIEURL":"https:\/\/underground-community.com\/index.php\/mobileilch\/cats\/show\/id\/3","ARTIKELVISITS":33,"ARTIKELKEYWORDS":"Slender Man, Trailer, Kino Trailer Slender Man, Gaming, Raptusguru, Multigaming, Underground-community"},"3":{"ARTIKELTEASER":"Das Jahr ist geschafft","ARTIKELTITEL":"Das Jahr neigt sich dem Ende zu","ARTIKELIMAGE":"https:\/\/underground-community.com\/application\/modules\/media\/static\/upload\/5a44c037c2a32Feuerwerk_Raketen.jpg","ARTIKELIMAGESOURCE":"Keine Quelle angegeben","ARTIKELCONTENT":"Liebe Gäste, User, Member und Admins,das Jahr neigt sich dem Ende zu. Wir durften viele neue Stimmen in unserem Community-Discord begrüßen, haben viele gemeinsame Abende ingame verbracht und viel gelacht, gehatet und geraged ^^. Zocken ist ein Auf und Ab der Emotionen xD.Wir sind nun schon seit 2009 in verschiedenen Games unterwegs und hoffen, dass uns das nächste Jahr wieder zahlreiche neue User und Member vorbei schickt die genau wie wir, die Leidenschaft des zockens teilen.Im Groben und Ganzen lässt sich sagen, dass es doch ein ziemlich erfolgreiches Jahr war, vorallem weil wir niemanden Bannen mussten xP. Klar gabs hier und da mal kleinere Differenzen, aber die gehören in einer Gemeinschaft eben dazu und wir freuen uns, dass es auch nur bei kleineren Streitigkeiten geblieben ist.Wir schauen nun richtung 2018 und wünschen allen Gästen, Usern, Membern und Admins einen super, feucht-fröhlichen Rutsch ins neue Jahr und wir würden uns freuen jeden Einzelnen im neuen Jahr wiederzusehen.Viele liebe GrüßeUnderground-Community","ARTIKELAUTHORPROFIL":"https:\/\/underground-community.com\/index.php\/user\/profil\/index\/user\/1","ARTIKELAUTHORNAME":"Raptusguru","ARTIKELDATE":"28.Dezember2017","ARTIKELTIME":"11:00","ARTIKELCATEGORIENAME":"Allgemein","ARTIKELCATEGORIEURL":"https:\/\/underground-community.com\/index.php\/mobileilch\/cats\/show\/id\/1","ARTIKELVISITS":58,"ARTIKELKEYWORDS":"underground-community, Raptusguru, Discord, Discordbot, Multigaming, Battlefield, Minecraft, LoL, CS:GO, Gaming"}}	</div>
                                </div>


    Und hier meine View:
    <?php
    
    $articles = $this->get('articles');
    $categoryMapper = $this->get('categoryMapper');
    $commentMapper = $this->get('commentMapper');
    $userMapper = $this->get('userMapper');
    
    $adminAccess = null;
    if ($this->getUser()) {
        $adminAccess = $this->getUser()->isAdmin();
    }
    ?>
    
    <?php if ($articles != ''){
        $displayedArticles = 0;
    
        foreach ($articles as $article){
            if (!is_in_array($this->get('readAccess'), explode(',', $article->getReadAccess())) && $adminAccess == false) {
                continue;
            }
    
            $displayedArticles++;
    
            $date = new \Ilch\Date($article->getDateCreated());
            $commentsCount = $commentMapper->getCountComments(sprintf(Modules\Article\Config\Config::COMMENT_KEY_TPL, $article->getId()));
            $image = $article->getImage();
            $imageSource = $article->getImageSource();
    
    		
            $catIds = explode(",", $article->getCatId());
            $categoriesURL = '';
    		$categoriesNAME = '';
            foreach ($catIds as $catId) {
                $articlesCats = $categoryMapper->getCategoryById($catId);
                $categoriesURL .= $this->getUrl(['controller' => 'cats', 'action' => 'show', 'id' => $catId]);
    			$categoriesNAME .= $articlesCats->getName();
            }
    		
    		
    		if ($article->getTeaser()){
    			$TEASER = $this->escape($article->getTeaser());
    		}
    		
    		$TITEL = $this->escape($article->getTitle());
    		if (!empty($image)){ 
                $ARTICLEIMAGE = $this->getBaseUrl($image);
                if (!empty($imageSource)){
                    $IMAGESOURCE = $this->escape($imageSource);
    			}
    			else {
    				$IMAGESOURCE = 'Keine Quelle angegeben';
    			}
    		}
    		
    		$content = $article->getContent(); 
    		
    		/*
            if (strpos($content, '[PREVIEWSTOP]') !== false){
                $contentParts = explode('[PREVIEWSTOP]', $content);
                reset($contentParts);
                $this->getUrl(['action' => 'show', 'id' => $article->getId()]);
    		}
            else {
    			$CONTENT = $content;
    		}
    		*/
    		$CONTENT = $content;
    		
    		if ($article->getAuthorId() != ''){
                $user = $userMapper->getUserById($article->getAuthorId());
                    if ($user != ''){
                    $AUTHORPROFIL = $this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $user->getId()]);
    				$AUTHORNAME = $this->escape($user->getName());
                    }
    		}
    		
    		$ARTICLEDATE = $date->format('d.', true) . $this->getTrans($date->format('F', true)) . $date->format('Y', true);
            $ARTICLETIME = $date->format('H:i', true);
            $ARTICLECATEGORIENAME = rtrim($categoriesNAME, ', ');
    		$ARTICLECATEGORIEURL = rtrim($categoriesURL, ', ');
            $ARTICLEVISITS = $article->getVisits();
    		
    		if ($article->getKeywords() != ''){
                $ARTICLEKEYWORDS = $article->getKeywords();
    		}
    		
    		$prepareForJSON[$displayedArticles] = array('ARTIKELTEASER' => $TEASER, 
    													'ARTIKELTITEL' => $TITEL,
    													'ARTIKELIMAGE' => $ARTICLEIMAGE,
    													'ARTIKELIMAGESOURCE' => $IMAGESOURCE,
    													'ARTIKELCONTENT' => str_replace(["\r\n", "\r", "\n"], "", strip_tags($CONTENT)),
    													'ARTIKELAUTHORPROFIL' => $AUTHORPROFIL,
    													'ARTIKELAUTHORNAME' => $AUTHORNAME,
    													'ARTIKELDATE' => $ARTICLEDATE,
    													'ARTIKELTIME' => $ARTICLETIME,
    													'ARTIKELCATEGORIENAME' => $ARTICLECATEGORIENAME,
    													'ARTIKELCATEGORIEURL' => $ARTICLECATEGORIEURL,
    													'ARTIKELVISITS' => $ARTICLEVISITS,
    													'ARTIKELKEYWORDS' => $ARTICLEKEYWORDS);
    	}?>
    	<div id='json_output'>
    	<? echo json_encode($prepareForJSON, JSON_FORCE_OBJECT); ?>
    	</div>
    <?
    }
    ?>


    MFG
    0 Mitglieder finden den Beitrag gut.
  6. #36
    User Pic
    Raptusguru Mitglied
    Registriert seit
    10.02.2010
    Beiträge
    148
    Beitragswertungen
    11 Beitragspunkte
    OK,

    ich finde die Idee mit dem JSON ja ganz gut, aber innerhalb des $content befinden sich ja neben dem Artikeltext auch noch die Bilddateien (Falls Bilder im Text sind).

    EDIT* Ich hab ausversehen auf absenden gedrückt xD.

    Ich versuch jetzt einfach den $content nochmal zu spliten wenn er nen <img>tag findet...
    Attacke.


    Zuletzt modifiziert von Raptusguru am 07.02.2018 - 13:04:00
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten