четверг, 9 февраля 2012 г.
HTTP. Коды ответов (Response Codes)
понедельник, 30 января 2012 г.
Magento. Очистка магазина от тестовых данных.
Порою приходиться переносить проект с девелопмент окружения в продакшен :) (не всегда конечно проект доживает до такого). Так вот чтобы без напряжения в заднем проходе совершить это действие. Даю несколько SQL команд, которые необходимо выполнить, хоть из phpMyAdmin, хоть из консоли, в общем так как вам будет удобно.
-- Clear Magento Test Data TRUNCATE TABLE sales_flat_order; TRUNCATE TABLE sales_order_tax; TRUNCATE TABLE downloadable_link_purchased; TRUNCATE TABLE sales_bestsellers_aggregated_daily; TRUNCATE TABLE sales_bestsellers_aggregated_monthly; TRUNCATE TABLE sales_bestsellers_aggregated_yearly; TRUNCATE TABLE catalogsearch_query; TRUNCATE TABLE customer_entity; TRUNCATE TABLE tag;
понедельник, 23 января 2012 г.
jQuery. Каркас для плагина.
(function () {
/**
* @var Object Default plugin options
*/
var defaultOptions = {
'param1' : 'foo',
'param2' : 'bar'
};
/**
* @param current jQuery element
*/
var $this = null;
/**
* @param all plugin methods
*/
var methods = {
init: function () {
var settings = $.extend(defaultOptions, options);
return this.each(function() {
$this = $(this);
// Write code here
});
}
};
/**
* Plugin constructor
* @param method
*/
jQuery.fn.myNewCoolPlugin = function (method) {
if (methods[method]) {
return methods[ method ].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || ! method) {
return methods.init.apply(this, arguments);
} else {
jQuery.error('Method ' + method + ' does not exist on jQuery.tooltip');
}
};
})(jQuery);
Важный совет: каждый новый плагин должен писаться в своем замыкании.
четверг, 19 января 2012 г.
SEO. Нах..й SEO.
Да простит меня общественность, за "яркий" заголовок, но то что в нынешнее время называют SEO-специалистом, сродни средневековым алхимикам, которые что-то варили непонимая что но понимая зачем, и конечно же у них не получалось то что они задумали. А "выстрелит" или не "выстрелит", падало на долю случая. Так и все эти сеошники, шарлатаны и надменные нахалы. Возомнили себя настоящими спецами без которых и интернета наверное не существовало бы, даже специализированные компании создают. И ничего удивительного, алхимики в свое время даже к королям во двор попадали так сказать алхимики при дворе. Но как мы видим алхимия дала много чего человеку, и еще больше ничего не дала, а главное не дала того, за ради чего была задумана — золото и прочие драг. металлы, и по прежнему надо было приложить огромное количество труда для добычи этого ценного материала. Так и с SEO оптимизаций, эти "мастера" заявляют и доказывают что вот она 10ка а вот тут будет ваш проект после того как я его обработаю. Ага... уже, прям сразу. Люди не спешите платить деньги мошенникам.
А теперь давайте объективно рассмотрим ситуацию. Хотя бы один из сеошников знает алгоритмы по которым работает тот или иной робот или паук, я думаю что нет. Ну вот и как человек, который не знает как работает инструмент его заработка, может предлагать платные услуги? Видимо никак, но тем не менее, сейчас сплошь и рядом одни сеошники. Значит есть люди которые их вскармливают своими кровными.
Но зачем, ведь поднять в топ можно абсолютно любой сайт не прибегая с услугам чудо сеошников. Почему? Все просто. Изначально роботы искали информацию наиболее подходящую для человека, полезную так сказать. А сеошники что вам говорят "роботы будут балдеть от вашего сайта... бл..ть", но мне не роботы нужны на сайте, а живые люди, клиенты. Как говорится, зри в корень, сайт ты делаешь для людей? Вот и оптимизируй его для людей, ведь сейчас, наверняка пытаются создавать роботов, которые моделируют поведение человека, и если сейчас робот без труда (хотя труд и робот понятия не совместимые, но это тема для отдельной статьи) может управлять автомобилем в городе, то я думаю и с задачей "заценить" содержимое сайта с точки зрения человека ему под силу, пускай и не на все сто. А под оптимизацией я имею ввиду не замудренный бред пьяного алхимика-сеошника, а просто-на-просто пиши грамотно пиши по делу, текст должен нести связный смысл, содержать иллюстрации и пр. О, вижу бежит из далека обдолбанный сеошник и брызжет слюной, мол, ну мы это же и делаем, нет уважаемый ты как бы намекаешь, что надо бы так и так сделать, при этом ты обращаешь внимание на семантику самого текста, скажу честно это важно, но с поднятием сайта в топ не связано, это стало просто побочным эффектом, но сейчас, как по мне робот вполне может обойтись и без опорных семантических точек, типа заголовок или цитат. И самое гавное, сеошник, ты этого не делаешь, а только говоришь. А кто текст грамотно напишет? Сделает из него грамотный логически связанный рассказ. Явно не ты.
Едем дальше. Семантика. Место которым сеошник будет отмахиваться от аргументов против него, но позвольте, заголовки, абзацы и пр. появились до того как родился самый первый поисковик. Т.е. это сделано было явно не для робота, робот же в свою очередь в силу своей не способности. Разбить текст на логические участки, нуждался в такой разметке. К чему я веду этот яростный монолог, да к тому что роботы поисковые сейчас "некисло", могут "въехать" в тематику и сущность вашего сайта. Понять куда ведут ссылки с ваших страниц и пр. моменты касаемые "всплытия" вашего сайта наверх. То есть чтобы сайт поднялся высоко его должны высоко оценить люди. Роботы в плане индексирования стали очень похожими на человека, а так же чего сами не "доварят" своими "котелками" то пытаются анализировать статистически. Ну вот и я в ту же степь: обсуждать как работают поисковики, а это по сути гадание на кофейной гуще.
Подвожу черту — делайте качественные, быстрые, наполненные интересным содержимым ресурсы и посетитель обязательно это оценит и вернется к вас с друзьями, а там и роботы за ними подтянутся. И не надо думать, что это вам не под силу. Под силу еще как!
P.S.: Прошу прощения за резкость в статье, я писал ее под впечатлении от не очень приятного диалога и отложил в черновики, теперь взявшись дописывать, хотел подкорректировать, но потом решил оставить. И вот дописал до точки, так сказать, и публикую...
вторник, 3 января 2012 г.
MySQL. Структура таблицы
SHOW DATABASES; - список баз данных
SHOW TABLES [FROM db_name]; - список таблиц в базе
SHOW COLUMNS FROM таблица [FROM db_name]; - список столбцов в таблице
SHOW CREATE TABLE table_name; - показать структуру таблицы в формате "CREATE TABLE"
SHOW INDEX FROM tbl_name; - список индексов
SHOW GRANTS FOR user [FROM db_name]; - привилегии для пользователя.
SHOW VARIABLES; - значения системных переменных
SHOW [FULL] PROCESSLIST; - статистика по mysqld процессам
SHOW STATUS; - общая статистика
SHOW TABLE STATUS [FROM db_name]; - статистика по всем таблицам в базе
Подсмотрел тут: www.opennet.ru
вторник, 27 декабря 2011 г.
Magento. Редиректы. Суровая правда.
Небольшие пояснения по этому поводу.
Существует несколько методов для редиректа. Это редирект на определенный URL например http://www.example.com/test/foo. И редирект с параметрами, но в этом случае необходимо использовать путь распознаваемый роутером (наверняка вы встречали в коде контроллеров редиректы с такими путями */* или */index и пр.).
Код применим в методах контроллеров:
Первый способ.
$this->_redirectUrl($url);Второй способ.
$params = array ("arg1" => "foo", "arg2" => "bar");
$this->_redirect($path, $params);
Надо заметить, если вы включили в админке безопасные ссылки то для редиректа в админ-панели, надо сгенерировать безопасную ссылку следующим способом:Оговорюсь сразу, тут надо применить костыль, т.к. ссылку то мы получим, но генератор вырежет из нее часть ссылающуюся на админку. Я не нашел элегантного способа обойти это, поэтому не привожу пример костыля, ибо считаю что код-костыль не имеет право на публикацию :).
// Может принимать значения и по маске роутера, например */*
$path = 'admin/system_convert_profile/run' // Этот путь, к примеру, на запуск профиля импорта/экспорта
$params = array ("id" => 8);
$url = Mage::helper('adminhtml')->getUrl($path, $params);
// Дальше код-костыль которые возвращает утеряное
$this->_redirectUrl($url);
Чтобы установить редирект не в контроллере надо обратиться к объекту Response.// Для первого способа, с указанием URL
$url = "http://www.example.com/";
Mage::app()->getFrontController()->getResponse()->setRedirect($url);
// Для второго способа, с указанием пути (в формате роутера магенты и параметров)
$path = "news/archive";
$params = array ("arg1" => "foo", "arg2" => "bar");
Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl($path, $params));
пятница, 2 декабря 2011 г.
Image Magic - граница и квадратный ресайз с обрезкой
convert -strip -interlace Plane -quality 90 resource.jpg -resize 15 -gravity center -crop 10x10+0+0 +repage destination.jpgНадо добавть границу к картинке? Не проблема:
convert resource.jpg -bordercolor red -border 1 destination.jpg