0

私はphpにこの行を持っています

<a title="'.htmlspecialchars($User->Name).'" href="'.$Href.'"'.$LinkClass.'>

チップと呼ばれる別のクラスを追加する必要があります

上記のコードは、次のようなものを生成します。

<a class="ProfileLink" href="/respond/profile/2/422" title="422">

ご覧のとおり、$LinkClass はクラス "ProfileLink" を提供してくれます。

しかし、「ProfileLinkのヒント」のようにクラスを解析する必要があります

したがって、上記の $LinkClass を $LinkClass ヒントのようなものに修正する方法がわからない

これはおそらく非常に基本的なもので、木には木が見えません

///

編集:追加する

最終的な html 出力は次のようにする必要があります。

<a class="ProfileLink tip" href="/respond/profile/2/422" title="422">

///

追加した:

この関数の PHP 出力全体は次のとおりです。

  if (!function_exists('UserPhoto')) {
   function UserPhoto($User, $Options = array()) {
    $User = (object)$User;
  if (is_string($Options))
     $Options = array('LinkClass' => $Options);

  $LinkClass = GetValue('LinkClass', $Options, 'ProfileLink');
  $ImgClass = GetValue('ImageClass', $Options, 'ProfilePhotoMedium');

  $LinkClass = $LinkClass == '' ? '' : ' class="'.$LinkClass.'"';

  $Photo = $User->Photo;
  if (!$Photo && function_exists('UserPhotoDefaultUrl'))
     $Photo = UserPhotoDefaultUrl($User);

  if ($Photo) {
     if (!preg_match('`^https?://`i', $Photo)) {
        $PhotoUrl = Gdn_Upload::Url(ChangeBasename($Photo, 'n%s'));
     } else {
        $PhotoUrl = $Photo;
     }
     $Href = Url(UserUrl($User));
     return '<a title="'.htmlspecialchars($User->Name).'" href="'.$Href.'"'.$LinkClass.'>'
        .Img($PhotoUrl, array('alt' => htmlspecialchars($User->Name), 'class' => $ImgClass))
        .'</a>';
  } else {
     return '';
  }

} }

4

1 に答える 1

1

class 属性に配列を使用するのはどうですか? このような:

$LinkClass= array();
$LinkClassVal = GetValue('LinkClass', $Options, 'ProfileLink'); 

if($LinkClassVal){
    $LinkClass[] = $LinkClassVal;
}

$LinkClass[] = "tip";

そして戻ってきたとき:

return '<a title="'.htmlspecialchars($User->Name).'" href="'.$Href.'"'.implode(" ",$LinkClass).'>'
    .Img($PhotoUrl, array('alt' => htmlspecialchars($User->Name), 'class' => $ImgClass))
    .'</a>';
于 2012-04-21T22:48:37.417 に答える