Berry Framework

Фреймворк, в который собраны функции использованные в различных проектах. В том числе: ORM, шаблонизатор и ряд других полезных в хозяйстве вещей.

Скачать
trunk-версия (650 КБ)
Наверх

HTML

Класс-помощьник по работе с HTML.

Методы

html::block()

Надстройка для шаблонизатором. Служит для установки и получение блоков с текстом из PHP части в HTML игнорируя шаблонизатор. Таким образом блоки можно ставить и получать из любого места, а не только в контексте шаблонизатора и после его работы.

То есть для этого создавался, но можно использовать и любом ином контексте.

// устанавливаем блок
html::block('name', 'value1');

// с приоритетом
html::block('name', 'value2', 1);

print_r(html::block('name'));

/* Array
(
    [0] => value2
    [1] => value1
) */

html::msg()

Флэш-сообщения "сверкнув" (слово "засветится" лучше передаёт суть) единожды не повторяются вновь. То есть каждое установленное сообщение после получения стирается. Сообщения можно ставить на одной странице, а получать на другой (работают через сессии).

Пример

// устанавливаем сообщение
html::msg('error', 'В базе данных уже существует запись с таким ID.');

// с приоритетом
html::msg('error', 'Новость добавить не удалось.', 1);

print_r(html::msg('error'));

/* Array
(
    [0] => Новость добавить не удалось.
    [1] => В базе данных уже существует запись с таким ID.
) */

html::dropdown()

Создаёт поля типа select из массива.

Пример

$letters = range('A', 'D');
print_r(html::dropdown('field1', $array));

$array = array('Letters' => range('A', 'D'), 'Numbers' => range(1, 4));
print_r(html::dropdown('field2', $array));

Поле field1: . Поле field2: .

html::js()

Подключает либо выводит JavaScript код.

Пример

// <script type="text/javascript">var = i;</script>
print_r(html::js('var = i;'));

// <script type="text/javascript" src="path/to/file.js"></script>
print_r(html::js('path/to/file.js'));

html::css()

Подключает либо выводит CSS код.

Пример

// <style type="text/css">body { color: #fff; }</style>
print_r(html::css('body { color: #fff; }'));

// <link type="text/css" href="path/to/file.css" rel="stylesheet" />
print_r(html::css('path/to/file1.css'));

// <link type="text/css" media="print" href="path/to/file.css" rel="stylesheet" />
print_r(html::css('path/to/file2.css', 'print'));

Вторым параметром можно задать атрибут media.

html::highlight()

Подсвечивает искомое слово в строке.

$find = 'травы';
$text = 'У нас в распоряжении оказалось две сумки травы, семьдесят пять шариков мескалина...';

// [...] две сумки <span class="highlight">травы</span>, семьдесят пять [...]
print_r(html::highlight($find, $text));

html::quotes()

Подсвечивает разными цветами а-ля почтовые цитаты.

$test = '>> Это не лошадь, это дура!
> Какая же это дура, это лошадь.

Не лошадь, а дура!';
print_r(html::quotes($test));

/* <span class="quotes_2">>> Это не лошадь, это дура!</span>
<span class="quotes_1">> Какая же это дура, это лошадь.</span>

Не лошадь, а дура! */

html::form_persister()

Метод-обёртка класса HTML_FormPersister, полную информацию по которому можно найти на официальном сайта.

html::grid()

Строит HTML-таблицу по таблице в БД.

Пример

function _songs($row){
    $result = array();

    foreach ($row['songs'] as $song)
        $result[] = '<a href="#songs/'.$song['id'].'">'.$song['title'].'</a>';

    return join(', ', $result);
}

$artist = new Artist;
$artist->with('id', 'name', 'songs.id', 'songs.title');

$grid = html::grid($artist, array(
    'id' => array('ID', '<a href="#id/%id">%id</a>'),
    'name' => 'Исполнитель',
    'songs.title' => array('Композиции', '_songs')
));

echo '<table>';
echo $grid->head();
echo $grid->filter();
echo $grid->body();
echo $grid->pager();
echo '</table>';

// или
// echo '<table>'.$grid.'</table>';
IDИсполнительКомпозиции
10Martina Topley-BirdSandpaper Kisses
9Nina SimoneNo Good Man
8Angelo 'Badalamenti'Lucas' Main Theme, Carla's Main Theme
7Leee JohnJust an Illusion
6Society's BagLet it Crawl
5Bobby ByrdTry it Again
4Patrice RushenHang It Up
3Ben E. KingStreet Tough
2Teddy PendergrassLove TKO
1Theory of a Dead ManSanta Monica, Say Goodbye, No Way Out, No Surprise
[тут список страниц]

Метод получает поля, формирует таблицу, строит фильтры или упрощает их до select'а, как в примере выше. Что немаловажно, настраивать всё очень просто: в примере использованы все типы настроек.