В логах много варнингов: использования null как массива и т.п. Это конечно постепенно исправляют. Но приходится лезть в код продукта, чтобы понять, корректно ли отрабатывает нужный код. Для программистов битрикс это ад, постепенно все слазят с него в пользу более элегантных решений (я про фреймворки php и js). Творение, вернее месево, из php и js никому уже не хочется разгребать.
Евгений, при всей моей нелюбви в определённых вопросах к битриксу (да, у меня уже больше 10 лет опыта накопилось), не вижу альтернатив. Фреймворки - это хорошо, но... только для разработчика. А ведь есть ещё редактора. И это ад, пилить под каждый пук свою форму, свой интерфейс. Поверьте, я знаю о чём говорю, есть опыт Flask/Gunicorn (в python), свой API на PHP + фронт VUE... В общем, как это ни парадоксально, но для чего-то более-менее сложного, что постоянно должно обновляться редактором, не являющимся профессиональным программистом, я не вижу альтернатив.
P.S. А вот самая жесть начинается, когда битрикс скрещивают с каким-нибудь фреймворком (не важно бэк или фронт) - его и редактировать уже нельзя и всю красоту программистскую он теряет...
2 года я с ним мудрую. Это реальное недоразумение. Документация - полный отстой, принцип написания кода - жесть жуткая. Пересечение кучи js и php - это реально мрак. Но за него платят, и платят хорошо. Но это недопродукт
Коллеги, предупреждаю, всё описанное в данном топике является ВРЕДНЫМ СОВЕТОМ. Я рекомендую не пытаться повторить мой эксперимент, поскольку он может привести к некорректной работе устанавливаемых модулей. Однако знать о подобной возможности следует в первую очередь новичкам, которые могут столкнуться с проектом, где такой метод использовался.
В ходе эксперимента не пострадало ни одного сайта и ни одного правообладателя. Я приношу свои искренние извинения Роману за то, что эксперимент проводился на его модуле.
Здравствуйте! Большое спасибо за разъяснение! Мне пришлось столкнутся с таким проектом и там печаль;((( С проекта нужно выгрузить любым доступным способом остатки и нашелся нужный модуль, не чем другим не выходит. Я его приобрел благо он недорог, получил ключ, установил демо БУС, но он отказался активироваться на демо сославшись, что я его "развожу"))) Понятно дело на истекшем он не активируется, а остатки очень нужны (((( Может быть я смогу с кем нибудь "договориться" передать ключ и попросить скачать модуль и мне прислать его для установки. ПСы, могу потом его вам задарить так как более не нужен будет. Заранее спасибо за ответ!
Просто оставлю этот пост здесь для того, чтобы не искать.
Иногда бывает так, что никто ничего не трогал, но вдруг неожиданно вместо сайта висит 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 уроков (не считая вводного с разметкой шаблона на области) - это лишь начало цикла. Каждая статья описывает работу максимально подробно (вплоть до описания последовательности нажатия кнопок для создания инфоблока), но с учётом ранее поданной информации. Уже выпущенные уроки:
Павел Плоходько, в предверии стабилизации бутстрапа версии 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) как-то не культурно сразу дверь вышибать, не проверив подходят ли ключи от замка
В статье некоторые вещи опущены, некоторые упрощены. Ряд решений сознательно "не оптимальны", однако статья писалась для не опытных разработчиков, с целью создания УРОКА. Это пошаговая инструкция и демонстрация. Прошу поддержать, если такой материал кажется вам полезным.
С началом декабря все партнёры активизировались - предновогодний высокий сезон стимулирует. Моё новое решение за 2 дня после выпуска неплохо подросло в ТОПах (благо бесплатное). Однако есть и грустные моменты. Начну издалека.
Зачем разработчики делают бесплатные решения для маркета? Я вижу несколько основных причин:
для рекламы своих услуг (в том числе по интегрированию этого самого решения) (примеров не будет, т.к. это граничило бы с обвинениями на мой взгляд)
для рекламы других своих решений (например, ПАЛ одно время рекламировал "Лендинг Парфюмерии", что не помогло последнему)
для продажи каких-то своих доп продуктов (это все бесплатные платёжные шлюзы и онлайн консультанты)
Как видим, довольно узкий набор. Покупки внутри приложений обсуждались с партнёрами уже больше года назад, но видимо "не взлетели" (да и не верю я в них). Пожертвования не работают (я встретил всего 1 такую попытку, когда человек купил лендинг Парфюмерии с целью сказать спасибо за бесплатный ПАЛ).
Как видим, первые 2 варианта некоммерческие, последние 3 имеют серьёзную специфику и рискуют натолкнуться на Правила Маркета. Оказывается использование Маркета как рекламной площадки запрещено... Остаётся мой "любимый" пункт про ссылку из решения. И есть только 1 загвоздка... Дело в том, что наши пользователи не хотят сохранять ссылку на автора. Я и сам этим грешу (ну по крайней мере в прошлом точно грешил, сейчас вроде бы стараюсь держаться приличий). Моё типовое решение "Простой Адаптивный Лендинг" пережило 1600+ установок (считая установки в виртуальной лаборатории и на демо сборки). Я знаю как минимум о 100+ работающих копиях (часть из которых помогал кастомизировать или устанавливать). И 99% из них (если не 100%) удалили мой копирайт. Откуда я это знаю? Потому что я внедрил "защиту". Я не предъявлял претензий никому, ибо не было письменных договорённостей, что люди должны оставить копирайт (а совести у них не нашлось), поэтому я не предъявлял претензий никому из установших решение, просто с какой-то версии прошил ссылку жёстко и скрытно. Однако задумавшись над новым типовым решением я захотел быть прозрачнее и честнее.
Зачем нужна кастомная лицензия? Когда мы устанавливаем БУС мы читаем и принимаем лицензионное соглашение. Оно проприетарное. А в природе таких лицензий существует вагон и маленькая тележка. И некоторые из них в свете вышесказанного мне нравятся больше. Например те, что требуют сохранения ссылки на автора. А ещё в своём решении вы можете использовать чьё-то чужое решение. Как я. "Сайт STURTUP'а" базируется на решении https://graygrids.com/item/startup-boo...-template/. И наши индийские друзья хотят очень немногого. Они хотят 8$ за право снять из копирайт. Но платить им надо напрямую, т.е. с маркетом 1С-Битрикс не интегрироваться. И платить надо ДО того как снимешь ссылку. А платежи из маркета приходят... В общем, кто продаёт модули знает как они ходят... Что делать в таком случае? Добавлять свою кастомную лицензию. Я просто добавил шаг в мастер установки, где необходимо поставить галочку.
Как "гарантировать" постановку копирайта в бесплатном типовом решении для маркета Битрикс? Правильный ответ - никак Неправильный ответов у меня 2:
1) см https://github.com/lexnekr/bitrix_exam...arketplace - просто зашить ссылку внутрь шаблона максимально незаметно (использовать склейку домена из нескольких кусков, инклуды и прочую ересь по вкусу. Скрыть от юзера с помощью CSS. Риск для пользователей - санкции от Яндекс/Google за клоакинг. Риск для автора - вашу хитрость раскусят и будут ругать
2) см https://github.com/lexnekr/startup - добавить и в модуль какой-нибудь хитрый функционал, который будет проверять наличие ссылки на странице. Мне было лень, я сделал очень просто (любой программист найдёт за 5 минут и поправит за 1 секунду). Надо понимать, что городить полноценный DRM дело довольно гиблое. Я например, ничего не шифрую, не обфусцирую и не прячу. Я делаю не защиту, а удобный инструмент информирования пользователя:
храним в настройках модуля ключ (генерируем на основе ключа БУС для уникальности)
специальным компонентом выводим копирайт. Если в настройках есть ключ, то разрешаем копирайт убрать или заменить
другим компонентом проверяем наличие на странице первого и выводим JS уведомление
Ещё раз повторю - я не собирался защищать решение. Если у вас хватает навыков убрать оба компонента и вы считаете, что вы имеете на это право без ключа - делайте. Я ничего не могу поделать с вами (и не хочу). Более того, я получил от авторов оригинального дизайна примерно такой же ответ:
OK, it's not a problem. However, it should be borne in mind that even a reference to myself, users often removed. I can not take responsibility for their actions. = (
Именно поэтому всем пользователям решения "Сайт STARTUP'а" я предлагаю на выбор типы лицензии:
Бесплатная лицензия Решение STARTUP распространяется бесплатно при условии соблюдения лицензии:
Лицензионное соглашение
Вы не можете удалять ссылку на авторов шаблона и решения без приобретения РАСШИРЕННОЙ ЛИЦЕНЗИИ.
Вы можете использовать шаблон и решение в своих личных и коммерческих целях.
Вы можете изменять шаблон и решение для себя и своих клиентов.
Вы не можете перепродавать решение и шаблон третьим лицам.
Для использования решения без указания авторства дизайна Шаблона компании GrayGrids и интеграции с 1С-Битрикс Задойного А.В. возможно в рамках расширенной коммерческой лицензии либо ограниченной лицензии. Бесплатный лицензионный ключ FREE
Ограниченная лицензия Может быть выдана автором решения по запросу. Ограниченная лицензия в отличие от бесплатной позволяет снять копирайт автора интеграции с 1С-Битрикс (но не копирайт GrayGrids). Ограниченная лицензия может быть предоставлена в случае:
Вклада в функционал решения (рекомендуется в запросе давать ссылки на конкретные Pull Request'ы из GitHub)
Как приобрести ограниченную лицензию бесплатно (до 27 января 2015) почти ничего не делая
Расскажите о мероприятии "Открой Настоящую Данию" в своём блоге или на сайте с указанием ссылки событияhttps://discoverdenmark.timepad.ru/event/271657/, сделайте ретвит любого официального сообщения в twitter или репост в Facebook/Instagramm/Вконтакте.
Напишите автору решения на a@coffeediz.ru с описанием вашего подвига (и желательно ссылками на ваши сообщения)
Укажите код лицензионного ключа 1С-Битрикс сайта для которого планируется использовать решение.
В случае подтверждения получите 1 лицензионный ключ абсолютно бесплатно.
Помощь в установке решения на сайт под управлением 1С-Битрикс
Замена контента предоставленным заказчиком
Возможность указать в копирайте произвольную информацию
Приоритет в приёме заявок на разработку нового функционала
Лицензия Graygrid на шаблон Startup
Правила лицензирования:
Устанавливая решение вы принимаете лицензионное соглашение, указанное выше
Лицензируется каждый ключ 1С-Битрикс отдельно:
Все сайты на 1 ключе (многосайтовость) могут использовать решение в рамках 1 расширенной лицензии
Для использования решения в режиме расширенной лицензии на 2 и более лицензионных ключах 1С-Битрикс (разные сайты) необходимо приобретение соответствующего числа расширенных лицензий.
Лицензия на решение STARTUP выписывается на конкретный актуальный ключ 1С-Битрикс** (для генерации ключа потребуется передача ключа автору решения, либо предоставление доступа к сайту)
Лицензируются только активные коммерческие и NFR ключи 1С-Битрикс (не лицензируются DEMO ключи)
Ключ не может быть перевыпущен для другой лицензии 1С-Битрикс (необходимо повторное приобретение лицензии)
* - стоимость указана по состоянию на 25.11.2015 и может быть изменена в связи с изменение курса $ и другими факторами (в связи с тем, что лицензия включает сублицензирование у GrayGrids, оплачиваемое в долларах США) ** - для генерации ключа потребуется передача ключа 1С-Битрикс автору решения или адреса домена, привязанного к лицензионному ключу при регистрации, либо предоставление доступа к сайту.
Заключение Идёт ли всё вышенаписанное вразрез с имеющимися правилами Маркета? Идёт. Но честно говоря я не вижу просто другого способа для реализации такого решения другим путём.
Что-то много слов получилось. Извините, коллеги. Повторюсь - исходные коды открыты. Если вам понравилось решение - используйте как хотите. Даже за минимальную помощь дам ограниченную лицензию. Если купите у автора дизайна лицензию, я поверю вам на слово и дам расширенную.
Неожиданно быстро прошло модерацию моё новое бесплатное типовое решение "Сайт Startup'а" (напомню предыдущее весьма популярное было "Простой Адаптивный Лендинг") Честно говоря, решение "долгострой", поскольку пилилось в свободное время и "для души". Как всегда есть репозиторий на GitHub и приветствуются на пуллреквесты, так и Issue. Решение содержит внутри себя другой мой бесплатный модуль "микроразметка Schema.Org" (и при установке можно выбрать вариант сайта сразу с разметкой). В ближайшее время отправлю в маркет на модерацию новость с описанием решения, поэтому пока прошу просто устанавливать и/или смотреть онлайн демо.
В общем, делюсь по большому счёту радостью. Оригинальный шаблон доступен тут - https://graygrids.com/item/startup-boo...-template/ (впрочем, я его немного дополнил ништяками вроде карты, микроразметки и детальной страницы новости)
P.S. планирую наконец сделать то, что нужно было совершить лет эдак 5 назад - заредизайнить кофедизайн.рф и перевести на этот шаблон. Но для этого нужно собраться с силами, а я ж ведь и на этот простенький модуль убил прорву времени.
Хасанов Максим, магом я был бы, если бы сделал её хотя бы полгода назад, когда реально начал. Или год, когда задумал.
В варианте лонгрида есть блок контактов в виде таблицы красивый (с лого, телефонов и чем угодно).
Портфолио - это просто галерея. Мне тоже не нравится. Но так было в оригинале. Это же лонг-рид первоначально (хотя я его и раскурочил на обычный набор страниц для желающих).
Честно говоря сейчас боюсь может не оказаться времени серьёзные правки вносить. Если бы вы готовы были слегка кастомизировать что-то под свой вкус и поделились (например через github), то я бы собрал обновление. Естественно с меня упоминание вашего вклада.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».