Простенький сайт агентства недвижимости.

Собираем здесь завершённые проекты, использующие Yii. Один проект — одна тема.
Ответить
Johnatan
Сообщения: 167
Зарегистрирован: 2010.10.27, 13:06
Откуда: Reino de España

Простенький сайт агентства недвижимости.

Сообщение Johnatan »

Приветствую.

PHP занимаюсь довольно давно, но профессионально взялся за него только недавно. До этого не использовал фреймворки и Yii - мой первый опыт работы с фреймворками. Это мой первый законченный коммерческий проект на Yii, поэтому я не смог использовать все возможности фреймворка.

www.prestigeconsultor.com

Особенности:
- 6 полноценных языков (кроме админки). Основной язык сайта - испанский (использовался стандартный i18n с собственным виджетом переключения языков)
- пользователи сами могут добавлять объеты недвижимости на сайт(включая загрузку фотографий и видео), администраторы лишь должны подтвердить, что информация по объекту корректна.
- Google Maps API (слегка модифицированное расширение EGMap от Antonio Ramirez)
- загрузка видео через Youtube API (посредством компонента Zend_Gdata)
- генерирование PDF (посредством модифицированного компонента Zend_PDF)
- загрузка фотографий через Ajax без флеша посредством qqUploader (виджет интеграции писал сам ещё до того как появился виджет в расширениях)
- JQueryUI Tabs
- нормализованная структура базы данных. Таблица самих объектов имеет только идентификатор, метаданные и цену объекта, а остальные данные хранятся в отдельных таблицах
- разделение фронтенда и бэкенда на уровне разных приложений имеющих доступ ко всем ресурсам, кроме частных представлений.
- админка на основе jqGrid. Собственное расширение для работы с jqGrid.
- описания объектов автоматически переводятся с испанского на другие языки через Google Translate API (самописное расширение)

Сайт будет дорабатываться по просьбе заказчика. Счётчики, метатэги и т.д. будут устанавливаться специализированным SEO агенством.

Скриншоты админки:
Изображение
Изображение
Последний раз редактировалось Johnatan 2011.03.30, 22:33, всего редактировалось 1 раз.
Конференция: yii@conference.jabber.ru
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Простенький сайт агентства недвижимости.

Сообщение slavcodev »

Можно подробнее про загрузка видео через Youtube API?
У меня как раз проект где много видео.
Жду Yii 3!
Johnatan
Сообщения: 167
Зарегистрирован: 2010.10.27, 13:06
Откуда: Reino de España

Re: Простенький сайт агентства недвижимости.

Сообщение Johnatan »

Я долго курил мануалы по Youtube API PHP вот здесь http://code.google.com/intl/ru/apis/you ... e_php.html
Затем нашёл, что в Zend уже есть готовый компонент, а Yii прекрасно работает с компонентами Zend (http://framework.zend.com/manual/en/zen ... utube.html)
Объединив всю эту информацию организовать заливку видео на Youtube прямо с сайта было довольно легко. Я использовал систему авторизации ClientLogin. Она позволяет заливать все видео под одним логином (тому, кто закачивает видео не нужно иметь свой аккаунт на Youtube).

Да, забыл написать в особенностях, что на сайт объекты может добавлять любой зарегистрированный пользователь и объекты потом проходят проверку у администраторов.

Была проблема с использованием новой для Youtube фичи со скрытым видео (не private, а listed), так как в компоненте Zend ещё нет этой опции. Пришлось писать свой небольшой патч, но это мелочь.
Конференция: yii@conference.jabber.ru
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Простенький сайт агентства недвижимости.

Сообщение slavcodev »

спасибо, теперь я знаю чем я буду заниматься все выходные :(
Жду Yii 3!
Аватара пользователя
alexk984
Сообщения: 433
Зарегистрирован: 2010.10.21, 15:03
Контактная информация:

Re: Простенький сайт агентства недвижимости.

Сообщение alexk984 »

Много времени у вас ушло на него?
Johnatan
Сообщения: 167
Зарегистрирован: 2010.10.27, 13:06
Откуда: Reino de España

Re: Простенький сайт агентства недвижимости.

Сообщение Johnatan »

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

Ещё забыл добавить, что на этом сайте описания объектов недвижимости автоматически переводятся с испанского на другие языки через Google Translate API.
Конференция: yii@conference.jabber.ru
Аватара пользователя
greatdane
Сообщения: 408
Зарегистрирован: 2010.10.20, 14:05
Откуда: Электросталь
Контактная информация:

Re: Простенький сайт агентства недвижимости.

Сообщение greatdane »

johnatanb, не поделитесь примерами кода для работы с Google Translate API?
Johnatan
Сообщения: 167
Зарегистрирован: 2010.10.27, 13:06
Откуда: Reino de España

Re: Простенький сайт агентства недвижимости.

Сообщение Johnatan »

Это часть кода метода getDescription в AR модели Items, который представляет собой объекты недвижимости.

Код: Выделить всё

$from = Yii::app()->sourceLanguage;
$to = Yii::app()->language;

$request = curl_init("http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" . urlencode($this->description) . "&langpair=".$from."%7c".$to);

curl_setopt($request CURL_HTTP_VERSION_1_1, 1);
curl_setopt($request, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($request, CURLOPT_HEADER, 0);
curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($request, CURLOPT_USERAGENT, 'Mozilla/5.0');

$response = curl_exec($request);

if ( 200 != curl_getinfo($request, CURLINFO_HTTP_CODE) ) {
    return $this->getDescription();
}

curl_close($request);

$result = json_decode(trim($response), true);
$description = $result['responseData']['translatedText'];
 
Дальше идёт проверка статуса ответа (responseStatus), если он не 200, то повторить запрос и т.д.
Документация здесь: http://code.google.com/intl/ru/apis/lan ... slate.html
Конференция: yii@conference.jabber.ru
tonchik
Сообщения: 1
Зарегистрирован: 2011.12.12, 12:04

Re: Простенький сайт агентства недвижимости.

Сообщение tonchik »

а можно про мелочь по-подробнее? :)
Была проблема с использованием новой для Youtube фичи со скрытым видео (не private, а listed), так как в компоненте Zend ещё нет этой опции. Пришлось писать свой небольшой патч, но это мелочь.
уже давно делал админку для модерации видео и кажется в в ней я мог просматривать private видео. Но вот сейчас оказалось, что просмотреть видео нельзя. Перерыл все что мог, но так и не понял можно ли просмотреть private видео на своем сайте. Поэтому решил использовать новый статус Youtube unlisted, но опять же ничего по нему нет, как программно его устанавливать :(
sergko
Сообщения: 18
Зарегистрирован: 2011.03.24, 13:57

Re: Простенький сайт агентства недвижимости.

Сообщение sergko »

Меню бы поправить чуток. Если курсор наводится ниже надписи, то при "подпрыгивании" зона с ссылкой уезжает из под мыши, приходится ловить снова. Т.е. желательно, чтоб блок <a> заполнял охватывающий элемент списка.
Johnatan
Сообщения: 167
Зарегистрирован: 2010.10.27, 13:06
Откуда: Reino de España

Re: Простенький сайт агентства недвижимости.

Сообщение Johnatan »

tonchik писал(а):а можно про мелочь по-подробнее? :)
уже давно делал админку для модерации видео и кажется в в ней я мог просматривать private видео. Но вот сейчас оказалось, что просмотреть видео нельзя. Перерыл все что мог, но так и не понял можно ли просмотреть private видео на своем сайте. Поэтому решил использовать новый статус Youtube unlisted, но опять же ничего по нему нет, как программно его устанавливать :(
Нельзя private видео просматривать на своём сайте. Именно поэтому используется listed/unlisted атрибут. Этот атрибут хоть и добавили в API, но нигде не задокументировали.
Нужно послать такую конфигурацию:

Код: Выделить всё

<yt:accessControl action='list' permission='denied'/> 
О, кстати, обновили документацию.
http://code.google.com/intl/en-EN/apis/ ... essControl
sergko писал(а):Меню бы поправить чуток. Если курсор наводится ниже надписи, то при "подпрыгивании" зона с ссылкой уезжает из под мыши, приходится ловить снова. Т.е. желательно, чтоб блок <a> заполнял охватывающий элемент списка.
При следующем обновлении поправлю. Спасибо.
Конференция: yii@conference.jabber.ru
Ответить