Задать вопрос
  • Есть ли бесплатные сервис наподобие codepen?

    monochromer
    @monochromer
    DIVeloper
    Базовый функционал Codepen бесплатен. Заплатить нужно, если хочется пользоваться проектами (отличие проектов от pen'ов в том, что можно создавать свои папки и файлы), хранением ресурсов (картинки, шрифты), совместной работой, приватными наработками и др. Также в Codepen гораздо удобнее организовывать блоки с кодом и превью, чем в jsfiddle. Плюс элементы социальной сети.

    Другие сервисы:
    JS bin https://jsbin.com
    CodeSandbox https://codesandbox.io/
    Plunker plnkr.co
    CSSDeck cssdeck.com
    Ответ написан
    Комментировать
  • Как отключить письма от dmarc_support@corp.mail.ru?

    Это означает, что вы опубликовали политику DMARC с адресом для отправки репортов (TXT-запись _dmarc.вашдомен.что-нибудь). Уберите в DMARC параметр rua= если не хотите получать отчеты.
    Ответ написан
    1 комментарий
  • Почему письма попадают в спам?

    @Newbie2 Автор вопроса
    Вот ещё решение.
    Сервис www.mail-tester.com отправляешь туда письмо и он анализирует что с ним не так. В моем случае подтвердилось, что проблема в PTR, как писал Denis Michurin. Плюс ещё оказался в одном из спам-листов.
    Ответ написан
    Комментировать
  • Установка textolite на NGINX + FPM. Кто-нибудь ставил?

    @Counter Автор вопроса
    Сам спросил, сам отвечу.
    Проблема была в правах доступа. nginx нельзя было создавать файлы и вносить изменения в существующие. А для Textolite это обязательное условие. Поправил права и все полетело.
    Ответ написан
    1 комментарий
  • Размер монтажной области под объекту illustrator?

    Способ №1
    Настраиваете горячие клавиши в панели "Редактирование -> Комбинации клавиш".
    Переключаете на "Меню программы", вводите в поиске "подогнать" и указываете горячие клавиши конкретно для этого действия
    Скриншот

    5de5241ea2d3a655481739.png


    Способ №2 (от пользователя RAX7 в комментариях к вопросу)
    Объект -> монтажная область -> по границам иллюстрации

    Способ №3:
    Дважды нажимаете по инструменту "Монтажные области" и в окошке в поле "Установки" выбираете "Подогнать по границам иллюстрации.
    Скриншот

    5de523066eb9c227259358.png
    Ответ написан
    1 комментарий
  • Какую локаль правильно указывать в атрибуте lang тега html?

    MTonly
    @MTonly
    Веб-разработчик с 2002 года
    Правильный, минимально достаточный вариант:
    <html lang="ru">

    Суффикс -RU означает «тот русский, на котором говорят именно в России» и конкретно для русского языка является избыточным.
    Ответ написан
    2 комментария
  • Как сделать скролл по умолчанию видимым на мобильных?

    @IceJOKER
    Web/Android developer
    Только недавно сталкивался с этой же проблемой, решил переписав css свойства скролла для webkit:
    .scroll_block::-webkit-scrollbar-thumb {
        border: 2px solid white;
        background-color: #ccc;
    }
    .scroll_block::-webkit-scrollbar {
        -webkit-appearance: none;
    }
    
    .scroll_block::-webkit-scrollbar:horizontal {
        height: 13px;
    }
    
    .scroll_block::-webkit-scrollbar-thumb {
        border-radius: 6px;
        border: 2px solid white; 
        background-color: rgba(0, 0, 0, .5);
    }


    p.s. цвет и т.п. сами устанавливайте
    Ответ написан
    2 комментария
  • Почему использование !important крайне не желательно?

    Symphony
    @Symphony Куратор тега CSS
    Аналог из жизни, после экзамена:
    ----- проходные места (первые пять) -----
    • 1 место: Вася (90 баллов из 100 )
    • 2 место: Катя (85 баллов из 100)
    • 3 место: Сережа (25 баллов из 100) - !important - сын депутата
    • 4 место: Лена (80 баллов из 100)
    • 5 место: Андрей (75 баллов из 100)

    ----- не проходные места -----
    • 6 место: Женя (70 баллов из 100)
    • 7 место: Лера (65 баллов из 100)
    • 8 место: Гриша (60 баллов из 100)

    ...
    Ответ написан
    1 комментарий
  • Как растянуть картинку (тег Img) на всю ширину экрана не меняя высоты?

    hronik87
    @hronik87
    Обитаю в 1С-Bitrix
    родителю задайте overflow: hidden;
    А картинке нужный размер в пикселях.
    Ответ написан
    Комментировать
  • Можно ли использовать на сайте два Page Buildera совместно (WPBakery Page Builder и Elementor)?

    @Eugeny1987
    Работаю с HostCMS
    Конечно можно, только не нужно.
    Один билдер грузит сайт, а два наверное совсем повесят
    Ответ написан
    Комментировать
  • Может кто простыми словами объяснить что такое SalesForce и его предназначение?

    copist
    @copist
    Empower people to give
    что такое SalesForce

    SalesForce относится к системам управления взаимоотношениями с клиентами (Customer Relationship Management, CRM, CRM-система).
    Если коротко, то это сервис для ведения базы данных клиентов (имена, контакты), ведения сделок (заказы, продажи, оплаты), документооборота (заявки, договора, квитанции). Обычно это многопользовательские системы. Обычно эти системы имеют интеграцию с другими системами для ведения email, sms и голосовых рассылок с напоминаниями о сделках или для рекламных целей. Обычно там есть возможность вести задачи, передавать их между сотрудниками, отслеживать исполнение, сроки. Обычно такие системы могут взаимодействовать с клиентами на базе автоматизированных скриптов, например регистрировать заказы с сайта или вести опросы по качеству обслуживания.

    его предназначение?

    Не держать всё в голове. Не вести учёт на бумажке. Не вести учёт в гугло-доках. Не терять клиентов и деньги. Вот его предназначение.

    Обычно системы CRM могут строить статистические и аналитические отчёты для определения удвлетворнности клиентов, эффективности работы сотрудников и состояние организации в целом. По этим отчётам можно определить рентабельность в целом и по направлениям, нехватку или избыток персонала, наиболее перспективные или тупиковые каналы привлечения клиентов, наиболее выгодные или невыгодные товары.

    Когда я говорю "обычно" - это значит что это возможно, но не обязательно присутствует в базовой версии.
    Дополнения к базовой версии подключаются либо программируются. SalesForce отличается тем, что для этой платформы можно дописать много чего. Она открытая для расширения силами программистов.

    А дописываются модули под конкретные бизнес-процессы организации. Например, в моей организации ведутся конференции по веб-технологиям. Нужно вести контакты с конференц-залами и контакты с слушателями. С первыми договориться о времени, заплатить. Со вторых взять оплату за участие и напомнить, чтобы не пропустили. А ещё вести онлайн блог и в личном кабинете после мероприятия дать возможность скачать видео-запись, задать вопрос, оставить отзыв. Это конкретно мои заморочки. Мне стало быть нужно базовый модуль + личный кабинет участника + онлайн оплаты + интеграцию с ККМ + задачник + рассылки по email/sms + блог.
    Ответ написан
    1 комментарий
  • Редирект на 404 страницу wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Здравствуйте.

    function my_template_redirect(){
    	if( is_404() && $_SERVER["REQUEST_URI"] != '/404/' ){
    		wp_redirect( home_url( '/404/' ) );
    		exit();
    	}
    }
    add_action( 'template_redirect', 'my_template_redirect' );
    Ответ написан
    6 комментариев
  • Разработка на Flash и Flex в 2021?

    NeiroNx
    @NeiroNx
    Программист
    Смотрите в сторону SVG+JS. Не надо заниматься некрофилией.
    Ответ написан
    Комментировать
  • WooCommerce - как в/shop заменить ссылку на товар на ссылку из атрибутов?

    @Rylezzz Автор вопроса
    Да, детка!
    Я понимаю, что для многих пользователей это детский лепет, но для меня это победа))

    Как я реализовал задуманное.

    ВАЖНО! сохраняйте оригиналы всех изменяемых файлов. А ещё лучше - сделайте на всякий случай бэкап на хостинге

    Вывод данных в мини-карточке в магазине /shop производится посредством хуков (hook) в файле content-product.php темы.
    Оригинальный content-product.php
    <?php
    
    if ( ! defined( 'ABSPATH' ) ) {
    	exit; // Exit if accessed directly
    }
    
    global $product, $woocommerce_loop;
    
    // Ensure visibility
    if ( empty( $product ) || ! $product->is_visible() ) {
    	return;
    }
    
    // Store column count for displaying the grid
    if ( empty( $woocommerce_loop['columns'] ) ) {
    	$woocommerce_loop['columns'] = apply_filters( 'loop_shop_columns', 3 );
    }
    
    // Extra post classes
    $classes = array();
    if ($woocommerce_loop['columns'] == 2) {
    	$classes[] = 'col-md-6';
    }elseif($woocommerce_loop['columns'] == 4){
    	$classes[] = 'col-md-3';
    }elseif($woocommerce_loop['columns'] == 6){
    	$classes[] = 'col-md-2';
    }else{
    	$classes[] = 'col-md-4';
    }
    ?>
    <div <?php post_class( $classes ); ?>>
    <div class="product-item">
    	<?php
    	/**
    	 * woocommerce_before_shop_loop_item hook.
    	 *
    	 * @hooked woocommerce_template_loop_product_link_open - 10
    	 */
    	do_action( 'woocommerce_before_shop_loop_item' );
    	?>
    	<b><a href="<?php the_permalink(); ?>" class="products-warp"></b>
    	<?php
    	/**
    	 * woocommerce_before_shop_loop_item_title hook.
    	 *
    	 * @hooked woocommerce_template_loop_product_thumbnail - 10
    	 * @hooked woocommerce_show_product_loop_sale_flash - 10
    	 */
    	do_action( 'woocommerce_before_shop_loop_item_title' );
    	?>
    	<b></a></b>
    	<div class="product-info">
    	<b><a href="<?php the_permalink(); ?>"></b>
    		<?php
    			/**
    			 * woocommerce_shop_loop_item_title hook.
    			 *
    			 * @hooked woocommerce_template_loop_product_title - 10
    			 */
    			do_action( 'woocommerce_shop_loop_item_title' );
    		?>
    	<b></a></b>
    	<?php
    	/**
    	 * woocommerce_after_shop_loop_item_title hook.
    	 *
    	 * @hooked woocommerce_template_loop_rating - 5
    	 * @hooked woocommerce_template_loop_price - 10
    	 */
    	<b>do_action( 'woocommerce_after_shop_loop_item_title' );</b>
    
    	/**
    	 * woocommerce_after_shop_loop_item hook.
    	 *
    	 * @hooked woocommerce_template_loop_product_link_close - 5
    	 * @hooked woocommerce_template_loop_add_to_cart - 10
    	 */
    	<b>do_action( 'woocommerce_after_shop_loop_item' );</b>
    	?>
    	</div>
    </div>
    </div>

    Первым делом я убрал ссылки с <?php the_permalink(); ?>, т. к. карточка товара не нужна совсем. Да, изящнее было бы разобраться и заменить на функцию, выводящую нужные мне ссылки, но времени на это, увы, нет.

    Далее - убрал do_action( 'woocommerce_after_shop_loop_item_title' ); и do_action( 'woocommerce_after_shop_loop_item' ); , т. к. рейтинг, цена и кнопка "В корзину" мне опять же не нужны.

    Ссылки на сайты фабрик я разместил в short description соответственно в каждом товаре в виде
    <a href="http://www.ararredamenti.it/" rel="noopener" target="_blank">www.ararredamenti.it</a>
    (Excel в помощь). Соответственно теперь нужно добавить хук, который выводил бы нам short description.

    Для этого в файле /wp-content/plugins/woocommerce/includes/wc-template-hooks.php добавляем
    /**
     * Ссылки на фабрики в /shop.
     */
    add_action( 'woocommerce_brands_link', 'woocommerce_template_single_excerpt', 10 );

    Вот эту штуку - 'woocommerce_template_single_excerpt', я подглядел в шаблоне карточки товара content-single-product.php темы - заметил, что это часть хука, выводящая информацию по товару.

    Далее добавляем этот хук в content-product.php темы после хука заголовка товара, в итоге получилось вот так:
    Изменённый content-product.php
    <?php
    
    if ( ! defined( 'ABSPATH' ) ) {
    	exit; // Exit if accessed directly
    }
    
    global $product, $woocommerce_loop;
    
    // Ensure visibility
    if ( empty( $product ) || ! $product->is_visible() ) {
    	return;
    }
    
    // Store column count for displaying the grid
    if ( empty( $woocommerce_loop['columns'] ) ) {
    	$woocommerce_loop['columns'] = apply_filters( 'loop_shop_columns', 3 );
    }
    
    // Extra post classes
    $classes = array();
    if ($woocommerce_loop['columns'] == 2) {
    	$classes[] = 'col-md-6';
    }elseif($woocommerce_loop['columns'] == 4){
    	$classes[] = 'col-md-3';
    }elseif($woocommerce_loop['columns'] == 6){
    	$classes[] = 'col-md-2';
    }else{
    	$classes[] = 'col-md-4';
    }
    ?>
    <div <?php post_class( $classes ); ?>>
    <div class="product-item">
    	<?php
    	/**
    	 * woocommerce_before_shop_loop_item hook.
    	 *
    	 * @hooked woocommerce_template_loop_product_link_open - 10
    	 */
    	do_action( 'woocommerce_before_shop_loop_item' );
    	?>
    
    	<?php
    	/**
    	 * woocommerce_before_shop_loop_item_title hook.
    	 *
    	 * @hooked woocommerce_template_loop_product_thumbnail - 10
    	 * @hooked woocommerce_show_product_loop_sale_flash - 10
    	 */
    	do_action( 'woocommerce_before_shop_loop_item_title' );
    	?>
    
    	<div class="product-info">
    		<?php
    			/**
    			 * woocommerce_shop_loop_item_title hook.
    			 *
    			 * @hooked woocommerce_template_loop_product_title - 10
    			 */
    			do_action( 'woocommerce_shop_loop_item_title' );
    			do_action( 'woocommerce_brands_link' );
    		?>
    	<?php
    
    	?>
    	</div>
    </div>
    </div>

    В итоге - то, что нужно
    Скрин результата
    5c373da3449f0917367287.png

    Знаю, что реализация далека от the best. С php знаком только на уровне вот такого редкого ковыряния тем и плагинов. В силу этого ни в коем случае не претендую на экспертное мнение. Надеюсь, будет полезно тем, кто так же, как и я, искал способ решения такой задачи, т. к. теперь могу сразу добавить 300 фабрик на сайт импортом из Excel
    Ответ написан
    1 комментарий
  • Как сделать микроразметки товаров woocommerce?

    попробуйте микроразметку по схеме https://schema.org/Product
    Есть примеры от гугла - https://developers.google.com/search/docs/data-typ...
    И там показывает как раз цену, фото, но не всегда, наличие, остаток не покажет конечно, название и описание товара5fef3f57d17dc907239529.png
    Ответ написан
    Комментировать
  • Как сделать грамотный preload Css\JS для сайта под wp?

    Попробуйте абсолютно бесплатный плагин LiteSpeed Cache — он реально помогает с оптимизацией WP:
    Со стилями и скриптами: минификация, объединение, генерация Critical CSS (бесплатно, в отличии от остальных) асинхронная загрузка
    С изображениями: оптимизация, ленивая загрузка
    Со шрифтами: асинхронная загрузка
    А если ещё сайт перенести на хостинг с веб сервером LiteSpeed, то и кэшированием займется, на Apache вроде не работает кэширование.
    У меня с ним страницы грузятся за 0,4-0,6 сек и 1,2-1,6 на мобильных по данным PageSpeed Insight.
    Самое лучшее и удобное решение для WP, установил, один раз настроил и забыл. Работает как часы, сайты летают.
    Ответ написан
    3 комментария