Артур Шевченко

Артур Шевченко

С нами с 24 мая 2019; Место в рейтинге пользователей: #3
Отправить деньги
09 мая 2021, 10:54
0
Чтобы вывести данные с сервера на страницу, нужно
1. Отправить запрос на сервер
2. Получить и обработать запрос на сервере
3. Вернуть ответ.
Для п.п. 1 и 3 обычно используют AJAX, а как делать запросы в БД ты могла посмотреть по ссылке в предыдущем своем посте.
02 мая 2021, 20:38
0
Если делаешь на fancybox, то так
<a href="path/to/cover" data-fancybox="gallery">
    <img src="path/to/image">
</a>
<a href="path/to/image"  data-fancybox="gallery"></a>
<a href="path/to/image2"  data-fancybox="gallery"></a>
<a href="path/to/imag3"  data-fancybox="gallery"></a>
02 мая 2021, 10:23
+2
Спасибо за пояснение. Убрал под cut.
29 апреля 2021, 16:08
0
Обновлять пробовали и админку и ajaxForm?
29 апреля 2021, 15:58
+1
У ресурса может быть несколько стран в которые он не поставляется? Если да, то надо расширять класс фильтрации. Я делал фильтр по регионам, суть такая: у каждого ресурса есть поле, в котором хранится список в котором будем искать совпадения, сам фильтр это select с одиночным выбором.
<?php

class CustomFilter extends mse2FiltersHandler
{

    public function getPolyFieldValues(array $keys, array $ids)
    {
        $filters = array();

        $q = $this->modx->newQuery('msProductData');
        $q->where(array('id:IN' => $ids));
        $q->select('id,' . implode(',', $keys));
        $tstart = microtime(true);
        if ($q->prepare() && $q->stmt->execute()) {
            $this->modx->queryTime += microtime(true) - $tstart;
            $this->modx->executedQueries++;
            while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
                foreach ($row as $k => $v) {
                    $values = json_decode($v, 1);
                    if ($k == 'id') {
                        continue;
                    } elseif(is_array($values)){
                        foreach ($values as $val) {
                            $filters[$k][$val][] = $row['id'];
                        }
                    }
                }
            }
        } else {
            $this->modx->log(modX::LOG_LEVEL_ERROR, "[mSearch2] Error on get filter params.\nQuery: " . $q->toSql() . "\nResponse: " . print_r($q->stmt->errorInfo(), 1));
        }

        return $filters;
    }

    public function buildPolyFieldFilter(array $values, $name = '')
    {
        if (count($values) < 2 && empty($this->config['showEmptyFilters'])) {
            return array();
        }
        $results = array();
        foreach ($values as $value => $ids) {
            $results[$value] = array(
                'title' => $value
            , 'value' => $value
            , 'type' => 'default'
            , 'resources' => $ids
            );
        }

        ksort($results);
        return $results;
    }


    public function filterPolyField(array $requested, array $values, array $ids)
    {

        $matched = array();
        $tmp = array_flip($ids);
        foreach ($requested as $value) {
            if (isset($values[$value])) {
                $resources = $values[$value];
                foreach ($resources as $id) {
                    if (isset($tmp[$id])) {
                        $matched[] = $id;
                    }
                }
            }
        }

        $match = $matched;
        $matched = array();
        $count = count($requested);
        $count_values = array_count_values($match);

        foreach ($count_values as $id => $value) {
            if ($value >= $count) {
                $matched[] = $id;
            } else {
                $matched[] = 0;
            }
        }
        //$this->modx->log(1, print_r($matched,1));
        return $matched;
    }

    public function getSuggestions($ids, array $request, array $current = array()) {}

}
29 апреля 2021, 10:18
0
Всё правильно ты думаешь ссылка должна быть такой site.ru/stranicza-polzovatelya?user=18, а на странице /stranicza-polzovatelya пиши так
{$.get['user'] | user: 'username'}
29 апреля 2021, 00:09
0
А ты где этот код пишешь в чанке item? Тогда понятно почему не срабатывает, надо так писать $_pls['tovar_id']
28 апреля 2021, 23:14
0
Я бы сделал модификации через msOprtionsPrice2, а остальное ручками-ручками.
28 апреля 2021, 23:09
0
А что, после первого нажатия перестает работать?
28 апреля 2021, 23:07
0
По-моему логично было бы проверять $_modx->resource.tovar_id.
27 апреля 2021, 20:47
0
Не совсем понятно, где ты хочешь передавать. Но если на фронте то
[[#[[*parent]]]]
{$parent | resource: 'tvname'}
Если в админке то можно использовать такую конструкцию
@SELECT `value` FROM `modx_site_tmplvar_contentvalues` WHERE `tmplvarid` = tvid AND `contentid` = parentid
23 апреля 2021, 14:07
0
Спасибо за уделенное время. Исправления внёс:-)
23 апреля 2021, 12:11
0
Нет.
23 апреля 2021, 10:04
+1
Нет, я не приемлю принцип «сдал и меня нет», я поддерживаю свои проекты. И стараюсь заранее все нюансы у заказчика узнать, чтобы доработок было минимум. Понятно, что потом аппетиты могут у заказчика вырасти, тогда и переделаем. А за то, что опытом делитесь респект!
23 апреля 2021, 09:51
0
Вечно эти опытные программисты находят изъяны и не дают насладиться маленьким триумфом от собственного роста? Я понял вас, спасибо. Что до повторной отправки, можно предусмотреть: пишем в поле comment ссылку domain.ru?msorder=2 и выводим это поле в таблице заказов. Логгирование ошибок в скрипте отправки есть, надо только возвращать false и наверное уведомлять админа. Про чтение json это прям сильно))) А вот когда вырастет, тогда можно будет переделать и ещё немного заработать ?