WordPress

GTranslate — как убрать дублирующийся H1

Плагин GTranslate генерирует дополнительный тег H1 на всех страницах сайта. В коде его найти невозможно. Разработчики предлагают приобрести платную версию
Задачу можно решить, если в футер (footer.php) сайта добавить код

<script type="text/javascript">
function googleTranslateElementInit() {
    new google.translate.TranslateElement({ pageLanguage: 'en', includedLanguages: 'es' }, 'google_translate_element');
    var removePopup = document.getElementById('goog-gt-tt');
    removePopup.parentNode.removeChild(removePopup);
}
</script>

<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>

Описание категории переносим под товары

Если в основном шаблоне нет шаблона категорий (archive-product.php) для переноса описания категории нужно внести правки в плагин WooCommerce. Находим файл
wp-content/plugins/woocommerce/includes/wc-template-functions.php и переносим строку вниз

Удаляем цены и кнопку В КОРЗИНУ на сайте WooCommerce

Удаляем цены и кнопку В КОРЗИНУ на сайте WooCommerce

В файл functions.php вставляем код

/*
 * Hide Price & Remove Add to Cart Button
 */
add_filter( 'woocommerce_get_price_html', 'tb_remove_price');
function tb_remove_price($price){     
     return ;
}

remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart');
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );

Кнопка КУПИТЬ В ОДИН КЛИК

Плагин КУПИТЬ В ОДИН КЛИК
Buy one click WooCommerce
Автор: Djo

Buy one click WooCommerce

Вставить код в нужное место шаблона

Как вставить шорткод в php файл

<?php echo do_shortcode('[shortcode]'); ?>

WooCommerce — как скрыть атрибут товара в карточке

Чтобы скрыть некоторые атрибуты товара и не выводить их в карточке нужно в файл functions.php добавить следующий код:

function devise_hide_attributes_from_additional_info_tabs( $attributes, $product ) {
    $hidden_attributes = [
        'pa_network',
        'pa_merchant',
        'pa_brand',
    ];
    foreach ( $hidden_attributes as $hidden_attribute ) {
        if ( ! isset( $attributes[ $hidden_attribute ] ) ) {
            continue;
        }
        $attribute = $attributes[ $hidden_attribute ];
        $attribute->set_visible( false );
    }
    return $attributes;
}
add_filter( 'woocommerce_product_get_attributes', 'devise_hide_attributes_from_additional_info_tabs', 20, 2 );

где
pa_network
pa_merchant
pa_brand

это атрибуты, которые мы хотим скрыть

формируется как
«pa_» + «ярлык атрибута»
woocommerce как скрыть атрибут товара

Уменьшаем или увеличиваем количество выводимых тегов WordPress

Чтобы уменьшить количество выводимых тегов на странице, необходимо отредактировать файл category-template.php, который находится в папке wp-includes.
Скачиваете и находите в нем функцию wp_tag_cloud, она выглядит следующим образом:

<
$defaults = array( 'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45, 'format' => 'flat', 'separator' => "\n", 'orderby' => 'name', 'order' => 'ASC', 'exclude' => '', 'include' => '', 'link' => 'view', 'taxonomy' => 'post_tag', 'echo' => true );
>

number — количество выводимых тегов
smallest — размер шрифта самой выводимой метки
largest — размер шрифта самой выводимой метки

Проблемы локализации тем WordPress

Ситуация с переводом темы WP:

Есть папка с файлами локализации или фалом POT
Вы делаете перевод на русский (с помощью плагина или специального редактора Poedit)
Сохраняете файл с расширением PO
Создаете автоматически файл с расширением MO
Все файлы лежат в папке локализации
Но! Перевод не работает!

Варианты решения:

Вариант 1 — автор темы или плагина мог забыть создать папку для хранения языковых файлов. Проверьте и если такой папки нет (как имя папки в функции) — создайте эту папку.

Вариант 2 — автор сделал иначе: папку создал, но путь к папке не прописал в функции, или — папка /lang, а в функции — имя папки, например /languages.

Вариант 3 — автор прописал функцию подключения локализации не в файле functions.php, а в другом.

Вариант 4 — автор просто забыл добавить функцию подключения локализации.

Эта функция в любой теме WordPress всегда должна включена в файле functions.php.

// Make the theme available for translation.
load_theme_textdomain( ‘supernews’, get_template_directory() . ‘/languages’ );

или другой синтаксис

// Make the theme available for translation.
	load_theme_textdomain( 'supernews', trailingslashit( get_template_directory() ) . 'languages' );

где
supernews — название папки с темой
languages — название папки с языками

Плагин Инстаграма для WP

Скачиваем и устанавливаем плагин WP Instagram Widget

В стили шаблона вносим правки

.instagram-pics {
   list-style: none;
   margin: 0;
 }
 .instagram-pics li {
   float: left;
   padding: 3px;
   width: 33.333%;
 }
 .null-instagram-feed p.clear {
   clear: both; } 
 .instagram-pics li:hover {
   opacity: 0.7;
 }

Плагин для вставки кода и картинок в посты, на страницы, в виджеты

Ad Inserter
Плагин вставки кода и картинок в посты, на страницы, в виджеты.
Удобрый интерфейс, множество позиций. Возможность вставлять код в хидер и футер сайта.
Автор: Igor Funa

Адрес плагина:
https://ru.wordpress.org/plugins/ad-inserter/

Перенос WP сайта на новый хостинг

1. Сохраняем папки и файлы в архив
2. Делаем экспорт базы данных
3. Распаковываем архив с файлами на новом хостинге
4. Импортируем базу.
5. Делаем 3 запроса в базе (вкладка SQL)

 UPDATE wp_options SET option_value = REPLACE (option_value, 'http://old_domain.ru', 'http://new_domain.ru') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET guid = REPLACE (guid, 'http://old_domain.ru', 'http://new_domain.ru');

UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://old_domain.ru','http://new_domain.ru');

6. Если на страницах возникает Ошибка 500 Internal Server Error, необходимо удалить .htaccess файл и создать его заного через админку Параметры → Постоянные ссылки, Сохранить.

Как разбить запись на несколько страниц

Чтобы разбить запись или статью в WordPress на несколько страниц необходимо в редакторе перейти в текстовый режим и в месте, где необходим переход на следующую страницу вставить тег

<!--nextpage-->

Как избавиться от страниц вложения медиафайлов attachment

Как в публикациях сайта на WordPress избавиться от страниц вложения медиконтента: такие странички WordPress будет генерировать для каждого добавленного фото (вообще всего добавленного медиаконтента).

/*** удаляем стр. вложения медиа КАРТИНКИ ***/
add_action('template_redirect', 'template_redirect_attachment');
function template_redirect_attachment() {
global $post;
// Перенаправляем на основную запись:
if (is_attachment()) {
wp_redirect(get_permalink($post->post_parent));
}
}
/*** ФИН удаляем стр. вложения медиа КАРТИНКИ ***/

Вывод формы комментариев на отдельной странице

WordPress: Как сделать вывод формы комментариев на другой странице
Если нужно чтобы форма комментарие отображалась на одной странице, а сами комментарии выводились на другой, нужно воспользоваться кодом:

<?php comment_form( $args, $post_id ); ?>

comment_form( $args, $post_id );

$args(массив)

Аргументы, в соответствии с которыми будет создана форма комментирования.
По умолчанию: предустановленные

$post_id(строка/массив/число)
ID поста, для которого нужно вывести форму комментирования.
По умолчанию: null (текущий пост например 256). Комментарии будут отображаться на этой странице

Создаем копию шаблона, отвечающего за вывод страницы. Обычно это page.php или page-default.php
Меняем код, отвечающий за вывод комментариев

    
<?php
    if ( comments_open() || '0' != jnews_get_comments_number() ) {
    comments_template();
    }
?>

на

<?php comment_form( $args, 256 ); ?>

Добавляем в начало шаблона код с названием

<?php
/**
 * Template Name:  Form comments
 *
 * @file           page-default-form.php
 * @package        iteamtheme 
 * @author         trunow 
 * @version        Release: 1.0
 * @filesource     wp-content/themes/jnews/page-default-form.php
 */

В админке в редакторе страницы в атрибутах вместо базового шаблона выбираем новый Form comments
Вывод подписи миниатрюры поста

Выводит на экран описание (caption) миниатюры записи (поста).

Подпись указывается при редактировании картинки в админ-панели:

Использование

the_post_thumbnail_caption( $post );

где:
$post(число/WP_Post)
ID или объект записи, подпись миниатюры которого нужно вывести на экран.
По умолчанию: null (текущий пост)

Пример
#1 Выведем подпись миниатюры записи
Функция выведет пустую строку если у миниатюры нет подписи.

<?php the_post_thumbnail_caption(); ?>

Пример на странице

https://realty62.ru/start-prodazh-2-go-doma-zhilogo-kompleksa-margelov/ Не использовала

// Show description of thumbnail in post
  function the_post_thumbnail_caption( $post = null ) {
  	/**
  	 * Filters the displayed post thumbnail caption.
  	 *
  	 * @since 4.6.0
  	 *
  	 * @param string $caption Caption for the given attachment.
  	 */
  	echo apply_filters( 'the_post_thumbnail_caption', get_the_post_thumbnail_caption( $post ) );
  }

WooCommerce вариативные товары с одинаковым SKU

Добавляем товары с одинаковыми SKU для 2-х и более товаров.
Добавляем код в functions.php чтобы не выскакивала ошибка «Неправильный или дублированный Артикул» (он же SKU)

// TEMPORARY FIX for invalid or double sku
add_filter( 'wc_product_has_unique_sku', 'temp_fix_wcml_sku_issue', 10, 3 );
function temp_fix_wcml_sku_issue( $sku_found, $product_id, $sku ) {
    return false;
}

Как сделать так чтобы WordPress не вырезал html теги в описании рубрик и меток

Теги вырезаются функциями wp_filter_kses() и wp_kses_data(), которые как и все в мире WordPress цепляются через фильтры и которые соответственно можно «отцепить».

Вставляем эти две строчки в functions.php

remove_filter('pre_term_description', 'wp_filter_kses');
remove_filter('pre_term_description', 'wp_kses_data');

html теги в описаниях ссылок и описании пользователей

А можно еще так, чтобы теги оставались и в описаниях ссылок и описании пользователей, но у пользователей оставлять теги чревато тем, что шаблон может поехать, если незадачливые пользователи начнут использовать эти теги, поэтому без надобности лучше ограничится кодом выше.

Этот код тоже нужно вставлять в functions.php

$filters = array('pre_term_description', 'pre_link_description', 'pre_link_notes', 'pre_user_description');
foreach ( $filters as $filter ) {
    remove_filter($filter, 'wp_filter_kses');
}
 
foreach ( array( 'term_description' ) as $filter ) {
    remove_filter( $filter, 'wp_kses_data' );
}
wp_filter_kses

Плагины для работы с WP

Базовые плагины

Really Simple SSL
Автор: Rogier Lankhorst, Mark Wolters

Really Simple SSL

Cyr to Lat enhanced
Автор: Sol, Sergey Biryukov, Nikolay Karev, Dmitri Gogelia

Cyr to Lat enhanced

Classic Editor
Автор: WordPress Contributors

Classic Editor

WPBakery Page Builder

Must Have Page Builder Plugin for WordPress

Loco Translate
Автор: Tim Whitlock

Loco Translate

Bulk Delete
Автор: Sudar

Bulk Delete

Dynamic Widgets
Автор: Qurl

Dynamic Widgets

Bellows Accordion Menu
Автор: SevenSpark

Bellows Accordion Menu

qTranslate X

qTranslate X

Инструкция qTranslate X
https://only-to-top.ru/blog/programming/2018-12-19-qtranslate-x-nastrojka-i-ispolzovanie.html

AddToAny Share Buttons
Кнопки поделиться для ваших страниц: универсальная кнопка AddToAny, Facebook, Twitter, Google+, Pinterest, WhatsApp и многие другие.
Автор: СоцЗакладки

AddToAny Share Buttons

Bazz CallBack Widget
Плагин создает простой виджет для обратного звонка на ваш сайт.
Автор: Viktor Ievlev

Bazz CallBack widget

Strong Testimonials
Соберите и покажите отзывы или обзоры.
Автор: MachoThemes

Strong Testimonials

Яндекс.Турбо
Данный плагин автоматически создаст на вашем сайте новую RSS-ленту (или несколько лент) для сервиса Яндекс.Турбо
Автор: Flector

Яндекс.Турбо

Вывод title, description, keywords и h1 для категорий товаров Woocommerce

В категория товаров для Woocommerce нет возможности вывода описания и тайтла. Чтобы добавить эти поля нужно добавить несколько функций.

1. Добавляем код в functions.php

Добавляем код в functions.php

/* Мета-поля для категорий товаров */
add_action("product_cat_edit_form_fields", 'mayak_meta_product_cat');
function mayak_meta_product_cat($term){
	?>
		<tr class="form-field">
			<th scope="row" valign="top"><label>Заголовок (title)</label></th>
			<td>
				<input type="text" name="mayak[title]" value="<?php echo esc_attr( get_term_meta( $term->term_id, 'title', 1 ) ) ?>"><br />
				<p class="description">Не более 60 знаков, включая пробелы</p>
			</td>
		</tr>
		<tr class="form-field">
            <th scope="row" valign="top"><label>Краткое описание (description)</label></th>
			<td>
				<input type="text" name="mayak[description]" value="<?php echo esc_attr( get_term_meta( $term->term_id, 'description', 1 ) ) ?>"><br />
				<p class="description">Краткое описание (description)</p>
			</td>
		</tr>
		<tr class="form-field">
			<th scope="row" valign="top"><label>Заголовок h1</label></th>
			<td>
				<input type="text" name="mayak[h1]" value="<?php echo esc_attr( get_term_meta( $term->term_id, 'h1', 1 ) ) ?>"><br />
				<p class="description">Заголовок страницы</p>
			</td>
		</tr>
		<tr class="form-field">
			<th scope="row" valign="top"><label>Ключевые слова</label></th>
			<td>
				<input type="text" name="mayak[keywords]" value="<?php echo esc_attr( get_term_meta( $term->term_id, 'keywords', 1 ) ) ?>"><br />
				<p class="description">Ключевые слова (keywords)</p>
			</td>
		</tr>
	<?php
}


/* Сохранение данных в БД */
add_action('edited_product_cat', 'mayak_save_meta_product_cat');  
add_action('create_product_cat', 'mayak_save_meta_product_cat');
function mayak_save_meta_product_cat($term_id){
	if (!isset($_POST['mayak']))
		return;
	$mayak = array_map('trim', $_POST['mayak']);
	foreach($mayak as $key => $value){
		if(empty($value)){
			delete_term_meta($term_id, $key);
			continue;
		}
		update_term_meta($term_id, $key, $value);
	}
	return $term_id;
}

/* Вывод title для категорий товаров */
add_filter('single_term_title', 'mayak_filter_single_cat_title', 10, 1);
add_filter( 'single_term_title', 'mayak_poduct_cat_title', 10, 1); 
function mayak_filter_single_cat_title() {
    $pci =  get_queried_object()->term_id;
    return get_term_meta ($pci, 'title', true);
}
function mayak_poduct_cat_title($pct){
    if(empty($pct)){
	    $pct = get_queried_object()->name;
	}
	return $pct;
}

/* Вывод description для категорий товаров */
add_action('wp_head', 'mayak_description_product_cat', 1, 1);
function mayak_description_product_cat(){
	if(is_product_category()){ 
	$pcd = get_term_meta (get_queried_object()->term_id, 'description', true);
	if(!empty($pcd)){
	$meta = '<meta name="description"  content="'.$pcd.'"/>'."\n";
	}
    else {		   
	   $pcd = wp_filter_nohtml_kses(substr(category_description(), 0, 280));
	   $meta = '<meta name="description"  content="'.$pcd.'"/>'."\n";	   
	}
	echo $meta;
	}
}

/* Вывод keywords для категорий товаров */
add_action('wp_head', 'mayak_keywords_product_cat', 1, 1);
function mayak_keywords_product_cat(){
	if(is_product_category()){
	$pck = get_term_meta (get_queried_object()->term_id, 'keywords', true );
	$aut = '<meta name="keywords" content="'.$pck.'">'."\n";
	}
	echo $aut;
}

 

2. Если установлен плагин All in One SEO pack, необходимо убрать дубль вывода description
Для этого в настройка плагина добавляем страницы, на которых не будем выводить description

Вывод товаров отдельно от категорий в WooCommerce

В архивах woocommerce выводит категории и товары в один список. Чтобы отделить категории и товары нужно добавить хук.

В настройках WooCommerce включаем Показывать товары, при этом будут выводится все товары категории и подкатегорий.
В functions.php добавляем код:

// Отделяем категории от товаров
function tutsplus_product_subcategories( $args = array() ) {

$parentid = get_queried_object_id();

$args = array(
'parent' => $parentid
);

$terms = get_terms( 'product_cat', $args );

if ( $terms ) {

echo '<ul class="product-cats">';

foreach ( $terms as $term ) {

echo '<li class="category">';
echo '<a href="' . esc_url( get_term_link( $term ) ) . '" class="' . $term->slug . '">';
woocommerce_subcategory_thumbnail( $term );

echo '<h3>'.$term->name.'</h3>';
echo '</a>';
}

echo '</ul>';

}

}
add_action( 'woocommerce_before_shop_loop', 'tutsplus_product_subcategories', 50 );

Добавляем стили для вывода списка категорий:

ul.product-cats li {
    list-style: none;
    margin-left: 0;
    margin-bottom: 4.236em;
    text-align: center;
    position: relative;
}
ul.product-cats li img {
    margin: 0 auto; 
}
 
@media screen and (min-width:768px) {
 
    ul.product-cats {
        margin-left: 0;
        clear: both;
    }
    ul.product-cats li {
        width: 29.4117647059%;
        float: left;
        margin-right: 5.8823529412%;
    }
    ul.product-cats li:nth-of-type(3) {
        margin-right: 0;
    }
     
}

Если на странице магазина (shop) будут дублировать категории, страницу можно переопределить.
Создать новую (например Каталог) и вставить в нее вывод категорий через шорткоды или визуальным редактором.

Плагины для работы с WooCommerce

Woocommerce

WP all import pro
Custom Product Tabs for WooCommerce
Автор: YIKES, Inc.

Custom Product Tabs for WooCommerce

Variation Swatches for WooCommerce
Автор: Emran Ahmed

Variation Swatches for WooCommerce

Checkout Field Editor for WooCommerce
Автор: ThemeHigh

Checkout Field Editor (Checkout Manager) for WooCommerce

Woo Product Remover
Автор: Mohammad Farhat

Woo Product Remover

AJAX Search for WooCommerce
Автор: Damian Góra

FiboSearch — Ajax Search for WooCommerce

Qty Increment Buttons for WooCommerce
Добавляет профессионально выглядящие кнопки «-» и «+» вокруг поля количества товара, на странице товара и корзины.
Автор: taisho

Qty Increment Buttons for WooCommerce

Ajax Cart AutoUpdate for WooCommerce
Автоматически обновляет страницу корзины и мини-корзину при изменении количества.
Автор: taisho

Ajax Cart AutoUpdate for WooCommerce

States, Cities, and Places for WooCommerce
Плагин позволяет добавить выпадающий список стран и городов в форме заказа
Автор: Kingsley Ochu

States, Cities, and Places for WooCommerce

Dynamic Pricing With Discount Rules for WooCommerce
Различные виды скидок для цен товаров. Фиксированные, процентные
Автор: Acowebs

Dynamic Pricing With Discount Rules for WooCommerce

Advanced Product Labels for WooCommerce
Ярлыки для товаров WooCommerce
Автор: BeRocket

Advanced Product Labels for WooCommerce

Advanced AJAX Product Filters
Фильтры для товаров по цене, атрибутам, категориям и пр
Автор: BeRocket

Advanced AJAX Product Filters

Пример использования
beautylash.by


Prices by User Role
Разные цены для различных категорий пользователей.(Незарегистрированные, оптовые покупатели, клиенты, подписчики)

Автор: Festi-Team
https://festi.team/plugins/woocommerce-prices-by-user-role/

Prices By User Role Lite

Пример использования
fixpix.md


Плагин для создания страницы Вопрос-Ответ

DW Question & Answer
Плагин для созднания страницы Вопрос-Ответ. Выводиться на любой странице через шорткоды. Есть возможность задать вопрос через форму.
Управление через админку, ответы на вопросы через броузер.
Автор: DesignWall

DW Question & Answer

Пример работы — на сайте multitex.spb.ru
(http://multitex.active.com.swtest.ru/faq/)

Плагин для создания sitemap

Google XML Sitemaps
By Auctollo

Google XML Sitemaps

Удаление циклических ссылок в меню сайта

Вариант 1
Устанавливаем плагин. Не всегда срабатывает. Часто отключает полезные функции
Remove Redundant Links
Автор: Thomas Scholz

Remove Redundant Links

Вариант 2
Добавляем код в function.php

function artabr_menu_no_link($no_link){
	$in_link = '!<li(.*?)class="(.*?)current-menu-item(.*?)"><a(.*?)>(.*?)</a>!si';
	$out_link = '<li$1class="\\2current-menu-item\\3"><span>$5</span>';
	return preg_replace($in_link, $out_link, $no_link );
}
add_filter('wp_nav_menu', 'artabr_menu_no_link');

Нужно править стили
.main-menu > li > a меняем на .main-menu > li > span


Joomla

Import/Export товаров в Joomshopping

Если при экспорте/импорте товаров возникли проблкмы с кодировкой, необходимо установить дополнительный addong Simple Import UTF8 2.9.1
Addon для переноса товаров
Скачать и установить на сайте КУДА нужно перенести товары
Simple Import UTF8 2.9.1
https://www.webdesigner-profi.de/joomla-webdesign/shop/import-export/simple-import-utf8.html?lang=ru


ModX

Создаем YML.xml для ЯндексМаркета на MODx

1.В Ресурсах создаем страницу offers.yml


Содержание

<?xml version="1.0" encoding="utf-8"?>
<yml_catalog date="[[time]]" >
<shop>
<name>Название магазина
<company>Название фирмы
<url>http://site.ru
<currencies>
<currency id="RUR" rate="1"/>
</currencies>
<categories>
[[pdoResources? &parents=`8` &depth=`1` &limit=`1000` &tpl=`categories`]]
</categories>
<offers>
[[msProducts? &templates=`10` &limit=`10000` &parents=`0` &tpl=`offer` &includeTVs=`image`]]
</offers>
</shop>
</yml_catalog>

где 8 -категория каталога
10 — id шаблона товара

Параметры pdoResources: &parents=`8` — это id каталога (самый верхний уровень, где все лежит), &depth=`1` — глубина, limit = лимит и чанк categories.
Параметры msProducts: &templates=`10` — это id шаблона, который отвечает за товар,
&includeTVs=`image` — это дополнительно TV поле, где изображение (не использовали стандартную галерею).
Если захотите вытащить текст из области контента то не забудьте &includeContent=`1`, но лично я использовал longtitle.


2. Чанки — minishop2 — новый чанк categories

<category id="[[+id]]" [[+parent:is=`8`:then=``:else=`parentId="[[+parent]]"`]]>[[+pagetitle]]

где 8 -категория каталога


3. Чанки — minishop2 — новый чанк offers

<offer id="[[+id]]" available="[[+na_sklade]]">
<url>http://site.ru/[[~[[+id]]]]
<price>[[+price:stripString=` `]]
<currencyId>RUR
<categoryId>[[+parent]]
<picture>{"site_url" | config | replace : "ru/" : "ru"}{$image}
<name>[[+pagetitle]]
<model>[[+article]]
<description>[[+longtitle]]
</offer>
<model>[[+article]]
<description>[[+longtitle]]
</offer>
</pre>

где http://site.ru/ - меняем на адрес нашего сайта

4. Сниппеты - minishop2 - новый сниппет time

<?php
echo (date("Y-m-d H:i"));

5. TV параметр na_sklade это переключатель (radio) с возможными значениями:

да==true||нет==false

Как поставить яндекс метрику в Modx Revolution

Если после установки кода появляется белый экран
Ответ:
На сайте вероятно включен Fenom, посему два решения.
Либо код метрики в вашем чанке обернуть в тег {ignore} …{/ignore},
либо в самой метрики найти, где есть открывающая фигурная скобка рядом с обычной и разделить их пробелом — { (.
Это феном конфликтует и выдает белый экран.

Создание файла sitemap.xml в MODX Revolution

Для создания файла sitemap.xml будет использовать дополнение pdoTools, а точнее сниппет pdoSitemap. Это дополнение (pdoTools) у нас уже установлено в MODX Revolution.

1. Создать ресурс SiteMapXML и внести во вкладки «Документ» и «Настройки» следующие данные:
sitemap for modx
Вкладка «Документ»:

Заголовок – SiteMapXML.
Шаблон – пустой.
Псевдоним – sitemap.
Не показывать в меню – Да.
Опубликован – Да.

MODX Revolution — Создание ресурса SiteMapXML. Вкладка — Документ.
sitemap for modx
Вкладка «Настройки»:

Тип содержимого – XML.
Доступен для поиска – Нет.
Использовать HTML редактор – Нет.
Заморозить URI – Да.
URI – sitemap.xml.

MODX Revolution — Создание ресурса SiteMapXML. Вкладка — Настройки.

2. Сохранить ресурс SiteMapXML.

3. В поле содержимое ресурса SiteMapXML ввести следующее:

[[!pdoSitemap?
  &checkPermissions=`list`
]]

4. Проверяем результаты работы сниппета pdoSitemap. Для этого в адресной строке браузера вводим: http://www.mysite.ru/sitemap.xml.


ocStore — OpenCart

Установка ocStore

1) Установка ocStore
2) Загружаем файлы, переносим файлы из папки Uploads в основную директорию
3) Переименовываем файлы config-dist.php в config.php
и admin/config-dist.php в admin/config.php
4) Запускаем установку


HTML

Проложить маршрут на карте

На яндекс карте определяем координаты объекта.
Вставляем их в следующий код.

<a href="yandexmaps://build_route_on_map/?lat_to=55.634822&lon_to=37.628451">Проложить маршрут (для iOS?приложения Яндекс.Карты версии 6.4 и выше)</a>

<a href="intent://maps.yandex.ru/?lon_to=37.628451&lat_to=55.634822#Intent;scheme=http;package=ru.yandex.yandexmaps;end">Проложить маршрут (для Android приложения Яндекс.Карты версии 3.8 и выше)</a>

Таблица спецсимволов

Таблица спецсимволов HTML
http://htmlbook.ru/samhtml/tekst/spetssimvoly

Как поставить ударение в слове

Ударение вставляется после буквы, на которой должен стоять знак ударения.

́
́

Пример: Делай, что до́лжно, и будет, как надо!

Как подключить нестандартные шрифты

1. Подключение шрифта, если он есть в Google Fonts
https://fonts.google.com/
вводим Raleway в поиске
2. Выбираем нужный шрифт
3. Настраиваем шрифт
4. Вставляем линк в html — > head
5. Вставляем код в style.css

6. Если шрифта нет в Google Fonts, берем его у дизайнера и загружаем нужный шрифт в fontsquirrel и скачиваем архив https://www.fontsquirrel.com/tools/webfont-generator

7. Создаем в проекте папку fonts. В нее записываем файлы bringin.woff2 bringin.woff
8. В стили прописываем код
@font-face { font-family: ‘bringinregular’; src: url(‘fonts/bringin.woff2’) format(‘woff2’), url(‘fonts/bringin.woff’) format(‘woff’); font-weight: normal; font-style: normal; }

Выпадающий текст

Пример выпадающей программы курса
http://arsamandi.ru/at/wom_com/

Добавляем:
в стили:

div.hideCont,
 a.hideBtn.hide{
 display:none;
}

В хидер

В код html

Посмотреть программу

ТекстТекстТекстТекстТекстТекст

Длительность аудиокурса 3 часа 1 минута

Адаптивное youtube видео

В html

<div class="videoContainer1">
<div class="videoWrapper">
Код видео iframe
</div>
</div>

В CSS стилях

.videoWrapper {
	position: relative;
	padding-bottom: 56.25%; /* 16:9 */
	padding-top: 5px;
	height: 0;
}
.videoWrapper iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 90%;
	height: 100%;
}

.videoContainer1 {
	width: 640px;
	max-width: 100%;
}

Создаём кнопку «наверх» для сайта

Вариант 1. jQuery
1. Подключаем jQuery

<script src="https://code.jquery.com/jquery-git.min.js"></script>

2. Вставляем код, скрипт и стиль. В стилях указываем свой путь к изображению, его ширину и высоту.

<div id="upbutton"></div>

<script>
    $(window).scroll(function() {
        if ($(this).scrollTop() > 100) {
            if ($('#upbutton').is(':hidden')) {
                $('#upbutton').css({opacity : 1}).fadeIn('slow');
            }
        } else { $('#upbutton').stop(true, false).fadeOut('fast'); }
    });
    $('#upbutton').click(function() {
        $('html, body').stop().animate({scrollTop : 0}, 300);
    });
</script>

<style>
  #upbutton {
    background: url("/images/up.png") no-repeat top left;
    height: 60px;
    width: 60px;
    bottom: 30px;
    right: 30px;
    cursor: pointer;
    display: none;
    position: fixed;
    z-index: 999;
  }
</style>

Вариант 2. Без jQuery

<script>
    var smoothJumpUp = function() {
        if (document.body.scrollTop>0 || document.documentElement.scrollTop>0) {
            window.scrollBy(0,-50);
            setTimeout(smoothJumpUp, 20);
        }
    }
    
    window.onscroll = function() {
      var scrolled = window.pageYOffset || document.documentElement.scrollTop;
      if (scrolled > 100) {
      	document.getElementById('upbutton').style.display = 'block';
      } else {
      	document.getElementById('upbutton').style.display = 'none';
      }
    }
</script>

<a id="upbutton" href="#" onclick="smoothJumpUp(); return false;">
    <img src="/images/up.png" alt="Top" border="none" title="Наверх">
</a>

Кнопки Viber, Whatsapp и Instagram без плагинов

1. Блок с картинками и ссылками вставляем в html файл

<div id="whatsapp-block">
    <a href="https://api.whatsapp.com/send?phone=375291555987" target="_blank" rel="noopener noreferrer"><img src="/uploads/logo-whatsup1.png"></a>
    <a href="https://www.instagram.com/metallbu.ru/?r=nametag" target="_blank" rel="noopener noreferrer"><img src="/uploads/logo-insta.png"></a>
    <a href="viber://chat?number=%2B375291555987"><img src="/wp-content/uploads/viber-icon.png"></a>
</div>

2 Стили вставляем в CSS файл

#whatsapp-block {
    display: block;
    width: 40px;
    height: 40px;
    position: fixed;
    top: 60px;
    right: 0;
    z-index: 110;
}

CSS

No FAQs Found

Прочее

Скачать картинки с помощью wget под ubuntu

1)Команда pwd — узнаем в какой папке находимся
Ответ — /home/tanya

2)ls — смотрим как называется нужный каталог
Видео
Изображения
Загрузки
‘Рабочий стол’
и тд

3)Переход в нужный каталог

cd ./Загрузки/images

4)Создаем файл links.txt и добавляем в него все ссылки.
Размещаем файл в папке /Загрузки/images

5)Запускаем wget

wget -i links.txt -P ~/Загрузки/images

Вызываем Flameshot клавишей PrintScreen

Делаем Flameshot программой по умолчанию для создания скриншотов

  1. Параметры → Клавиатура → Комбинации клавиш → Снимки экрана
  2. Ищем ‘Print’, отвязываем его вызов с помощью Backspace.
  3. Внизу выбираем Дополнительные комбинации клавиш, нажимаем ‘+’.
  4. В поле ‘Имя’ вводим ‘Flameshot’ или ‘PrintScreen’.
  5. В поле команда вводим ‘flameshot gui’.
  6. Устанавливаем ‘Комбинацию клавиш’ и нажимаем на клавиатуре Prnt Scr.

В итоге основным скриншотером в системе становиться Flameshot.

Где находится конфигурационный файл подключения к базам данных в популярных CMS

Где находится конфигурационный файл подключения к базам данных в популярных CMS

В Joomla есть файл configuration.php, в котором есть строчки:

var $host = ‘сервер’;
var $user = ‘имя_пользователя’;
var $db = ‘имя_базы_данных’;
var $password = ‘пароль’;

В WordPress есть файл wp-config.php, в котором есть строчки:

define(‘DB_NAME’, ‘имя_базы_данных’);
define(‘DB_USER’, ‘имя_пользователя’);
define(‘DB_HOST’, ‘сервер’);
define(‘DB_PASSWORD’, ‘пароль’);

В Drupal в папке /site/default/ есть файл settings.php, в котором есть строчка $db_url = ‘mysql://username:password@mysqlhost/databasename’; Где:

username — имя пользователя;
password — пароль;
mysqlhost — сервер базы данных;
databasename — имя базы данных.

В DLE в папке /engine/data/ есть файл dbconfig.php, в котором подключение к базе прописывается в строчках:

define («DBHOST», «сервер»);
define («DBNAME», «имя_базы_данных»);
define («DBUSER», «имя_пользователя»);
define («DBPASS», «пароль»);

В Shop-script подключение настраивается в файле /cfg/connect.inc.php

define(‘DB_HOST’, ‘сервер’);
define(‘DB_USER’, ‘имя_пользователя’);
define(‘DB_PASS’, ‘пароль’);
define(‘DB_NAME’, ‘имя_базы_данных’);

В ShopCMS база данных подключается в файле /core/config/connect.inc.php

define(‘DB_HOST’, ‘сервер’);
define(‘DB_USER’, ‘имя_пользователя’);
define(‘DB_PASS’, ‘пароль’);
define(‘DB_NAME’, ‘имя_базы_данных’);

В WebAsyst всё немного сложнее. Там есть файл /dblist/логин.xml в котором за соединение с базой отвечают следующие параметры:

SQLSERVER=»сервер»
DB_NAME=»имя_базы_данных»
DB_PASSWORD=»пароль»
DB_USER=»имя_пользователя»

а также в файле кеша /temp/scdb/.settings.логин дублируются эти же параметры:

«DB_USER» «имя_пользователя»
«DB_PASS» «пароль»
«DB_NAME» «имя_базы_данных»
«DB_HOST» «сервер»

В PrestaShop подключение настраивается в файле /config/settings.inc.php

define(‘_DB_NAME_’, ‘имя_базы_данных’);
define(‘_DB_SERVER_’, ‘сервер’);
define(‘_DB_USER_’, ‘имя_пользователя’);
define(‘_DB_PASSWD_’, ‘пароль’);

В MODx подключение настраивается в файле /manager/includes/config.inc.php:

$database_server = ‘сервер’;
$database_user = ‘имя_пользователя’;
$database_password = ‘пароль’;
$dbase = ‘имя_базы_данных’;

  В Bitrix подключение настраивается в файле /bitrix/php_interface/dbconn.php:

$DBHost = «сервер»;
$DBLogin = «имя_пользователя»;
$DBPassword = «пароль»;
$DBName = «имя_базы_данных»;

  В PHPShop подключение настраивается в файле phpshop/inc/config.ini:

host = «сервер»;
user_db = «имя_пользователя»;
pass_db = «пароль»;
dbase = «имя_базы_данных»;

В HostCMS конфигурационный файл размещается в modules/core/config/database.php и содержит следующие настройки:

‘driver’ => ‘mysql’,
‘host’ => ‘localhost’,
‘username’ => ‘srv83user’,
‘password’ => ‘megapassword’,
‘database’ => ‘hostcms’

В UMI реквизиты подключения в секции [connections] файла docs/config.ini: Код:

core.host = «адрес_сервера»
core.login = «имя_пользователя»
core.password = «пароль»
core.dbname = «имя_базы_данных»

В phpBB файле docs/config.php:

$dbhost = ‘адрес_сервера’;
$dbname = ‘имя_базы_данных’;
$dbuser = ‘имя_пользователя’;
$dbpasswd = ‘пароль’;

В NetCat соединение с базой данных настраивается в файле docs/vars.inc.php:

$MYSQL_HOST = «адрес_сервера»;
$MYSQL_USER = «имя_пользователя»;
$MYSQL_PASSWORD = «пароль»;
$MYSQL_DB_NAME = «имя_базы_данных»;

В Amiro.CMS настройки соединения с базой данных устанавливаются в файле docs/_local/config.ini.php:

DB_Host = «адрес_сервера»
DB_Database = «имя_базы_данных»
DB_User = «имя_пользователя»
DB_Password = «пароль»

Если ничего из перечисленного не подошло,то посмотрите название базы данных в панели управления на вкладке «Сайты и домены» → «Базы данных» после чего в консоли в директории httpdocs воспользуйтесь командой:

grep -r «название базы» .

Bitrix вывод описания категории

В структуре файлов ищем:
/bitrix/templates/название_шаблона/components/bitrix/catalog/catalog/bitrix/catalog.section/.default
или
/bitrix/components/bitrix/catalog/templates/.default/bitrix/catalog.section.list/.default

Вставляем код:

<?=$arResult["DESCRIPTION"];?>

Ошибка #1064 при импорте базы данных

Ошибка #1064 при импорте базы данных
#1064 — У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около ‘TYPE=InnoDB AUTO_INCREMENT=1’ на строке

Решение:
Открываем базу в текстовом редакторе. Делаем замену:
TYPE на ENGINE