Morozov&Pimnev blog

Полезные решения, шпаргалки и примеры по html, css, js, jQuery, MySQL, PHP, HostCMS, ssh.

Вывод произвольного XSL шаблона из XML данных -> Xsl_Processor HostCMS v6

<?php
$oShop = Core_Entity::factory('Shop', 123);

$sXml = $oShop->getXml();
$xslName = 'ПроизвольныйШаблон';

$return = Xsl_Processor::instance()
	->xml($sXml)
	->xsl(Core_Entity::factory('Xsl')->getByName($xslName))
	->process();

echo trim($return);

?>

...

Читать дальше →

HostCMS, xml, xsl, Xsl_Processor


Изменение пароля для root в MySQL на Debian

Получаем пароль:

cat /root/.my.cnf

Подключаемся к MySQL:

mysql -uLOGIN -pPASSWORD

Выбираем базу mysql:

mysql > use mysql;

Обновляем пароль root:

mysql > UPDATE user SET password = PASSWORD("NEW_PASSWORD") WHERE User = 'root';

Обновляем привилегии и завершаем работу с сервером MySQL:

mysql > flush privileges;
mysql > quit;

...

Читать дальше →

mysql, ssh


Изменение пароля пользователя web на Debian через SSH

passwd web

...

Читать дальше →


Удаление значений несуществующих товаров на HostCMS v6

DELETE `property_value_strings`
FROM `property_value_strings`
LEFT JOIN `shop_items` ON `property_value_strings`.`entity_id` = `shop_items`.`id`
WHERE `shop_items`.`id` IS NULL

DELETE `shop_warehouse_items`
FROM `shop_warehouse_items`
LEFT JOIN `shop_items` ON `shop_warehouse_items`.`shop_item_id` = `shop_items`.`id` 
WHERE `shop_items`.`id` IS NULL

SELECT `shop_item_prices`.`id`, `shop_items`.`id`
FROM `shop_item_prices`
LEFT JOIN `shop_items` ON `shop_item_prices`.`shop_item_id` = `shop_items`.`id`
WHERE `shop_items`.`id` IS NULL

...

Читать дальше →

sql, mysql, hostcms6


Хук Core_Mail в HostCMS v6.2.4+

Созадем файл например observer.php в папке modules/core/mail/ со следующим содержанием:

<?php
defined('HOSTCMS') || exit('HostCMS: access denied.');

class Core_Mail_Observer
{
	static public function onBeforeSend($Core_Mail)
	{
		$from = 'noreply@site.ru'; // От кого
		$fromName = 'Интернет-магазин'; // Имя отправителя

		$Core_Mail
    			->from($from)
    			->senderName($fromName)
    			->header('Return-Path', $from)
		;
	}
}
?>

Добавляем наблюдателя в bootstrap.php:

Core_Event::attach('Core_Mail.onBeforeSend', array('Core_Mail_Observer', 'onBeforeSend'));

...

Читать дальше →

core_event, хуки, HostCMS


SQL запрос - выбор товаров из группы и подгруппы на HostCMS v6+

SELECT `shop_items`.* 
FROM `shop_items`
JOIN `shop_groups` ON `shop_groups``.id` = `shop_items`.`shop_group_id`
	AND (`shop_groups`.`parent_id` IN (1,2) OR `shop_groups`.`id` IN (1,2))
WHERE `shop_items`.`shortcut_id` = 0 AND `shop_items`.`modification_id` = 0

...

Читать дальше →

HostCMS, sql, mysql


Вырезаем и сохраняем часть изображения с помощью библиотеки GD и функции imagecopy

<?php
	$src = '/home/www/image.jpg'; // путь с исходному изображению
	$src_w = 200; // ширина вырезамемой части исходного изображения
	$src_h = 200; // выста вырезамемой части исходного изображения

	// если нам нужно вырезать часть изображения то всегда координаты для результирующего изображения x:0 и y:0
	$dst_x = 0; // x-координата результирующего изображения
	$dst_y = 0; // y-координата результирующего изображения

	$new_src = '/home/www/new_image.jpg';  // путь к результирующему изображению

	// Создание изображения
	$src_im = imagecreatefromjpeg($src);

	if ($src_im)
	{
		// Создание результирующего изображения с заданной шириной и высотой черного цвета, в нашем случае равно ширине и высоте вырезаемой части
		$dst_im = imagecreatetruecolor($src_w, $src_h);

		// кординаты части исходного изображения откуда вырезаем, например по середине, все координаты считаются с верхнего левого угла
		$src_x = 300; // ширина исходного изображения 800, делим пополам и вычитаем ширину результирующего изображения 200 делимое тоже пополам (800/2 - 200/2 = 300)
		$src_y = 100; // высота исходного изображения 400, делим пополам и вычитаем высоту результирующего изображения 200 делимое тоже пополам (400/2 - 200/2 = 100)

		// Копирование части изображения
		imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h);

		// Создаем изображении и сохраняем по указанному пути с качеством 100 (диапазон качества может быть от 0 до 100)
		imagejpeg($dst_im, $new_src, 100);

		// На всякий случай изменяем режим доступа к файлу
		chmod($new_src, 0644);

		// освобождаем память
		imagedestroy($dst_im);
	}

?>

...

Читать дальше →

php, GD


Поиск дублей в MySQL

Например поиск дублирующих путей:

SELECT COUNT(`path`) AS `count`, `id`, `shop_group_id`, `shop_producer_id`, `name`, `active`, `path`, `deleted` FROM `shop_items` WHERE `shop_id` = 1 AND `modification_id` = 0 AND `shortcut_id` = 0 GROUP BY `path` HAVING COUNT(`path`) > 1

...

Читать дальше →

mysql, sql


OpenOffice Calc: создание артикула и родительского артикула товарам с помощью функции RANDBETWEEN()

Во втором столбце создаем произвольно-рандомный артикул, т.к. у меня в ячейке B2 есть какой-то параметр для основного товара, то по нему будет понятно, что это строчка с основным товаром и она не должна быть пустой, для остальных строк мы не создаем артикулы:

IF(B2="";"";RANDBETWEEN(1000000;2000000))

В третий стобец нужно скопировать артикул основного товара

IF(C3="";IF(C2="";D2;C2);"")

...

Читать дальше →

openoffice, calc


Удаление пустых строк между текстом в файле с помощью Sublime Text

Включаем "Regular Expression (Alt + R)"

\n$

...

Читать дальше →

sublime text