News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

profilin yaninda konu sayilari nasil görünür

Started by tecrube85, August 26, 2007, 02:34:51 PM

Previous topic - Next topic

tecrube85

Üyelerin avatarlarinin ve mesaj sayilarinin yazdiği yerin hemen altinda üyelerin açmiş olduğu konu sayisininda görünmesini istiyorum

bunu yapmak mümkün müdür acaba ?

Mümkünse Nasil ?

Yardimlarinizi bekliyorum . şimdiden teşekkür ederim

tecrube85

2 gündür cevap veren olmamiş . konu arka sayfalara gitti bayaği


Bunun nasil yapilacağini bilen yok mu arkadaşlar ?

yardimlarinizi bekliorm

Shean

böyle bir şey var profildeki ek bilgiden ulaşılır

tecrube85

Quote from: movy on August 28, 2007, 06:01:34 PM
böyle bir şey var profildeki ek bilgiden ulaşılır

profildeki ek bilgi derken neyi kastettin . biraz daha açar misin kardeş

tecrube85

Flood yapmak istemiyorum ama konum çok aşağilara gidiyor . böyle olunca da kimse görüp mesaj yollamiyor

aradan 6 gün geçti .


bilen yok mu acaba nasil yapildiğini ?


Abraxas

#6
.......

Abraxas

#7
Modu kendi sitemde kuruludur.. isteyenler linke örnek olarak bakabilir.

http://forumalemi.net/index.php?topic=5.0



şunu buldum hocam... belki buda işine yarar.



profil bölümünden herkes görebilir.Üye profilinde 2 yerde çıkacak butonlar
Sources/Profile.php yi aç bul

// Show all posts by the current user
function showPosts($memID)
{

Öncesine ekle

// Show all topics by the current user <><><><><><><><><><><><><><><>
function showTopics($memID)
{
global $txt, $user_info, $scripturl, $modSettings, $db_prefix;
global $context, $user_profile, $ID_MEMBER, $sourcedir;

// If just deleting a message, do it and then redirect back.
if (isset($_GET['delete']))
{
checkSession('get');

// We can be lazy, since removeMessage() will check the permissions for us.
require_once($sourcedir . '/RemoveTopic.php');
removeMessage((int) $_GET['delete']);

// Back to... where we are now ;).
redirectexit('action=profile;u=' . $memID . ';sa=showTopics;start=' . $_GET['start']);
}

// Is the load average too high to allow searching just now?
if (!empty($context['load_average']) && !empty($modSettings['loadavg_show_posts']) && $context['load_average'] >= $modSettings['loadavg_show_posts'])
fatal_lang_error('loadavg_show_posts_disabled', false);

// Default to 10.
if (empty($_REQUEST['viewscount']) || !is_numeric($_REQUEST['viewscount']))
$_REQUEST['viewscount'] = '10';

// If this is a large forum, try a temporary table.
if ($modSettings['totalMessages'] > 100000 && $user_profile[$memID]['posts'] > 100)
{
db_query("
DROP TABLE IF EXISTS {$db_prefix}topics_posted_in", false, false);

// Let's try to avoid as many locks as possible.
$have_temp_table = db_query("
CREATE TEMPORARY TABLE {$db_prefix}topics_posted_in (
PRIMARY KEY (ID_TOPIC)
)
SELECT ID_TOPIC, ID_BOARD
FROM {$db_prefix}messages
WHERE ID_MEMBER = $memID
GROUP BY ID_TOPIC", false, false);
}

// The join on topics here, although unnecessary, forces the use of the participation index.
$request = db_query("
SELECT COUNT(m.ID_MSG)
FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t, {$db_prefix}boards AS b)
WHERE m.ID_MEMBER = $memID
AND t.ID_TOPIC = m.ID_TOPIC
AND b.ID_BOARD = t.ID_BOARD
AND t.ID_FIRST_MSG = m.ID_MSG
AND $user_info[query_see_board]", __FILE__, __LINE__);
list ($msgCount) = mysql_fetch_row($request);
mysql_free_result($request);

// View all the topics, or just a few?
$maxIndex = isset($_REQUEST['view']) && $_REQUEST['view'] == 'all' ? $msgCount : $modSettings['defaultMaxMessages'];

// Make sure the starting place makes sense and construct our friend the page index.
$context['page_index'] = constructPageIndex($scripturl . '?action=profile;u=' . $memID . ';sa=showTopics', $_REQUEST['start'], $msgCount, $maxIndex);
$context['start'] = $_REQUEST['start'];
$context['current_page'] = $context['start'] / $maxIndex;
$context['current_member'] = $memID;

$context['page_title'] = $txt[4582] . ' ' . $user_profile[$memID]['realName'];

// Find this user's posts.  The left join on categories somehow makes this faster, weird as it looks.
// !!!SLOW This query uses a filesort.
$request = db_query("
SELECT
b.ID_BOARD, b.name AS bname, c.ID_CAT, c.name AS cname, m.ID_TOPIC, m.ID_MSG,
t.ID_MEMBER_STARTED, t.ID_FIRST_MSG, t.ID_LAST_MSG, m.body, m.smileysEnabled,
m.subject, m.posterTime
FROM (" . (empty($have_temp_table) ? '' : "{$db_prefix}topics_posted_in AS pi, ") . "{$db_prefix}messages AS m, {$db_prefix}topics AS t, {$db_prefix}boards AS b)
LEFT JOIN {$db_prefix}categories AS c ON (c.ID_CAT = b.ID_CAT)
WHERE " . (empty($have_temp_table) ? '' : "t.ID_TOPIC = pi.ID_TOPIC
AND ") . "m.ID_MEMBER = $memID
AND m.ID_TOPIC = t.ID_TOPIC
AND t.ID_BOARD = b.ID_BOARD
AND $user_info[query_see_board]
AND t.ID_FIRST_MSG = m.ID_MSG
ORDER BY m.ID_MSG DESC
LIMIT $_REQUEST[start], $maxIndex", __FILE__, __LINE__);
// Start counting at the number of the first message displayed.
$counter = $_REQUEST['start'];
$context['posts'] = array();
$board_ids = array('own' => array(), 'any' => array());
while ($row = mysql_fetch_assoc($request))
{
// Censor....
censorText($row['body']);
censorText($row['subject']);

if ($row["ID_FIRST_MSG"] == $row["ID_MSG"]) {

// Do the code.
$row['body'] = parse_bbc($row['body'], $row['smileysEnabled'], $row['ID_MSG']);
// And the array...
$context['posts'][++$counter] = array(
'body' => $row['body'],
'counter' => $counter,
'category' => array(
'name' => $row['cname'],
'id' => $row['ID_CAT']
),
'board' => array(
'name' => $row['bname'],
'id' => $row['ID_BOARD']
),
'topic' => $row['ID_TOPIC'],
'subject' => $row['subject'],
'start' => 'msg' . $row['ID_MSG'],
'time' => timeformat($row['posterTime']),
'timestamp' => forum_time(true, $row['posterTime']),
'id' => $row['ID_MSG'],
'can_reply' => false,
'can_mark_notify' => false,
'can_delete' => false,
'delete_possible' => ($row['ID_FIRST_MSG'] != $row['ID_MSG'] || $row['ID_LAST_MSG'] == $row['ID_MSG']) && (empty($modSettings['edit_disable_time']) || $row['posterTime'] + $modSettings['edit_disable_time'] * 60 >= time()),
);


if ($ID_MEMBER == $row['ID_MEMBER_STARTED'])
$board_ids['own'][$row['ID_BOARD']][] = $counter;
$board_ids['any'][$row['ID_BOARD']][] = $counter;
}


}
mysql_free_result($request);

// These are all the permissions that are different from board to board..
$permissions = array(
'own' => array(
'post_reply_own' => 'can_reply',
'delete_own' => 'can_delete',
),
'any' => array(
'post_reply_any' => 'can_reply',
'mark_any_notify' => 'can_mark_notify',
'delete_any' => 'can_delete',
)
);

// For every permission in the own/any lists...
foreach ($permissions as $type => $list)
foreach ($list as $permission => $allowed)
{
// Get the boards they can do this on...
$boards = boardsAllowedTo($permission);

// Hmm, they can do it on all boards, can they?
if (!empty($boards) && $boards[0] == 0)
$boards = array_keys($board_ids[$type]);

// Now go through each board they can do the permission on.
foreach ($boards as $board_id)
{
// There aren't any posts displayed from this board.
if (!isset($board_ids[$type][$board_id]))
continue;

// Set the permission to true ;).
foreach ($board_ids[$type][$board_id] as $counter)
$context['posts'][$counter][$allowed] = true;
}
}

// Clean up after posts that cannot be deleted.
foreach ($context['posts'] as $counter => $dummy)
$context['posts'][$counter]['can_delete'] &= $context['posts'][$counter]['delete_possible'];
}

// <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>


bul
      'showPosts' => array(array('profile_view_any', 'profile_view_own'), array('profile_view_any')),
Sonrasına ekle

      'showTopics' => array(array('profile_view_any', 'profile_view_own'), array('profile_view_any')),

bul
         $context['profile_areas']['info']['areas']['showPosts'] = '<a href="' . $scripturl . '?action=profile;u=' . $memID . ';sa=showPosts">' . $txt['showPosts'] . '</a>';
Sonrasına ekle

         $context['profile_areas']['info']['areas']['showTopics'] = '<a href="' . $scripturl . '?action=profile;u=' . $memID . ';sa=showTopics">' . $txt['showTopics'] . '</a>';         

languages/Profile.turkish.php yi aç bul
   
$txt[461] = 'son mesajları göster';
Sonrasına ekle

$txt[462] = 'son konuları göster';

bul
$txt[458] = 'Son gönderdiği mesajlar: ';
Sonrasına ekle

$txt[4582] = 'Son Açtığı Konular: ';

bul
$txt['showPosts'] = 'Mesajları Göster';
Sonrasına ekle

$txt['showTopics'] = 'Konuları Göster';

Profile.template.php yi aç
Bul

// Template for showing all the posts of the user, in chronological order.
function template_showPosts()
{

Öncesine ekle

// Template for showing all the posts of the user, in chronological order.  <><><><><><><><><>
function template_showTopics()
{
global $context, $settings, $options, $scripturl, $modSettings, $txt;

echo '
<table border="0" width="85%" cellspacing="1" cellpadding="4" class="bordercolor" align="center">
<tr class="titlebg">
<td colspan="3" height="26">
&nbsp;<img src="', $settings['images_url'], '/icons/profile_sm.gif" alt="" align="top" />&nbsp;', $txt['showTopics'], '
</td>
</tr>';

// Only show posts if they have made some!
if (!empty($context['posts']))
{
// Page numbers.
echo '
<tr class="catbg3">
<td colspan="3">
', $txt[139], ': ', $context['page_index'], '
</td>
</tr>
</table>';

// Button shortcuts
$quote_button = create_button('quote.gif', 145, 'smf240', 'align="middle"');
$reply_button = create_button('reply_sm.gif', 146, 146, 'align="middle"');
$remove_button = create_button('delete.gif', 121, 31, 'align="middle"');
$notify_button = create_button('notify_sm.gif', 131, 125, 'align="middle"');

// For every post to be displayed, give it its own subtable, and show the important details of the post.
foreach ($context['posts'] as $post)
{
echo '
<table border="0" width="85%" cellspacing="1" cellpadding="0" class="bordercolor" align="center">
<tr>
<td width="100%">
<table border="0" width="100%" cellspacing="0" cellpadding="4" class="bordercolor" align="center">
<tr class="titlebg2">
<td style="padding: 0 1ex;">
', $post['counter'], '
</td>
<td width="75%" class="middletext">
&nbsp;<a href="', $scripturl, '#', $post['category']['id'], '">', $post['category']['name'], '</a> / <a href="', $scripturl, '?board=', $post['board']['id'], '.0">', $post['board']['name'], '</a> / <a href="', $scripturl, '?topic=', $post['topic'], '.', $post['start'], '#msg', $post['id'], '">', $post['subject'], '</a>
</td>
<td class="middletext" align="right" style="padding: 0 1ex; white-space: nowrap;">
', $txt[30], ': ', $post['time'], '
</td>
</tr>
<tr>
<td width="100%" height="80" colspan="3" valign="top" class="windowbg2">
<div class="post">', $post['body'], '</div>
</td>
</tr>
<tr>
<td colspan="3" class="windowbg2" align="', !$context['right_to_left'] ? 'right' : 'left', '"><span class="middletext">';

if ($post['can_delete'])
echo '
<a href="', $scripturl, '?action=profile;u=', $context['current_member'], ';sa=showPosts;start=', $context['start'], ';delete=', $post['id'], ';sesc=', $context['session_id'], '" onclick="return confirm(\'', $txt[154], '?\');">', $remove_button, '</a>';
if ($post['can_delete'] && ($post['can_mark_notify'] || $post['can_reply']))
echo '
', $context['menu_separator'];
if ($post['can_reply'])
echo '
<a href="', $scripturl, '?action=post;topic=', $post['topic'], '.', $post['start'], '">', $reply_button, '</a>', $context['menu_separator'], '
<a href="', $scripturl, '?action=post;topic=', $post['topic'], '.', $post['start'], ';quote=', $post['id'], ';sesc=', $context['session_id'], '">', $quote_button, '</a>';
if ($post['can_reply'] && $post['can_mark_notify'])
echo '
', $context['menu_separator'];
if ($post['can_mark_notify'])
echo '
<a href="' . $scripturl . '?action=notify;topic=' . $post['topic'] . '.' . $post['start'] . '">' . $notify_button . '</a>';

echo '
</span></td>
</tr>
</table>
</td>
</tr>
</table>';
}

// Show more page numbers.
echo '
<table border="0" width="85%" cellspacing="1" cellpadding="4" class="bordercolor" align="center">
<tr>
<td colspan="3" class="catbg3">
', $txt[139], ': ', $context['page_index'], '
</td>
</tr>
</table>';
}
// No posts? Just end the table with a informative message.
else
echo '
<tr class="windowbg2">
<td>
', $txt[170], '
</td>
</tr>
</table>';
}

// <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>


bul
         <a href="', $scripturl, '?action=profile;u=', $context['member']['id'], ';sa=showPosts">', $txt[460], ' ', $txt[461], '.</a><br />
Sonrasına ekle

         <a href="', $scripturl, '?action=profile;u=', $context['member']['id'], ';sa=showTopics">', $txt[460], ' ', $txt[462], '.</a><br />


/////////////////////////////////////////

edit: son eklentim. üyenin mesaj yazdığı alanındaki profile açtığı konulara link vermek için


yukarıdaki işlemleri yaptıktan sonra

index.turkish.php.de bul

$txt[24] = '(Konu Yok)';
$txt[26] = 'Mesaj Say&yacute;s&yacute;';


altına ekle
$txt[266] = 'Açtığı Konular';


display . template.php de

bul

// Show how many posts they have made.
echo '
', $txt[26], ': ', $message['member']['posts'], '<br />
<br />';


altına ekle

// uyenin actigi konular ivan_
echo '
<a href="', $scripturl, '?action=profile;u=', $message['member']['id'], ';sa=showTopics">', $txt[266], '</a><br />
<br />';








Yağız...


tecrube85

evet . konu sayisini gösteren bi kod vs olsaydi iyi olurdu

Quote from: Yağız! on September 06, 2007, 01:29:04 AM
Bu cok baska birsey.Bu konulari gosteriyor.Biz konu sayilarini istiyoruz ;)

<<<C@nZéY>>>

ewet arkadaşlar suan sitemde sistemim konu sayısına göre işliyor yani konu açan üyelere ayrıcalık yapıyoruz yani konu sayısı gözükse orda üyeleri konu açmaya teşvik etsek


Advertisement: