понедельник, 7 мая 2012 г.

Magento. Как сбросить админский пароль на админку.

Для сброса пароля необходимо сделать следующее.
1. Если вы не помните или не знаете как называется пользователь с админскими правами, то выполните такой запрос:

SELECT * FROM admin_user;
В полученом списке выберите необходимого пользователя где будет указано что это админ.
2. Далее выполняем такой запрос:
UPDATE admin_user SET password=CONCAT(MD5('{соль}{пароль}'), ':{соль}') WHERE username='{пользователь_админ}';
Где заменить {пароль} на новый пароль, {соль} на любую последовательность символов, ну соль, одним словом, а {пользователь_админ} — на того пользователя, которого мы нашли по первому запросу.

Up: Как правильно заметил Max St слово password которое идет после {новый_пароль} это, цитирую :), "строка, которую указали для шифрования при установке magento".

среда, 18 апреля 2012 г.

MySQL. Как сделать дамб БД с хранимыми процедурами, и не только.

Иногда приходится перенести дамп базы данных (MySQL), и перенести его не просто так, а с хранимыми внутри БД процедурами, чтобы приказать mysqldump делать дамп с оными надо выполнить такую вот команду:
mysqldump -uUser -pPass --routines --extended-insert DBName > /dir/file.sql
Для бекапа дампа и одновременного сжатия его можно воспользоваться таким вот способом.
mysqldump -uUser -pPass DBName | gzip > /dir/file.sql.gz
Чтобы развернуть дамп завернутый :) таким вот способом надо сделать вот так:
gunzip < /dir/file.sql.gz | mysql -uUser -pPass DBName
Если вы хотите сделать бекап только одной таблицы, для этого утилите mysqldump надо указать следующий ключ --tables table1 table2, и через пробел все таблицы которые вы хотите задампить. Вот примерчик:
mysqldump -uUser -pPass DBName --tables table1 table2 > /dir/file.sql.gz

пятница, 6 апреля 2012 г.

Magento. Как получить суффикс добавляемый в ЧПУ ссылку

Недавно возникла необходимость получить суффикс ссылки в Magento, это то что добавляется в конец ссылки имитируя физический документ, ну к примеру http://www.example.com/some/seo/link, - это без суффикса, а http://www.example.com/some/seo/link.html - с суффиксом. Это задается в админке, т.е. может меняться пользователем. Получить это в коде можно очень просто.
// Для ссылки на товар
Mage::getStoreConfig('catalog/seo/product_url_suffix');
// Для ссылки на категорию
Mage::getStoreConfig('catalog/seo/category_url_suffix');

четверг, 5 апреля 2012 г.

CSS. Ненумерованный (bullit) список с маркерами-символами

Способ задать, к примеру, в списке в качестве маркера, такое длинное, смачное тире "—" не просто, ну в смысле, просто, но не так как этого хотелось бы. Внизу представлены CSS правила для этого хитрого дела. Разбирать не буду, что для чего, кому что-то не понятно — в комменты, пожалуйста. Я отвечу.
ul.bullit-dash li {
    padding: 0;
    margin: 0;
    list-style-type: none;
    behavior: expression( !this.before
    ? this.before = this.innerHTML = '— ' + this.innerHTML : '' );
    text-indent: -1.24em;
}

ul.bullit-dash li:before {
    content: '\2014\a0';
}

четверг, 9 февраля 2012 г.

SEO. 301 перенаправление всех доменов на основной. Или как отправить домен с Www на домен без Www

Сделать универсальный редирект всех неугодных доменных имен на тот который является одним единственным, и неповторимым вариантом, для того чтобы он набирал "вес" и казался жирнее и вкуснее для всяких там пришлых машин, роботов и пауков, шатающихся по электронным пространствам Интеренетов.

# Включаем режим перенаправления
RewriteEngine On
# Указываем основной каталог
RewriteBase /
# Наше правило проверяющее текущий домен в запросе и если он не mysite.com
RewriteCond %{HTTP_HOST} ^www\.mysite\.com [NC,OR]
RewriteCond %{HTTP_HOST} ^(www\.)mysite\.(?!com$) [NC,OR]
RewriteCond %{HTTP_HOST} ^mysite\.(?!com$) [NC]
# то делаем редирект на mysite.com
RewriteRule (.*) http://mysite.com/$1 [R=301,L]

Таким образом домены вида www.mysite.com, www.mysite.com.ua, www.mysite.us, www.mysite.ru будут отправлены на наш основной домен site.com. Ну разумеется если пользователь любезно будет отправлен DNS серверами по этим именам к вам на сервер :).

HTTP. Коды ответов (Response Codes)


Шпоргалка по HTTP кодам ответов.
1xx: Informational (Информационные).
100 Continue (Продолжать).
101 Switching Protocols (Переключение протоколов).
102 Processing (Идёт обработка).
2xx: Success (Успешно).
200 OK (Хорошо).
201 Created (Создано).
202 Accepted (Принято).
203 Non-Authoritative Information (Информация не авторитетна).
204 No Content (Нет содержимого).
205 Reset Content (Сбросить содержимое).
206 Partial Content (Частичное содержимое).
207 Multi-Status (Многостатусный).
226 IM Used (IM использовано).
3xx: Redirection (Перенаправление).
300 Multiple Choices (Множество выборов).
301 Moved Permanently (Перемещено окончательно).
302 Found (Найдено).
303 See Other (Смотреть другое).
304 Not Modified (Не изменялось).
305 Use Proxy (Использовать прокси).
306 (зарезервировано).
307 Temporary Redirect (Временное перенаправление).
4xx: Client Error (Ошибка клиента).
400 Bad Request (Плохой запрос).
401 Unauthorized (Неавторизован).
402 Payment Required (Необходима оплата).
403 Forbidden (Запрещено).
404 Not Found (Не найдено).
405 Method Not Allowed (Метод не поддерживается).
406 Not Acceptable (Не приемлемо).
407 Proxy Authentication Required (Необходима аутентификация прокси).
408 Request Timeout (Время ожидания истекло).
409 Conflict (Конфликт).
410 Gone (Удалён).
411 Length Required (Необходима длина).
412 Precondition Failed (Условие «ложно»).
413 Request Entity Too Large (Размер запроса слишком велик).
414 Request-URI Too Long (Запрашиваемый URI слишком длинный).
415 Unsupported Media Type (Неподдерживаемый тип данных).
416 Requested Range Not Satisfiable (Запрашиваемый диапазон не достижим).
417 Expectation Failed (Ожидаемое не приемлемо).
418 I'm a teapot (Я - чайник).
422 Unprocessable Entity (Необрабатываемый экземпляр).
423 Locked (Заблокировано).
424 Failed Dependency (Невыполненная зависимость).
425 Unordered Collection (Неупорядоченный набор).
426 Upgrade Required (Необходимо обновление).
449 Retry With (Повторить с...).
456 Unrecoverable Error (Некорректируемая ошибка...).
5xx: Server Error (Ошибка сервера).
500 Internal Server Error (Внутренняя ошибка сервера).
501 Not Implemented (Не реализовано).
502 Bad Gateway (Плохой шлюз).
503 Service Unavailable (Сервис недоступен).
504 Gateway Timeout (Шлюз не отвечает).
505 HTTP Version Not Supported (Версия HTTP не поддерживается).
506 Variant Also Negotiates (Вариант тоже согласован).
507 Insufficient Storage (Переполнение хранилища).
509 Bandwidth Limit Exceeded (Исчерпана пропускная ширина канала).
510 Not Extended (Не расширено).

понедельник, 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;