Deprecated: Assigning the return value of new by reference is deprecated in /home/spwebru/com/wp-settings.php on line 472

Deprecated: Assigning the return value of new by reference is deprecated in /home/spwebru/com/wp-settings.php on line 487

Deprecated: Assigning the return value of new by reference is deprecated in /home/spwebru/com/wp-settings.php on line 494

Deprecated: Assigning the return value of new by reference is deprecated in /home/spwebru/com/wp-settings.php on line 530

Deprecated: Assigning the return value of new by reference is deprecated in /home/spwebru/com/wp-includes/cache.php on line 103

Deprecated: Assigning the return value of new by reference is deprecated in /home/spwebru/com/wp-includes/query.php on line 21

Deprecated: Assigning the return value of new by reference is deprecated in /home/spwebru/com/wp-includes/theme.php on line 623
Веб-разработка - Программируем на CakePHP


Сен 10 2008

Создаем Sitemap скриптом на Python

Раздел: Веб-разработкаМета @ 23:01

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

Выбор пал на утилиту sitemap_gen.py. Представляет собой один единственный файл-скрипт на языке Python. Соответственно, требует чтобы Питон был установлен в системе. Скачать и установить Python для Windows можно здесь.

Читать дальше “Создаем Sitemap скриптом на Python”

Теги:


Сен 08 2008

Использование TreeBehavior в CakePHP

Раздел: Веб-разработкаМета @ 23:21

Сегодня у этого блога первый маленький юбилей — 10-й пост. Скорость набрана не плохая, буду очень стараться не уронить планку.

Очень часто в своих проектах нам приходится реализовывать хранение и вывод иерархических данных — всевозможные древовидные структуры разделов и подразделов статей, категории товаров интернет-магазинов, папки с фотографиями и тому подобное. Многие организуют такие списки через простейшие id, name, parent_id, но у этого способа масса недостатков. Один из них — необходимость рекурсии, если неизвестен уровень вложенности искомого раздела. К счастью, в CakePHP есть встроенное средство для работы с иерархическими данными TreeBehavior, работающий по алгоритму MPTT (Multi Path Tree Traversal). Подробнее об этом алгоритме я напишу в следующий раз. Все примеры кода взяты из официальной документации на CakePHP.

Читать дальше “Использование TreeBehavior в CakePHP”

Теги: ,


Сен 07 2008

Автоматическое создание Sitemap в CakePHP

Раздел: Веб-разработкаМета @ 23:09

В Пекарне CakePHP появилась статья с примерами кода для автоматического создания карты сайта в любом проекте. Предлагаю здесь ее перевод.

Чем большее распространение получает CakePHP, чем больше сайтов использует эту платформу, тем чаще возникает необходимость в автоматическом создании и обновлении sitemap’ов. Предлагаю простое сочетание вида и контроллера для оповещения пользователей и поисковых машин о новом контенте на вашем сайта.

Хотя sitemap’ы и не обязательны, но поддерживаются уже почти всеми поисковиками. С помощью CakePHP можно создавать их автоматически. Такие карты будут всегда самыми свежими и отражать весь контент, представленный на сайте. Это помогает быстрее достичь первых строк выдачи поисковиков.

Читать дальше “Автоматическое создание Sitemap в CakePHP”

Теги: ,


Сен 04 2008

Проверяйте сайты на битые ссылки!

Раздел: Веб-разработкаМета @ 22:56

Несколько месяцев назад мы работали над одним крупным проектом. Сайт создавался на CakePHP, на тот момент содержал 7 моделей и 14 контроллеров, общее количество записей в таблицах — несколько десятков тысяч. Каково же было наше удивление, когда придя в один прекрасный день утром на работу, мы увидели что больше половины данных из базы удалено. Да и оставшиеся данные исчезали прямо на глазах.

Дурацкая мысль - «хакеры!» - была опровергнута просмотром журнала веб-сервера. Оказалось что по сайту просто лазает бот поисковой системы. Лазает уже больше восьми часов — весь вечер, ночь и наступившее утро. Доступ к сайту мы тут же закрыли, базу — восстановили из резервной копии и начали анализировать почему это произошло.

Читать дальше “Проверяйте сайты на битые ссылки!”

Теги: , , , ,


Сен 03 2008

Seo-компонент для CakePHP

Раздел: Веб-разработкаМета @ 23:03

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

Для проектов в нашей студии используется простой SeoComponent, позволяющий автоматически загружать из базы данных в макет (layout) заголовки и мета-теги, основываясь на адресе запрошенной страницы.

Читать дальше “Seo-компонент для CakePHP”

Теги: , ,


Сен 02 2008

Простая аутентификация в CakePHP

Раздел: Веб-разработкаМета @ 22:54

Очень часто при разработке простых проектов нужно быстро подключить простую аутентификацию для запроса логина-пароля при попытке доступа к определенным страничкам сайта. Например, нужно закрыть от общего доступа временную администраторскую панель или запаролить секретную страничку. Это можно сделать с помощью компонента ValidationComponent. Его необходимо сохранить в папку app/controllers/components/ вашего проекта под именем validation.php.

Читать дальше “Простая аутентификация в CakePHP”

Теги: , ,


Сен 01 2008

Фильтрация списка по категориям в CakePHP

Раздел: Веб-разработкаМета @ 22:49

Допустим, есть у нас таблица категорий «categories», построенная по самому простому принципу — id, name, parent_id. И есть список товаров, привязанных к этим категориям по полю «category_id». Список довольно большой — свыше двух тысяч наименований. Стандартным шеллом CakePHP можно подготовить функции в контроллере и вид (view) для постраничного просмотра списка товаров с помощью PaginatorHelper. Но проматывать больше сотни страниц для того чтобы найти нужный товар, крайне непродуктивно. Соответственно, надо сделать фильтрацию по категории товаров.

Подразумевается, что связь hasMany между категориями и товарами уже настроена. Обязательно также нужна и обратная ей — belongsTo.

Читать дальше “Фильтрация списка по категориям в CakePHP”

Теги: , ,