Александр Туниеков

Александр Туниеков

С нами с 19 декабря 2015; Место в рейтинге пользователей: #15
Александр Туниеков
21 марта 2024, 19:47
+1
Клиент сегодня озадачил. Пришлось побороть проблему.
Создаем веб приложение и прописываем в google консоле uri
ваш_сайт/manager/?a=home&namespace=googlesheets
Александр Туниеков
20 марта 2024, 19:11
0
Блин. Насчет того, что точно не буду использовать vesp/core 4 кажется погорячился. Проблема в том, что ресурсов на собственный аналог не хватает :-(. Чтоб предложить более менее полноценное приложение надо потратить много времени… В принципе можно было бы перейти на vesp, но главная проблема отсутствие модульности. У нас сайт с, условно, сотней модулей. Пересоберать весь сайт при изменении одного модуля или добавлении нового желания нет.
У меня, при использовании gtsAPI, на странице вызывается сниппет, который подгружает однофайловый модуль на vue. Который весит пару килобайт. Соберается за секунды и никак не влияет на другие модули. Нужно, чтоб модуль можно было отдельно редактировать и соберать. Чтоб модуль отдельно подгружался при использовании на странице и чтоб при загрузке какой-либо страницы не загружались все сто модулей.
Пример модуля ExcelCalc
Александр Туниеков
20 марта 2024, 16:31
0
Нда… вот бы была такая система год назад… Сейчас уже активно пишу на более простом самописном аналоге с primeVue. Все проще и PSR-7 не поддерживает, но зато все мне понятно. Так что для меня врядли пригодиться. Хотелось бы современный и понятный стандарт, чтоб не плодить кучу разнообразных систем в которых ногу сломишь, но по моему новинки в программировании редко взлетают. С минишопом у Вас повезло. Ко времени пришелся. А vesp/core 4 может и не взлететь. Разве что на авторитете подымется. Думаю 3 проблемы помешают.
1 это не простой порог входа. Подробной документации еще нет, но система кажется не простой.
2. MODX с системой сниппетов и чанков довольно простой конструктор сайтов. Многие не знают php и пишут на MODX сайты. А с vesp/core уже так не получиться.
3. У vesp нет компонентов и модулей, чтоб не писать нужный функионал с 0, а как, например, установил минишоп и просто под свой сайт подстроил.

Ну это я так вижу :-). Может у кого-то другие впечатления…
Александр Туниеков
25 февраля 2024, 14:40
0
Уже не помню :-(. может вот здесь проблема
$contents = explode(',',$contents);
Александр Туниеков
23 февраля 2024, 11:45
0
BannerY видел 6 лет назат и напрочь забыл что там
Александр Туниеков
20 февраля 2024, 18:40
0
pdoResources делает getChunk на каждую запись из базы. То есть на каждый ресурс вызывается обработка чанка.
Насколько я понимаю задачу, то либо вызывать pdoResources 2 раза, либо писать свой сниппет.
1) вызывать pdoResources 2 раза
<div class="col-lg-6">
	<div class="swiper>
		{* Start &TPL part-1 *}
                {'!pdoResources' | snippet : [
		      'tpl' = '<div class=" swiper-slide">{$name}</div>'
                ]}
		{* End &TPL part-1 *}
	</div>
</div>
<div class="col-lg-6">
	<div class="swiper-tabs">
		{* Start &TPL part-2 *}
                {'!pdoResources' | snippet : [
		      'tpl' = '<div class="swiper-tab">{$name2}</div>'
                ]}
		{* End &TPL part-2 *}
	</div>
</div>
Либо написать сниппет, например, getRes. Только для modx 2.x
$pdo = $modx->getService('pdoFetch');
$pdo->setConfig([
    'parents'=>'10',
    'return'=>'data',
    'limit'=>20
]);
$resources = $pdo->run();

return $pdo->getChunk('getResTPL',[
    'resources'=>$resources
]);
getResTPL
<div class="col-lg-6">
	<div class="swiper>
		{* Start &TPL part-1 *}
                {foreach $resources as $res}
                    <div class=" swiper-slide">{$res.name}</div>
                {/foreach}
		{* End &TPL part-1 *}
	</div>
</div>
<div class="col-lg-6">
	<div class="swiper-tabs">
		{* Start &TPL part-2 *}
                {foreach $resources as $res}
                    <div class="swiper-tab">{$res.name2}</div>
                {/foreach}
		{* End &TPL part-2 *}
	</div>
</div>
Александр Туниеков
06 февраля 2024, 09:57
0
Хм… чет я притупил.
Александр Туниеков
06 февраля 2024, 06:15
+1
А php не весь на сервере выполняется? То есть по идее не важно откуда запущен должно же брать время сервера О_О
Александр Туниеков
18 января 2024, 05:47
0
А вот что касается Vue внутри MODx, ну, апплодировать ногами тоже можно, но лишь ради развлечения других людей.
Грубовато :-)
Товары будут продаваться и без Vue.js
Чисто на товары Vue и не надо. Надо на динамичное приложение. Уже надоело как надо показать какую-то не стандартную модалку, то чанки на феном и он на фронте не работает. Приходиться идти по ajax на сервер выбирать отдельно данные закидывать их в чанк и html уже забирать. Много лишних телодвижений. Шаблоны лучше на фронте заливать данными. По большому счету я хорошо знаком только с модекс. Другие системы смотрел, но что-то не производят они впечатления. Пару api можно быстро создать, но чтоб чисто сделать апи для 200 таблиц понадобиться год. И еще год фронт написать. Тут на работе не будут ждать 2 года, чтоб у них все заработало. Новое можно только постепенно. Сейчас неделю ночи трачу обдумывая как на основе модекс бек сделать. По идее в часов 200 в течении 2-3 месяцев можно сделать такой функционал, что потом переезд будет в разы проше чем на каком-либо другом беке.
Александр Туниеков
28 декабря 2023, 23:32
0
можно реплицировать бд и для этой бд сделать апи используя уже любой удобный яп, фреймворк и т.д
Реплиировать бд это синронизация бд или просто раз скопировать?
Если раз скопировать, то как функционал который еще не написан, а работать компании нужно? А написать год или 2.
Если синхронизировать, то это может гемор. Самописно я пробовал и точно гемор. А какой либо софт не знаю не смотрел еще. Если подскажете, будет интересно. И еще многие таблицы исторически созданны не оптимально. Хочется их переопределить, но сайт под эту структуру таблиц уже заточен. При синхронизации хотелось бы переопределить структуру таблиц :-(.
Александр Туниеков
28 декабря 2023, 23:05
0
Ну на модекс написан за 8 лет большой функционал и на другой сервер его маленькими блоками не перекинешь.
И большими может тоже не перекинешь :-(. Вообщем есть таблица заказов и от нее зависит склад, производство, снабжение, логистика и т.д. Я счас пытаюсь маленькие блоки на vue перевести. Например распределение деталей из заказов по сменам производства. Или хотя бы написать распределение ресурсов(работников) по сменам.
Александр Туниеков
28 декабря 2023, 22:55
0
Хороший вопрос :-). Сам думал. Но gtsAPI это только часов 6-12 остальное разборки с vue. Чтобы отдать чисто страницу с #app надо реализовать функионал который выдается pdoMenu и Login еще. Это еще часов 40 для реализации авторизации. Ну меню конечно роуты SPA дают не так сложно если по стандарту идти, но весь функционал за 8 лет написанный я в vue за неделю не напишу. И за года 2 не напишу наверно :-). То есть надо и меню модекс переключать и меню SPA. Что тоже сложно. Пока проще pdoMenu и Login от модекса и только подрубать часть функионала на vue на странице.
Александр Туниеков
28 декабря 2023, 03:02
+1
Хм. Я чет не подумал что у меня ситуация отличается. У меня 200 таблиц в базе и на фронте. Писать контроллер на каждую таблицу замучишься. А для большинства таблиц как раз только GRUD и требуется. Под это и заточено. Еще перенести функионал getTables на PrimeVue и треть работы сделана :-)
Александр Туниеков
27 декабря 2023, 01:17
0
Спасибо за донат. Хотел в заметке спросить надо ли дальше и подробнее описывать :-) но уже запарился. Теперь буду знать. Надо расписывать. Только блоками работы поменьше, чтоб не запариваться и чтоб понятнее было. А стартовый блок работы получился большим. Я насчитал 60 часов работы О_О.
Александр Туниеков
27 декабря 2023, 01:12
+1
Да правильно. Сложновато написал. Хорошо еще что сейчас начал описывать. Потом вообще бы тяжко было все хитро сплетения прописывать.
В таблице указываешь точку монтирования — это куда слать запрос. Указываешь класс контроллера и путь к нему — то есть это где искать код код обработчика.
Но фишка то в том чтоб по возможности код обработчика вообще не писать. Класс контроллера остовляешь пустым и указываешь нужную таблицу и GRUD API уже есть. Думаю это съэкономит время.
Александр Туниеков
22 декабря 2023, 22:42
+1
Или в index.php 'msProductData' вместо массива строка
'msProductData' => "require_once 'msproductdata.map.inc.php'",
Александр Туниеков
22 декабря 2023, 22:09
+1
Какой то не правильный плагин в папке core/components/minishop2/plugins/. Там плагины для расширения полей базы данных минишопа в виде index.php например
<?php
return array(
    'map' => array(
        'msProductData' => require_once 'msproductdata.map.inc.php',
    ),
    'manager' => array(
        'msProductData' => MODX_ASSETS_URL . 'components/minishop2/plugins/myplugin/msproductdata.js',
    ),
);
и msproductdata.map.inc.php
<?php
return array(
    'fields' => array (
		'avaible' => 1,
		'europrice' => 0.0
	  ),
    'fieldMeta' => array (
		'avaible' => 
		array (
		  'dbtype' => 'varchar',
		  'precision' => '50',
		  'phptype' => 'integer',
		  'null' => true,
		),
		'europrice' => 
		array (
		  'dbtype' => 'decimal',
		  'precision' => '12,2',
		  'phptype' => 'float',
		  'null' => true,
		  'default' => 0.0,
		),
    )
    ,'indexes' => array(
.....
наверно index.php присутствует, а файл определенный в строке ниже отсутствует

'map' => array(
        'msProductData' => require_once 'msproductdata.map.inc.php',
то есть для msProductData отсутствует файл msproductdata.map.inc.php.

Возможно в этом причина. Код брал со страницы Плагин товара для miniShop2 MODx Revo
Александр Туниеков
21 декабря 2023, 04:17
+1
Это предупреждение наверно не из этого чанка галереи. Во первых стоит проверка {if $files?} во вторых если ругается на второй вызов {foreach $files as $file}, то должно ругаться и на первый вызов {foreach $files as $file}.
И, самое главное, в третьих ругается в файле /public_html/core/components/minishop2/model/minishop2/minishop2.class.php на строке 630. То есть чанк вообще не при чем. Посмотрите что есть там у вас в файле minishop2.class.php на строке 630
Александр Туниеков
17 ноября 2023, 23:53
0
У меня бывает проблема кеш плагина pdoTools задваивается. Попробуй почистить кеш.