Блог хеллоуворлдщика

Используем cURL

Первая мысль, которая должна возникать у разработчика перед тем, как написать свой велосипед, это - посетить GitHub или PEAR, или Bitbucket. Скорее всего этот велосипед уже есть с разными вариациями колёс, педалей и т.д. Конечно, все мы любим писать своё, но обычно это нафиг не надо никому, а главное чтоб работало.

У меня была своя библа для работы с cURL, но она была очень простая и дописывать совсем лень. Я решил тупо взять уже чью-то и использовать.

Взять можно отсюдава https://github.com/hackerone/curl . Библиотека очень здоровская. Всем рекомендую. =)

Если нужна библа без привязки к Yii, то ещё вот эту рекомендую https://github.com/shuber/curl

Читать далее

Backend для веб-приложения на Yii

Много раз мне в сети попадаются такие вопросы, как разделить frontend часть от backend. С frontend вроде и так всё понятно, но как только вопрос доходит до создание backend, люди сразу начинают прислушиваться к тысячам советов о том, как же лучше всего разделить.

Существует не мало вариантов разделения, а так же не мало вариантов реализации backend'а. Самый популярный вариант, это создание backend модулем, и, по-моему мнению, самый лучший вариант. Почему - расскажу далее.

Читать далее

Транслит из кириллицы в латиницу

Я не думаю, что стоит писать что такое транслит, т.к. если вы попали на эту страницу, то скорее всего он вам необходим.

Есть множество транслитераций в сети, которыми можно воспользоваться, включая GitHub. Можно найти транслитер, можно написать самому, но многие программисты ленивы и зря велосипеды ни кто не изобретает. Я тоже код, который я предложу, нашёл в сети и доработал его убрав индусский код, но в итоге это получилась уже моя на 70% разработка.

Читать далее

Динамические поля

Как всегда, каждая моя статья бывает чем-то сподвигнута, а именно работой. Выполняя тот или иной проект у меня появляются статьи для моего блога. На этот раз мы заденем такую тему, как "динамические поля".

Когда в проекте потребовалось реализовать связь между атрибутами товаров и их параметрами, вольно невольно возникает в голове только одно - динамические поля. В Yii, насколько всем известно, явно для этих целей ничего нет. Можно поискать в интернете и набрести, например, на эту статью http://habrahabr.ru/post/181642/ . Метод хорош, но не очень. Во-первых, нам везде нужно писать свою валидацию. Во-вторых, здесь не используется модель для которой весь этот концерт был организован, тем самым мы лишаемся много и приходится придумывать велосипеды, как например "запоминания прерыдущих значений". В моём методе этих недостатков нет. Оговорюсь, что я рассматриваю работу с двумя таблицами, в первой хранятся атрибуты товара, во второй хрянятся параметры для каждого из атрибута. Для кого-то, возможно, будет тяжело понять что я сейчас сказал, но не огорчайтесь. На самом деле всё просто. Чтоб понять о чём я, вам нужно это увидить. Предлагаю посетить демо-сайт платформы для интернет-магазина http://eximuscommerce.com/demo . В панели управления есть те самые атрибуты и параметры. И нет, я не слизал оттуда свою статью. Там есть динамическип поля, но реализация совсем не такая.

Читать далее

Yii-Feedback. Простая форма обратной связи

Сейчас нельзя представить сайт без формы обратной связи. Это такая маленькая, но неотъемлемая деталь.

Чем же так она важна? Вопрос, действительно хороший, и чтоб на него ответить я предлагаю посмотреть внутрь себя: все мы ленивые, а лень - двигатель прогресса. Мало кто захочет открыть почтовый ящик чтоб отправить по указанному Email адресу сообщение. Ведь это нужно ввести адрес, залогинется, написать адрес получателя, тему и сообщение. "Ууу, да ну его нафиг", - подумает посетитель и ничего не отправит. Форма обратной связи служит как раз тем самым связующим звеном между пользователем и ленью. Тем самым, мы увеличиваем возможность отклика.

Читать далее

Социальные кнопки. Обёртка для Share42

Вставлять код в шаблон не есть хорошо. Если так делать всегда, то в итоге получается каша. Да и это не приветствуется. Всё должно быть жёстко разграничено. Поэтому когда потребовалось нужда в Share42 была написана простая обёртка в виде модуля. В модуле есть только 3 кнопки: VKontakte, Mail.ru, Odnoklassniki.

Кого утраивает такой скудный набор - смело скачиваем и пользуемся! Модуль не требует дальнейших настроек. Прост как 5 копеек.

Скачать Wrapper for Share42

Читать далее

Ограничиваем видимость для групп пользователей

Выполняя один из заказов потребовалось реализовать такую задачу:

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

Я попробывал поискать в сети, но безрезультатно. Тогда я решил написать своё решение и сейчас поделюсь им с Вами.

Читать далее

SH Backup - простой бекапер на Shell для вашего сайта

"А как быть, если заказчик попросить в ТЗ наличие авто-бекапа для его веб? На чём писать или использовать существующие?". Поиски ничего не дали хорошего. Хотелось чего-то простого. И тут я подумал, "А почему бы не написать его на Shell?", и написал. =) Раньше я никогда ничего не писал на Shell, но потратив 2 часа, я получил вот такую небольшую, но очень ценную для многих программу.

Читать далее

Ошибка при загрузке больших файлов превышающих upload_max_filesize в php.ini. Validate CSRF token

Столкнулся с этой неизлечимой из корня бедой и я тоже. В сети много костылей по решению данной проблемы. Самый популярный костыль это

отключить проверку CSRF при определенном route

я не стал следовать этому совету и решил разобраться глубже. Первое что я сделал, это проверил что находится в момент ошибки в $_SERVER и сделал выводы, используя которые было написано моё решение.

Читать далее

Работа с несколькими моделями и отображение их в CGridView

Иногда, или даже, чаще всего возникает потребность использовать несколько моделей в CGridView. В сети есть не мало решений связанные с использованием нескольких моделей в CGridView. Есть хорошие и есть плохие. Я решил разобраться в этом вопросе. Мы рассмотрим чужие костыли, решение через behavior и мой костыль.

Читать далее