Телеграм: @camouf_ru Почта: mihail@bazarow.ru

Вопросы интересующие начинающих Битриксоидов

Внимание! все сообщения проходят премодерацию. Ваше сообщение появится после проверки
Ответить
RSS
Вопросы интересующие начинающих Битриксоидов
 
Если вы только пришли в сферу сайтостроения, как фрилансер. Или уже давно в этой сфере, но не давно начали работать с 1С-Битрикс.
Возможно, у вас имеются какие-то вопросы, ответы на которые не получается "нагуглить" сходу.

Можете задавать, обсуждать и решать тут.
 
День добрый!

Как можно реализовать отправку писем на почту с форм на сайте и с сохранением их в битриксе?!
 
Цитата
Ильдус Гельметдинов написал:
День добрый!

Как можно реализовать отправку писем на почту с форм на сайте и с сохранением их в битриксе?!
Можно самостоятельно написать компонент который будет сохранять письма в инфоблоки, а можно поискать на маркетплейсе- там давно лежит несколько готовых компонентов с этим функционалом
 
То есть в самом битриксе "Старт" их нет, я правильно Вас понял?!
 
Цитата
Ильдус Гельметдинов написал:
То есть в самом битриксе "Старт" их нет, я правильно Вас понял?!
в старте нет
 
добрый день.

писал данный вопрос в комментах к статье Регистрация пользователя в определенную группу сайта на Битрикс
здесь чуть подредактировал

а как сделать чтобы выбор группы зависел от выбора ее из списка?
пробовал так:
Код
<?
AddEventHandler("main", "OnAfterUserAdd", "OnAfterUserAddHandler");
function OnAfterUserAddHandler(&$arFields)
  {
  if($arFields["ID"] > 0)
     {
     if(strlen($arFields["UF_BAZA"]) == 4)  
        {
        $arGroups = CUser::GetUserGroup($arFields["ID"]);
        $arGroups[] = 12; //То добаляем пользователя в группу c ID12
        CUser::SetUserGroup($arFields["ID"], $arGroups);
        }
        elseif (strlen($arFields["UF_BAZA"]) == 5)
        {
        $arGroups = CUser::GetUserGroup($arFields["ID"]);
        $arGroups[] = 13; //То добаляем пользователя в группу c ID13
        CUser::SetUserGroup($arFields["ID"], $arGroups);
        }
        elseif (strlen($arFields["UF_BAZA"]) == 6)
        {
        $arGroups = CUser::GetUserGroup($arFields["ID"]);
        $arGroups[] = 14;
        CUser::SetUserGroup($arFields["ID"], $arGroups);
        }
     else
        {
        $arGroups = CUser::GetUserGroup($arFields["ID"]);
        $arGroups[] = 8; //Иначе в группу c ID8
        CUser::SetUserGroup($arFields["ID"], $arGroups);
        }
     }
  }
?>
не силен в программировании, поэтому не удивлюсь если в корне не правильно написал.
Но есть один момент. Ваш код при вставке его в файл init.php делает так, что перестает отображаться капча и нельзя сделать полное тестирование системы (может и еще что ...) Зато если вставлять вариант при многосайтовости, то такой проблемы не возникает.
помогите пожалуйста решить эти проблемы.
 
Цитата
Максим написал:
добрый день.

писал данный вопрос в комментах к статье  Регистрация пользователя в определенную группу сайта на Битрикс
здесь чуть подредактировал

а как сделать чтобы выбор группы зависел от выбора ее из списка?
пробовал так: Код
<?
AddEventHandler("main", "OnAfterUserAdd", "OnAfterUserAddHandler");
function OnAfterUserAddHandler(&$arFields)
  {
  if($arFields["ID"] > 0)
     {
     if(strlen($arFields["UF_BAZA"]) == 4)  
        {
        $arGroups = CUser::GetUserGroup($arFields["ID"]);
        $arGroups[] = 12; //То добаляем пользователя в группу c ID12
        CUser::SetUserGroup($arFields["ID"], $arGroups);
        }
        elseif (strlen($arFields["UF_BAZA"]) == 5)
        {
        $arGroups = CUser::GetUserGroup($arFields["ID"]);
        $arGroups[] = 13; //То добаляем пользователя в группу c ID13
        CUser::SetUserGroup($arFields["ID"], $arGroups);
        }
        elseif (strlen($arFields["UF_BAZA"]) == 6)
        {
        $arGroups = CUser::GetUserGroup($arFields["ID"]);
        $arGroups[] = 14;
        CUser::SetUserGroup($arFields["ID"], $arGroups);
        }
     else
        {
        $arGroups = CUser::GetUserGroup($arFields["ID"]);
        $arGroups[] = 8; //Иначе в группу c ID8
        CUser::SetUserGroup($arFields["ID"], $arGroups);
        }
     }
  }
?>
не силен в программировании, поэтому не удивлюсь если в корне не правильно написал.
Но есть один момент. Ваш код при вставке его в файл init.php делает так, что перестает отображаться капча и нельзя сделать полное тестирование системы (может и еще что ...) Зато если вставлять вариант при многосайтовости, то такой проблемы не возникает.
помогите пожалуйста решить эти проблемы.
Когда копируете мой код, посмотрите что бы не было пробелов в конце строк
 
И верно, убрал пробел в последней строке и все нормально.

Но как все таки сделать назначение группы от выбора ее из списка.
Создал пользовательское поле c типом данных "список"
вписал несколько полей списка.
выставил при регистрации, что бы выбор из списка был обязателен.
в итоге при нажатии "зарегистрироваться" пишет "Не введено значение обязательного поля"

код использую тот что выше написал
 
Михаил, помогите.
 
Добрый день, Михаил!
Помогите!
Выгрузил номенклатуру на сайт, в карточке товара есть цена. При просмотре каталога есть цены. ( http://mega-karin.ru/catalog/torgovoe_oborudovanie/ ) При переходе в карточку товара пишет нет в наличии и цена не отображается ( http://mega-karin.ru/catalog/torgovoe_oborudovanie/shtrikh_skanery/1377/ )  
Что делать?
Заранее спасибо  :)
 
Цитата
Джасур Эшмирзаев написал:
Добрый день, Михаил!
Помогите!
Выгрузил номенклатуру на сайт, в карточке товара есть цена. При просмотре каталога есть цены. (  http://mega-karin.ru/catalog/torgovoe_oborudovanie/  ) При переходе в карточку товара пишет нет в наличии и цена не отображается (  http://mega-karin.ru/catalog/torgovoe_oborudovanie/shtrikh_skanery/1377/  )  
Что делать?
Заранее спасибо  
Нашел ошибку. Просто не расставил тип цены в компоненте каталог.  :D извините за беспокойства    
 
Всем доброго времени! Дорогие разработчики и главный создатель Михаил. Такая проблема. Учусь по вашим урокам и дошел до установки Битрикс на виртуальную машину. Но при попытке запуска виртуальной машины она просто не запускается. Включается, черный экран и тут же выключается. В виртуал боксе открывает зачем то командную строку Shell 2.0 и все. Не могу продолжить ваши уроки из за этой ерунды. Начал по другому вашему уроку, но яндекс диск не находит машины 4.3 у вас. Все остальные программы есть. Если кто то сталкивался с подобным помогите решить. Процессор Core 2 Duo T4300. Я уже подозреваю что дело в древнем процессоре. Макинтош тоже не запускается на виртуальной.
 
Добрый день.

Недавно изучаю битрикс, дошел до изучения ORM на D7.

Получаю поля инфоблока тут все ок

\Bitrix\Main\Loader::includeModule("iblock");

 function var2()
   {

           
           $result = \Bitrix\Iblock\ElementTable::getList(array(
           'select' => array('ID', 'NAME', 'IBLOCK_ID'),
           'filter' => array(
           '=IBLOCK_ID' => 2,
           
           ),
   
 
));
           
           
           
           
               while ($row = $result->fetch())
               {
                $arResult['var2'][] = $row;
               }

               return $arResult;
   }


Но не могу понять, как получить поля свойств для этих элементов.

Как я понимаю должно быть что-то типа

$result = \Bitrix\Iblock\ElementTable::getList(array(
           'select' => array('ID', 'NAME', 'IBLOCK_ID'),
           'filter' => array(
           '=IBLOCK_ID' => 2,
       
       ),
   'runtime' => array(
       'PROPERTY' => array(
           'data_type' => 'Bitrix\Iblock\PropertyTable',
           'reference' => array('=this.IBLOCK_ID' => 'ref.IBLOCK_ID'),
           'join_type' => "LEFT",
       ),
       
   ),
));

Но так не хочет работать(


Понимаю, что туплю где-то, буду благодарен за помощь или хотя б за отсылку к документации

       
 
Разобрался

вот код


// Класс с описанием сущности  \Bitrix\Iblock\ElementPropertyTable
include 'elementproperty.php';

\Bitrix\Main\Loader::includeModule("iblock");


   function var2()
   {
     


// создаем объект Query. В качестве параметра он принимает объект сущности, относительно которой мы строим запрос
$query = new \Bitrix\Main\Entity\Query(Bitrix\Iblock\ElementTable::getEntity());


$query
    ->setSelect( array('PREVIEW_TEXT','NAME', 'ID', 'IBLOCK_ID', 'PROP')  )
    ->registerRuntimeField('PROP', array(
       "data_type"   => '\Bitrix\Iblock\ElementPropertyTable',
       'reference'    => array('=this.ID' => 'ref.IBLOCK_ELEMENT_ID'),
    ))
    ->setFilter(array(
       'IBLOCK_ID' => 2,
       
    ));
 



$result = $query->exec();


       
               while ($row = $result->fetch())
               {
                $arResult['var2'][] = $row;
               }

               return $arResult;
   }

ВАЖНО: нужно описать сущность \Bitrix\Iblock\ElementPropertyTable

делается это так

<?php
namespace Bitrix\Iblock;

use Bitrix\Main;
use Bitrix\Main\Localization\Loc;
Loc::loadMessages(__FILE__);

/**
* Class ElementPropertyTable
*
* Fields:
* <ul>
* <li> ID int mandatory
* <li> IBLOCK_PROPERTY_ID int mandatory
* <li> IBLOCK_ELEMENT_ID int mandatory
* <li> VALUE string mandatory
* <li> VALUE_TYPE enum ('text', 'html') optional default 'text'
* <li> VALUE_ENUM int optional
* <li> VALUE_NUM double optional
* <li> DESCRIPTION string(255) optional
* <li> IBLOCK_ELEMENT reference to {@link \Bitrix\Iblock\IblockElementTable}
* <li> IBLOCK_PROPERTY reference to {@link \Bitrix\Iblock\IblockPropertyTable}
* </ul>
*
* @package Bitrix\Iblock
**/

class ElementPropertyTable extends Main\Entity\DataManager
{
   /**
    * Returns DB table name for entity.
    *
    * @return string
    */
   public static function getTableName()
   {
       return 'b_iblock_element_property';
   }

   /**
    * Returns entity map definition.
    *
    * @return array
    */
   public static function getMap()
   {
       return array(
           'ID' => array(
               'data_type' => 'integer',
               'primary' => true,
               'autocomplete' => true,
               'title' => Loc::getMessage('ELEMENT_PROPERTY_ENTITY_ID_FIELD'),
           ),
           'IBLOCK_PROPERTY_ID' => array(
               'data_type' => 'integer',
               'required' => true,
               'title' => Loc::getMessage('ELEMENT_PROPERTY_ENTITY_IBLOCK_PROPERTY_ID_FIELD'),
           ),
           'IBLOCK_ELEMENT_ID' => array(
               'data_type' => 'integer',
               'required' => true,
               'title' => Loc::getMessage('ELEMENT_PROPERTY_ENTITY_IBLOCK_ELEMENT_ID_FIELD'),
           ),
           'VALUE' => array(
               'data_type' => 'text',
               'required' => true,
               'title' => Loc::getMessage('ELEMENT_PROPERTY_ENTITY_VALUE_FIELD'),
           ),
           'VALUE_TYPE' => array(
               'data_type' => 'enum',
               'values' => array('text', 'html'),
               'title' => Loc::getMessage('ELEMENT_PROPERTY_ENTITY_VALUE_TYPE_FIELD'),
           ),
           'VALUE_ENUM' => array(
               'data_type' => 'integer',
               'title' => Loc::getMessage('ELEMENT_PROPERTY_ENTITY_VALUE_ENUM_FIELD'),
           ),
           'VALUE_NUM' => array(
               'data_type' => 'float',
               'title' => Loc::getMessage('ELEMENT_PROPERTY_ENTITY_VALUE_NUM_FIELD'),
           ),
           'DESCRIPTION' => array(
               'data_type' => 'string',
               'validation' => array(__CLASS__, 'validateDescription'),
               'title' => Loc::getMessage('ELEMENT_PROPERTY_ENTITY_DESCRIPTION_FIELD'),
           ),
           'IBLOCK_ELEMENT' => array(
               'data_type' => 'Bitrix\Iblock\IblockElement',
               'reference' => array('=this.IBLOCK_ELEMENT_ID' => 'ref.ID'),
           ),
           'IBLOCK_PROPERTY' => array(
               'data_type' => 'Bitrix\Iblock\IblockProperty',
               'reference' => array('=this.IBLOCK_PROPERTY_ID' => 'ref.ID'),
           ),
       );
   }
   /**
    * Returns validators for DESCRIPTION field.
    *
    * @return array
    */
   public static function validateDescription()
   {
       return array(
           new Main\Entity\Validator\Length(null, 255),
       );
   }
}
?>
 
Здравствуйте.
В админке у инфоблока контакты - два элемента (скажем, головной офис и филиал).
Но на сайт выводится только один из этих элементов, а я хочу чтобы выводились все элементы.
Куда копать? ID элементов? Символьный код?
Спасибо.
 
Цитата
Stas Iva написал:
Здравствуйте.
В админке у инфоблока контакты - два элемента (скажем, головной офис и филиал).
Но на сайт выводится только один из этих элементов, а я хочу чтобы выводились все элементы.
Куда копать? ID элементов? Символьный код?
Спасибо.
Активность элемента, количество элементов для вывода в компоненте. Гадать можно долго  
 
Добрый день.
Подскажите как можно сделать страницу, при попадании на которую была форма с одним полем, с выбором платежной системы в виде списка и кнопкой оплатить. Т.е. вводим сумму, выбираем платежную систему, и при нажатии на кнопку сразу переходим на страницу оплаты платежной системы.  
 
Цитата
Александр написал:
Добрый день.
Подскажите как можно сделать страницу, при попадании на которую была форма с одним полем, с выбором платежной системы в виде списка и кнопкой оплатить. Т.е. вводим сумму, выбираем платежную систему, и при нажатии на кнопку сразу переходим на страницу оплаты платежной системы.
Такую проще всего сделать на модуле "веб формы" есть в редакциях от Стандарт и выше, там все просто
 
Добрый день, Михаил!

Подскажите пожалуйста: делаю интернет магазин и выгрузка будет происходить из 1С но версия  7.7 и заказчик сказал что выгружать будет данные в формате XML (или в иной если надо), а уже потом его загружать на хостинг и Импортировать. Он выгрузку сделал по инструкции как в документах битркса - https://dev.1c-bitrix.ru/api_help/sale/xml/index.php Но не работает. В одном из уроков Вы говорили про похожий заказ и там 1С программист переписывал модуль Битрикса для 1С - правильно я понял. Если так то за основу он брал модуль для версии 10 правильно? Что можете посоветовать в такой ситуации?
 
Подскажите пожалуйста куда рулить?
Создал инфоблок КАТАЛОГ. Создал новую менюшку. В контенте создал категории в каталоге, в них сам товар (элементы) Через файлы создал меню. Сделал файлик menu_ext.php пометил все к папаку catalog Настроил меню на 3 уровня, указал эту менюшку , как вторичную. Все работает, категории выпадают, а сами элементы нет. Если набрать site.ru/catalog/10 (10 к примеру id эленмента) карточка элемента показывается. Но он то фактически лежит site.ru/catalog/kategori/10 но там пустая страница.
Что не так? Понимаю, что вроде на пустом месте проблема, но решить не могу.

Андрей
Ответить
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Загрузить картинки
 
Заметки разработчика

Примерно с 2013-го года пишу, короткие и не очень, заметки по разработке сайтов на Битрикс. Возможно, будут полезны кому-то еще. Во всех заметках есть возможность комментирования и обсуждения. Вы можете задавать уточняющие вопросы прямо там- отвечаю или дополняю заметки по возможности.

Заказaть разработку Заказы не принимаются до 15 января 2022 attention