• Проблема с array?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Например так:
    $get_product = $db->prepare("SELECT * FROM products");
    $get_product->execute();
    
    // объявление массива
    $product_data_array = [];
    
    while ($product_data = $get_product->fetch()) {
        // добавляем массив как елемент 2-мерного массива
        $product_data_array[] = [
            "name" => $product_data["name"],
            "price" => $product_data["price"],
            "status" => $product_data["status"],
        ];
    }
    
    var_dump($product_data_array);


    Или используем fetchAll:
    $get_product = $db->prepare("SELECT * FROM products");
    $get_product->execute();
    
    $product_data_array = $get_product->fetchAll(PDO::FETCH_ASSOC);
    
    var_dump($product_data_array);


    Share PHP code
    Ответ написан
    4 комментария
  • Как в админку добавить возможность подключать свой script.js на страницы?

    @Lord_Dantes
    Через плагин ACF - делаем поле true/false, выводим на нужную нам страницу в админке.

    Далее идем в код, там пишем условие:
    <?php if (get_field('true/false')) { ?>
    <script src="...">
    <?php } ?>

    На месте где нужно призвать скрипт. Таким образом мы проверяем наличие галочки и вставляем его на страницу. Возможно есть вариант через functions.php и wp_enqueue_script, но там же нужно сделать тоже самое только еще проверка на ID текущей страницы, собственно что является ответом на ваш второй вопрос.
    Ответ написан
    Комментировать
  • Как сделать дату и время горизонтально?

    ae_ph
    @ae_ph
    I'm a owl )
    Ваша вёрстка кривая )
    У вас был горизонтальный скролл из за class="poisk" и других классов которые стояли на position: relative; и было заданно смещение, так никто не делает, только не в данном случае.
    Я её немго поправил, так-же решил вашу проблему с позиционированием..
    Дальше сами..

    Ваш код
    HTML

    <html>
    <head>
      <title>Новостное агенство</title>
      <link rel="stylesheet" type="text/css" href="styles.css">
    </head>
    <body>
      <div id="black-bar">
        <div class="fixed-container">
          Самые <a href="#">свежие новости</a> в реальном времени
          <div id="datetime">12:40 30.03.2021</div>
        </div>
      </div>
      </div>
      <div id="header">
        <div class="fixed-container">
          <img id="logo" src="img/logo.png">
        </div>
        <div class="gorod">
          <a href="#">Москва</a>
        </div>
        <div class="pogoda">
          <img id="oblokoomg" src="img/pogoda.PNG">
          <span>+22C</span>
        </div>
        <div class="poisk">
          <input type="search" name="q" placeholder="Поиск по сайту" size="35">
        </div>
      </div>
          <div class="fixed-container">
        <div class="nav">
        <nav>
          <a href="1.html">Главная</a> /
          <a href="2.html">Политика</a> /
           		<a href="3.html">Общество</a> / 
           		<a href="4.html">Экономика</a> /
           		<a href="1.html">В мире</a> /
          <a href="2.html">Проишествия</a> /
           		<a href="3.html">Спорт</a> / 
           		<a href="4.html">Наука</a> /
           		<a href="4.html">Туризм</a>
       		</nav>
       		</div>
       	</div>
      <div id="central-container">
        <div class="fixed-container">
        <div id="column-left">
          <h2>Новости дня</h2>
        <div class="news-item">
          <div class="news-item-text">Кот Аххил предсказал поражение сброной Египта на чемпионате по футболу.</div>
          <div class="news-item-props"><a href="#">/ЧМ по футболу</a>
            <div class="new-item-time">19:00</div>
            <div class="new-comments">17</div>
          </div>
        </div>
        <div class="news-item">
          <div class="news-item-text">Кот Аххил предсказал поражение сброной Египта на чемпионате по футболу.</div>
          <div class="news-item-props"><a href="#">/ЧМ по футболу</a>
            <div class="new-item-time">19:00</div>
            <div class="new-comments">17</div>
          </div>
        </div>
        <div class="news-item">
          <div class="news-item-text">Кот Аххил предсказал поражение сброной Египта на чемпионате по футболу.</div>
          <div class="news-item-props"><a href="#">/ЧМ по футболу</a>
            <div class="new-item-time">19:00</div>
            <div class="new-comments">17</div>
          </div>
        </div>
        <div class="news-item">
          <div class="news-item-text">Кот Аххил предсказал поражение сброной Египта на чемпионате по футболу.</div>
          <div class="news-item-props"><a href="#">/ЧМ по футболу</a>
            <div class="new-item-time">19:00</div>
            <div class="new-comments">17</div>
          </div>
        </div>
      </div>
        <div id="column-center">
          <div class="news-center">
          <div class="politikanews"><a href="#">/ Политика</a></div>
          <div class="krimnews">В Крыму отреагировали на слова Кравчука о возврате полуострова</div>
          <div class="datakrim">19 Июня 2018</div>
          <div class="krimvremia">10:48</div></div>
        </div>
    
        <div id="column-right">
          <img src="img/banner-1.png">
          <img src="img/banner-2.png">
        </div>
      </div>
      <div class="fixed-container">
        <div id="special-news">
          er text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text ret 
        </div>
      </div>
      </div>
      </body>
    </html>



    CSS

    html, body{
      margin:0;
      padding: 0;
      min-width: 1000px;
      font-family: arial;
    }
    #header {
      margin-top: 15px;
      margin-bottom: 15px;
      height: 50px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding-left: 20px;
      padding-right: 20px;
    }
    
    h2{
      font-size: 20px;
      padding: 27px 0 27px 18px;
      margin: 0 0 34px;
      border-bottom: 1px solid #e5e5e5;
    }
    
    #black-bar{
      background-color: black;
      color: white;
      padding: 20px 20px;
    }
    
    #black-bar a{
      color: white;
    }
    
    .fixed-container{
    /*   width: 960px; */
    /*   margin: 0 auto; */
    }
    
    .inline-block{
      background-color: yellow;
      padding: 10px;
      width: 70px;
      text-align: right;
      margin-bottom: 10px;
      display: inline-block;
    }
    
    #datetime{
      float: right;
    }
    
    #logo{
      position: relative;
      top: 40px;
    }
    
    .gorod{
    /*   width: 600px; */
    /*   margin: 0 auto; */
    /*   position: relative; */
      top: 10px;
      text-decoration: underline;
      	text-decoration-style: dashed;
    }
    
    .pogoda{
    /*   position: relative; */
    /*   top: -15px; */
    /*   left: 900px; */
      display: flex;
      align-items: center;
    }
    
    #oblokoomg{
      position: relative;
      top: 6px;
    }
    
    .poisk{
    /*   position: relative;
      top: -32px; */
    /*   left: 1100px; */
    }
    
    .nav{
      text-align: center;
    }
    
    #column-left{
      background-color: white;
      width: 250px;
      float: left;
    }
    
      .news-item{
        padding-left: 18px;
        margin-bottom: 27px;
        font-size: 14px;
      }
    
      .news-item-text{
        margin-bottom: 20px;
      }
    
      .news-item-props a{
        color: #91919f;
      }
    
      .news-item-props{
        font-size: 12px;
        position: relative;
      }
    
      .new-item-time{
        position: absolute;
        top: 0;
        left: 120px;
        padding-left: 15px;
        background-image: url(img/icon-time.png);
        background-repeat: no-repeat;
      }
    
      .new-comments{
        position: absolute;
        top: 0;
        left: 180px;
        padding-left: 15px;
        background-image: url(img/icon-comments.png);
        background-repeat: no-repeat;
      }
    
    #column-center{
      background-image: url(img/1_1_11.jpg);
      width: 420px;
      margin-left: 20px;
      float: left;
      height: 322px;
    
    }
    
    #column-right{
      width: 250px;
      float: right;
    }
    
    #column-right img{
      margin-bottom: 20px;
    }
    
    #central-container .fixed-container{
      overflow-y: hidden;
    }
    
    #central-container{
      padding-top: 20px;
      background-color: #f9f9f9;
      background-image: url(img/central-bg-top.png);
      background-repeat: repeat-x; 
    }
    
    #special-news{
      margin-top: 20px;
    
    }
    
    #central-container{
      margin-top: 20px;
    
    }
    
    .news-center{
      padding-left: 20px;
    
    }
    
    .politikanews{
      padding-top: 100px;
      font-size: 12px;
      position: relative;
    
    }
    
    .politikanews a{
      color: #91919f;
    
    }
    
    .krimnews{
      margin-top: 30px;
      font-family: arial;
      font-weight: 600;
      font-size: 20px;
      color: white;
      
    }
    
    .datakrim{
      margin-top: 30px;
      position: absolute;
      top: 0;
      left: 180px;
    
    
    }
    
    .krimvremia{
      position: absolute;
        top: 0;
        left: 120px;
        padding-left: 15px;
    
    }

    Ответ написан
    Комментировать
  • Как лучше верстать сайты с векторными элементами?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    Если не лень, то можно сохранить каждую фигуру отдельно(желательно в svg) и позиционировать на фоне, таким образом у фигур будет плавающая позиция и на других экранах можно перестроить по другому, убрать половину на мобильных и т.д.. выглядеть это будет примерно так :
    background: url(../images/other/decor-figure-1.svg) no-repeat 53% 6%,
                url(../images/other/decor-figure-2.svg) no-repeat 45% 22%,
                url(../images/other/decor-figure-3.svg) no-repeat 82% 22%,
                url(../images/other/decor-figure-4.svg) no-repeat 45% 96%,
                url(../images/other/decor-figure-5.svg) no-repeat 83% 82%
    Ответ написан
  • Как сделать вывод товаров сеткой?

    Sanes
    @Sanes
    Откройте для себя шаблонизаторы, чтобы такую дичь больше не городить.
    Ответ написан
    1 комментарий
  • Не работает shell_exec php почему?

    @SteepNET Автор вопроса
    Разобрался, дело было в правах на директории
    Ответ написан
    2 комментария
  • Почему отсутствие элемента массива вызывает ошибку?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Используйте null-оператор (может он по-другому называется, не помню):

    <?= $_POST['title'] ?? '' ?>

    Или проверяйте наличие ключа

    <?= array_key_exists('title', $_POST) ? $_POST['title'] : '' ?>
    Ответ написан
    1 комментарий
  • Как сделать форму на сайте?

    @Hanneman
    Форму Excel, как некий объект, у вас на сайт вставить не получится - это, так сказать, разные технологии (не вдаваясь в подробности). Т.е. некий браузер сам не может просто 'записывать' данные в файл, в привычном понимании - для этого существует форма отправки данных на сервер, где уже серверный сценарий может генерировать новый Excel-файл или дописывать в существующий.
    Несмотря на скудность описания вашего ТЗ, я все же поступил бы так:
    1. Пользователь авторизуется и заполняет форму на сайте
    2. Данные отправляются на сервер и записываются в базу данных с учётом владельца данных
    3. В Excel-файле настраиваем так называемый Data Source, чтобы данные в поля брались бы из базы данных
    Ответ написан
    2 комментария
  • Как сделать форму на сайте?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    В Вашем случае возможно будет проще использовать связку Google Forms + Google Spreadsheets. Заполняющие форму не смогут увидеть результаты. Данные складываются на лист Google Spreadsheets, откуда Вы вручную или скриптом можете сформировать нужный Вам отчёт
    Ответ написан
    Комментировать
  • Насколько правильно натягивать верстку через файлы темы?

    @DeniSidorenko
    Более 2 года интегрирую данным методом и все идеально. Клиент получает возможность редактировать без муссора. Главное что бы сами поля были размещены удобно и интуитивно понятно.

    Насколько я помню Page Builder дает более улучшенные возможности, к примеру поменять цвет, размер шрифта, семейство шрифта и.т.п
    Но исходя из практики такое давать клиенту не стоит по двум причинам
    1) Его фантазия за частую угробит весь дизайн
    2) Инслайновые стили не очень любят поисковые системы
    Ответ написан
    5 комментариев
  • Насколько правильно натягивать верстку через файлы темы?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Хотел узнать, настолько ли это плохой способ натяжки?

    Вы не поняли всю суть. А суть в том что:

    Вы взяли заказ:
    1. На начальном этапе вы спрашиваете клиента - будет ли он править это шаблон в визуальной составляющей, т.е добавлять новые блоки, меняя что-то координально. Если да, то этому человеку нужен условный конструктор aka page-builder
    Плюсы: быстро разрабатывается, много компонентов из коробки, большинство логики реализовывается через drag-n-drop.
    Минусы: Page Builder откровенный говнокод, который придется оптимизировать.

    2.Если - клиенту нужен сайт где дизайн уже отработан на 100%, либо есть сторонний разраб который допилит шаблон(добавит функционал), acf лучший выбор, потому что всё предсказуемо, отсутствует куча вложенностей, оберток, и вся логика на виду, плюс удобно отлаживать. В нормальных руках - доп функционал добавляется так же быстро как и page-builder, новый шаблон, новые кастомные поля под них.
    Плюсы: клиент вряд ли что-то поломает, так как в acf в ограничиваете его действия, даете ему молоток и гвозди, а не компанию с техникой как в случае с page builder.
    Минусы: клиент не может допилить часть функционала сам, ему потребуются вложения со стороны поддержки и программиста.

    3. Дополнение - WP это уже не глупая блоговая система. С введением Gutenberg - можно сделать свой шаблон внутри обычно страницы, на любой вкус.
    Ваша задача - задать правильные вопросы "клиенту", и перенести это все в ТЗ и код.
    Ответ написан
    1 комментарий
  • Как уменьшить масштабирование в windows 10?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    разрешение смени, 1366x768 -> 1920x1080 ну или как там по пропорциям...
    Ответ написан
    2 комментария
  • Как отобразить всплывающую форму по нажатию кнопки в WordPress?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    Dioksin, за модалку отвечает только этот код
    $(".showModal").click(function() {
      $(".modal").addClass("is-active");
    });
    
    $(".delete, .modal-background").click(function() {
      $(".modal").removeClass("is-active");
    });

    и по сути он ничего не делает кроме как добавляет класс для открытия модалки и удаляет этот класс если кликнуть на оверлей или кнопку закрытия

    а код модалки вы сами написали, он уже есть, в него только функцией
    <?php echo do_shortcode('[contact-form-7 id="281" title="Контактная форма 1"]'); ?>

    выводится форма из CF7
    <div class="modal">
        <div class="modal-background"></div>
        <div class="modal-card">
            <header class="modal-card-head">
                <p class="modal-card-title">Запись на консультацию</p>
                <button class="delete" aria-label="close"><i class="far fa-times-circle"></i></button>
            </header>
            <section class="modal-card-body">
                <?php echo do_shortcode('[contact-form-7 id="281" title="Контактная форма 1"]'); ?>
            </section>
            <footer class="modal-card-foot">
            </footer>
        </div>
    </div>

    закрытие модалки универсально переписать просто
    $(".delete, .modal-background").click(function() {
      $(this).parents(".modal").removeClass("is-active");
    });

    а вот открытие нужно либо брать по дата атрибуту, либо если вам нужно только еще одну модалку добавить, то проще продублировать код както так
    $(".showModal2").click(function() {
      $(".modal.modal2").addClass("is-active");
    });

    у второй кнопки заменить showModal на showModal2, добавить разметку второй модалки под первой и eй добавить класс modal2, так как на класс modal скорее всего привязаны стили
    Ответ написан
    Комментировать
  • Не выводятся посты через get_posts?

    irtek
    @irtek
    Wordpress-addicted
    'category' в функции get_posts используются если вы хотите указать категорию родной записи Записи WordPress с пост типом post, в остальных случаях при создании custom post_type вам необходимо работать с таксономиями

    # получаем записи из рубрики
        $myposts = get_posts( array(
          'numberposts' => -1,
          'orderby'     => 'post_date',
          'post_type'     => 'programms', 
          'order'       => 'DESC',
          'type_programms'    => $cat->slug
        ) );


    Попробуйте так
    Ответ написан
    1 комментарий
  • Как заставить работать фильтр и группировку на яндекс картах?

    freeExec
    @freeExec
    Участник OpenStreetMap
    1) удалить предыдущие из objectManager
    2) отфильтровать через geoQuery
    3) добавить полученное в objectManager
    Ответ написан
    Комментировать
  • Почему папка images не отображается в редакторе тем Wordpress и картинки не подгружаются на сайт?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Нет прав на папку.
    Ответ написан
    Комментировать
  • Что за строка и как ее распарсить на php?

    @WebEagle
    это результат выполнения функции serialize, для получения исходного объекта воспользуйтесь
    unserialize('a:2:{s:2:"uk";i:3860;s:2:"ru";i:2423;}')
    Ответ написан
    Комментировать