• Как сделать тему в письме?

    orlov0562
    @orlov0562
    I'm cool!
    у тебя в скрипте есть переменная $subject - это и есть тема письма

    не совсем понятно что ты хочешь:
    1) если id формы - значит надо написать:
    добавить в форму скрытое поле "id", а в скрипте
    $subject = "ID: ".( isset($_POST['id']) ? $_POST['id'] : 'n/a' );
    или добавить id в передаваемые данные в скрипте, т.е. тут:
    var formNm = $('#' + formID);
    formNm.id = '132';

    2) если хочешь чтобы была текстовая тема, значит надо добавить в форму < input type="text" name="subject" >
    и в скрипт $subject = isset($_POST['subject']) ? $_POST['subject'] : '';
    Ответ написан
    Комментировать
  • Как поместить на странице поста похожие по теме ссылки/превью постов в Вордпресс?

    orlov0562
    @orlov0562
    I'm cool!
    есть куча плагинов на эту тему, поищи по запросу similar posts

    если хочется сделать самому, то можно показывать соседние посты из той же категории:
    $related = new WP_Query( ( array( 'category__in' => wp_get_post_categories($post->ID), 'posts_per_page' => 5, 'post__not_in' => array($post->ID) ) );
    if( $related->have_posts() ) { 
      while( $related->have_posts() ) { $related->the_post(); 
          the_title(); 
      }
    }
    wp_reset_postdata();
    Ответ написан
  • Как исправить ошибку в вордпрессе после переноса?

    orlov0562
    @orlov0562
    I'm cool!
    еще может быть:
    - htaccess
    - кеш
    - кеширование редиректов браузере (попробуй перезапустить браузер или использовать другой)
    Ответ написан
  • Как заставить wordpress вставить js и css от плагина на страницу?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    посмотри у него в коде подключение: файл wp-tiles/src/WPTiles/WPTiles.php
    public function register_scripts() {
    
            $script_path = WP_TILES_ASSETS_URL . 'js/';
            $in_footer   = apply_filters( 'wp_tiles_js_in_footer', true );
    
            if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {
                wp_register_script( 'tilesjs',  $script_path . 'tiles.js', array( "jquery" ), "2013-05-18", $in_footer );
                wp_register_script( 'jquery-dotdotdot',  $script_path . 'jquery.dotdotdot.js', array( "jquery" ),  "1.6.14", $in_footer );
    
                wp_register_script( 'wp-tiles', $script_path . 'wp-tiles.js', array( "jquery", "tilesjs", "jquery-dotdotdot" ), WP_TILES_VERSION, $in_footer );
    
            } else {
                wp_register_script( 'wp-tiles', $script_path . 'wp-tiles.min.js', array( "jquery" ), WP_TILES_VERSION, $in_footer );
    
            }
    
        }
    
        public function register_styles() {
    
            $stylesheet = WP_TILES_ASSETS_URL . 'css/wp-tiles.css';
    
            // In admin we want vanilla WP Tiles styles
            if ( !is_admin() ) {
    
                /**
                 * Get the WP Tiles stylesheet
                 *
                 * @since 1.0
                 * @param string Stylesheet location or false to disable separate css
                 */
                $stylesheet = apply_filters( 'wp_tiles_stylesheet', $stylesheet );
    
                if ( false === $stylesheet )
                    return;
            }
    
            wp_register_style( 'wp-tiles', $stylesheet, false, WP_TILES_VERSION );
    
            /**
             * Always enqueue stylesheet or defer loading until an instance of
             * WP Tiles has been detected
             *
             * @since 1.0
             * @param bool Always enqueue
             */
            if ( !is_admin() && apply_filters( 'wp_tiles_always_enqueue_stylesheet', false ) ) {
                $this->enqueue_styles();
            }
        }
    
        public function enqueue_scripts() {
            wp_enqueue_script( 'wp-tiles' );
            $this->add_action( 'wp_footer', 'add_data', 1 );
        }
    
        public function enqueue_styles() {
            wp_enqueue_style( 'wp-tiles' );
            do_action( 'wp_tiles_enqueue_styles' );
        }


    вангую, что можно в functions.php, создать объект и вызвать эти методы
    $wpTiles = new WPTiles/WPTiles;
    $wpTiles->register_scripts();
    $wpTiles->register_styles();
    $wpTiles->enqueue_scripts);
    $wpTiles->enqueue_styles();


    ну или на крайний случай подключить скрипты/стили таким же кодом, что и в методах, прописав недостающие пути к файлам плагина, типа того:
    $script_path = путь-к-папке-с-скриптом
                ...
                wp_register_script( 'tilesjs',  $script_path . 'tiles.js', array( "jquery" ), "2013-05-18", $in_footer );
                ...
    Ответ написан
  • Как проверить индексацию картинок?

    orlov0562
    @orlov0562
    I'm cool!
    Да вроде есть картинки, вот так погугли "site:mirpovara.ru" в разделе картинок

    P.S. и те что в индексе, ищутся через поиск по картинке
    Ответ написан
    1 комментарий
  • Что такое индексация в magento и какие есть индексы?

    orlov0562
    @orlov0562
    I'm cool!
    1) Какие есть индексы
    В админке зайди в раздел обновления индексов и там будет их список

    2) Что такое индексы
    Таблицы с оптимизированными данными. Самый простой пример: есть у товаров базовая цена, а так же есть всякие скидки; если товар находится в группе (bundle), то у него может так же меняться цена и т.д. Т.е. чтобы получить конечную цену, надо делать доп. расчеты. Из-за того что в magento много всяких функциональных штук и приблуд типа EAV, делать расчеты крайне накладно. Поэтому делают индексацию, при которой все что надо рассчитывается и записывается в оптимизированном для выборок виде.
    Ответ написан
    Комментировать
  • Почему не работает limit() в yii2?

    orlov0562
    @orlov0562
    I'm cool!
    Попробуй посмотреть результирующий sql
    var_dump($query->prepare(Yii::$app->db->queryBuilder)->createCommand()->rawSql);
    exit();


    перед return $query;
    Ответ написан
  • Баг в Yii2 - пагинация не работает с orderBy()?

    orlov0562
    @orlov0562
    I'm cool!
    попробуй orderBy добавлять после формирования пагинации, типа того:
    use yii\data\Pagination;
    
    $query = Article::find()->where(['status' => 1]);
    $count = $query->count();
    $pagination = new Pagination(['totalCount' => $count]);
    
    $articles = $query->orderBy('id DESC')->offset($pagination->offset)
        ->limit($pagination->limit)
        ->all();
    Ответ написан
    1 комментарий
  • Как можно перебрать mysql таблицу и исправить формат даты с 31.10.16 на 2016-10-31?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    если это текстовое поле, тогда так:
    UPDATE tbl SET
    `date` = CONCAT('20',SUBSTRING(`date`,7,2),'-',SUBSTRING(`date`,3,2),'-',SUBSTRING(`date`,0,2))
    WHERE date LIKE '__.__.__'
    ;


    только проверь вначале так:
    SELECT
    CONCAT('20',SUBSTRING(`date`,7,2),'-',SUBSTRING(`date`,3,2),'-',SUBSTRING(`date`,0,2)) as date
    FROM tbl
    WHERE date LIKE '__.__.__'
    ;
    Ответ написан
    1 комментарий
  • Как проверить успешность записи в mysql?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    Проверяй возвращаемое значение функцией mysql_query
    $res = mysql_query(...)
    if ($res === FALSE) {
        die( mysql_error() );
    }


    php.net/manual/ru/function.mysql-query.php
    Для запросов SELECT, SHOW, DESCRIBE, EXPLAIN и других запросов, возвращающих результат из нескольких рядов, mysql_query() возвращает дескриптор результата запроса (resource), или FALSE в случае ошибки.

    Для других типов SQL-запросов, INSERT, UPDATE, DELETE, DROP и других, mysql_query() возвращает TRUE в случае успеха и FALSE в случае ошибки.

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

    Используйте mysql_num_rows() для выяснения количества рядов в результате SELECT-запроса или mysql_affected_rows() для выяснения количества обработанных рядов запросами DELETE, INSERT, REPLACE и UPDATE.

    mysql_query() также завершится с ошибкой и вернет FALSE, если у пользователя нет доступа к какой-либо из таблиц, фигурирующих в запросе.
    Ответ написан
  • Почему сохранились не все файлы сайта?

    orlov0562
    @orlov0562
    I'm cool!
    Всего скорее программа не смогла выкачать часть необходимых файлов, которые подключаются динамически (во время рендеринга карты например) + не смогла правильно пересобрать пути в скриптах для корректной работы.

    Чтоб пофиксить, нужно лопатить код вручную, анализировать и исправлять проблемы.
    Ответ написан
    Комментировать
  • Wordpress. Как новости одного сайта читать с другого?

    orlov0562
    @orlov0562
    I'm cool!
    вариантов масса:
    1) парсер на бэкенде собирает новости, и заливает в базу, виджет выводит их (надо писать скрипты)
    2) виджет грабит поток, кеширует его и выводит новости на базе него (надо писать код виджета)
    3) виджет коннектится к базе другого проекта и выбирает новости (надо писать код виджета)
    4) после загрузки страницы js-ом делается jsonp запрос к хосту, которые отдает новости в формате jsonp (надо писать фронтенд виджета и на источнике отдавать новости по jsonp )
    5) в сайдбар вставляется стилизованный iframe в который загружается страница с удаленного сервера (на источнике сделать страницу в нужном дизайне с выводом последних новостей, которая не будет содержать базового дизайна)
    ...
    Ответ написан
  • В каком файле я могу отредактировать этот код (Шаблон Wordpress)?

    orlov0562
    @orlov0562
    I'm cool!
    скачай папку шаблона и плагинов к себе на пк и сделай поиск по файлам, содержащим текст "woocommerce-result-count"
    Ответ написан
    Комментировать
  • Сохранится ли оплата за клики и просмотры после удаления видео на YouTube (adsense)?

    orlov0562
    @orlov0562
    I'm cool!
    По идее должно сохраниться. У меня был аналогичный случай: я потер все-все видео с канала, но 1.68$ все равно пришел :)

    Если там значительная сумма, то лучше не рискуй - правила порой меняются и однозначно никто не может сказать что будет в твоем случае.
    Ответ написан
    Комментировать
  • Как сделать красивые заполняемые PDF формы?

    orlov0562
    @orlov0562
    I'm cool!
    В LibreOffice на контроле (например текстовое поле) нажимаешь правой кнопкой, выбираешь "Control..", там на вкладке "Default" можно задать Background color, Border color (только поставь border = flat)
    Ответ написан
    2 комментария
  • Создание карты html, css?

    orlov0562
    @orlov0562
    I'm cool!
    Вот описание тэга: htmlbook.ru/html/map

    Вкратце делаешь картинку, поверх ложишь map, отмечаешь границы области координатами внутри map с помощью area, у каждой area делаешь свою ссылку.

    Посмотри исходник страницы, там все просто

    P.S. Координаты можно быстро "нарезать" с помощью онлайн сервисов, например: imagemap-generator.dariodomi.de или других, которые можно найти по запросу "html map generator"
    Ответ написан
    Комментировать
  • Как использовать другой шаблон для постов с разными категориями?

    orlov0562
    @orlov0562
    I'm cool!
    Это сложнее чем со страницами, где достаточно просто создать page-slug шаблон, но не намного:

    1) собираешь id (slug или названия) категорий, в группы. Например категории с id 16,25,26 должны показываться с шаблоном A; 18,24 с шаблоном B, остальные с шаблоном по умолчанию.
    2) переименовываешь single.php в single-default.php
    3) создаешь новый дизайн или делаешь на базе single-default в файлах: single-A.php и single-B.php
    4) создаешь single.php с таким содержимым:
    <?php
    if (is_category([16,25,26])) {
       include dirname(__FILE__).'/single-A.php';
    } elseif (is_category([18,24])) {
       include dirname(__FILE__).'/single-B.php';
    } else {
       include dirname(__FILE__).'/single-default.php';
    }


    вот и всё :)

    про is_category можно почитать тут:
    https://developer.wordpress.org/reference/function...
    Ответ написан
  • Как сделать динамический css?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    в html
    <link href="style.php?color=f00c" rel="stylesheet" type="text/css">


    и в php
    <?php
    $color = ( isset($_GET['color']) && filter_var($_GET['color'], FILTER_FLAG_ALLOW_HEX) === false )
                  ? $_GET['color']
                  : '000'
    ;      
    ?>
    .block {color:#<?=$color?>}
    Ответ написан
    2 комментария
  • Как спроектировать БД для публикации новостей?

    orlov0562
    @orlov0562
    I'm cool!
    1) У каждого пользователя, поле в таблице, в которое записывать SELECT COUNT WHERE user_id в момент обновления им новости (добавил/удалил/изменил статус). При простых условиях, можно сделать тригер в бд, который это будет делать сам. Не забудь сделать индекс по user_id

    2) Да, лучше кешировать это значение. Делается это разными способами, но смысл один - снизить кол-во вызовов SELECT COUNT

    SELECT COUNT(id) и даже SELECT COUNT(id) WHERE user_id = на небольшой посещалке не самая тяжелая операция.. Однако, если ты например решишь отсортировать пользователей по кол-ву новостей, например выбрать top 50, то имея доп. поле с кол-вом новостей, сделать это будет гораздо проще..

    В общем, ты правильно мыслишь.
    Ответ написан
    1 комментарий
  • Как сделать проверку отправляемых данных формы при помощи ajax?

    orlov0562
    @orlov0562
    I'm cool!
    давай по-порядку

    >> каптча
    1) выводишь каптчу и поле для ввода каптчи
    2) выводишь тригер проверки каптчи, чаще всего это какая-нибудь кнопка (например "Скачать трек")
    3) в момент нажатия кнопки (или исполнения тригера), проверяешь каптчу. Тригером может быть что угодно, например event "blur", который срабатывает, когда теряется фокус с поля ввода каптчи..
    4) если плохой результат показываешь ошибку
    5) если все ок, значит делаешь действие

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

    1) делаешь кнопку (можно без формы), пусть это будет "Скачать"

    2) на кнопку вешаешь функцию:
    $('#btn').click(function(){
    ....
    // проверка каптчи
    // показ ошибки или скачивание файла
    ....
    });


    3) при нажатии на кнопку проверяешь каптчу
    4) если ошибка, показываешь сообщение, обновляешь каптчу и выходишь из функции:
    $('#btn').click(function(){
    ....
    if (!valid_captcha()) return false;
    // показ ошибки или скачивание файла
    ....
    });
    
    function valid_captcha(){
    var ret = false;
    // проверка каптчи
    return ret;
    }


    5) делаешь ajax запрос к скрипту на php, например к file.php , передаешь параметры какие-надо
    скрипт возвращает тебе путь к файлу на который ты переходишь с помощью метода:

    при отдаче файла, посылаешь заголовоки вида:
    Content-Type application/octet-stream
    чтобы форсировать вызов диалога "Сохранить как"
    сделатьэто можно как на стороне php так и на стороне веб-сервера, если редирект будет напрямую на mp3 файл

    >> Как мне запретить нажимать submit, если не введена капча, если капча была уже введена и кто-то нажимает снова на submit.

    P.S. Если все таки решил делать в форме, то тогда в случае ошибок ты можешь остановить выполнение вернув false в submit event-е, т.е.:

    <form action="http://google.com">
    <input type="submit">
    </form>
    
    <script>
    $('form').first().submit(function(){
        if (!confirm('Submit form?')) return false;
    });
    </script>
    Ответ написан
    Комментировать