Решено! Может ли модуль RULES заменить функционал Field Permissions ???

Главные вкладки

Аватар пользователя iNFerNo iNFerNo 28 июня 2013 в 12:04

Может ли модуль RULES заменить функционал Field Permissions ???

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

работает только

1. если вообще галки не ставить в пермишенах у роли - пользователь, то не выводится поля при редактирование.
2. если роль - админ у которой в пермишенах стоят галки views и edit - видит поле на чужих страницах редактирования аккаунтов юзеров.

остальные галки не работают для поля. почему то

Комментарии

Аватар пользователя iNFerNo iNFerNo 28 июня 2013 в 13:00

может сам модуль допилить условия для аккаунтов прописать... а то там все больше для нод. а не для аккаунтов.

Аватар пользователя iNFerNo iNFerNo 28 июня 2013 в 14:37

скрыл пока что так в своем модуле заюзав хук и написав следующий код

<?phpif ($form_id == 'user_profile_form'){
 
 global $user;
    if (4 == $user->uid and $user->uid == $account->uid) { 
 $form['field_hide_block_advertising']['#access'] = false;
 }
 
 }?>

но хочется что-то по универсальнее. наверное нужно user access прописать какой нить...

Аватар пользователя iNFerNo iNFerNo 28 июня 2013 в 21:02

я и так делал

<?php
if ($form_id == 'user_profile_form'){
 
 global 
$user;
 
$account user_load();
 
    if (
== $user->uid and $user->uid == $account->uid) { 
 
$form['field_hide_block_advertising']['#access'] = false;
 }
 
 }
?>
Аватар пользователя iNFerNo iNFerNo 29 июня 2013 в 16:25

"<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a>" wrote:
объясни смысл этого кода

ну я эти коды беру из гугла.

объяснить... ну видимо тянет uid из юзера и передает его $account

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 29 июня 2013 в 16:45

"iNFerNo" wrote:

и такое не работет

user_load($array = array())

тебе для начала надо уяснить что такое пхп функция , что такое её аргументы, что такое массив, что такое объект. Так что начни с этого

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 29 июня 2013 в 18:52

$account тебе нужен чтобы взять из него uid и проверить, находится ли текущий юзер в своём профиле? Id аккаунта можно просто взять из УРЛ

<?php

$args 

arg();
if ((isset(
$args[0]) && $args[0] == 'user') && (isset($args[1]) && is_numeric($args[1]))) {
  
// мы на странице юзера
  
$account_uid $args[1];
  global 
$user;
  if (
$user->uid == $account_uid) {
    
// текущий юзер в своём профиле
  
}
}

?>