Публикация в группе: Otshelnik-Fm - мои работы (код, плагины, дополнения, статьи и руководства)

Категории группы: Работаем с Wp-Recall

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

По прайм форуму уже есть тема на форуме с сниппетами - пока оттуда я ничего трогать не буду.

Хуки форума для вывода в определенном месте:

В шапке форума:

add_action('pfm_header','ваша-функция');

В подвале форума:

add_action('pfm_footer','ваша-функция');

 


Выведем кол-во пользователей онлайн:

Если у вас включено дополнение Real Time Users то мы можем включить его в подвал форума (WP-Recall версии 16.6.14)
Добавьте в ваш functions.php следующий код:

// выведем кол-во юзеров от допа Real Time User
function otfm_prime_real_time_user(){
    if(rcl_exist_addon('real-time-users')){
        echo '<div style="display:flex;font-size:12px;"><span style="margin-right: 3px;">Пользователей на сайте:</span><div class="realtimeuserscounter"></div></div>';
    }
}
add_action('pfm_footer','otfm_prime_real_time_user',8); //срабатывает в подвале форума

Результат: https://yadi.sk/i/4rV1A2v-3Mrz38

 


Проверить что мы на странице форума:

if( is_prime_forum() ){
    // мы на форуме
}

тут важно упомянуть: что функция is_prime_forum определена в дополнении прайм форума - поэтому если доп отключим - получим фатальную ошибку. Перед этой проверкой выполнить проверку что доп активирован:

if( rcl_exist_addon('prime-forum') ) // активирован этот доп

 


Покажем кнопку последних тем форума в реколлбаре:

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

// кнопка обновленных тем форума в реколлбаре
function otfm_add_recallbar_prime_button(){
    if(!rcl_exist_addon('prime-forum')) return false; // прайм форум не активирован
    
    rcl_enqueue_script('pfm-scripts', RCL_URL.'add-on/prime-forum/js/scripts.js');              // скрипт
    rcl_enqueue_style('ftf-style', RCL_URL.'add-on/prime-forum/themes/prime-first/style.css');  // стили

    rcl_dialog_scripts();   // скрипт и стили модального окна
    
    $content = '<div class="rcb_icon">';
        $content .= '<a href="#" class="topic-action action-get_last_updated_topics" onclick="pfm_ajax_action({&quot;item_type&quot;:&quot;primary&quot;,&quot;method&quot;:&quot;get_last_updated_topics&quot;});return false;">';
            $content .= '<i class="fa fa-bell-o" aria-hidden="true"></i>';
            $content .= '<div class="rcb_hiden"><span>Новое на форуме</span></div>';
        $content .= '</a>';
    $content .= '</div>';
 
    echo $content;
}
add_action('rcl_bar_print_icons','otfm_add_recallbar_prime_button');

- проверяем что сам доп активирован. Загружаем скрипт модального окна и сам вызов. Иконку и текст сами поменяйте на необходимую.
Результат:

Теперь у вас полезная кнопка на всех страницах вашего сайта.

С версии реколл 16.6.15 вы можете выводить не только справа кнопки в реколлбаре, но и слева. Если вам нужно вывести кнопку слева используйте хук (action) rcl_bar_left_icons

Все сниппеты для реколлбара - тут


Выделим что это сообщение автора темы:

Сообщение автора топика можно выделить - у него есть класс в верстке https://yadi.sk/i/Jngo0-S63N3bKk
Применим css псевдокласс и выделим автора топика (ниже css-сниппет)

#prime-forum .prime-post.topic-author::before {
    background: rgba(170, 209, 219, 0.85);
    bottom: 0;
    color: #000;
    content: "Автор темы";
    font-size: 12px;
    left: 0;
    line-height: 12px;
    padding: 3px 5px;
    position: absolute;
}

Результат:


Выведем в подвале форума кнопки входа:

Внимание! Данная форма входа и регистрации будет выводиться если у вас в основных настройках плагина стоит вывод всплывающей формы входа. Но ничто вам не мешает заменить вывод кнопок на ссылки к вашей форме входа.

Выведем 2 кнопки для гостей в подвале форума: Вход и Регистрация

function otfm_add_float_form_sign(){
    global $user_ID;
    if ($user_ID) return false; // юзер залогинен

    $out = '<a href="#" class="recall-button rcl-login"><span>Вход</span></a>';
    $out .= '<a href="#" class="recall-button rcl-register"><span>Регистрация</span></a>';
    echo $out;
}
add_action('pfm_footer','otfm_add_float_form_sign',400);

Все сниппеты к форме входа и регистрации здесь


Отключим отправку письма автору темы о новом комментарии на форуме

Я бы не советовал этого делать, но если вам для своих целей нужно чтобы автор темы не получал писем о новых комментариях - вот сниппет:

remove_action('pfm_add_post','pfm_send_mail_topic_author',10);

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


Автору темы на форуме присылать уведомления о новых комментариях к ней - через доп Rcl-Notification

Доп Rcl-Notification у вас должен быть активен

function otfm_prime_post_notification($post_id){
    $post = pfm_get_post($post_id);    
    $topic = pfm_get_topic($post->topic_id);

    if($topic->user_id == $post->user_id) return false; // если автор топика отвечает сам, то не шлем письмо иначе шлем
    
    if(!rcl_exist_addon('notification')) return false; // доп уведомлений выключен

    $args = array(
        'user_id'=>$topic->user_id,
        'notice_subject'=> 'Комментарий на форуме',
        'notice_content'=>'Пользователь <a href="'.get_author_posts_url($post->user_id).'">'.get_the_author_meta('display_name',$post->user_id).'</a> оставил <a href="'.pfm_get_post_permalink($post->post_id).'">комментарий</a> к вашей теме на форуме "'.$topic->topic_name.'"'
    );

    rcl_add_notification($args);
}
add_action('pfm_add_post', 'otfm_prime_post_notification');

- теперь автор будет получать уведомления через этот доп. Скриншот: https://yadi.sk/i/alkiAvgA3Qxv2y


XML карта для PrimeForum

Создание карты форума для поисковых систем я рассмотрел в этом уроке


Откроем вкладку Форум в ЛК всем пользователям

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

// откроем вкладку форум всем
function otfm_open_prime_tab($tabs){
    if($tabs['id'] != 'prime-forum') return $tabs;
    
    $tabs['public'] = 1; // откроем всем

    return $tabs;
}
add_filter('rcl_pre_output_tab','otfm_open_prime_tab');

 


Пока всё...

Сниппеты (функции и стили) вы можете вставлять в альфа фиксатор

p.s Еще полезное:
Сниппеты WP-Recall
Знаете ли вы что… Факты о плагине WP-Recall и единая база для разработки под WP-Recall. Сервис CodeSeller.ru — Секреты, советы, рекомендации.

9

Автор публикации

не в сети 1 день

Владимир (Otshelnik-Fm)

4 357
Перегорел
Почитать: https://otshelnik-fm.ru/post-group/goodbye-open-source/
Комментарии: 2194Публикации: 245Регистрация: 27-01-2013Продаж/Покупок: 0/0