Собственно сайт не мой, ссылку нашёл случайно, ржал долго сам и не удержался - решил поделиться с сообществом - http://www.proficms.ru/forum/spravoch...tsa-4.html забавно, что все посты от имени администратора... Я что-то не понимаю?..
В логах много варнингов: использования null как массива и т.п. Это конечно постепенно исправляют. Но приходится лезть в код продукта, чтобы понять, корректно ли отрабатывает нужный код. Для программистов битрикс это ад, постепенно все слазят с него в пользу более элегантных решений (я про фреймворки php и js). Творение, вернее месево, из php и js никому уже не хочется разгребать.
Евгений, при всей моей нелюбви в определённых вопросах к битриксу (да, у меня уже больше 10 лет опыта накопилось), не вижу альтернатив. Фреймворки - это хорошо, но... только для разработчика. А ведь есть ещё редактора. И это ад, пилить под каждый пук свою форму, свой интерфейс. Поверьте, я знаю о чём говорю, есть опыт Flask/Gunicorn (в python), свой API на PHP + фронт VUE... В общем, как это ни парадоксально, но для чего-то более-менее сложного, что постоянно должно обновляться редактором, не являющимся профессиональным программистом, я не вижу альтернатив.
P.S. А вот самая жесть начинается, когда битрикс скрещивают с каким-нибудь фреймворком (не важно бэк или фронт) - его и редактировать уже нельзя и всю красоту программистскую он теряет...
Коллеги, предупреждаю, всё описанное в данном топике является ВРЕДНЫМ СОВЕТОМ. Я рекомендую не пытаться повторить мой эксперимент, поскольку он может привести к некорректной работе устанавливаемых модулей. Однако знать о подобной возможности следует в первую очередь новичкам, которые могут столкнуться с проектом, где такой метод использовался.
В ходе эксперимента не пострадало ни одного сайта и ни одного правообладателя. Я приношу свои искренние извинения Роману за то, что эксперимент проводился на его модуле.
Небольшая историческая преамбула
1) Я уже много лет являюсь членом нескольких сообществ людей, объединяемых не совсем легальными интересами. Таких как взлом сайтов, Black SEO, взлом лицензионного софта и т.п. 2) Недавно (около 2 месяцев назад) в одном из таких сообществ ко мне обратился за помощью человек, который хотел установить платный модуль из Маркета на вполне себе лицензионный БУС с истекшей лицензией.
Моя позиция в отношении модулей из маркета обычно довольно проста: - с бесплатными модулями можно делать всё, что угодно в собственных целях (в том числе ставить их не через маркет, а напрямую) - с платными модулями следует поступать согласно имеющейся механике. Т.е. покупать ключ, привязывать к БУС, устанавливать через маркет, ни в коем случае не нарушать лицензию. В случае возникновения вопросов обратиться к разработчику решения, как правообладателю. В данном случае переговоры с правообладателем ни к чему не привели, как я понимаю. Впрочем, удивляться не приходится - дать неизвестно кому инсталятор модуля, не привязанный к маркету - всё равно что самостоятельно залить модуль на торренты. Поэтому я всегда настоятельно рекомендую в таком случае обновить лицензию на 1С-Битрикс.
Почему важно обновить платформу? Хотя бы потому, что модули из маркета могут требовать для своей корректной работы последних возможностей АПИ, наличия каких-то событий или компонентов в системе. Минимальные требования проверяются автоматом при установке из маркета, но в "ручном режиме" соблюдения таких требований гарантировать уже не получится.
В рамках сообщества уже была выработана довольно примитивная методика установки бесплатных решений:
Ставим демо-версию БУС (возможно даже в виртуальную лабораторию)
Активируем демо-ключ
Ставим бесплатный модуль из Маркета
Копируем папку с архивом из файловой структуры и переносим на свой проект
Для платных модулей такой сценарий не подойдёт по 2 причинам:
Платные модули нельзя установить на Демо-ключи (даже активированные для получения обновлений БУС)
Демо-версии платных модулей поступают в обфусцированном виде, поэтому подобная методика приведёт к переносу демо-модуля, который придётся дешифровать и "разлочить" - задача не самая тривиальная, как мне кажется. Лично я этим никогда не занимался и смысла в этом не вижу, хотя знаю что в сообществе найдутся умельцы (нашлись же ребята, выковырявшие проверку демо-версии из БУС)
Однако существует простой обходной путь для которого нам нужен "сообщник":
Покупаем модуль из маркета
Привязываем ключ модуля к ключу БУС "сообщника"
Загружаем модуль
Копируем модуль из файловой структуры (поскольку нам понадобится не сам модуль, а его инсталятор, то устанавливать модуль у сообщника не имеет смысла)
Переносим модуль в файловую структуру сайта пациента и наблюдаем картинку наподобие такой:
К сожалению, описанный сценарий позволяет получить неконтролируемую маркетплейсом копию модуля, поэтому установщик может быть поставлен на какое угодно количество сайтов.
Зачем нужен этот пост?
Не за тем, чтобы показать какой я кул-хацкер - описанная методика очевидна для всех разработчиков 1С-Битрикс, работающих с маркетом (как разрабатывающим под него, так и ставящим решения)
Но за тем, чтобы начинающие разработчики ещё раз внимательно обратили внимание на модули из маркета в продукте. К сожалению, помимо уже привычных векторов опасности (говнокод и несовместимость) есть ещё один - установленное "нелицензионное" решение в обход Маркета.
Здравствуйте! Большое спасибо за разъяснение! Мне пришлось столкнутся с таким проектом и там печаль;((( С проекта нужно выгрузить любым доступным способом остатки и нашелся нужный модуль, не чем другим не выходит. Я его приобрел благо он недорог, получил ключ, установил демо БУС, но он отказался активироваться на демо сославшись, что я его "развожу"))) Понятно дело на истекшем он не активируется, а остатки очень нужны (((( Может быть я смогу с кем нибудь "договориться" передать ключ и попросить скачать модуль и мне прислать его для установки. ПСы, могу потом его вам задарить так как более не нужен будет. Заранее спасибо за ответ!
Просто оставлю этот пост здесь для того, чтобы не искать.
Иногда бывает так, что никто ничего не трогал, но вдруг неожиданно вместо сайта висит FatalError с некой функцией. Вдвойне обидно, если это ошибка на какой-нибудь модуль из Маркета (с такой бедой даже в техподдержку не пойдёшь ведь): Вдвойне обидно, если после возврата к бекапу от числа, когда всё 100% работало система работать не начинает. Не помогает и удаление модуля и комментирование проблемного куска. Это говорит о том, что проблема вовсе не там, где мы её наблюдаем и ищем. В моём случае истинная проблема выглядела так:
Class: CHotKeys File: /var/www/u2302529/data/www/xn--80ahcjeib4ac4d.xn--p1ai/bitrix/modules/main/classes/general/hot_keys.php
Line: 764
MySQL Query Error: SELECT * FROM b_hot_keys WHERE (1=1 AND ( USER_ID=1 ) ) [Unknown table engine 'InnoDB']
Увы по подобным ошибкам для 1С-Битрикс мало что ценное удаётся найти, а применительно ко всему остальному интернету рекомендации сводятся к "поправь конфиги сервера БД" и "перезагрузи сервак".
В чём проблема? У меня проблему удалось детектировать с помощью SQL запроса:
SHOW ENGINES
Это дало: Как видим здесь вообще не фигурирует InnoDB!!!
Если вы (как и я в этом случае) обитаете на виртуальном хостинге и не можете ни конфигурировать сервер, ни перезапускать - обратитесь в Техническую поддержку хостера (если ещё этого не сделали, а если сделали, то проделайте аналогичные манипуляции и покажите им результат). Таблицы вашей Базы данных работают в режиме InnoDB, но самой системы нет! А должна быть! Никакие "запросы" или "утилиты" не помогут пока система не появится. А сама проблема может вызывать другие и маскироваться под целым слоем ошибок, никак не связанных с другими компонентами системы, которые вы будете ругать.
Вывод.
Видишь на сайте под 1С-Битрикс Unknown table engine 'InnoDB' - иди к админу.
P.S. альтернативный вариант - перевести базу на работу в режиме MyISAM. P.P.S. вывода "видишь непонятную ошибку, закомментируй этот кусок кода" не делаю - какой-то он... с запашком, в общем... Но иногда только так и доберёшься до реальной ошибки.
Только сегодня словил подобную ересь. Вылечилось само и как-то странно: перезагрузка страницы не помогла, но помог переход в режим администрирования и обратно))) О_О
Ivanov Nikita, вероятно проблема вернётся с пересозданием кеша. Попробуйте в режиме инкогнито зайти и посмотреть. Или через прокси. Есть риск удивиться.
Попридержите коней, не надо переходить на MyISAM. Не понятно, что делать в случае размещения на хостинге (писать в тп), а в случае наличия root-доступа, необходимо удалить ib_logfile0 и ib_logfile1. Для этого остановите службу mysqld, удалите файлы (скорее всего они в /var/lib/mysql) и опять запустите mysql.
У всех разные процессы деплоя. Я вполне допускаю, что кто-то использует git только в IDE для того чтобы пушить на боевой сервер, либо на сервер сборки, откуда например вебхуками код уйдёт на бой. Впрочем даже в последнем случае наверное иногда возникает потребность зайти на бой по ssh и сделать в системе контроля версий НЕЧТО (откатиться, например).
Так вот, мой опрос именно про то, используете ли вы GIT именно на боевом сервере. Ну и если используете, то какие обычно операции выполняете. Если какие-то операции выполняются редко, но регулярно (например, раз в месяц), то интересно было бы узнать в комментариях что это за такие особые сценарии
Задойный Алексей написал: совсем маленькие проекты, которые практически не развиваются.
Повторюсь, раз уж комменты почистили. Довольно странно величину или развитие проекта оценивать по количеству файловых правок контент-редакторами. Количество файловых правок контента нужно сводить к минимуму, в своем комментарии, из которого цитата вставлена, вы сами утверждаете что к этому стремитесь. В битриксе от файловых правок никуда не деться, они будут и через год, и через пять лет, соглашусь. Архитектура такая (но и то возможны варианты). Однако же развитие и величина проекта совсем даже не рядом с тем как часто изменяют страницы проекта в визуальном редакторе. На активно живущем крупном проекте может и вовсе не быть никакого шлака от редакторов. Все зависит от подхода.
Набор из 10 уроков (не считая вводного с разметкой шаблона на области) - это лишь начало цикла. Каждая статья описывает работу максимально подробно (вплоть до описания последовательности нажатия кнопок для создания инфоблока), но с учётом ранее поданной информации. Уже выпущенные уроки:
Оглавление (по мере выпуска новых уроков будет обновляться) Данный цикл не конкурирует с официальной программой обучения 1С-Битрикс. Там вам не дадут (официально) скачать видео уроки, не станут так подробно разжёвывать каждый элемент, каждый шаблон, однако там есть Задания и проверка заданий Преподавателями! Это же скорее памятка, методичка и набор готовых решений.
Цикл статей предназначен для начинающих разработчиков и администраторов-сайтов, желающих повысить свою квалификацию. Опытных программистам многие вещи покажутся упрощёнными - это сделано сознательно!
Так же, немаловажным является наличие репозитория проекта в GitHub, так что знакомство начинающего разработчика с продуктом на базе данного цикла позволит изучить так же хотя бы внешний вид, если не идеологию одной из самых популярных (на данный момент) систем версионирования. Буду признателен, если пожелания и баг-репорты будут поступать в виде ISSUE именно в GitHub.
К сожалению, работа над проектом движется очень медленно (разработку веду в свободное время, так же приходится всё описывать, готовить параллельную ветку в UTF-8 кодировке для GitHub, в общем, КПД ниже, чем просто при разработке на порядок).
В конце данного поста хочется устроить опрос. Сайт Кофе-Дизайн уже давно имеет ряд проблем с вёрсткой, они неоднократно отмечались сообществом, а я обещал их поправить "как только руки дойдут". Возникла даже мысль использовать разрабатываемый в рамках цикла шаблон. Однако лично я очень негативно отношусь с светлому шрифту на тёмном фоне. Мне кажется, этот шаблон создан для просмотра картинок, но никак не для чтения текстов.
Павел Плоходько, в предверии стабилизации бутстрапа версии 4 считаю это бессмысленным для цикла материалов по 2 версии. Да и модальные окна многие считают дурным тоном.
Есть желание добавить настройки модуля (множественное свойство с адресами репозиториев сайта по крайней мере, возможно страница с управлением каждым из них (статус, лог, создание коммита, пуш в удалённый репо, пулл оттуда). Но очень лень.
я думал так, правишь что-то на сайте, поправил, проверил и сразу закомитил кнопки в панели управления. ну или кнопку в панели управления для быстрого перехода на отдельную страницу.
Алексей Мостовой, просто не забывайте, есть же ещё административные разделы, компоненты и т.п. Их тоже иногда правят на сайте. Но не через публичку, как правило. Их тоже хочется держать под контролем.
Про поправил, проверил закоммитил. Я же не против! Я только ЗА. Описанный в статье коллег метод повесить агент и коммитить КАЖДОЕ изменение мне кажется... спорным. У меня есть редактора, которые по 10 раз правят 1 страницу. Каждый раз по чуть-чуть. Дерево коммитов распухнет до неприличия. Давайте тогда попробуем проработать сценарий.
Вот пожалуй самый адский вариант:
Я захожу с публичку и правлю от 1 до Х страниц (тексты, мета теги и свойства, параметры компонентов).
Ещё я правлю отсюда же шаблон/result_modifier/component_epilog/style/script...
Естественно у меня многосайтовость, поэтому публичка - это репозитории А1...An, local - репозиторий B, а /bitrix/ - репозиторий C (а значит я внёс изменения уже в 2-3 разных репозитория), а ещё могут быть субмодули...
Помимо меня на сайте работают редактора контента. Они тоже поправили файлы публички (другие). Но у них прав на работу с GIT нет. Наверное их правки надо закоммитить, но отдельно от моих.
Боюсь последствия таких правок из панели инструментов в публичке не решить (если вы представляете как, буду рад идеям, а лучше готовым решениям, благо исходный код модуля открыт для Pull_Request'ов).
Хотя если я 1, поправил контакты и хочу тут же закоммитить правку, то действительно можно было бы в публичке сделать 3 кнопки в панели инструментов... Вот только... Не случится ли эксцесс, если кто-т опривыкнет к таким случаям, а потом попадёт в ситуацию, описанную выше?
Ещё перед новым 2016 годом стартовала пробная сдача очных экзаменов в которой я принял участие. Странно, что до сих пор из других участников не поделился своим опытом. Ну, поскольку теперь эта сертификация объявлена обязательной для получения партнёрского статуса с определённого момента (см партнёрский блог 1с-битрикс), поделюсь своими впечатлениями. http://xn--80ahcjeib4ac4d.xn--p1ai/in...xperience/
Антон Пилецкий, ага про неё родимую. 1) для уровня этого экзамена знать о такой конструкции нет нужды 2) как-то не культурно сразу дверь вышибать, не проверив подходят ли ключи от замка
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».
Фреймворки - это хорошо, но... только для разработчика.
А ведь есть ещё редактора.
И это ад, пилить под каждый пук свою форму, свой интерфейс.
Поверьте, я знаю о чём говорю, есть опыт Flask/Gunicorn (в python), свой API на PHP + фронт VUE... В общем, как это ни парадоксально, но для чего-то более-менее сложного, что постоянно должно обновляться редактором, не являющимся профессиональным программистом, я не вижу альтернатив.
P.S. А вот самая жесть начинается, когда битрикс скрещивают с каким-нибудь фреймворком (не важно бэк или фронт) - его и редактировать уже нельзя и всю красоту программистскую он теряет...