SMF Kişisel Profil Ekleme Bölümü,facebook tarzı
[BETA] Ultimate profile mod
Arkadaslar modun orjinali yukarıda sanırım Tr çevirisi yok benden olsun ben çok begendim bakalım nasıl birşey
bu demosu
View the profile of JovanT
bu da benim localde denediğim birkaç görüntü,profile resim ekleyebiliyoruz,html kodu eklenebiliyor,video eklenebiliyor,flash eklenebiliyor.eksileri nedir pek bilemeyeceğim şimdi ama deneyip göreceğim localde.
Önce forumseçeneklerinden aktif edelim
Admin panelinden görüntüsü
Üyenin profiline tıklanınca görülen şekli
Üyenin profilini kontrol edeceği düzenleyeceği panel
Profile yorum eklenebiliyor,yorumlar üye onaylı olabiliyor,çok fena güzel özellikleri var her temaya rahatlıkla uyarlanabilecek tarzda sadece profile dosyasını editlemekte,default temadan,o da birçok temada mevcut değil zaten
[size=13pt]Manuel Kurulum(bunu yaptıktan sonra çıkartıp ana dizine at paketini çıkartıp ana dizine atacağız)[/size]
Manuel kurulumu arkadaslar,denedim sorunsuz çalısıyor.paket çözmleyiciler hepsi kafayı yemiş,benbi paket atıyorum o bana smf galeriyi çevirip veriyor tek tek okuyarak yaptım,modu kurduktan sonra admin panelinden etkinleştirmeniz gerekmektedir.ekteki dosyaları çıkartıp ana dizine atıyoruz database.php yi çalıstırıp siliyoruz
------------------------------------
Düzenlenecek dosya languages/Modifications.turkish.php
bul
üzerine ekle
düzenlenecek dosya sources/ModSettings.php
bul
değiştir
bul
değiştir
bul
sonrasına ekle
bul
üstüne ekle
sources/Profile.php düzenlenecek dosya
bul
bununla değiştir
bul
sonrasına ekle
bul
sonrasına ekle
bul
sonrasına ekle
bul
değiştir
bul
değiştir
bul
sonrasına ekle
bul
üstüne ekle
duzenlenecek dosya index.php
bul
sonrasına ekle
duzenlenecek dosya: tema/Profile.template.php
bul
değiştir
bul
değiştir
bul
üstüne ekle
sonunda bitti editleme sıra geldi ekte verdiğim dosyaları uygulamaya.ekte verdiğim dosyaların hepsini forum ana dizinine atıp üzerine yazdırıyoruz. daha sonra database.php yi çalıtırıyoruz nasıl mı?
www.site.com/database.php birkereye mahsus.dahs onra database.php yi hosttan siliyoruz
Alttaki pakette hafif bir çeviri düzenlemesi olmustur
SEO4SMF kurulu olanlar yorumları silme sorunu yaşarsa aşağıdaki düzenlemeyi yapmanız gerekmektedir
[quote author=bayGaReZ.oRg link=topic=20602.msg180680#msg180680 date=1203567669]
[size=14pt]Yorumları Silememe Sorununa Çözüm!..[/size]
Bunu Yapıcam Diye Bütün gece uyumadım, Hata alanların ve almayanların sitesini tek tek inceledim ve sonuca ulaştım.. :-*
Öncelikle Modu Kurun.. Daha Sonra Profile.php yi açın ve bulun:
Aşağıdaki ile değiştirin:
Burada sitenizinismi.com yerine gerekli düzenlemeyi yapmayı unutmayın..
Daha sonra UltimateProfile.template.php dosyasını açın ve bulun:
Bununla Değiştirin:
Mod : RapidShare: 1-Click Webhosting
Manuel kuranların indireceği dosya : RapidShare: 1-Click Webhosting
[BETA] Ultimate profile mod
Arkadaslar modun orjinali yukarıda sanırım Tr çevirisi yok benden olsun ben çok begendim bakalım nasıl birşey
bu demosu
View the profile of JovanT
bu da benim localde denediğim birkaç görüntü,profile resim ekleyebiliyoruz,html kodu eklenebiliyor,video eklenebiliyor,flash eklenebiliyor.eksileri nedir pek bilemeyeceğim şimdi ama deneyip göreceğim localde.
Önce forumseçeneklerinden aktif edelim
Admin panelinden görüntüsü
Üyenin profiline tıklanınca görülen şekli
Üyenin profilini kontrol edeceği düzenleyeceği panel
Profile yorum eklenebiliyor,yorumlar üye onaylı olabiliyor,çok fena güzel özellikleri var her temaya rahatlıkla uyarlanabilecek tarzda sadece profile dosyasını editlemekte,default temadan,o da birçok temada mevcut değil zaten
[size=13pt]Manuel Kurulum(bunu yaptıktan sonra çıkartıp ana dizine at paketini çıkartıp ana dizine atacağız)[/size]
Manuel kurulumu arkadaslar,denedim sorunsuz çalısıyor.paket çözmleyiciler hepsi kafayı yemiş,benbi paket atıyorum o bana smf galeriyi çevirip veriyor tek tek okuyarak yaptım,modu kurduktan sonra admin panelinden etkinleştirmeniz gerekmektedir.ekteki dosyaları çıkartıp ana dizine atıyoruz database.php yi çalıstırıp siliyoruz
------------------------------------
Düzenlenecek dosya languages/Modifications.turkish.php
bul
PHP:
?>
üzerine ekle
PHP:
$txt['ultimate_profile'] = 'Özel Profil';
düzenlenecek dosya sources/ModSettings.php
bul
PHP:
);
// By default do the basic settings.
$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'basic';
$context['sub_action'] = $_REQUEST['sa'];
değiştir
PHP:
'ultprofile' => 'ModifyUltProfileSettings',
);
// By default do the basic settings.
$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'basic';
$context['sub_action'] = $_REQUEST['sa'];
bul
PHP:
);
// Default to core (I assume)
$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'basic';
değiştir
PHP:
'ultprofile' => 'ModifyUltProfileSettings',
);
// Default to core (I assume)
$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'basic';
bul
PHP:
'layout' => array(
'title' => $txt['mods_cat_layout'],
'href' => $scripturl . '?action=featuresettings;sa=layout;sesc=' . $context['session_id'],
),
sonrasına ekle
PHP:
'ultprofile' => array(
'title' => $txt['ultimate_profile'],
'href' => $scripturl . '?action=featuresettings;sa=ultprofile;sesc=' . $context['session_id'],
),
bul
PHP:
function ModifyKarmaSettings()
üstüne ekle
PHP:
function ModifyUltProfileSettings()
{
global $txt, $scripturl, $context, $settings, $sc;
loadLanguage('UltimateProfile');
$config_vars = array(
array('check', 'profile_enable_all'),
'',
array('check', 'profile_enable_pictures'),
array('text', 'profile_pictures_path'),
array('text', 'profile_pictures_url'),
array('int', 'profile_pictures_number'),
array('int', 'profile_pictures_width'),
'',
array('check', 'profile_allow_customize'),
array('check', 'profile_allow_mediabox'),
);
// Saving?
if (isset($_GET['save']))
{
saveDBSettings($config_vars);
redirectexit('action=featuresettings;sa=ultprofile');
}
$context['post_url'] = $scripturl . '?action=featuresettings2;save;sa=ultprofile';
$context['settings_title'] = $txt['ultimate_profile'];
prepareDBSettingContext($config_vars);
}
sources/Profile.php düzenlenecek dosya
bul
PHP:
loadLanguage('Profile');
loadTemplate('Profile');
bununla değiştir
PHP:
loadLanguage('Profile');
loadLanguage('UltimateProfile');
loadTemplate('Profile');
bul
PHP:
'forumProfile' => array(array('profile_extra_any', 'profile_extra_own'), array('profile_extra_any')),
sonrasına ekle
PHP:
'customized' => array(array('profile_extra_any', 'profile_extra_own'), array('profile_extra_any')),
'pictures' => array(array('profile_view_any', 'profile_view_own'), array('profile_view_any')),
'comment' => array(array('profile_view_any', 'profile_view_own'), array('profile_view_any')),
'buddies' => array(array('profile_view_any', 'profile_view_own'), array('profile_view_any')),
'report' => array(array('profile_view_any', 'profile_view_own'), array('profile_view_any')),
bul
PHP:
$context['profile_areas']['edit_profile']['areas']['forumProfile'] = '<a href="' . $scripturl . '?action=profile;u=' . $memID . ';sa=forumProfile">' . $txt['forumProfile'] . '</a>';
sonrasına ekle
PHP:
$context['profile_areas']['edit_profile']['areas']['customized'] = '<a href="' . $scripturl . '?action=profile;u=' . $memID . ';sa=customized">' . $txt['profile_customized'] . '</a>';
if ($modSettings['profile_enable_pictures'] == 1)
$context['profile_areas']['edit_profile']['areas']['pictures'] = '<a href="' . $scripturl . '?action=profile;u=' . $memID . ';sa=pictures">' . $txt['profile_pictures'] . '</a>';
bul
PHP:
'forumProfile' => array(array('profile_extra_any', 'profile_extra_own'), array('profile_extra_any'), 'post'),
sonrasına ekle
PHP:
'customized' => array(array('profile_extra_any', 'profile_extra_own'), array('profile_extra_any'), 'post'),
bul
PHP:
$context['profile_areas']['edit_profile']['areas']['editBuddies'] = '<a href="' . $scripturl . '?action=profile;u=' . $memID . ';sa=editBuddies">' . $txt['editBuddies'] . '</a>';
değiştir
PHP:
$context['profile_areas']['edit_profile']['areas']['editBuddies'] = '<a href="' . $scripturl . '?action=buddies">' . $txt['editBuddies'] . '</a>';
bul
PHP:
global $context, $memberContext, $txt, $modSettings, $user_info, $user_profile, $sourcedir, $db_prefix, $scripturl;
değiştir
PHP:
global $context, $memberContext, $txt, $modSettings, $user_info, $user_profile, $sourcedir, $db_prefix, $scripturl, $settings;
bul
PHP:
$context['member'] = &$memberContext[$memID];
sonrasına ekle
PHP:
// Which template should we use?
if (@$context['member']['options']['customized_private'] == 1 && @$modSettings['enable_buddylist'] == 1) {
if ($context['member']['is_reverse_buddy'] || allowedTo ('profile_extra_any') || $context['user']['is_owner'])
$view_customized = true;
else
$view_customized = false;
} else {
$view_customized = true;
}
if ((isset ($context['member']['options']['customized']) && $context['member']['options']['customized'] == 1) || $modSettings['profile_enable_all'] == 1) {
if ($view_customized) {
loadTemplate ('UltimateProfile');
$context['sub_template'] = 'summary2';
}
}
// For avatars: if we're always html resizing, assume it's too large.
if ($modSettings['avatar_action_too_large'] == 'option_html_resize' || $modSettings['avatar_action_too_large'] == 'option_js_resize') {
$avatar_width = !empty($modSettings['avatar_max_width_external']) ? ' width="' . $modSettings['avatar_max_width_external'] . '"' : '';
$avatar_height = !empty($modSettings['avatar_max_height_external']) ? ' height="' . $modSettings['avatar_max_height_external'] . '"' : '';
} else {
$avatar_width = '';
$avatar_height = '';
}
// Prepare the buddy list.
if (isset ($modSettings['enable_buddylist']) && $modSettings['enable_buddylist'] == '1') {
$buddies = array();
$request = db_query ('SELECT BUDDY_ID FROM ' . $db_prefix . 'buddies
WHERE ID_MEMBER = ' . $context['member']['id'] . ' AND approved = 1
ORDER BY position ASC, time_updated DESC
LIMIT 0, 6', __FILE__, __LINE__);
while ($row = mysql_fetch_assoc ($request))
$buddies[] = $row['BUDDY_ID'];
loadMemberData ($buddies);
foreach ($buddies as $buddy) {
$user_data = $user_profile[$buddy];
$user_data['avatar_image'] = $user_data['avatar'] == '' ? ($user_data['ID_ATTACH'] > 0 ? '<img src="' . (empty($user_data['attachmentType']) ? $scripturl . '?action=dlattach;attach=' . $user_data['ID_ATTACH'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $user_data['filename']) . '" alt="" class="avatar" border="0" />' : '') : (stristr($user_data['avatar'], 'http://') ? '<img src="' . $user_data['avatar'] . '"' . $avatar_width . $avatar_height . ' alt="" class="avatar" border="0" />' : '<img src="' . $modSettings['avatar_url'] . '/' . htmlspecialchars($user_data['avatar']) . '" alt="" class="avatar" border="0" />');
$user_data['is_online'] = (!empty($user_data['showOnline']) || allowedTo('moderate_forum')) && $user_data['isOnline'] > 0;
if ($buddy != $memID)
$context['member']['buddies_data'][$buddy] = $user_data;
}
}
// Profile pictures.
if ($modSettings['profile_enable_pictures'] == 1) {
$request = db_query ('SELECT ID_PICTURE, time, title, filename
FROM ' . $db_prefix . 'profile_pictures
WHERE ID_MEMBER = ' . $memID . '
ORDER BY RAND() LIMIT 6', __FILE__, __LINE__);
while ($picture = mysql_fetch_assoc ($request)) {
$context['pictures'][] = array (
'ID_PICTURE' => $picture['ID_PICTURE'],
'title' => $picture['title'],
'url' => $scripturl . '?action=profile;u=' . $memID . ';sa=pictures;view=' . $picture['ID_PICTURE'],
'thumb' => $modSettings['profile_pictures_url'] . '/' . $memID . '_' . $picture['time'] . '_thumb.' . get_extension ($picture['filename']),
'time' => timeformat ($picture['time']),
);
}
if (@$context['member']['options']['pictures_budd_only'] == 1 && @$modSettings['enable_buddylist'] == 1) {
if ($context['member']['is_reverse_buddy'] || allowedTo ('profile_extra_any') || $context['user']['is_owner'])
$context['can_view_pics'] = true;
else
$context['can_view_pics'] = false;
} else
$context['can_view_pics'] = true;
}
// Prepare and load comments.
$request = db_query('SELECT COUNT(*)
FROM ' . $db_prefix . 'profile_comments
WHERE COMMENT_MEMBER_ID = "' . $memID . '"', __FILE__, __LINE__);
list ($commentCount) = mysql_fetch_row ($request);
mysql_free_result ($request);
$maxComments = 10; // hard-coded; should this be configurable?
// Make sure the starting place makes sense and construct our friend the page index.
$context['start'] = (int)$_REQUEST['start'];
$context['page_index'] = constructPageIndex($scripturl . '?action=profile;u=' . $memID, $context['start'], $commentCount, $maxComments, false);
$context['current_page'] = $context['start'] / $maxComments;
$context['current_member'] = $memID;
$context['can_delete'] = allowedTo('profile_extra_any') || ($context['user']['is_owner'] && allowedTo('profile_extra_own'));
$request = db_query ('SELECT com.ID_COMMENT, com.ID_MEMBER, com.comment, com.time, mem.realName, mem.showOnline,
IFNULL(lo.logTime, 0) AS isOnline, IFNULL(a.ID_ATTACH, 0) AS ID_ATTACH, a.filename, a.attachmentType, mem.avatar
FROM ' . $db_prefix . 'profile_comments as com
LEFT JOIN ' . $db_prefix . 'members AS mem ON (com.ID_MEMBER = mem.ID_MEMBER)
LEFT JOIN ' . $db_prefix . 'log_online AS lo ON (lo.ID_MEMBER = com.ID_MEMBER)
LEFT JOIN ' . $db_prefix . 'attachments AS a ON (a.ID_MEMBER = com.ID_MEMBER)
WHERE com.COMMENT_MEMBER_ID = ' . $memID . '
ORDER BY ID_COMMENT DESC
LIMIT ' . $context['start'] . ', ' . $maxComments, __FILE__, __LINE__);
while ($row = mysql_fetch_assoc ($request)) {
censorText($row['comment']);
$row['is_online'] = (!empty($row['showOnline']) || allowedTo('moderate_forum')) && $row['isOnline'] > 0;
$context['comments'][] = array (
'body' => parse_bbc ($row['comment']),
'author' => array (
'realName' => $row['realName'],
'ID_MEMBER' => $row['ID_MEMBER'],
'avatar' => $row['avatar'] == '' ? ($row['ID_ATTACH'] > 0 ? '<img src="' . (empty($row['attachmentType']) ? $scripturl . '?action=dlattach;attach=' . $row['ID_ATTACH'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $row['filename']) . '" alt="" class="avatar" border="0" />' : '') : (stristr($row['avatar'], 'http://') ? '<img src="' . $row['avatar'] . '"' . $avatar_width . $avatar_height . ' alt="" class="avatar" border="0" />' : '<img src="' . $modSettings['avatar_url'] . '/' . htmlspecialchars($row['avatar']) . '" alt="" class="avatar" border="0" />'),
'online' => array (
'is_online' => $row['is_online'],
'text' => &$txt[$row['is_online'] ? 'online2' : 'online3'],
'href' => $scripturl . '?action=pm;sa=send;u=' . $row['ID_MEMBER'],
'link' => '<a href="' . $scripturl . '?action=pm;sa=send;u=' . $row['ID_MEMBER'] . '">' . $txt[$row['is_online'] ? 'online2' : 'online3'] . '</a>',
'image_href' => $settings['images_url'] . '/' . ($row['is_online'] ? 'useron' : 'useroff') . '.gif',
'label' => &$txt[$row['is_online'] ? 'online4' : 'online5']
),
),
'time' => timeformat ($row['time']),
'delete' => $scripturl . '?action=profile;u=' . $memID . ';sa=comment;delete=' . $row['ID_COMMENT'] . ';sesc=' . $context['session_id'],
);
}
mysql_free_result ($request);
bul
PHP:
// Recursive function to retrieve avatar files
function getAvatars($directory, $level)
üstüne ekle
PHP:
function customized($memID)
{
global $context, $modSettings, $sourcedir, $db_prefix, $func;
// filter bad HTML...
require_once $sourcedir . '/InputFilter.php';
$allowed_tags = array ('b', 'i', 'u', 'a', 'p', 'br', 'span', 'style', 'div', 'img', 'hr', 'table', 'tr', 'td', 'object', 'embed', 'param', 'ul', 'ol', 'li');
$allowed_attribs = array ('href', 'title', 'id', 'class', 'style', 'align', 'type', 'src', 'height', 'width', 'alt', 'valign', 'border', 'cellspacing', 'cellpading', 'colspan', 'name', 'value');
$myFilter = new InputFilter($allowed_tags, $allowed_attribs, 0, 0);
// HTML&CSS customization field
$request = db_query ('SELECT value FROM ' . $db_prefix . 'themes
WHERE ID_MEMBER = "' . $memID . '" AND variable = "css"', __FILE__, __LINE__);
while ($row = mysql_fetch_assoc ($request)) {
$html = $myFilter->process (un_htmlspecialchars ($row['value']));
db_query ('UPDATE ' . $db_prefix . 'themes SET
value = SUBSTRING(\'' . addslashes (htmlspecialchars ($html)) . '\', 1, 65534)
WHERE ID_MEMBER = "' . $memID . '" AND variable = "css"', __FILE__, __LINE__);
}
// MediaBox field
$request = db_query ('SELECT value FROM ' . $db_prefix . 'themes
WHERE ID_MEMBER = "' . $memID . '" AND variable = "media"', __FILE__, __LINE__);
while ($row = mysql_fetch_assoc ($request)) {
$html = $myFilter->process (un_htmlspecialchars ($row['value']));
db_query ('UPDATE ' . $db_prefix . 'themes SET
value = SUBSTRING(\'' . addslashes (htmlspecialchars ($html)) . '\', 1, 65534)
WHERE ID_MEMBER = "' . $memID . '" AND variable = "media"', __FILE__, __LINE__);
}
// Just this and nothing more thanks to the SMF's powerful template system :)
$context['show_spellchecking'] = !empty($modSettings['enableSpellChecking']) && function_exists('pspell_new');
loadThemeOptions($memID);
}
function buddies($memID)
{
global $modSettings, $context, $db_prefix, $user_profile, $scripturl;
// For avatars: if we're always html resizing, assume it's too large.
if ($modSettings['avatar_action_too_large'] == 'option_html_resize' || $modSettings['avatar_action_too_large'] == 'option_js_resize') {
$avatar_width = !empty($modSettings['avatar_max_width_external']) ? ' width="' . $modSettings['avatar_max_width_external'] . '"' : '';
$avatar_height = !empty($modSettings['avatar_max_height_external']) ? ' height="' . $modSettings['avatar_max_height_external'] . '"' : '';
} else {
$avatar_width = '';
$avatar_height = '';
}
if (isset ($modSettings['enable_buddylist']) && $modSettings['enable_buddylist'] == '1') {
$buddies = array();
$request = db_query ('SELECT BUDDY_ID FROM ' . $db_prefix . 'buddies
WHERE ID_MEMBER = ' . $context['member']['id'] . ' AND approved = 1
ORDER BY position ASC, time_updated DESC', __FILE__, __LINE__);
while ($row = mysql_fetch_assoc ($request))
$buddies[] = $row['BUDDY_ID'];
loadMemberData($buddies);
foreach ($buddies as $buddy) {
$user_data = $user_profile[$buddy];
$user_data['avatar_image'] = $user_data['avatar'] == '' ? ($user_data['ID_ATTACH'] > 0 ? '<img src="' . (empty($user_data['attachmentType']) ? $scripturl . '?action=dlattach;attach=' . $user_data['ID_ATTACH'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $user_data['filename']) . '" alt="" class="avatar" border="0" />' : '') : (stristr($user_data['avatar'], 'http://') ? '<img src="' . $user_data['avatar'] . '"' . $avatar_width . $avatar_height . ' alt="" class="avatar" border="0" />' : '<img src="' . $modSettings['avatar_url'] . '/' . htmlspecialchars($user_data['avatar']) . '" alt="" class="avatar" border="0" />');
$user_data['is_online'] = (!empty($user_data['showOnline']) || allowedTo('moderate_forum')) && $user_data['isOnline'] > 0;
if ($buddy != $memID)
$context['member']['buddies_data'][$buddy] = $user_data;
}
}
}
function pictures($memID)
{
global $sourcedir;
require_once $sourcedir . '/ProfilePictures.php';
PicturesController($memID);
}
function get_extension ($filename)
{
return substr (strrchr ($filename, '.'), 1);
}
function is_buddy ($memID, $buddyID)
{
global $db_prefix, $buddy_list, $modSettings;
// when buddy list if off, everybody is your friend ;)
if (!isset ($modSettings['enable_buddylist']) || $modSettings['enable_buddylist'] == '0')
return true;
if (!is_array ($buddy_list)) {
$request = db_query ('SELECT buddy_list FROM ' . $db_prefix . 'members WHERE ID_MEMBER = ' . $memID, __FILE__, __LINE__);
list ($buddy_list) = mysql_fetch_row ($request);
$buddy_list = explode (',', $buddy_list);
}
if (in_array ($buddyID, $buddy_list))
return true;
else
return false;
}
function comment($memID)
{
global $context, $db_prefix, $txt, $sourcedir;
// guests ar not allowed to comment
is_not_guest();
if (isset ($_GET['add'])) {
if (!$_POST['comment'])
fatal_error ($txt['profile_comment_field'], false);
checkSession('post');
// only buddies can post comments?
loadThemeOptions($memID);
if (isset ($context['member']['options']['comments_budd_only']) && $context['member']['options']['comments_budd_only'] == 1) {
if (!is_buddy ($memID, $context['user']['id']) && !allowedTo('profile_extra_any'))
fatal_error ($txt['profile_comments_buddies_only'], false);
}
$request = db_query ('INSERT INTO ' . $db_prefix . 'profile_comments SET
ID_MEMBER = "' . $context['user']['id'] . '",
comment = \'' . htmlspecialchars ($_POST['comment']) . '\',
time = "' . time() . '",
COMMENT_MEMBER_ID = "' . $memID . '"', __FILE__, __LINE__);
// should we notify user?
if (@$context['member']['options']['comments_notif_disable'] != 1) {
require_once $sourcedir . '/Subs-Post.php';
sendpm (array('to' => array($memID), 'bcc' => array()), sprintf ($txt['profile_notif_com_subject'], $context['user']['username']), sprintf ($txt['profile_notif_com_body'], $context['user']['username']), false, array ('id' => 0, 'name' => $txt['profile_notif_com_user'], 'username' => $txt['profile_notif_com_user']));
}
redirectexit('action=profile;u=' . $memID);
} elseif (isset ($_GET['delete'])) {
checkSession('get');
$allowed = false;
if (allowedTo('profile_extra_any'))
$allowed = true;
elseif ($context['user']['is_owner'] && allowedTo('profile_extra_own')) {
// Are you deleting comment that is on your own profile?
$request = db_query ('SELECT COMMENT_MEMBER_ID FROM ' . $db_prefix . 'profile_comments WHERE ID_COMMENT = "' . (int)$_GET['delete'] . '"', __FILE__, __LINE__);
list ($user_id) = mysql_fetch_row ($request);
if ($context['user']['id'] == $user_id)
$allowed = true;
}
if ($allowed)
db_query ('DELETE FROM ' . $db_prefix . 'profile_comments WHERE ID_COMMENT = "' . (int)$_GET['delete'] . '"', __FILE__, __LINE__);
redirectexit ('action=profile;u=' . $memID);
} else {
redirectexit ('action=profile;u=' . $memID);
}
}
function report($memID)
{
global $context, $txt, $scripturl, $db_prefix, $user_info, $ID_MEMBER, $modSettings, $sourcedir, $language;
is_not_guest();
if ($memID == $ID_MEMBER)
fatal_lang_error('profile_report_own', false);
if (isset($_POST['sc']) || isset($_POST['submit'])) {
checkSession();
spamProtection('spam');
$reporterName = un_htmlspecialchars($user_info['name']) . ($user_info['name'] != $user_info['username'] && $user_info['username'] != '' ? ' (' . $user_info['username'] . ')' : '');
require_once($sourcedir . '/Subs-Post.php');
// Find all of this forum's administrators.
$request = db_query("
SELECT ID_MEMBER, emailAddress, lngfile
FROM {$db_prefix}members
WHERE ID_GROUP = 1 OR FIND_IN_SET(1, additionalGroups)
AND notifyTypes != 4
ORDER BY lngfile", __FILE__, __LINE__);
// Send every moderator an email.
while ($row = mysql_fetch_assoc($request))
{
loadLanguage('UltimateProfile', empty($row['lngfile']) || empty($modSettings['userLanguage']) ? $language : $row['lngfile'], false);
// Send it to the administrator.
sendmail($row['emailAddress'], $txt['profile_report_subject'] . ': ' . $context['member']['name'],
sprintf($txt['profile_report_email1'], $context['member']['name']) . $txt['profile_report_email2'] . ' ' . (empty($ID_MEMBER) ? $txt['guest'] . ' (' . $user_info['ip'] . ')' : $reporterName) . ' ' . $txt['profile_report_email3'] . ":\n\n" .
$scripturl . '?action=profile;u=' . $context['member']['id'] . "\n\n" .
$txt['profile_report_comment'] . ":\n" .
$_POST['comment'] . "\n\n" .
$txt[130], $user_info['email']);
}
mysql_free_result($request);
redirectexit();
}
$context['sub_template'] = 'report_profile';
}
duzenlenecek dosya index.php
bul
PHP:
'buddy' => array('Subs-Members.php', 'BuddyListToggle'),
sonrasına ekle
PHP:
'buddies' => array('Buddies.php', 'BuddiesMain'),
duzenlenecek dosya: tema/Profile.template.php
bul
PHP:
if (!empty($context['profile_areas']))
değiştir
PHP:
if (!empty($context['profile_areas']) && $context['sub_template'] !== 'summary2')
bul
PHP:
// Can they add this member as a buddy?
if (!empty($context['can_have_buddy']) && !$context['user']['is_owner'])
echo '
<a href="', $scripturl, '?action=buddy;u=', $context['member']['id'], ';sesc=', $context['session_id'], '">[', $txt['buddy_' . ($context['member']['is_buddy'] ? 'remove' : 'add')], ']</a>';
değiştir
PHP:
// Can they add this member as a buddy?
if (!empty($context['can_have_buddy']) && !$context['user']['is_owner'])
echo '
<a href="', $scripturl, '?action=buddies;sa=add;u=', $context['member']['id'], ';sesc=', $context['session_id'], '">[', $txt['buddy_add'], ']</a>';
bul
PHP:
// Template for showing theme settings. Note: template_options() actually adds the theme specific options.
function template_theme()
üstüne ekle
PHP:
// Template for profile specific options - about me, interests, customization...
function template_customized()
{
global $context, $settings, $options, $scripturl, $modSettings, $txt;
// The main containing header.
echo '
<form action="', $scripturl, '?action=profile2" method="post" accept-charset="', $context['character_set'], '" name="creator" id="creator" enctype="multipart/form-data">
<table border="0" width="85%" cellspacing="1" cellpadding="4" align="center" class="bordercolor">
<tr class="titlebg">
<td height="26">
<img src="', $settings['images_url'], '/icons/profile_sm.gif" alt="" align="top" />
', $txt['profile_customized'] , '
</td>
</tr><tr class="windowbg">
<td class="smalltext" height="25" style="padding: 2ex;">
', $txt['profile_customized_info'], '
</td>
</tr><tr>
<td class="windowbg2" style="padding-bottom: 2ex;">
<table border="0" width="100%" cellpadding="5" cellspacing="0">';
echo ' <tr>
<td width="40%" valign="top">
<b>', $txt['profile_customize_enable'], '</b>
</td>
<td>
<input type="hidden" name="default_options[customized]" value="0" /><input type="checkbox" name="default_options[customized]"', (@$context['member']['options']['customized'] == 1) ? ' checked="checked"' : '', ' value="1" class="check" />
</td>
</tr>
<tr>
<td colspan="2"><br /></td>
</tr>
<tr>
<td width="40%" valign="top">
<b>', $txt['profile_customize_private'], '</b>
</td>
<td>
<input type="hidden" name="default_options[customized_private]" value="0" /><input type="checkbox" name="default_options[customized_private]"', (@$context['member']['options']['customized_private'] == 1) ? ' checked="checked"' : '', ' value="1" class="check" />
</td>
</tr>
<tr>
<td width="40%" valign="top">
<b>', $txt['profile_comments_disable'], '</b>
</td>
<td>
<input type="hidden" name="default_options[comments_disable]" value="0" /><input type="checkbox" name="default_options[comments_disable]"', (@$context['member']['options']['comments_disable'] == 1) ? ' checked="checked"' : '', ' value="1" class="check" />
</td>
</tr>
<tr>
<td width="40%" valign="top">
<b>', $txt['profile_comments_budd_only'], '</b>
</td>
<td>
<input type="hidden" name="default_options[comments_budd_only]" value="0" /><input type="checkbox" name="default_options[comments_budd_only]"', (@$context['member']['options']['comments_budd_only'] == 1) ? ' checked="checked"' : '', ' value="1" class="check" />
</td>
</tr>
<tr>
<td width="40%" valign="top">
<b>', $txt['profile_comments_notif_disable'], '</b>
</td>
<td>
<input type="hidden" name="default_options[comments_notif_disable]" value="0" /><input type="checkbox" name="default_options[comments_notif_disable]"', (@$context['member']['options']['comments_notif_disable'] == 1) ? ' checked="checked"' : '', ' value="1" class="check" />
</td>
</tr>';
if ($modSettings['profile_enable_pictures'] == 1)
echo '
<tr>
<td width="40%" valign="top">
<b>', $txt['profile_pictures_budd_only'], '</b>
</td>
<td>
<input type="hidden" name="default_options[pictures_budd_only]" value="0" /><input type="checkbox" name="default_options[pictures_budd_only]"', (@$context['member']['options']['pictures_budd_only'] == 1) ? ' checked="checked"' : '', ' value="1" class="check" />
</td>
</tr>';
echo '
<tr>
<td colspan="2">
<br />
<hr class="hrcolor" />
</td>
</tr>
<tr>
<td width="40%" valign="top">
<b>', $txt['profile_about'], ':</b>
<div class="smalltext">', $txt['profile_about_desc'], '</div><br />
<br />';
if ($context['show_spellchecking'])
echo '
<input type="button" value="', $txt['spell_check'], '" onclick="spellCheck(\'creator\', \'default_options[about]\');" />';
echo '
</td>
<td>
<textarea class="editor" name="default_options[about]" rows="8" cols="65">', @$context['member']['options']['about'], '</textarea><br />';
// Load the spell checker?
if ($context['show_spellchecking'])
echo '
<script language="JavaScript" type="text/javascript" src="', $settings['default_theme_url'], '/spellcheck.js"></script>';
echo ' </td>
</tr>';
echo '
<tr>
<td width="40%" valign="top">
<b>', $txt['profile_interests'], ':</b>
<div class="smalltext">', $txt['profile_interests_desc'], '</div><br />
<br />';
if ($context['show_spellchecking'])
echo '
<input type="button" value="', $txt['spell_check'], '" onclick="spellCheck(\'creator\', \'default_options[interests]\');" />';
echo '
</td>
<td>
<textarea class="editor" name="default_options[interests]" rows="8" cols="65">', @$context['member']['options']['interests'], '</textarea><br />
</td>
</tr>';
if ($modSettings['profile_allow_mediabox'] == 1)
echo '
<tr>
<td width="40%" valign="top">
<b>', $txt['profile_media'], ':</b>
<div class="smalltext">', $txt['profile_media_desc'], '</div><br />
<br />
</td>
<td>
<textarea class="editor" name="default_options[media]" rows="8" cols="65">', @$context['member']['options']['media'], '</textarea><br />
</td>
</tr>';
if ($modSettings['profile_allow_customize'] == 1)
echo '
<tr>
<td colspan="2">
<br />
<hr class="hrcolor" />
</td>
</tr>
<tr>
<td width="40%" valign="top">
<b>', $txt['profile_css'], ':</b>
<div class="smalltext">', $txt['profile_css_desc'], '</div><br />
<br />
</td>
<td>
<textarea class="editor" name="default_options[css]" rows="8" cols="65">', @$context['member']['options']['css'], '</textarea><br />
</td>
</tr>';
// Show the standard "Save Settings" profile button.
template_profile_save();
echo '
</table>
</td>
</tr>
</table>';
echo '
</form>';
if ($context['show_spellchecking'])
echo '
<form action="', $scripturl, '?action=spellcheck" method="post" accept-charset="', $context['character_set'], '" name="spell_form" id="spell_form" target="spellWindow"><input type="hidden" name="spellstring" value="" /></form>';
}
function template_report_profile()
{
global $context, $settings, $options, $txt, $scripturl;
echo '
<form action="', $scripturl, '?action=profile;u=', $context['member']['id'] ,';sa=report" method="post" accept-charset="', $context['character_set'], '">
<table border="0" width="80%" cellspacing="0" class="tborder" align="center" cellpadding="4">
<tr class="titlebg">
<td>', $txt['profile_report_text1'], '</td>
</tr><tr class="windowbg">
<td style="padding-bottom: 3ex;" align="center">
<div style="margin-top: 1ex; margin-bottom: 3ex;" align="left">', $txt['profile_report_text2'], '</div>
', $txt['profile_report_text3'], ': <input type="text" name="comment" size="50" />
<input type="submit" name="submit" value="', $txt['profile_report_submit'], '" style="margin-left: 1ex;" />
</td>
</tr>
</table>
<input type="hidden" name="sc" value="', $context['session_id'], '" />
</form>';
}
function template_buddies()
{
global $context, $settings, $txt, $scripturl;
echo '
<table border="0" width="85%" cellspacing="1" cellpadding="4" align="center" class="bordercolor">
<tr class="titlebg">
<td height="26">
<img src="', $settings['images_url'], '/icons/profile_sm.gif" alt="" align="top" />
<a href="', $scripturl ,'?action=profile;u=', $context['member']['id'] ,'">', $context['member']['name'] ,'</a> - ', $txt['profile_buddies'] ,'
</td>
</tr>
<tr>
<td class="windowbg2" style="padding-bottom: 2ex;">
<table width="100%">';
if (isset ($context['member']['buddies_data'])) {
$i = 1;
foreach ($context['member']['buddies_data'] as $buddy_id => $data) {
if ($i == 1)
echo '
<tr>';
echo '
<td align="center">
', $data['avatar_image'],'<br />
<a href="', $scripturl , '?action=profile;u=', $data['ID_MEMBER'] , '">' , $data['realName'] , '</a><br />
<i>', $settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/buddy_' . ($data['is_online'] ? 'useron' : 'useroff') . '.gif' . '" alt="' . $txt[$data['is_online'] ? 'online2' : 'online3'] . '" align="middle" />' : $txt[$data['is_online'] ? 'online2' : 'online3'], $settings['use_image_buttons'] ? '<span class="smalltext"> ' . $txt[$data['is_online'] ? 'online2' : 'online3'] . '</span>' : '', '</i>
</td>';
if ($i == 3)
echo '
</tr>';
$i++;
if ($i == 4) $i = 1;
}
} else
echo ' <tr><td>', $txt['profile_buddies_no'] ,'</td></tr>';
echo '
</table>
</td>
</tr>
</table>';
}
sonunda bitti editleme sıra geldi ekte verdiğim dosyaları uygulamaya.ekte verdiğim dosyaların hepsini forum ana dizinine atıp üzerine yazdırıyoruz. daha sonra database.php yi çalıtırıyoruz nasıl mı?
www.site.com/database.php birkereye mahsus.dahs onra database.php yi hosttan siliyoruz
Alttaki pakette hafif bir çeviri düzenlemesi olmustur
SEO4SMF kurulu olanlar yorumları silme sorunu yaşarsa aşağıdaki düzenlemeyi yapmanız gerekmektedir
[quote author=bayGaReZ.oRg link=topic=20602.msg180680#msg180680 date=1203567669]
[size=14pt]Yorumları Silememe Sorununa Çözüm!..[/size]
Bunu Yapıcam Diye Bütün gece uyumadım, Hata alanların ve almayanların sitesini tek tek inceledim ve sonuca ulaştım.. :-*
Öncelikle Modu Kurun.. Daha Sonra Profile.php yi açın ve bulun:
PHP:
'delete' => $scripturl . '?action=profile;u=' . $memID . ';sa=comment;delete=' . $row['ID_COMMENT'] . ';sesc=' . $context['session_id'],
Aşağıdaki ile değiştirin:
PHP:
'delete' => '<a href="http://www.sitenizinismi.com/index.php?action=profile;u=' . $memID . ';sa=comment;delete=' . $row['ID_COMMENT'] . ';sesc=' . $context['session_id'] . '">',
Burada sitenizinismi.com yerine gerekli düzenlemeyi yapmayı unutmayın..
Daha sonra UltimateProfile.template.php dosyasını açın ve bulun:
PHP:
if ($context['can_delete'])
echo '
<tr>
<td align="right" valign="bottom" class="smalltext">
<a href="', $comment['delete'], '">', $txt['profile_comment_delete'] ,'</a>
</td>
</tr>';
Bununla Değiştirin:
PHP:
if ($context['can_delete'])
echo '
<tr>
<td align="right" valign="bottom" class="smalltext">
', $comment['delete'], '', $txt['profile_comment_delete'] ,'</a>
</td>
</tr>';
Mod : RapidShare: 1-Click Webhosting
Manuel kuranların indireceği dosya : RapidShare: 1-Click Webhosting
Son düzenleme: