Вообще говоря, утилит для создания карты сайта сейчас полно. Но поскольку у нас в студии используются различные операционные системы, то требовалось найти кроссплатформенное решение. Плюс, были необходимы максимальные возможности по автоматизации.
Выбор пал на утилиту sitemap_gen.py. Представляет собой один единственный файл-скрипт на языке Python. Соответственно, требует чтобы Питон был установлен в системе. Скачать и установить Python для Windows можно здесь.
Читать дальше “Создаем Sitemap скриптом на Python”
Теги: Веб-разработка
Сегодня у этого блога первый маленький юбилей — 10-й пост. Скорость набрана не плохая, буду очень стараться не уронить планку.
Очень часто в своих проектах нам приходится реализовывать хранение и вывод иерархических данных — всевозможные древовидные структуры разделов и подразделов статей, категории товаров интернет-магазинов, папки с фотографиями и тому подобное. Многие организуют такие списки через простейшие id, name, parent_id, но у этого способа масса недостатков. Один из них — необходимость рекурсии, если неизвестен уровень вложенности искомого раздела. К счастью, в CakePHP есть встроенное средство для работы с иерархическими данными TreeBehavior, работающий по алгоритму MPTT (Multi Path Tree Traversal). Подробнее об этом алгоритме я напишу в следующий раз. Все примеры кода взяты из официальной документации на CakePHP.
Читать дальше “Использование TreeBehavior в CakePHP”
Теги: cakephp, Веб-разработка
В Пекарне CakePHP появилась статья с примерами кода для автоматического создания карты сайта в любом проекте. Предлагаю здесь ее перевод.
Чем большее распространение получает CakePHP, чем больше сайтов использует эту платформу, тем чаще возникает необходимость в автоматическом создании и обновлении sitemap’ов. Предлагаю простое сочетание вида и контроллера для оповещения пользователей и поисковых машин о новом контенте на вашем сайта.
Хотя sitemap’ы и не обязательны, но поддерживаются уже почти всеми поисковиками. С помощью CakePHP можно создавать их автоматически. Такие карты будут всегда самыми свежими и отражать весь контент, представленный на сайте. Это помогает быстрее достичь первых строк выдачи поисковиков.
Читать дальше “Автоматическое создание Sitemap в CakePHP”
Теги: cakephp, Веб-разработка
Несколько месяцев назад мы работали над одним крупным проектом. Сайт создавался на CakePHP, на тот момент содержал 7 моделей и 14 контроллеров, общее количество записей в таблицах — несколько десятков тысяч. Каково же было наше удивление, когда придя в один прекрасный день утром на работу, мы увидели что больше половины данных из базы удалено. Да и оставшиеся данные исчезали прямо на глазах.
Дурацкая мысль - «хакеры!» - была опровергнута просмотром журнала веб-сервера. Оказалось что по сайту просто лазает бот поисковой системы. Лазает уже больше восьми часов — весь вечер, ночь и наступившее утро. Доступ к сайту мы тут же закрыли, базу — восстановили из резервной копии и начали анализировать почему это произошло.
Читать дальше “Проверяйте сайты на битые ссылки!”
Теги: cakephp, php, бот, Веб-разработка, ошибка
При создании современных сайтов приходится обязательно учитывать особенности работы поисковых машин с контентом страниц. Во всех проектах, написанных с использованием CakePHP тоже нужно реализовывать seo-функции, хотя бы — простановку уникальных заголовков и мета-тегов для всех страниц. А поскольку обычно страницы сайта на CakePHP обрабатываются разными контроллерами, задача может стать совсем нетривиальной.
Для проектов в нашей студии используется простой SeoComponent, позволяющий автоматически загружать из базы данных в макет (layout) заголовки и мета-теги, основываясь на адресе запрошенной страницы.
Читать дальше “Seo-компонент для CakePHP”
Теги: cakephp, php, Веб-разработка
Очень часто при разработке простых проектов нужно быстро подключить простую аутентификацию для запроса логина-пароля при попытке доступа к определенным страничкам сайта. Например, нужно закрыть от общего доступа временную администраторскую панель или запаролить секретную страничку. Это можно сделать с помощью компонента ValidationComponent. Его необходимо сохранить в папку app/controllers/components/ вашего проекта под именем validation.php.
Читать дальше “Простая аутентификация в CakePHP”
Теги: cakephp, php, Веб-разработка
Допустим, есть у нас таблица категорий «categories», построенная по самому простому принципу — id, name, parent_id. И есть список товаров, привязанных к этим категориям по полю «category_id». Список довольно большой — свыше двух тысяч наименований. Стандартным шеллом CakePHP можно подготовить функции в контроллере и вид (view) для постраничного просмотра списка товаров с помощью PaginatorHelper. Но проматывать больше сотни страниц для того чтобы найти нужный товар, крайне непродуктивно. Соответственно, надо сделать фильтрацию по категории товаров.
Подразумевается, что связь hasMany между категориями и товарами уже настроена. Обязательно также нужна и обратная ей — belongsTo.
Читать дальше “Фильтрация списка по категориям в CakePHP”
Теги: cakephp, php, Веб-разработка