Здравствуйте! Возникла проблема: не могу найти как реализовать права доступа к категориям. К примеру у меня есть каталоги в Virtuemart 2 "Розничная торговля" и "Оптовая торговля". К розничной торговли имеют доступ все группы пользователей. Как реализовать чтобы к категории "Оптовая торговля" имели доступ только определенные группы пользователей? Но при этом категория должна быть видна, то есть должны скрываться подкатегории с товарами, которые становятся доступными только после авторизации для определенных пользователей. Думаю будет понятней если посмотрите сайт: http://avk.kh.ua/katalog-produktsii или скриншот: Пытался сделать через пункты меню (там есть настройка прав доступа от Joomla 2.5), но тогда категория совсем исчезает для обычных пользователей. Заранее благодарен!
вы навели пример как настроить права доступа к обычным материалам и категориям в Joomla. А в моем случае нужно настроить права для категорий в Virtuemart 2, которые никак не связаны с категориями в самой джумле.
Проблема решена! С совместными усилиями великого гуру ZoRN и меня =) был написан следующий код, который помог все решить: Код (PHP): $user =& JFactory::getUser(); if (in_array(10, $user->groups)) { // вывод тела категории } else { echo "У вас нет прав доступа к данному разделу!"; } где "10" - id группы пользователей Joomla, которым будет отображаться код внутри условия if.
Спустя 2 года меня спрашивают куда я вставлял этот код и вот ответ: в файл /components/com_virtuemart/views/category/tmpl/categories.php и вот сам файл (в моем случае). Код (PHP): <?php /** * * Show the products in a category * * @package VirtueMart * @subpackage * @author RolandD * @author Max Milbers * @todo add pagination * @link http://www.virtuemart.net * @copyright Copyright (c) 2004 - 2012 VirtueMart Team. All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php * VirtueMart is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * @version $Id: default.php 6104 2012-06-13 14:15:29Z alatak $ */ // Check to ensure this file is included in Joomla! defined('_JEXEC') or die('Restricted access'); // print_r($this->category->virtuemart_category_id); $user =& JFactory::getUser(); if (in_array(10, $user->groups)) { if ($this->category->haschildren) { // Category and Columns Counter $iCol = 1; $iCategory = 1; // Calculating Categories Per Row $categories_per_row = VmConfig::get ( 'categories_per_row', 3 ); $category_cellwidth = ' width'.floor ( 100 / $categories_per_row ); // Separator $verticalseparator = " vertical-separator"; ?> <div class="category-view"> <?php // Start the Output if ($this->category->children ) { foreach ( $this->category->children as $category ) { // Show the horizontal seperator if ($iCol == 1 && $iCategory > $categories_per_row) { ?> <div class="horizontal-separator"></div> <?php } // this is an indicator wether a row needs to be opened or not if ($iCol == 1) { ?> <div class="row"> <?php } // Show the vertical separator if ($iCategory == $categories_per_row or $iCategory % $categories_per_row == 0) { $show_vertical_separator = ' '; } else { $show_vertical_separator = $verticalseparator; } // Category Link $caturl = JRoute::_ ( 'index.php?option=com_virtuemart&view=category&virtuemart_category_id=' . $category->virtuemart_category_id , FALSE); // Show Category ?> <div class="category floatleft<?php echo $category_cellwidth . $show_vertical_separator ?>"> <div class="spacer"> <h2> <a href="<?php echo $caturl ?>" title="<?php echo $category->category_name ?>"> <?php echo $category->category_name ?> <br /> <?php // if ($category->ids) { echo $category->images[0]->displayMediaThumb("",false); //} ?> </a> </h2> </div> </div> <?php $iCategory ++; // Do we need to close the current row now? if ($iCol == $categories_per_row) { ?> <div class="clear"></div> </div> <?php $iCol = 1; } else { $iCol ++; } } } } } else { ?> <p>Чтобы получить доступ к каталогу оптовых цен, Вы должны:</p> <p>1. <a href="component/users/?view=registration" target="_self" title="Регистрация">Зарегистрироваться</a> на сайте.</p> <p>2. <a href="kontakty" target="_blank" title="Контакты">Связаться с нами</a> любым удобным Вам способом.</p> <p>3. Сообщить нам свои контакты и Ваш логин, который Вы использовали при регистрации на нашем сайте.</p> <p> </p> <p>Также компания “AVK” готова рассмотреть предложения о заказе обуви оптом по Вашим эскизам или образцам , в том числе под вашей торговой маркой, на взаимовыгодных условиях.</p> <?php } // Do we need a final closing row tag? if ($iCol != 1) { ?> <div class="clear"></div> </div> <?php } ?> </div>