[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Artikel einbinden - Verschachtelung - Schleife vermeiden
Seite 1 von 1

Artikel einbinden - Verschachtelung - Schleife vermeiden

Verfasst: 16. Dez 2015, 12:48
von netmanix
Hallo,

ich verwende folgenden Code um einen Artikel einzubinden.
Wie könnte ich bei mehrfachen Einbindungen eine Schleife vermeiden?

Ein Redakteur hat es geschafft einen Artikel einzubinden in dem wieder ein Artikel eingebunden ist,
in dem wiederrum der Urpsprungsartikel eingebunden ist.

So entsteht eine Schleife, die zu einer leeren Seite führt.

Code: Alles auswählen

<?php 
if("REX_ARTICLE_ID" != "REX_LINK_ID[4]" && "REX_LINK_ID[4]"!="")
{
  if ("REX_LINK_ID[4]" != 0) 
  {
    $embarticle = new article("REX_LINK_ID[4]");
    $embarticle->setClang($REX['CUR_CLANG']); 
    if ($embarticle != null) 
    {
      echo $embarticle->getArticle(1); 
    } 
    else { } 
  }
}
 ?>

Re: Artikel einbinden - Verschachtelung - Schleife vermeiden

Verfasst: 22. Dez 2015, 17:21
von Xong
Hi,

du kannst folgende Aktion einbinden (Presave, Add+Edit):

Code: Alles auswählen

<?php
function checkembedcircle_REX_SLICE_ID($_article_id)
{
  global $REX;
  
  static $article_ids = array();
  
  if(empty($article_ids))
    $article_ids[] = $REX['ARTICLE_ID'];
  
  if(empty($_article_id))
    return true;
  
  if(in_array($_article_id, $article_ids))
    return false;
  
  $article_ids[] = $_article_id;
  
  $slices = OOArticleSlice::getSlicesForArticleOfType($_article_id, REX_MODULE_ID, $REX['CUR_CLANG']);
  
  if(is_null($slices))
    return true;
  
  if(!is_array($slices)) $slices = array($slices);
  
  foreach($slices as $slice)
  {
    return checkembedcircle_REX_SLICE_ID($slice->getLink(4));
  }
}

if(!checkembedcircle_REX_SLICE_ID($REX_ACTION['LINK'][4]))
{
  $REX_ACTION['SAVE'] = false;
  $REX_ACTION['MSG'] = 'Zirkeleinbettung!';
}
?>

Re: Artikel einbinden - Verschachtelung - Schleife vermeiden

Verfasst: 23. Dez 2015, 15:25
von netmanix
Super! Danke. :D
Schöne Feiertage wünsche ich.