Вопрос Как создать закрытую категорию ?

Protector

Местный житель
Нарушитель
Регистрация
17 Ноя 2013
Сообщения
192
Реакции
22
В общем нужно сделать так, чтобы в одну из категорий доски объявлений мог добавлять объявления только админ или специальный пользователь, созданный админом. Другие пользователи не должны уметь добавлять туда объявления. Есть идеи как это реализовать или в движке такая функция не предусмотрена ?
 

_kot

BEng
Команда форума
Модератор
Регистрация
16 Ноя 2018
Сообщения
194
Реакции
235
В общем нужно сделать так, чтобы в одну из категорий доски объявлений мог добавлять объявления только админ или специальный пользователь, созданный админом. Другие пользователи не должны уметь добавлять туда объявления. Есть идеи как это реализовать или в движке такая функция не предусмотрена ?
Функционала для прав по категориям нету, можно выключить или включить.
Можно спрятать с помщью JS субкатегорию при подаче объявления, которую увидит админ или какой-то юзер, но на фронтенде это будет видно всем.
задача пока не четкая, какой конечный результат ?
 

katarpillar

Писатель
Регистрация
23 Янв 2019
Сообщения
8
Реакции
2
OsclassPay плагин. В нем можно ограничивать доступ к категориям группам пользователей.
 

Protector

Местный житель
Нарушитель
Регистрация
17 Ноя 2013
Сообщения
192
Реакции
22
Функционала для прав по категориям нету, можно выключить или включить.
Можно спрятать с помщью JS субкатегорию при подаче объявления, которую увидит админ или какой-то юзер, но на фронтенде это будет видно всем.
задача пока не четкая, какой конечный результат ?

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

OsclassPay плагин. В нем можно ограничивать доступ к категориям группам пользователей.

К сожалению плагин платный, но попробую найти ломанный вариант на просторах интернета. Я так полагаю нужно поставить чересчур высокую цену на эту категорию, чтобы никто кроме админа не мог добавлять объявления ? Или там чётко реализована возможность ограничить доступ пользователей к некоторым категориям ?
 

_kot

BEng
Команда форума
Модератор
Регистрация
16 Ноя 2018
Сообщения
194
Реакции
235
А можно без программирования и танцев с бубнами, на уровне движка или хотя бы плагина реализовать ? Есть задача сделать так, чтобы в одну из категорий (и её подкатегории) объявления мог добавлять только и исключительно я, больше никто.



К сожалению плагин платный, но попробую найти ломанный вариант на просторах интернета. Я так полагаю нужно поставить чересчур высокую цену на эту категорию, чтобы никто кроме админа не мог добавлять объявления ? Или там чётко реализована возможность ограничить доступ пользователей к некоторым категориям ?
в файле темы function.php
в самом низу добавь это
PHP:
function sz_hide_categiory(){

    $user_id = "10497"; //user with ID who can see sub-category
    $hidden_categoryId = "38"; //sub-category_ID hidden for all users execpt $user_id

    if ($user_id != osc_logged_user_id()){ ?>
        <script>
            $(window).ready(function() {
                $('select[name*="select_2"] option[value="<?php echo $hidden_categoryId; ?>"]').remove();
            });
        </script>

  <?php  }

 }

osc_add_hook('item_form', 'sz_hide_categiory');

это пример для 1 категории
можешь сделать массив и кинуть в цикл массив с категориями
 

Protector

Местный житель
Нарушитель
Регистрация
17 Ноя 2013
Сообщения
192
Реакции
22
в файле темы function.php
в самом низу добавь это
PHP:
function sz_hide_categiory(){

    $user_id = "10497"; //user with ID who can see sub-category
    $hidden_categoryId = "38"; //sub-category_ID hidden for all users execpt $user_id

    if ($user_id != osc_logged_user_id()){ ?>
        <script>
            $(window).ready(function() {
                $('select[name*="select_2"] option[value="<?php echo $hidden_categoryId; ?>"]').remove();
            });
        </script>

  <?php  }

 }

osc_add_hook('item_form', 'sz_hide_categiory');

это пример для 1 категории
можешь сделать массив и кинуть в цикл массив с категориями

Спасибо за код, попробую. Это если так скрыть категорию, то и субкатегории тоже будут автоматически скрыты, верно ?

да, дальше все прячится по убыванию то что нииже суб кат но 2

прячем категории 2 уровеня с массивом
PHP:
function sz_hide_categiory(){

    $user_id = "10497"; // hide category for user with ID
    $cat_array = array(9,10,11,108); // array with Cat Ids
    if ($user_id != osc_logged_user_id()){ ?>
        <script>
            $(window).ready(function() {
        <?php
        foreach ($cat_array as $v){
            echo  "$('select[name*=\"select_2\"] option[value=".$v."]').remove();";
        } ?>
            });
        </script>
    <?php  }

 }


osc_add_hook('item_form', 'sz_hide_categiory');

если много всяких плюшек, лучше делать отдельный плагин

для ниже категорий другой селектор - select_4, select_5 ....

Спасибо огромное, но мне несколько категорий не нужно, достаточно одной категории с субкатегориями.
 

_kot

BEng
Команда форума
Модератор
Регистрация
16 Ноя 2018
Сообщения
194
Реакции
235
Спасибо за код, попробую. Это если так скрыть категорию, то и субкатегории тоже будут автоматически скрыты, верно ?
да, дальше все прячится по убыванию то что нииже суб кат но 2

прячем категории 2 уровеня с массивом
PHP:
function sz_hide_categiory(){

    $user_id = "10497";  //user with ID who can see sub-category
    $cat_array = array(9,10,11,108); // array with Cat Ids
    if ($user_id != osc_logged_user_id()){ ?>
        <script>
            $(window).ready(function() {
        <?php
        foreach ($cat_array as $v){
            echo  "$('select[name*=\"select_2\"] option[value=".$v."]').remove();";
        } ?>
            });
        </script>
    <?php  }

 }


osc_add_hook('item_form', 'sz_hide_categiory');

если много всяких плюшек, лучше делать отдельный плагин

для ниже категорий другой селектор - select_4, select_5 ....
 

katarpillar

Писатель
Регистрация
23 Янв 2019
Сообщения
8
Реакции
2
да, дальше все прячится по убыванию то что нииже суб кат но 2

прячем категории 2 уровеня с массивом
PHP:
function sz_hide_categiory(){

    $user_id = "10497";  //user with ID who can see sub-category
    $cat_array = array(9,10,11,108); // array with Cat Ids
    if ($user_id != osc_logged_user_id()){ ?>
        <script>
            $(window).ready(function() {
        <?php
        foreach ($cat_array as $v){
            echo  "$('select[name*=\"select_2\"] option[value=".$v."]').remove();";
        } ?>
            });
        </script>
    <?php  }

 }


osc_add_hook('item_form', 'sz_hide_categiory');

если много всяких плюшек, лучше делать отдельный плагин

для ниже категорий другой селектор - select_4, select_5
Шикарно! Есть еще интересные доработки у Вас?
 
Сверху