Задать вопрос
  • Как сейчас администраторы интернет-магазинов заполняют его товарами?

    sabramovskikh
    @sabramovskikh
    У меня каталог на sd-card Я вставляю его в сервер и он заполняется
    Ответ написан
    1 комментарий
  • Как устранить повторы в полученных данных из базы данных?

    @Anykin Автор вопроса
    Сделал так:
    SELECT `articles`.`id` AS `id`, `articles`.`title` AS `title`, 
    GROUP_CONCAT(tags.title) AS `tagsDb`, GROUP_CONCAT(tag_weights.tag_weight) AS `tagsWeight` 
    FROM `articles` LEFT JOIN `articles_tags` ON `articles`.`id` = `articles_tags`.`article_id` 
    LEFT JOIN `tags` ON `articles_tags`.`tag_id` = `tags`.`id` 
    LEFT JOIN (SELECT `articles_tags`.`tag_id` AS `tag_id`, 
    COUNT(`article_id`) AS `tag_weight` FROM `articles_tags` GROUP BY `tag_id`) 
    AS `tag_weights` ON `articles_tags`.`tag_id` = `tag_weights`.`tag_id` WHERE `articles`.`id` = 336


    Zf2:
    $select = $sql->select('articles'); 	
            $select->where(array('articles.id = ?' => $id));
            
            $select->join(
                'articles_tags', 'articles.id = articles_tags.article_id',
                array(), 
                $select::JOIN_LEFT
            );
            
            $select->join(
                'tags', 'articles_tags.tag_id = tags.id',
                array(), 
                $select::JOIN_LEFT
            );
            
            $subSelect = $sql->select('articles_tags');
            $subSelect->columns(array(
                'tag_id',
                'tag_weight' => new Expression('COUNT(`article_id`)')
            ));
            
            $subSelect->group('tag_id');
            
            $select->join(
                array('tag_weights' => $subSelect), 
                'articles_tags.tag_id = tag_weights.tag_id',
                array(), 
                $select::JOIN_LEFT
            );
            
            $select->columns(array(
                'id' => 'id',
                'title' => 'title',
                'text' => 'text',
                'summary' => 'summary',
                'categoryId' => 'categoryId',
                'author' => 'author',
                'created' => 'created',
                'updated' => 'updated',
                'published' => 'published',
                'isPublished' => 'isPublished',
                'version' => 'version',
                'tagsDb' => new Expression('GROUP_CONCAT(tags.title)'),
                'tagsWeight' => new Expression('GROUP_CONCAT(tag_weights.tag_weight)')
            ));


    id 	title 	tagsDb 	                 tagsWeight
    	336 	sdaf 	tag1,tag2,tag3,qw 	3,3,3,6
    Ответ написан
    Комментировать
  • В чём ошибка в mysql_query(" SELECT ")?

    0mm
    @0mm
    Попробуйте убрать одинарные кавычки внутри IN(), то есть код должен приобрести вид
    mysql_query(" SELECT position, player_id FROM battle WHERE id = '$battle' AND position IN($place) AND player_id != '$player' ");

    В противном случае в запросе вы получаете условие вида IN('123, 456, 789'), что совсем не то, чего вы ожидаете. Если position является целочисленным типом, то вам кавычки совсем не нужны. Кстати, они не нужны и во всех остальных случаях сравнения, если $battle и $player тоже целые числа. Кавычки используются только для строк.
    Ответ написан
    Комментировать
  • Почему стоит использовать CentOS или fedora вместо Ubuntu?

    @Vasily_Pechersky
    Системщик с опытом
    Тут в вопросах чего или кого - очень много своей специфики.
    Например как сказал Ivan Bogachev - доступность репозиториев.

    С другой стороны - версии, личные предпочтения и доступные версии ПО.
    На пример - я люблю использовать CentOS 6 из за классической системы старта. Я считаю CentOS 7 очень не удачной сборкой. Там по умолчанию нет привычного мне инструментария. На стороне CentOS - стабильность но не самые новые версии софта по умолчанию. Puias в помощь всем Красношапочникам. Но и там иногда лезут косяки.

    Ubuntu (я рассматривяю только LTS сборки) представляет стабилизированный выбор более свежего софта. Плюс некоторые вещи там собраны удачнее (К примеру strongswan - все плагины в отдельных пакетах) . Та же Edubuntu предоставляет допиленный LTSP.

    Тут выбор целе-ориентированный. Что лучше решает задачу - то и больше подходит.
    Ответ написан
    Комментировать
  • Почему phpDocumentor не подхватывает документацию в файле?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    /**
     * @see CommonModule::onLoad()
     * CommonModule constructor. 
    * You can not change the constructor directly, but you can use onLoad function instead.
     */
    final function __construct()

    Указывать @see перед описанием (summary) неправильно.

    https://www.phpdoc.org/docs/latest/guides/docblock...

    be57b9047f6548b1822476458e094357.png
    Нужно изменить порядок, сначала должно идти summary, затем может идти description и только потом tags (@see - относится к tags):

    /**
     * CommonModule constructor. 
     * You can not change the constructor directly, but you can use onLoad function instead.
     *
     * @see CommonModule::onLoad()
     */
    final function __construct()
    Ответ написан
    Комментировать
  • Как устранить повторы в полученных данных из базы данных?

    petermzg
    @petermzg
    Самый лучший программист
    SELECT DISTINCT ...
    Ответ написан
    Комментировать
  • Как обрезать строку wordpress?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    числа округлять надо, а не обрезать.

    Пишите больше функций в одну строку, тогда точно будет непонятно куда добавить еще одну.

    return round(get_post_meta( wp_get_post_parent_id( $post->ID ), 'price', TRUE ) / 40044, 2);
    Ответ написан
    Комментировать
  • Как работать с API Wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Доброго.

    У WordPress есть REST API, возвращает в json.
    Ответ написан
    Комментировать
  • Как сделать связанные поля в wordpress для поста?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Я думаю, Вам должно помочь поле Repeater.
    Ответ написан
    Комментировать
  • Как реализовать кастомный вывод постов в WP?

    PrimeSedrakyan
    @PrimeSedrakyan
    Можно переписать через CSS его класс. nth-child
    Ответ написан
    Комментировать
  • Как реализовать кастомный вывод постов в WP?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Как-то так?
    <?php if (have_posts()) :
    $i = 1;
    while (have_posts()) : the_post();
        if($i % 4 == 0) {
            $class = 'b';
        } else {
            $class = 'l';
        } ?>
        <div class="<?php echo $class; ?>">
            <?php the_title(); ?>
        </div>
        <?php $i++;
    endwhile;
    endif; ?>
    Ответ написан
    Комментировать
  • Как в Wordpress правильно указывать путь до темы оформления в js-скриптах?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Примерно вот так (поместить в файл functions.php):
    function wpdocs_theme_name_scripts() {
        wp_enqueue_style( 'style-name', get_stylesheet_uri() );
        wp_enqueue_script( 'script-name', get_template_directory_uri() . '/js/example.js', array(), '1.0.0', true );
    }
    add_action( 'wp_enqueue_scripts', 'wpdocs_theme_name_scripts' );

    Подробнее можно почитать в документации.

    Если подключается в дочерней теме, то вместо функции get_template_directory_uri() нужно использовать get_stylesheet_directory_uri().

    Уточнение ответа по поводу использования этих функций в js.
    Вариант 1.
    Добавить переменную для javascript с помощью хука wp_head
    function my_js_variables() { ?>
          <script type="text/javascript">
            var templateUrl = '<?php get_template_directory_uri(); ?>';
          </script><?php
    }
    add_action ( 'wp_head', 'my_js_variables' );

    Ну и затем пользоваться ей как обычной js-переменной.

    Вариант 2.
    Воспользоваться функцией wp_localize_script
    wp_enqueue_script( 'my-script', get_template_directory_uri() . '/js/example.js' );
    $translation_array = array( 'templateUrl' => get_template_directory_uri() );
    wp_localize_script( 'my-script', 'themename', $translation_array );

    Затем в нужном месте получить значение
    var templateUrl = themename.templateUrl;
    Ответ написан
    7 комментариев
  • Почему обработчик событий не срабатывает на добавляемых в DOM объектах?

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

    $(document).on('click', '.del', function(){
        $(this).parent().prev().remove();
        $(this).parent().remove();
    })

    тогда слушателем будет весь документ
    Ответ написан
    Комментировать
  • Webpack? Но зачем?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Для одностраничников (да еще и без реакта, хотя собственно кому в голову придет делать LP на реакте :) ) - конечно, webpack вообще ни к чему. Вам же достаточно gulp + browserSync для комфортной разработки?

    ---
    Когда ваш "инструментарий" отлично справляется с работой - используйте его.
    Когда у ваших инструментов есть какой-то раздражающий момент - ищите варианты решения проблемы. Может быть что-то заменить?
    Когда просто "хочется" чего-нибудь новенького - посмотрите по сторонам, лишним не будет.
    Ответ написан
    2 комментария
  • Как управлять Wordpress с помощью wp-cli через http или ftp?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Возможно, стоит попробовать какой-то сервис для этого, например, ManageWP или какие-то плагины, типа MainWP.
    Ответ написан
    Комментировать
  • Какой локальный сервер выбрать для mac?

    sim3x
    @sim3x
    vagrant
    Ответ написан
    Комментировать
  • Как узнать что человек разработчик?

    console.log("Иди сюда, а то не мужик: http://github.com/...");
    Ответ написан
    Комментировать
  • Как узнать что человек разработчик?

    alsopub
    @alsopub
    if (confirm('Вы являетесь разработчиком?')) {
      location.href = 'https://github.com/...';
    } else {
      alert('А зря!');
    }
    Ответ написан
    1 комментарий
  • Архитектура системы личных сообщений?

    @nirvimel
    Стоит ли использовать для этих целей MongoDB/MySQL?

    PostgreSQL или MySQL, но не в коем случае не NoSQL, который выглядит как панацея только поначалу.
    Правильная проектировка структуры БД - залог производительности и нормальной разработки.
    Ошибки в структуре БД - бомбы, подложенные под развитие проекта и дальнейшую разработку.

    Хранить все сообщения в одной таблице в виде текста?

    Все сообщения в одной таблице. Но в базе у вас в итоге окажется 10-20 или больше таблиц с разными метаданными, без которых тексты сообщений не имеют смыла.

    Если разбивать данные на шарды,

    Не надо этого делать.

    Что думаете про Node.js + Websockets для этих целей?

    Node.js - тех, кто начинал свою программистскую карьеру с фронтенда, надо на пушечный выстрел не подпускать к принятию архитектурных решений в крупных проектах. Архитектура для архитекторов, js для фронтендеров.
    Websockets - чат предполагает push данных с сервера на клиент, а для этой задачи websockets почти не имеет реальных альтернатив на сегодняшний день. То есть все альтернативы - это костыли из времен до websockets.

    Как правильно хранить сообщения пользователей на разных серверах?

    Для начала нужно определиться с тем зачем это нужно. Потом постараться избавиться от этой опасной идеи.

    чтобы не пришлось потом переделывать на реальных пользователях.

    Переделывать все равно придется. Такова суровая реальность жизни.
    Ответ написан
    2 комментария