8 часов назад
require_once $_SERVER['DOCUMENT_ROOT'] . '/core/config/config.inc.php';Это лишнее.
global $modx;и это тоже.
$modx->context->keyКак...
[miniShop2] - Ошибка при инициализации 1
Вчера в 11:44
Дак все на 2-й версии сидят, а эту только посмотреть порадоваться =)
mmxTwig - еще одна интеграция шаблонизатора 8
16 мая 2024, 20:02
Походу твое решение спустя 4 года все такие стало актуальным
github.com/modxcms/revolution/pull/16571#pullrequestreview-2061133420
Facade Laravel в Modx 2/3 21
16 мая 2024, 08:23
Всё норм работает, надо только заменить в файле core/components/msdsector/controllers/msdsectordeliveryhandler.class.php
if (!class_exists("ms...
[msdSector] - расчет стоимости доставки с учетом секторов. 10
15 мая 2024, 11:50
Немного дополню, для mSearch2 (может кому пригодится)
<script>
var lazyLoadInstance = new LazyLoad({
elements_selecto...
pdopage и vanilla-lazyload 7
15 мая 2024, 05:58
Добрый день,
Подскажите, написано, что «Добавлена автоматическая поддержка пользовательских множественных свойств»
Но при этом нигде не сказано...
[mSync] Новая версия синхронизации с 1С 87
14 мая 2024, 14:50
Спасибо!
Пробовал передать свой плейсхолдер — не работает такой подход.
Сейчас решение сделал в виде сниппета получающего id по pagetitle
cityFields внутри pdoResources и плейсхолдер id 2
14 мая 2024, 10:27
Решил, зашёл в контексты, web, и там создал новый контекст site_url, и там внутри добавил значение своего сайта на https.
Имя и ключ: site_url
Зна...
При добавлении <base href="[[++site_url]]"/>, не работают стили. 6
13 мая 2024, 23:47
Искал ответ примерно на тот же вопрос. Мне нужно было сделать file.php который будет выводить определенный ресурс из modx. Вот, может, кому то пригоди...
Как получить HTML код всей страницы в сниппете? 10
Но дело не в этом, а в том, что если менеджер умеет работать с Ексель на высоком уровне, то проверка 50 000 товаров проходит за 5 минут.
В продолжение этой фразы Я когда впервые увидел код сайта на modx был уверен, что это какой-то неведомый мне язык программирования. Какие-то [[+id]], непонятные скобочки, синтаксис которого не видел нигде, какие-то телевизоры)
И если бы меня кто спросил — я бы клялся что это все что угодно, но не php ибо мне в учебниках ничего подобного не попадалось.
Я вообще негативно отношусь к парсингу чужих сайтов, но это лично мои «тараканы».
Но если все же приходится это делать, мы не делаем это напрямую в базу, а в экселевский файл, затем контент менеджеры используя формулы экселя удаляют дубли и все ненужное.
Ну да ладно, это не важно. Я просто тоже не совсем понимаю концепцию этого дополнения.
Действительно все сильно зависит от настроек хостинга.
У меня есть сайты на бегет, таймвеб, рег ру, ник ру, мастерхост, айхор и на паре совсем экзотических площадок и практически везде команды для htaccess приходится вносить разные. Так что самый верный способ — переложить это на плечи техподдержки.
1. По-моему дублями с точки зрения поисковых систем считаются не страницы с одинаковым pagetitle, этот процесс сложнее чем просто одинаковое название. Да и плюс, как я сталкиваюсь в практике, разные разработчики по разному используют поле pagetitle, кто-то отправляет его в h1 на страницу, а кто-то в title
2. Разве модекс позволяет сохранить два ресурса с идентичными названиями? Как могут возникнуть два идентичных pagetitle? Или имеется ввиду похожие названия? Но тогда вопросов еще больше, что есть такое «похожие» и как определять степень схожести. Если на сайте два ресурса «Товар 1» и «Товар 1-1» какой-то из них автоматом будет удален?
— я не решаю с кем работать а с кем нет, я работаю на компанию и решает директор.
— я также часто агитирую о создании нового сайта, но не всегда это возможно. К примеру если существующий сайт создан на платной версии какого то движка. Заказчик не станет покупать еще раз лицензию на Битрикс или на движок CS CART (стоимость лицензии 150 000 рублей). Так же заказчик никогда не в состоянии полноценно описать, что его сайт умеет и приходится оценивать только на глаз. И ты такой сделал новый сайт, ориентируясь на то что видишь, а заказчик такой — ой забыла сказать — у нас же еще есть приложение для мобильного телефона на play market, оно же будет работать да? )) И таких нюансов море.
— Круто! Моих знаний на это не хватит, особенно учитывая что мы не придерживаемся одного двух движков, чтобы изучить их настолько, чтобы писать скрипты для конвертации данных из одного в другое. Одновременное приходится работать с 7-8 движками.
И три года меня не сильно беспокоили эти все моменты с гитом, поскольку работаю я один и о ужас, но по ftp мне гораздо быстрее перенести какую-то фичу с локального сайта на продакшен. Но скорее всего у нас появится новый разработчик и хотелось бы наладить более продуктивный процесс. Вот и получается что во вне рабочего времени пытаюсь испробовать различные способы работать совместно через гитхаб с уже существующими сайтами, пока что больно и приносит больше проблем чем выгоды.
Как я писал выше, чтобы клонировать туда удаленный репозиторий, предварительно нужно скопировать и удалить, а затем частично восстановить файлы. И если на сайте присутствуют файлы, названные киррилицей, то скорее всего в процессе копирования их названия исказятся. И у 50% товаров исчезнут изображения, потому как менеджер залил файл «юбка белая.jpg» а после копирования и перезаливки файлов вернулся #!!&&& ***.jpg
Выходит что мои «страхи» оправданы? И для того чтобы корректно работать над одним сайтом двум разработчикам нужно иметь 4 версии сайта — Рабочая, тестовая и у каждого разработчика локальная. И тут конечно следующей волной накатывает проблема точного совпадения сред разработки сразу в 4 местах, но вы ответите мне словом Докер, а я морально не готов к этому)) поэтому пока опустим данный факт.
В техническом плане вопросов нет, но все же:
— что все файлы сайта запихивать в репозиторий? Тут еще одно мое недопонимание. Я считаю что правильно в репозитории держать только те файлы, которые важны для разработки, все остальное оставляя в игноре. Но есть и огромные минусы такого моего подхода. Ну во первых не всегда ясно что понадобится, особенно если сайт представляет собой незнакомый движок или самописку и там один только автор знает где у него что. Ну и во вторых, имея такой репозиторий на основании его нельзя поднять полноценную копию сайта. Я помню мы как-то обсуждали этот вопрос с Артемом Зерновым и он сказал, что да — он добавляет в репозиторий сайт целиком. Поэтому вопрос, как поступаете вы?
— как изменения с удаленного репозитория попадают на действующий сайт? Мы не можем выполнить git clone изначально чтобы клонировать репозиторий на продакшен сервер. Клонирование может быть произведено либо в отдельную директорию имя которой мы укажем либо в текущую директорию при условии что она пуста. Но у нас там файлы сайта. И выход только один, все удалить, склонировать репозиторий, но! мы ведь в репозиторий не будем добавлять все директории и файлы сайта, а значит предварительно перед этой операций нужно сделать копию всех файлов сайта, затем после того как слонирован репозиторий вернуть недостающие файлы на сервер (и скорее всего это придется делать пофайлово и это займет не один час) и все это время сайт на продакшене будет недоступен.
Посетители не видят сайт, заказчик злой, плюс предварительно нужно отключить все рекламные компании по сайту и прочие приблуды… Звучит как репетиция ада и на самом деле примерно так и происходит в реальности. Я вот по этому и «насильно» у всех выпытываю как же они пользуются этим инструментом, но как правило в ответах только общие фразы и рассказ о том как удобно. Но наверное это происходит от того, что мало кто «страдает такой ерундой» как поддержка и переработка старых, пришедших от других разработчиков сайтов.
Думаю что есть огромная разница между разработкой кода фреймворка и работы с существующим проектом. К примеру да, я не представляю как правильно вести поддержку сайта, пришедшего со стороны.
Берет директор на обслуживание и доработку сайт, скажем на битриксе, уже работающий три года проект, весом 150 гигабайт и базой данных в 17 000 000 записей. И говорит — а теперь мы все переделываем ( о как часто я слышу эту фразу). И начинается список задач, от задач по изменению и добавлению логики, так и визуальных — работы с версткой. И такие задачи не выполнишь просто с файлами, поскольку чтобы увидеть результат. сам сайт должен функционировать. Тоесть если мы меняем какую то логику работы с товарами, то чтобы понять получилось или нет — нужны товары, а товары это записи в базе данных.
Если не сложно, Сергей, можете написать именно цепочку конкретных действий, которую вы бы использовали вот для такой задачи.
1. Есть работающий «старый» сайт. Размещен на хостинге заказчика, весит сотню гигов, база данных огромна.
2. Руководителем ставится задача — теперь мы занимаемся обслуживанием и переработкой сайта и сразу например ряд задач (от изменения внешнего вида до изменения логики работы с заказами)
3. Есть два программиста, которые должны работать одновременно. Естественно на работающий сайт должны попадать уже только проверенные программные решения.
И проблемы, которые я предвижу ввиду своей неопытности:
1. Нужна как минимум одна копия сайта, с которой нужно вести работу. Проблема скорее не технического, а жизненного характера, поскольку заказчик на предложение докупить на своем выделенном сервере еще 150 гигов, скажет — а не пошли бы вы. Но это так, реалии жизни.
2. команда git clone не может быть выполнена не в пустой директории. А это означает, что для того чтобы взять под контроль версий работающий сайт, его файлы придется удалять. (причем удалить все, выполнить клонирование с удаленного репозитория, а затем восстановить файлы, которые не содержаться в репозитории). Может данную проблему уже научились решать или правильнее инициализировать репозиторий как раз на живом сайте… именно поэтому я и спрашиваю совета у вас более опытных.
3. Программист 1 сделал свою работу, результатом которой есть некая ветка Ветка1 уже запушеная на гитхаб. Второе в тоже время закончил свою работу и результат Ветка2. Оба они идут на сервер, на котором расположен тестовый сайт, делают пулл своих изменений и переключаются на свои ветки. Но сервер то один, репозиторий то один, а значит в один момент времени может быть активная только одна ветка. Программист 1 включает свою ветку, начинает проверять работает ли его фича по заказам, но в этот момент программист 2 включает свою ветку — в итоге файлы на сайте меняются, у первого все перестало работать…
4. Опять таки, чтобы избежать проблем в пункте 3 я вижу только вариант, что у каждого разработчика есть еще и своя версия сайта (тоесть полноценно работающая, с базой данных и прочее), на которой он может проверить свой код.
ps.Кто такой Шифу?
pss Иван, а можно ссылку на ту инструкцию?
Так что не удивительно, что разработчики «смотрят» и в другие стороны. Я в последнее время «влюбился» в микрофреймворк SLIM 4 и очень кайфую от возможности масштабировать его в любую сторону -контейнер зависимостей, любые шаблонизаторы (есть ТВИГ адаптированный под Slim), Doctrine для работы с сущностями, весь composer, жесткое следование psr-7 и psr-15…
***
***
'tvPrefix'=>''
]}
без такой надписи к имени ТВ добавляется tv.latestTag
добавив ее вы сможете обращаться просто к {latestTag}
Что вы хотите в финале получить?
ТВ… не открывают доступ к шаблонам или как вы там сформулировали.
Обращаясь к вы обращаетесь к текущему ресурсу. Если вы вызываете это на странице категории, но к категориям не привязан данный ТВ то вы ничего и не получите.
Если вы хотите на странице категории прописать какое-то условие, связанное с ТВ которое есть у продукта, вам нужно получить это значение у какого-то конкретного продукта. к примеру так
где 55 айдишник какого-то товара.
Но скорее всего вы хотите что то делать с этим ТВ у товара, только не на странице товара, а в категории. Вы пишите
Как выводятся? Наверное же каким-то сниппетом? К примеру если это pdoResources то нужно воспользоваться параметром includeTVs и добавить к выборке ваше ТВ. Тогда в чанке, который отвечает за отображение одного товара вы сможете оперировать
И кстати последуйте совету Дмитрия, перепишите варианты выбора для ТВ. Правильнее Нет==0||Да==1 Тогда в выпадающем списке вы будете видеть Да или Нет, а в коде оперировать нулем или единицей.
Мало того, что ты обязан знать точно как называются методы объекта modx, написать его почти полностью, но и это не дает эффекта. Только если ты сотрешь несколько букв из уже написанного метода и напишешь их снова то только тогда увидишь подсказку. То есть понимаете да, я пишу $modx->sendRed и ничего никаких подсказок, потом стираю Red и пишу заново Red и только тогда вижу подсказку, что такой метод существует.
Kubuntu 19.04, apache2, php7.2, mysql 5.7.28.
Заработало, но не сразу.
Я выставил опцию (могу назвать неточно), но мол установить демо-сайт и получил ошибку на финальном этапе.
а причина явно в том, что пользователя я то переназвал на прошлом экране и теперь он не admin. Нужно подправить этот момент вам, но это мелочи.
Как правило, желание делать что-то изящно, возникает тогда, когда в руках много известных технологий и знаний, когда видишь различные пути решения одной и той же задачи.
Но когда этого нет, то «Понимаю, что можно сделать через pdoResources,» — это шикарный вариант.
Попробую описать.
Если внутри php файла обратиться к $modx-> то предлагаются лишь стандартные функции, не имеющие отношения к модексу.
Начинаю прописывать руками, к примеру $modx->sendR но мне снова предлагаются лишь стандартные функциии и никакого sendRedirect (пролистал весь лист предлагаемых подстановок и ничего похожего на sendRedirect()) Но! Стоит удалить букву R в $modx->sendR и прописать ее снова, то в этом случае уже подсказывается, что есть такой метод.
Но даже в этом случае, когда я выбрал предложенный метод sendRedirect() редактор не подсказывает, какие параметры к примеру этот метод должен принимать.