- ชื่อ: Global Announcements
- ผู้เขียน: JayBachatero
- นำเสนอโดย: DexMoreGroup
- ประเภท: New Feature
- รองรับ: SMF 1.1.xx
- ปรับปรุงล่าสุด: 25 กรกฏาคม 2551
- ต้นฉบับ: Global Announcements
รายละเอียด เพิ่มหัวข้อประกาศไว้ในบอร์ดต่างๆ แต่ mod นี้ค่อนข้างเก่านะครับไม่มีการปรับปรุงนานแล้ว หากมีความจำเป็นต้องใช้ก็ใช้ไปแบบทนเอา เจ้าของ mod ไม่ได้ยกให้ใครไปปรับปรุงต่อ และตัวเองก็ไม่ได้ปรับปรุงเอง ก็เลยไม่มีอะไรคืบหน้ามานานแล้วครับ มาดูกันว่ามันสามารถทำอะไรได้บ้าง
- แสดงการกระทำของผู้อ่านในใครบ้างที่ออนไลน์
- รองรับ BBCode และสัญลักษณ์แสดงอารมณ์
- อนุญาตให้กลุ่มต่างๆ เพิ่มหรือแก้ไขหัวข้อประกาศได้
- เปิด/ปิดการทำงานของหัวข้อประกาศ แบบด่วนๆ ได้
- เลือกให้แสดงหัวข้อประกาศในบอร์ดต่างๆ ได้
- ส่งหัวข้อประกาศให้สมาชิกทางอีเมล
- จัดเรียงลำดับตามความสำคัญของหัวข้อได้
- รองรับการแสดงผลแบบปรินท์เพจ
- มีตัวอย่างให้ดูก่อนโพสต์
ตัวอย่าง
แก้ไขไฟล์:file $boarddir/index.php
ค้นหา -->>
'findmember' => array('Subs-Auth.php', 'JSMembers'),
เพิ่มไว้หลัง -->>
'globalAnnouncementsAdmin' => array('GlobalAnnouncementsAdmin.php', 'GlobalAnnouncementsAdmin'),
'globalAnnouncements' => array('GlobalAnnouncements.php', 'GlobalAnnouncements'),
file $sourcedir/MessageIndex.php
ค้นหา -->>
$context['no_topic_listing'] = !empty($context['boards']) && empty($context['topics']) && !$context['can_post_new'];
เำพิ่มไว้หลัง -->>
//Check to see if Global Announcements are enabled.
if (isset($modSettings['global_announcements_enable']) && $modSettings['global_announcements_enable'] == 1)
{
//Load the Global Announcements.
$selectGA = db_query("
SELECT
ga.ID_GA, ga.ID_MEMBER, ga.time, ga.icon, ga.subject, ga.numViews, ga.enabled,
gab.ID_BOARD, m.realName
FROM {$db_prefix}global_announcements AS ga
LEFT JOIN {$db_prefix}global_announcements_boards AS gab ON (ga.ID_GA = gab.ID_GA)
LEFT JOIN {$db_prefix}members AS m ON (ga.ID_MEMBER = m.ID_MEMBER)
WHERE gab.ID_BOARD = '$board' OR gab.ID_board = '0'
" .(!$context['user']['is_admin'] ? "AND enabled = '1'" : ""). "
ORDER BY gaOrder ASC,
" . (isset($modSettings['global_announcements_sort_by'], $modSettings['global_announcements_sort_direction'])
? $modSettings['global_announcements_sort_by'] . ' ' . $modSettings['global_announcements_sort_direction']
: "time DESC"), __FILE__, __LINE__);
//Set $globalAnnouncements array.
$globalAnnouncements = array();
//Loop through the results.
while ($row = mysql_fetch_array($selectGA))
{
// Cencor the text Hope this fixes UTF-8 issues
censorText($row['subject']);
$globalAnnouncements[] = array(
'member' => array(
'id' => $row['ID_MEMBER'],
'name' => $row['realName'],
'link' => '<a href="' .$scripturl. '?action=profile;u=' .$row['ID_MEMBER']. '">' .$row['realName']. '</a>',
),
'ga' => array(
'id' => $row['ID_GA'],
'time' => timeformat($row['time']),
'icon' => empty($row['icon']) ? 'xx' : $row['icon'],
'subject' => censorText($row['subject']),
'views' => $row['numViews'],
'href' => $scripturl . '?action=globalAnnouncements;id=' .$row['ID_GA'],
'enabled' => $row['enabled'],
),
);
}
mysql_free_result($selectGA);
// Set $context['globalAnnouncements'].
$context['globalAnnouncements'] = $globalAnnouncements;
}
file $sourcedir/ManageNews.php
ค้นหา -->>
$context['sub_template'] = 'email_members_compose';
}
เพิ่มไว้หลัง -->>
// Global Announcements $context['default_messages'] and $context['default_message'] overwrite.
if (isset($_SESSION['ga_subject'], $_SESSION['ga_message']))
{
$context['default_subject'] = $context['forum_name'] . ': ' . $_SESSION['ga_subject'];
$context['default_message'] = $_SESSION['ga_link'] . "\n\n" . $_SESSION['ga_message'] . "\n\n" . $txt[130];
}
ค้นหา -->>
$context['sub_template'] = 'email_members_send';
return;
}
เพิ่มไว้หลัง -->>
// Unset the ga sessions
if (isset($_SESSION['ga_subject'], $_SESSION['ga_message']))
{
unset($_SESSION['ga_subject']);
unset($_SESSION['ga_message']);
unset($_SESSION['ga_link']);
}
file $sourcedir/Who.php
ค้นหา -->>
'viewmembers' => array('moderate_forum'),
เพิ่มไว้หลัง -->>
'globalAnnouncementsAdmin' => array('global_announcements_admin'),
file $sourcedir/Subs.php
ค้นหา -->>
$context['in_maintenance'] = !empty($maintenance);
เพิ่มไว้ก่อน -->>
$context['allow_admin'] .= allowedTo(array('global_announcements_admin'));
ค้นหา -->>
if (!empty($modSettings['modlog_enabled']))
$context['admin_areas']['maintenance']['areas']['view_moderation_log'] = '<a href="' . $scripturl . '?action=modlog">' . $txt['modlog_view'] . '</a>';
}
เพิ่มไว้หลัง -->>
//A new mods section for the Global Announcements.
if ((isset($modSettings['admin_areas_other']) && $modSettings['admin_areas_other'] == 1) && allowedTo('global_announcements_admin'))
{
$context['admin_areas']['other']['areas']['ga_admin'] = '<a href="' . $scripturl . '?action=globalAnnouncementsAdmin">' . $txt['global_announcements_admin'] . '</a>';
}
elseif (!isset($modSettings['admin_areas_other']) || (isset($modSettings['admin_areas_other']) && $modSettings['admin_areas_other'] == 0) && allowedTo('global_announcements_admin'))
{
$context['admin_areas']['ga_admin'] = array(
'title' => $txt['global_announcements_mods'],
'areas' => array(
'ga_admin' => '<a href="' . $scripturl . '?action=globalAnnouncementsAdmin">' . $txt['global_announcements_admin'] . '</a>',
),
);
}
file $sourcedir/ManagePermissions.php
ค้นหา -->>
'profile_title_any',
));
แก้เป็น -->>
'profile_title_any',
'global_announcements_admin',
));
ค้นหา -->>
'edit_news' => false,
),
แก้เป็น -->>
'edit_news' => false,
'global_announcements_admin' => false,
),
ค้นหา -->>
'send_mail',
);
แก้เป็น -->>
'send_mail',
'global_announcements_admin',
);
file $themedir/index.template.php
ค้นหา -->>
if ($context['current_action'] == 'search2')
$current_action = 'search';
เพิ่มไว้ก่อน -->>
if ($context['current_action'] == 'globalAnnouncementsAdmin')
$current_action = 'admin';
file $themedir/MessageIndex.template.php
ค้นหา -->>
// Create the button set...
$normal_buttons = array(
เพิ่มไว้ก่อน -->>
// Global Announcements...
if (isset($context['globalAnnouncements']) && count($context['globalAnnouncements']) != 0)
{
echo '
<div class="tborder" ', $context['browser']['needs_size_fix'] && !$context['browser']['is_ie6'] ? 'style="width: 100%;"' : '', '>
<table border="0" width="100%" cellspacing="1" cellpadding="4" class="bordercolor">
<tr>
<td colspan="7" class="titlebg">Global Announcements</td>
<tr>
<tr>
<td class="catbg3" width="9%" colspan="2"></td>
<td class="catbg3">', $txt[70], '</td>
<td class="catbg3" width="14%">', $txt[109], '</td>
<td class="catbg3" width="4%" align="center">', $txt[110], '</td>
<td class="catbg3" width="4%" align="center">', $txt[301], '</td>
<td class="catbg3" width="22%">Time</td>
</tr>';
// Loop through the Global Announcements
foreach ($context['globalAnnouncements'] as $globalAnnouncement)
{
echo '
<tr class="windowbg2">
<td align="center">
<img src="', $settings['images_url'], '/post/' .$globalAnnouncement['ga']['icon']. '.gif" alt="" />
</td>
<td align="center">
<img src="', $settings['images_url'], '/post/exclamation.gif" alt="" />
</td>
<td ' ,$globalAnnouncement['ga']['enabled'] == 0 ? 'style="background-color: #e9e9e9; color: #8d8d8d;"' : 'class="windowbg"', '>
<a href="' ,$globalAnnouncement['ga']['href'], '" >', $globalAnnouncement['ga']['subject'], '</a>
</td>
<td>
', $globalAnnouncement['member']['link'], '
</td>
<td align="center" class="windowbg">
--
</td>
<td align="center" class="windowbg">
', $globalAnnouncement['ga']['views'], '
</td>
<td>
', $globalAnnouncement['ga']['time'], '
</td>
</tr>';
}
echo '
</table>
</div><br />';
}
file $languagedir/Modifications.thai-utf8.php
เพิ่ม -->>
//Global Announcements adminIndex text strings.
$txt['global_announcements_admin'] = 'Global Announcements';
$txt['global_announcements_mods'] = 'Mods';
$txt['whoallow_globalAnnouncementsAdmin'] = 'Managing the <a href="' . $scripturl . '?action=globalAnnouncementsAdmin">Global Announcements</a>.';
$txt['whoall_globalAnnouncements'] = 'Viewing a Global Announcement';
file $languagedir/Help.thai-utf8.php
เพิ่ม -->>
$helptxt['global_announcements_enable'] = 'This will override the local enable/disable setting for Global Announcements and enable it or disable it';
file $languagedir/ManagePermissions.thai-utf8.php
เพิ่ม -->>
//Global Announcements permissions.
$txt['permissionname_global_announcements_admin'] = 'Manage Global Announcements';
$txt['permissionhelp_global_announcements_admin'] = 'If you enable this permission for this membergroup they will be allowed to add, edit, delete Global Announcements';
file $languagedir/Errors.thai-utf8.php
$txt['cannot_global_announcements_admin'] = 'Sorry, you\'re not allowed to admin the Global Announcements area.';
ดาวน์โหลด: GlobalAnnouncements.rar
ขออภัย! ท่านไม่สามารถเข้าถึงข้อมูลส่วนนี้ได้ กรุณาอ่าน เงื่อนไขการใช้งาน DexMore.Comแตกไฟล์แล้วอัพโหลดไปไว้ที่
file GlobalAnnouncementsAdmin.php -->> $sourcedir
file GlobalAnnouncementsAdmin.template.php -->> $themedir
file GlobalAnnouncementsAdmin.english.php -->> $languagedir
file GlobalAnnouncementsAdmin.thai-utf8.php -->> $languagedir
file GlobalAnnouncements.php -->> $sourcedir
file GlobalAnnouncements.template.php -->> $themedir
file Subs-GlobalAnnouncementsAdmin.php -->> $sourcedir
สร้างไฟล์: ga_install.php เพื่อสร้างฐานข้อมูล ไว้ใน $boarddir (ที่เดียวกับไฟล์ SSI.php) รัน http://www.your_url.xxx/$boarddir/ga_install.php -->> Enter เสร็จแล้วลบทิ้ง
<?php
echo '<div class="tborder" style="margin: 15px; width: 50%;">
<div class="titlebg" style="padding: 1ex;"><b>Global Announcements Database Changes</b></div>
<ul style="margin: 0; padding: 0; list-style: none;">';
$ga = mysql_query("
CREATE TABLE IF NOT EXISTS {$db_prefix}global_announcements (
ID_GA int(10) unsigned NOT NULL auto_increment,
ID_MEMBER mediumint(8) unsigned NOT NULL default '0',
time int(10) unsigned NOT NULL,
modifiedTime int(10) unsigned NOT NULL,
modifiedName tinytext NOT NULL,
icon varchar(16) NOT NULL,
subject tinytext NOT NULL,
body text NOT NULL,
enabled tinyint(4) unsigned NOT NULL default '1',
countViews tinyint(4) unsigned NOT NULL default '1',
numViews int(10) unsigned NOT NULL default '0',
gaOrder int(10) unsigned NOT NULL default '999',
PRIMARY KEY (ID_GA),
KEY ID_MEMBER (ID_MEMBER)
)");
if ($ga === false)
{
echo '
<li class="windowbg"><b>Error:</b> Adding global_announcements table failed.</li>';
}
else
{
echo '
<li class="windowbg"><b>Success:</b> global_announcements table was added successfully.</li>';
}
$gab = mysql_query("
CREATE TABLE IF NOT EXISTS {$db_prefix}global_announcements_boards (
ID_GA mediumint(10) unsigned NOT NULL,
ID_BOARD mediumint(10) unsigned NOT NULL,
KEY ID_GA (ID_GA)
)");
if ($gab === false)
{
echo '
<li class="windowbg"><b>Error:</b> Adding global_announcements_boards table failed.</li>';
}
else
{
echo '
<li class="windowbg"><b>Success:</b> global_announcements_boards table was added successfully.</li>';
}
$settingsTable = mysql_query("
REPLACE INTO {$db_prefix}settings
(variable, value)
VALUES ('global_announcements_enable', 1)");
if ($settingsTable === false)
{
echo '
<li class="windowbg"><b>Error:</b> The installer was unable to enable the Global Announcements. To enable go to <i>Admin > Features and Options</i></li>';
}
else
{
echo '
<li class="windowbg"><b>Success:</b> Global Anoouncements is enabled.</li>';
}
$request = mysql_query("
SHOW COLUMNS
FROM {$db_prefix}global_announcements");
while ($row = mysql_fetch_array($request))
$rows[] = $row['Field'];
if (!in_array('gaOrder', $rows))
{
$gaOrder = mysql_query("
ALTER TABLE {$db_prefix}global_announcements
ADD COLUMN gaOrder
INT(10) UNSIGNED NOT NULL DEFAULT '999'");
if ($gaOrder === false)
{
echo '
<li class="windowbg"><b>Error:</b> gaOrder column already exists</li>';
}
else
{
echo '
<li class="windowbg"><b>Success:</b> gaOrder column was added.</li>>';
}
}
else
echo '
<li class="windowbg"><b>Success:</b> gaOrder column already exists.</li>';
echo '
<li class="windowbg2">The Global Announcements mod was successfully installed. Click <a href="' ,$scripturl,'?action=globalAnnouncementsAdmin">here</a> to add a Global Announcement.</li>
</ul></div>';
?>
การตั้งค่า: ผู้ดูแล -->> จัดการประกาศทั่วไป
ลิงค์หัวข้อ:
http://dexmore.com/topic/2319