Записи февраля 2010
Trails of Indochina
Вьетнамская девушка-дизайнер Xuân Phấn нарисовала очень красивый сайт про Индокитай: www.trailsofindochina.com.
Особенно стоит обратить внимание на фотоальбом.
FormSpring
Завёл себе анонимный опросник:
Соединение с базой данных на PHP
Иногда удобно просто брать откуда-то код, который используешь постоянно, зная, что он точно корректен и не подведёт. Такая типичная для проекта вещь, как соединение с базой данных, требует чуть большего кода, чем две строчки.
В конфигурационном файле или в начале скрипта пишем (понятное дело, внутри маркеров PHP):
$db_server = 'сервер баз данных (обычно localhost)';
$db_user = 'пользователь/администратор';
$db_password = 'пароль';
$db_name = 'имя базы';
Затем используем следующий код:
$connected = @mysql_connect($db_server, $db_user, $db_password);
if($connected) {
$select_db = mysql_select_db($db_name);
if(!$select_db) die('No DB connection');
}
else {
die('No DB connection');
}
Смысл его в следующем: если нет соединения с базой данных, то дальнейшие сценарии не будут выполняться, а на экран будет выведено сообщение «No DB connection». Ошибки в браузер тоже не будут выводиться.
Сценарий можно модифицировать, вместо сообщений о недоступности базы генерируя переменные с определёнными значениями; в дальнейшем эти переменные можно использовать в условных операторах. Дело в том, что оператор die() вообще закрывает обработку сценариев, и может получиться, что после сообщения об ошибке часть вёрстки страницы просто не загрузится. В случае же с использованием переменных можно гибко управлять кодом. Вот пример:
$isSetError = ''; // не должно быть 'ERR'
$isSetDb = ''; // должно быть 'OK'
$connected = @mysql_connect($db_server, $db_user, $db_password);
if($connected) {
$select_db = mysql_select_db($db_name);
if(!$select_db) $isSetError = 'ERR';
else $isSetDb = 'OK';
}
else {
$isSetError = 'ERR';
}
Далее код можно использовать:
if($isSetError == 'ERR') {
echo 'Всё плохо. База умерла.';
}
else {
// Выполняем код страницы;
}Мои книги
В 2008 году вышла моя книга о веб-дизайне и веб-разработке «По ту сторону веб-страницы» (она на фото авторства Lafayette). В 2009 году вышло её переиздание под названием «Создание веб-сайта от замысла до реализации» — оба в московском издательстве «ДМК Пресс».
В будущем я планирую выпустить книгу по вёрстке сайтов, книгу по растровой графике, учебник одного из любимых языков по своей методике и одну (или не одну) художественную книгу с красивыми иллюстрациями.
Мост над рекой Нум-хет. Глава одиннадцатая
Запотевшие окна, запах риса, теплая кухня и кипящий чайник. Дощатый пол, едва слышное тиканье часов, на столе две книжки, и обе раскрыты примерно на середине.
Юмилла выключила огонь под чайником на плите и залила ароматный белый чай в маленьком чайнике для заваривания. На поверхности остался плавать кремово-белый цветок. Девушка закрыла чайник и накрыла его сверху широким полотенцем. Потом сбросила пушистые тапочки, забралась с ногами на стул и стала ждать, пока сварится рис. На столе в особой тарелочке лежали греттингентские колбаски: их лучше было тоже поварить и есть горячими. Горчица, соевый соус, немного зелени, кувшин с прохладной водой.
Девушка протянула руку и стала рисовать на стекле узоры. | полный текст
Завершающие этапы разработки Shinobi
Из того, что осталось сделать по Shinobi,— корректная работа CMS на вложенных директориях (если вы решите установить блог не в корень сайта), завершение документации и перевод её на английский язык, а также инсталлятор (можно обойтись и без него, но с ним приятнее).
В последнее время сделано вот что:
1. Появилась правка вёрстки записи в блоге. То есть теперь вы сможете определять, нужны ли вам ссылки на даты и темы, куда поместить файлы, приложенные к посту, сделаете свои обёртки к фрагментам кода записи и т.п.
2. Фрагменты вёрстки можно редактировать не при помощи правки XML-подобного файла (хотя и в нём тоже можно), а при помощи обычного интерфейса, где вы в нужное поименованное окно вводите нужную информацию.
Ну и, конечно, несколько мелких улучшений и поправок, которые не заслуживают отдельного упоминания.
Фотоработы Mongibello
Shinobi: мелкие улучшения
Во-первых, записи и страницы можно создавать и редактировать не щелчком мышкой по кнопке на экране, а сочетанием Ctrl+Enter — многим это кажется удобным.
Во-вторых, ссылки «Следующая страница» и «Предыдущая страница» запрещены для индексирования поисковиками.
В-третьих, можно выбирать, куда пользователя будет перенаправлять после входа на сайт: на создание новой записи, как раньше, или на главную страницу.
В-четвёртых, улучшена ситуация с редактированием пароля: после редактирования его просто надо подтвердить.
В-пятых — особенно приятно — можно создавать меню, которое будет видеть только администратор сайта после входа. Допустим, вы создали несколько скрытых страниц, но вам не очень удобно каждый раз идти в меню «Страницы», искать там нужные и открывать их: гораздо удобнее иметь прямой доступ к ним. Теперь, если вы добавите отдельную секцию в «Настройке структуры» (кстати, этот раздел будет переработан), в обычном меню перед ссылкой «Выход» появятся пункты вашего меню, и они будут видны только вам.
Обычное меню, видимое всем пользователям, в Shinobi стало возможным создавать ещё несколько сборок назад: о том, как это работает изнутри, можно почитать на официальном сайте проекта «Shinobium».
Trochę polskiego
Zdecydowałem, że czasami będę pisać tutaj po polsku, żeby nie zapomnieć słowa. To jest praktyka dobra, ja tak myślę.
Wczoraj dowiedziałem się, że sportsmenka rosyjska, która ledwie nie straciła nogę, teraz będzie w porządku — nic strasznego nie stało. Trzy miesiące ona i lekarzy szli do tego. Jestem rad. Dowiedziałem się też, że jej noga będzie sparaliżowana, to jest bardzo źle, оczywiście...
Пособие по бизнесу
На вечеринке ты видишь симпатичного парня. Ты подходишь к нему и говоришь: «Со мной классно в постели».
- Это прямой маркетинг
Ты пришла на вечеринку с друзьями и видишь симпатичного парня. Один из твоих друзей подходит к нему и говорит: «С ней классно в постели».
- Это реклама | полный текст
Рукодельная лавка Марьи-Искусительницы
Вышла в свет новая работа на фреймворке Shinobi:
«Рукодельная лавка Марьи-Искусительницы»
по адресу www.mariais.com — добро пожаловать.
Можно не только любоваться, но и делать заказы.
Spartus 0.2.7
Сегодня сделал сборку 0.2.7 PHP/MySQL-фреймворка Spartus. Разработка продвигается медленнее, чем хотелось бы, в силу объективных причин.
Обновления:
1. Файлы меню и Tiles (включаемые фрагменты) вынесены в особую директорию, т.к. до этого они лежали в одной директории с динамическими страницами, что было чревато их загрузкой по прямому URL (они дают пустой вывод, т.е. с точки зрения безопасности это не критично, но неприятно: злоумышленник может понять, что файл существует). Теперь в conf.php появилась константа PARTS, в которой хранится директория с фрагментами.
2. Сделана загрузка библиотек на уровне ядра. В conf.php хранится массив $getlibs, в котором хранятся соответствия страниц (без расширений) и имён файлов загружаемых библиотек, хранящихся в PARTS (тоже без расширений, можно указывать несколько через запятую):
$getlibs = array(
'*' => 'lib2',
'blog' => 'blog, list',
'page404' => 'mails'
);
Перед загрузкой страницы (неважно, статической или динамической), если есть соответствие в массиве, будут подгружены необходимые библиотеки. Звёздочка вместо имени страницы говорит о том, что библиотека будет запрашиваться для всех страниц: это позволяет расширять функциональность фреймворка собственными библиотеками.
3. Расширен состав библиотек.
4. Изменения в названиях констант, дополнительная директория для шаблонов вёрстки.
5. Более подробные комментарии в ядре.
В планах кэш, многоязычность, интерцепторы и ещё библиотеки и готовые страницы.




