Stan Ezersky

Stan Ezersky

С нами с 18 февраля 2014; Место в рейтинге пользователей: #29
Dekr
24 октября 2017, 11:41
1
+1
По поводу migxResourceMediaPath

Вот такая запись у меня не заработала:
{'migxResourceMediaPath' | snippet : ['pathTpl' => 'assets/MediaGallery/{id}/', 'createFolder' => 1]}
Рабочая:
{$_modx->runSnippet('migxResourceMediaPath', ['pathTpl' => '/images/gallery/{id}{alias}/', 'createFolder' => 1])}
Вдруг кому еще пригодиться.
Дмитрий
23 октября 2017, 22:52
4
+4
Я последний год работаю примерно так:
1) Создаю сайт с тарифом «Разработка» на modhost.pro. Это позволяет отказаться от тормозов на локальном сервере, плюс заказчик или другие работники (верстальщики, например) сразу могут видеть работу или вносить результаты своей работы
2) В NetBeans (да, PHPStorm мне что-то не зашел пока что :) ) создаю проект с удаленным сервером, выкачиваю пустую папку assets и пустую папку core. Тем самым не надо выкачивать целый сайт, только нужные файлы.
IDE ведет синхронизацию по FTP, поэтому проблем нет с такого рода деплоем.
3) В assets создаю подпапку templates, где храню весь фронтенд — js, sass, css, libs, svg, fonts, img.
4) В core создаю папку elements, в ней подпапки «chunks», «snippets», «plugins», «templates». Получается примерно так:
5) Включаю Fenom в настройках pdoTools.
6) Привязку к чанкам и сниппетам в админке не веду, все только через файловые элементы Fenom, никаких статических файлов в админке. Только если чанки каких-то допотопных компонентов, типа Gallery, которые не очень умеют с pdoTools.
7) Работаю и радуюсь. На modhost очень удобно сделаны бэкапы, работа в phpMyAdmin и всякое другое, локальным сервером уже не знаю, сколько не пользовался.
Alexey Medvedev
14 октября 2017, 15:17
1
+2
1. SimpleSearch не поддерживает Fenom, так что используйте обычный синтаксис
Почему не поддерживает??? Всё прекрасно работает.

{'!SimpleSearchForm' | snippet : [
    'tpl'       => 'search.form'
]}
{'!SimpleSearch' | snippet}
search.form
<form  action="{($landing ?: $_modx->resource.id) | url}" method="{$method ?: 'get'}" role="form">
	<input type="hidden" name="id" value="{($landing ?: $_modx->resource.id) | url}" />
	<input type="text" class="form-control" name="{$searchIndex}" id="{$searchIndex}" value="{$searchValue}" placeholder="Поиск...">
</form>
Максим
09 октября 2017, 12:06
1
+1
Решено, выставил в параметрах phpthumb_allow_src_above_docroot = true
Александр Наумов
28 июня 2017, 10:30
2
+2
#!/bin/bash

dir=/var/www/site
user=root

echo "Set permissions for $dir...";
echo "CHOWN files...";
chown -R $user:$user "$dir";
echo "CHMOD directories...";
find "$dir" -type d -exec chmod 0755 '{}' \;
echo "CHMOD files...";
find "$dir" -type f -exec chmod 0644 '{}' \;
Игорь Терентьев
08 июня 2017, 17:42
2
+1
У меня получилось решить данную проблему.
Во первых нужно удалить ранее зарегистрированные сервисы:
if ($miniShop2 = $modx->getService('miniShop2')) {
    $miniShop2->removeService('delivery', 'MskDelivery');
}
Создаем файл в core/components/minishop2/custom/delivery/msdeliverycourierhandler.class.php
<?php
if (!class_exists('msDeliveryHandler')) {
	require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/msdeliveryhandler.class.php';
}

class msDeliveryCourierHandler extends msDeliveryHandler implements msDeliveryInterface {
    public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0.0) {

        $freedeliverysumm = 90;
        $cart = $order->ms2->cart->status();
        $cart_cost = $cart['total_cost'];

        if($cart_cost > $freedeliverysumm){
            return $cost;
        }else{
            $delivery_cost = parent::getCost($order, $delivery, $cost);
            return $delivery_cost;
        }
    }
}
Регистрируем:
if ($miniShop2 = $modx->getService('miniShop2')) {
    $miniShop2->addService('delivery', 'msDeliveryCourierHandler',
        '{core_path}components/minishop2/custom/delivery/msdeliverycourierhandler.class.php'
    );
}
Андрей
06 июня 2017, 17:41
1
+1
У fancybox есть callback beforeShow в нем можно и написать

Например так:
beforeShow: function() {
	var value1 = $('эелемент_1').val();
	var value2 = $('эелемент_2').val();

	$('куда_подставить_значение_1').text(value1);
	$('куда_подставить_значение_2').text(value2);
},
afterClose: function() {
	//очистить при закрытии окна
	$('куда_подставить_значение_1').text('');
	$('куда_подставить_значение_2').text('');	
}
Павел Крылов
05 июня 2017, 14:53
1
+1
К примеру так:
<div class="btn_wrap"><button href="#" class="btn order_btn submit" onclick="yaCounterXXXXXX.reachGoal('ORDER'); return true;">Оставить заявку на бесплатный замер</button></div>
Или так:
<form id="myForm2" action="[~9~]" method="post" enctype="multipart/form-data" onsubmit="yaCounterXXXXXX.reachGoal('ORDER'); return true;">
XXXXXX — номер вашего счетчика,
ORDER — идентификатор цели.
ck
ck
31 мая 2017, 16:33
2
0
Вот пример сортировки по опциям товаров в документации к mSearch2:
[[!mFilter2?
    &parents=`0`
    &element=`msProducts`
    &leftJoin=`{
        "Option": {
            "class": "msProductOption",
            "on": "Option.key = 'test1' and Option.product_id = msProduct.id"
        }
    }`
    &sortAliases=`{"msoption":"Option"}`
    &sort=`msoption|value:asc`
]]
Волков Николай
28 мая 2017, 09:23
1
+1
Меняем div на ul в
&tplInner=`@INLINE [[+wrapper]] `Все ок! Но тогда не работает выпадение при клике.
Скорее всего из-за дублирования ссылок и индентификаторов блоков с содержимым выпадашки. Нужно сделать уникальным этот индентификатор:
navbarDropdownMenuLink
Я, к примеру, это сделал дописав у него в конце id родительского ресурса:
navbarDropdownMenuLink-{$id}