Всего 125 678 комментариев

Николай Хохлунов
09 августа 2021, 15:42
0
Спустя долгое время вернулись к разработке, думаю осенью выкатим
Игорь
09 августа 2021, 11:53
0
ВОПРОС ЗАКРЫТ!

нужно было вернуть после обновление на php 5.6.40
пригодилось «Про обновление можно посмотреть тут — Update MODX Evo 1.0.8 to Evolution CMS 1.4.7»
спасибо
Андрей
09 августа 2021, 11:31
0
Можно перейти на — Переводим pdoMenu на Fenom, и строить меню из массива как угодно.
Роман
09 августа 2021, 10:39
0
Тут просто нужно было дописать:
$modx->addPackage('formit', $modx->getOption('core_path').'components/formit/model/');
Роман
09 августа 2021, 09:41
0
&level=`2`
Так только ограничит видимость, скорее всего это неправильный ответ. Наверно, только css в помощь.
Игорь
09 августа 2021, 09:20
0
Здравствуйте, нужна помощь, обновил по видео до предпоследней версии. обновил модули, но

Line 25
Source if (!function_exists(gfGetFieldContent))
Current Snippet GetField

нужен человек, кто сможет заменить ditto или другие чанки на более свежее.
Сергей Шлоков
09 августа 2021, 09:09
0
@Иван Бочкарев Давно уже напрашивается добавить в название сайта «Revolution». Или на логотип.
Игорь
09 августа 2021, 00:00
0
да вроде сам разобрался, опять же, «по колхозному» — пришлось лезть в файл /core/components/msbonus2/handlers/manager/msb2manager.class.php и там дописывать костыли…
жалко, что мало документации… ((
ещё, кстати, возник вопрос на будущее: «сейчас модно, что, при оплате бонусами, новые бонусы на заказ не начисляются» — такой момент можно реализовать (без костылей)?
Игорь
08 августа 2021, 18:58
0
1) Просто пустая страница когда пытаюсь в админку зайти.

да мне хотелось что б сайт просто работал на другом сервере… не пойму почему не получается. просто на новом нет php 5.6.30 (native)…

блин… как не хочется обновляться, похоже прийдется…
спасибо за ответ
Андрей
08 августа 2021, 18:50
0
сайт вырубается, в админку попасть не могу
Как проявляется невозможность попасть в админку?

меняю на php 7.3.29 -админка работает, а на сайте выдает ошибку
На версии 1.0.15 как минимум половина стандартных сниппетов/плагинов/модулей не будет работать с php 7 и выше, удивительно что ещё админка работает.

Советую обновиться до актуальной 1.4.15, как минимум из соображений безопасности и возможности работать с актуальным серверным окружением.

Про обновление можно посмотреть тут — Update MODX Evo 1.0.8 to Evolution CMS 1.4.7
Александр Мельник
08 августа 2021, 15:30
0
Да, вы правы. Кроме как запрещать доступ через настройки вебсервера и отдавать файлы через readfile() с проверкой прав, на его просмотр — по другому и не решить данный вопрос.
Я буквально недавно решал подобную задачу, в рамках микрофреймворка slim и там было проще, в том плане, что сама архитектура фреймворка позволяет все файлы приложения хранить на уровень ниже, чем публичная директория, куда смотрит веб сервер, поэтому получить файл по прямой ссылке просто невозможно.
Vladimir Alekhin
07 августа 2021, 23:41
+1
Это уже другой источник файлов, проблема в том, что контроль доступа туда работает только в админке MODX. Файлы загруженные в эту папку доступны по прямой ссылке любому пользователю (в том числе анонимному), либо я настроил не правильно.

Сделал временное решение, но мне оно не очень нравится. описываю решение:
в папку которая указана в basePath положил файл .htaccsess т.к. сервер на apache2 со строкой
deny from all
Что запретило доступ к файлам по прямой ссылке всегда, но php имеет к ним доступ.

Поэтому создал сниппет с кодом:
<?php
$file_url = $modx->getOption('assets_path') . 'components/dbd/files/' . $filename;

if (!is_file($file_url)) { return false; }

header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary"); 
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\""); 
ob_clean();
flush();
readfile($file_url); 
exit();
Тут мы обращаемся к имени файла переданного в сниппет и выдаем его в буфер вывода с соответствующими заголовками.

Вызвал сниппет [[!file_download?&filename=`[[!#GET.fn]]`]] передал ему get параметр содержащий имя файла. Сниппет вызван на странице которая принадлежит группе ресурсов на которую настроен доступ только для авторизованных.

Вроде работает, но уверен есть решение лучше. Оставлю это тут, если кто-то будет искать подобное решение, и надеюсь что более опытные пользователи посмотрят решение и предложат лучшую альтернативу.
Богдан
07 августа 2021, 21:43
0
Хм… Я вас понял.
Артур Шевченко
07 августа 2021, 21:15
+1
А у вас каждый товар выводиться вручную по одному? Или есть какой-то шаблон, в который подставляются данные товара? Если есть шаблон, то что мешает в него микроразметку добавить?
Богдан
07 августа 2021, 21:12
0
А если говорить об интернет-магазине. Тогда ручное заполнение каждого товара потенциально проблематично.
Как он должен выглядеть? Принимать заголовки товаров и прочую нужную уже имеющуюся на сайте информацию, после чего записывать её в микроразметку.
Артур Шевченко
07 августа 2021, 20:20
0
Я думаю надо создать новый источник файлов и дать к нему доступ только нужной вам группе пользователей.
Артур Шевченко
07 августа 2021, 20:10
1
+1
Мне кажется, что нет. Вообще плохо представляю как он должен выглядеть и кому нужен, если можно нагуглить пример и подставить свои значения. Если говорить про Schema.org, то там вообще можно делать так
<script type="application/ld+json">
        {
            "@context": "http://schema.org",
            "@type": "Organization",
            "name": "{$_modx->config.site_name}",
            "logo": "{$_modx->config.site_url}{$_modx->config.logo}",
            "address": {
                "@type": "PostalAddress",
                "addressLocality": "Краснодар, Россия",
                "postalCode": "350000",
                "streetAddress": "Коммунаров, 269"
            },
            "email": "{$_modx->config.email}",
            "telephone": "{$phoneFormatted}",
            "url": "{$_modx->config.site_url}"
        }
    </script>
Andrey Grachov
07 августа 2021, 18:37
0
Можно сохранять настройки вызова AjaxForm в таблицу такой структуры
CREATE TABLE `modx_ajax_form_properties` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `hash` varchar(32) NOT NULL,
  `properties` json NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `hash` (`hash`)
)
В коде AjaxForm меняем логику генерации хеша:
ksort($scriptProperties);
$hash = md5(http_build_query($scriptProperties));
и потом добавляем новую запись в базу если такого хеша еще нет. При обработке запроса AjaxForm берем данные по хешу из базы а не из сессии.
Valdis
07 августа 2021, 15:05
0
да уж, оказалось всё проще -запутался не в меню, а в уровнях ресурсов ))
Баха Волков
07 августа 2021, 14:34
0
спасибо тебе дружище, не первый раз выручаешь.
Пожалуйста

Нужно задонатить тебе ;)
Это всегда можно)