mirror of
https://github.com/torrentpier/torrentpier
synced 2025-08-21 22:03:49 -07:00
Merge branch 'feature/atom' into develop
* feature/atom: Atom ajax post Atom updates Function update_atom Atom path Atom links Atom images + forum map fix Atom for users Atom picture Atom
This commit is contained in:
commit
892b601b64
23 changed files with 467 additions and 82 deletions
|
@ -22,6 +22,7 @@ TorrentPier II - движок торрент-трекера, написанны
|
|||
|
||||
Исходя из настроек вашего сервера, устанавливаем рекомендуемые права доступа (chmod) на указанные папки **777**, а на файлы внутри этих папок (кроме файлов **.htaccess** и **.keep**) **666**:
|
||||
- ajax/html
|
||||
- atom
|
||||
- cache
|
||||
- cache/filecache
|
||||
- images
|
||||
|
|
|
@ -645,6 +645,7 @@ INSERT INTO `bb_cron` VALUES (19, 1, 'Captcha', 'captcha_gen_gc.php', 'daily', N
|
|||
INSERT INTO `bb_cron` VALUES (20, 1, 'Tracker dl-complete count', 'tr_complete_count.php', 'interval', NULL, NULL, 255, '', '', '06:00:00', 0, '', 0, 0, 0);
|
||||
INSERT INTO `bb_cron` VALUES (21, 1, 'Cache garbage collector', 'cache_gc.php', 'interval', NULL, NULL, 255, '', '', '00:05:00', 0, '', 0, 0, 0);
|
||||
INSERT INTO `bb_cron` VALUES (22, 1, 'Sitemap update', 'sitemap.php', 'daily', NULL, '06:00:00', 30, '', '', NULL, 0, '', 0, 0, 0);
|
||||
INSERT INTO `bb_cron` VALUES (23, 1, 'Update forums atom', 'update_forums_atom.php', 'interval', NULL, NULL, 255, '', '', '00:20:00', 0, '', 0, 0, 0);
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
|
|
@ -57,6 +57,10 @@ switch($this->request['type'])
|
|||
$this->prompt_for_confirm($lang['CONFIRM_DELETE']);
|
||||
}
|
||||
post_delete($post_id);
|
||||
|
||||
// Update atom feed
|
||||
update_atom('topic', (int) $this->request['topic_id']);
|
||||
|
||||
$this->response['hide'] = true;
|
||||
$this->response['post_id'] = $post_id;
|
||||
}
|
||||
|
@ -158,6 +162,9 @@ switch($this->request['type'])
|
|||
}
|
||||
else $this->ajax_die($lang['EMPTY_MESSAGE']);
|
||||
|
||||
// Update atom feed
|
||||
update_atom('topic', (int) $this->request['topic_id']);
|
||||
|
||||
$this->response['html'] = bbcode2html($text);
|
||||
}
|
||||
else
|
||||
|
@ -309,6 +316,9 @@ switch($this->request['type'])
|
|||
user_notification('reply', $post, $post['topic_title'], $post['forum_id'], $topic_id, $notify);
|
||||
}
|
||||
|
||||
// Update atom feed
|
||||
update_atom('topic', (int) $this->request['topic_id']);
|
||||
|
||||
$this->response['redirect'] = make_url(POST_URL . "$post_id#$post_id");
|
||||
break;
|
||||
|
||||
|
|
0
upload/atom/.keep
Normal file
0
upload/atom/.keep
Normal file
|
@ -56,6 +56,7 @@
|
|||
* Avatars
|
||||
* Misc
|
||||
* Captcha
|
||||
* Atom feed
|
||||
**/
|
||||
|
||||
if (!defined('BB_ROOT')) die(basename(__FILE__));
|
||||
|
@ -68,8 +69,8 @@ $domain_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : $do
|
|||
|
||||
// Version info
|
||||
$bb_cfg['tp_version'] = '2.0.9 (RC)';
|
||||
$bb_cfg['tp_release_date'] = '07-08-2014';
|
||||
$bb_cfg['tp_release_state'] = 'R594b';
|
||||
$bb_cfg['tp_release_date'] = '14-08-2014';
|
||||
$bb_cfg['tp_release_state'] = 'R595';
|
||||
|
||||
// Database
|
||||
$charset = 'utf8';
|
||||
|
@ -592,8 +593,14 @@ $bb_cfg['advert_url'] = 'misc.php?do=info&show=advert';
|
|||
$bb_cfg['captcha'] = array(
|
||||
'disabled' => false,
|
||||
'secret_key' => 'secret_key',
|
||||
'img_url' => './images/captcha/', # without '/'
|
||||
'img_path' => BB_PATH .'/images/captcha/', # without '/'
|
||||
'img_url' => './images/captcha/',
|
||||
'img_path' => BB_PATH .'/images/captcha/',
|
||||
);
|
||||
|
||||
// Atom feed
|
||||
$bb_cfg['atom'] = array(
|
||||
'path' => BB_PATH .'/atom',
|
||||
'url' => './atom',
|
||||
);
|
||||
|
||||
define('BB_CFG_LOADED', true);
|
68
upload/feed.php
Normal file
68
upload/feed.php
Normal file
|
@ -0,0 +1,68 @@
|
|||
<?php
|
||||
|
||||
define('IN_FORUM', true);
|
||||
define('BB_SCRIPT', 'feed');
|
||||
define('BB_ROOT', './');
|
||||
require(BB_ROOT .'common.php');
|
||||
|
||||
$user->session_start(array('req_login' => true));
|
||||
|
||||
$mode = (string) @$_REQUEST['mode'];
|
||||
$type = (string) @$_POST['type'];
|
||||
$id = (int) @$_POST['id'];
|
||||
$timecheck = TIMENOW - 600;
|
||||
|
||||
if (!$mode) bb_simple_die($lang['ATOM_NO_MODE']);
|
||||
|
||||
if ($mode == 'get_feed_url' && ($type == 'f' || $type == 'u') && $id >= 0)
|
||||
{
|
||||
if ($type == 'f')
|
||||
{
|
||||
// Check if the user has actually sent a forum ID
|
||||
$sql = "SELECT allow_reg_tracker, forum_name FROM ". BB_FORUMS ." WHERE forum_id = $id LIMIT 1";
|
||||
if (!$forum_data = DB()->fetch_row($sql))
|
||||
{
|
||||
if ($id == 0)
|
||||
{
|
||||
$forum_data = array();
|
||||
}
|
||||
else bb_simple_die($lang['ATOM_ERROR'].' #1');
|
||||
}
|
||||
if (file_exists($bb_cfg['atom']['path'] .'/f/'. $id .'.atom') && filemtime($bb_cfg['atom']['path'] .'/f/'. $id .'.atom') > $timecheck)
|
||||
{
|
||||
redirect($bb_cfg['atom']['url'] .'/f/'. $id .'.atom');
|
||||
}
|
||||
else
|
||||
{
|
||||
require_once(INC_DIR .'functions_atom.php');
|
||||
if (update_forum_feed($id, $forum_data)) redirect($bb_cfg['atom']['url'] .'/f/'. $id .'.atom');
|
||||
else bb_simple_die($lang['ATOM_NO_FORUM']);
|
||||
}
|
||||
}
|
||||
if ($type == 'u')
|
||||
{
|
||||
// Check if the user has actually sent a user ID
|
||||
if ($id < 1)
|
||||
{
|
||||
bb_simple_die($lang['ATOM_ERROR'].' #2');
|
||||
}
|
||||
if (!$username = get_username($id))
|
||||
{
|
||||
bb_simple_die($lang['ATOM_ERROR'].' #3');
|
||||
}
|
||||
if (file_exists($bb_cfg['atom']['path'] .'/u/'. floor($id/5000) .'/'. ($id % 100) .'/'. $id .'.atom') && filemtime($bb_cfg['atom']['path'] .'/u/'. floor($id/5000) .'/'. ($id % 100) .'/'. $id .'.atom') > $timecheck)
|
||||
{
|
||||
redirect($bb_cfg['atom']['url'] .'/u/'. floor($id/5000) .'/'. ($id % 100) .'/'. $id .'.atom');
|
||||
}
|
||||
else
|
||||
{
|
||||
require_once(INC_DIR .'functions_atom.php');
|
||||
if (update_user_feed($id, $username)) redirect($bb_cfg['atom']['url'] .'/u/'. floor($id/5000) .'/'. ($id % 100) .'/'. $id .'.atom');
|
||||
else bb_simple_die($lang['ATOM_NO_USER']);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bb_simple_die($lang['ATOM_ERROR'].' #4');
|
||||
}
|
|
@ -215,8 +215,6 @@ class captcha_kcaptcha extends captcha_common
|
|||
$credits = $bb_cfg['server_name']; # if empty, HTTP_HOST will be shown
|
||||
|
||||
# CAPTCHA image colors (RGB, 0-255)
|
||||
//$foreground_color = array(0, 0, 0);
|
||||
//$background_color = array(220, 230, 255);
|
||||
$foreground_color = array(mt_rand(0,100), mt_rand(0,100), mt_rand(0,100));
|
||||
$background_color = array(mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));
|
||||
|
||||
|
@ -316,7 +314,7 @@ class captcha_kcaptcha extends captcha_common
|
|||
|
||||
$center=$x/2;
|
||||
|
||||
// credits. To remove, see configuration file
|
||||
// credits
|
||||
$img2=imagecreatetruecolor($width, $height+($show_credits?12:0));
|
||||
$foreground=imagecolorallocate($img2, $foreground_color[0], $foreground_color[1], $foreground_color[2]);
|
||||
$background=imagecolorallocate($img2, $background_color[0], $background_color[1], $background_color[2]);
|
||||
|
@ -390,8 +388,6 @@ class captcha_kcaptcha extends captcha_common
|
|||
file_write('', $img_path, null, true, true);
|
||||
|
||||
imagejpeg($img2, $img_path, $jpeg_quality);
|
||||
# imagegif($img2, $img_path);
|
||||
# imagepng($img2, $img_path);
|
||||
|
||||
imagedestroy($img2);
|
||||
|
||||
|
|
23
upload/includes/cron/jobs/update_forums_atom.php
Normal file
23
upload/includes/cron/jobs/update_forums_atom.php
Normal file
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
|
||||
if (!defined('BB_ROOT')) die(basename(__FILE__));
|
||||
|
||||
global $bb_cfg;
|
||||
|
||||
require_once(INC_DIR .'functions_atom.php');
|
||||
|
||||
$timecheck = TIMENOW - 600;
|
||||
$forums_data = DB()->fetch_rowset("SELECT forum_id, allow_reg_tracker, forum_name FROM ". BB_FORUMS);
|
||||
|
||||
if (!file_exists($bb_cfg['atom']['path'] .'/f/0.atom') && filemtime($bb_cfg['atom']['path'] .'/f/0.atom') <= $timecheck)
|
||||
{
|
||||
update_forum_feed(0, $forums_data);
|
||||
}
|
||||
|
||||
foreach ($forums_data as $forum_data)
|
||||
{
|
||||
if (!file_exists($bb_cfg['atom']['path'] .'/f/'. $forum_data['forum_id'] .'.atom') && filemtime($bb_cfg['atom']['path'] .'/f/'. $forum_data['forum_id'] .'.atom') <= $timecheck)
|
||||
{
|
||||
update_forum_feed($forum_data['forum_id'], $forum_data);
|
||||
}
|
||||
}
|
|
@ -11,7 +11,7 @@ function get_path_from_id ($id, $ext_id, $base_path, $first_div, $sec_div)
|
|||
|
||||
function get_avatar_path ($id, $ext_id, $base_path = '')
|
||||
{
|
||||
return get_path_from_id($id, $ext_id, $base_path, 5000000, 100);
|
||||
return get_path_from_id($id, $ext_id, $base_path, 5000, 100);
|
||||
}
|
||||
|
||||
function delete_avatar ($user_id, $avatar_ext_id)
|
||||
|
@ -24,7 +24,7 @@ function delete_avatar ($user_id, $avatar_ext_id)
|
|||
function get_attach_path ($id)
|
||||
{
|
||||
global $bb_cfg;
|
||||
return get_path_from_id($id, '', $bb_cfg['attach']['upload_path'], 1000000, 100);
|
||||
return get_path_from_id($id, '', $bb_cfg['attach']['upload_path'], 1000, 100);
|
||||
}
|
||||
|
||||
function get_tracks ($type)
|
||||
|
@ -2837,3 +2837,20 @@ function is_gold ($type)
|
|||
|
||||
return $is_gold;
|
||||
}
|
||||
|
||||
function update_atom ($type, $id)
|
||||
{
|
||||
require_once(INC_DIR .'functions_atom.php');
|
||||
|
||||
switch ($type)
|
||||
{
|
||||
case 'user':
|
||||
update_user_feed($id, get_username($id));
|
||||
break;
|
||||
|
||||
case 'topic':
|
||||
$topic_poster = (int) DB()->fetch_row("SELECT topic_poster FROM ". BB_TOPICS ." WHERE topic_id = $id LIMIT 1", 'topic_poster');
|
||||
update_user_feed($topic_poster, get_username($topic_poster));
|
||||
break;
|
||||
}
|
||||
}
|
|
@ -277,6 +277,13 @@ function topic_delete ($mode_or_topic_id, $forum_id = null, $prune_time = 0, $pr
|
|||
GROUP BY p.poster_id
|
||||
");
|
||||
|
||||
// Get array for atom update
|
||||
$atom_csv = array();
|
||||
foreach (DB()->fetch_rowset('SELECT user_id FROM '.$tmp_user_posts) as $at)
|
||||
{
|
||||
$atom_csv[] = $at['user_id'];
|
||||
}
|
||||
|
||||
DB()->query("
|
||||
UPDATE
|
||||
$tmp_user_posts tmp, ". BB_USERS ." u
|
||||
|
@ -384,6 +391,12 @@ function topic_delete ($mode_or_topic_id, $forum_id = null, $prune_time = 0, $pr
|
|||
// Sync
|
||||
sync('forum', array_keys($sync_forums));
|
||||
|
||||
// Update atom feed
|
||||
foreach ($atom_csv as $atom)
|
||||
{
|
||||
update_atom('user', $atom);
|
||||
}
|
||||
|
||||
DB()->query("DROP TEMPORARY TABLE $tmp_delete_topics");
|
||||
|
||||
return $deleted_topics_count;
|
||||
|
@ -663,6 +676,16 @@ function post_delete ($mode_or_post_id, $user_id = null, $exclude_first = true)
|
|||
sync('forum', array_keys($sync_forums));
|
||||
sync('user_posts', $sync_users);
|
||||
|
||||
// Update atom feed
|
||||
foreach ($sync_topics as $atom_topic)
|
||||
{
|
||||
update_atom('topic', $atom_topic);
|
||||
}
|
||||
foreach ($sync_users as $atom_user)
|
||||
{
|
||||
update_atom('user', $atom_user);
|
||||
}
|
||||
|
||||
DB()->query("DROP TEMPORARY TABLE $tmp_delete_posts");
|
||||
|
||||
return $deleted_posts_count;
|
||||
|
@ -670,7 +693,7 @@ function post_delete ($mode_or_post_id, $user_id = null, $exclude_first = true)
|
|||
|
||||
function user_delete ($user_id, $delete_posts = false)
|
||||
{
|
||||
global $log_action;
|
||||
global $bb_cfg, $log_action;
|
||||
|
||||
if (!$user_csv = get_id_csv($user_id))
|
||||
{
|
||||
|
@ -755,6 +778,13 @@ function user_delete ($user_id, $delete_posts = false)
|
|||
|
||||
DB()->query("UPDATE ". BB_PRIVMSGS ." SET privmsgs_from_userid = ". DELETED ." WHERE privmsgs_from_userid IN($user_csv)");
|
||||
DB()->query("UPDATE ". BB_PRIVMSGS ." SET privmsgs_to_userid = ". DELETED ." WHERE privmsgs_to_userid IN($user_csv)");
|
||||
|
||||
// Delete user feed
|
||||
foreach (explode(',', $user_csv) as $user_id)
|
||||
{
|
||||
$file_path = $bb_cfg['atom']['path'] .'/u/'. floor($user_id/5000) .'/'. ($user_id % 100) .'/'. $user_id .'.atom';
|
||||
@unlink($file_path);
|
||||
}
|
||||
}
|
||||
|
||||
function get_usernames_for_log ($user_id)
|
||||
|
|
186
upload/includes/functions_atom.php
Normal file
186
upload/includes/functions_atom.php
Normal file
|
@ -0,0 +1,186 @@
|
|||
<?php
|
||||
|
||||
if (!defined('BB_ROOT')) die(basename(__FILE__));
|
||||
|
||||
// Максимум записей = 50
|
||||
// [Обновлено] - если дата изменения первого поста топика не старее недели (?) или в топике новые сообщения не старее недели (?)
|
||||
|
||||
function update_forum_feed ($forum_id, $forum_data)
|
||||
{
|
||||
global $bb_cfg;
|
||||
$file_path = $bb_cfg['atom']['path'] .'/f/'. $forum_id .'.atom';
|
||||
$select_tor_sql = $join_tor_sql = '';
|
||||
if ($forum_id == 0) $forum_data['forum_name'] = 'Общая по всем разделам';
|
||||
if ($forum_id > 0 && $forum_data['allow_reg_tracker'])
|
||||
{
|
||||
$select_tor_sql = ', tor.size AS tor_size, tor.tor_status';
|
||||
$join_tor_sql = "LEFT JOIN ". BB_BT_TORRENTS ." tor ON(t.topic_id = tor.topic_id)";
|
||||
}
|
||||
if ($forum_id == 0)
|
||||
{
|
||||
$sql = "
|
||||
SELECT
|
||||
t.topic_id, t.topic_title, t.topic_status,
|
||||
u1.username AS first_username,
|
||||
p1.post_time AS topic_first_post_time, p1.post_edit_time AS topic_first_post_edit_time,
|
||||
p2.post_time AS topic_last_post_time, p2.post_edit_time AS topic_last_post_edit_time,
|
||||
tor.size AS tor_size, tor.tor_status
|
||||
FROM ". BB_BT_TORRENTS ." tor
|
||||
LEFT JOIN ". BB_TOPICS ." t ON(tor.topic_id = t.topic_id)
|
||||
LEFT JOIN ". BB_USERS ." u1 ON(t.topic_poster = u1.user_id)
|
||||
LEFT JOIN ". BB_POSTS ." p1 ON(t.topic_first_post_id = p1.post_id)
|
||||
LEFT JOIN ". BB_POSTS ." p2 ON(t.topic_last_post_id = p2.post_id)
|
||||
ORDER BY t.topic_last_post_time DESC
|
||||
LIMIT 100
|
||||
";
|
||||
}
|
||||
else if ($forum_id > 0)
|
||||
{
|
||||
$sql = "
|
||||
SELECT
|
||||
t.topic_id, t.topic_title, t.topic_status,
|
||||
u1.username AS first_username,
|
||||
p1.post_time AS topic_first_post_time, p1.post_edit_time AS topic_first_post_edit_time,
|
||||
p2.post_time AS topic_last_post_time, p2.post_edit_time AS topic_last_post_edit_time
|
||||
$select_tor_sql
|
||||
FROM ". BB_TOPICS ." t
|
||||
LEFT JOIN ". BB_USERS ." u1 ON(t.topic_poster = u1.user_id)
|
||||
LEFT JOIN ". BB_POSTS ." p1 ON(t.topic_first_post_id = p1.post_id)
|
||||
LEFT JOIN ". BB_POSTS ." p2 ON(t.topic_last_post_id = p2.post_id)
|
||||
$join_tor_sql
|
||||
WHERE t.forum_id = $forum_id
|
||||
ORDER BY t.topic_last_post_time DESC
|
||||
LIMIT 50
|
||||
";
|
||||
}
|
||||
$topics_tmp = DB()->fetch_rowset($sql);
|
||||
$topics = array();
|
||||
foreach ($topics_tmp as $topic)
|
||||
{
|
||||
if (isset($topic['topic_status']))
|
||||
{
|
||||
if ($topic['topic_status'] == TOPIC_MOVED) continue;
|
||||
}
|
||||
if (isset($topic['tor_status']))
|
||||
{
|
||||
if (isset($bb_cfg['tor_frozen'][$topic['tor_status']])) continue;
|
||||
}
|
||||
$topics[] = $topic;
|
||||
}
|
||||
if (!count($topics))
|
||||
{
|
||||
@unlink($file_path);
|
||||
return false;
|
||||
}
|
||||
if (create_atom($file_path, 'f', $forum_id, htmlCHR($forum_data['forum_name']), $topics)) return true;
|
||||
else return false;
|
||||
}
|
||||
|
||||
function update_user_feed ($user_id, $username)
|
||||
{
|
||||
global $bb_cfg;
|
||||
$file_path = $bb_cfg['atom']['path'] .'/u/'. floor($user_id/5000) .'/'. ($user_id % 100) .'/'. $user_id .'.atom';
|
||||
$sql = "
|
||||
SELECT
|
||||
t.topic_id, t.topic_title, t.topic_status,
|
||||
u1.username AS first_username,
|
||||
p1.post_time AS topic_first_post_time, p1.post_edit_time AS topic_first_post_edit_time,
|
||||
p2.post_time AS topic_last_post_time, p2.post_edit_time AS topic_last_post_edit_time,
|
||||
tor.size AS tor_size, tor.tor_status
|
||||
FROM ". BB_TOPICS ." t
|
||||
LEFT JOIN ". BB_USERS ." u1 ON(t.topic_poster = u1.user_id)
|
||||
LEFT JOIN ". BB_POSTS ." p1 ON(t.topic_first_post_id = p1.post_id)
|
||||
LEFT JOIN ". BB_POSTS ." p2 ON(t.topic_last_post_id = p2.post_id)
|
||||
LEFT JOIN ". BB_BT_TORRENTS ." tor ON(t.topic_id = tor.topic_id)
|
||||
WHERE t.topic_poster = $user_id
|
||||
ORDER BY t.topic_last_post_time DESC
|
||||
LIMIT 50
|
||||
";
|
||||
$topics_tmp = DB()->fetch_rowset($sql);
|
||||
$topics = array();
|
||||
foreach ($topics_tmp as $topic)
|
||||
{
|
||||
if (isset($topic['topic_status']))
|
||||
{
|
||||
if ($topic['topic_status'] == TOPIC_MOVED) continue;
|
||||
}
|
||||
if (isset($topic['tor_status']))
|
||||
{
|
||||
if (isset($bb_cfg['tor_frozen'][$topic['tor_status']])) continue;
|
||||
}
|
||||
$topics[] = $topic;
|
||||
}
|
||||
if (!count($topics))
|
||||
{
|
||||
@unlink($file_path);
|
||||
return false;
|
||||
}
|
||||
if (create_atom($file_path, 'u', $user_id, wbr($username), $topics)) return true;
|
||||
else return false;
|
||||
}
|
||||
|
||||
function create_atom ($file_path, $mode, $id, $title, $topics)
|
||||
{
|
||||
global $bb_cfg;
|
||||
$dir = dirname($file_path);
|
||||
if (!file_exists($dir))
|
||||
{
|
||||
if (!bb_mkdir($dir)) return false;
|
||||
}
|
||||
foreach ($topics as $topic)
|
||||
{
|
||||
$last_time = $topic['topic_last_post_time'];
|
||||
if ($topic['topic_last_post_edit_time']) $last_time = $topic['topic_last_post_edit_time'];
|
||||
$date = bb_date($last_time, 'Y-m-d', 0);
|
||||
$time = bb_date($last_time, 'H:i:s', 0);
|
||||
break;
|
||||
}
|
||||
$atom = "";
|
||||
$atom .= "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
|
||||
$atom .= "<feed xmlns=\"http://www.w3.org/2005/Atom\" xml:base=\"http://". $bb_cfg['server_name'] . $bb_cfg['script_path'] ."\">\n";
|
||||
$atom .= "<title>$title</title>\n";
|
||||
$atom .= "<updated>". $date ."T$time+00:00</updated>\n";
|
||||
$atom .= "<id>tag:rto.feed,2000:/$mode/$id</id>\n";
|
||||
$atom .= "<link href=\"http://". $bb_cfg['server_name'] . $bb_cfg['script_path'] ."\" />\n";
|
||||
foreach ($topics as $topic)
|
||||
{
|
||||
$topic_id = $topic['topic_id'];
|
||||
$tor_size = '';
|
||||
if (isset($topic['tor_size']))
|
||||
{
|
||||
$tor_size = str_replace(' ', ' ', ' ['. humn_size($topic['tor_size']) .']');
|
||||
}
|
||||
$topic_title = $topic['topic_title'];
|
||||
$orig_word = array();
|
||||
$replacement_word = array();
|
||||
obtain_word_list($orig_word, $replacement_word);
|
||||
if (count($orig_word))
|
||||
{
|
||||
$topic_title = preg_replace($orig_word, $replacement_word, $topic_title);
|
||||
}
|
||||
$topic_title = wbr($topic_title);
|
||||
$author_name = ($topic['first_username']) ? wbr($topic['first_username']) : 'Гость';
|
||||
$last_time = $topic['topic_last_post_time'];
|
||||
if ($topic['topic_last_post_edit_time']) $last_time = $topic['topic_last_post_edit_time'];
|
||||
$date = bb_date($last_time, 'Y-m-d', 0);
|
||||
$time = bb_date($last_time, 'H:i:s', 0);
|
||||
$updated = '';
|
||||
$checktime = TIMENOW - 604800; // неделя (week)
|
||||
if ($topic['topic_first_post_edit_time'] && $topic['topic_first_post_edit_time'] > $checktime) $updated = '[Обновлено] ';
|
||||
$atom .= "<entry>\n";
|
||||
$atom .= " <title type=\"html\"><![CDATA[$updated$topic_title$tor_size]]></title>\n";
|
||||
$atom .= " <author>\n";
|
||||
$atom .= " <name>$author_name</name>\n";
|
||||
$atom .= " </author>\n";
|
||||
$atom .= " <updated>". $date ."T$time+00:00</updated>\n";
|
||||
$atom .= " <id>tag:rto.feed,". $date .":/t/$topic_id</id>\n";
|
||||
$atom .= " <link href=\"viewtopic.php?t=$topic_id\" />\n";
|
||||
$atom .= "</entry>\n";
|
||||
}
|
||||
$atom .= "</feed>";
|
||||
@unlink($file_path);
|
||||
$fp = fopen($file_path, "w");
|
||||
fwrite($fp, $atom);
|
||||
fclose ($fp);
|
||||
return true;
|
||||
}
|
|
@ -135,7 +135,8 @@ $lang['SEARCH_SELF_BY_LAST'] = 'last post time';
|
|||
$lang['SEARCH_SELF_BY_MY'] = 'my post time';
|
||||
$lang['SEARCH_UNANSWERED'] = 'View unanswered posts';
|
||||
$lang['SEARCH_UNANSWERED_SHORT'] = 'unanswered';
|
||||
$lang['SEARCH_LATEST'] = 'latest';
|
||||
$lang['SEARCH_LATEST'] = 'Latest topics';
|
||||
$lang['LATEST_RELEASES'] = 'Latest releases';
|
||||
|
||||
$lang['REGISTER'] = 'Register';
|
||||
$lang['PROFILE'] = 'Profile';
|
||||
|
@ -1194,7 +1195,7 @@ $lang['SEL_CHAPTERS'] = 'Link to the selected partitions';
|
|||
$lang['NOT_SEL_CHAPTERS'] = 'You have not selected topics';
|
||||
$lang['SEL_CHAPTERS_HELP'] = 'You can select a maximum %s partition';
|
||||
$lang['HIDE_CONTENTS'] = 'Hide the contents of {...}';
|
||||
$lang['FILTER_BY_NAME'] = '<i>filter by name </i>';
|
||||
$lang['FILTER_BY_NAME'] = '<i>Filter by name </i>';
|
||||
|
||||
$lang['BT_ONLY_ACTIVE'] = 'Active';
|
||||
$lang['BT_ONLY_MY'] = 'My releases';
|
||||
|
@ -1248,7 +1249,7 @@ $lang['SEARCH_DL_COMPLETE_DOWNLOADS'] = 'Completed Downloads';
|
|||
$lang['SEARCH_DL_CANCEL'] = 'Canceled';
|
||||
$lang['CUR_DOWNLOADS'] = 'Current Downloads';
|
||||
$lang['CUR_UPLOADS'] = 'Current Uploads';
|
||||
$lang['SEARCH_RELEASES'] = 'Find releases';
|
||||
$lang['SEARCH_RELEASES'] = 'Releases';
|
||||
$lang['TOR_SEARCH_TITLE'] = 'Torrent search options';
|
||||
$lang['OPEN_TOPIC'] = 'Open topic';
|
||||
|
||||
|
@ -2965,3 +2966,9 @@ $lang['SITEMAP_ADD_EXP_1'] = 'You can specify additional pages on your site (for
|
|||
$lang['SITEMAP_ADD_EXP_2'] = 'Each reference must begin with http(s):// and a new line!';
|
||||
|
||||
$lang['FORUM_MAP'] = 'Forums\' map';
|
||||
$lang['ATOM_FEED'] = 'Feed';
|
||||
$lang['ATOM_ERROR'] = 'Error generating feed';
|
||||
$lang['ATOM_SUBSCRIBE'] = 'Subscribe to the feed';
|
||||
$lang['ATOM_NO_MODE'] = 'Do not specify a mode for the feed';
|
||||
$lang['ATOM_NO_FORUM'] = 'This forum does not have a feed (no ongoing topics)';
|
||||
$lang['ATOM_NO_USER'] = 'This user does not have a feed (no ongoing topics)';
|
||||
|
|
|
@ -135,7 +135,8 @@ $lang['SEARCH_SELF_BY_LAST'] = 'времени последнего сообще
|
|||
$lang['SEARCH_SELF_BY_MY'] = 'времени моего сообщения';
|
||||
$lang['SEARCH_UNANSWERED'] = 'Сообщения без ответов';
|
||||
$lang['SEARCH_UNANSWERED_SHORT'] = 'без ответов';
|
||||
$lang['SEARCH_LATEST'] = 'Последние';
|
||||
$lang['SEARCH_LATEST'] = 'Последние темы';
|
||||
$lang['LATEST_RELEASES'] = 'Последние раздачи';
|
||||
|
||||
$lang['REGISTER'] = 'Регистрация';
|
||||
$lang['PROFILE'] = 'Профиль';
|
||||
|
@ -1194,7 +1195,7 @@ $lang['SEL_CHAPTERS'] = 'Ссылка на выбранные разделы';
|
|||
$lang['NOT_SEL_CHAPTERS'] = 'Вы не выбрали разделы';
|
||||
$lang['SEL_CHAPTERS_HELP'] = 'Вы можете выбрать максимум %s разделов';
|
||||
$lang['HIDE_CONTENTS'] = 'Скрыть содержимое {...}';
|
||||
$lang['FILTER_BY_NAME'] = '<i>фильтр по названию</i>';
|
||||
$lang['FILTER_BY_NAME'] = '<i>Фильтр по названию</i>';
|
||||
|
||||
$lang['BT_ONLY_ACTIVE'] = 'Активные (есть сидер или личер)';
|
||||
$lang['BT_ONLY_MY'] = 'Мои раздачи';
|
||||
|
@ -1248,7 +1249,7 @@ $lang['SEARCH_DL_COMPLETE_DOWNLOADS'] = 'Прошлые закачки';
|
|||
$lang['SEARCH_DL_CANCEL'] = 'Отмененные';
|
||||
$lang['CUR_DOWNLOADS'] = 'Текущие закачки';
|
||||
$lang['CUR_UPLOADS'] = 'Текущие раздачи';
|
||||
$lang['SEARCH_RELEASES'] = 'Найти раздачи';
|
||||
$lang['SEARCH_RELEASES'] = 'Раздачи';
|
||||
$lang['TOR_SEARCH_TITLE'] = 'Опции показа торрентов';
|
||||
$lang['OPEN_TOPIC'] = 'Открыть топик';
|
||||
|
||||
|
@ -2965,3 +2966,9 @@ $lang['SITEMAP_ADD_EXP_1'] = 'Здесь вы можете указать доп
|
|||
$lang['SITEMAP_ADD_EXP_2'] = 'Каждая ссылка должна начинаться с http(s):// и новой строки!';
|
||||
|
||||
$lang['FORUM_MAP'] = 'Карта форумов';
|
||||
$lang['ATOM_FEED'] = 'Лента';
|
||||
$lang['ATOM_ERROR'] = 'Ошибка генерации ленты';
|
||||
$lang['ATOM_SUBSCRIBE'] = 'Подписка на ленту';
|
||||
$lang['ATOM_NO_MODE'] = 'Не указан режим для ленты';
|
||||
$lang['ATOM_NO_FORUM'] = 'Для этого форума нет ленты (нет начатых тем)';
|
||||
$lang['ATOM_NO_USER'] = 'Для этого пользователя нет ленты (нет начатых тем)';
|
||||
|
|
|
@ -135,7 +135,8 @@ $lang['SEARCH_SELF_BY_LAST'] = 'з часу останнього повідом
|
|||
$lang['SEARCH_SELF_BY_MY'] = 'з часу мого повідомлення';
|
||||
$lang['SEARCH_UNANSWERED'] = 'Повідомлення без відповідей';
|
||||
$lang['SEARCH_UNANSWERED_SHORT'] = 'без відповідей';
|
||||
$lang['SEARCH_LATEST'] = 'Останні';
|
||||
$lang['SEARCH_LATEST'] = 'Останні теми';
|
||||
$lang['LATEST_RELEASES'] = 'Останні роздачі';
|
||||
|
||||
$lang['REGISTER'] = 'Реєстрація';
|
||||
$lang['PROFILE'] = 'Профіль';
|
||||
|
@ -1194,7 +1195,7 @@ $lang['SEL_CHAPTERS'] = 'Посилання на вибрані розділи';
|
|||
$lang['NOT_SEL_CHAPTERS'] = 'Ви не вибрали розділи';
|
||||
$lang['SEL_CHAPTERS_HELP'] = 'Ви можете вибрати максимум %s розділів';
|
||||
$lang['HIDE_CONTENTS'] = 'Приховати вміст {...}';
|
||||
$lang['FILTER_BY_NAME'] = '<i>фільтрувати за назвою</i>';
|
||||
$lang['FILTER_BY_NAME'] = '<i>Фільтрувати за назвою</i>';
|
||||
|
||||
$lang['BT_ONLY_ACTIVE'] = 'Активні (є сидер або лічер)';
|
||||
$lang['BT_ONLY_MY'] = 'Мої роздачі';
|
||||
|
@ -1248,7 +1249,7 @@ $lang['SEARCH_DL_COMPLETE_DOWNLOADS'] = 'Минулі закачування';
|
|||
$lang['SEARCH_DL_CANCEL'] = 'Скасовані';
|
||||
$lang['CUR_DOWNLOADS'] = 'Поточні закачування';
|
||||
$lang['CUR_UPLOADS'] = 'Поточні роздачі';
|
||||
$lang['SEARCH_RELEASES'] = 'Знайти роздачі';
|
||||
$lang['SEARCH_RELEASES'] = 'Роздачі';
|
||||
$lang['TOR_SEARCH_TITLE'] = 'Опції показу торрентів';
|
||||
$lang['OPEN_TOPIC'] = 'Відкрити топік';
|
||||
|
||||
|
@ -2965,3 +2966,9 @@ $lang['SITEMAP_ADD_EXP_1'] = 'Тут ви можете вказати додат
|
|||
$lang['SITEMAP_ADD_EXP_2'] = 'Кожне посилання має починатись з http(s):// і нової рядки!';
|
||||
|
||||
$lang['FORUM_MAP'] = 'Карта форумів';
|
||||
$lang['ATOM_FEED'] = 'Стрічка';
|
||||
$lang['ATOM_ERROR'] = 'Помилка створення стрічки';
|
||||
$lang['ATOM_SUBSCRIBE'] = 'Підписка на стрічку';
|
||||
$lang['ATOM_NO_MODE'] = 'Не вказано режим для стрічки';
|
||||
$lang['ATOM_NO_FORUM'] = 'Для цього форуму немає стрічки (немає початих тем)';
|
||||
$lang['ATOM_NO_USER'] = 'Для цього користувача немає стрічки (немає початих тем)';
|
||||
|
|
|
@ -444,6 +444,9 @@ elseif ( ($submit || $confirm) && !$topic_has_new_posts )
|
|||
}
|
||||
}
|
||||
|
||||
// Update atom feed
|
||||
update_atom('topic', $topic_id);
|
||||
|
||||
if ($mode == 'reply' && $post_info['topic_status'] == TOPIC_LOCKED)
|
||||
{
|
||||
$locked_warn = '
|
||||
|
|
|
@ -732,6 +732,8 @@ td.last_td { border-right-width: 0 !important; }
|
|||
#online_explain { float: right; }
|
||||
#online_userlist a { white-space: nowrap; }
|
||||
#forums_top_nav { display: none; }
|
||||
|
||||
.f-map-wrap { margin-top: -1px; border: 1px solid #DEDEDE; }
|
||||
/* ---------------------------------- *
|
||||
Forums on viewforum page
|
||||
* ---------------------------------- */
|
||||
|
|
BIN
upload/templates/default/images/feed.png
Normal file
BIN
upload/templates/default/images/feed.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 520 B |
|
@ -12,10 +12,10 @@
|
|||
<!-- IF LOGGED_IN -->
|
||||
<div id="forums_top_links">
|
||||
<div class="floatL">
|
||||
<a href="{U_SEARCH_NEW}" class="med">{L_SEARCH_NEW}</a> ·
|
||||
<a href="{U_SEARCH_SELF_BY_LAST}" class="med">{L_SEARCH_SELF}</a> <a href="#search-my-posts" class="menu-root menu-alt1">{OPEN_MENU_IMG_ALT1}</a> ·
|
||||
<a href="{U_SEARCH_LATEST}" class="med">{L_SEARCH_LATEST}</a> ·
|
||||
<a href="{U_INDEX}?map=1" class="med bold">{L_FORUM_MAP}</a>
|
||||
<a href="{U_SEARCH_SELF_BY_LAST}" class="med">{L_SEARCH_SELF}</a> <a href="#search-my-posts" class="menu-root menu-alt1">{OPEN_MENU_IMG_ALT}</a> ·
|
||||
<a href="{SITE_URL}atom/f/0.atom" class="med">{FEED_IMG} {L_LATEST_RELEASES}</a> ·
|
||||
<a href="{U_INDEX}?map=1" class="med bold">{FEED_IMG} {L_FORUM_MAP}</a>
|
||||
</div>
|
||||
<div class="floatR med bold">
|
||||
<a class="menu-root" href="#only-new-options">{L_DISPLAYING_OPTIONS}</a>
|
||||
|
@ -154,6 +154,7 @@
|
|||
|
||||
<!-- IF LOGGED_IN and SHOW_FORUMS -->
|
||||
<div id="mark_all_forums_read">
|
||||
<a href="{U_SEARCH_NEW}" class="med">{L_SEARCH_NEW}</a> ·
|
||||
<a href="{U_INDEX}" class="med" onclick="setCookie('{COOKIE_MARK}', 'all_forums');">{L_MARK_ALL_FORUMS_READ}</a>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
|
|
@ -1,15 +1,16 @@
|
|||
<style type="text/css">
|
||||
#f-map a { font-size: 12px; text-decoration: none; }
|
||||
#f-map a { font-size: 12px; text-decoration: none; padding-left: 8px; }
|
||||
#f-map li { margin: 4px 0 0 6px; }
|
||||
#f-map .b { font-weight: bold; }
|
||||
ul.tree-root { margin-left: 0; }
|
||||
ul.tree-root ul > li { list-style: disc; }
|
||||
ul.tree-root ul ul > li { list-style: circle; }
|
||||
ul.tree-root > li { list-style: none !important; padding: 0; margin-left: 0 !important; }
|
||||
ul.tree-root > li > ul { margin-left: 0; }
|
||||
ul.tree-root li { list-style: none; }
|
||||
ul.tree-root > li { padding: 0; margin-left: 0 !important; }
|
||||
.c_title {
|
||||
display: block; margin: 9px 0; padding: 0 0 5px 3px; border-bottom: 1px solid #B7C0C5;
|
||||
display: block; margin: 9px 0; padding: 0 0 5px 5px; border-bottom: 1px solid #B7C0C5;
|
||||
color: #800000; font-size: 13px; font-weight: bold; letter-spacing: 1px;
|
||||
}
|
||||
ul.tree-root img { cursor: pointer; }
|
||||
a.hl, a.hl:visited { color: #1515FF; }
|
||||
</style>
|
||||
|
||||
|
@ -26,6 +27,11 @@ function qs_highlight_found ()
|
|||
a.className = '';
|
||||
}
|
||||
}
|
||||
function open_feed (f_id)
|
||||
{
|
||||
$('#feed-id').val(f_id);
|
||||
$('#feed-form').submit();
|
||||
}
|
||||
$(function(){
|
||||
$('#q-search').focus().quicksearch('#f-map li', {
|
||||
delay : 300,
|
||||
|
@ -34,7 +40,11 @@ $(function(){
|
|||
onAfter : function(){ $('#f-load').hide(); $('#f-map').show(); }
|
||||
});
|
||||
$.each($('#f-map a'), function(i,a) {
|
||||
$(a).attr('href', 'viewforum.php?f='+ $(a).attr('href'));
|
||||
var f_id = $(a).attr('href');
|
||||
$(a)
|
||||
.attr('href', 'viewforum.php?f='+ f_id)
|
||||
.before('<img class="feed-small" src="{IMG}feed.png" alt="feed" onclick="open_feed('+ f_id +')">')
|
||||
;
|
||||
});
|
||||
$.each($('span.c_title'), function(i,el) {
|
||||
$(el).text( this.title );
|
||||
|
@ -43,7 +53,13 @@ $(function(){
|
|||
});
|
||||
</script>
|
||||
|
||||
<div class="row1 pad_8 border bw_TRBL" style="margin-top: 4px;">
|
||||
<form id="feed-form" method="post" action="feed.php" target="_blank" style="display: none;">
|
||||
<input type="hidden" name="mode" value="get_feed_url">
|
||||
<input type="hidden" name="type" value="f">
|
||||
<input id="feed-id" type="hidden" name="id" value="">
|
||||
</form>
|
||||
|
||||
<div class="f-map-wrap row1 pad_8">
|
||||
<div style="margin: 20px 56px;">
|
||||
<div style="padding: 0 0 12px 3px;">
|
||||
<form autocomplete="off">
|
||||
|
@ -55,20 +71,29 @@ $(function(){
|
|||
<div id="f-map" style="display: none;">
|
||||
<!-- BEGIN c -->
|
||||
<ul class="tree-root">
|
||||
<li><span class="b"><span class="c_title" title="{c.CAT_TITLE}" name="{c.CAT_TITLE}"></span></span>
|
||||
<li>
|
||||
<span class="b">
|
||||
<span class="c_title" title="{c.CAT_TITLE}"></span>
|
||||
</span>
|
||||
<!-- BEGIN f -->
|
||||
<ul>
|
||||
<li><span class="b"><a href="{c.f.FORUM_ID}">{c.f.FORUM_NAME}</a></span>
|
||||
<li>
|
||||
<span class="b">
|
||||
<a href="{c.f.FORUM_ID}">{c.f.FORUM_NAME}</a>
|
||||
</span>
|
||||
<!-- IF c.f.LAST_SF_ID -->
|
||||
<ul>
|
||||
<!-- BEGIN sf -->
|
||||
<li><span><a href="{c.f.sf.SF_ID}">{c.f.sf.SF_NAME}</a></span></li>
|
||||
<li>
|
||||
<span><a href="{c.f.sf.SF_ID}">{c.f.sf.SF_NAME}</a></span>
|
||||
</li>
|
||||
<!-- END sf -->
|
||||
</ul>
|
||||
<!-- ENDIF -->
|
||||
</li>
|
||||
</ul>
|
||||
<!-- END f -->
|
||||
</li>
|
||||
</ul>
|
||||
<!-- END c -->
|
||||
</div>
|
||||
|
|
|
@ -121,19 +121,15 @@ $bb_cfg['attach_img_width_decr'] = 130; // decrement for attach images width
|
|||
|
||||
$template->assign_vars(array(
|
||||
'IMG' => $_main,
|
||||
|
||||
'TEXT_BUTTONS' => $bb_cfg['text_buttons'],
|
||||
'POST_BTN_SPACER' => ($bb_cfg['text_buttons']) ? ' ' : '',
|
||||
'TOPIC_ATTACH_ICON' => '<img src="images/icon_clip.gif" alt="" />',
|
||||
'ATTACHMENT_ICON' => '<img src="images/icon_clip.gif" alt="" />',
|
||||
'OPEN_MENU_IMG_ALT1' => '<img src="'. $_main .'menu_open_1.gif" class="menu-alt1" alt="" />',
|
||||
|
||||
'OPEN_MENU_IMG_ALT' => '<img src="'. $_main .'menu_open_1.gif" class="menu-alt1" alt="" />',
|
||||
'TOPIC_LEFT_COL_SPACER_WITDH' => $bb_cfg['topic_left_column_witdh'] - 8, // 8px padding
|
||||
// Images auto-resize
|
||||
'POST_IMG_WIDTH_DECR_JS' => $bb_cfg['topic_left_column_witdh'] + $bb_cfg['post_img_width_decr'],
|
||||
'ATTACH_IMG_WIDTH_DECR_JS' => $bb_cfg['topic_left_column_witdh'] + $bb_cfg['attach_img_width_decr'],
|
||||
|
||||
'MAGNET_LINKS' => $bb_cfg['magnet_links_enabled'],
|
||||
'FEED_IMG' => '<img src="'. $_main .'feed.png" class="feed-small" alt="'. $lang['ATOM_FEED'] .'" />',
|
||||
));
|
||||
|
||||
// post_buttons
|
||||
|
|
|
@ -365,8 +365,9 @@ ajax.callback.gen_passkey = function(data){
|
|||
<b>{POSTS}</b>
|
||||
[ <a href="{U_SEARCH_USER}" class="med">{L_SEARCH_USER_POSTS}</a> ]
|
||||
[ <a href="{U_SEARCH_TOPICS}" class="med">{L_SEARCH_USER_TOPICS}</a> ]
|
||||
[ <a class="med" href="{U_SEARCH_RELEASES}">{L_SEARCH_RELEASES}</a> ]
|
||||
<!-- IF PROFILE_USER -->[ <a class="med" href="{U_WATCHED_TOPICS}">{L_WATCHED_TOPICS}</a> ]<!-- ENDIF -->
|
||||
[ <a href="{U_SEARCH_RELEASES}" class="med">{L_SEARCH_RELEASES}</a> ]
|
||||
<!-- IF PROFILE_USER -->[ <a href="{U_WATCHED_TOPICS}" class="med">{L_WATCHED_TOPICS}</a> ]<!-- ENDIF -->
|
||||
[ <a title="{L_ATOM_SUBSCRIBE}" href="#" onclick="return post2url('feed.php', {mode: 'get_feed_url', type: 'u', id: {PROFILE_USER_ID}})">{FEED_IMG}</a> ]
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
<!-- IF HIDE_POST_IMG -->img.postImg, div.postImg-wrap { display: none; }<!-- ENDIF -->
|
||||
<!-- IF HIDE_SMILE -->.smile { display: none; }<!-- ENDIF -->
|
||||
<!-- IF HIDE_SIGNATURE -->.signature { display: none; }<!-- ENDIF -->
|
||||
|
||||
</style>
|
||||
<!-- IF SPOILER_OPENED -->
|
||||
<script type="text/javascript">
|
||||
|
@ -27,10 +26,10 @@ function edit_post(post_id, type, text) {
|
|||
} else{
|
||||
$('#pp_'+ post_id).hide();
|
||||
$('#pe_'+ post_id).show();
|
||||
|
||||
ajax.exec({
|
||||
action : 'posts',
|
||||
post_id : post_id,
|
||||
topic_id : {TOPIC_ID},
|
||||
text : text,
|
||||
type : type
|
||||
});
|
||||
|
@ -199,7 +198,6 @@ function poll_manage (mode, confirm_msg)
|
|||
$('#poll-submit-btn').click();
|
||||
return false;
|
||||
}
|
||||
|
||||
function build_poll_add_form (src_el)
|
||||
{
|
||||
$('#poll').empty().append( $('#poll-edit-tpl').contents() ).show();
|
||||
|
@ -237,7 +235,6 @@ function build_poll_add_form (src_el)
|
|||
|
||||
<table cellspacing="0" cellpadding="0" class="borderless w100">
|
||||
<tr>
|
||||
|
||||
<!-- IF AUTH_MOD -->
|
||||
<td class="small bold nowrap" style="padding: 0 0 0 4px;">
|
||||
<!-- IF IN_MODERATION -->{L_MODERATE_TOPIC}<!-- ELSE --><a href="{PAGE_URL}&mod=1&start={PAGE_START}" class="small bold">{L_MODERATE_TOPIC}</a><!-- ENDIF -->
|
||||
|
@ -393,7 +390,7 @@ function build_poll_add_form (src_el)
|
|||
<!-- IF postrow.IS_FIRST_POST and CAN_ADD_POLL --><a href="#" onclick="return build_poll_add_form(this);" class="txtb">{POLL_IMG}</a><!-- ENDIF -->
|
||||
<!-- IF postrow.QUOTE --><a class="txtb" href="<!-- IF $bb_cfg['use_ajax_posts'] -->" onclick="ajax.exec({ action: 'posts', post_id: {postrow.POST_ID}, type: 'reply'}); return false;<!-- ELSE -->{QUOTE_URL}{postrow.POST_ID}<!-- ENDIF -->">{QUOTE_IMG}</a>{POST_BTN_SPACER}<!-- ENDIF -->
|
||||
<!-- IF postrow.EDIT --><a class="txtb" href="<!-- IF $bb_cfg['use_ajax_posts'] -->" onclick="edit_post({postrow.POST_ID}, 'edit'); return false;<!-- ELSE -->{EDIT_POST_URL}{postrow.POST_ID}<!-- ENDIF -->">{EDIT_POST_IMG}</a>{POST_BTN_SPACER}<!-- ENDIF -->
|
||||
<!-- IF postrow.DELETE --><a class="txtb" href="<!-- IF $bb_cfg['use_ajax_posts'] -->" onclick="ajax.exec({ action: 'posts', post_id: {postrow.POST_ID}, type: 'delete'}); return false;<!-- ELSE -->{DELETE_POST_URL}{postrow.POST_ID}<!-- ENDIF -->">{DELETE_POST_IMG}</a>{POST_BTN_SPACER}<!-- ENDIF -->
|
||||
<!-- IF postrow.DELETE --><a class="txtb" href="<!-- IF $bb_cfg['use_ajax_posts'] -->" onclick="ajax.exec({ action: 'posts', post_id: {postrow.POST_ID}, topic_id : {TOPIC_ID}, type: 'delete'}); return false;<!-- ELSE -->{DELETE_POST_URL}{postrow.POST_ID}<!-- ENDIF -->">{DELETE_POST_IMG}</a>{POST_BTN_SPACER}<!-- ENDIF -->
|
||||
<!-- IF postrow.IP --><a class="txtb" href="{IP_POST_URL}{postrow.POST_ID}&t={TOPIC_ID}">{IP_POST_IMG}</a>{POST_BTN_SPACER}<!-- ENDIF -->
|
||||
<!-- IF postrow.REPORT -->{postrow.REPORT}{POST_BTN_SPACER}<!-- ENDIF -->
|
||||
<!-- IF AUTH_MOD -->
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<!-- BEGIN denyrow -->
|
||||
<fieldset class="attach">
|
||||
<legend>{ATTACHMENT_ICON} {L_ATTACHMENT}</legend>
|
||||
<legend>{TOPIC_ATTACH_ICON} {L_ATTACHMENT}</legend>
|
||||
<p class="attach_link denied">{postrow.attach.denyrow.L_DENIED}</p>
|
||||
</fieldset>
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
|||
|
||||
<!-- BEGIN cat_images -->
|
||||
<fieldset class="attach">
|
||||
<legend>{ATTACHMENT_ICON} {L_ATTACHMENT} ({postrow.attach.cat_images.FILESIZE})</legend>
|
||||
<legend>{TOPIC_ATTACH_ICON} {L_ATTACHMENT} ({postrow.attach.cat_images.FILESIZE})</legend>
|
||||
<p class="tCenter pad_6">
|
||||
<img src="{postrow.attach.cat_images.IMG_SRC}" id="attachImg" class="postImg" alt="img" border="0" />
|
||||
</p>
|
||||
|
@ -29,7 +29,7 @@
|
|||
|
||||
<!-- BEGIN cat_thumb_images -->
|
||||
<fieldset class="attach">
|
||||
<legend>{ATTACHMENT_ICON} {L_ATTACHMENT_THUMBNAIL}</legend>
|
||||
<legend>{TOPIC_ATTACH_ICON} {L_ATTACHMENT_THUMBNAIL}</legend>
|
||||
<p class="attach_link">
|
||||
<a href="{postrow.attach.cat_thumb_images.IMG_SRC}" target="_blank"><img src="{postrow.attach.cat_thumb_images.IMG_THUMB_SRC}" alt="{postrow.attach.cat_thumb_images.DOWNLOAD_NAME}" border="0" /></a>
|
||||
</p>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue