Задать вопрос
  • Распределение обязанностей на фрилансе для WordPress?

    Sanes
    @Sanes
    Заказы нужны, прежде всего. Было бы лучше, если бы один занимался продажами и клиентами, а второй технической стороной.
    Ответ написан
    Комментировать
  • Можно ли реализовать такое резервное копирование?

    ifaustrue
    @ifaustrue
    Пишу интересное в теллеграмм канале @cooladmin
    Коллега, а в чём загвостка то у вас? Берёте любой скриптовый язык и пишете скрипт, или берёте софт для резервного копирования (тысячи их) и настраиваете. Вариантов реально очень много. Вы контекста добавьте или деталей.
    Ответ написан
    Комментировать
  • Самодеятельность schema.org нарушает внутреннюю нирвану. Как исправить openingHour?

    @Mertana
    <data itemprop="openingHours" value="Mo 11:00-22:00">11:00-22:00</data>

    Вот так вроде бы и w3c валидатор не ругается, и валидатор яндекса видит микроразметку.

    ЗЫ
    <meta itemprop="openingHours" content="Mo-Sa 11:00-14:30">Mon-Sat 11am - 2:30pm
    <meta itemprop="openingHours" content="Mo-Th 17:00-21:30">Mon-Thu 5pm - 9:30pm
    Ответ написан
    7 комментариев
  • Как лучше организовать хранение домашних данных?

    Jump
    @Jump Куратор тега Системное администрирование
    Системный администратор со стажем.
    У вас очень хороший метод хранения, оставьте как есть, только автоматизируйте.
    Ответ написан
    5 комментариев
  • Google Charts, Как задать разные опции для каждого графика?

    17_planet
    @17_planet
    Full Stack Developer, web-studio in Odessa
    Ну во-первых причем PHP? Это Javascript, google api и google charts

    Касаемо вопроса. Если я не ошибаюсь, нету способа, сделать разные опции на одном графике (рисунке с нескольким шкалами, наборе шкал). То есть, самый просто способ - это разделить эти шкалы на два разных графика. Сначала делаешь один объект для "онлайн", потом делаешь для "прогресса".
    Ответ написан
    Комментировать
  • Как запустить функцию если опубликован пост или стоит "галочка"?

    @Preci Автор вопроса
    Решил проблему.

    Добавил галочку:

    <?php 
    add_action('post_submitbox_misc_actions','post_check_box');
    function post_check_box() { ?>
    <div class="misc-pub-section">
    <p><input type="checkbox" name="post_to_vk" /> Опубликовать на стене ВКонтакте </p>
    </div>
    <?php } ?>


    И изменил условие на:

    if (($new_status == 'publish' && $old_status != 'publish') || ( isset( $_POST['post_to_vk'] ) && $_POST['post_to_vk'] && $new_status == 'publish' )) {
    		cross_post($post);
    	}
    Ответ написан
    Комментировать
  • Какая библиотека быстрее конвертирует html в pdf?

    kabasik007
    @kabasik007
    Работник
    работал с mpdf, Пробовали?
    Ответ написан
    Комментировать
  • Какие вы знаете облачные хранилища от 1ТБ (free на 1 год)?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    так Гб или Тб?

    вроде Яндекс диск или мейлру в каких-то случаях гигабайтный и фришный

    а так - Hubic, дешевле некуда
    Ответ написан
    3 комментария
  • Существует ли описание общих принципов Material Design на русском языке?

    webxaser
    @webxaser
    Вот эта статья думаю вам подойдёт.
    Ответ написан
    Комментировать
  • Чем webpack лучше gulp/grunt?

    miraage
    @miraage
    Старый прогер
    Холиварная тема.
    Кому-то зайдет.
    Лично мне не нравится работа со стилями.
    Я уж лучше по старинке через gulp всё сделаю.

    // EDIT July 2016

    webpack восхитителен
    Ответ написан
    4 комментария
  • Иконка в заголовке поста wordpress?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    Без всяких проверок, ваша проблема решается тупо в css.
    Грамотно построенный вывод записи в цикле выглядит так

    <article id="post-<?php echo $post->ID; ?>" <?php post_class(); ?>>
    // содержимое записи
    </article>


    Один из классов возвращаемых функцией post_class() выглядит так %taxonomy%-%term%, для категории со слагом foo, класс будет выглядеть так - category-foo

    В css вставляем что типа такого
    article.category-foo:before {
        width: 30px;
        height: 30px;
        content: ' ';
        background-image: url('%img-url%');
        display: block;
        position: absolute;
        top: -25px;
        left: -25px;
    }

    можно комбинировать с body_class
    Ответ написан
    Комментировать
  • Как корректно использовать связку bootstrap-sass в gulp-проекте?

    sim3x
    @sim3x
    Использовать рубишную версию стоит только если она тебе точно нужна

    bover конечно круто использовать, но нафиг он нужен если все есть в npm?
    Да и прибирать за ним нужно

    'use strict';
    /*
    npm install --save-dev  \
      gulp  \
      node-sass \
      gulp-sass \
      compass-mixins  \
      bootstrap-sass  \
      gulp-autoprefixer \
      gulp-minify-css \
      gulp-sourcemaps
    */
    
    // load plugins
    var gulp = require('gulp'),
      sass = require('gulp-sass'),
      autoprefixer = require('gulp-autoprefixer'),
      minify_css = require('gulp-minify-css'),
      sourcemaps = require('gulp-sourcemaps'),
      path = require('path');
    
    gulp.task('sass', function () {
      gulp.src("paths/to/sass/files/**/*.sass")
        .pipe(sourcemaps.init())
        .pipe(
          sass({
            includePaths: [],
            imagePath: "path/to/images"
          })
          .on('error', sass.logError))
    
        // https://github.com/ai/browserslist
        .pipe(autoprefixer("last 2 version", "> 1%", "Explorer >= 8", {
          cascade: true
        }))
    
        .pipe(minify_css({compatibility: 'ie8'}))
        .pipe(sourcemaps.write('./'))
        .pipe(gulp.dest("paths/to/css_dir"));
    });
    
    
    //watch
    gulp.task('live', function () {
      //watch .sass files
      gulp.watch("paths/to/sass/files/**/*.sass", ['sass']);
    });
    
    gulp.task('default', ['live']);
    Ответ написан
    Комментировать
  • Как лучше верстать тему на Wordpress?

    Punkie
    @Punkie
    1. Смотря какой у вас проект. Если мелочь типа LP - вполне можно и бутстрап юзать.
    2. Я underscores в каждом проекте юзаю. Плюс из themble.com/bones беру полезные фишки типа cleaner.php.
    Ответ написан
    2 комментария
  • Возможно ли настроить на одном сервере и PHP и HHVM?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    nginx + php-fpm + hhvm
    Ответ написан
    Комментировать
  • Как настроить backup VDS на Яндекс.Диск?

    @mureevms
    Предисловие.
    Вы должны смонтировать Ядиск как описано в этой статье в каталог /mnt/yadisk, туда будут копироваться все бэкапы
    Для бэкапа всей системы лучше пользоваться инструментами которые предлагает хостер. Если таких нет или планируется переезд всей системы, то используйте п.1.
    Специально оставляю одну копию каждого бэкапа на VDS для удобства восстановления какого-либо файла.
    Прокомментирую только первый файл, остальные сделаны по подобию.
    Каталоги в /home/backup/... и /mnt/yadisk/... должны быть созданы.
    Скрипт бэкапа разбит на 4 штуки намеренно для удобства использования и запуска по крону с разными временными интервалами, что и надо будет сделать отдельно.
    Так же, советую предварительно перед бэкапом проверять смонтирован ли Ядиск, иначе место может внезапно закончится на сервере. Если интересно, то потом дам ссылку как это сделать.

    Бэкап

    1. Бэкап системы осуществляется при помощи команды tar
    Файл system_backup.sh:
    #!/bin/sh
    TIME=`date +%Y-%m-%d`
    # Что бэкапить
    WHAT=/
    # Куда класть бэкап
    WHERE=/home/backup/system
    # Куда копировать бэкап
    COPY=/mnt/yadisk/system
    # Бэкап системы. Файл бэкапа исключает системные каталоги и каталоги куда кладутся сами бэкапы
    tar -cpzf $WHERE/$TIME.tgz --exclude=/dev --exclude=/proc --exclude=/lost+found --exclude=/home/backup --exclude=/mnt /
    # Скопировать на файл бэкапа на Ядиск 
    cp $WHERE/$TIME.tgz $COPY
    ### Удалить старые файлы бэкапов
    # Оставить на VDS только последний
    find $WHERE -mtime +1 -print -delete
    # Удалить с Ядиска бэкапы месячной давности
    find $COPY -mtime +30 -print -delete


    2. Бэкап конфигов осуществляется так же при помощи команды tar (при текущих исходных данных все конфиги лежат в /etc)
    Файл etc_backup.sh:
    #!/bin/sh
    TIME=`date +%Y-%m-%d-%H:%M`
    WHAT=/etc
    WHERE=/home/backup/etc
    COPY=/mnt/yadisk/etc
    tar -cpzf $WHERE/$TIME.tgz $WHAT
    cp $WHERE/$TIME.tgz $COPY
    find $WHERE -mtime +1 -print -delete
    find $COPY -mtime +30 -print -delete


    3. Бэкап сайтов осуществляется аналогично (предполагаю, что они лежат в /var/www/)
    Файл www_backup.sh:
    #!/bin/sh
    TIME=`date +%Y-%m-%d-%H:%M`
    WHAT=/var/www
    WHERE=/home/backup/www
    COPY=/mnt/yadisk/www
    tar -cpzf $WHERE/$TIME.tgz $WHAT
    cp $WHERE/$TIME.tgz $COPY
    find $WHERE -mtime +1 -print -delete
    find $COPY -mtime +30 -print -delete


    4. Бэкап MySQL осуществляется при помощи команды mysqldump
    Файл mysql_backup.sh
    #!/bin/sh
    TIME=`date +%Y-%m-%d`
    # Логин пользователя мускула
    USER=root
    # Пароль пользователя мускула
    PASS=root_password
    WHERE=/home/backup/mysql
    COPY=/mnt/yadisk/mysql
    ### Базы которые надо бэкапить
    for base in base_name1 base_name2
    do
    # Сделать дамп баз
    mysqldump -u$USER -p$PASS -B $base > $WHERE/$base-$TIME.sql
    done
    cp $WHERE/$base-$TIME.sql $COPY
    find $WHERE -mtime +1 -print -delete
    find $COPY -mtime +30 -print -delete


    Восстановление

    Восстановление сайтов и конфигов осуществляется простым копированием в место назначения.
    Восстановление баз:
    mysql -u root -p root_password -f base_name1 < /home/backup/mysql/base_name1.sql
    mysql -u root -p root_password -f base_name2 < /home/backup/mysql/base_name2.sql


    Восстановление системы более сложный процесс, но суть сводится к одному - сделать чистую установку аналогичной ОС, загрузится с LIVE CD, подмонтировать Ядиск и распаковать архив в root директорию (root директорией называют корень файловой системы - / ), за исключением каталога /boot
    ОБЯЗАТЕЛЬНО заранее проделать восстановление на отдельной виртуалке.

    Вместо послесловия
    Такой бэкап, как говорится, и палкой не убить. Единственное, что надо делать - время от времени руками проверять архивы бэкапов на читаемость и прохождению нормального разархивирования. К сожалению, архивы бывают битыми.
    Ответ написан
    16 комментариев
  • Как исправить ошибки в PHP-коде?

    copist
    @copist
    Empower people to give
    PHP Strict Standards: Only variables should be passed by reference

    Мануал php.net/manual/ru/language.references.pass.php

    /* где-то в недрах Wordpress*/
    function get_comments($condition) { return array(); } // результат функции get_comments() не является объектом и не возвращает ссылку
    function separate_comments(&$comments) { } // параметр функции separate_comments() должен передаваться по ссылке
    
    /* где-то у вас */
    separate_comments(get_comments()); // <-- в данном случае недопустимо
    Ответ написан
    Комментировать
  • Как исправить ошибки в PHP-коде?

    0neS
    @0neS
    function comment_count( $count ) {
            global $id;
            $comments = get_comments('post_id=' . $id);
            $comments_by_type = separate_comments($comments); // <<-- эта строка
            $comcaunt = count($comments_by_type['comment']);
            return $comcaunt;
    }
    Ответ написан
    2 комментария
  • Использование WordPress как админ-панель - плохая идея?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    Комментировать
  • Materializecss или Material Design Light от Google: что выбрать для нового сайта?

    orlov0562
    @orlov0562
    I'm cool!
    Я бы выбрал Materializecss, т.к. фреймворк в первую очередь должен снизить время на разработку. А т.к. там есть все нужные элементы, то именно это он и делает. Что касается MDL, то придется все дописывать костылями.

    Поэтому, я считаю что лучше сейчас быстро запилить проект с Materializecss, а в будущем когда "наступит время MDL", при необходимости и средствах, перейти на него.
    Ответ написан
    Комментировать