• Веб-дизайнеры, как проходит типичный процесс выполнения заказа?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    Приходит Заказчик к Менеджеру по продажам и заказывает Сайт
    Менеджер по продажам
    1. Проводит бриф с клиентом.
    2. Формирует анкету потребностей
    3. Подготавливает и подписывает договор
    4. Передает в отдел разработки

    После всех юр. формальностей назначается Проект-Менеджер (ПМ):
    Проект-менеджер:
    1. Формирует ТЗ на Дизайн / Сайт / Платформу
    2. Согласовывает с заказчиком чек лист для приёма работы
    3. Просчитывает срок разработки
    4. Контролирует ход разработки
    5. Сдаёт завершенную работу по чек листу заказчку

    ПМ => Web-Дизайнеру:
    1. Получает ТЗ на дизайн сайта (при наличии ему передается бренд бук - с логотипами, цветами, шрифтами )
    2. Рисуется 1-3 варианта макетов страниц
    3. Согласовывается и дорисовывается + рисуется адаптивный дизайн
    4. Сдаётся ПМ

    Макеты полученные от Дизайнера ПМ передает:
    ПМ => HTML-Верстальщику (Front-end Разработчику)
    1. Получает макеты дизайна всех страниц и ТЗ на верстку (если есть особенности - эффекты, паралакс и т.д)
    2. Верстает, подбирает скрипты и т.д
    3. Сдаётся ПМ

    Верстку всех страниц полученные от HTML-Верстальщика ПМ передаёт:
    ПМ => Web-Программисту ( Back-end разработчику )
    1. Получает верстку (HTML+CSS+JS+Изображения) и ТЗ на программную част сайта
    2. Использует готовую (оговоренную в ТЗ или на своё усмотрение если нет) платформу (CMS) или разрабатывает с нуля программное решение
    3. Настраивает работу всех компонентов и модулей
    4. Заводит пользователей и разграничивает права доступа
    5. Разворачивает весь проект на сервере
    6. Сдаётся ПМ передав логины пароли и пояснения как пользоваться

    После ПМ передает Доступ к управлению сайтом полученные от Web-Программиста:
    ПМ => Контент-менеджеру
    1. Получает доступы к сайту и ТЗ на создание/рерайт/копирайт контента
    2. Заполняет сайт контентом
    3. Сдаётся заказчику


    Сайт готов!
    Ответ написан
    Комментировать
  • Починить таймер на мобильных jQuery?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    Проблема вот в этом у #s08 .h3:

    background: linear-gradient(90deg,#a97b26,#f2cb62,#a18049);
        background-clip: border-box;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;


    Ваш код успешно работает но не перерисовывается браузером из-за хаков -webkit
    Ответ написан
    3 комментария
  • Как получить имя пользователя по его id из mysql базы?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    $user_name_super_query = $db->super_query( "SELECT name FROM " . USERPREFIX . "_users WHERE user_id=3 " );
    $user_name = $user_name_super_query['name'];
    echo $user_name; // Тут будет Имя
    Ответ написан
    Комментировать
  • Есть ли возможность задать значения мета-тегов по умолчанию?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    Есть такие файлы как .section.php Подробнее в документации
    Ответ написан
    2 комментария
  • Как изменить заголовок H3 на H1 в Битрикс?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    Есть 3 места где могут храниться шаблоны:
    1) Шаблоны по дифолту у компонентов
    /public_html/bitrix/components/bitrix/news.list - список
    /public_html/bitrix/components/bitrix/news.detail - детальная страница

    2) Шаблоны компонентов привязанные к вашему шаблону
    /public_html/bitrix/templates/ВАШ_ШАБЛОН_САЙТА/components/bitrix/news.list - список
    /public_html/bitrix/templates/ВАШ_ШАБЛОН_САЙТА/components/bitrix/news.detail - детальная страница

    3) Порой некоторые умники компоненты и шаблоны переопределяют тут
    /public_html/local/components/
    /public_html/local/templates/
    Ответ написан
    Комментировать
  • Какой компонент отвечает за выгрузку заказов из 1с на сайт?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    Интеграция с "1С:Предприятие" ( Магазин / Настройки / Интеграция с 1С )
    Ответ написан
    Комментировать
  • Как сделать редирект на https на хостинге nic.ru для сайта на Битрикс?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    Options -Indexes 
    ErrorDocument 404 /404.php
    
    php_value display_errors on
    php_value date.timezone Europe/Moscow
    
    
    <IfModule mod_php5.c>
      php_flag session.use_trans_sid off
      #php_flag default_charset UTF-8
      #php_value display_errors 1
    </IfModule>
    
    <IfModule mod_php7.c>
      php_flag session.use_trans_sid off
      #php_flag default_charset UTF-8
      #php_value display_errors 1
    </IfModule>
    
    <IfModule mod_rewrite.c>
      Options +FollowSymLinks
      RewriteEngine On
      
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
     
    RewriteCond %{REQUEST_URI} ^(.*/[^/\.]+)$ [NC]
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [R=301,L]
    
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-l
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
      RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
      RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
    </IfModule>
    
    <IfModule mod_dir.c>
      DirectoryIndex index.php index.html
    </IfModule>
    
    <IfModule mod_expires.c>
      ExpiresActive on
      ExpiresByType image/jpeg "access plus 3 day"
      ExpiresByType image/gif "access plus 3 day"
      ExpiresByType image/png "access plus 3 day"
      ExpiresByType text/css "access plus 3 day"
      ExpiresByType application/javascript "access plus 3 day"  
    </IfModule>
    Ответ написан
  • Как вывести рандомно элементы каталога после того как вывел первые 20 отсортировано в Битрикс?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    Шаг 1: Получаем первые 20 элементов,
    Шаг 2: Получаем 100 случайных элементов убрав из них 20 полученные в Шаге 1,
    Шаг 3: Получаем оставшиеся элементы убрав из них 120 полученные в результате Шаг 1 и Шаг 2,

    \Bitrix\Main\Loader::includeModule('iblock');
    
    // Шаг 1:  Получаем первые 20 элементов,
    
        $arSelect = Array("ID","NAME","DETAIL_PAGE_URL");
        $nPageSize = Array("nPageSize" => 20);
        $arSort = Array("SORT" => "ASC");
    
        $arFilter = Array("IBLOCK_ID"=>IntVal($this->arParams['IBLOCK_ID']), "ACTIVE"=>"Y");
        $res = CIBlockElement::GetList($arSort, $arFilter, false, $nPageSize, $arSelect);   
        $ALL_RESULT = [];
        $IGNORE_IDS = [];
        while($ob = $res->GetNextElement())
        {         
            $GetFields = $ob->GetFields();
            $IGNORE_IDS[] = $GetFields["ID"];
            $ALL_RESULT[] = $GetFields;
        }
    
    // Шаг 2:  Получаем 100 случайных элементов убрав из них 20 полученные в Шаге 1,
    
        $nPageSize = Array("nPageSize" => 100);
        $arSort = Array("RAND" => "ASC");
        $arFilter = Array("!ID" => $IGNORE_IDS, "IBLOCK_ID"=>IntVal($this->arParams['IBLOCK_ID']), "ACTIVE"=>"Y");
        $res = CIBlockElement::GetList($arSort, $arFilter, false, $nPageSize, $arSelect);   
        while($ob = $res->GetNextElement())
        {         
            $GetFields = $ob->GetFields();
            $IGNORE_IDS[] = $GetFields["ID"];
            $ALL_RESULT[] = $GetFields;
        }
    
    // Шаг 3:  Получаем оставшиеся элементы убрав из них 120 полученные в результате Шаг 1 и Шаг 2,
        $nPageSize = Array();
        $arSort = Array("ACTIVE_FROM" => "ASC");
        $arFilter = Array("!ID" => $IGNORE_IDS, "IBLOCK_ID"=>IntVal($this->arParams['IBLOCK_ID']), "ACTIVE"=>"Y");
        $res = CIBlockElement::GetList($arSort, $arFilter, false, $nPageSize, $arSelect);   
        while($ob = $res->GetNextElement())
        {         
            $GetFields = $ob->GetFields();
            $IGNORE_IDS[] = $GetFields["ID"];
            $ALL_RESULT[] = $GetFields;
        }
        return $ALL_RESULT;
    Ответ написан
  • Как вставить видео на сайт так что бы оно его не грузило?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    <video src="/upload/video.mp4" class="player_video" preload="metadata" poster="images/poster_video.jpg"></video>


    Подробнее про тег VIDEO
    Ответ написан
    Комментировать
  • Как изучить 1С Битрикс?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    Берешь и делаешь )))

    Для начала Проходишь это и это

    Параллельно учишь PHP MySQL-запросы
    Ответ написан
    Комментировать
  • Как привязывать обработчики событий к элементам в canvas?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    Если интересен принцип как устроено и как это работает то Алексей Ярков в первом приближении верно всё обозначил.
    Если нет времени ломать голову (как мне в своё время) то есть готовое решение konvajs

    Если вдруг кому интересно

    Используя konvajs я делал интерактивный: ген план застройки, этажность домов, планировки этажей. Пример тут
    Ответ написан
    Комментировать
  • Как узнать редакцию заблокированного сайта?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    В файле bitrix/modules/main/admin/update_system.php есть строка 3

    В файле /bitrix/license_key.php лежит ключ. По ключу можно вот тут посмотреть редакцию https://www.1c-bitrix.ru/support/key_info.php
    Ответ написан
    Комментировать
  • Как сохранить результат json?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    var info = false;
    
    $("#start").click(function(){
    if(!info){
      $.getJSON( "/json.php", function( data ) {
        console.log(data);
    info = data;
      });
    }
    });
    Ответ написан
    1 комментарий
  • Где найти скрипт на сайт (битрикс) который считывает почтовые адреса пользователей сайта по IP?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    Легально считывать можно только те данные которые пользователь сам ввёл.

    Для отслеживания качества рассылки - в рассылке делают специальные ссылки с UTM метками и смотрят в метрике.
    Как вариант в ссылки с рассылки добавлять get параметр ящика и при переходе по такой ссылке записывать его.
    Ответ написан
    2 комментария
  • Как грамотно сделать динамическую загрузку содержимого в div-блок?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    Структура:
    index.php
    content/
    	info.php
    	about.php
    template/
    	header.php
    	footer.php


    Вариант index.php
    <?php include ('template/header.php'); ?>
    	<div class="content"> Сюда идет загрузка динамического контента </div>
    	<?php include ('template/footer.php'); ?>


    about.php
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ducimus a cum recusandae quaerat eaque, iure accusantium? Voluptate cupiditate excepturi obcaecati ipsam reiciendis repudiandae aliquam laborum, quas iure architecto ducimus natus.</p>


    Проверяем выводит ли данные по ссылке mysite.ru/content/about.php - если нет проверяем почему.
    Если да то делаем на JS при клике запрет на переход и AJAX GET запрос по этой ссылке и полученный ответ вставляем в
    <div class="content">
    Ответ написан
  • Как реализовать загрузку нескольких изображений?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    Есть и много но лучше чем FileAPI я пока не встретил.
    Ответ написан
    Комментировать
  • Режим центрирования слайда для Slick Slider?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    Качаем
    или подключаем с CDN
    <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"/>
    <script type="text/javascript" src="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>


    Не забудь предварительно подключить jQuery например так:
    <script
      src="https://code.jquery.com/jquery-3.4.1.min.js"
      integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
      crossorigin="anonymous"></script>


    Дальше HTML слайдера
    <div class="my-slider">
      <div class="item-slide">SLIDE 1</div>
      <div class="item-slide">SLIDE 2</div>
      <div class="item-slide">SLIDE 2</div>
    </div>


    Дальше JavaScript
    <script type="text/javascript">
        $(document).ready(function(){
          $('.my-slider').slick({
      centerMode: true,
      centerPadding: '60px',
      slidesToShow: 3,
      autoplay: true,
      autoplaySpeed: 2000,
          });
        });
      </script>

    А вообще учи английский и смотри официальную документацию

    Там всё просто и понятно - будут вопросы пиши.
    Ответ написан
  • Как правильно отправить форму с файлом?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    Вы не отправляете сам файл вот и не работает!

    $(document).ready(function() {
          $(".modal_btn").click(function(event) {
              event.preventDefault();
              var phone = $(".modal_input--phone").val();
              var name = $(".modal_input--name").val();
              var mail = $(".modal_input--mail").val()
              var ms = $(".modal_textarea").val();
              var userfile = $(".modal_input--userfile").val();
              
              if (name.length < 1) {       
                  alert('Введите корректное имя')
                  return false;
              } else if (!phone.match(/^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/)) {
                  alert('Введите корректный номер телефона')
                  return false;
              } else if (ms.length < 5) {
                alert('Сообщение должно содержать от 5-ти символов')
                  return false;
              } else if (!mail.match(/^[-._a-z0-9]+@(?:[a-z0-9][-a-z0-9]+\.)+[a-z]{2,6}$/)) {
                    alert('Введите корректный e-mail')
                    return false;
              } else {
                var fd = new FormData();
                fd.append('ms', ms);
                fd.append('name', name);
                fd.append('phone', phone);
                fd.append('mail', mail);
                fd.append('userfile', $(".modal_input--userfile")[0].files[0]);
                $.ajax({
                    type: 'POST',
                    url: './wp-content/themes/uslugi/send_t.php',
                    data: fd,
                    processData: false,
                    contentType: false,
                    dataType: "json",
                    success: function(data) {
                        alert('Заявка успешно отправлена!');
                    },
                    error: function(data) {
                        console.log(data);
                    }
                });
              }
          });
    });
    Ответ написан
    2 комментария
  • Как перенести длинную строку?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    word-break: break-all;
    Ответ написан
    1 комментарий
  • Во VueJs при изменении переменной не срабатывает v-if, почему?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    V-if придуман не для стилей. прочитай Документацию вопрос отпадет
    Ответ написан
    Комментировать