Пример #1
0
 public function submit()
 {
     $this->attention_url = titania_url::unbuild_url($this->attention_url);
     // Subscriptions
     if (!$this->attention_id) {
         $email_vars = array('NAME' => $this->attention_title, 'U_VIEW' => titania_url::build_url('manage/attention', array('type' => $this->attention_type, 'id' => $this->attention_object_id)));
         titania_subscriptions::send_notifications(TITANIA_ATTENTION, 0, 'subscribe_notify.txt', $email_vars, $this->attention_poster_id);
     }
     parent::submit();
 }
Пример #2
0
 /**
  * Shorten the amount of code required for some places
  *
  * @param mixed $object_type
  * @param mixed $object_id
  * @param mixed $url
  */
 public static function handle_subscriptions($object_type, $object_id, $url)
 {
     if (!phpbb::$user->data['is_registered']) {
         // Cannot currently handle non-registered users
         return;
     }
     $subscribe = request_var('subscribe', '');
     if ($subscribe == 'subscribe' && check_link_hash(request_var('hash', ''), 'subscribe')) {
         titania_subscriptions::subscribe($object_type, $object_id);
     } else {
         if ($subscribe == 'unsubscribe' && check_link_hash(request_var('hash', ''), 'unsubscribe')) {
             titania_subscriptions::unsubscribe($object_type, $object_id);
         }
     }
     if (titania_subscriptions::is_subscribed($object_type, $object_id)) {
         phpbb::$template->assign_vars(array('IS_SUBSCRIBED' => true, 'U_SUBSCRIBE' => titania_url::append_url($url, array('subscribe' => 'unsubscribe', 'hash' => generate_link_hash('unsubscribe')))));
     } else {
         phpbb::$template->assign_vars(array('U_SUBSCRIBE' => titania_url::append_url($url, array('subscribe' => 'subscribe', 'hash' => generate_link_hash('subscribe')))));
     }
 }
Пример #3
0
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');
Пример #4
0
    /**
     * Handle some stuff we need when submitting a revision
     */
    public function submit()
    {
        if (!$this->revision_id) {
            // Update the contrib_last_update if required here
            if (!titania::$config->require_validation || !titania_types::$types[$this->contrib->contrib_type]->require_validation) {
                $this->contrib->contrib_last_update = titania::$time;
                $sql_ary = array('contrib_last_update' => $this->contrib->contrib_last_update);
                $sql = 'UPDATE ' . TITANIA_CONTRIBS_TABLE . '
					SET ' . phpbb::$db->sql_build_array('UPDATE', $sql_ary) . '
					WHERE contrib_id = ' . $this->contrib_id;
                phpbb::$db->sql_query($sql);
                // Subscriptions
                $email_vars = array('NAME' => $this->contrib->contrib_name, 'U_VIEW' => $this->contrib->get_url());
                titania_subscriptions::send_notifications(TITANIA_CONTRIB, $this->contrib_id, 'subscribe_notify.txt', $email_vars);
            }
        } else {
            if (sizeof($this->phpbb_versions)) {
                $sql = 'DELETE FROM ' . TITANIA_REVISIONS_PHPBB_TABLE . '
				WHERE revision_id = ' . (int) $this->revision_id;
                phpbb::$db->sql_query($sql);
            }
        }
        parent::submit();
        // Add phpBB versions supported
        if (sizeof($this->phpbb_versions)) {
            $versions = titania::$cache->get_phpbb_versions();
            $sql_ary = array();
            foreach ($this->phpbb_versions as $row) {
                if (!is_array($row)) {
                    $row = array('phpbb_version_branch' => (int) $row);
                }
                if (!isset($row['phpbb_version_branch']) || !isset(titania::$config->phpbb_versions[$row['phpbb_version_branch']])) {
                    continue;
                }
                // OMG, it's not in our cache!
                if (!isset($versions[$row['phpbb_version_branch'] . titania::$config->phpbb_versions[$row['phpbb_version_branch']]])) {
                    titania::$cache->destroy('_titania_phpbb_versions');
                }
                $sql_ary[] = array('revision_id' => $this->revision_id, 'contrib_id' => $this->contrib_id, 'revision_validated' => $this->revision_status == TITANIA_REVISION_APPROVED ? true : false, 'phpbb_version_branch' => $row['phpbb_version_branch'], 'phpbb_version_revision' => get_real_revision_version(isset($row['phpbb_version_revision']) ? $row['phpbb_version_revision'] : titania::$config->phpbb_versions[$row['phpbb_version_branch']]['latest_revision']));
            }
            if (sizeof($sql_ary)) {
                phpbb::$db->sql_multi_insert(TITANIA_REVISIONS_PHPBB_TABLE, $sql_ary);
            }
        }
        // Update the release topic
        if ($this->revision_status == TITANIA_REVISION_APPROVED) {
            $this->contrib->update_release_topic();
        }
        // Hooks
        titania::$hook->call_hook_ref(array(__CLASS__, __FUNCTION__), $this);
    }
Пример #5
0
                }
                $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');
Пример #6
0
    /*$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');
}
Пример #7
0
 /**
  * Common posting stuff for post/reply/edit
  *
  * @param mixed $post_object
  * @param mixed $message_object
  */
 private function common_post($mode, $post_object, $message_object)
 {
     titania::add_lang('posting');
     phpbb::$user->add_lang('posting');
     // Submit check...handles running $post->post_data() if required
     $submit = $message_object->submit_check();
     if ($submit) {
         $error = $post_object->validate();
         if (($validate_form_key = $message_object->validate_form_key()) !== false) {
             $error[] = $validate_form_key;
         }
         // @todo use permissions for captcha
         if (!phpbb::$user->data['is_registered'] && ($validate_captcha = $message_object->validate_captcha()) !== false) {
             $error[] = $validate_captcha;
         }
         $error = array_merge($error, $message_object->error);
         if (sizeof($error)) {
             phpbb::$template->assign_var('ERROR', implode('<br />', $error));
         } else {
             // Force Queue Discussion topics to always be stickies
             if ($post_object->post_type == TITANIA_QUEUE_DISCUSSION) {
                 $post_object->topic->topic_sticky = true;
             }
             // Does the post need approval?  Never for the Queue Discussion or Queue
             if (!phpbb::$auth->acl_get('u_titania_post_approved') && $post_object->post_type != TITANIA_QUEUE_DISCUSSION && $post_object->post_type != TITANIA_QUEUE) {
                 $post_object->post_approved = false;
             }
             $post_object->submit();
             $message_object->submit($post_object->post_access);
             // Did they want to subscribe?
             if (isset($_POST['notify']) && phpbb::$user->data['is_registered']) {
                 titania_subscriptions::subscribe(TITANIA_TOPIC, $post_object->topic->topic_id);
             }
             // Unapproved posts will get a notice
             if (!$post_object->topic->get_postcount()) {
                 phpbb::$user->add_lang('posting');
                 trigger_error(phpbb::$user->lang['POST_STORED_MOD'] . '<br /><br />' . sprintf(phpbb::$user->lang['RETURN_INDEX'], '<a href="' . $post_object->topic->get_parent_url() . '">', '</a>'));
             } else {
                 if (!$post_object->post_approved) {
                     phpbb::$user->add_lang('posting');
                     trigger_error(phpbb::$user->lang['POST_STORED_MOD'] . '<br /><br />' . sprintf(phpbb::$user->lang['RETURN_TOPIC'], '<a href="' . $post_object->topic->get_url() . '">', '</a>'));
                 } else {
                     // Subscriptions
                     if ($mode == 'reply') {
                         if ($post_object->post_type == TITANIA_SUPPORT && is_object(titania::$contrib) && titania::$contrib->contrib_id == $post_object->topic->parent_id && titania::$contrib->contrib_name) {
                             // Support topic reply
                             $email_vars = array('NAME' => $post_object->topic->topic_subject, 'U_VIEW' => titania_url::append_url($post_object->topic->get_url(), array('view' => 'unread', '#' => 'unread')), 'CONTRIB_NAME' => titania::$contrib->contrib_name);
                             titania_subscriptions::send_notifications(array(TITANIA_TOPIC, TITANIA_SUPPORT), array($post_object->topic_id, $post_object->topic->parent_id), 'subscribe_notify_contrib.txt', $email_vars, $post_object->post_user_id);
                         } else {
                             $email_vars = array('NAME' => $post_object->topic->topic_subject, 'U_VIEW' => titania_url::append_url($post_object->topic->get_url(), array('view' => 'unread', '#' => 'unread')));
                             titania_subscriptions::send_notifications(TITANIA_TOPIC, $post_object->topic_id, 'subscribe_notify.txt', $email_vars, $post_object->post_user_id);
                         }
                     } else {
                         if ($mode == 'post') {
                             if ($post_object->post_type == TITANIA_SUPPORT && is_object(titania::$contrib) && titania::$contrib->contrib_id == $post_object->topic->parent_id && titania::$contrib->contrib_name) {
                                 // New support topic
                                 $email_vars = array('NAME' => $post_object->topic->topic_subject, 'U_VIEW' => $post_object->topic->get_url(), 'CONTRIB_NAME' => titania::$contrib->contrib_name);
                                 titania_subscriptions::send_notifications($post_object->post_type, $post_object->topic->parent_id, 'subscribe_notify_forum_contrib.txt', $email_vars, $post_object->post_user_id);
                             } else {
                                 $email_vars = array('NAME' => $post_object->topic->topic_subject, 'U_VIEW' => $post_object->topic->get_url());
                                 titania_subscriptions::send_notifications($post_object->post_type, $post_object->topic->parent_id, 'subscribe_notify_forum.txt', $email_vars, $post_object->post_user_id);
                             }
                         }
                     }
                 }
             }
             redirect($post_object->get_url());
         }
     } else {
         if (sizeof($message_object->error)) {
             phpbb::$template->assign_var('ERROR', implode('<br />', $message_object->error));
         }
     }
     // Do we subscribe to actual topic?
     $is_subscribed = ($mode == 'edit' || $mode == 'reply') && titania_subscriptions::is_subscribed(TITANIA_TOPIC, $post_object->topic->topic_id) ? true : false;
     phpbb::$template->assign_vars(array('S_NOTIFY_ALLOWED' => phpbb::$user->data['is_registered'] && !$is_subscribed ? true : false, 'S_NOTIFY_CHECKED' => phpbb::$user->data['is_registered'] && !$is_subscribed && phpbb::$user->data['user_notify'] && $post_object->post_type == TITANIA_SUPPORT ? ' checked=checked' : ''));
     $message_object->display();
 }
Пример #8
0
        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');
Пример #9
0
            if ($repack) {
                $revision->repack($old_revision);
            }
            // Update the revision to be submitted, which unhides the queue topic and updates the contrib_last_update time
            $revision->revision_submitted = true;
            $revision->submit();
            // Update the queue (make visible)
            $revision->update_queue();
            if ($repack && titania::$config->use_queue && titania_types::$types[titania::$contrib->contrib_type]->use_queue) {
                redirect(titania_url::build_url('manage/queue', array('q' => $revision->revision_queue_id)));
            }
            // Subscriptions
            $queue = $revision->get_queue();
            if ($queue) {
                $email_vars = array('NAME' => phpbb::$user->lang['VALIDATION'] . ' - ' . titania::$contrib->contrib_name . ' - ' . $revision->revision_version, 'U_VIEW' => titania_url::build_url('manage/queue', array('q' => $queue->queue_id)));
                titania_subscriptions::send_notifications(TITANIA_QUEUE, titania::$contrib->contrib_type, 'subscribe_notify_forum.txt', $email_vars, phpbb::$user->data['user_id']);
            }
            redirect(titania::$contrib->get_url());
            break;
    }
} while ($try_again);
phpbb::$template->assign_vars(array('ERROR_MSG' => sizeof($error) ? implode('<br />', $error) : '', 'NEXT_STEP' => $next_step, 'REVISION_ID' => $revision_id, 'AGREEMENT_NOTICE' => titania_types::$types[titania::$contrib->contrib_type]->upload_agreement ? isset(phpbb::$user->lang[titania_types::$types[titania::$contrib->contrib_type]->upload_agreement]) ? nl2br(phpbb::$user->lang[titania_types::$types[titania::$contrib->contrib_type]->upload_agreement]) : nl2br(titania_types::$types[titania::$contrib->contrib_type]->upload_agreement) : false, 'QUEUE_ALLOW_REPACK' => true, 'S_POST_ACTION' => $repack ? titania_url::append_url(titania::$contrib->get_url('revision'), array('repack' => $repack)) : titania::$contrib->get_url('revision')));
// Output the available license options
foreach (titania_types::$types[titania::$contrib->contrib_type]->license_options as $option) {
    phpbb::$template->assign_block_vars('license_options', array('NAME' => $option, 'VALUE' => $option));
}
// Display the list of phpBB versions available
/*$allowed_branches = get_allowed_phpbb_branches();
foreach ($phpbb_versions as $version => $name)
{
	if (!isset($allowed_branches[substr($version, 0, 2)]))
Пример #10
0
    /**
     * 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');
    }
Пример #11
0
 /**
  * Approve this revision
  *
  * @param mixed $public_notes
  */
 public function approve($public_notes)
 {
     titania::add_lang(array('manage', 'contributions'));
     $revision = $this->get_revision();
     $contrib = new titania_contribution();
     if (!$contrib->load($this->contrib_id)) {
         return false;
     }
     $revision->contrib = $contrib;
     $contrib_release_topic_id = $contrib->contrib_release_topic_id;
     $notes = $this->queue_validation_notes;
     titania_decode_message($notes, $this->queue_validation_notes_uid);
     $message = sprintf(phpbb::$user->lang['QUEUE_REPLY_APPROVED'], $revision->revision_version, $notes);
     // Replace empty quotes if there are no notes
     if (!$notes) {
         $message = str_replace('[quote][/quote]', '', $message);
     }
     $this->topic_reply($message, false);
     $this->discussion_reply($message);
     // Update the revisions
     $revision->change_status(TITANIA_REVISION_APPROVED);
     // Reply to the release topic
     if ($contrib_release_topic_id && titania_types::$types[$contrib->contrib_type]->update_public) {
         // Replying to an already existing topic, use the update message
         $public_notes = sprintf(phpbb::$user->lang[titania_types::$types[$contrib->contrib_type]->update_public], $revision->revision_version) . ($public_notes ? sprintf(phpbb::$user->lang[titania_types::$types[$contrib->contrib_type]->update_public . '_NOTES'], $public_notes) : '');
         $contrib->reply_release_topic($public_notes);
     } elseif (!$contrib_release_topic_id && titania_types::$types[$contrib->contrib_type]->reply_public) {
         // Replying to a topic that was just made, use the reply message
         $public_notes = phpbb::$user->lang[titania_types::$types[$contrib->contrib_type]->reply_public] . ($public_notes ? sprintf(phpbb::$user->lang[titania_types::$types[$contrib->contrib_type]->reply_public . '_NOTES'], $public_notes) : '');
         $contrib->reply_release_topic($public_notes);
     }
     // Self-updating
     $this->queue_status = TITANIA_QUEUE_APPROVED;
     $this->queue_close_time = titania::$time;
     $this->queue_close_user = phpbb::$user->data['user_id'];
     $this->submit(false);
     // Send notification message
     $this->send_approve_deny_notification(true);
     // Subscriptions
     $email_vars = array('NAME' => $contrib->contrib_name, 'U_VIEW' => $contrib->get_url());
     titania_subscriptions::send_notifications(TITANIA_CONTRIB, $this->contrib_id, 'subscribe_notify.txt', $email_vars);
     // Hooks
     titania::$hook->call_hook_ref(array(__CLASS__, __FUNCTION__), $this);
 }