Smarty-шаблоны для вывода записей из БД
Smarty-шаблоны для вывода записей из БД используются в связке:
- дизайн: Smarty-шаблоны
- администрирование БД: классическая админка AdvOntology
Файлы шаблонов с расширением .txt должны храниться в папке, прописанной в параметре template_dir, который задается при инициализации шаблона.
Инициализация и вызов
Файл шаблона myPattern.txt
Пример файла myPattern.txt.
Обращение к элементам массива в цикле foreach:
- from – имя переменной в php
- item – имя элемента массива внутри цикла; $item.param в Smarty соответствует $item["param"] в php.
{foreach from=$items item=item}
      <div class="play"><table><tr>      
        <td class="date">
          <div class="day">{$item.datetime|date_format:"%e"}</div>
          <div class="month">{$item.month}</div>
          <div class="time_">{$item.datetime|date_format:"%H:%M"}</div></td>
        <td><a href="{$item.href}"><img class="img-link" src="{$item.img}"></a></td>
        <td class="about {if $item.play.premier=="1"}premier{/if}" width="450px">
          <div class="title"><a href="{$item.href}">{$item.play.name}</a></div>
          <div class="author">{$item.play.author_short}</div>
          <div class="desc">{$item.play.comm_short}</div></td>
        <td class="links"> </td>
      </tr></table></div><br/><hr/>
{/foreach}Админка AdvOntology
Стандартная админка:
{{adminadvontology type="MyType" max="10"}}Кастомная админка:
<?php
$srvOnto = $this->srvFactory("AdvOntology");
    $kernel = $this->srvMainKernel();
    $months = array ("", "января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря");
    
    $links = $srvOnto->getAllConcepts("linkkamAfisha", 0, 100, "datetime", "ASC");
    echo '<div align="center"><i>Просмотр таблицы Афиша</i></div><br>';
    echo '<table border="0" width="100%"><tbody><tr style="background-color: black;"><td style="width: 22px;"></td><td style="width: 22px;"></td><td><b>Дата</b></td><td><b>Время</b></td><td><b>Спектакль</b></td><td style="width: 22px;"></td></tr>';
    $i=0;
    foreach ($links as $item) {
        $play     = $srvOnto->getConcept("wpkamPlay",   $item["kamPlay1"]);
        $style = (fmod($i++, 2) == 0)?'style="background-color: rgb(50, 50, 50);"':'';
        $playdate = strtotime($item["datetime"]);
        echo '<tr '.$style.'>
                <td><small><a href="?editid='.$item["id"].'">
                    <img src="'.$kernel->config["root_url"].'images/additional/edit.png" alt="Править" style="border: 0px none;"></a></small></td>
                <td>'.$item["id"].'</td>
                <td>'.date("j", $playdate)." ".$months[date("n", $playdate)].'</td>
                <td>'.date("H:i", $playdate).'</td>
                <td>'.$play["name"].'</td>
                <td><small><a href="?deleteid='.$item["id"].'">
                    <img src="'.$kernel->config["root_url"].'images/additional/drop.png" alt="Удалить" style="border: 0px none;" onclick="return delTableItem();"></a></small></td>
            </tr>';        
    }    
    echo '</tbody></table>';
    
    
if($this->IsAdmin()) {
   // security init
    $this->secAdminedittable = true;
    $this->secAdminviewtable = true;
    // init adminviewtable
    $tname='advontotypes_linkkamAfisha';
    // init adminedittable
    $notparse = '1';
    $fieldar = array (
           array ('Спектакль','kamPlay1','tselect table="advontotypes_wpkamPlay" field="name" key="id"', ''),
        array ('Дата и время','datetime','datetime', '')
    );
    include('actions/adminedittable.php');
    //security finalization
    $this->secAdminedittable = false;    
    $this->secAdminviewtable = false;
}
?>
 
  
