Smf PM "Herkesten Sil" özelliği

Başlatan BySaBo, 07 Nis 2018 19:29

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

BySaBo

07 Nis 2018 19:29 Son düzenlenme: 07 Nis 2018 21:50 BySaBo
Merhaba,

Bazen yanlış kişiye yanlış pm gönderiyorum bu durumda o kişiden silebilmek için phpmyadmin'den silmek zorunda kalıyorum.

Acaba Kişisel iletide bulunan "Alıntı , Yanıtla , Sil " butonlarının yanına sadece admine özel "Herkesten Sil" butonu ekleyebilir miyiz ?

Whatsapp özelliği gibi oldu biraz ama :) Olursa hoş olur.

snrj

smf de pm yapısını pek incelemedim ama muhtemelen yapılabilir

BySaBo

Sil'e bastığımızda sadece kişiden siliyor , bunu smf pm tablosundan silecek şekilde bir buton yapmak gerek sanırım.

snrj

Alttaki işlemin işe yaraması için öncelikle
İletilerim>Seçenekler>ayarları değiştir girin
Kişisel iletiler görünümü: kısmını sohbet tarzında yapın
Varsayılan olarak giden kutusundaki her özel mesajın bir kopyasını kaydet : işaretli olsun
sonra alttaki değişimleri yapın
Not: bu buton sadece admin tarafından gözükür ve kullanılır olur

Themes/default/PersonalMessage.template.php de bul
Kod [Seç]
// Build the normal button array.
$conversation_buttons = array(
'reply' => array('text' => 'reply_to_all', 'image' => 'reply.gif', 'lang' => true, 'url' => $scripturl . '?action=pm;sa=send;f=' . $context['folder'] . ($context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '') . ';pmsg=' . $context['current_pm'] . ';u=all', 'active' => true),
'delete' => array('text' => 'delete_conversation', 'image' => 'delete.gif', 'lang' => true, 'url' => $scripturl . '?action=pm;sa=pmactions;pm_actions[' . $context['current_pm'] . ']=delete;conversation;f=' . $context['folder'] . ';start=' . $context['start'] . ($context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '') . ';' . $context['session_var'] . '=' . $context['session_id'], 'custom' => 'onclick="return confirm(\'' . addslashes($txt['remove_message']) . '?\');"'),
);

değiştir
Kod [Seç]
// Build the normal button array.
$conversation_buttons = array(
'reply' => array('text' => 'reply_to_all', 'image' => 'reply.gif', 'lang' => true, 'url' => $scripturl . '?action=pm;sa=send;f=' . $context['folder'] . ($context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '') . ';pmsg=' . $context['current_pm'] . ';u=all', 'active' => true),
'delete' => array('text' => 'delete_conversation', 'image' => 'delete.gif', 'lang' => true, 'url' => $scripturl . '?action=pm;sa=pmactions;pm_actions[' . $context['current_pm'] . ']=delete;conversation;f=' . $context['folder'] . ';start=' . $context['start'] . ($context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '') . ';' . $context['session_var'] . '=' . $context['session_id'], 'custom' => 'onclick="return confirm(\'' . addslashes($txt['remove_message']) . '?\');"'),
);
if($context['allow_admin']){
$conversation_buttons += array(
'full' => array('text' => 'fullsil', 'image' => 'delete.gif', 'lang' => true, 'url' => $scripturl . '?action=pm;sa=fullsil;full=' . $context['current_pm'] . ';', 'active' => true),
);
}
Sources/PersonalMessage.php de
bul
Kod [Seç]
'settings' => 'MessageSettings',
);

if (!isset($_REQUEST['sa']) || !isset($subActions[$_REQUEST['sa']]))
{
$_REQUEST['sa'] = '';
MessageFolder();
}
else
{
messageIndexBar($_REQUEST['sa']);
$subActions[$_REQUEST['sa']]();
}
}
değiştir
Kod [Seç]
'settings' => 'MessageSettings',
'fullsil' => 'fullsil',
);

if (!isset($_REQUEST['sa']) || !isset($subActions[$_REQUEST['sa']]))
{
$_REQUEST['sa'] = '';
MessageFolder();
}
else
{
messageIndexBar($_REQUEST['sa']);
$subActions[$_REQUEST['sa']]();
}
}

function fullsil()
{
global $user_info, $smcFunc;
isAllowedTo('admin_forum');
$id = $_REQUEST['full'];
$request = $smcFunc['db_query']('', '
Select * FROM {db_prefix}personal_messages
WHERE id_pm = '.$id.'',
array(
)
);
while ($row = $smcFunc['db_fetch_assoc']($request))
{
$smcFunc['db_query']('', '
DELETE  FROM {db_prefix}personal_messages
WHERE id_pm_head = '.$row['id_pm_head'].'',
array(
)
);
}
$smcFunc['db_free_result']($request);
redirectexit('action=pm');
}

Themes/default/languages/index.turkish-utf8.php veya index.turkish.php
bul
Kod [Seç]
?>öncesine ekle
Kod [Seç]
$txt['fullsil'] = 'Tüm Kişilerden Sil';
DipNot:konu smf 2.0 eklentiler bölümüne taşındı.. mod paketi haline getirip paylaşan olursa :D download bölümünde yayınlayabiliriz
iyi forumlar snrj yapım :p

BySaBo

Elinize sağlık hocam , şöyle ufak bir düzeltme önericem.

Tüm kişilerden sil yaptığımızda sohbeti komple siliyor , sadece gönderilen o iletiyi silmek için ne yapabiliriz ?

snrj

onun için birşey yapamam bu aşamada
extra sql sutunu gerekir tahminimce id_pm leri değişik olduğu için