Василий Столейков

Василий Столейков

С нами с 19 декабря 2012; Место в рейтинге пользователей: #23
Володя
30 июня 2017, 21:25
4
+2
как недавно выяснилось есть волшебный параметр ra
добавь его, а фон убери, вот так
"catalog":{"w":215,"h":245,"q":65,"zc":"0","bg":"","ra":1}
Andrei D.
28 июня 2017, 15:23
1
+2
личный кабинет дорабатывается

TokBox php SDK – генерация сессий и токенов
Кастомные таблицы для самих звонков и участников, контроллеры для смены статусов, пересчета заработка и оставшихся средств и т.д.
Текстовый чат отдельно от видео
Вывод посредством React.js и процессоров getdata & etc
Ну и вся логика вызова, приёма звонка, контроль платной сессии – всё с нуля
Володя
24 июня 2017, 18:22
1
-2
да вообще порядок не должен иметь никакого значения, просто описал по порядку и все…
главное указать у опции связь/зависимость.
Василий Наумкин
20 июня 2017, 14:27
1
+4
Из 2х инпутов нельзя отправить одну строковую переменную. Но можно
— отправить из 2х инпутов 2 переменные на произвольную страницу
— запустить там сниппет, который получит эти 2е переменные
— склеит их в одну и перешлёт юзера на страницу поиска с ней
$modx->sendRedirect('/search?query=' . $query);
Василий Stepanov
04 июня 2017, 03:50
1
0
Добрый день!
Например, miniShop2 + mspSberbank, если вы ИП. Если физ. лицо, то вместо mspSberbank используйте ЯД mspYandexMoney.
t.g
t.g
03 июня 2017, 18:30
1
+1
Не уверен решит ли это вашу задачу, но можно попробовать церез css это реализовать.
css-tricks.com/almanac/properties/c/columns/
div {
    -webkit-column-count: 3; /* Chrome, Safari, Opera */
    -moz-column-count: 3; /* Firefox */
    column-count: 3;
}
Василий Наумкин
28 мая 2017, 18:44
1
+1
А это нужно не у меня спрашивать, а у автора библиотеки Munee, которая используется в MinifyX.

Обновлений там давно нет, последний Bootstrap она не собирает. Так что да, лично я от MinifyX отказался и всем советую осваивать npm + gulp (или аналоги).
Василий Stepanov
24 мая 2017, 12:10
1
+1
Проблема № 1 При загрузке изображения с расширением .png, прозрачный фон заменяется на черный. решена!
При ресемплировании выключаем режим сопряжения цветов и включаем сохранение альфаканала:
//Отключаем режим сопряжения цветов
imagealphablending($image_p, false);
//Включаем сохранение альфа канала
imagesavealpha($image_p, true);
И в зависимости от расширения исходного файла сохраняем изображение:
// сохраняем изображение в папку
if ($typeFile == 'image/jpeg')
imagejpeg($image_p, $path.$NewNameFile, 100);
elseif ($typeFile == 'image/png')
imagepng($image_p, $path.$NewNameFile);
else
return false;
Чтобы ввесь код сюда не копировать, замените условие if ($width > $max_width) {...} на следующее:
if ($width > $max_width) {
	// получение новых размеров
	$ratio = $width/$max_width;
	$new_width = round($width/$ratio);
	$new_height = round($height/$ratio);
                    
	// ресэмплирование
	$image_p = imagecreatetruecolor($new_width, $new_height);

	//Отключаем режим сопряжения цветов
	imagealphablending($image_p, false);
	//Включаем сохранение альфа канала
	imagesavealpha($image_p, true);
                    
	imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
                    
	// сохраняем изображение в папку
	if ($typeFile == 'image/jpeg')
	imagejpeg($image_p, $path.$NewNameFile, 100);
	elseif ($typeFile == 'image/png')
	imagepng($image_p, $path.$NewNameFile);
	else
	return false;
                    
	// записываем в поле photo
	$profile->set('photo', $folder.$NewNameFile);
	$profile->save();
}
Максим Кузнецов
22 мая 2017, 13:34
1
+1
core/components/minishop2/model/minishop2/msorderhandler.class.php

//строка 221
$value = substr(preg_replace('/[^-+0-9]/iu', '', $value), 0, 15);

Вы можете переопределить нужную логику, создав кастомный класс оформления заказа, увеличив максимально-допустимую длину телефона.
Максим Кузнецов
19 мая 2017, 14:40
1
+2
Да с кастомизацией есть небольшой простой в дополнениях, согласен — отчасти, пожалуй, потому что для менеджеров все-таки лучше отдельную админку пилить.)

Если коротко, решений для кастомизации админки и готовых модулей, по-сути, три:

Настройка форм. Тут все понятно, да и написано об этом уже достаточно — выбираем группу пользователей и прячем/переименовываем поля ресурса.
Основной их минус в том, что многие дополнения Василия Наумкина не поддерживают работу с ними и в целом редактировать можно только форму создания документов.

Плагины, расширяющие/заменяющие те или иные элементы дополнения. Можно как «вклиниваться» в логику работы дополнения (если у него есть такая возможность и нужное событие), так и «скрывать» неугодные элементы через ext.js примерно так:

<?php
	switch ($modx->event->name) {
		case "OnDocFormPrerender":
			$modx->controller->addHtml("
				<script type='text/javascript'>
					//ищем нужную вкладку по айди.

					//Например свойства товаров minishop'a: 
					Ext.ComponentMgr.onAvailable('minishop2-product-tab', function() {					
						this.on('afterrender', function() {
							//При помощи методов ext.js ищем нужный элемент и работаем с ним

							//Например, найдем по лейблу поле "цена" и спрячем ее из отображения
							//В примере ищем по лейблу, т.к. легче найти контейнер-родитель (если искать по айди input'a - то главный контейнер-родитель может находиться на разном отдалении
							Ext.get(Ext.query('label[for=\"modx-resource-price\"]')[0]['parentElement']).setStyle('display', 'none');
						});
					});
				</script>
			");
			
			break;
	}

Таким способом можно прятать определенные поля для менеджеров, которые недоступны для редактирования из Настройки форм.
Нюансы этого способа: пусть и небольшая, но лишняя нагрузка. Также во многих модулях не получится полностью убрать элемент способом .remove(), т.к. на примере тех же «свойств» товаров, при перещелкивании табов, в таком случае формы будут отрисовываться заново.

Подключить свой css-файл в админку и через него и !important дописывать нужные свойства к любому модулю. Плюс в том, что не придется лезть в ядро дополнения, если оно не поддерживает предыдущие методы.

<?php
	if ($modx->event->name != 'OnManagerPageInit') return;
	$modx->regClientCSS('/design/admin.css');

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