Esempio n. 1
0
 function &getListToPageAssignment()
 {
     global $gorumroll;
     static $listToPageAssignment = 0;
     if ($listToPageAssignment) {
         return $listToPageAssignment;
     }
     $listToPageAssignment = array_fill(0, 6, array());
     loadObjectsSql($lists = new CustomList(), "SELECT * FROM @search WHERE pages!='' ORDER BY id ASC", $lists);
     $lists = array_filter($lists, array('customlist', 'customListFilter'));
     $qs = trim($gorumroll->queryString, "/");
     foreach ($lists as $list) {
         $condArr = explode("\n", $list->pages);
         $composedConditionYes = array();
         // ha a customlist "details" page-et nezzuk, ne legyen rajta a list meg egyszer:
         $composedConditionNo = array("\$qs=='customlist/{$list->id}'");
         foreach ($condArr as $condPiece) {
             $condPiece = trim(str_replace("'", "", $condPiece));
             if ($not = $condPiece[0] == "!") {
                 $condPiece = substr($condPiece, 1);
             }
             $condPiece = trim($condPiece, "/");
             if (strstr($condPiece, "*")) {
                 $condPiece = str_replace("*", "[^/]*", $condPiece);
                 $condPiece = "preg_match('{" . $condPiece . "}', \$qs)";
             } else {
                 $condPiece = "\$qs=='{$condPiece}'";
             }
             if ($not) {
                 $composedConditionNo[] = $condPiece;
             } else {
                 $composedConditionYes[] = $condPiece;
             }
         }
         $composedCondition = implode(" || ", $composedConditionYes);
         if ($composedCondition) {
             $composedCondition = "({$composedCondition}) && ";
         }
         $composedCondition .= "!(" . implode(" || ", $composedConditionNo) . ")";
         //echo("$qs<br>$composedCondition<br>");
         eval("\$cond = {$composedCondition};");
         if ($cond) {
             if ($list->listStyle == customlist_normal) {
                 $positionAttr = "positionNormal";
             } elseif ($list->listStyle == customlist_scrollable) {
                 $positionAttr = "positionScrollable";
             }
             foreach (explode(",", $list->{$positionAttr}) as $position) {
                 $listToPageAssignment[$position][] = $list->id;
             }
         }
     }
     CustomList::addSidebarDependentCss($listToPageAssignment);
     return $listToPageAssignment;
 }