Архив метки: Yii

Как я делал buyrealty.su

buyrealty.su

buyrealty.su

Решил рассказать, о том какие проекты/сайты мне приходилось делать и что было интересного в процессе разработки.

Начну, пожалуй, с проекта http://www.buyrealty.su/ — ничего особенного, простой каталог объектов недвижимости.

Изначально заказчик (мой хороший товарищ) обратился ко мне с просьбой просто сменить дизайн сайта. «Нет ничего проще !» — подумал я и немедленно согласился.

Однако, после того, как я взглянул на код, с которым предстояло работать — я был просто в шоке. Может из-за того, что я не представляю себе проекта без использования современного фреймворка (типа Yii или Catalyst), то что я увидел — было похоже на «лапшу», начала 90-х годов. PHP код в перемешку с HTML и JavaScript, обращение к базе данных из всех возможных мест, 1000 инклюдов с версткой и дополнительной логикой — в общем «картина маслом». Я уже не говорю о схеме базы данных.

По хорошему все это нужно было бы переписать, сделать конвертацию базы и т.д. Но как всегда, две проблемы — время и деньги. Я решил изменить только «морду» сайта, а все его внутренности (админка, схема базы данных и т.д.) оставить прежними. По готовой «схеме» базы данных были сгенерированны все необходимые модели Yii. После чего написаны необходимые контроллеры и представления (вьюхи). Новый дизайн прекрасно «лег» на новый «движок» сайта и через некоторое время (все про все заняло около 10 дней свободного от работы времени) портал приобрел новое лицо.

После этого были долгие пляски с mod_rewrite, однако все прошло хорошо и Яндекс успешно переиндексировал сайт с новыми url-адресами.

Не скажу, что я супер-мега программист и что после моих переделок сайт стал быстрее/круче/прикольнее, но то, что он приобрел более четкую архитектуру — это факт. Сайт, по крайней мере его публичную часть, теперь значительно легче поддерживать и если вдруг будет очередная смена дизайна — сделать это будет гораздо проще. Слава MVC!

http://www.buyrealty.su/

Продолжение следует =)

Полезность мониторинга ошибки 404

Каждый раз, когда передаю свои сайты заказчику или просто выкладываю в онлайн, все время оставляю отсылку email-уведомлений, при возникновении ошибок. В Yii это деалется очень просто. Подробнее вот здесь, раздел ‘Отсылка ошибок почтой’.
Бывает за одну ночь приходит по 100-150 писем =). Вот что интересного удалось извлечь из этой кучи «спама».

1 Обязательно в корень каждого сайта добавляйте robots.txt, я часто забывал нем.
2 Обязательно в корень каждого сайта добавляйте favicon.ico,о нем тоже частенько забывают.

Особенно мне понравились попытки обратится по адресам типа вот таких:
http://mysite.ru/wp-admin/…
http://mysite.ru/showthreads/…

Очевидно кто-то сканирует сайты на известные cms и форумные движки.

Сегодня даже было обращение к адресу вида:

http://mysite.ru/.svn/…

Так что не забываем в паблик выкладывать не рабочую копию,
а экспортированные исходники (svn export).

Вот такие дела!

Основной сайт Юпи! — http://yupe.ru

Исходный код — https://github.com/yupe/yupe

Присоединяйтесь!

Печать фотографий через интернет в Ногинске

В Ногинске теперь можно заказать печать фотографий через Интрнет.

Очень удобно! Сам испытал!

Создал заказ, отправил, пришел и получил =)

Сайт (по уверению заказчика, это первая версия — «пробочная»), разрабатывался мной, так что, прошу любить и жаловать

http://pechat-noginsk.ru/

И да..если найдете ошибку — пишите тоже мне!

Удачного всем отдыха, хороших впечатлений и фотографий!

http://pechat-noginsk.ru/

Поправил мелкие баги на sprosiotvechu.ru

На сайте SprosiOtvechu.ru исправил некоторые мелкие баги.
После того как вернусь из отпуска, возьмусь серьезно за этот проект.
Есть куча идей, которые хочется реализовать.
А на то, что уже есть аналоги — нам наплевать =) Много, ведь не мало =)

п.с. Если будут предложения или замечания — пишите мне!

Yii хотелки и меньше лапше-кода

Довольно часто, при работе с сессией в Yii, приходится писать код вот такого плана:

$nickName    = Yii::app()->user->getState('nickName');
$accessLevel = Yii::app()->user->getState('accessLevel');
.........................................................

Аналогично и при установке этих значений.

Было бы здорово иметь возможность передавать методам getState и setState массив параметров:

$data = Yii::app()->user->getState(array(
       'nickName',
       'accessLevel' 
));

или

Yii::app()->user->setState(array(
       'nickName'     => 'xoma',
       'accessLevel'  => 'superAdmin' 
));