Речь пойдет конечно же об обновлениях на OS Debian и Ubuntu. Но я думаю, что на других OS те же похожие проблемы, с которыми можно столкнуться.
В этом посте я опишу решение нескольких из них.
Метка: HTML and CSS
Доработка модулей для Kohana – Doctrine и Doctrine Migrations
В виду того, что проект Kohana вообще закрылся и версию 3.4 c namespace мы наверное никогда не увидим следует вывод – не стоит начинать на ней новые проекты. Но что делать, если приходится поддерживать старые. Не пользоваться же ORM Kohana, ее знание и знание ее особенностей уже ни кому не нужны. Значит надо подключить Doctrine.
Свой Form Element со своим Render в Zend Framework 2
Иногда очень полезно инкапсулировать в элемент формы какую-то кастомную логику, а так же его отображение и фильтрацию, для повторного ипользования.
На примере Bootstrap3 date time picker я приведу пример, как сделать элемент Element\DateTimePicker с версткой Bootstrap.
Ubuntu error: symbol ‘grub_term_highlight_color’ not found. grub rescue> – решение
В данном посте решение проблемы с GRUB ( у меня возникло при обновлении Ubuntu с 13.10 на 14.04 ).
Welcome to GRUB!
error: symbol ‘grub_term_highlight_color’ not found.
grub rescue>
Nginx + php5-fpm + mysql конфиг. Будет обновляться.
Пример, чтобы сохранить конфиг nginx 1.8, php5-fpm 5.6 и mysql 5.6
Читать далее
Большой размер POST запроса в PHP
Иногда проект вырастает в нечто большее. Первоначальные POST запросы вырастают в размере, а времени менять архитектуру нет. Вот как можно увеличить размер.
Отлов ошибок, error handler в php
Просто заметка, для сохранения кода и ссылок.
Пользовался в движке не на фреймворке вот этим:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
ob_start('fatal_error_handler'); function fatal_error_handler($buffer){ $error=error_get_last(); if($error['type'] == 1){ // type, message, file, line $newBuffer='<html><header><title>Fatal Error </title></header> <style> .error_content{ background: ghostwhite; vertical-align: middle; margin:0 auto; padding:10px; width:50%; } .error_content label{color: red;font-family: Georgia;font-size: 16pt;font-style: italic;} .error_content ul li{ background: none repeat scroll 0 0 FloralWhite; border: 1px solid AliceBlue; display: block; font-family: monospace; padding: 2%; text-align: left; } </style> <body style="text-align: center;"> <div class="error_content"> <label >Fatal Error </label> <ul> <li><b>Line</b> '.$error['line'].'</li> <li><b>Message</b> '.$error['message'].'</li> <li><b>File</b> '.$error['file'].'</li> </ul> <a href="javascript:history.back()"> Back </a> </div> </body></html>'; return $newBuffer; } return $buffer; } |
Взято отсюда: http://stackoverflow.com/questions/277224/how-do-i-catch-a-php-fatal-error
Вставил код и автоматически хочу нажать ctrl+f – это форматирование кода в нетбианс. Далее был бы ctrl+s …
Для более продвинутого отлова ошибок можно заценить на примере Kohana в этой теме на kohanaframework.org.
Создавалась мной, хотя ответ был дан в другой теме намного ранее. Не все было понятно.
В двух словах всевозможные ошибки перенаправляются на обработку в свой класс
1 2 3 4 5 6 7 8 |
//Исключения ловим через класс EHandler set_exception_handler(array('EHandler', 'exception_handler')); //Ошибки ловим через стандартный метод Kohana set_error_handler(array('Kohana', 'error_handler')); //Падение ловим через класс EHandler register_shutdown_function(array('EHandler', 'shutdown_handler')); |
Ну а далее на контроллер.
Переключение чекбоксов с помощью jQuery – инвертировать checkbox
Цитируя сайт, откуда я хотел взять решение:
На днях мне нужно было написать небольшую JavaScript функцию (на jQuery), которая переключала бы группу чекбоксов. Т.е. все отмеченные чекбоксы должны были стать неотмеченными и наоборот.
Действительно это наверное распространенная задача переключать checkbox и она как нельзя лучше решается с помощью jQuery.
Предложенный на том сайте метод у меня почему-то не работал.
1 2 3 4 5 6 7 8 |
function toggleAll() { var allCheckboxes = $("#checkboxes input:checkbox:enabled"); var notChecked = allCheckboxes.not(':checked'); allCheckboxes.removeAttr('checked'); notChecked.attr('checked', 'checked'); } |
Может быть дело в том, что прошло уже 4 года и что-то изменилось в jQuery или в браузерах. Баг был в том, что когда был клик на чекбоксе, то это событие шло впереди события jQuery click и checkbox уже считался отмеченным. Соответсвенно по логике ф-ии сначала выбираются все чекбосы и все не отмеченные. Потом все делаются не отмеченными, а бывшие не отмеченные – отмеченными. Но по клику чекбокс уже считался отмеченным и не попадал в не отмеченные и не отмечался после.
Вот мое работающее решение:
1 2 3 4 5 6 7 8 |
$(".checkboxes input:checkbox:enabled").click(function() { var top = $(this).parent(); var allCheckboxes = top.find("input:checkbox:enabled"); allCheckboxes.removeAttr('checked'); $(this).attr('checked', 'checked'); }); |
В данном случае сначала выбираются все чекбоксы на странице. На них вешается ф-я выполняющаяся по click. По клику на чекбокс (не на div, это важно и это и приводило к багу в примере выше) мы поднимаемся на верхний уровень в div (var top = $(this).parent()). Далее ищем все чекбоксы в текущем div и делаем их не отмеченными, а тот checkbox на который мы нажали – отмеченным.
Мой пример отличается тем, что я делаю отмеченным только нажатый чекбокс. В моем случае их просто всегда было два и надо было переключаться между ними. Чтобы инвертировать все чекбоксы можно дописать ф-ю на основе предыдущего примера:
1 2 3 4 5 6 7 8 9 |
$(".checkboxes input:checkbox:enabled").click(function() { var top = $(this).parent(); var allCheckboxes = top.find("input:checkbox:enabled"); var notChecked = allCheckboxes.not(':checked'); allCheckboxes.removeAttr('checked'); notChecked.attr('checked', 'checked'); }); |
Должно работать. :)
Как я плагин для WordPress 3.3 делал – Импортер с Liveinternet (часть 3)
Исходный код находится в свободном доступе, поэтому выкладываю его. Так же нужно затронуть еще один важный момент. Каждый плагин имеет описание в начале, рассмотрим его тоже.
1 2 3 4 5 6 7 8 9 10 11 12 |
/* Plugin Name: Liru Importer Plugin URI: http://wordpress.org/extend/plugins/liru-importer/ Description: Import posts and comments from Liveinternet. Author: Seyfer (recode from dmpink.ru) Author URI: http://seyferseed.ru/ Version: 0.2 Stable tag: 0.2 License: GPL version 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html */ |
Тут думаю все понятно. Название плагина, адрес плагина для скачивания, описание, автор, сайт автора, версия, стабильная версия, лицензия.
Как я плагин для WordPress 3.3 делал – Импортер с Liveinternet (часть 2)
В процессе создания плагина я ставлю перед собой несколько целей:
- Сделать импорт постов с Liveinternet. Это главное.
- Изучить лучше WordPress, научиться писать плагины под этот движок.
При удачном стечении обстоятельств :) ко мне в руки попал li.ru импортер для старой версии WordPress до 3-й, который не работал в новой версии. Его я использую для своих целей. Приступим…