Если вы используете основной модуль Profile, вы можете использовать что-то вроде ниже. Он покажет узлы, созданные пользователем, чей профиль просматривается. В качестве дополнительного преимущества требуется выполнить только один пользовательский запрос к базе данных.
Вставьте этот фрагмент в template.php
в папке вашей темы и замените «THEMENAME» на имя вашей темы:
function THEMENAME_preprocess_user_profile(&$variables) {
// Information about user profile being viewed
$account = $variables['account'];
// Get info on all content types
$content_types = node_get_types('names');
// Get node counts for all content types for current user
$stats = array();
$node_counts = db_query('SELECT type, COUNT(type) AS num FROM {node} WHERE status = 1 AND uid = %d GROUP BY type', $account->uid);
while ($row = db_fetch_array($node_counts)) {
$stats[] = array(
'name' => $content_types[$row['type']],
'type' => $row['type'],
'num' => $row['num'],
);
}
$variables['node_stats'] = $stats;
}
Теперь в user-profile.tpl.php
можно добавить что-то похожее на:
// If user has created content, display stats
<?php if (count($node_stats) > 0): ?>
// For each content type, display a DIV with name and number of nodes
<?php foreach ($node_stats as $value): ?>
<div><?php print $value['name']; ?> (<?php print $value['num']; ?>)</div>
<?php endforeach; ?>
// Message to show for user that hasn't created any content
<?php else: ?>
<?php print $account->name; ?> has not created any content.
<?php endif; ?>
Это всего лишь общее представление о том, что вы можете сделать. Вы также можете добавить ограничения к типам контента, которые вы ищете / отображать, проверить разрешения для пользователей на просмотр этой статистики, использовать CSS для изменения вида статистики и т. Д.
Если вы используете Профиль содержимого , вы можете использовать THEMENAME_preprocess_node()
и проверить, что узел является узлом профиля, прежде чем выполнять этот код.