2017-10-23 7 views
0

私はDrupalが非常に新しいです。Drupal 7現在のセッションでユーザが作成したフィールド値を変更します

ユーザが作成したフィールド値を、現在のセッションでデータベースに保存することなく設定する必要があります。

私は長年にわたり協会のメンバーになっていたが最近ユーザーとしてウェブサイトに追加されているユーザーと住宅建設業者の協会のメンバーシップを反映したウェブサイトを持っています。したがって、サイトでは、長い時間ではなく、短時間でメンバーになることが示されています。

アソシエーションに参加したときのカスタムフィールドを追加しました。その情報を取得してユーザー情報を変更してデータベースに保存することができました(user-profile-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を取得するより良い方法があるかどうかです。私はそれがとても良い方法ではないと聞いた。

関連する問題