Иван Бочкарев

Иван Бочкарев

С нами с 11 июня 2013; Место в рейтинге пользователей: #11
TITAN-UZ
06 ноября 2021, 21:44
2
+1
Рабочий плагин на
TinyMCE 4 LINK
TinyMCE 5 LINK

Базу можете обновить из  GITHUB
Максим
22 сентября 2021, 13:30
1
+2
Недавно ковырялся в скриптах минишопа, заметил, что нет callback-функции для miniShop2.Cart.status(). А ведь могло бы пригодиться (например, с той же мини-корзиной какие-то действия производить, добавлять классы или что-то еще).
И вообще, в чем преимущества этих callback? Почему бы не сделать через события? Например, написать (можно на чистом JS):
$(document).trigger('beforeAddToCart', options)
А там кому надо, тот напишет
$(document).on('beforeAddToCart', function(event, options){});
Как минимум короче код и привычнее.
Евгений
09 января 2021, 11:20
1
+1
Есть такой вариант modxWebpConverter
Ivan
26 октября 2020, 23:59
2
+1
1) В базе данных в таблице PREFIXms2_product_links добавляете поле sort типа INT со значение по умолчанию 500.
2) Создаете файл /assets/components/minishop2/js/mgr/product/links.grid.custom.js. Файл можете скачать по ссылке cloud.mail.ru/public/n6em/21JzhRihW
4) Создаете плагин, вешаете на событие msOnManagerCustomCssJs и пишете в нем
<?php
switch ($modx->event->name) {
    
    case 'msOnManagerCustomCssJs':
        if ($page != 'product_update') return;
        
        $assetsUrl = '/assets/components/minishop2/';
        $modx->controller->addLastJavascript($assetsUrl . 'js/mgr/product/links.grid.custom.js');
  break;

}
5) Создаете файл /assets/components/minishop2/getSort.php. Скачать можно по ссылке cloud.mail.ru/public/3cUV/57yeWGajo

Далее очищаете кэш браузера. На странице установки связей появится кнопка «Изменить сортировку». Вам необходимо выбрать строчку и нажать кнопку. Задаете сортировку и нажимаете ОК.

Что бы потом сортировать по этому полю при выводе msProducts в поле &sortby вам нужно указать { «Link.sort»:«ASC» }

P.S. Данный код ни на что не претендует. Используйте его на свой страх и риск. Если будет время, то перепишу и обновлю комментарий.
Евгений
19 сентября 2019, 11:38
1
0
Редирект в htaccess использую такой, универсальный вариант без циклической переадресации:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Проверено на Timeweb и на локальном сервере.
Андрей
12 августа 2019, 12:21
2
0
Запускать через консоль:
<?php
$pages = $modx->getIterator('modResource', ['parent:IN' => [0]]);

foreach ($pages as $p) {
  $title = $p->get('pagetitle');
  $alias = $p->get('alias');	
  $alias = $p->cleanAlias($title);
  $p->set('alias', $alias);
  $aliasPath = $p->getAliasPath($alias);
  $p->save();
}
Евгений Webinmd
16 марта 2019, 22:31
3
+1
у меня такой код

js
$('.bminus').on('click',function () {
    var $input = $(this).parent().find('input');
    var val = +$input[0].defaultValue;
    var count = parseInt($input.val()) - 1;
    count = count < 1 ? 1 : count; 
    $input.val(count);
    $input.change();
    return false;
});

$('.bplus').on('click',function () {
    var $input = $(this).parent().find('input');
    var val = +$input[0].defaultValue; 
    $input.val(parseInt($input.val()) + 1);
    $input.change();
    return false;
});
html
<div class="quantity">
    <input type="text" name="count" value="1"  required>
    <span class="bplus"></span>
    <span class="bminus"></span>
</div>
Илья Уткин
29 января 2019, 19:23
1
+4
Вот небольшая инструкция:
ilyaut.ru/tips-and-tricks/testing-modx-pr/
Aleksandr Huz
04 июля 2018, 10:07
1
+1
Мое решение:
1. В форму вставляем скрытое поле с файлом
<input type="hidden" name="attach_file" value="IMG_1035.JPG" />

2. Удаляем хук email

3. Добавляем свой хук (email_file)
<?php
$pdo = $modx->getService('pdoTools');
$siteName = $modx->getOption('site_name');
$emailsender = $modx->getOption('emailsender');
$emailTo = $modx->getOption('emailTo', $scriptProperties, $emailsender, true);
$fields = $hook->getValues(); 
$message = $pdo->getChunk('email', $fields);
$subject = $modx->getOption('emailSubject', $scriptProperties, $siteName, true);

$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY, $message);
$modx->mail->set(modMail::MAIL_FROM, $emailsender);
$modx->mail->set(modMail::MAIL_FROM_NAME, $siteName);
$modx->mail->set(modMail::MAIL_SUBJECT, $subject);
$modx->mail->address('to', $emailTo);
$modx->mail->address('reply-to', $emailsender);
if(!empty($fields['attach_file'])) {
    $modx->mail->attach($modx->getOption('base_path').$fields['attach_file']);
}
$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
  $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
}
$modx->mail->reset();
return true;
Oleg
16 мая 2018, 12:34
1
0
Вывод в моем случае такой:
{var $key = $modx->localizator_key}
{set $rows = json_decode(20|resource:'loc_sidebar', true)}
{foreach $rows as $row}
            {if $key == $row.lang}
                {set $vals = json_decode($row.text, true)}
                {foreach $vals as $val}
                    <a href="{$_modx->makeUrl($val.id)}"><img src="{$val.image}" alt=""><span>{$val.text}</span></a>
                {/foreach}
            {/if}
{/foreach}