web-dev-qa-db-ja.com

current_userの代替

User-picture.tpl.phpを次のように変更しました。

$employeeid = token_replace('[current-user:field_employeeid]');
?>
<?php if ($user_picture): ?>
<div class="user-picture">
    <?php print $user_picture; ?>
</div>
<?php elseif ($employeeid): ?>
<div class="user-picture">
    <img src="../../sites/default/files/pictures/<?=$employeeid?>.jpg"/>
</div>
<?php endif; ?>

token_replaceを追加して、会社のディレクトリの現在のユーザーのアバターを管理します。非従業員がログインする可能性があるため、元のオプションはそのままにしておきました。

問題:

上記のコードは機能します。現在のユーザーであれば、従業員のアバターを全員に表示する必要があります。交換してみました

curent-user:

for

user:

成功しませんでした。これの全体的な理由は、従業員のアバターがIMCE管理フォルダーから自動的にプルされ、「創造性を発揮する」ために従業員に任されないようにするためです。

建設的な考えや提案をいただければ幸いです。ありがとう!

解決:

if (isset($account->field_employeeid['und'][0]['safe_value'])) : 
    $employeeid = $account->field_employeeid['und'][0]['safe_value']; ?>
    <div class="user-picture">
        <img src="<?=base_path()?>sites/default/files/pictures/<?=$employeeid?>.jpg"/>
    </div>
<?  else: ?>
    <div class="user-picture">
        <?php print $user_picture; ?>
    </div>
<?  endif; ?>       
2
jason drane

if/elseを表示したくないので、$user_pictureを削除し、elseコードのみを残します。

$employeeid = token_replace('[current-user:field_employeeid]');
?>
<div class="user-picture">
    <img src="<?=base_path()?>sites/default/files/pictures/<?=$employeeid?>.jpg"/>
</div>
1
rémy