Настройка прав доступа к каталогам

Тема в разделе "Модули Joomla для Virtuemart", создана пользователем pagemaster, 16.01.2014.

  1. Offline

    pagemaster Недавно здесь

    Регистрация:
    06.11.2011
    Сообщения:
    9
    Симпатии:
    0
    Пол:
    Мужской
    Здравствуйте!

    Возникла проблема: не могу найти как реализовать права доступа к категориям.
    К примеру у меня есть каталоги в Virtuemart 2 "Розничная торговля" и "Оптовая торговля". К розничной торговли имеют доступ все группы пользователей. Как реализовать чтобы к категории "Оптовая торговля" имели доступ только определенные группы пользователей? Но при этом категория должна быть видна, то есть должны скрываться подкатегории с товарами, которые становятся доступными только после авторизации для определенных пользователей.

    Думаю будет понятней если посмотрите сайт: http://avk.kh.ua/katalog-produktsii
    или скриншот: 13iwx8109317.jpg

    Пытался сделать через пункты меню (там есть настройка прав доступа от Joomla 2.5), но тогда категория совсем исчезает для обычных пользователей.

    Заранее благодарен!
     
  2.  
  3. Offline

    pagemaster Недавно здесь

    Регистрация:
    06.11.2011
    Сообщения:
    9
    Симпатии:
    0
    Пол:
    Мужской
    неужели в virtuemart нету такого функционала??? Может есть какие то хуки\модули?
     
  4. Offline

    pagemaster Недавно здесь

    Регистрация:
    06.11.2011
    Сообщения:
    9
    Симпатии:
    0
    Пол:
    Мужской
    вы навели пример как настроить права доступа к обычным материалам и категориям в Joomla. А в моем случае нужно настроить права для категорий в Virtuemart 2, которые никак не связаны с категориями в самой джумле.
     
  5. Offline

    pagemaster Недавно здесь

    Регистрация:
    06.11.2011
    Сообщения:
    9
    Симпатии:
    0
    Пол:
    Мужской
    Проблема решена!
    С совместными усилиями великого гуру ZoRN и меня =) был написан следующий код, который помог все решить:
    Код (PHP):
    1. $user =& JFactory::getUser();
    2. if (in_array(10, $user->groups)) {
    3. // вывод тела категории
    4. }
    5. else {
    6. echo "У вас нет прав доступа к данному разделу!";
    7. }

    где "10" - id группы пользователей Joomla, которым будет отображаться код внутри условия if.
     
  6. Offline

    pagemaster Недавно здесь

    Регистрация:
    06.11.2011
    Сообщения:
    9
    Симпатии:
    0
    Пол:
    Мужской
    Спустя 2 года меня спрашивают куда я вставлял этот код :) и вот ответ:
    в файл /components/com_virtuemart/views/category/tmpl/categories.php

    и вот сам файл (в моем случае).
    Код (PHP):
    1. <?php
    2. /**
    3. *
    4. * Show the products in a category
    5. *
    6. * @package    VirtueMart
    7. * @subpackage
    8. * @author RolandD
    9. * @author Max Milbers
    10. * @todo add pagination
    11. * @link http://www.virtuemart.net
    12. * @copyright Copyright (c) 2004 - 2012 VirtueMart Team. All rights reserved.
    13. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
    14. * VirtueMart is free software. This version may have been modified pursuant
    15. * to the GNU General Public License, and as distributed it includes or
    16. * is derivative of works licensed under the GNU General Public License or
    17. * other free or open source software licenses.
    18.  * @version $Id: default.php 6104 2012-06-13 14:15:29Z alatak $
    19. */
    20.  
    21. // Check to ensure this file is included in Joomla!
    22. defined('_JEXEC') or die('Restricted access');
    23.  
    24. // print_r($this->category->virtuemart_category_id);
    25.  
    26. $user =& JFactory::getUser();
    27. if (in_array(10, $user->groups)) {
    28.  
    29. if ($this->category->haschildren) {
    30.  
    31. // Category and Columns Counter
    32. $iCol = 1;
    33. $iCategory = 1;
    34.  
    35. // Calculating Categories Per Row
    36. $categories_per_row = VmConfig::get ( 'categories_per_row', 3 );
    37. $category_cellwidth = ' width'.floor ( 100 / $categories_per_row );
    38.  
    39. // Separator
    40. $verticalseparator = " vertical-separator";
    41. ?>
    42.  
    43. <div class="category-view">
    44.  
    45. <?php // Start the Output
    46. if ($this->category->children ) {
    47.     foreach ( $this->category->children as $category ) {
    48.  
    49.        // Show the horizontal seperator
    50.        if ($iCol == 1 && $iCategory > $categories_per_row) { ?>
    51.        <div class="horizontal-separator"></div>
    52.        <?php }
    53.  
    54.        // this is an indicator wether a row needs to be opened or not
    55.        if ($iCol == 1) { ?>
    56.        <div class="row">
    57.        <?php }
    58.  
    59.        // Show the vertical separator
    60.        if ($iCategory == $categories_per_row or $iCategory % $categories_per_row == 0) {
    61.            $show_vertical_separator = ' ';
    62.        } else {
    63.            $show_vertical_separator = $verticalseparator;
    64.        }
    65.  
    66.        // Category Link
    67.        $caturl = JRoute::_ ( 'index.php?option=com_virtuemart&view=category&virtuemart_category_id=' . $category->virtuemart_category_id , FALSE);
    68.  
    69.            // Show Category ?>
    70.            <div class="category floatleft<?php echo $category_cellwidth . $show_vertical_separator ?>">
    71.                <div class="spacer">
    72.                    <h2>
    73.                        <a href="<?php echo $caturl ?>" title="<?php echo $category->category_name ?>">
    74.                        <?php echo $category->category_name ?>
    75.                        <br />
    76.                        <?php // if ($category->ids) {
    77.                            echo $category->images[0]->displayMediaThumb("",false);
    78.                        //} ?>
    79.                        </a>
    80.                    </h2>
    81.                </div>
    82.            </div>
    83.        <?php
    84.        $iCategory ++;
    85.  
    86.        // Do we need to close the current row now?
    87.        if ($iCol == $categories_per_row) { ?>
    88.        <div class="clear"></div>
    89.        </div>
    90.            <?php
    91.            $iCol = 1;
    92.        } else {
    93.            $iCol ++;
    94.        }
    95.     }
    96. }
    97.  
    98. }
    99. }
    100. else {
    101. ?>
    102. <p>Чтобы получить доступ к каталогу оптовых цен, Вы должны:</p>
    103. <p>1. <a href="component/users/?view=registration" target="_self" title="Регистрация">Зарегистрироваться</a> на сайте.</p>
    104. <p>2. <a href="kontakty" target="_blank" title="Контакты">Связаться с нами</a> любым удобным Вам способом.</p>
    105. <p>3. Сообщить нам свои контакты и Ваш логин, который Вы использовали при регистрации на нашем сайте.</p>
    106. <p> </p>
    107. <p>Также компания “AVK” готова рассмотреть предложения о заказе обуви оптом по Вашим эскизам или образцам , в том числе под вашей торговой маркой, на взаимовыгодных условиях.</p>
    108. <?php
    109. }
    110. // Do we need a final closing row tag?
    111. if ($iCol != 1) { ?>
    112.     <div class="clear"></div>
    113.     </div>
    114. <?php
    115. }
    116. ?>
    117. </div>
     

    Вложения:

    • categories.txt
      Размер файла:
      3.9 КБ
      Просмотров:
      1
  7. r13s
    Offline

    r13s Недавно здесь

    Регистрация:
    16.11.2016
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    Примного благодарен!:)
     

Поделиться этой страницей

Загрузка...