Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

Genri_Rus

  • 0
    вклад
  • 241
    вопрос
  • 13
    ответов
  • 38%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Какой сейчас правильный способ получения постов (ленты) в инстаграме?

    thoozu
    Влад @thoozu
    Веб-разработчик
    Ошибка возникает из-за проблем с токеном, копать нужно в сторону авторизации.
    Ответ написан 27 мар.
    6 комментариев
    Нравится 1 6 комментариев
  • Как получить ключ в массиве twig без использования цикла?

    artem90
    Артем Сошников @artem90
    php-программист
    Вам поможет функция attribute
    https://twig.symfony.com/doc/2.x/functions/attribu...

    Получить значение по ключу: attribute(myArray, myKey)
    Получить ключ по номеру: myArray|keys|attribute|myKey

    Но это выглядит, настолько извратно, что лучше написать кастомную твиг функции и покрыть ее тестом.
    Ответ написан 01 мар.
    2 комментария
    Нравится 1 2 комментария
  • Как сделать горизонтальный скроллбар при использовании flex?

    Softlink @Softlink
    Для .gallery__item надо установить flex-shrink: 0;
    Ответ написан 16 февр.
    1 комментарий
    Нравится 1 1 комментарий
  • Как сделать горизонтальный скроллбар при использовании flex?

    fallus
    fallus @fallus
    Применить этот стиль:
    .gallery__item{ flex-shrink: 0; }

    То есть запретить этим элементам сужаться во flex-контейнере.
    Ответ написан 16 февр.
    1 комментарий
    Нравится 1 1 комментарий
  • Как поместить ключ в цикле во внутрь массива?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Простейшая модификация:
    $data = [];
    
    foreach ($products as $product) {
        $temp = [
            'product_id' => $product['product_id'],
            'name'       => $product['name'],
            'price'      => $price,
            'special'    => $special,
            'tax'        => $tax,
            'minimum'    => $product['minimum'] > 0 ? $product['minimum'] : 1,
            'rating'     => $product['rating'],
        ];
    
        $cart_products = $this->cart->getProducts();
    
        foreach ($cart_products as $cart_product) {
            if ($cart_product['id'] == $product['product_id']) {
                $temp['quantity'] = $cart_product['quantity'] > 0 ? $cart_product['quantity'] : 1;
            }
        }
        
        $data['products'][] = $temp;
    }

    Но я бы изменил логику:
    $cart_products = $this->cart->getProducts();
    // если ключи массива - уже столбец id, строчка не нужна
    $cart_products = array_combine(array_column($cart_products, 'id'), $cart_products);
    
    $data = [];
    
    foreach ($products as $product) {
        $data['products'][]  = [
            'product_id' => $product['product_id'],
            'name'       => $product['name'],
            'price'      => $price,
            'special'    => $special,
            'tax'        => $tax,
            'minimum'    => $product['minimum'] > 0 ? $product['minimum'] : 1,
            'rating'     => $product['rating'],
            'quantity'   => $cart_products[$product['product_id']]['quantity'] > 0 ? $cart_products[$product['product_id']]['quantity'] : 1
        ];
    }

    P.S. Можно и дальше экспериментировать с кодом:
    $cart_products = $this->cart->getProducts();
    $cart_products = array_combine(array_column($cart_products, 'id'), array_column($cart_products, 'quantity'));
    
    $data = [];
    
    foreach ($products as $product) {
        $data['products'][]  = [
            'product_id' => $product['product_id'],
            'name'       => $product['name'],
            'price'      => $price,
            'special'    => $special,
            'tax'        => $tax,
            'minimum'    => $product['minimum'] > 0 ? $product['minimum'] : 1,
            'rating'     => $product['rating'],
            'quantity'   => $cart_products[$product['product_id']] > 0 ? $cart_products[$product['product_id']] : 1
        ];
    }

    И это ещё не предел упрощения основного цикла...
    Ответ написан 19 янв.
    1 комментарий
    Нравится 1 1 комментарий
  • Как в twig сделать правильную интерполяцию при тернарном условии?

    Андрей Ежгуров @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    {% set text = ( key_value_cse != 'cse_address_street' ? ('value="' ~ value ~ '"') : '' ) %}
    Ответ написан 09 янв.
    11 комментариев
    Нравится 1 11 комментариев
  • Как в цикле связать товары с категориями?

    Алексей Николаев @megrel90
    $products_home = $this->model_catalog_product->getProducts( $filter_data );
    Ответ написан 19 дек. 2020
    4 комментария
    Нравится 1 4 комментария
  • Как можно скрывать/показывать анимацию иконок у кнопки?

    Softlink @Softlink
    Если такой вариант устраивает, то можно обойтись одной анимацией для иконок.
    Ответ написан 12 окт. 2020
    2 комментария
    Нравится 1 2 комментария
  • Как сделать выравнивание заголовков и параграфов у данных блоков?

    TpyxJl9l
    Андрей Галкин @TpyxJl9l
    Мне удалось задать фиксированную высоту заголовка при равном содержании текста в контейнере с классом .cards-item__descr. Посмотрите код по ссылке ниже, может быть это будет вам полезно.

    КОД ТУТ: https://codepen.io/MrPackage/pen/WNxbjdd

    Обычно я делаю следующим образом:
    Завожу 2 поля с наименованиями а-ля "Description" - полное описание поста, может содержать совершенно любую длину контекста и "Excerpt" - выдержка из текста, может содержать не более 200 символов (например). Таким образом получаю контейнер, который +- содержит примерно равную высоту.
    Ответ написан 09 окт. 2020
    5 комментариев
    Нравится 1 5 комментариев
  • Как обрезать домен в гиперссылке средствами PHP?

    daniel_wesson @daniel_wesson
    Просто взять и отрезать все от первого слыша, убрав предварительно разделитель протокола:
    function removeDomain($url)
    {
      $withoutProtocolDelimiter = str_replace('//', '', $url);
      return substr($withoutProtocolDelimiter, strpos($withoutProtocolDelimiter, '/') + 1);
    }
    Ответ написан 11 сент. 2020
    Комментировать
    Нравится 1 Комментировать
  • Как правильно сделать такой цикл вывода таблицы?

    nokimaro
    nokimaro @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Если ключи для полей заранее известны и они фиксированные то выводите с явным указанием ключей без цикла

    public function render_metabox($post)
    {
        $metabox_fields = $this->custom_fields_metabox();
        ?>
        <table class="form-table custom-info">
        <tbody>
            <tr>
                <th><?php echo $metabox_fields['price_field']['title']; ?></th>
                <th><?php echo $metabox_fields['sale_field']['title']; ?></th>
            </tr>
            <tr>
                <td><?php echo $metabox_fields['price_field']['value']; ?></td>
                <td><?php echo $metabox_fields['sale_field']['value']; ?></td>
            </tr>
        </tbody>
    
        <tbody>    
        <tr>
            <th><?php echo $metabox_fields['material_field']['title']; ?></th>
            <th><?php echo $metabox_fields['material_field']['value']; ?></th>
        </tr>
        </tbody>
    
        <?
    }
    Ответ написан 11 авг. 2020
    8 комментариев
    Нравится 1 8 комментариев
  • Правильное ли удаление из localStorage и сохранение?

    Raxen
    Роман Дворянов @Raxen
    Frontend Developer, ~/.space307
    Вы перезаписываете значение итема в localStorage на пустой массив, в следующий раз при проверке есть ли такой итем в хранилище вы получите true, и его значение пустой массив, чтоб удалить из хранилища используйте метод removeItem

    localStorage.removeItem(localName)
    Ответ написан 02 авг. 2020
    3 комментария
    Нравится 1 3 комментария
  • Можно ли сохранить иконку (картинку) новой кнопки в другом месте?

    Raxen
    Роман Дворянов @Raxen
    Frontend Developer, ~/.space307
    Если вам не лень для всех иконок кнопок иметь один путь, а для новых добавлять условие и задавать альтернативный путь и по другому этот вопрос не решить, то можно.
    Ответ написан 23 июл. 2020
    14 комментариев
    Нравится 1 14 комментариев
  • Как можно на определенной итерации добавлять обертку?

    Жека @JeKaAa
    $iter = 1;
    $insertRowIter = 1;
    $insertRowIterEnd = 3;
    while (...) {
        if ($iter === $insertRowIter) {
            echo '<div class="row-fluid">'; // открываем "обертку
        }
        //  тут html document-info
       if ($iter === $insertRowIterEnd) {
         echo '</div>'; // закрываем
         $iter  = 0;
       }
       $iter++;
    }
    if ($iter !== $insertRowIterEnd) {
     echo '</div>'; // закрываем если например в последней строке было на один меньше и тег был бы не закрытым
    }


    Вставляем "обертку" и закрываем через каждые 3. Т.е. по три элемента на row.
    Ответ написан 10 июл. 2020
    3 комментария
    Нравится 1 3 комментария
  • Деление по модулю, как правильно написать условие?

    nokimaro
    nokimaro @nokimaro
    Меня невозможно остановить, если я смогу начать.
    <?php $idx = 0; ?>
    <?php $num_per_group = 3; ?>
    
    <?php $manual_catalog_count = $manual_catalog->post_count; ?>
    
    <div class="row-fluid">
    
        <?php while( $manual_catalog->have_posts() ) : $manual_catalog->the_post(); ?>
            <div class="span4 document-info">
                <div class="-col-2 inline-block"><i class="file-big-icon-default file-big-icon-pdf"></i></div>
                <div class="-col-9 inline-block"><a href="" target="_blank"></a>
                    <div class="infoDigits"><b></b>, </div>
                </div>
            </div>
    
            <?php echo (++$idx) % $num_per_group == 0 ? '</div> <div class="row-fluid">' : '' ?>
        <?php endwhile; ?>
    
    </div>
    Ответ написан 07 июл. 2020
    1 комментарий
    Нравится 1 1 комментарий
  • Как сделать, чтобы массив был каждый раз новый?

    Recosh
    Кирилл Петров @Recosh
    Программист студент
    Как вариант обработать каждую галерею отдельно
    https://codepen.io/recoshet/pen/rNxJmxe
    Ответ написан 05 июл. 2020
    9 комментариев
    Нравится 2 9 комментариев
  • Почему у меня галерея открывается только после 2 клика?

    Recosh
    Кирилл Петров @Recosh
    Программист студент
    Вы не правильно используете jQuery плагин magnificPopup. Вот так правильно исходя из документации
    https://codepen.io/recoshet/pen/dyGdvBR

    А ошибка в том что вы вызывали не открытие галереи, а только вешали нативное событие плагина. Поэтому галерея открывалась только со второго клика.
    Ответ написан 05 июл. 2020
    1 комментарий
    Нравится 1 1 комментарий
  • Как можно получить класс с id на конце?

    IonDen
    Денис Инешин @IonDen
    JavaScript developer. IonDen.com
    const num = 38;
    $('.page-id-' + num)


    учим селекторы
    Ответ написан 02 июл. 2020
    14 комментариев
    Нравится 1 14 комментариев
  • Как правильно проверить комментарии на премодерацию?

    maksim92
    Максим @maksim92 Куратор тега PHP
    Нашёл решение — пометь вопрос ответом!
    • Делайте выборку в SQL только тех комментариев, у которых есть подтверждение модератором. Если в $comments ничего нет, то выводим «Отзывов нет»

    • На PHP, без SQL это можно сделать с помощью функции array_filter:
      <?php $comments = array_filter($comments, function ($comment) {
          return (bool)$comment['comment_approved'] === true;
      }});?>
      
      <?php if ($comments): ?>
          <?php foreach ( $comments as $comment ): ?>
              <?= $comment['...']; ?>
          <?php endforeach; ?>
      <?php else : ?>
          Отзывов нету
      <?php endif; ?>

    Ответ написан 28 июн. 2020
    11 комментариев
    Нравится 1 11 комментариев
  • Зачем выводят url загруженной картинки?

    Евгений @dragonesis
    Так делают, потому что они решили сериализовать форму разом, а не держать в памяти объект с данными изображения, который, в случае удаления пользователе картинки, нужно обрабатывать, удаляя из него данные. Довольно надежное решение.

    Почему урл картинки, а не что-то еще? Потому что картинка уходит запросом ранее, так как вместе с телом данных их не отправляют и данные формы надо как-то связать с изображением, а как это лучше сделать чем урлом?

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

    Почему они сделали загрузку сразу? Это проще всего. В ином случае их ждала бы сначала загрузка изображений, потом формирование объекта с данными формы и ссылками на изображения и только затем сериализация этих данных, под искомый формат. Хотя именно так и правильно, как мне кажется.
    Ответ написан 24 июн. 2020
    19 комментариев
    Нравится 1 19 комментариев
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • Следующие →
Самые активные сегодня
  • yarkov
    Алексей Ярков
    • 8 ответов
    • 1 вопрос
  • ThunderCat
    ThunderCat
    • 8 ответов
    • 0 вопросов
  • Василий Банников
    • 8 ответов
    • 0 вопросов
  • CityCat4
    CityCat4
    • 8 ответов
    • 0 вопросов
  • Jump
    АртемЪ
    • 7 ответов
    • 0 вопросов
  • w3bsmes
    Alice
    • 7 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации