Задать вопрос

Как вывести из модели на страницу, какой дописать код для вывода?

Здравствуйте. Есть блоки которые выводятся на любой заданной странице.
в базе 2 таблице pages и blocks при выборе из админки на какой странице выводить блок вноситься запись в pages_blocks где только id блока и странице.
Код модели many_to_many
public function getRelatedBlocks($page_id)
{
    //Выбираем id всех блоков, относящихся к данной странице
    $blocks_ids = $this -> selectColumn(array("fields->" => "blocks_id", 
                                              "pages_id" => $page_id, 
                                              "table->" => "pages_blocks"));
 
    //Если это не предусмотреть в оператор "id->in" пойдет пустая строка и возникнет SQL ошибка
    if(!count($blocks_ids))
        return;
 
    $html = "";
 
    //Извлекаем содержимое активных блоков
    $rows = $this -> select(array("id->in" => implode(",", $blocks_ids), "active" => 1));
 
    foreach($rows as $row)
    {
        $html .= "<h3>".$row["name"]."</h3>";
        $html .= "<div>".$row["content"]."</div>";
    }
 
    return $html;
}

-----------------------------------------------
пример вывод данных в шаблон странице из простой модели
$content = $mv -> pages -> defineCurrentPage($mv -> router);
 echo $content -> name;
echo $content -> title;
echo $content -> content;


есть объект $content с данными текущей страницы. В нем есть $content -> id это id данной страницы из таблицы pages.
В таблице pages_blocks стоят строки со связями страниц и блоков по их id. Надо извлечь оттуда все строки у которых pages_id = $content -> id. И далее из этих строк взять blocks_id которые и будут являться блоками для страницы.
  • Вопрос задан
  • 44 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы