Фриланс: веб-программирование
293 открытых заказа
Закажите услуги фрилансеров для вашего проекта прямо сейчас!
Размещение заказа на фриланс бирже бесплатно, а предложения поступят уже через несколько минут.
Необходимо добавить блоки "Наша команда", "котировки" и "калькулятор", как тут ссылка (на главной), с полной функциональностью, но в дизайне существующего ... Читать дальше
Необходимо добавить блоки "Наша команда", "котировки" и "калькулятор", как тут ссылка (на главной), с полной функциональностью, но в дизайне существующего другого сайта. Например, работать этот блок должен так же ссылка, подтягивая данные с ссылка парсингом, но внешне должен быть выполнен в шрифтах и дизайне другого сайта. Свернуть
1 заявка
4 дня назад
Следует расширить функционал стандартному тегу Hide для последней версии DLE, таким образом, что бы он закрывать часть контента для всех ... Читать дальше
Следует расширить функционал стандартному тегу Hide для последней версии DLE, таким образом, что бы он закрывать часть контента для всех кроме определенных пользователей (по нику и/или е-мейл) и определённой группы(по ID).
Тег должен работать в краткой и полной новостях, на статических страницах и в комментариях.
Смутно но я надеюсь понятно.
Оплата по средствам WEB-money на Z-кошелёк после завершения работы и её проверки.
Описание установки - в наличии представить. Свернуть
Тег должен работать в краткой и полной новостях, на статических страницах и в комментариях.
Смутно но я надеюсь понятно.
Оплата по средствам WEB-money на Z-кошелёк после завершения работы и её проверки.
Описание установки - в наличии представить. Свернуть
нет заявок
4 дня назад
ссылка
фронтенд для платёжного p2p шлюза, бэкенд готов. В начале клиент выбирает банк из списка доступных, далее ему показывается номер ... Читать дальше
фронтенд для платёжного p2p шлюза, бэкенд готов. В начале клиент выбирает банк из списка доступных, далее ему показывается номер ... Читать дальше
ссылка
фронтенд для платёжного p2p шлюза, бэкенд готов. В начале клиент выбирает банк из списка доступных, далее ему показывается номер карты, на которую ему нужно перевести рубли для пополнения счета. Есть кнопки скопировать номер карты, возможно QR код, который направит в банковское приложение на страницу с переводом (если это возможно), кнопка для связи с саппортом в случае возникновения проблем или вопросов по поводу платежа. Исполнителю заказа необходимо набросать варианты, чтобы была возможность выбрать из них тот, что больше понравится. Пример того, как это может выглядеть в приложенных файлах. Работа по безопасной сделке, все комиссии беру на себя
Тут апи ссылкаСвернуть
фронтенд для платёжного p2p шлюза, бэкенд готов. В начале клиент выбирает банк из списка доступных, далее ему показывается номер карты, на которую ему нужно перевести рубли для пополнения счета. Есть кнопки скопировать номер карты, возможно QR код, который направит в банковское приложение на страницу с переводом (если это возможно), кнопка для связи с саппортом в случае возникновения проблем или вопросов по поводу платежа. Исполнителю заказа необходимо набросать варианты, чтобы была возможность выбрать из них тот, что больше понравится. Пример того, как это может выглядеть в приложенных файлах. Работа по безопасной сделке, все комиссии беру на себя
Тут апи ссылкаСвернуть
2 заявки
4 дня назад
Конфигуратор необходимо разрабатывать на TypeScript и Vue3.
Для 2d графики используется svg.js
Для 3d графики используется three.js
Требования:
- Опыт ... Читать дальше
Для 2d графики используется svg.js
Для 3d графики используется three.js
Требования:
- Опыт ... Читать дальше
Конфигуратор необходимо разрабатывать на TypeScript и Vue3.
Для 2d графики используется svg.js
Для 3d графики используется three.js
Требования:
- Опыт работы с Vue3
- хорошее понимание математики, 2d и 3d геометрии
Плюсом будет:
- Знание node.js (Express, Nest)
- Знание postgresql
- Знание three.js
- Опыт динамической работы с SVG (svg.js или raphaelJS)
- Опыт работы с Docker
В ответе напишите, чем из вышеприведённых технологий владеете и в каких проектах подобной тематики участвовали. Если Ваш опыт и портфолио проектов будет релевантно, пришлю ссылку на ТЗ для оценки стоимости и сроков работ Свернуть
Для 2d графики используется svg.js
Для 3d графики используется three.js
Требования:
- Опыт работы с Vue3
- хорошее понимание математики, 2d и 3d геометрии
Плюсом будет:
- Знание node.js (Express, Nest)
- Знание postgresql
- Знание three.js
- Опыт динамической работы с SVG (svg.js или raphaelJS)
- Опыт работы с Docker
В ответе напишите, чем из вышеприведённых технологий владеете и в каких проектах подобной тематики участвовали. Если Ваш опыт и портфолио проектов будет релевантно, пришлю ссылку на ТЗ для оценки стоимости и сроков работ Свернуть
2 заявки
4 дня назад
На сайте есть две кнопки:
1. Кнопка «Заказать». После нажатия на эту кнопку, человек автоматически совершает заказ (то есть перескакивает ... Читать дальше
1. Кнопка «Заказать». После нажатия на эту кнопку, человек автоматически совершает заказ (то есть перескакивает ... Читать дальше
На сайте есть две кнопки:
1. Кнопка «Заказать». После нажатия на эту кнопку, человек автоматически совершает заказ (то есть перескакивает Корзину) и сразу переходит на страницу оплаты
<button type="submit" name="add-to-cart" value="1267" class="single_add_to_cart_button button alt">Заказать</button>
2. Кнопка «Отправить». После нажатия на эту кнопку, человек также переходит на страницу оплаты заказа, но так как это не кнопка «Заказать», то при переходе на эту страницу пользователю появляется окно, что его корзина пуста. + на мою почту приходит определённое письмо при нажатии на эту кнопку.
<input type="submit" class="qsm-btn qsm-submit-btn qmn_btn" value="Отправить">
Или же этот код (это уже код из файла)
<input type="submit" class="qsm-btn qsm-submit-btn qmn_btn" value=' . esc_attr( $options->submit_button_text ) . ' />
Задача: нужно объединить функционал этих двух кнопок в одну. То есть при нажатии на кнопку я должна буду попадать на страницу оплаты и не будет окна, что товар не был добавлен + на мою почту также будет приходит определённое письмо (при нажатии на кнопку) Свернуть
1. Кнопка «Заказать». После нажатия на эту кнопку, человек автоматически совершает заказ (то есть перескакивает Корзину) и сразу переходит на страницу оплаты
<button type="submit" name="add-to-cart" value="1267" class="single_add_to_cart_button button alt">Заказать</button>
2. Кнопка «Отправить». После нажатия на эту кнопку, человек также переходит на страницу оплаты заказа, но так как это не кнопка «Заказать», то при переходе на эту страницу пользователю появляется окно, что его корзина пуста. + на мою почту приходит определённое письмо при нажатии на эту кнопку.
<input type="submit" class="qsm-btn qsm-submit-btn qmn_btn" value="Отправить">
Или же этот код (это уже код из файла)
<input type="submit" class="qsm-btn qsm-submit-btn qmn_btn" value=' . esc_attr( $options->submit_button_text ) . ' />
Задача: нужно объединить функционал этих двух кнопок в одну. То есть при нажатии на кнопку я должна буду попадать на страницу оплаты и не будет окна, что товар не был добавлен + на мою почту также будет приходит определённое письмо (при нажатии на кнопку) Свернуть
7 заявок
4 дня назад
Есть интернет магазин ссылка
Нужно доработать хлебные крошки.
При выборе товара нужно добавить подкатегорию в которой он находиться и производитель ... Читать дальше
Нужно доработать хлебные крошки.
При выборе товара нужно добавить подкатегорию в которой он находиться и производитель ... Читать дальше
5 заявок
4 дня назад (повторно)
Разработан проект который выходит на рынок США, требуется подлкючить к сайту криптобиржу и разработать CRM систему, где будет вестись учет ... Читать дальше
Разработан проект который выходит на рынок США, требуется подлкючить к сайту криптобиржу и разработать CRM систему, где будет вестись учет всех передвижений финансов по сайту. Все оплаты будут производиться криптовалютой. + В дальнейшем даем возможность работать трейдером для поддержания финансов, что бы не терять бюджет. Свернуть
4 заявки
4 дня назад
Есть небольшой проект на Laravel. Нужно поднять и настроить его на виртуальном сервере.
4 заявки
5 дней назад
Есть несколько заданий по настройке бизнес-процесса при помощи manychat (более детально распишу при общении).
нет заявок
5 дней назад
На сайте есть 4 готовые формы
Формы готовы, нужна настройка отправки с них данных на email
Формы готовы, нужна настройка отправки с них данных на email
9 заявок
5 дней назад
Приветствую
Интернет-магазин на Битриксе вдруг стал сильно нагружать сервер и тормозить.
Причем раньше такого небыло. Бекап сайта на дату когда ... Читать дальше
Интернет-магазин на Битриксе вдруг стал сильно нагружать сервер и тормозить.
Причем раньше такого небыло. Бекап сайта на дату когда ... Читать дальше
Приветствую
Интернет-магазин на Битриксе вдруг стал сильно нагружать сервер и тормозить.
Причем раньше такого небыло. Бекап сайта на дату когда было все нормально не помог.
Трафик на сайт обычный 100-200 человек в день.
Тех поддержка хостинга проанализировала , говорит что много запросов на БД SQL надо оптимизировать или битркис и базу.
Сообщение от поддержки:
mysql> explain SELECT DISTINCT BS.ID AS ID, BS.DEPTH_LEVEL AS DEPTH_LEVEL, BS.NAME AS NAME, B.SECTION_PAGE_URL AS SECTION_PAGE_URL, BS.SORT AS SORT, BS.PICTURE AS PICTURE, BS.DETAIL_PICTURE AS DETAIL_PICTURE, BS.CODE AS CODE, BS.XML_ID AS EXTERNAL_ID, B.IBLOCK_TYPE_ID AS IBLOCK_TYPE_ID, BS.IBLOCK_ID AS IBLOCK_ID, B.CODE AS IBLOCK_CODE, B.XML_ID AS IBLOCK_EXTERNAL_ID, BS.GLOBAL_ACTIVE AS GLOBAL_ACTIVE, BS.LEFT_MARGIN AS LEFT_MARGIN,COUNT(DISTINCT BE.ID) as ELEMENT_CNT, BUF.UF_PHOTO FROM b_iblock_section BS INNER JOIN b_iblock B ON BS.IBLOCK_ID = B.ID LEFT JOIN b_uts_iblock_28_section BUF ON BUF.VALUE_ID = BS.ID INNER JOIN b_iblock_section BSTEMP ON BSTEMP.IBLOCK_ID = BS.IBLOCK_ID LEFT JOIN b_iblock_section_element BSE ON BSE.IBLOCK_SECTION_ID=BSTEMP.ID LEFT JOIN b_iblock_element BE ON (BSE.IBLOCK_ELEMENT_ID=BE.ID AND ((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL ) AND BE.IBLOCK_ID = BS.IBLOCK_ID ) AND BE.ACTIVE='Y' AND (BE.ACTIVE_TO >= now() OR BE.ACTIVE_TO IS NULL) AND (BE.ACTIVE_FROM <= now() OR BE.ACTIVE_FROM IS NULL)) WHERE 1=1 AND BSTEMP.IBLOCK_ID = BS.IBLOCK_ID AND BSTEMP.LEFT_MARGIN >= BS.LEFT_MARGIN AND BSTEMP.RIGHT_MARGIN <= BS.RIGHT_MARGIN AND BSTEMP.GLOBAL_ACTIVE = 'Y' AND ((((BS.IBLOCK_ID = '28')))) AND ((((BS.GLOBAL_ACTIVE='Y')))) AND ((((BS.DEPTH_LEVEL <= '3')))) AND ((((B.ID = '28')))) AND ((((B.ACTIVE='Y')))) AND (( B.ID IN ( SELECT IBLOCK_ID FROM b_iblock_group IBG WHERE IBG.GROUP_ID IN (2) AND IBG.PERMISSION >= 'R' AND (IBG.PERMISSION='X' OR B.ACTIVE='Y') ) OR (B.RIGHTS_MODE = 'E' AND EXISTS ( SELECT SR.SECTION_ID FROM b_iblock_section_right SR INNER JOIN b_iblock_right IBR ON IBR.ID = SR.RIGHT_ID INNER JOIN b_user_access UA ON UA.ACCESS_CODE = IBR.GROUP_CODE AND UA.USER_ID = 0 WHERE SR.SECTION_ID = BS.ID AND IBR.OP_SREAD = 'Y' )) )) GROUP BY BS.ID, B.ID ORDER BY BS.LEFT_MARGIN asc;
+----+--------------------+--------+------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+---------+--------------------------------------+------+----------+----------------------------------------------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+--------------------+--------+------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+---------+--------------------------------------+------+----------+----------------------------------------------------+
| 1 | PRIMARY | B | NULL | const | PRIMARY | PRIMARY | 4 | const | 1 | 100.00 | Using temporary; Using filesort |
| 1 | PRIMARY | BS | NULL | ref | ix_iblock_section_1,ix_iblock_section_depth_level,ix_iblock_section_left_margin,ix_iblock_section_right_margin,ix_iblock_section_code | ix_iblock_section_1 | 4 | const | 1417 | 3.33 | Using index condition; Using where |
Aleksey Posevin,
| 1 | PRIMARY | BUF | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.BS.ID | 1 | 100.00 | NULL |
| 1 | PRIMARY | BSTEMP | NULL | ALL | ix_iblock_section_1,ix_iblock_section_depth_level,ix_iblock_section_left_margin,ix_iblock_section_right_margin,ix_iblock_section_code | NULL | NULL | NULL | 1250 | 1.11 | Using where; Using join buffer (Block Nested Loop) |
| 1 | PRIMARY | BSE | NULL | ref | ux_iblock_section_element | ux_iblock_section_element | 4 | iceholodse_ice.BSTEMP.ID | 29 | 100.00 | Using index |
| 1 | PRIMARY | BE | NULL | eq_ref | PRIMARY,ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code | PRIMARY | 4 | iceholodse_ice.BSE.IBLOCK_ELEMENT_ID | 1 | 100.00 | Using where |
| 3 | DEPENDENT SUBQUERY | SR | NULL | ref | PRIMARY,ix_b_iblock_section_right_1 | ix_b_iblock_section_right_1 | 4 | iceholodse_ice.BS.ID | 1 | 100.00 | Using index |
| 3 | DEPENDENT SUBQUERY | IBR | NULL | eq_ref | PRIMARY,ix_b_iblock_right_group_code,ix_b_iblock_right_op_eread,ix_b_iblock_right_op_sread | PRIMARY | 4 | iceholodse_ice.SR.RIGHT_ID | 1 | 100.00 | Using where |
| 3 | DEPENDENT SUBQUERY | UA | NULL | ref | ix_ua_user_provider,ix_ua_user_access,ix_ua_access | ix_ua_user_provider | 5 | const | 1 | 10.00 | Using where |
| 2 | DEPENDENT SUBQUERY | IBG | NULL | unique_subquery | ux_iblock_group_1 | ux_iblock_group_1 | 8 | func,const | 1 | 33.33 | Using where |
+----+--------------------+--------+------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+---------+--------------------------------------+------+----------+----------------------------------------------------+
Они отправляются при открытии сайта и переходах между страницами и каждый обходит по 2-3 тысячи строк. Это вызывает нагрузку на MySQL, что в свою очередь создаёт нагрузку на процессор.
mysql> explain SELECT BE.ID as ID,BE.NAME as NAME,BE.IBLOCK_ID as IBLOCK_ID,B.DETAIL_PAGE_URL as DETAIL_PAGE_URL,BE.IBLOCK_SECTION_ID as IBLOCK_SECTION_ID,L.DIR as LANG_DIR,BE.CODE as CODE,BE.XML_ID as EXTERNAL_ID,B.IBLOCK_TYPE_ID as IBLOCK_TYPE_ID,B.CODE as IBLOCK_CODE,B.XML_ID as IBLOCK_EXTERNAL_ID,B.LID as LID , CAT_PR.QUANTITY as CATALOG_QUANTITY, IF (CAT_PR.QUANTITY_TRACE = 'D', 'N', CAT_PR.QUANTITY_TRACE) as CATALOG_QUANTITY_TRACE, CAT_PR.QUANTITY_TRACE as CATALOG_QUANTITY_TRACE_ORIG, CAT_PR.WEIGHT as CATALOG_WEIGHT, CAT_PR.VAT_ID as CATALOG_VAT_ID, CAT_PR.VAT_INCLUDED as CATALOG_VAT_INCLUDED, IF (CAT_PR.CAN_BUY_ZERO = 'D', 'N', CAT_PR.CAN_BUY_ZERO) as CATALOG_CAN_BUY_ZERO, CAT_PR.CAN_BUY_ZERO as CATALOG_CAN_BUY_ZERO_ORIG, CAT_PR.PURCHASING_PRICE as CATALOG_PURCHASING_PRICE, CAT_PR.PURCHASING_CURRENCY as CATALOG_PURCHASING_CURRENCY, CAT_PR.QUANTITY_RESERVED as CATALOG_QUANTITY_RESERVED, IF (CAT_PR.SUBSCRIBE = 'D', 'Y', CAT_PR.SUBSCRIBE) as CATALOG_SUBSCRIBE, CAT_PR.SUBSCRIBE as CATALOG_SUBSCRIBE_ORIG, CAT_PR.WIDTH as CATALOG_WIDTH, CAT_PR.LENGTH as CATALOG_LENGTH, CAT_PR.HEIGHT as CATALOG_HEIGHT, CAT_PR.MEASURE as CATALOG_MEASURE, CAT_PR.TYPE as CATALOG_TYPE, CAT_PR.AVAILABLE as CATALOG_AVAILABLE, CAT_PR.BUNDLE as CATALOG_BUNDLE, CAT_PR.PRICE_TYPE as CATALOG_PRICE_TYPE, CAT_PR.RECUR_SCHEME_LENGTH as CATALOG_RECUR_SCHEME_LENGTH, CAT_PR.RECUR_SCHEME_TYPE as CATALOG_RECUR_SCHEME_TYPE, CAT_PR.TRIAL_PRICE_ID as CATALOG_TRIAL_PRICE_ID, CAT_PR.WITHOUT_ORDER as CATALOG_WITHOUT_ORDER, CAT_PR.SELECT_BEST_PRICE as CATALOG_SELECT_BEST_PRICE, IF (CAT_PR.NEGATIVE_AMOUNT_TRACE = 'D', 'N', CAT_PR.NEGATIVE_AMOUNT_TRACE) as CATALOG_NEGATIVE_AMOUNT_TRACE, CAT_PR.NEGATIVE_AMOUNT_TRACE as CATALOG_NEGATIVE_AMOUNT_TRACE_ORIG, CAT_VAT.RATE as CATALOG_VAT FROM b_iblock B INNER JOIN b_lang L ON B.LID=L.LID INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID left join b_catalog_product as CAT_PR on (CAT_PR.ID = BE.ID) left join b_catalog_iblock as CAT_IB on ((CAT_PR.VAT_ID IS NULL or CAT_PR.VAT_ID = 0) and CAT_IB.IBLOCK_ID = BE.IBLOCK_ID) left join b_catalog_vat as CAT_VAT on (CAT_VAT.ID = IF((CAT_PR.VAT_ID IS NULL OR CAT_PR.VAT_ID = 0), CAT_IB.VAT_ID, CAT_PR.VAT_ID)) WHERE 1=1 AND ( ((((BE.ACTIVE='Y')))) AND ( ( ( (BE.ID IN ( SELECT FPV0.VALUE_NUM FROM b_iblock B INNER JOIN b_lang L ON B.LID=L.LID INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID LEFT JOIN b_iblock_property FP0 ON FP0.IBLOCK_ID = B.ID AND FP0.CODE='CML2_LINK' LEFT JOIN b_iblock_element_property FPV0 ON FPV0.IBLOCK_PROPERTY_ID = FP0.ID AND FPV0.IBLOCK_ELEMENT_ID = BE.ID left join b_catalog_product as CAT_PR on (CAT_PR.ID = BE.ID) left join b_catalog_iblock as CAT_IB on ((CAT_PR.VAT_ID IS NULL or CAT_PR.VAT_ID = 0) and CAT_IB.IBLOCK_ID = BE.IBLOCK_ID) left join b_catalog_vat as CAT_VAT on (CAT_VAT.ID = IF((CAT_PR.VAT_ID IS NULL OR CAT_PR.VAT_ID = 0), CAT_IB.VAT_ID, CAT_PR.VAT_ID)) WHERE 1=1 AND ( (((BE.ACTIVE_TO >= now() OR BE.ACTIVE_TO IS NULL) AND (BE.ACTIVE_FROM <= now() OR BE.ACTIVE_FROM IS NULL))) AND ((((BE.ACTIVE='Y')))) AND ((((CAT_PR.AVAILABLE='Y')))) ) AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL))) AND (((FPV0.VALUE_NUM IS NOT NULL))) )) ) OR ( ( (BE.ID NOT IN ( SELECT FPV0.VALUE_NUM FROM b_iblock B INNER JOIN b_lang L ON B.LID=L.LID INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID LEFT JOIN b_iblock_property FP0 ON FP0.IBLOCK_ID = B.ID AND FP0.CODE='CML2_LINK' LEFT JOIN b_iblock_element_property FPV0 ON FPV0.IBLOCK_PROPERTY_ID = FP0.ID AND FPV0.IBLOCK_ELEMENT_ID = BE.ID WHERE 1=1 AND ( (((BE.ID IS NOT NULL))) ) AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL))) AND (((FPV0.VALUE_NUM IS NOT NULL))) )) ) AND ( ((((CAT_PR.AVAILABLE='Y')))) ) ) ) ) ) AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL))) LIMIT 0, 28;
Aleksey Posevin,
+----+--------------------+---------+------------+-------------+--------------------------------------------------------------------------------------------+----------------------------+---------+---------------------------------------+------+----------+----------------------------------------------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+--------------------+---------+------------+-------------+--------------------------------------------------------------------------------------------+----------------------------+---------+---------------------------------------+------+----------+----------------------------------------------------+
| 1 | PRIMARY | L | NULL | ALL | PRIMARY | NULL | NULL | NULL | 1 | 100.00 | NULL |
| 1 | PRIMARY | B | NULL | ALL | PRIMARY | NULL | NULL | NULL | 22 | 10.00 | Using where; Using join buffer (Block Nested Loop) |
| 1 | PRIMARY | BE | NULL | ref | ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code | ix_iblock_element_1 | 4 | iceholodse_ice.B.ID | 2099 | 0.50 | Using where |
| 1 | PRIMARY | CAT_PR | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.BE.ID | 1 | 100.00 | Using where |
| 1 | PRIMARY | CAT_IB | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.B.ID | 1 | 100.00 | Using where |
| 1 | PRIMARY | CAT_VAT | NULL | ALL | PRIMARY | NULL | NULL | NULL | 3 | 100.00 | Using where; Using join buffer (Block Nested Loop) |
| 3 | DEPENDENT SUBQUERY | L | NULL | index | PRIMARY | PRIMARY | 6 | NULL | 1 | 100.00 | Using index |
| 3 | DEPENDENT SUBQUERY | FP0 | NULL | ref | PRIMARY,ix_iblock_property_1,ix_iblock_property_2 | ix_iblock_property_2 | 153 | const | 2 | 100.00 | Using where |
| 3 | DEPENDENT SUBQUERY | B | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.FP0.IBLOCK_ID | 1 | 10.00 | Using where |
| 3 | DEPENDENT SUBQUERY | FPV0 | NULL | ref_or_null | ix_iblock_element_property_1,ix_iblock_element_property_2,ix_iblock_element_prop_num | ix_iblock_element_prop_num | 14 | func,iceholodse_ice.FP0.ID | 42 | 100.00 | Using index condition; Using where |
| 3 | DEPENDENT SUBQUERY | BE | NULL | eq_ref | PRIMARY,ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code | PRIMARY | 4 | iceholodse_ice.FPV0.IBLOCK_ELEMENT_ID | 1 | 5.00 | Using where |
| 2 | DEPENDENT SUBQUERY | L | NULL | index | PRIMARY | PRIMARY | 6 | NULL | 1 | 100.00 | Using index |
| 2 | DEPENDENT SUBQUERY | FP0 | NULL | ref | PRIMARY,ix_iblock_property_1,ix_iblock_property_2 | ix_iblock_property_2 | 153 | const | 2 | 100.00 | Using where |
| 2 | DEPENDENT SUBQUERY | B | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.FP0.IBLOCK_ID | 1 | 10.00 | Using where |
| 2 | DEPENDENT SUBQUERY | FPV0 | NULL | ref | ix_iblock_element_property_1,ix_iblock_element_property_2,ix_iblock_element_prop_num | ix_iblock_element_prop_num | 14 | func,iceholodse_ice.FP0.ID | 21 | 100.00 | Using index condition; Using where |
| 2 | DEPENDENT SUBQUERY | CAT_PR | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.FPV0.IBLOCK_ELEMENT_ID | 1 | 10.00 | Using where |
| 2 | DEPENDENT SUBQUERY | BE | NULL | eq_ref | PRIMARY,ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code | PRIMARY | 4 | iceholodse_ice.FPV0.IBLOCK_ELEMENT_ID | 1 | 5.00 | Using where |
| 2 | DEPENDENT SUBQUERY | CAT_IB | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.FP0.IBLOCK_ID | 1 | 100.00 | Using where |
| 2 | DEPENDENT SUBQUERY | CAT_VAT | NULL | eq_ref | PRIMARY | PRIMARY | 4 | func | 1 | 100.00 | Using where; Using index |
+----+--------------------+---------+------------+-------------+--------------------------------------------------------------------------------------------+----------------------------+---------+---------------------------------------+------+----------+----------------------------------------------------+ Свернуть
Интернет-магазин на Битриксе вдруг стал сильно нагружать сервер и тормозить.
Причем раньше такого небыло. Бекап сайта на дату когда было все нормально не помог.
Трафик на сайт обычный 100-200 человек в день.
Тех поддержка хостинга проанализировала , говорит что много запросов на БД SQL надо оптимизировать или битркис и базу.
Сообщение от поддержки:
mysql> explain SELECT DISTINCT BS.ID AS ID, BS.DEPTH_LEVEL AS DEPTH_LEVEL, BS.NAME AS NAME, B.SECTION_PAGE_URL AS SECTION_PAGE_URL, BS.SORT AS SORT, BS.PICTURE AS PICTURE, BS.DETAIL_PICTURE AS DETAIL_PICTURE, BS.CODE AS CODE, BS.XML_ID AS EXTERNAL_ID, B.IBLOCK_TYPE_ID AS IBLOCK_TYPE_ID, BS.IBLOCK_ID AS IBLOCK_ID, B.CODE AS IBLOCK_CODE, B.XML_ID AS IBLOCK_EXTERNAL_ID, BS.GLOBAL_ACTIVE AS GLOBAL_ACTIVE, BS.LEFT_MARGIN AS LEFT_MARGIN,COUNT(DISTINCT BE.ID) as ELEMENT_CNT, BUF.UF_PHOTO FROM b_iblock_section BS INNER JOIN b_iblock B ON BS.IBLOCK_ID = B.ID LEFT JOIN b_uts_iblock_28_section BUF ON BUF.VALUE_ID = BS.ID INNER JOIN b_iblock_section BSTEMP ON BSTEMP.IBLOCK_ID = BS.IBLOCK_ID LEFT JOIN b_iblock_section_element BSE ON BSE.IBLOCK_SECTION_ID=BSTEMP.ID LEFT JOIN b_iblock_element BE ON (BSE.IBLOCK_ELEMENT_ID=BE.ID AND ((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL ) AND BE.IBLOCK_ID = BS.IBLOCK_ID ) AND BE.ACTIVE='Y' AND (BE.ACTIVE_TO >= now() OR BE.ACTIVE_TO IS NULL) AND (BE.ACTIVE_FROM <= now() OR BE.ACTIVE_FROM IS NULL)) WHERE 1=1 AND BSTEMP.IBLOCK_ID = BS.IBLOCK_ID AND BSTEMP.LEFT_MARGIN >= BS.LEFT_MARGIN AND BSTEMP.RIGHT_MARGIN <= BS.RIGHT_MARGIN AND BSTEMP.GLOBAL_ACTIVE = 'Y' AND ((((BS.IBLOCK_ID = '28')))) AND ((((BS.GLOBAL_ACTIVE='Y')))) AND ((((BS.DEPTH_LEVEL <= '3')))) AND ((((B.ID = '28')))) AND ((((B.ACTIVE='Y')))) AND (( B.ID IN ( SELECT IBLOCK_ID FROM b_iblock_group IBG WHERE IBG.GROUP_ID IN (2) AND IBG.PERMISSION >= 'R' AND (IBG.PERMISSION='X' OR B.ACTIVE='Y') ) OR (B.RIGHTS_MODE = 'E' AND EXISTS ( SELECT SR.SECTION_ID FROM b_iblock_section_right SR INNER JOIN b_iblock_right IBR ON IBR.ID = SR.RIGHT_ID INNER JOIN b_user_access UA ON UA.ACCESS_CODE = IBR.GROUP_CODE AND UA.USER_ID = 0 WHERE SR.SECTION_ID = BS.ID AND IBR.OP_SREAD = 'Y' )) )) GROUP BY BS.ID, B.ID ORDER BY BS.LEFT_MARGIN asc;
+----+--------------------+--------+------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+---------+--------------------------------------+------+----------+----------------------------------------------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+--------------------+--------+------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+---------+--------------------------------------+------+----------+----------------------------------------------------+
| 1 | PRIMARY | B | NULL | const | PRIMARY | PRIMARY | 4 | const | 1 | 100.00 | Using temporary; Using filesort |
| 1 | PRIMARY | BS | NULL | ref | ix_iblock_section_1,ix_iblock_section_depth_level,ix_iblock_section_left_margin,ix_iblock_section_right_margin,ix_iblock_section_code | ix_iblock_section_1 | 4 | const | 1417 | 3.33 | Using index condition; Using where |
Aleksey Posevin,
| 1 | PRIMARY | BUF | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.BS.ID | 1 | 100.00 | NULL |
| 1 | PRIMARY | BSTEMP | NULL | ALL | ix_iblock_section_1,ix_iblock_section_depth_level,ix_iblock_section_left_margin,ix_iblock_section_right_margin,ix_iblock_section_code | NULL | NULL | NULL | 1250 | 1.11 | Using where; Using join buffer (Block Nested Loop) |
| 1 | PRIMARY | BSE | NULL | ref | ux_iblock_section_element | ux_iblock_section_element | 4 | iceholodse_ice.BSTEMP.ID | 29 | 100.00 | Using index |
| 1 | PRIMARY | BE | NULL | eq_ref | PRIMARY,ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code | PRIMARY | 4 | iceholodse_ice.BSE.IBLOCK_ELEMENT_ID | 1 | 100.00 | Using where |
| 3 | DEPENDENT SUBQUERY | SR | NULL | ref | PRIMARY,ix_b_iblock_section_right_1 | ix_b_iblock_section_right_1 | 4 | iceholodse_ice.BS.ID | 1 | 100.00 | Using index |
| 3 | DEPENDENT SUBQUERY | IBR | NULL | eq_ref | PRIMARY,ix_b_iblock_right_group_code,ix_b_iblock_right_op_eread,ix_b_iblock_right_op_sread | PRIMARY | 4 | iceholodse_ice.SR.RIGHT_ID | 1 | 100.00 | Using where |
| 3 | DEPENDENT SUBQUERY | UA | NULL | ref | ix_ua_user_provider,ix_ua_user_access,ix_ua_access | ix_ua_user_provider | 5 | const | 1 | 10.00 | Using where |
| 2 | DEPENDENT SUBQUERY | IBG | NULL | unique_subquery | ux_iblock_group_1 | ux_iblock_group_1 | 8 | func,const | 1 | 33.33 | Using where |
+----+--------------------+--------+------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+---------+--------------------------------------+------+----------+----------------------------------------------------+
Они отправляются при открытии сайта и переходах между страницами и каждый обходит по 2-3 тысячи строк. Это вызывает нагрузку на MySQL, что в свою очередь создаёт нагрузку на процессор.
mysql> explain SELECT BE.ID as ID,BE.NAME as NAME,BE.IBLOCK_ID as IBLOCK_ID,B.DETAIL_PAGE_URL as DETAIL_PAGE_URL,BE.IBLOCK_SECTION_ID as IBLOCK_SECTION_ID,L.DIR as LANG_DIR,BE.CODE as CODE,BE.XML_ID as EXTERNAL_ID,B.IBLOCK_TYPE_ID as IBLOCK_TYPE_ID,B.CODE as IBLOCK_CODE,B.XML_ID as IBLOCK_EXTERNAL_ID,B.LID as LID , CAT_PR.QUANTITY as CATALOG_QUANTITY, IF (CAT_PR.QUANTITY_TRACE = 'D', 'N', CAT_PR.QUANTITY_TRACE) as CATALOG_QUANTITY_TRACE, CAT_PR.QUANTITY_TRACE as CATALOG_QUANTITY_TRACE_ORIG, CAT_PR.WEIGHT as CATALOG_WEIGHT, CAT_PR.VAT_ID as CATALOG_VAT_ID, CAT_PR.VAT_INCLUDED as CATALOG_VAT_INCLUDED, IF (CAT_PR.CAN_BUY_ZERO = 'D', 'N', CAT_PR.CAN_BUY_ZERO) as CATALOG_CAN_BUY_ZERO, CAT_PR.CAN_BUY_ZERO as CATALOG_CAN_BUY_ZERO_ORIG, CAT_PR.PURCHASING_PRICE as CATALOG_PURCHASING_PRICE, CAT_PR.PURCHASING_CURRENCY as CATALOG_PURCHASING_CURRENCY, CAT_PR.QUANTITY_RESERVED as CATALOG_QUANTITY_RESERVED, IF (CAT_PR.SUBSCRIBE = 'D', 'Y', CAT_PR.SUBSCRIBE) as CATALOG_SUBSCRIBE, CAT_PR.SUBSCRIBE as CATALOG_SUBSCRIBE_ORIG, CAT_PR.WIDTH as CATALOG_WIDTH, CAT_PR.LENGTH as CATALOG_LENGTH, CAT_PR.HEIGHT as CATALOG_HEIGHT, CAT_PR.MEASURE as CATALOG_MEASURE, CAT_PR.TYPE as CATALOG_TYPE, CAT_PR.AVAILABLE as CATALOG_AVAILABLE, CAT_PR.BUNDLE as CATALOG_BUNDLE, CAT_PR.PRICE_TYPE as CATALOG_PRICE_TYPE, CAT_PR.RECUR_SCHEME_LENGTH as CATALOG_RECUR_SCHEME_LENGTH, CAT_PR.RECUR_SCHEME_TYPE as CATALOG_RECUR_SCHEME_TYPE, CAT_PR.TRIAL_PRICE_ID as CATALOG_TRIAL_PRICE_ID, CAT_PR.WITHOUT_ORDER as CATALOG_WITHOUT_ORDER, CAT_PR.SELECT_BEST_PRICE as CATALOG_SELECT_BEST_PRICE, IF (CAT_PR.NEGATIVE_AMOUNT_TRACE = 'D', 'N', CAT_PR.NEGATIVE_AMOUNT_TRACE) as CATALOG_NEGATIVE_AMOUNT_TRACE, CAT_PR.NEGATIVE_AMOUNT_TRACE as CATALOG_NEGATIVE_AMOUNT_TRACE_ORIG, CAT_VAT.RATE as CATALOG_VAT FROM b_iblock B INNER JOIN b_lang L ON B.LID=L.LID INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID left join b_catalog_product as CAT_PR on (CAT_PR.ID = BE.ID) left join b_catalog_iblock as CAT_IB on ((CAT_PR.VAT_ID IS NULL or CAT_PR.VAT_ID = 0) and CAT_IB.IBLOCK_ID = BE.IBLOCK_ID) left join b_catalog_vat as CAT_VAT on (CAT_VAT.ID = IF((CAT_PR.VAT_ID IS NULL OR CAT_PR.VAT_ID = 0), CAT_IB.VAT_ID, CAT_PR.VAT_ID)) WHERE 1=1 AND ( ((((BE.ACTIVE='Y')))) AND ( ( ( (BE.ID IN ( SELECT FPV0.VALUE_NUM FROM b_iblock B INNER JOIN b_lang L ON B.LID=L.LID INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID LEFT JOIN b_iblock_property FP0 ON FP0.IBLOCK_ID = B.ID AND FP0.CODE='CML2_LINK' LEFT JOIN b_iblock_element_property FPV0 ON FPV0.IBLOCK_PROPERTY_ID = FP0.ID AND FPV0.IBLOCK_ELEMENT_ID = BE.ID left join b_catalog_product as CAT_PR on (CAT_PR.ID = BE.ID) left join b_catalog_iblock as CAT_IB on ((CAT_PR.VAT_ID IS NULL or CAT_PR.VAT_ID = 0) and CAT_IB.IBLOCK_ID = BE.IBLOCK_ID) left join b_catalog_vat as CAT_VAT on (CAT_VAT.ID = IF((CAT_PR.VAT_ID IS NULL OR CAT_PR.VAT_ID = 0), CAT_IB.VAT_ID, CAT_PR.VAT_ID)) WHERE 1=1 AND ( (((BE.ACTIVE_TO >= now() OR BE.ACTIVE_TO IS NULL) AND (BE.ACTIVE_FROM <= now() OR BE.ACTIVE_FROM IS NULL))) AND ((((BE.ACTIVE='Y')))) AND ((((CAT_PR.AVAILABLE='Y')))) ) AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL))) AND (((FPV0.VALUE_NUM IS NOT NULL))) )) ) OR ( ( (BE.ID NOT IN ( SELECT FPV0.VALUE_NUM FROM b_iblock B INNER JOIN b_lang L ON B.LID=L.LID INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID LEFT JOIN b_iblock_property FP0 ON FP0.IBLOCK_ID = B.ID AND FP0.CODE='CML2_LINK' LEFT JOIN b_iblock_element_property FPV0 ON FPV0.IBLOCK_PROPERTY_ID = FP0.ID AND FPV0.IBLOCK_ELEMENT_ID = BE.ID WHERE 1=1 AND ( (((BE.ID IS NOT NULL))) ) AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL))) AND (((FPV0.VALUE_NUM IS NOT NULL))) )) ) AND ( ((((CAT_PR.AVAILABLE='Y')))) ) ) ) ) ) AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL))) LIMIT 0, 28;
Aleksey Posevin,
+----+--------------------+---------+------------+-------------+--------------------------------------------------------------------------------------------+----------------------------+---------+---------------------------------------+------+----------+----------------------------------------------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+--------------------+---------+------------+-------------+--------------------------------------------------------------------------------------------+----------------------------+---------+---------------------------------------+------+----------+----------------------------------------------------+
| 1 | PRIMARY | L | NULL | ALL | PRIMARY | NULL | NULL | NULL | 1 | 100.00 | NULL |
| 1 | PRIMARY | B | NULL | ALL | PRIMARY | NULL | NULL | NULL | 22 | 10.00 | Using where; Using join buffer (Block Nested Loop) |
| 1 | PRIMARY | BE | NULL | ref | ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code | ix_iblock_element_1 | 4 | iceholodse_ice.B.ID | 2099 | 0.50 | Using where |
| 1 | PRIMARY | CAT_PR | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.BE.ID | 1 | 100.00 | Using where |
| 1 | PRIMARY | CAT_IB | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.B.ID | 1 | 100.00 | Using where |
| 1 | PRIMARY | CAT_VAT | NULL | ALL | PRIMARY | NULL | NULL | NULL | 3 | 100.00 | Using where; Using join buffer (Block Nested Loop) |
| 3 | DEPENDENT SUBQUERY | L | NULL | index | PRIMARY | PRIMARY | 6 | NULL | 1 | 100.00 | Using index |
| 3 | DEPENDENT SUBQUERY | FP0 | NULL | ref | PRIMARY,ix_iblock_property_1,ix_iblock_property_2 | ix_iblock_property_2 | 153 | const | 2 | 100.00 | Using where |
| 3 | DEPENDENT SUBQUERY | B | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.FP0.IBLOCK_ID | 1 | 10.00 | Using where |
| 3 | DEPENDENT SUBQUERY | FPV0 | NULL | ref_or_null | ix_iblock_element_property_1,ix_iblock_element_property_2,ix_iblock_element_prop_num | ix_iblock_element_prop_num | 14 | func,iceholodse_ice.FP0.ID | 42 | 100.00 | Using index condition; Using where |
| 3 | DEPENDENT SUBQUERY | BE | NULL | eq_ref | PRIMARY,ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code | PRIMARY | 4 | iceholodse_ice.FPV0.IBLOCK_ELEMENT_ID | 1 | 5.00 | Using where |
| 2 | DEPENDENT SUBQUERY | L | NULL | index | PRIMARY | PRIMARY | 6 | NULL | 1 | 100.00 | Using index |
| 2 | DEPENDENT SUBQUERY | FP0 | NULL | ref | PRIMARY,ix_iblock_property_1,ix_iblock_property_2 | ix_iblock_property_2 | 153 | const | 2 | 100.00 | Using where |
| 2 | DEPENDENT SUBQUERY | B | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.FP0.IBLOCK_ID | 1 | 10.00 | Using where |
| 2 | DEPENDENT SUBQUERY | FPV0 | NULL | ref | ix_iblock_element_property_1,ix_iblock_element_property_2,ix_iblock_element_prop_num | ix_iblock_element_prop_num | 14 | func,iceholodse_ice.FP0.ID | 21 | 100.00 | Using index condition; Using where |
| 2 | DEPENDENT SUBQUERY | CAT_PR | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.FPV0.IBLOCK_ELEMENT_ID | 1 | 10.00 | Using where |
| 2 | DEPENDENT SUBQUERY | BE | NULL | eq_ref | PRIMARY,ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code | PRIMARY | 4 | iceholodse_ice.FPV0.IBLOCK_ELEMENT_ID | 1 | 5.00 | Using where |
| 2 | DEPENDENT SUBQUERY | CAT_IB | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.FP0.IBLOCK_ID | 1 | 100.00 | Using where |
| 2 | DEPENDENT SUBQUERY | CAT_VAT | NULL | eq_ref | PRIMARY | PRIMARY | 4 | func | 1 | 100.00 | Using where; Using index |
+----+--------------------+---------+------------+-------------+--------------------------------------------------------------------------------------------+----------------------------+---------+---------------------------------------+------+----------+----------------------------------------------------+ Свернуть
2 заявки
5 дней назад
Требуется фронт-енд программист на проект Laravel. Ожидаем как минимум на 1-2 месяца, возможно дальнейшее постоянное сотрудничество (штат). Возможна помощь с ... Читать дальше
Требуется фронт-енд программист на проект Laravel. Ожидаем как минимум на 1-2 месяца, возможно дальнейшее постоянное сотрудничество (штат). Возможна помощь с релокацией в Польши и (или) Испанию.
PHP + mysql, Postgre.
Очень желательно понимание VUE.js
Желание обучаться. Мы поможем разобраться с технологиями. Свернуть
PHP + mysql, Postgre.
Очень желательно понимание VUE.js
Желание обучаться. Мы поможем разобраться с технологиями. Свернуть
7 заявок
5 дней назад
Необходимо восстановить и переписать предоставленyю программу написанную на языке JAVA, предназначенную для получения данных с Fusion Solar (ссылка). Программа, после ... Читать дальше
Необходимо восстановить и переписать предоставленyю программу написанную на языке JAVA, предназначенную для получения данных с Fusion Solar (ссылка). Программа, после запуска, должна получать и сохранять в текстовой (.txt) файл следующие данные:
Lifetime Energy(MWh)
Current Power(kW)
CO₂ reduction(T)
Текстовой файл должен содержать 3 строчки чисел, с точность до сотых (00.00) в том порядке который указан выше. Файл сохраняется и переписывается
после каждого обновления данных.
Программа, после запуска, должна работать в фоновом режиме. После запуска программа должна продолжать работать постоянно.
Необходимо предусмотреть возможность самостоятельно указывать следующие параметры:
1. Имя и расположение текстового файла с указанными выше данными.
2. Частота получения данных
3. Логирование ошибок подключение к сервису (например неверное имя и пароль, превышено количество обращений к серверу и
т.д) в отдельный файл.
Ссылка на openAPI, для работы с техническим аккаунтом FusionSolar:
ссылкаСвернуть
Lifetime Energy(MWh)
Current Power(kW)
CO₂ reduction(T)
Текстовой файл должен содержать 3 строчки чисел, с точность до сотых (00.00) в том порядке который указан выше. Файл сохраняется и переписывается
после каждого обновления данных.
Программа, после запуска, должна работать в фоновом режиме. После запуска программа должна продолжать работать постоянно.
Необходимо предусмотреть возможность самостоятельно указывать следующие параметры:
1. Имя и расположение текстового файла с указанными выше данными.
2. Частота получения данных
3. Логирование ошибок подключение к сервису (например неверное имя и пароль, превышено количество обращений к серверу и
т.д) в отдельный файл.
Ссылка на openAPI, для работы с техническим аккаунтом FusionSolar:
ссылкаСвернуть
1 заявка
5 дней назад
Админ панель с авторизацией по логину и паролю,без возможности регестрации,добавление новых пользователей только админом,через админку.
Функционал:таблица(похожая на гугл) + аналитика ... Читать дальше
Функционал:таблица(похожая на гугл) + аналитика ... Читать дальше
Админ панель с авторизацией по логину и паролю,без возможности регестрации,добавление новых пользователей только админом,через админку.
Функционал:таблица(похожая на гугл) + аналитика по параметрам и возмоностью добавления новых таблиц по аналогии.
Таблица будет содержать 5 колонок
1 колонка содержание текстовое до 1000 знаков
2 колонка содержание текстовое до 1000 знаков
3 колонка можно выбрать дату в формате дд.мм.гггг(лучше даже не выбрать,а вручную написать)
4 колонка можно выбрать дату в формате дд.мм.гггг(лучше даже не выбрать,а вручную написать) + возможность добавить текстовое примечание до 100 знаков
5 колонка можно выбрать дату в формате дд.мм.гггг(лучше даже не выбрать,а вручную написать) + число(ручной ввод) + возможность добавить текстовое примечание до 100 знаков + возможность добавить еще даты(до 10) тоже с текстовым примечанием
По мере заполнения таблицы строки автоматически окрашиваются нужными цветами:
После заполнения 3 колонки желтый цвет(ожидание)
После заполнения 4 колонки зеленый цвет($)
возле каждой строки поле для выбора(поставить галочку),а над таблицей несколько действии(в ручном режиме) для выбранной строки :удалить,отлетел,ожидание,$
Удалить -удалить(только в ручном режиме)
Отлетел-окрасить стоку красным цветом(только в ручном режиме)
Ожидание-окрасить стоку желтым цветом
$-окрасить стоку зеленым цветом
Новая строка добавляется просто нажатием +
Аналитика состоит из двух составляющих это временной параметр и выбор статуса,например:
30 дней + параметр отелет (красный) = n колличество
7 дней + параметр ожидание(желтый) = n колличество
определенная дата + $(зеленный) = n колличество
В аналитике временной промежуток можно выбрать по календарю(с такого-то по такое-то) или вписать руками в формате дд.мм.гггг - дд.мм.гггг
Возможность выбрать количество строк таблицы отображаемой на 1 странице (25,50,100,все)
Сверху админки,слева 2 часов(часовых пояса) МСК,Los Angeles (PDT)
На главной и всех таблицах сверху сделать надпись Sonik Pro Team
Фон админки темный(на свой вкус)
Настройки админки: добавление нового пользователя(для меня-админа,для остальных настройки недоступны).Добавление происходит по логину и паролю.Настройка пользователей максимально простая ,это какие таблицы может видеть и редактировать пользователь
Вторая таблица всего из 3 столбиков,без аналитики и тд,просто заполнение и редактирование
1-дата(просто любые числовые значения,без определенного формата)
2-сумма(числовые значения)
3- примечание(текстовое примечание до 100 знаков) Свернуть
Функционал:таблица(похожая на гугл) + аналитика по параметрам и возмоностью добавления новых таблиц по аналогии.
Таблица будет содержать 5 колонок
1 колонка содержание текстовое до 1000 знаков
2 колонка содержание текстовое до 1000 знаков
3 колонка можно выбрать дату в формате дд.мм.гггг(лучше даже не выбрать,а вручную написать)
4 колонка можно выбрать дату в формате дд.мм.гггг(лучше даже не выбрать,а вручную написать) + возможность добавить текстовое примечание до 100 знаков
5 колонка можно выбрать дату в формате дд.мм.гггг(лучше даже не выбрать,а вручную написать) + число(ручной ввод) + возможность добавить текстовое примечание до 100 знаков + возможность добавить еще даты(до 10) тоже с текстовым примечанием
По мере заполнения таблицы строки автоматически окрашиваются нужными цветами:
После заполнения 3 колонки желтый цвет(ожидание)
После заполнения 4 колонки зеленый цвет($)
возле каждой строки поле для выбора(поставить галочку),а над таблицей несколько действии(в ручном режиме) для выбранной строки :удалить,отлетел,ожидание,$
Удалить -удалить(только в ручном режиме)
Отлетел-окрасить стоку красным цветом(только в ручном режиме)
Ожидание-окрасить стоку желтым цветом
$-окрасить стоку зеленым цветом
Новая строка добавляется просто нажатием +
Аналитика состоит из двух составляющих это временной параметр и выбор статуса,например:
30 дней + параметр отелет (красный) = n колличество
7 дней + параметр ожидание(желтый) = n колличество
определенная дата + $(зеленный) = n колличество
В аналитике временной промежуток можно выбрать по календарю(с такого-то по такое-то) или вписать руками в формате дд.мм.гггг - дд.мм.гггг
Возможность выбрать количество строк таблицы отображаемой на 1 странице (25,50,100,все)
Сверху админки,слева 2 часов(часовых пояса) МСК,Los Angeles (PDT)
На главной и всех таблицах сверху сделать надпись Sonik Pro Team
Фон админки темный(на свой вкус)
Настройки админки: добавление нового пользователя(для меня-админа,для остальных настройки недоступны).Добавление происходит по логину и паролю.Настройка пользователей максимально простая ,это какие таблицы может видеть и редактировать пользователь
Вторая таблица всего из 3 столбиков,без аналитики и тд,просто заполнение и редактирование
1-дата(просто любые числовые значения,без определенного формата)
2-сумма(числовые значения)
3- примечание(текстовое примечание до 100 знаков) Свернуть
2 заявки
5 дней назад
Требуется создать телеграм бота, который: будет следить за выбранными твиттерами;
будет парсить сообщения, а также reply в виде скриншотов (при ... Читать дальше
будет парсить сообщения, а также reply в виде скриншотов (при ... Читать дальше
Требуется создать телеграм бота, который: будет следить за выбранными твиттерами;
будет парсить сообщения, а также reply в виде скриншотов (при помощи сервиса tweetpik.com через API)
будет переводить текст на русский язык (за исключением хэштегов и имен пользователей)
владелец бота должен иметь возможность подсчета количества пользователей использующих бота
бот должен уметь ограничивать доступ (могут использовать лишь ограниченный список)
Пример прикрепил ниже Свернуть
будет парсить сообщения, а также reply в виде скриншотов (при помощи сервиса tweetpik.com через API)
будет переводить текст на русский язык (за исключением хэштегов и имен пользователей)
владелец бота должен иметь возможность подсчета количества пользователей использующих бота
бот должен уметь ограничивать доступ (могут использовать лишь ограниченный список)
Пример прикрепил ниже Свернуть
указан исполнитель
5 дней назад
Необходимо разработать бота, который будет в автоматическом режиме торговать на криптовалютной бирже по постам из твиттера.
Бот должен открывать сделки: ... Читать дальше
Бот должен открывать сделки: ... Читать дальше
Необходимо разработать бота, который будет в автоматическом режиме торговать на криптовалютной бирже по постам из твиттера.
Бот должен открывать сделки:
- по ключевым словам;
- по картинкам, где есть ключевые слова;
- по картинкам, где изображены определённые объекты.
Отклики оставляйте только в том случае, если имеете опыт работы с искусственным интеллектом и криптобиржами.
К отклику сразу добавляйте портфолио разработанных вами подобного рода проектов! Свернуть
Бот должен открывать сделки:
- по ключевым словам;
- по картинкам, где есть ключевые слова;
- по картинкам, где изображены определённые объекты.
Отклики оставляйте только в том случае, если имеете опыт работы с искусственным интеллектом и криптобиржами.
К отклику сразу добавляйте портфолио разработанных вами подобного рода проектов! Свернуть
нет заявок
5 дней назад
Нужно создать легкого бота в тг, в котором пользователи могут приглашать людей и получать за это деньги, можете использовать готовый ... Читать дальше
Нужно создать легкого бота в тг, в котором пользователи могут приглашать людей и получать за это деньги, можете использовать готовый скрипт, если найдете, исправить только название. Свернуть
$10
6 заявок
5 дней назад
Макет ссылка
- pug + scss
- native js
- Опыт работы с laravel от 1 года
- Дадим работу кандидату ... Читать дальше
- pug + scss
- native js
- Опыт работы с laravel от 1 года
- Дадим работу кандидату ... Читать дальше
2 заявки
5 дней назад
У нас есть интернет магазин. Наша CRM система — Битрикс 24.CMS — OkayCMS.Каждую неделю в битриксе мы составляем отчеты, чтобы ... Читать дальше
У нас есть интернет магазин. Наша CRM система — Битрикс 24.CMS — OkayCMS.Каждую неделю в битриксе мы составляем отчеты, чтобы посмотреть в них источники, откуда пришли лиды. И у части лидов источник указывается, но не у всех (см скрин).Проблема связана с тем, что мы проводили ряд экспериментов над сайтом и после этого источник у части лидов перестал определяться. Последний раз все работало без сбоев и источники определялись корректно — когда все работало через веб хуки.Задача — починить сайт, чтобы ВСЕ лиды которые сейчас приходят с него без указанного источника (Youtube, сайт, таргет и проч) приходили с указанным источником и он отображался в наших отчетах.Требования: у вас должен быть подобный опыт (работы с OkayCMS и Битрикс 24)Бюджет: 2000рСрок: до 7 дней Свернуть
$35
нет заявок
6 дней назад