Работа с дополнительными полями

Здравствуйте.
Часто спрашивают про использование дополнительных полей в Альто и что бы хоть немного снять вопросы по этой теме был написан этот топик. Дополнительные поля – это довольно мощный инструмент для разработки уникальной структуры сайта. Как использовать дополнительные поля в своём проекте покажу на примере создания нового типа контента «Кинообзор».
Пусть у кинообзора будет шесть дополнительных полей:
— Постер типа single-image-uploader;
— Видео – типа link;
— Дата выхода – типа date;
— Длительность типа input (поля типа время, увы, нет)
— Киностудия/Автор тоже типа input;
— Жанр, типа select со значениями «Фильм» и «Мультфильм», «Клип».

Читать дальше →

AltoWiki — новый раздел сайта

Вообще-то раздел AltoWiki появился не сегодня. Но до недавнего времени он был в процессе отладки и доработки — что-то допиливалось, что-то корректировалось. Но вот сейчас, полагаю, можно о нем уже рассказать, как о свершившемся факте — он работает.

Читать дальше →

Модальные окна – общаемся с пользователем красиво (часть 2)

В первой части я рассказал про «шаблонные» модальные окна. Т.е. такие, для которых создаются отдельные файлы-шаблоны. И сложность и навороченность этих окон может быть безграничной.

Но нередко для общения с пользователем нужны совсем простые диалоговые окна – просто вывести какое-то сообщение с единственной кнопкой «Ок», которое он не сможет не заметить, или запросить у него подтверждение какого-либо действия.

Часто на сайтах для таких целей используют системные функции alert(), confirm() и prompt(). Примерно вот так:
<a href="site.com/delete/all/" onclick="return confirm('Вы уверены?');">Удалить все!</a>

Это работает в любом браузере, но окна, которые выводятся такими функциями, выглядят некрасиво, примитивно и ломают всю красоту, которую мы наводим на своем сайте.

Читать дальше →

[dev] Конфигурация сайта на Alto CMS - Определяем IP-адрес пользователя

В теории определение адреса посетителя – элементарная операция. Он, согласно соглашениям, должен лежать в переменной $_SERVER['REMOTE_ADDR']. Но суровая правда жизни нередко идет в разрез с теорией, поэтому на практике там может лежать что угодно, например, адрес самого сервера.

Есть еще куча заголовков, которые начинаются с префикса 'HTTP_', где может реально лежать IP-адрес пользователя, но теория гласит, что нельзя довеять таким заголовкам, т.к. он легко подделываются и там так же может лежать, что угодно.

Так как же быть? Откуда брать адрес?

Читать дальше →

[dev] Конфигурация сайта на Alto CMS - некоторые нюансы и особенности

Это очередная статься для разработчиков, которые хотели бы досконально разобраться во всех нюансах работы Alto CMS. И сегодня речь – о том, как устроен и работает конфигуратор. Статья рассчитана на читателей, которые уже имеют представление о том, как конфигурируется движок, но хотели бы заглянуть «под капот». Поэтому я не буду рассказывать здесь про структуру конфиг-файлов вообще или про то, что делают вызовы Config::Get() и Config::Set(), предполагая, что читатель и так это знает, а перейду сразу к сути статьи.

Читать дальше →

[dev] Кеширование данных

Эта статья рассчитана не просто на сайтостроителей, а на разработчиков, и рассказывает о том, как в Alto CMS устроена система кеширования данных, которая может весьма гибко настраиваться и использовать для хранения данных различные хранилища.

Читать дальше →

Работа с типами контента и полями в AltoCMS

Здравствуйте. Этот топик посвящен работе с типами контента и полями в AltoCMS.

Как известно, в движке-родителе LS существует четкое разделение по типам топиков и у каждого типа существует свой фиксированный набор дополнительных полей, что несколько ограничивает функционал. В AltoCMS решено отказаться от такого жесткого разделения. По умолчанию в AltoCMS есть один тип контента — обычный топик, который можно гибко дополнить как базовыми(фотосет, опрос, ссылка на оригинал), так и своими полями (строковые и многострочные текстовые поля, выпадающие списки, даты, ссылки, прикрепление файлов). Существует возможность ограничить доступ на создание определенного типа контента, и возможность добавления своих видов полей из плагинов.

Читать дальше →