CONTENT MANAGEMENT SYSTEM
Blox Logo
Blox CMS — блочный метод сайтостроения
.
 
Blox Help

    Документация
    по этому разделу
    находится в работе.
    Перейти в меню.
    ←→

    Пример коллективного блога

    Приведем пример простейшего сайта, в котором неограниченное число пользователей может вести свои блоги. Основное содержимое блога — это регулярно добавляемые не длинные записи временной значимости (содержащие текст и изображение), отсортированные в обратном хронологическом порядке.

    Наш сайт будет состоять всего из одной страницы. Слева идет меню со списком авторов статей (блоггеров), справа - соответствующий блог, состоящий из ленты статей, идущих в обратном порядке (последняя статья - сверху).

    Внешнему блоку назначьте шаблон blogs_. Двум остальным блокам нужно назначить шаблоны по умолчанию. Блоку слева будет предложен шаблон blogs_authors, а блоку справа - , справа — blogs_articles.

    Внешний шаблон (шаблон страницы)

    blogs_.tplblogs_.tdd
    <?php echo "
    {$dat['edit']}
    <table>
    <tr>
    <td>
    <a href='?login'>Вход</a><br>
    <a href='?userParams&selectedUserId=new'>
        Регистрация
    </a><br>
    $dat[1] <!--Список авторов-->
    </td>
    <td>$dat[2]</td> <!--Статьи блога-->
    </tr>
    </table>
    "; ?>
    
    <?php
    
    $types = array
    (
      1=>'block template(blogs_authors)',
      2=>'block template(blogs_articles)'
    )
    ?>
    

    Шаблон со списком ссылок на блоги пользователей

    blogs_authors.tpl
    <?php
    
        # Блок, которому назначен шаблоном blogs_articles
        $articlesBlock = 3;
        # Извлекаем данные таблицы users
        $table = getTable('users', $block, $limit, $backward);
    
        echo $dat['edit'];
        echo "<ul>";
        foreach ($table as $data)
        {
            echo "<li>";
                echo "<a href='";
                        echo "?page=1";
                        echo "&block=$articlesBlock";
                        # Запрашиваются записи одного пользователя
                        echo "&p[4]={$data['userId']}";
                        # Выше приведана короткая форма записи
                        # pick-запроса. Стандартная форма - ниже:
                        # echo "&pick[4][eq]={$data['userId']}'";
                        echo "'>";
                    echo $data['login'];
                echo "</a>";
            echo "</li>";
        }
        echo "</ul>";
    
    ?>
    
    
    

    Шаблон для статей блогов

    blogs_articles.tplblogs_articles.tdd
    <?php
    foreach ($tab as $dat)
    echo "
        {$dat['edit']}
        <h1>$dat[1]</h1>
        $dat[2]<br>
        <img src='dataFiles/$dat[3]'><br>
        <br><br>
    ";
    ?>
    
    <?php
    
    $titles[1] = 'Заголовок статьи';
    $titles[2] = 'Текст';
    $titles[3] = 'Фото';
    
    $types[1] = 'varchar(255)';
    $types[2] = 'text';
    $types[3] = 'file';
    $types[4] = 'int(4) unsigned';
    
    $params['isMultiRec'] = true;
    $params['backward'] = true;
    
    # Поле для идентификатора пользователя
    $params['userIdField'] = 4;
    # ...скрыто
    $params['hiddenFields'] = array(4);
    # ...и на него должен поступать запрос
    $params['pick']['keyFields'] = array(4);
    
    ?>
    

    Автор должен щелкнуть по своей фамилии в левом блоке — в правом блоке появится первая пустая запись с кнопкой для редактирования. После создания записей, авторы будут видеть также кнопки редактирования созданных записей.


    Примечания

    • Ниже блока со статьями автора, желательно разместить также и блок для комментариев посетителей (см. Публичные записи).
    • В примере не используется поле для даты записи. Чтобы добавить дату, посмотрите, как задаются значения полей по умолчанию.