Files
vij/functions.php

305 lines
6.6 KiB
PHP
Raw Normal View History

2021-09-16 12:14:35 +03:00
<?php
2021-09-18 01:30:09 +03:00
define('IMGURL', 'http://img.vetandlife.ru/');
2021-10-31 13:01:31 +03:00
define("COOK_GOLOS", "_ya_id_76543_w");
define("COOK_VALUE", "7895");
2021-11-03 00:08:16 +03:00
define('VIJ_CACHE', ABSPATH.'wp-content/themes/vij/cache/');
define('BASE_VIJ', ABSPATH.'wp-content/themes/vij/');
2021-10-31 13:01:31 +03:00
require get_template_directory().'/src/calend-block.php';
require get_template_directory().'/src/calendar.php';
2021-11-01 02:22:21 +03:00
require ABSPATH.'vendor/masterforweb/db_lite/db_lite.php';
db_config(DB_NAME, 'mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASSWORD);
2021-09-18 01:30:09 +03:00
2021-09-16 12:14:35 +03:00
# регистрируем меню
register_nav_menus(array(
'top' => 'Верхнее меню',
'bottom' => 'Нижнее меню',
'left' => 'Левое меню'
));
2021-09-18 01:30:09 +03:00
# поддержка миниматюр
add_theme_support('post-thumbnails');
2021-09-16 12:14:35 +03:00
2021-09-18 01:30:09 +03:00
# регистрируем размеры миниатюр
add_image_size( 'left-thumb', 95, 84, true ); # для левой колонки
2021-09-27 00:07:02 +03:00
add_image_size( 'moread', 372, 216, true ); # читайте также
2021-10-11 22:29:11 +03:00
add_image_size( 'subscripts', 198, 145, true ); # рассылка
2021-09-27 00:07:02 +03:00
#add scripts
/**
function tutsplus_burger_menu_scripts() {
wp_enqueue_script( 'burger-menu-script', get_stylesheet_directory_uri() . '/scripts/burger-menu.js', array( 'jquery' ) );
}
add_action( 'wp_enqueue_scripts', 'tutsplus_burger_menu_scripts' );
*/
/** add mobile block */
function mob_block($template){
$subclass = " mob-lite";
include get_template_directory().$template;
}
2021-09-30 13:51:38 +03:00
//свой шаблон для категории
add_filter( 'single_template', function ( $single_template ) {
foreach( (array) get_the_category() as $cat ) {
if ( file_exists(TEMPLATEPATH . "/single-{$cat->slug}.php") )
return TEMPLATEPATH . "/single-{$cat->slug}.php";
}
return $single_template;
}, PHP_INT_MAX, 2 );
2021-09-27 00:07:02 +03:00
function kuri_set($name = null, $value = null) {
static $vars = array();
if ($name == null)
return $vars;
if ($value == null){
if(array_key_exists($name, $vars))
return $vars[$name];
}
else
$vars[$name] = $value;
return false;
2021-10-11 22:29:11 +03:00
}
# время для rss
function _U2RFC822($date) {
$datatime = explode(" ",$date);
$dater = explode("-",$datatime[0]);
$timer = explode(":",$datatime[1]);
return date('r', mktime($timer[0], $timer[1], $timer[2], $dater[1], $dater[2], $dater[0]));
}
2021-10-31 13:01:31 +03:00
/**
* плагин перевода в латиницу
*/
add_action( 'save_post', 'lat_slug' );
2021-10-11 22:29:11 +03:00
2021-10-31 13:01:31 +03:00
function lat_slug( $post_id ){
2021-10-11 22:29:11 +03:00
2021-10-31 13:01:31 +03:00
if ($post_id < 15789)
return; // залитое старье не трогаем
2021-10-11 22:29:11 +03:00
2021-10-31 13:01:31 +03:00
// только публикованные
if ( wp_is_post_revision( $post_id ) || get_post($post_id)->post_status != 'publish' )
return;
2021-10-11 22:29:11 +03:00
$post = get_posts($post_id);
2021-10-31 13:01:31 +03:00
$name = urldecode($post[0]->post_name);
2021-10-11 22:29:11 +03:00
2021-10-31 13:01:31 +03:00
if (isContainsRussianLetters($name)) { //если есть русские буковки
$title = express_slug($post[0]->post_title);
$latname = vij_slug($title);
remove_action( 'save_post', 'lat_slug' ); // избегаем зацикливания
wp_update_post( array( 'ID' => $post_id, 'post_name' => $latname ) );
add_action( 'save_post', 'lat_slug' );
}
2021-10-11 22:29:11 +03:00
}
function vij_slug($slug) {
$replace = array(
'А' => 'A', 'а' => 'a',
'Б' => 'B', 'б' => 'b',
'В' => 'V', 'в' => 'v',
'Г' => 'G', 'г' => 'g',
'Д' => 'D', 'д' => 'd',
'Е' => 'E', 'е' => 'e',
'Ё' => 'Jo', 'ё' => 'jo',
'Ж' => 'Zh', 'ж' => 'zh',
'З' => 'Z', 'з' => 'z',
'И' => 'I', 'и' => 'i',
'Й' => 'J', 'й' => 'j',
'К' => 'K', 'к' => 'k',
'Л' => 'L', 'л' => 'l',
'М' => 'M', 'м' => 'm',
'Н' => 'N', 'н' => 'n',
'О' => 'O', 'о' => 'o',
'П' => 'P', 'п' => 'p',
'Р' => 'R', 'р' => 'r',
'С' => 'S', 'с' => 's',
'Т' => 'T', 'т' => 't',
'У' => 'U', 'у' => 'u',
'Ф' => 'F', 'ф' => 'f',
'Х' => 'H', 'х' => 'h',
'Ц' => 'C', 'ц' => 'c',
'Ч' => 'Ch', 'ч' => 'ch',
'Ш' => 'Sh', 'ш' => 'sh',
'Щ' => 'Shh', 'щ' => 'shh',
'Ъ' => '', 'ъ' => '',
'Ы' => 'Y', 'ы' => 'y',
'Ь' => '', 'ь' => '',
'Э' => 'E', 'э' => 'e',
'Ю' => 'Ju', 'ю' => 'ju',
'Я' => 'Ya', 'я' => 'ya'
);
2021-10-31 13:01:31 +03:00
return strtr($slug, $replace);
}
function isContainsRussianLetters($text = false) {
if ($text !== "") {
$len = strlen($text)-1;
for ($i=0;$i<=$len;$i++) {
if (($i < $len) and (((($ord = ord(substr($text,$i,1))) == 208)
and (($ord2 = ord(substr($text,($i+1),1))) == 129)
or (($ord2 >= 144) and ($ord2 <= 191)))
or ((($ord = ord(substr($text,$i,1))) == 209)
and ($ord2 == 145) or (($ord2 >= 128)
and ($ord2 <= 143))))) {
//Поиск русских букв в UTF-8
return true;
} elseif (((($ord = ord(substr($text,$i,1))) >= 192)
and (($ord <= 255)) or ($ord == 168) or ($ord == 184))) {
//Поиск русских букв в ANSI
return true;
}
}
}
return false;
}
2021-10-11 22:29:11 +03:00
2021-10-31 13:01:31 +03:00
function express_slug($value){
2021-10-11 22:29:11 +03:00
2021-10-31 13:01:31 +03:00
$result = mb_strtolower(trim($value));
$arr = [
'$' => '',
' ' => '-',
'.' => '',
'+' => '',
'!' => '',
'*' => '',
'(' => '',
')' => '',
',' => '-',
'{' => '',
'}' => '',
'|' => '-',
'^' => '',
'~' => '',
'[' => '-',
']' => '-',
'`' => '',
'<' => '',
'>' => '',
'#' => '',
'%' => '',
'"' => '',
';' => '',
'/' => '',
'?' => '',
':' => '',
'@' => '',
'&' => '',
'=' => '',
'.' => '',
'«' => '',
'»' => '',
"'"=> ''
];
$result = strtr($result, $arr);
return $result;
}
function eventdate($val){
$posT = strpos($val, 'T');
2021-10-11 22:29:11 +03:00
2021-10-31 13:01:31 +03:00
if ($posT)
2021-10-11 22:29:11 +03:00
2021-10-31 13:01:31 +03:00
return $val;
2021-10-11 22:29:11 +03:00
}
2021-10-31 13:01:31 +03:00
/**
*
*/
2021-10-11 22:29:11 +03:00
2021-10-31 13:01:31 +03:00
if (!function_exists('view')){
function view ($view, $data = array(), $layer = null){
2021-10-11 22:29:11 +03:00
ob_start();
if (is_array($data))
extract($data);
if ($layer !== null){
$content = view($view, $data);
require $layer;
}
else
require $view;
return trim(ob_get_clean());
2021-10-31 13:01:31 +03:00
}
2021-11-01 02:22:21 +03:00
}
function arr_to_in($items){
$in = array();
foreach ($items as $item){
$in[] = $item['post_id'];
}
return $in;
}
function str_to_in($items){
$in = '';
foreach ($items as $item){
if ($in !== '') {
$in .= ',';
}
$in .= $item['post_id'];
}
return $in;
}