Андрей: Добрый день! Ищем партнера (разработчика) на долевой основе в проект. Санкт-Петербург. Проект на Битриксе, для того, чтобы моб. приложение работало на iOS и Android, это механика увеличения объема продаж в ресторанах. Описание проекта и кого мы ищем отпра

Добрый день!

Ищем партнера (разработчика) на долевой основе в проект. Санкт-Петербург.

Проект на Битриксе, для того, чтобы моб. приложение работало на iOS и Android, это механика увеличения объема продаж в ресторанах.

Описание проекта и кого мы ищем отправим на почту (тут не прикрепить файлы).

1) Решаем невыдуманные и актуальные проблемы. Проверили спрос, бизнес готов тестировать.
2) Развитие экосистемы для масштабирования подобных решений в РФ (Plazius, Эвотор) и по миру. Быстрый рост, не нужно продавать предприятию адресно и интегрироваться с каждой версией ПО в POS.
3) Возможность применения в механики технологии блокчейн (безопаснее, ниже операционные издержки, добавочная ценность при выпуске токенов, возможность привлечения средств через ICO).
4) Наличие квалифицированного юриста для получения патента классическим способом и через сервис на блокчейне.

Приглашаем на встречу для обсуждения.

P.S. Если по правилам форума, такое сообщение является рекламным, то посоветуйте, пожалуйста, где корректнее его разместить. Спасибо.

Автор :

Руслан Мухамедьяров: catalog.element script.js узнать id выбранного SKU switch (this.productType) { case 1: // product case 2: // set console.log(this.product.id.toString()); break; case 3: // sku console.log(this.offers[this.offerNum].ID); break; }

catalog.element script.js узнать id выбранного SKU
====code====

switch (this.productType)
{
    case 1: // product        
    case 2: // set                    
        console.log(this.product.id.toString());          
        break;
    case 3: // sku                    
        console.log(this.offers[this.offerNum].ID);        
        break;
}
=============

Автор :

Анна Миронова: https://pain-free.ru/ (https://pain-free.ru/) Наш интернет магазин Pain-Free.ru (с англ. яз – безболезненный, без боли) специализируется на продаже аппликационной анестезии. Для повседневного применения, речь идет о обезболивающих кремах (мазях), анестети

https://pain-free.ru/

Наш интернет магазин Pain-Free.ru (с англ. яз – безболезненный, без боли) специализируется на продаже аппликационной анестезии.

Для повседневного применения, речь идет о обезболивающих кремах (мазях), анестетиках. Наша продукция не относится к аптеке. Хотя многие звонят с вопросом "Это аптека?»

Товар предназначен в основном для индустрии красоты и тату искусства. К этому относится перманентный макияж, микроблейдинг, татуаж, различные "укольчики» красоты и преображения. Так же сейчас популярна депиляция, лазерная эпиляция – все эти процедуры сопровождаются неприятными ощущениями боли.

Что бы не терпеть и прибывать в комфорте при любой процедуре для этого в нашем интернет магазине мы собрали обезболивающие крема российских и корейских производителей.

К вашему вниманию представлены для удобства разные объемы, начиная от 10 мл до 500 мл. Это сделано с расчета, как и на мастера так и для домашнего применения перед процедурой.

Самые известные бренды Доктор Намб, Лайт деп, Татуист, ТКТХ и многое другое можно найти в нашем магазине. Все анестетики всегда в наличии.

Это продукция довольна интересна и подбирается индивидуально каждому, а для этого нужно просто набрать +7-495-668-64-45 и наш менеджер расскажет вам о всех нюансах и подводных камнях, которые сопровождают этот товар.

Автор :

Руслан Мухамедьяров: Поиск по артикулу с обновлением поискового индекса// у товара смотрим его ТП и берем артикулы, вносим их в поле, чтобы искалось по Артикулу ТП AddEventHandler(«catalog», «OnProductAdd»,»addIDsFromSKUs»); AddEventHandler(«catalog», «OnProductUpdate»,»addID

Поиск по артикулу с обновлением поискового индекса ====code====

// у товара смотрим его ТП и берем артикулы, вносим их в поле, чтобы искалось по Артикулу ТП
AddEventHandler("catalog", "OnProductAdd","addIDsFromSKUs");
AddEventHandler("catalog", "OnProductUpdate","addIDsFromSKUs");
function addIDsFromSKUs($id, $arFields)
{
    $TARGET_IBLOCK_ID = 2;
    $artnumbers = "";
    if (CModule::IncludeModule('catalog') && CModule::IncludeModule('iblock')) {
        $arProductInfo = CCatalogSKU::GetProductInfo($id);
        if (is_array($arProductInfo) && $arProductInfo["IBLOCK_ID"]==$TARGET_IBLOCK_ID ) {
            $arOffersInfo = CCatalogSKU::GetInfoByProductIBlock($arProductInfo['IBLOCK_ID']);
            $arFilter = array(
                'IBLOCK_ID' => $arOffersInfo['IBLOCK_ID'],
                "PROPERTY_CML2_LINK" => $arProductInfo['ID'],
                //"!ID" => $id,
            );
            $arSelect = Array("PROPERTY_ARTNUMBER");
            $obOffersList = CIBlockElement::GetList(array("SORT"=>"ASC"), $arFilter, false, false, $arSelect);
            while ($arOffers = $obOffersList->Fetch()) {
                $artnumbers .= $arOffers["PROPERTY_ARTNUMBER_VALUE"]. ' ';
            }
            $PROPERTY_CODE = "SKU_ARTNUMBERS";
            $PROPERTY_VALUE = $artnumbers;
            $el_id = $arProductInfo['ID'];
            $iblock_id = $arProductInfo["IBLOCK_ID"];
            $prop[$PROPERTY_CODE] = array('VALUE'=>array('TYPE'=>'TEXT', 'TEXT'=>$PROPERTY_VALUE));
            CIBlockElement::SetPropertyValuesEx($el_id, $iblock_id, $prop);

            $res = CIBlockElement::GetByID($el_id);
            $ar_res = $res->GetNext();
            //переиндексируем элемент, чтобы находился в поиске
            CSearch::Index(
                "iblock",
                $el_id,
                Array(
                    "DATE_CHANGE"=>$ar_res["DATE_CHANGE"],
                    "TITLE"=>$ar_res["NAME"],
                    "SITE_ID"=>array('s1'),
                    "PARAM1"=>'catalog',//$arFields["IBLOCK_TYPE_ID"],
                    "PARAM2"=>'2', //$arFields['IBLOCK_ID'],
                    "PERMISSIONS"=>array("2"),
                    "URL"=>str_replace("#ID#", $ar_res["ID"], $ar_res["DETAIL_PAGE_URL"]),
                    "BODY"=>$ar_res["DETAIL_TEXT"].' '.$artnumbers,
                    "TAGS"=>$artnumbers,
                ),
                true
            );
        }
    }
}
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", "addIDsFromElementSKUs");
AddEventHandler("iblock", "OnAfterIBlockElementAdd", "addIDsFromElementSKUs");
function addIDsFromElementSKUs(&$arFields)
{
    if ($arFields['IBLOCK_ID']==2 ) {
        $arOffersInfo = CCatalogSKU::GetInfoByProductIBlock($arFields['ID']);
        $arFilter = array(
            'IBLOCK_ID' => $arOffersInfo['IBLOCK_ID'],
            "PROPERTY_CML2_LINK" => $arFields['ID'],
            //"!ID" => $id,
        );
        $arSelect = Array("PROPERTY_ARTNUMBER");
        $obOffersList = CIBlockElement::GetList(array("SORT"=>"ASC"), $arFilter, false, false, $arSelect);
        while ($arOffers = $obOffersList->Fetch()) {
            $artnumbers .= $arOffers["PROPERTY_ARTNUMBER_VALUE"]. ' ';
        }
        $PROPERTY_CODE = "SKU_ARTNUMBERS";
        $PROPERTY_VALUE = $artnumbers;
        $el_id = $arFields['ID'];
        $iblock_id = $arFields["IBLOCK_ID"];
        $prop[$PROPERTY_CODE] = array('VALUE'=>array('TYPE'=>'TEXT', 'TEXT'=>$PROPERTY_VALUE));

        CIBlockElement::SetPropertyValuesEx($el_id, $iblock_id, $prop);

        //переиндексируем элемент, чтобы находился в поиске
        CSearch::Index(
            "iblock",
            $el_id,
            Array(
                "DATE_CHANGE"=>$arFields["DATE_CHANGE"],
                "TITLE"=>$arFields["NAME"],
                "SITE_ID"=>array('s1'),
                "PARAM1"=>'catalog',//$arFields["IBLOCK_TYPE_ID"],
                "PARAM2"=>'2', //$arFields['IBLOCK_ID'],
                "PERMISSIONS"=>array("2"),
                "URL"=>str_replace("#ID#", $arFields["ID"], $arFields["URL"]),
                "BODY"=>$arFields["DETAIL_TEXT"].' '.$artnumbers,
                "TAGS"=>$artnumbers,
            ),
            true
        );
    }
}
=============

Автор :

Станислав Шашалевич: Жулики, мошенники, пираты: Евгений Герцен

Здравствуйте, уважаемые коллеги. Мы продолжаем цикл статей о жуликах, которые продают чужие решения по дешевке под видом своих.

Сегодня речь пойдет о нашем популярном модуле "Парсер контента». Модуль пользуется популярностью не только у клиентов, но и пиратов. Они пытаются ломать его, ставить на неактивные решения Битрикс и прочее. Это им, конечно, удается, но особых дивидендов и какой-то удовлетворенности от своей работы не приносит.

Итак, ближе к сути. По "Парсеру контента» у нас идет платный трафик. И вот при оценке показов объявления в зависимости от запроса мы обратили внимание на следующее объявление: http://joxi.ru/v29jpQh3bZ4PAG . Кто-то предлагает "Парсер контента» для Битрикс всего за 3 500 руб. При переходе на объявление попадаем на примитивный лендос: http://parser.tilda.ws/ . И что мы увидели? Увидели текста и смыслы, содранные с карточки нашего модуля. Буква в букву, слово в слово.

Но у нас все же осталась надежда, что содраны только смыслы и текст, но не наш модуль. Мы все же изначально думаем о людях хорошо. Поэтому мы решили связаться с товарищем, чтобы окончательно прояснить ситуацию. Телефонов на лендинге не было, но зато его владелец смело поделился своим ФИО, почтой и аккаунтом вконтакте.

Оказалось, что предположительным мошенником является некто Герцен Евгений. Парень гордится, что разрабатывает сайты, интернет-магазины, контекстную рекламу запускает. К тому же, опыта у него уже 6 лет. А еще он фанат БМ. Насколько я знаю, в БМ не советуют воровать и продавать чужое. Там совсем другая идеология. Поэтому у нас все еще оставались надежды на безгрешность Евгения.

Но, как это не печально, Евгений нас подвел. При первом же касании он предложил поставить модуль даже на неактивную версию Битрикса. А когда поставил его на фейковый сайт, то все стало понятно. Вот скрин: http://joxi.ru/J2bYDplc4vR67m . Женя, Женя. В кого ты такой пошел? Поменял просто владельца модуля. Не более того. Не потрудился даже код модуля сменить. Лентяй ты, Женька. Или просто "рукожоп».

А когда Женя нам не смог настроить стандартный парсер на Вайлдберис, то он нас вообще разочаровал. Вернее, он его пытается вторые сутки настроить, но безрезультатно. Видимо, квалификации не хватает.

Ладно, решили Женьке упростить задачу и запросили у него продление Бизнеса БУС. Он согласился, но почему-то запросил доступы на сайт. Если доступы не даем, то ему нужен ключ Битрикс и, к тому же, надо понять ему: на какое лицо оформлен Битрикс. Женя, может тебе еще ключи от дома, где деньги лежат, дать? Наивный парень. И опять расстраивает, что заработать он захотел не на перепродаже продления Битрикс, а на простом взломе.

Что сказать тебе Женя? Загубил ты свой талант, подставил идеалы БМ. Но вот наглости тебе не занимать. Пустить рекламу на свой пиратский продукт – этого я еще не слышал. Ты молодчик. Но только далеко не уедешь на этом.

Все данные о данном гражданине переданы в партнерский отдел Битрикс, а также сформирована и направлена жалоба в Яндекс.Директ.

Клиентам же категорически не рекомендуем работать с данным товарищем. Если он не смог настроить простейший парсер, то что он сможет сделать с Вашим проектом? Если и покупаете наши ломанные продукты, то покупайте, пожалуйста, у квалифицированных специалистов, а не у "рукожопов» вроде Евгения Герцена.

Данные мошенника:

ФИО: Евгений Герцен
Email: evgen-gercen@yandex.ru
Вконтакте: https://vk.com/evgen_gercen
Лендос: http://parser.tilda.wsФриланс страничка: https://www.fl.ru/users/evgen-gercen/tu/

PS: Женек, прошу тебя обратиться в нашу ТП. Мы специально для тебя проведем мастер-класс по настройке парсера. Вне очереди!))

Автор :

Алексей: Восстановление пароля mysql, пользователь root. Bitrix VM 7

Не сразу нашлось решение для новой виртуалки. Много тем про решения для старой VM, которые не подходят.
Поэтому, решение достойно записи в блоге)

1. Останавливаем mySQL
systemctl stop mysqld

2. Устанавливаем переменую окружения для входа без пароля
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

3. Запускаем
systemctl start mysqld

4. Заходим
mysql -u root

5. Меняем пароль root
UPD ATE mysql.user SE T authentication_string = PASSWORD('NewPassword') WHERE User = 'root' AND Host = 'localhost';

6. Останавливаем
systemctl stop mysqld

7. Снимаем переменную окружения для входа без пароля
systemctl unset-environment MYSQLD_OPTS

8. Запускаем mySQL в нормальном режиме
systemctl start mysqld

9. Пробуем зайти с новым паролем
mysql -u root -p

Автор :

Илья Беликов: Скидки в CRM Б24? Как два пальца =)

Очередной клиент, со своими очередными премудростями захотел иметь в сделках ЦРМ сложный механизм скидок, аналогичный тому, что отлично работает (при правильной настройку, конечно же) в БУС, и именуется "правила работы с корзиной".

Ваять подобный механизм очень не хотелось. Ну оооочень. По сему начались размышления.
Писать - долго, не очень интересно, и главное - есть такое, но в БУС. А в ЦРМ нету. А в БУС есть. Но в коробке есть механика БУС. Но механизм рассчитан на корзину интернет-магазина БУС. А скидки нужны в ЦРМ.

А что нужно клиенту? Клиенту нужно, чтобы на список товаров в сделке ЦРМ работали скидки корзины БУС.
Уже было собирался пойти сложным путём (нажимаем сохранить сделку -> создаётся корзина -> пихаются в неё товары/применяются скидки -> берём изменённые цены и меняем в сделке -> показываем сделку с уже изменёнными ценами), но вдруг "а если... пойти на хитрость?".

В панели управления, в разделе "Магазин" настраиваем интеграцию с ЦРМ. В качестве целевой ЦРМ используем ЭТУ ЖЕ коробку.

Что нам даёт эта петля.
При создании сделки, появляется "связать сделку с интенет-магазином". При использовании этого функционала, заказ создаётся в "БУС" с использованием ВСЕХ скидок на товар и правил работы с корзиной, и успешно цепляется ЦРМ, где появляется сделка с нужными ценами.
Можно (с помощью небольшого напильника) при необходимости, вытянуть даже список применённых скидок.


Что нужно учитывать.
Для корректной и комфортной работы этого функционала требуются покупатели. Покупателя можно создавать прямо в сделке, но он может не подцепиться к существующему контакту, если что-то не совпадает (к примеру, адрес почты друггой). Для избежания подобных неурядиц, а так же комфортного использования описанного выше функционала МОЖНО сделать так, чтобы при создании контакта в ЦРМ автоматом создавался покупатель. И дальше оперировать только выбором покупателя.

Вуаля!


Автор :

dev2fun: На неделе команда Dev2Fun выпустила новое обновление (1.1.0), которое сильно усовершенствовало модуль. Всем кто использует версию 1.0.7 и младше, рекомендуем обновиться. Миграция с 1.0.x на 1.1.x Миграция происходит при обновлении автоматически. Внимание!

На неделе команда Dev2Fun выпустила новое обновление (1.1.0), которое сильно усовершенствовало модуль.

Всем кто использует версию 1.0.7 и младше, рекомендуем обновиться.

Миграция с 1.0.x на 1.1.x

Миграция происходит при обновлении автоматически.
Внимание! В модуле закончена поддержка php5.3 и младше.

Что нового

  • Добавлен функционал страниц исключений вывода OpenGraph
Теперь вы можете указать страницы на которых не нужно выводить теги OpenGraph.
Пути до страниц указывать от корня.

Пример 1:

Задача:
Нужно запретить вывод мета-тегов OpenGraph для страницы "/catalog/auto/audi/a8/", а также запретить вывод для главной страницы.
Решение:
Указываем в поле "catalog/auto/audi/a8/", а в другом поле "index" (index, от корня, это ключевое значение, которое модуль воспримет за главную страницу).


  • Добавлена возможность указать OpenGraph в элементах инфоблока

Выводятся все поля, которые указаны в настройках модуля.
Поле description - выводится как textarea
Поле image- выводится как fileinput
Все остальные поля выводятся, как input

Поля которые не выводятся, но значения проставляются автоматически:
  • url - текущая отображаемая страница
  • image:width - ширина картинки, которая сейчас в og:image
  • image:type - тип картинки (png,jpg, etc.), которая сейчас в og:image
  • image:height - высота картинки, которая сейчас в og:image
  • site_name - название сайта из настроек сайта
  • Добавлена возможность указать OpenGraph в разделах инфоблока

Выводятся все поля, которые указаны в настройках модуля.
Поле description - выводится как textarea
Поле image- выводится как fileinput
Все остальные поля выводятся, как input

Поля которые не выводятся, но значения проставляются автоматически:
  • url - текущая отображаемая страница
  • image:width - ширина картинки, которая сейчас в og:image
  • image:type - тип картинки (png,jpg, etc.), которая сейчас в og:image
  • image:height - высота картинки, которая сейчас в og:image
  • site_name - название сайта из настроек сайта

  • Добавлена настройка вывода OpenGraph полей в элементах и разделах
  • Добавлена загрузка картинки для OpenGraph, по умолчанию


Как интегрировать поддержку OpenGraph


Мы сделали автоматический вывод Open Graph для:
  • title - из заголовка страница
  • description - из описания страницы
  • url - текущая страница
  • site_name - название из настроек сайта
  • type - по умолчанию website
Для всего остального и собственных полей мы сделали 2 способа интеграции

Способ #1

Указать на нужных страницах названия полей добавляя впереди "og:"

Примеры:

Переписать поле og:title ====code====
$APPLICATION->SetPageProperty('og:title','Новое значение'); 
// или
// $APPLICATION->SetDirProperty('og:title','Новое значение');
=============

Установить значение в og:image ====code====
$APPLICATION->SetPageProperty('og:image','http://rockisfest.ru/upload/resize_cache/iblock/5a9/380_9999_1/5a9163ca1aca97d620d6640dd271a7f6.jpg');  
// или  
// $APPLICATION->SetDirProperty('og:image','http://rockisfest.ru/upload/resize_cache/iblock/5a9/380_9999_1/5a9163ca1aca97d620d6640dd271a7f6.jpg');
=============
Установить любое своё свойство, допустим og:custom

Предварительно нужно проверить добавлено ли поддержка custom в настройках модуля, если нет, то добавить ====code====
$APPLICATION->SetPageProperty('og:custom','Новое значение'); 
// или
// $APPLICATION->SetDirProperty('og:custom','Новое значение');
=============
Если нужно сделать установку значений из элементов и разделов, то необходимо прописывать в result_modifier.php используемого шаблона.
После чего сбросить кэш.

Способ #2

Этот способ наиболее проще первого, но, в данной версии, представляет меньше гибкости.
Этот способ мы сделали для более удобной интеграции Open Graph в компонентах.

Необходимо в result_modifier.php или component_epilog.php прописать вызов метода:

====code====
Dev2funModuleOpenGraph::Show($refId,$type);
=============
Где $refIf - идентификатор элемента или раздела
Где $type - тип объекта element или section.

element - вывод для элементов инфоблока
section - вывод для разделов инфоблока

В результате result_modifier.php должно получиться следующее:

Для компонента bitrix:news.detail ====code====
Dev2funModuleOpenGraph::Show($arResult['ID'],'element');
=============
Для компонента bitrix:news.list ====code====
Dev2funModuleOpenGraph::Show($arResult['ID'],'section');
=============
Автор модуля: darkfriend
Поблагодарить автора

Ближайшие релизы:
Следите за новостями

Автор :
1 2 3 5
Страница 1 из 5