• Как реализовать кнопку "показать еще"?

    Starina_js
    @Starina_js
    full-stack web dev
    Если вы хотите, чтобы по клику на кнопку появлялись еще сообщения из базы, то тут такой путь
    1. Верстаете кнопку, вешаете на нее событие клика на js
    2. При срабатывании события делаете fetch/ajax запрос на обработчик, передаете параметры последнего сообщения (id последнего сообщения) и в sql ... LIMIT $start, 10 (или limit + offset)
    3. Обработчик получает запрос с параметрами, проверяет, делает запрос в базу с параметрами, отдает ответ обратно на фронт с новыми данными
    4. На фронт прилетают данные, вставляете в нужное место в dom

    Загуглите примеры: php js sql load more results
    Пример готового решения
    Ответ написан
  • Как сверстать блок с частью скрытого изображения?

    Starina_js
    @Starina_js
    full-stack web dev
    Не пробовал с видео, но с картинками точно работает .

    Допустим так
    clip-path: polygon(53% 0, 100% 0, 100% 49%, 100% 100%, 53% 100%, 52% 49%, 0 49%, 0 0);


    потыкать тут
    63b48f9c7a7e4557279691.png
    Ответ написан
    5 комментариев
  • Почему не выводятся Vue компоненты?

    Starina_js
    @Starina_js
    full-stack web dev
    Это вот стандартный конфиг vite под vue

    vite.config.js
    import { defineConfig } from 'vite'
    import vue from '@vitejs/plugin-vue'
    
    // https://vitejs.dev/config/
    export default defineConfig({
      plugins: [vue()]
    })


    main.js
    import { createApp } from 'vue'
    import './style.css'
    import App from './App.vue'
    
    createApp(App).mount('#app')


    App.vue
    <template>
      <div>
        Hi
      </div>
    </template>


    index.html
    <div id="app"></div>

    Вы случайно не с Laravel заводите? Пример
    import { defineConfig } from 'vite'
    import vue from '@vitejs/plugin-vue'
    
    export default defineConfig({
      plugins: [
        vue({
          template: {
            compilerOptions: {
              isCustomElement: (tag) => ['md-linedivider'].includes(tag),
            }
          }
        })
      ]
    })


    Подробнее в доках
    Ответ написан
    2 комментария
  • Как создать сделку в AmoCRM через APİ?

    Starina_js
    @Starina_js
    full-stack web dev
    https://www.amocrm.ru/developers/content/crm_platf... - добавление сделок
    Там у них пример на объекта json

    По сути просто POST запрос на https://example.amocrm.ru/api/v4/leads (example - аккаунт)
    Формат - Content-Type: application/json
    В json указываете свои поля.

    https://www.youtube.com/results?search_query=amocr... - серия видео

    Еще надо получить токен из набора ключей необходимых для oAuth авторизации (client_id, client_secret)
    https://youtu.be/TlTnRbdgJUE

    Библиотеки просто упрощают работу со всем этим
    Ответ написан
    5 комментариев
  • Как подключить мерчант payeer к скрипту?

    Starina_js
    @Starina_js
    full-stack web dev
    Присылайте файл, что уже написали, прикладывайте код. Ссылку на документацию

    Пробовали по этой документации? https://timeweb.com/ru/community/articles/podklyuc...
    Ответ написан
  • Как найти работу?

    Starina_js
    @Starina_js
    full-stack web dev
    А есть какое-то портфолио? Если нет, то сложнее, нужно обязательно делать. Про опыт будут сразу спрашивать, а только потом уточнять знания.
    Нужно получать опыт: допустим придумать свой проект и реализовать, посмотреть на фриланс биржах задания и попытаться сделать для себя, может знакомы какие подкинут работку с версткой. Потом это все оформить грамотно.

    Продолжать учиться и лучше выбрать одно направление.
    Раз вы погрузились в верстку, в веб-фронтенд, ну значит копайте дальше туда — изучайте javascript, изучайте библиотеки, npm, node.js , git , базу по терминалу (linux), чуть можно пройтись по бекенду и базам данных (чтобы хоть понимать зачем это все)

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

    Возможно стоит на первом этапе рассмотреть местные веб-агентства, веб-студии, что работают на техподдержке проектов, кому нужны верстальщики. Часто нужны свободные руки — что-то подверстать, подкрутить, подделать.

    Для фронтенда есть карта компетенций — https://roadmap.sh/frontend , почитайте, по-гуглите что изучать.

    В теории можно поискать на фриланс биржах мелкие проекты по верстке, пытаться забирать в работу, но не стоит заказчиков вводить в заблуждение по поводу опыта, как есть пишите. Заказчики тоже все понимают :)

    А к главному вопросу "как найти работу", буду кэпом — искать её и предлагать свои услуги.
    • В соц сетях опубликуйте свое резюме, портфолио, чем вы можете быть полезны, с просьбой посоветовать себя кому-нибудь.
    • Составить резюме на hh.ru , career.habr.com , superjob . Предварительно посмотрите на ютуб ролики на эту тему, много подсказок найдете.
    • В телеграмме, в вк поищите группы / каналы где выкладывают вакансии — публикуйтесь там, предлагайте себя.
    • На фриланс биржах оформите свое портфолио, откликайтесь на задачи — делайте. Посмотрите у меня в профиле , был вопрос на эту тему, я давал ссылки на фриланс биржи.
    • Откликайтесь на вакансии, на задачи, предлагайте себя, продавайте себя)


    В идеале ментора себе бы подыскать, на обучение да и карьерного)
    Ответ написан
    Комментировать
  • Как сделать липкую шапку?

    Starina_js
    @Starina_js
    full-stack web dev
    Ну самый простой вариант , в css
    #td-outer-wrap .tdc-header-wrap  {
      position: fixed;
      width: 100%;
      z-index: 1;
    }
    
    #td-outer-wrap .td-main-content-wrap {
       margin-top: 150px;
    }


    Правда еще для мобилок доделать
    Ответ написан
    5 комментариев
  • Как заблокировать поле с кодом?

    Starina_js
    @Starina_js
    full-stack web dev
    $APPLICATION->IncludeFile(
            '/include/main.php',
            [],
            ["MODE" => "php"]
        );


    MODE - режим редактирования, допустимы следующие значения:
    text - файл будет редактироваться как текст (ссылка на страницу редактирования файла в режиме текста)
    html - файл будет редактироваться как HTML (ссылка на веб-редактор)(значение по умолчанию)
    php - файл будет редактироваться как PHP (ссылка на страницу редактирования исходников файла)

    https://dev.1c-bitrix.ru/api_help/main/reference/c...

    А вот чтобы поменять режим переключения редактора, наверно в настройках в админке можно глянуть
    https://dev.1c-bitrix.ru/learning/course/index.php...

    А еще вот тут https://dev.1c-bitrix.ru/learning/course/index.php...
    Ответ написан
    1 комментарий
  • На каких фриланс биржах искать заказы?

    Starina_js
    @Starina_js
    full-stack web dev
    Вы из РФ? Сейчас ситуация такая, что несколько бирж закрыты для РФ.

    Вот какие работают
    https://fl.ru - самая большая по заказам. Больше всего заданий там генерируется
    https://freelance.habr.com - меньше, но задания в большинстве своем более сложные
    https://freelance.ru - много тоже заданий
    https://kwork.ru/ - фриланс, только такого, магазинного плана. Немного другой подход к покупке фриланс услуг

    Какие сейчас отпали:
    freelancehunt.com , weblancer.net, зарубежная upwork.com

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

    Лучше искать работу на джуна в студии либо искать партнерство на заявки в тех же самых студиях, более опытных фрилансерах или партнерка у смежных IT профессий.

    p.s На биржах может быть проверка личности по документам, это нормально, взамен дадут спец. статус подтвержденного.
    Ответ написан
    4 комментария
  • Как вывести Highload блок в битрикс?

    Starina_js
    @Starina_js
    full-stack web dev
    Уточните, что значит вывести Highload ?
    Получить элементы таблицы? Или поля таблицы? Где планируете выводить?

    Получаем элементы так:
    use Bitrix\Main\Loader; 
    use Bitrix\Highloadblock as HL; 
    use Bitrix\Main\Entity;
    
    Loader::includeModule("highloadblock"); //это если мы не в контексте приложения, допустим отдельный класс для api 
    $hlbl = 1; // ID highloadblock
    $hlblock = HL\HighloadBlockTable::getById($hlbl)->fetch(); 
    
    $entity = HL\HighloadBlockTable::compileEntity($hlblock); 
    $entity_data_class = $entity->getDataClass(); 
    
    $rsData = $entity_data_class::getList(array(
       "select" => array("*"),
       "order" => array("ID" => "ASC"),
       "filter" => array("UF_P_ID" => "1") // если нужна фильтрация по полям
    ));
    // элементы уже можно получить разным способом,  fetchAll, fetchCollection ,  посмотрите доку
    //или как ниже
    
    while($arData = $rsData->Fetch())
    {
       var_dump($arData);
    }


    Доки
    https://dev.1c-bitrix.ru/learning/course/index.php...
    Ответ написан
    Комментировать
  • Как реализовать закрытие при клике на фон и заблокировать скролл?

    Starina_js
    @Starina_js
    full-stack web dev
    Ух.. Код немного избыточен.
    Как я понял, у вас есть кнопка, которая открывает меню. Необходимо по клику открывать меню, блокировать скролл документа, плюс чтобы темнел фон. А при клике вне объекта меню - закрывалось меню, исчезал фон, скролл появлялся.

    1. Как заблокировать скролл? Вешать на body - overflow: hidden при клике на кнопку.
    2. Закрытие при клике вне меню. (загуглил, автор https://misha.agency/javascript/klik-vne-elementa.html)
    jQuery(function($){
    	$(document).mouseup( function(e){ // событие клика по веб-документу
    		var div = $( "#popup" ); // тут указываем ID элемента
    		if ( !div.is(e.target) // если клик был не по нашему блоку
    		    && div.has(e.target).length === 0 ) { // и не по его дочерним элементам
    			div.hide(); // скрываем его
    		}
    	});
    });
    Ответ написан
  • Как создать элемент через api?

    Starina_js
    @Starina_js
    full-stack web dev
    Как я понял, в тело запроса json строку отправляйте на нужный url .
    https://{company}.elma365.{zone}/pub/v1/app/{names...

    Вот вместо {company, zone, namespace, code} - это надо в елме посмортеть, какие там переменные.
    А в тело запроса - json строка
    Вы через js fetch делать будете?

    fetch("https://{company}.elma365.{zone}/pub/v1/app/{namespace}/{code}/create",{
      method:'POST',
      headers:{
         'Content-Type': 'application/json',
         'X-Token': token,
      },
      body:JSON.stringify({
        fio: {
        lastname: "Иванов",
        middlename: "Сидорович",
        firstname: "Пётр"
       }
      })
    })


    Токен не забудьте в заголовке
    Ответ написан
  • Как адаптировать эту навигацию?

    Starina_js
    @Starina_js
    full-stack web dev
    1. Если элементы в линию не нужны, прятать в бургер на нужных @media
    2. Если элементы нужны в линию, то либо мы максимально компонуем, убирая отступы, уменьшая шрифт, либо прячем элементы за максимальной шириной + overflow-x hidden . Тогда будет прокрутка, но элементы останутся в линию
    3. Если хочется оставить в линию, при этом не хочется скролл видеть, то можно через js библиотеку-слайдер их сделать, но это если вложенности нет в меню. Иначе треш
    Ответ написан
    1 комментарий
  • Как постоянно отслеживать classList.contains без SetInterval?

    Starina_js
    @Starina_js
    full-stack web dev
    Оно?
    https://developer.mozilla.org/ru/docs/Web/API/Muta...

    Пример там есть, ну или чутка по нему по-гуглить :)
    Ответ написан
    1 комментарий
  • Как выгрузить Яндекс карту как картинку?

    Starina_js
    @Starina_js
    full-stack web dev
    Как вариант использовать js puppeteer

    const puppeteer = require('puppeteer');
    
    (async () => {
      const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
      const page = await browser.newPage();
      await page.goto('https://buddy.works');
      await page.screenshot({path: 'buddy-screenshot.png'});
    
      await browser.close();
    })();


    https://buddy.works/guides/how-take-screenshots-wi...
    Ответ написан
  • Поможете исправить несколько багов в верстке?

    Starina_js
    @Starina_js
    full-stack web dev
    У вас сетка (grid) не спроектирована. Посмотрите пример сетки на flexbox , допустим у того же bootstrap getbootstrap.com
    Адаптивная сетка создается на media-запросах https://developer.mozilla.org/ru/docs/Web/CSS/@media

    Пока не будет ограничений по сетке, все будет "плавать"
    Ответ написан
    Комментировать
  • Зачем нужна инкапсуляция в ООП?

    Starina_js
    @Starina_js
    full-stack web dev
    Да, есть такая проблема, путаница в понятиях, плюс разные языки программирования по своему трактуют и реализуют такой механизм.

    Полиморфизм, инкапсуляция, шаблоны проектирования (и т.п.) придумали для простой и банальной цели — удобство командной работы. Чтобы программисты быстрее закрывали задачи, чтобы быстрее понимали друг друга и чужой код, чтобы была стандартизация в командной работе, чтобы была определенная договоренность делать так, а не иначе. Конечно, не забываем учитывать бизнес задачи — экономия на реализацию и поддержку проекта, когда он разрастается.

    Когда на проекте работают сотни программистов, хочешь ты или нет, будет создаваться система контрактов или договоренностей между людьми. Одна из таких — безопасность от случайных воздействий или устойчивость. Возможность скрыть или защитить данные от внешних воздействий. Хотя это не только, еще про объединение данных и функций работы с данными.

    Пример: создали класс, в классе добавили свойство. Свойство используется в функциях этого класса и от него зависит поведение. Допустим какой-то коэффициент. Когда ты один работаешь на проекте, ты знаешь код и работаешь с этим свойством правильно, а вот когда работают сотни программистов, они понятия не имеют что это за свойство и не должны знать об этом. Кто-то может по ошибке перезаписать коэффициент и будет проблема...

    Пример: бизнес торопиться вывести новую функцию на рынок. Чем быстрее выведет, тем быстрее начнет зарабатывать. Бизнес просит программистов делать это побыстрее. Программисты пыхтят, у них высокая нагрузка им некогда разбираться с чужим кодом. Видят нужное им свойство, начинают с ним работать и изменяют под себя.
    Вроде все ок, и программа не упала и все тесты прошли, начали релизить проект. Прошла неделя и пользователь как-то нестандартно использовал новую функциональность и вместо 100 руб, списался 1 миллион. Беда косяк, а бывают и серьезней последствия. Случилось это потому, что кто-то изменил маленькое свойство в чужом коде.

    Поэтому программисты решили договориться — объединяйте и важное прячьте, делайте недоступными для воздействия, хотите поменять коэф — давайте правильный и безопасный метод.

    Кстати инкапсуляция это не только "про" или даже "в" ООП, оно вполне себе реализуется и в функциональном программировании.

    Как-то так)
    Ответ написан
    Комментировать
  • Как упростить работу с правками сайта на Битрикс и отдельных одностраничников имеющих одинаковые блоки, но разные домены на 1 хостинге?

    Starina_js
    @Starina_js
    full-stack web dev
    У битрикса есть такая штука как Многосайтовость.
    Вы можете под одно ядро/базу объединить несколько сайтов, доменов и управлять ими из одной админки.
    Спрятать под компоненты все что вам нужно, подрубить ядро битрикса к лендингам, и чутка допилить функциональность)
    Однако хостинг должен быть один у всех сайтов
    Ответ написан
  • Ошибка 400,403 как исправить?

    Starina_js
    @Starina_js
    full-stack web dev
    jquery ajax? fetch?
    Через что инициализируем отправку?

    Если через fetch , то Promise переходит в состояние rejected при ошибке сети или если что-то препятствует завершению запроса. В противном случае наступает состояние resolved, по нему можно смотреть какой ответ.
    И если ошибка -> повторяем запрос (Promise#catch)

    Если через $.ajax() то на сколько помню, там в error: function () падает. Посмотрите доку.

    А вообще надо бы разобраться, почему так происходит, что иногда 400/403 падают, судя по всему с wp чет не фурычит)
    Ответ написан
    Комментировать