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 пятому!
Вечерне-утренний обход
С недавнего времени я работаю в новой компании. Для консперации буду называть её DDD.
Компания не маленькая, весьма интересная и как полагается, со своими особенностями.
Утро каждого работника начинается с обходняка по кабинету всех уже пришедших, дабы одарить их своим теплым рукопожатием.
День проходит весьма однообразно. Сидишь, работаешь, пьешь чай/кофе/что-либо-другое и заедаешь печеньками/вафлями/зефиром/чем-либо-ещё.
И вот приходит вечер и ты из последних сил с львиным желанием побыстрее пойти по своим делам делаешь очередной обходняк.
Порой складывается ощущение, что никому из сидящих это не так уж и критически необходимо, ибо все заняты своими делами, ну или пытаются себя ими занять.
На днях, пришел в DDD новый веб-программист - Леонидий. Обычный интеллегент с красным носом, постоянно просящий ему что-то объяснить или помочь.
В первый же день ему поставили Ubuntu Linux. Через пару часов веб-программист Леонидий его убил вместе с винчестером. Весь оставшийся день Леонидий провёл в чтении достояния DDD - различной литературы, дабы расширить своё "я и так всё знаю" видимо до уровня "АААа! Точно! Как же это я?!".
На следующий день плотность заполнения его мозга новыми знаниями увеличилась до предела и под напором длительного отсутствия общения с компьютером Леонидий отправился домой.
Сегодня - день третий. Леонидий получил новый комп с новой системой. Пару раз прибегал с просьбой поставить ему Gimp и *программу для PHP*. На данный момент всё *вроде бы* без проишествий...
... И все снова в ожидании обходняка!
Как легально увеличить количество сайтов на хостинге
Здравствуйте. Вот решил поделиться легальным способом обхода ограничений на количество сайтов на хостинге.
Всё что нужно - иметь хостинг хотя бы на один сайт и возможность создавать несколько(или даже неограниченное количество) алиасов для сайта.
Метод основывается на возможностях 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: А хостинг, кстати, хороший. Рекомендую!
DailySnap: DropDown jQuery Navigation Menu
Выпадающее меню навигации v0.1.
Простенькое выпадающее меню на jQuery. Использует модуль категорий для динамической генерации HTML разметки на UL-ах. Реализовано как CWidget.
Использовалось: jQuery, CSS, The Gimp для фона и картинок, Yii Framework
DailySnap — Категории
Вот решил сделать новую рубрику DailySnap. Буду выкладывать скриншоты дня.
Первый скриншот:
Админка категорий v0.1.
Ну чем вам не скиновое GUI приложение?
jQuery UI, treeTable, Yii Framework
Save — Копилка Грехов (2009) — скачать mp3
Наконец то вышел новый долгожданный альбом Save - Копилка Грехов 2009. Появившиеся песни из EP мне очень понравились. Надеюсь и Вам тоже придется по вкусу.
Исполнитель: Save
Альбом: Копилка грехов
Год выхода: 2009
Жанр: Nu metal
Время: 54:07
Качество: 256 kbps
Размер: 94 мб
01. Сорви повязку с глаз
02. Ложь прошла сквозь стену
03. Без слов
04. Изверг
05. Линии в разных мирах
06. Ловец снов
07. Ты для меня
08. 10 на прощанье
09. Под руку с мечтой
10. Смерть или Бог
11. 215
Новый BestPersons
Вчера вечером так и не дождался обновления BestPersons, зато сегодня утром увидел его во всей красе.
Интерфейс заметно улучшился и выполнен в лучших традициях Web 2.0. Появилась так давно требуемая мною функция группировки одинаковых сообщений в ленте, что исключает повторы.
Появился ещё один рейтинг в топе.
И теперь о плохом.... плохом? ну да. Моя аватарка куда то пропала после обновления и её пришлось закачивать заново. Но разве это так ужасно?
Ах да, сейчас этот текст был написан в новом редакторе, что основан на TinyMCE. Тоже полезная вещь, правда катов и юзер-тегов нет 🙁
А ещё, есть функция черновиков.. Только я не понимаю пока что как она реализована.