четверг, 24 января 2013 г.

jquery javascript Закрытие по клику вне элемента

Для закрытия по клику вне элемента надо повесить обработчик на $(document)

.menu_item_container - элемент, клик вне которого перехватываем

$(document).on('click.mWindow', function(e){
  if ($(e.target).closest('.menu_item_container').length == 0) {
   $('.menu_item_container').hide(); // тут вставляем любой наш обработчик
  }
});

суббота, 19 января 2013 г.

json на php и javacript jquery

Самый простой способ отсылки структурированных данных с php скрипта на javascript это json. Сначала надо закодировать данные на стороне сервера:

$data = array('param1' => $param1, 'param2' => $param2);
echo json_encode($data);

 
Потом принять данные на стороне клиента:
С помощью ajaxForm например

$('.get_paid_form').ajaxForm({
   success: function(response) {

    var json = $.parseJSON(response);

    alert('param1 = ' + json.param1);
    alert('param2 = ' + json.param2);


  }
});

среда, 16 января 2013 г.

Unable to execute UPDATE statement. [wrapped: SQLSTATE[HY000]: General error: 1030 Got error -1 from storage engine]

После восстановления базы данных забыл поменять
innodb_force_recovery = 1
на
innodb_force_recovery = 0
Из за чего база данных фактически несколько дней работала только в режиме чтения.

понедельник, 14 января 2013 г.

php. Доступ к сессии джумлы из своего скрипта

нашел на http://www.subclosure.com

В начале скрипта надо прописать

define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);
define('JPATH_BASE', dirname(__FILE__));

require_once(JPATH_BASE .DS.'includes'.DS.'defines.php');
require_once(JPATH_BASE .DS.'includes'.DS.'framework.php');

$mainframe =&JFactory::getApplication('site');
$mainframe->initialise();

$session =&JFactory::getSession();
$user = $session->get('user');


В JPATH_BASE указываем путь до корневой директории джумлы

суббота, 12 января 2013 г.

Поиск файлов в linux консоли

Поиск файлов по содержимому:

grep "текст" ./* -r
 
Поиск файлов по имени:

find / -name 'file_name'
 
Поиск файлов по имени и только текстовые:

find / -type f -name 'file_name'

четверг, 10 января 2013 г.

Вставка кнопки paypal "buy now" с изменяемыми параметрами

Вставка кнопки paypal "buy now" с изменяемыми параметрами не сильно отличается от вставки обычной кнопки. Надо зайти "Merchant Services", потом выбрать "Create payment buttons for your website" и в Common payment buttons: выбрать "buy now".

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

По умолчанию paypal защищает кнопку от модификации, по этому на втором шаге надо убрать галочку "Save button at PayPal".

После того как будет сгенерирован код кнопки и показана форма с абракадаброй в параметрах надо нажать "Remove code protection" в верхнм правом углу формы. После этого параметры будут декодированы и вы сможете их изменять по своему усмотрению.

mysql. start: Job failed to start

Перестал  запускаться mysql на сервере, после

/etc/init.d/mysql restart

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

service mysql restart

Просто сказал, что

start: Job failed to start

Тогда я добавил в /etc/mysql/my.cnf вывод логов:

[mysqld_safe]
log-error=/var/log/mysql/error.log

 
[mysqld]
log-error=/var/log/mysql/error.log


После очередной попытки перезагрузить mysql в логах появились драгоценные записи:

InnoDB: Database page corruption on disk or a failed

В итоге решилось все добавлением в /etc/mysql/my.cnf строчки

[mysqld]
innodb_force_recovery = 1


После этого mysql успешно поднялся.

После восстановления базы параметр надо поставить обратно в 0, иначе будет невозможно записывать изменения в таблицы.

воскресенье, 6 января 2013 г.

Почему я не люблю заниматься поддержкой сайтов.

Часто вместо создания сайтов приходится заниматься поддержкой. Исправлением чего то неработающего, или доработкой старого. Почему я не люблю этим заниматься? Да потому что от хороших сайтов разработчики не отказываются и на поддержку приходят сайты преимущественно имеющие существенные косяки в коде, или архитектуре. Я себя чувствую человеком, которому показывают на какашку и говорят: "У нас была раньше пирамидка, но почему-то сломалась, не могли бы вы починить? Сделать то надо совсем не много." И приходится, либо лепить из этой какашки пирамидку, пока она снова не развалится и брать большие деньги (не думаю, что найдутся люди, которые любят лепить из какашек пирамидки), либо отказываться. При чём сопровождается всё объяснениями заказчику, почему так всё дорого и медленно. И заказчик то, как правило виноват обычно только в том, что ему попался не квалифицированный программист и я с пониманием отношусь к отсутствию желания платить два раза за одно и тоже.