Skip to content

Latest commit

 

History

History
62 lines (47 loc) · 2.61 KB

modul_minibeispiel_artikel_einbinden.md

File metadata and controls

62 lines (47 loc) · 2.61 KB

Artikel einbinden mit rex_article::get

Hin und wieder möchte man auf zentrale Daten zurückgreifen. Das können beispielsweise Öffnungszeiten oder Adressen sein. Eine Möglichkeit ist das einbinden zentral abgelegter Artikel.

Das nachfolgende Beispiel bindet den ausgewählten Artikel als Block ein. Darüber hinaus wird für eingeloggte Redakteure ein Bearbetungssymbol (fontawsome) eingebaut. Dadurch kann der Redakteur leicht erkennen, dass es sich um einen eingebundenen Artikel handelt und kann direkt ins Backend zur Bearbeitung springen.

Die Abfrage ob wir uns im Backend oder Frontend befinden erfolgt durch if (rex::isBackend() == 1) {...

Moduleingabe

  <div class="form-horizontal">
      <div class="form-group">
          <label class="col-sm-2 control-label">Artikelauswahl:</label>
          <div class="col-sm-8">
             REX_LINK[id=1 widget=1]
          </div>
      </div>

Modulausgabe

  <div class="included">
  <?php
  // Prüfen ob der aktuelle Artikel mit sich selbst verlinkt ist
  if ("REX_ARTICLE_ID" != "REX_LINK[id=1]" && "REX_LINK[id=1]"!="" ) {
             
          // Artikeldatensatz ermitteln
          $art = rex_article::get('REX_LINK[id=1]'); 
  
          // Artikelinhalt auslesen inkl. aktuelle Sprache    
          $article = new rex_article_content($art->getId(), $art->getClang());
          
          //Weitere Informationen auslesen z.B. Titel, Beschreibung
          $art_title = $art->getName();
         
         // Weitere Daten der MetaInfos können wie folgt ausgelesen werden 
       // z.B. Beschreibung
         // $art_description =  $art->getValue('art_description');    
    
     // Hinweisbox für's Backend
          if (rex::isBackend() == 1) 
          {
              echo '<div class="alert alert-info">
               <a href="
               '.rex_url::backendPage('content/edit',
               ['mode' => 'edit',
               'clang' => rex_clang::getCurrentId(),
               'article_id' => 'REX_LINK[id=1]']).'">
               <i class="fa fa-pencil-square-o" aria-hidden="true"></i> Eingebundener Artikel: '.$art->getName().'</a>
              </div>';           
          } // Ende Hinweisbox
      
          // Artikel ausgeben, für andere Ctypes Zahl ändern. Für den gesamten Artikel, die 1 entfernen
          
          echo $article->getArticle(1);
      
  }
  
  else { // Was soll passieren wenn der Artikel nicht eingebunden werden kann?
  }
  ?>
  </div>