2017-10-23 11 views
0

드루팔 (Drupal)이 새로 도입되었습니다.Drupal 7 현재 세션에 대해 사용자가 만든 필드 값을 변경하십시오.

데이터베이스에 저장하지 않고 현재 세션에서 사용자가 만든 필드 값을 설정해야합니다.

나는 수년간 협회 회원 이었지만 최근에 사용자로 웹 사이트에만 추가되는 사용자들과 주택 건설업자 협회의 회원 정보를 반영하는 웹 사이트를 운영하고 있습니다. 따라서이 사이트는 오랜 시간이 아닌 짧은 시간 동안 회원임을 보여줍니다.

내가 협회에 가입했을 때의 사용자 정의 필드를 추가했습니다. 사용자 정보를 변경하고 사용자 정보를 변경하고 사용자 프로필-item.tpl.php의 데이터베이스에 저장할 수있는 곳이 있습니다.). 그러나 현재 세션 대신 후속 데이터베이스 호출에 대한 정보 만 변경합니다. 나는 또한 user-profile.tpl.php에서 $ user_profile 변수를 변경하려고 시도했지만 현재 세션에서도 아무 것도 변경하지 않았습니다. 데이터베이스를 변경해도 상관 없지만 현재 세션에서 생성 된 필드 값을 업데이트하려면 어떻게해야합니까?

웹 사이트 : http://certifiedmasterbuilder.com

이 내가 뭘하려 :

global $user; 
$user = user_load($user_profile['field_zip']['#object']->uid); 
$join_date = field_get_items('user', $user, 'field_join_date')[0]['value']; $user->created = $join_date; 
$user_save($user); // <-- This saves it to the database, but does not update the //current session value 
// I tried this to update the current session, but it does not work 

field_attach_update('user', $user); 
entity_get_controller('user')->resetCache(array($user->uid))‌​; 
+0

아무도 도움이되지 않습니까? 나는 이것이 쉬운 일이되어야한다고 생각했지만, 아직 어떤 도움도받지 못했다 !! 도와주세요. 내가해야 할 일은 현재 세션에서 사용자가 만든 날짜를 변경하는 것입니다 .... –

+0

당신은 무엇을 시도 했습니까? 코드 추출 등 .. – Fky

+0

최근 시도는 다음과 같습니다 : 'global $ user; $ user = user_load ($ user_profile [ 'field_zip'] [ '# 객체'] -> uid); $ join_date = field_get_items ('user', $ user, 'field_join_date') [0] [ 'value']; $ user-> created = $ join_date; $ user_save ($ user); // <-이 값은 데이터베이스에 저장되지만 현재 세션 값은 업데이트되지 않습니다. // 현재 세션을 업데이트하려고했지만 작동하지 않습니다. field_attach_update ('user', $ user); entity_get_controller ('user') -> resetCache (array ($ user-> uid));' –

답변

0

나는 사용자 프로파일 item.tpl.php을 편집하여 작업을 얻었다.

$user = user_load(arg(1)); // Make sure the user object is fully loaded 
$join_date = field_get_items('user', $user, 'field_join_date')[0]['value']; 

if($join_date > 0 && $user->created != $join_date) 
{ 
    $value = format_interval(REQUEST_TIME - $join_date); 
} 
: 나는 우리가보고있는 사용자 프로파일을 가지고는 사용자의 만든 날짜와 다른 값이 포함되어 있는지 확인 내가 원하는 필드 값을 검색 한 후 포맷 된 날짜로 $ 값 변수를 변경

내 유일한 질문은 arg (1)을 사용하는 것 외에도 사용자 ID를 얻는 더 좋은 방법이 있는지입니다. 나는 그것이 아주 좋은 방법이 아니라고 들었다.