Блог веб-программиста

29Май/090

Yii — создание своих типов Action-ов

Пишу одно прлиожение на Yii Framework. Структура приложения такова, что необходимо разграничить экшены контроллеров(CController) по папкам и сделать их типовыми.
Экшены разграничиваются легко.
Предположим, что у нас есть ряд экшенов для администрирования. Всем им надо установить какие-либо свойства или же сделать при их вызове какие-то типовые действия.
Рассмотрим на примере изменения титла страницы.
Вот код моего базового экшена:

class dotPlantAdminAction extends CAction
 {
 /**
 * Constructor.
 * Runs CAction constructor and makes some changes for Admin action type
 */
 public function  __construct($controller,$id)
 {
 parent::__construct($controller,$id);
 $this->controller->pageTitle       = dotPlant::getName() . " - Admin ";
 
}
 
public function run()
 {
 
 }
 }

В конструкторе мы сначала вызываем parent::__construct с необходимыми параметрами. Это грубо-говоря идёт инициализация базового CAction.

Допустим у нас есть контроллер SettingsController. И нам нужно сделать его на основе нашего экшена. Создаем папку  protected/controllers/Settings/. В ней создаем файл ActionAdmin.php с таким вот кодом:

class ActionAdmin extends dotPlantAdminAction
{
 public function run()
 {
    $this->controller->render('admin');    
 }
}

Видите? Нам достаточно только объявить run() и уже всё готово. При загрузке запустится необходимый нам конструктор базового контроллера с нашими действиями.

Вот по такому принципу я разграничиваю например админку в своей CMS dotPlant на Yii Framework. Слава PHP пятому!

Связано с категорией: Code Нет комментариев
19Май/090

Вечерне-утренний обход

С недавнего времени я работаю в новой компании. Для консперации буду называть её DDD.
Компания не маленькая, весьма интересная и как полагается, со своими особенностями.
Утро каждого работника начинается с обходняка по кабинету всех уже пришедших, дабы одарить их своим теплым рукопожатием.
День проходит весьма однообразно. Сидишь, работаешь, пьешь чай/кофе/что-либо-другое и заедаешь печеньками/вафлями/зефиром/чем-либо-ещё.
И вот приходит вечер и ты из последних сил с львиным желанием побыстрее пойти по своим делам делаешь очередной обходняк.
Порой складывается ощущение, что никому из сидящих это не так уж и критически необходимо, ибо все заняты своими делами, ну или пытаются себя ими занять.

На днях, пришел в DDD новый веб-программист - Леонидий. Обычный интеллегент с красным носом, постоянно просящий ему что-то объяснить или помочь.
В первый же день ему поставили Ubuntu Linux. Через пару часов веб-программист Леонидий его убил вместе с винчестером. Весь оставшийся день Леонидий провёл в чтении достояния DDD - различной литературы, дабы расширить своё "я и так всё знаю" видимо до уровня "АААа! Точно! Как же это я?!".
На следующий день плотность заполнения его мозга новыми знаниями увеличилась до предела и под напором длительного отсутствия общения с компьютером Леонидий отправился домой.

Сегодня - день третий. Леонидий получил новый комп с новой системой. Пару раз прибегал с просьбой поставить ему Gimp и *программу для PHP*. На данный момент всё *вроде бы* без проишествий...

... И все снова в ожидании обходняка!

Связано с категорией: Новости Нет комментариев
26Мар/094

Как легально увеличить количество сайтов на хостинге

Здравствуйте. Вот решил поделиться легальным способом обхода ограничений на количество сайтов на хостинге.

Всё что нужно - иметь хостинг хотя бы на один сайт и возможность создавать несколько(или даже неограниченное количество) алиасов для сайта.

Метод основывается на возможностях mod_rewrite Apache.

Вот пример .htaccess файла:

RewriteEngine on
 
# Главный узел
RewriteCond %{HTTP_HOST} ^mysite\.ru$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
 
# Допустим тут всё перенаправляется на index.php
RewriteRule . index.php
 
RewriteCond %{HTTP_HOST} ^example\.ru$
RewriteCond %{REQUEST_URI} !^/example\.ru/
RewriteRule (.*) /example\.ru/$1

Таким образом, в главной папке нашего сайта лежит содержимое mysite.ru. В этой же папке есть папка example.ru, в которой находится содержимое второго сайта.

Такой метод прошёл на Хостинге "ТаймВэб". К примеру, там можно взять минимальный хостинг на 2 сайта стоимостью всего 120 руб./мес., объемом дискового пространства 1000 Мб и радоваться жизни!

PS: А хостинг, кстати, хороший. Рекомендую!

Связано с категорией: Новости 4 Комментарии
25Янв/094

DailySnap: DropDown jQuery Navigation Menu

dailysnap, dropdown, jquery, menu, navigation, yii framework, меню навигации на CSS

Выпадающее меню навигации v0.1.
Простенькое выпадающее меню на jQuery. Использует модуль категорий для динамической генерации HTML разметки на UL-ах. Реализовано как CWidget.
Использовалось: jQuery, CSS, The Gimp для фона и картинок, Yii Framework

Связано с категорией: Новости 4 Комментарии
21Янв/090

DailySnap — Категории

Вот решил сделать новую рубрику DailySnap. Буду выкладывать скриншоты дня.

Первый скриншот:

категории, jQuery UI, treeTable, Yii fr[x]amework

Админка категорий v0.1.
Ну чем вам не скиновое GUI приложение?
jQuery UI, treeTable, Yii Framework

Связано с категорией: Новости Нет комментариев
19Янв/090

Overdrive

Ничто так не помогает отдохнуть от работы, как гитара с овердрайвом (rock)

Связано с категорией: Новости Нет комментариев
16Янв/090

Save — Копилка Грехов (2009) — скачать mp3

Наконец то вышел новый долгожданный альбом Save - Копилка Грехов 2009. Появившиеся песни из EP  мне очень понравились. Надеюсь и Вам тоже придется по вкусу.

Save - Копилка грехов (2009)
Исполнитель: Save
Альбом: Копилка грехов
Год выхода: 2009
Жанр: Nu metal
Время: 54:07
Качество: 256 kbps
Размер: 94 мб

01. Сорви повязку с глаз
02. Ложь прошла сквозь стену
03. Без слов
04. Изверг
05. Линии в разных мирах
06. Ловец снов
07. Ты для меня
08. 10 на прощанье
09. Под руку с мечтой
10. Смерть или Бог
11. 215

Скачать альбом в mp3 с rapidshare

Связано с категорией: Новости Нет комментариев
30Дек/080

Жизненно

Как жизненно то:

Связано с категорией: Новости Нет комментариев
17Дек/080

Новый BestPersons

Вчера вечером так и не дождался обновления BestPersons, зато сегодня утром увидел его во всей красе.

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

Появился ещё один рейтинг в топе.

И теперь о плохом.... плохом? ну да. Моя аватарка куда то пропала после обновления и её пришлось закачивать заново. Но разве это так ужасно?

Ах да, сейчас этот текст был написан в новом редакторе, что основан на TinyMCE. Тоже полезная вещь, правда катов и юзер-тегов нет 🙁

А ещё, есть функция черновиков.. Только я не понимаю пока что как она реализована.

Связано с категорией: Новости Нет комментариев
17Дек/080

FunkDemo

Мои друзья Kreksoverzum и IceGuy постарались:

Связано с категорией: Новости Нет комментариев