phpbb::$user->add_lang('viewforum'); if ($topic_id) { // Subscriptions titania_subscriptions::handle_subscriptions(TITANIA_TOPIC, $topic_id, $topic->get_url()); // Check access level if ($topic->topic_access < titania::$access_level || $topic->topic_type == TITANIA_QUEUE_DISCUSSION && !titania::$contrib->is_author && !titania::$contrib->is_active_coauthor && !titania_types::$types[titania::$contrib->contrib_type]->acl_get('queue_discussion')) { titania::needs_auth(); } posts_overlord::display_topic_complete($topic); titania::page_header(censor_text($topic->topic_subject) . ' - ' . titania::$contrib->contrib_name); if (phpbb::$auth->acl_get('u_titania_post')) { phpbb::$template->assign_var('U_POST_REPLY', titania_url::append_url($topic->get_url(), array('action' => 'reply'))); } // Canonical URL phpbb::$template->assign_var('U_CANONICAL', $topic->get_url()); } else { // Subscriptions titania_subscriptions::handle_subscriptions(TITANIA_SUPPORT, titania::$contrib->contrib_id, titania::$contrib->get_url('support')); // Mark all topics read if (request_var('mark', '') == 'topics') { titania_tracking::track(TITANIA_SUPPORT, titania::$contrib->contrib_id); } $data = topics_overlord::display_forums_complete('support', titania::$contrib); titania::page_header(titania::$contrib->contrib_name . ' - ' . phpbb::$user->lang['CONTRIB_SUPPORT']); if (phpbb::$auth->acl_get('u_titania_topic') && titania::$config->support_in_titania) { phpbb::$template->assign_var('U_POST_TOPIC', titania_url::append_url(titania::$contrib->get_url('support'), array('action' => 'post'))); } $data['sort']->set_url(titania::$contrib->get_url('support')); phpbb::$template->assign_vars(array('U_MARK_TOPICS' => titania_url::append_url(titania::$contrib->get_url('support'), array('mark' => 'topics')), 'U_CANONICAL' => $data['sort']->build_canonical(), 'S_DISPLAY_SEARCHBOX' => true, 'S_SEARCHBOX_ACTION' => titania_url::build_url('search', array('type' => TITANIA_SUPPORT, 'contrib' => titania::$contrib->contrib_id)))); } titania::page_footer(true, 'contributions/contribution_support.html');
} $queue->move($new_tag); } else { // Generate the list of tags we can move it to $extra = '<select name="id">'; foreach ($tags as $tag_id => $row) { $extra .= '<option value="' . $tag_id . '">' . (isset(phpbb::$user->lang[$row['tag_field_name']]) ? phpbb::$user->lang[$row['tag_field_name']] : $row['tag_field_name']) . '</option>'; } $extra .= '</select>'; phpbb::$template->assign_var('CONFIRM_EXTRA', $extra); titania::confirm_box(false, 'MOVE_QUEUE'); } redirect(titania_url::append_url($base_url, array('q' => $queue->queue_id))); break; } // Display the main queue item $data = queue_overlord::display_queue_item($queue_id); // Handle replying/editing/etc $posting_helper = new titania_posting(); $posting_helper->act('manage/queue_post.html'); // Display the posts in the queue (after the posting helper acts) posts_overlord::display_topic_complete($data['topic']); titania::page_header(queue_overlord::$queue[$queue_id]['topic_subject']); } else { // Subscriptions titania_subscriptions::handle_subscriptions(TITANIA_QUEUE, $queue_type, titania_url::$current_page_url); queue_overlord::display_queue($queue_type, $tag); queue_overlord::display_categories($queue_type, $tag); titania::page_header('VALIDATION_QUEUE'); } titania::page_footer(true, 'manage/queue.html');
titania::needs_auth(); } titania::add_lang('posting'); phpbb::$user->add_lang('mcp'); if (titania::confirm_box(true)) { $message = utf8_normalize_nfc(request_var('report_text', '', true)); titania::$contrib->report($message); // Notifications redirect(titania::$contrib->get_url()); } else { //phpbb::$template->assign_var('S_CAN_NOTIFY', ((phpbb::$user->data['is_registered']) ? true : false)); titania::confirm_box(false, 'REPORT_CONTRIBUTION', '', array(), 'posting/report_body.html'); } redirect(titania::$contrib->get_url()); } titania::$contrib->get_download(); titania::$contrib->get_revisions(); titania::$contrib->get_screenshots(); titania::$contrib->get_rating(); titania::$contrib->assign_details(); if (!phpbb::$user->data['is_bot']) { titania::$contrib->increase_view_counter(); } // Set tracking titania_tracking::track(TITANIA_CONTRIB, titania::$contrib->contrib_id); // Subscriptions titania_subscriptions::handle_subscriptions(TITANIA_CONTRIB, titania::$contrib->contrib_id, titania::$contrib->get_url()); // Canonical URL phpbb::$template->assign_var('U_CANONICAL', titania::$contrib->get_url()); titania::page_header(titania::$contrib->contrib_name . ' - ' . phpbb::$user->lang['CONTRIB_DETAILS']); titania::page_footer(true, 'contributions/contribution_details.html');
/*$close = (isset($_POST['close'])) ? true : false; $id_list = request_var('id_list', array(0)); if ($close && sizeof($id_list)) { $attention_object = new titania_attention; foreach ($id_list as $attention_id) { $attention_object->attention_id = $attention_id; $attention_object->load(); } }*/ switch ($type) { case 'reported': $type = TITANIA_ATTENTION_REPORTED; break; case 'unapproved': $type = TITANIA_ATTENTION_UNAPPROVED; break; default: $type = false; break; } $options = array('attention_type' => $type, 'display_closed' => $closed, 'only_closed' => !$open && $closed ? true : false); attention_overlord::display_attention_list($options); phpbb::$template->assign_vars(array('S_ACTION' => titania_url::build_url('manage/attention'), 'S_OPEN_CHECKED' => $open, 'S_CLOSED_CHECKED' => $closed)); // Subscriptions titania_subscriptions::handle_subscriptions(TITANIA_ATTENTION, 0, titania_url::build_url('manage/attention')); titania::page_header('ATTENTION'); titania::page_footer(true, 'manage/attention.html'); }
/** * Display a single queue item * * @param int $queue_id * @return array('row' => (sql selection), 'contrib' => $contrib, 'topic' => $topic) */ public static function display_queue_item($queue_id) { titania::add_lang('contributions'); $sql_ary = array('SELECT' => '*', 'FROM' => array(TITANIA_QUEUE_TABLE => 'q', TITANIA_REVISIONS_TABLE => 'r', TITANIA_TOPICS_TABLE => 't'), 'WHERE' => 'q.queue_id = ' . (int) $queue_id . ' AND r.revision_id = q.revision_id AND t.topic_id = q.queue_topic_id'); // Main SQL Query $sql = phpbb::$db->sql_build_query('SELECT', $sql_ary); $result = phpbb::$db->sql_query($sql); $row = phpbb::$db->sql_fetchrow($result); phpbb::$db->sql_freeresult($result); if (!$row) { trigger_error('NO_QUEUE_ITEM'); } self::$queue[$queue_id] = $row; // Load the contribution $contrib = new titania_contribution(); $contrib->load((int) $row['contrib_id']); $contrib->get_download($row['revision_id']); $contrib->get_revisions(); $contrib->get_screenshots(); $contrib->assign_details(); // Load the topic (with the already selected data) $topic = new titania_topic(); $topic->__set_array($row); // Bit of a hack for the posting $_REQUEST['t'] = $topic->topic_id; // Some quick-actions $quick_actions = array(); if ($row['queue_status'] > 0) { if ($row['queue_progress'] == phpbb::$user->data['user_id']) { $quick_actions['MARK_NO_PROGRESS'] = array('url' => titania_url::append_url(titania_url::$current_page_url, array('action' => 'no_progress')), 'class' => 'queue_progress'); } else { if (!$row['queue_progress']) { $quick_actions['MARK_IN_PROGRESS'] = array('url' => titania_url::append_url(titania_url::$current_page_url, array('action' => 'in_progress')), 'class' => 'queue_progress'); } } $tags = titania::$cache->get_tags(TITANIA_QUEUE); unset($tags[$row['queue_status']]); $quick_actions['CHANGE_STATUS'] = array('url' => titania_url::append_url(titania_url::$current_page_url, array('action' => 'move')), 'class' => 'change_status', 'tags' => $tags); if (titania_types::$types[$contrib->contrib_type]->acl_get('moderate')) { $quick_actions['REPACK'] = array('url' => titania_url::append_url($contrib->get_url('revision'), array('repack' => $row['revision_id'])), 'class' => 'repack'); } // This allows you to alter the author submitted notes to the validation team, not really useful as the field's purpose was changed, so commenting out /*$quick_actions['ALTER_NOTES'] = array( 'url' => titania_url::append_url(titania_url::$current_page_url, array('action' => 'notes')), );*/ // Misc actions $subactions = array(); if (titania_types::$types[$contrib->contrib_type]->mpv_test) { $subactions['RETEST_MPV'] = array('url' => titania_url::build_url('', array('action' => 'mpv', 'revision' => $row['revision_id']))); } if (titania_types::$types[$contrib->contrib_type]->automod_test) { $subactions['RETEST_AUTOMOD'] = array('url' => titania_url::build_url('', array('action' => 'automod', 'revision' => $row['revision_id']))); } $subactions['REBUILD_FIRST_POST'] = array('url' => titania_url::append_url(titania_url::$current_page_url, array('action' => 'rebuild'))); $quick_actions['CAT_MISC'] = array('subactions' => $subactions, 'class' => 'misc'); // Validation if (titania_types::$types[$contrib->contrib_type]->acl_get('validate')) { $quick_actions['APPROVE'] = array('url' => titania_url::append_url(titania_url::$current_page_url, array('action' => 'approve', 'start' => '*destroy*')), 'class' => 'approve'); $quick_actions['DENY'] = array('url' => titania_url::append_url(titania_url::$current_page_url, array('action' => 'deny', 'start' => '*destroy*')), 'class' => 'deny'); } } foreach ($quick_actions as $lang_key => $data) { phpbb::$template->assign_block_vars('queue_actions', array('NAME' => isset(phpbb::$user->lang[$lang_key]) ? phpbb::$user->lang[$lang_key] : $lang_key, 'CLASS' => isset($data['class']) ? $data['class'] : '', 'U_VIEW' => isset($data['url']) ? $data['url'] : '')); if (isset($data['tags'])) { foreach ($data['tags'] as $tag_id => $tag_row) { phpbb::$template->assign_block_vars('queue_actions.subactions', array('ID' => $tag_id, 'NAME' => isset(phpbb::$user->lang[$tag_row['tag_field_name']]) ? phpbb::$user->lang[$tag_row['tag_field_name']] : $tag_row['tag_field_name'], 'U_ACTION' => titania_url::append_url($data['url'], array('id' => $tag_id, 'hash' => generate_link_hash('quick_actions'))))); } } if (isset($data['subactions'])) { foreach ($data['subactions'] as $sublang_key => $subdata) { phpbb::$template->assign_block_vars('queue_actions.subactions', array('NAME' => isset(phpbb::$user->lang[$sublang_key]) ? phpbb::$user->lang[$sublang_key] : $sublang_key, 'U_ACTION' => $subdata['url'])); } } } if ($row['queue_status'] == -2) { $current_status = phpbb::$user->lang['REVISION_DENIED']; } else { if ($row['queue_status'] == -1) { $current_status = phpbb::$user->lang['REVISION_APPROVED']; } else { $current_status = titania_tags::get_tag_name($row['queue_status']); } } phpbb::$template->assign_vars(array('CURRENT_STATUS' => $current_status, 'S_DISPLAY_CONTRIBUTION' => true, 'S_IN_QUEUE' => true, 'U_POST_REPLY' => titania_url::append_url(titania_url::$current_page_url, array('action' => 'reply', 't' => $topic->topic_id)), 'U_NEW_REVISION' => false)); // Subscriptions titania_subscriptions::handle_subscriptions(TITANIA_TOPIC, $topic->topic_id, titania_url::$current_page_url); return compact('row', 'contrib', 'topic'); }