Домой Каталог: Дополнения WP-Recall PrimeForum Prime forum - настройка ссылок в footer
36ответ(ов) в теме
QbiQ
не в сети 5 лет
На сайте с 04.01.2018
Участник
Тем 19
Сообщения 106
1
16:59
Версия WP-Recall: 16.9.4
Версия дополнения: 1.4.0

Всем привет, сегодня заметил, что при заходе в тему форума, подменяются ссылки в подвале сайта. Как можно убрать данные ссылки и оставить те что по умолчанию уже выставлены. Пациент faqyourcoin. com.
prime forum ссылки в футуре

0
Вова (Otshelnik-Fm)
не в сети 2 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
2
17:05

Здравствуйте.
Где прямая ссылка на проблему? квесты - найди мой форум - не приветствуются

0
QbiQ
не в сети 5 лет
На сайте с 04.01.2018
Участник
Тем 19
Сообщения 106
3
17:07

Otshelnik-Fm сказал(а)
Здравствуйте.
Где прямая ссылка на проблему? квесты - найди мой форум - не приветствуются

😳

Вы не можете просматривать опубликованные ссылки

com/forum

0
Вова (Otshelnik-Fm)
не в сети 2 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
4
17:10

Копайте в сторону страницы на которой у вас выводится шорткод для прайм форума. И шаблон этой страницы настраивайте.

На ВП шаблоне Twenty - повторяется это?

0
Вова (Otshelnik-Fm)
не в сети 2 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
5
17:15

Совет выше неверный (кроме ВП шаблона твенти). Подвал выше был бы и на главной форума и в теме одинаков.
Ссылки выводятся в подвале как произвольное меню? Значит копать надо туда

0
QbiQ
не в сети 5 лет
На сайте с 04.01.2018
Участник
Тем 19
Сообщения 106
6
17:15

Otshelnik-Fm сказал(а)
Копайте в сторону страницы на которой у вас выводится шорткод для прайм форума. И шаблон этой страницы настраивайте.

На ВП шаблоне Twenty - повторяется это?

На Twenty работает. Блин не все так просто оказалось, благодарю, буду дергать автора темы. Как то странно они все таки цепляются только в темах форума.

0
QbiQ
не в сети 5 лет
На сайте с 04.01.2018
Участник
Тем 19
Сообщения 106
7
17:16

Otshelnik-Fm сказал(а)
Совет выше неверный (кроме ВП шаблона твенти). Подвал выше был бы и на главной форума и в теме одинаков.
Ссылки выводятся в подвале как произвольное меню? Значит копать надо туда

Да ссылки выводятся как произвольное меню

0
Вова (Otshelnik-Fm)
не в сети 2 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
8
17:17

Там что-то с произвольным меню какие-то накладки идут

Вы не можете просматривать опубликованные ссылки
0
QbiQ
не в сети 5 лет
На сайте с 04.01.2018
Участник
Тем 19
Сообщения 106
9
17:18

Эммм, сейчас попробую ссылки прописать, а то там решетки стоят, может поможет

0
Вова (Otshelnik-Fm)
не в сети 2 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
10
17:18

QbiQ сказал(а)
Да ссылки выводятся как произвольное меню

- вот это и странно что так себя ведет. Но почему тогда остальные произвольные меню не сбрасываются? Вопрос.

0
QbiQ
не в сети 5 лет
На сайте с 04.01.2018
Участник
Тем 19
Сообщения 106
11
17:22

Otshelnik-Fm сказал(а)

QbiQ сказал(а)
Да ссылки выводятся как произвольное меню

- вот это и странно что так себя ведет. Но почему тогда остальные произвольные меню не сбрасываются? Вопрос.

Прописал ссылки, не помогло.(((

0
Вова (Otshelnik-Fm)
не в сети 2 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
12
17:28

Если обратите внимание - ссылки работают как надо

Вы не можете просматривать опубликованные ссылки

- а вот текст сбрасывается. Какой-то конфликт получается. У меня идей нет

0
Вова (Otshelnik-Fm)
не в сети 2 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
13
17:32

Версия WP-Recall: 16.9.4 - надо обновиться. Хотя в обновлении вроде работа прайм форума не затрагивалась.
Странно что текст в подвале приобретает имя темы в которой находишься.

Сторонние плагины отключали? Может плагин сео влияет?

1
QbiQ
не в сети 5 лет
На сайте с 04.01.2018
Участник
Тем 19
Сообщения 106
14
17:33

Otshelnik-Fm сказал(а)
Если обратите внимание - ссылки работают как надо

Вы не можете просматривать опубликованные ссылки

- а вот текст сбрасывается. Какой-то конфликт получается. У меня идей нет

Я тоже немного озадачен, но тут получается плагин prime forum срабатывает и подхватывается как то, короче буду писать автору темы, посмотрим может он че скажет

0
Вова (Otshelnik-Fm)
не в сети 2 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
15
17:35

Еще из вариантов - отключить все плагины кроме реколл, отключить все дополнения кроме прайм форума и проверить - исчезнет - значит виновник в каком то из них

0
QbiQ
не в сети 5 лет
На сайте с 04.01.2018
Участник
Тем 19
Сообщения 106
16
17:59

Чет жесть какая то, все таки автору напишу, может поможет чем. Благодарю за помощь!

0
garry
не в сети 7 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
17
18:29

Оффтоп
Я знаю такие темки, точнее возможно такие. Не так давно встречал у одного приятеля, так там автор засунул целиком плагин который работает по принципу виджетов последних постов и формирует меню исходя из страницы где находишься. Причем всунуть то всунул, а вот настройки не дописал, хотя там они были и просто не подключил. ))

Сорри за оффтоп.

0
QbiQ
не в сети 5 лет
На сайте с 04.01.2018
Участник
Тем 19
Сообщения 106
18
19:11

garry сказал(а)

Оффтоп
Я знаю такие темки, точнее возможно такие. Не так давно встречал у одного приятеля, так там автор засунул целиком плагин который работает по принципу виджетов последних постов и формирует меню исходя из страницы где находишься. Причем всунуть то всунул, а вот настройки не дописал, хотя там они были и просто не подключил. ))

Сорри за оффтоп.

garry хотел Вам в чат написать, но раз Вы уж здесь появились, спрошу. У Вас на сайте Выводится автор публикации с данными (соц сети, обратиться в пм, подписка на автора) Вы их сами вывели, или же с помощью плагина?

0
garry
не в сети 7 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
19
19:20

QbiQ сказал(а)

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

Лучше в личку или у меня на сайте, тут тема по конкретному вопросу от допа.

Редакции сообщения
09.01.2018 19:22garryПричина: не указано
09.01.2018 19:22garryПричина: не указано
09.01.2018 19:22garryПричина: не указано
0
QbiQ
не в сети 5 лет
На сайте с 04.01.2018
Участник
Тем 19
Сообщения 106
20
08:44

QbiQ сказал(а)
Чет жесть какая то, все таки автору напишу, может поможет чем. Благодарю за помощь!

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

After doing some investigation. It seems the menus problem causing WP Recall plugin. In this case, maybe that plugin have a certain function that hooks the menu functionality. You may need to contact the plugin author regarding this issue. Please confirm.

Thank you

Перевод дедушки гугл: "После некоторого расследования. Кажется, что проблема меню вызывает WP Recall плагин. В этом случае, возможно, этот плагин имеет определенную функцию, которая перехватывает функциональность меню. Возможно, вам придется обратиться к автору плагина относительно этой проблемы. Пожалуйста подтвердите. спасибо"
Есть у кого какие идеи и предложения. В какую сторону рыть. И может кто подсказать в Wp recall какой из файлов отвечает за вывод меню?

0
garry
не в сети 7 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
21
08:47

Лучше идти от обратного, что в теме отвечает за меню. Если бы в плагине были такие проблемы с менюхами, подозреваю тут бы на форуме было не менее 3000 подобных тем.

2
QbiQ
не в сети 5 лет
На сайте с 04.01.2018
Участник
Тем 19
Сообщения 106
22
09:16

garry сказал(а)
Лучше идти от обратного, что в теме отвечает за меню. Если бы в плагине были такие проблемы с менюхами, подозреваю тут бы на форуме было не менее 3000 подобных тем.

Благодарю! Вы предполагаете, что все таки проблема краится в теме?

0
garry
не в сети 7 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
23
09:26

QbiQ сказал(а)
Вы предполагаете, что все таки проблема краится в теме?

Как один вариантов, так как мне отсюда точно не видно как в файлах темы организовано меню.
Откройте файлы и посмотрите где оно у вас формируется и как выводится.

0
QbiQ
не в сети 5 лет
На сайте с 04.01.2018
Участник
Тем 19
Сообщения 106
24
09:32

Вот я нашел один из файлов в теме. Вроде как оно выводит менюшку.

<?php
/**
 * @author : Jegtheme
 */
namespace JNewsMenu;

use JNewsModuleModuleQuery;

/**
 * Class JNews Menu
 */
Class Menu
{
    /**
     * @var Menu
     */
    private static $instance;

    /**
     * @var array
     *
     * Menu location
     */
    protected $menu_location;

    /**
     * @var MegaMenu
     */
    protected $mega_class;

    /**
     * @return Menu
     */
    public static function getInstance()
    {
        if (null === static::$instance)
        {
            static::$instance = new static();
        }
        return static::$instance;
    }

    private function __construct()
    {
        $this->menu_location = array(
            'top_navigation'        => esc_html__('Top Bar Navigation', 'jnews'),
            'navigation'            => esc_html__('Main Navigation', 'jnews'),
            'mobile_navigation'     => esc_html__('Mobile Navigation', 'jnews'),
            'footer_navigation'     => esc_html__('Footer Navigation', 'jnews'),
        );

        $this->mega_class = new MegaMenu();
        $this->setup_hook();
    }


    public function setup_hook()
    {
        add_action( 'after_setup_theme', array($this, 'register_menu') );
    }


    public function register_menu()
    {
        add_theme_support( 'menus' );
        register_nav_menus($this->menu_location);
    }

    public function top_navigation()
    {
        wp_nav_menu(
            array(
                'theme_location'    => 'top_navigation',
                'container'         => 'ul',
                'menu_class'        => 'jeg_menu jeg_top_menu',
                'depth'             => 3,
                'fallback_cb'       => 'jnews_fallback_cb_top_navigation',
                'items_wrap'        => '<ul class="%2$s">%3$s</ul>',
                'echo'              => true
            )
        );
    }

    public function mobile_navigation()
    {
        wp_nav_menu(
            array(
                'theme_location'    => 'mobile_navigation',
                'container'         => 'ul',
                'menu_class'        => 'jeg_mobile_menu',
                'depth'             => 3,
                'fallback_cb'       => 'jnews_fallback_cb_mobile_navigation',
                'items_wrap'        => '<ul class="%2$s">%3$s</ul>',
                'echo'              => true
            )
        );
    }

    public function footer_navigation()
    {
        wp_nav_menu(
            array(
                'theme_location'    => 'footer_navigation',
                'container'         => 'ul',
                'menu_class'        => 'jeg_menu_footer',
                'depth'             => 1,
                'fallback_cb'       => 'jnews_fallback_cb_footer_navigation',
                'items_wrap'        => '<ul class="%2$s">%3$s</ul>',
                'echo'              => true
            )
        );
    }

    public function main_navigation()
    {
        $menu_class = array('jeg_menu', 'jeg_main_menu');

        $menu_class[] = get_theme_mod('jnews_header_menu_style', 'jeg_menu_style_1');

        add_filter('pre_wp_nav_menu', array($this, 'jeg_pre_wp_nav_menu'), null, 2);

        wp_nav_menu(
            array(
                'theme_location'    => 'navigation',
                'container_class'   => 'jeg_nav_item jeg_mainmenu_wrap',
                'menu_class'        => implode(' ', $menu_class),
                'depth'             => 0,
                'fallback_cb'       => 'jnews_fallback_cb_navigation',
                'items_wrap'        => '<ul class="%2$s">%3$s</ul>',
                'echo'              => true
            )
        );

        remove_filter('pre_wp_nav_menu', array($this, 'jeg_pre_wp_nav_menu'), null);
    }

    public function jeg_pre_wp_nav_menu($nav_menu, $args)
    {
        static $menu_id_slugs = array();
        $args->walker = new MenuWalker();

        // Get the nav menu based on the requested menu
        $menu = wp_get_nav_menu_object( $args->menu );

        // Get the nav menu based on the theme_location
        if ( ! $menu && $args->theme_location && ( $locations = get_nav_menu_locations() ) && isset( $locations[ $args->theme_location ] ) )
            $menu = wp_get_nav_menu_object( $locations[ $args->theme_location ] );

        // get the first menu that has items if we still can't find a menu
        if ( ! $menu && !$args->theme_location ) {
            $menus = wp_get_nav_menus();
            foreach ( $menus as $menu_maybe ) {
                if ( $menu_items = wp_get_nav_menu_items( $menu_maybe->term_id, array( 'update_post_term_cache' => false ) ) ) {
                    $menu = $menu_maybe;
                    break;
                }
            }
        }

        if ( empty( $args->menu ) ) {
            $args->menu = $menu;
        }

        // If the menu exists, get its items.
        if ( $menu && ! is_wp_error($menu) && !isset($menu_items) )
            $menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'update_post_term_cache' => false ) );

        /*
         * If no menu was found:
         *  - Fall back (if one was specified), or bail.
         *
         * If no menu items were found:
         *  - Fall back, but only if no theme location was specified.
         *  - Otherwise, bail.
         */
        if ( ( !$menu || is_wp_error($menu) || ( isset($menu_items) && empty($menu_items) && !$args->theme_location ) )
            && isset( $args->fallback_cb ) && $args->fallback_cb && is_callable( $args->fallback_cb ) )
            return call_user_func( $args->fallback_cb, (array) $args );

        if ( ! $menu || is_wp_error( $menu ) )
            return false;

        $nav_menu = $items = '';

        $show_container = false;
        if ( $args->container ) {
            /**
             * Filters the list of HTML tags that are valid for use as menu containers.
             *
             * @since 3.0.0
             *
             * @param array $tags The acceptable HTML tags for use as menu containers.
             *                    Default is array containing 'div' and 'nav'.
             */
            $allowed_tags = apply_filters( 'wp_nav_menu_container_allowedtags', array( 'div', 'nav' ) );
            if ( is_string( $args->container ) && in_array( $args->container, $allowed_tags ) ) {
                $show_container = true;
                $class = $args->container_class ? ' class="' . esc_attr( $args->container_class ) . '"' : ' class="menu-'. $menu->slug .'-container"';
                $id = $args->container_id ? ' id="' . esc_attr( $args->container_id ) . '"' : '';
                $nav_menu .= '<'. $args->container . $id . $class . '>';
            }
        }

        // Set up the $menu_item variables
        _wp_menu_item_classes_by_context( $menu_items );

        $sorted_menu_items = $menu_items_with_children = array();
        foreach ( (array) $menu_items as $menu_item ) {
            $sorted_menu_items[ $menu_item->menu_order ] = $menu_item;
            if ( $menu_item->menu_item_parent )
                $menu_items_with_children[ $menu_item->menu_item_parent ] = true;
        }

        // Add the menu-item-has-children class where applicable
        if ( $menu_items_with_children ) {
            foreach ( $sorted_menu_items as &$menu_item ) {
                if ( isset( $menu_items_with_children[ $menu_item->ID ] ) )
                    $menu_item->classes[] = 'menu-item-has-children';
            }
        }

        unset( $menu_items, $menu_item );

        /**
         * Filters the sorted list of menu item objects before generating the menu's HTML.
         *
         * @since 3.1.0
         *
         * @param array  $sorted_menu_items The menu items, sorted by each menu item's menu order.
         * @param object $args              An object containing wp_nav_menu() arguments.
         */
        $sorted_menu_items = apply_filters( 'wp_nav_menu_objects', $sorted_menu_items, $args );

        $items .= walk_nav_menu_tree( $sorted_menu_items, $args->depth, $args );
        unset($sorted_menu_items);

        // Attributes
        if ( ! empty( $args->menu_id ) ) {
            $wrap_id = $args->menu_id;
        } else {
            $wrap_id = 'menu-' . $menu->slug;
            while ( in_array( $wrap_id, $menu_id_slugs ) ) {
                if ( preg_match( '#-(d+)$#', $wrap_id, $matches ) )
                    $wrap_id = preg_replace('#-(d+)$#', '-' . ++$matches[1], $wrap_id );
                else
                    $wrap_id = $wrap_id . '-1';
            }
        }
        $menu_id_slugs[] = $wrap_id;

        $wrap_class = $args->menu_class ? $args->menu_class : '';

        /**
         * Filters the HTML list content for navigation menus.
         *
         * @since 3.0.0
         *
         * @see wp_nav_menu()
         *
         * @param string $items The HTML list content for the menu items.
         * @param object $args  An object containing wp_nav_menu() arguments.
         */
        $items = apply_filters( 'wp_nav_menu_items', $items, $args );
        /**
         * Filters the HTML list content for a specific navigation menu.
         *
         * @since 3.0.0
         *
         * @see wp_nav_menu()
         *
         * @param string $items The HTML list content for the menu items.
         * @param object $args  An object containing wp_nav_menu() arguments.
         */
        $items = apply_filters( "wp_nav_menu_{$menu->slug}_items", $items, $args );

        // Don't print any markup if there are no items at this point.
        if ( empty( $items ) )
            return false;

        $nav_menu .= sprintf( $args->items_wrap, esc_attr( $wrap_id ), esc_attr( $wrap_class ), $items );
        unset( $items );

        if ( $show_container )
            $nav_menu .= '</' . $args->container . '>';

        /**
         * Filters the HTML content for navigation menus.
         *
         * @since 3.0.0
         *
         * @see wp_nav_menu()
         *
         * @param string $nav_menu The HTML content for the navigation menu.
         * @param object $args     An object containing wp_nav_menu() arguments.
         */
        $nav_menu = apply_filters( 'wp_nav_menu', $nav_menu, $args );

        return $nav_menu;
    }

    /**
     * @return array
     *
     * get menu location
     */
    public function get_menu_location()
    {
        return $this->menu_location;
    }


    public function mega_menu_category_1_article()
    {
        if(isset($_POST['cat_id']))
        {
            $category = $_POST['cat_id'];

            $article =
                "<div data-cat-id="" . esc_attr($category) . "" data-load-status="loaded" class="jeg_newsfeed_container">
                    <div class="newsfeed_carousel owl-carousel with_subcat">
                        " . Menu::build_article_category_1($category, $_REQUEST['number']) . "
                    </div>
                </div?";

            echo jnews_sanitize_output($article);
        }
        exit;
    }


    public function mega_menu_category_2_article()
    {
        if(isset($_POST['cat_id']))
        {
            $category = $_POST['cat_id'];

            $article =
                "<div data-cat-id="" . esc_attr($category) . "" data-load-status="loaded" class="jeg_newsfeed_container">
                    <div class="newsfeed_static  with_subcat">
                        " . Menu::build_article_category_2($category, $_REQUEST['number']) . "
                    </div>
                </div?";

            echo jnews_sanitize_output($article);
        }
        exit;
    }


    public static function build_article_category_1($category, $number)
    {
        $article_output = '';

        $results = ModuleQuery::do_query(array(
            'post_type'                 => 'post',
            'sort_by'                   => 'latest',
            'post_offset'               => 0,
            'include_category'          => $category,
            'number_post'               => $number,
            'pagination_number_post'    => $number,
        ));

        foreach($results['result'] as $result)
        {
            $thumbnail = apply_filters('jnews_image_lazy_owl', $result->ID, 'jnews-360x180');
            $additional_class = (!has_post_thumbnail( $result->ID )) ? 'no_thumbnail' : '';

            $article_output .=
                "<div class="jeg_newsfeed_item {$additional_class}">
                    <div class="jeg_thumb">
                        " . jnews_edit_post( $result->ID ) . "
                        <a href="" . get_the_permalink($result) . "">" . $thumbnail . "</a>
                    </div>
                    <h3 class="jeg_post_title"><a href="" . get_the_permalink($result) . "">" . get_the_title($result) . "</a></h3>
                </div>";

        }


        return $article_output;
    }

    public static function build_article_category_2($category, $number)
    {
        $article_output = '';

        $results = ModuleQuery::do_query(array(
            'post_type'                 => 'post',
            'sort_by'                   => 'latest',
            'post_offset'               => 0,
            'include_category'          => $category,
            'number_post'               => $number,
            'pagination_number_post'    => $number,
        ));

        foreach($results['result'] as $result)
        {
            $thumbnail = apply_filters('jnews_image_thumbnail', $result->ID, 'jnews-360x180');
            $additional_class = (!has_post_thumbnail( $result->ID )) ? 'no_thumbnail' : '';

            $article_output .=
                "<div class="jeg_newsfeed_item {$additional_class}">
                    <div class="jeg_thumb">
                        " . jnews_edit_post( $result->ID ) . "
                        <a href="" . get_the_permalink($result) . "">" . $thumbnail . "</a>
                    </div>
                    <h3 class="jeg_post_title"><a href="" . get_the_permalink($result) . "">" . get_the_title($result) . "</a></h3>
                </div>";
        }


        return $article_output;
    }
}

0
garry
не в сети 7 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
25
09:41

Наверно это ваше верхние меню, там понапихано всего.
Внизу больше хлебные крошки напоминает.

0
garry
не в сети 7 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
26
09:54

В вашей темке сайта есть шаблон страница page-forum, может он подцепляется и что то там с bbpres происходит. Выберите другой шаблон для страницы с шорткодом форума и посмотрите.

Редакции сообщения
12.01.2018 09:55garryПричина: не указано
0
QbiQ
не в сети 5 лет
На сайте с 04.01.2018
Участник
Тем 19
Сообщения 106
27
09:57

garry сказал(а)
В вашей темке сайта есть шаблон страница page-forum, может он подцепляется и что то там с bbpres происходит. Выберите другой шаблон для страницы с шорткодом форума и посмотрите.

Да благодарю, попробую а шаблон для bb press в файлах я удалил, тоже на него думал, не помогло

0
garry
не в сети 7 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
28
10:01

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

0
Вова (Otshelnik-Fm)
не в сети 2 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
29
10:06

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

1
QbiQ
не в сети 5 лет
На сайте с 04.01.2018
Участник
Тем 19
Сообщения 106
30
10:07

garry сказал(а)
Темка серьезная по насыщенности, одних плагинов в ней больше 20 штук и куча всего, но думаю найдете.
Ищите почему меню превращается, названия в нем в хлебные крошки.

Благодарю, страницу с шорткодом поменял, не помогло. Хлебные крошки так же отключал, тоже не помогает)). Походу так и придется автора темы пытать. Так как уже даже незнаю откуда подхватываются названия для ссылок, есть подозрения на title. Но я не силен пока в программирование, поэтому своими силами наврятли разберусь

0
Вы не имеете права на публикацию сообщений в этой теме