Код - пример #1
| |
1 2 3 4 5 6 7 |
$date = /* timestamp из БД */ ; $d = time() - $date; if ($d < 60) echo $d . ' сек. назад'; elseif ($d < 3600) echo round($d / 60) . ' мин. назад'; elseif ($d < 86400) echo round($d / 3600) . ' ч. назад'; else echo round($d / 86400) . ' дн. назад'; |
четверг, 5 июля 2012 г.
Вывод даты словами PHP
четверг, 23 февраля 2012 г.
Вешаем Fancybox на кнопку button
С помощью плагина fancybox можно делать замечательные галереи и попапы. В документации есть примеры. Но как повесить его на кнопку?
Вот так:
Больше примеров здесь
Код - пример #1 | |
1 |
<form action="/ACTION/FastFindObj" method="post"> <input name="fastfind" class="fastfind" value="3463" type="text"> <input name="weiter" type="submit"> </form> |
И используем:
Код - пример #1 | |
1 |
$("form").fancybox(); $("input").fancybox(); $("input[name='weiter']").fancybox(); |
пятница, 30 декабря 2011 г.
Бесплатная CMS Open Real Estate на Yii
Недавно, мы выпустили бесплатную CMS Open Real Estate на Yii. Открытый исходный код, open source. Это мой первый опыт, работы над open source проектом такого уровня.
В качестве системы контроля версий использовали Mercurial hg. По моему это самое лучшее решение, до этого пробовал CVS, SVN, GIT.
И самое главное набрался опыта работы с Yii framework и планирую продолжить работу с ним. Постепенно, понимаешь, насколько в нем все грамотно реализовано и сколько много труда в него вложено.
В качестве системы контроля версий использовали Mercurial hg. По моему это самое лучшее решение, до этого пробовал CVS, SVN, GIT.
И самое главное набрался опыта работы с Yii framework и планирую продолжить работу с ним. Постепенно, понимаешь, насколько в нем все грамотно реализовано и сколько много труда в него вложено.
пятница, 21 октября 2011 г.
Как в Denwer импортировать через консоль дамп базы mysql
Поражаюсь какой у блогера тупой WYSWIG приходится раставлять тег br руками для переносов, потому что если сделать перенос по умолчанию какой есть в настройках, получается УЖАС.
Иногда приходится импортировать большие дампы sql, через phpmyadmin делать это проблематично, т.к. по умолчанию стоит ограничение на файлы не больше 2Мб. Сегодня надо было импортировать 90Мб, через консоль импортировалось без проблем.
Win+R, cmd, Enter
p:
cd P:\usr\local\mysql5\bin\
mysql_run_to_import_dumps.exe
mysql> \r base_name
mysql> \. dump_file
где p - виртуальный диск, создаваемый денвером
base_name - имя базы
dump_file - файл с дампом базы (включая путь)
Найдено здесь )
Иногда приходится импортировать большие дампы sql, через phpmyadmin делать это проблематично, т.к. по умолчанию стоит ограничение на файлы не больше 2Мб. Сегодня надо было импортировать 90Мб, через консоль импортировалось без проблем.
Win+R, cmd, Enter
p:
cd P:\usr\local\mysql5\bin\
mysql_run_to_import_dumps.exe
mysql> \r base_name
mysql> \. dump_file
где p - виртуальный диск, создаваемый денвером
base_name - имя базы
dump_file - файл с дампом базы (включая путь)
Найдено здесь )
пятница, 14 октября 2011 г.
Как получить выбранные элементы checkbox в массив jQuery
var selectedItems = new Array();
$("input[@name='itemSelect[]']:checked").each(function() {selectedItems.push($(this).val());});
if (selectedItems .length == 0) {
alert("Please select item(s) to delete.");
} else {
$.ajax({
type: "POST",
url: "/ajax_do_something.php",
data: "items=" + selectedItems.join('|'),
dataType: "text",
success: function (request) {
document.location.reload();
},
error: function(request,error){
alert('Error deleting item(s), try again later.');
}
})
}
Нашел здесь
среда, 3 августа 2011 г.
Паттерн Одиночка - Singleton Pattern в PHP
Код - пример #1 | |
1 |
<?php // PHP5 class Logger { static private $instance = NULL; /* Возвращаем ссылку на одиночку */ static function getInstance() { /* Если объект еще не создан, создаем */ if (self::$instance == NULL) { self::$instance = new Logger(); } return self::$instance; } /* Запрещаем прямое создание */ private function __construct() { } /* Запрещаем клонирование */ private function __clone() { } } |
вторник, 31 мая 2011 г.
Абстрактная фабрика - (Abstract Factory)
Список паттернов
Список паттернов
Код - пример #1 | |
1 |
<?php /* Абстрактная фабрика - (Abstract Factory) Фабрика должна возвращать объекты. Но так как она абстрактная, то изначально нужно описать абстрактный класс фабрики, и абстрактные объекты которые она будет производить. Дале мы описываем реализации классов фабрик на основе абстрактной фабрики и реализации класса объектов которые она производит. Тем самым у нас есть различные варианты фабрик и объектов с одинковыми интерфейсами, что может быть удобно. Далее привожу код. Есть абстрактная фабрика машин. Абстрактный класс машин. Создаем классы фабрики "ford" и "vaz" и классы ford_machine и vaz_machine. Фабрики будут производить объект "машины", но свойство "начинака" этих "машин" будет отличаться, прям как в реальной жизни. */ abstract class abstract_machine_factory { function generate_sedan() { return new machine('sedan'); } function generate_universal() { return new machine('universal'); } function generate_hatchback() { return new machine('hatchback'); } } abstract class abstract_machine { protected $_param; function __construct($type = 'sedan') { $this->_param = array(); $this->_param['type'] = $type; } function run() { echo 'brrrrrrrrrrrrrr ...'; } function get_all_param() { return $this->_param; } } class vaz_machine extends abstract_machine { function __construct($type = 'sedan') { parent::__construct($type); $this->_param['firm'] = 'vaz'; } function run() { echo 'tr tr pr tr tr pr ...'; } } class vaz_factory extends abstract_machine_factory { function generate_sedan() { return new vaz_machine('vedro'); } function generate_universal() { return new vaz_machine('taz'); } function generate_hatchback() { return new vaz_machine('korito'); } } class ford_machine extends abstract_machine { function __construct($type = 'sedan') { parent::__construct($type); $this->_param['firm'] = 'ford'; } function run() { echo 'rrrrrrrrrrrrrrrrr ...'; } } class ford_factory extends abstract_machine_factory { function generate_sedan() { return new ford_machine('sedan', 'ford'); } function generate_universal() { return new ford_machine('universal'); } function generate_hatchback() { return new ford_machine('hatchback'); } } /* Фабрика ford_factory производит машины */ $ford_factory = new ford_factory(); $ford_machine = $ford_factory->generate_sedan(); deb($ford_machine->get_all_param()); deb($ford_machine->run()); /* Фабрика vaz_factory производит машины, функции одинаковые но результат (объекты) разные */ $vaz_factory = new vaz_factory(); $vaz_machine = $vaz_factory->generate_sedan(); deb($vaz_machine->get_all_param()); deb($vaz_machine->run()); /* В результате мы видим на экране: Array ( [type] => sedan [firm] => ford ) rrrrrrrrrrrrrrrrr ... Array ( [type] => vedro [firm] => vaz ) tr tr pr tr tr pr ... */ function deb($mVar) { echo("<PRE>"); print_r($mVar); echo("</PRE>"); } |
Список паттернов
Подписаться на:
Сообщения (Atom)