見てみましょう...ここからどこから始めますか?はい、私はJoomlaで作業しており、JomSocialと呼ばれるJoomlaコンポーネント内のコードを変更しようとしています。これを実行できなかったのは、コンポーネントまたはJoomlaシステムで何が起こっているのかを理解していないことに基づいています。ただ、PHPコードを十分に読み取れず、何が起こっているのかを変更できません。
基本的に、このスクリプトは、選択したユーザーからのプロファイル情報のすべてのビットの定義リストを出力します。これは素晴らしいことですが、ユーザープロファイルフィールドの配列全体ではなく、1つまたは2つのフィールドのみを使用したいサイトの別のセクションでこのコードを再利用する必要があります。
ここにスクリプトのコードのほとんどを含めていますが、私が求める答えははるかに単純であり、PHPの一般的な知識にすぎないと本当に感じています。具体的には、foreachステートメントが明示しているフィールドの配列をエコーするために何をしますか。
これがあなたの誰かが助けたいと思う何かなら、素晴らしい。これが一般的なPHPの質問セクションで解決されている場合は、リンクもすばらしいでしょう。PHPの回答でこのようなものを検索しようとしましたが、ここで求めていることを実行しているものはないようです。
繰り返しますが、私が本当に必要としているのは、すべてのフィールドをダンプするのではなく、個々のフィールドを繰り返すことによって、このコードが実行していることを実行できるようにすることです。
どうもありがとう、トーマス・ハリソン 私は畏敬の念を持ってあなたを見つめます。
<?php foreach( $profile['fields'] as $groupName => $items ):
// Gather display data for the group. If there is no data, we can
// later completely hide the whole segment
$hasData = false;
ob_start();
?>
<div class="cProfile-About">
<?php if( $groupName != 'ungrouped' ): ?>
<h4><?php echo JText::_( $groupName ); ?></h4>
<?php endif; ?>
<dl class="profile-right-info">
<?php foreach( $items as $item ): ?>
<?php
if( CPrivacy::isAccessAllowed( $my->id , $profile['id'] , 'custom' , $item['access'] ) )
{
// There is some displayable data here
$hasData = true;
?>
<dt><?php echo JText::_( $item['name'] ); ?></dt>
<?php if( !empty($item['searchLink']) && is_array($item['searchLink']) ): ?>
<dd>
<?php foreach($item['searchLink'] as $linkKey=>$linkValue): ?>
<?php $item['value'] = $linkKey; ?>
<a href="<?php echo $linkValue; ?>"><?php echo CProfileLibrary::getFieldData( $item ) ?></a><br />
<?php endforeach; ?>
</dd>
<?php else: ?>
<dd>
<?php if(!empty($item['searchLink'])) :?>
<a href="<?php echo $item['searchLink']; ?>">
<?php endif; ?>
<?php echo CProfileLibrary::getFieldData( $item ); ?>
<?php if(!empty($item['searchLink'])) :?>
</a>
<?php endif; ?>
</dd>
<?php endif; ?>
<?php
}
?>
<?php endforeach; ?>
</dl>
</div>
<?php
$html = ob_get_contents();
ob_end_clean();
// We would only display the profile data in the group if there is actually some
// data to be displayed
if( $hasData ):
echo $html;
$noData = false;
endif;
endforeach;
if ($noData)
echo ($isMine) ? JText::_('COM_COMMUNITY_PROFILES_SHARE_ABOUT_YOURSELF') : JText::_('COM_COMMUNITY_PROFILES_NO_INFORMATION_SHARE');
?>