Вход Регистрация
Файл: qa-include/qa-app-events.php
Строк: 163
<?php

/*
    Question2Answer (c) Gideon Greenspan

    http://www.question2answer.org/

    
    File: qa-include/qa-app-events.php
    Version: See define()s at top of qa-include/qa-base.php
    Description: Handles the submission of events to the database (application level)


    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation; either version 2
    of the License, or (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    More about this license: http://www.question2answer.org/license.php
*/

    
if (!defined('QA_VERSION')) { // don't allow this page to be requested directly from browser
        
header('Location: ../');
        exit;
    }

    require_once 
QA_INCLUDE_DIR.'qa-db-events.php';
    require_once 
QA_INCLUDE_DIR.'qa-app-updates.php';
    

    function 
qa_create_event_for_q_user($questionid$lastpostid$updatetype$lastuserid$otheruserid=null$timestamp=null)
/*
    Add appropriate events to the database for an action performed on a question. The event of type $updatetype relates
    to $lastpostid whose antecedent question is $questionid, and was caused by $lastuserid. Pass a unix $timestamp for
    the event time or leave as null to use now. This will add an event to $questionid's and $lastuserid's streams. If
    $otheruserid is set, it will also add an notification-style event for that user, unless they are the one who did it.
*/
    
{
        
qa_db_event_create_for_entity(QA_ENTITY_QUESTION$questionid$questionid$lastpostid$updatetype$lastuserid$timestamp); // anyone who favorited the question

        
if (isset($lastuserid) && !QA_FINAL_EXTERNAL_USERS)
            
qa_db_event_create_for_entity(QA_ENTITY_USER$lastuserid$questionid$lastpostid$updatetype$lastuserid$timestamp); // anyone who favorited the user who did it

        
if (isset($otheruserid) && ($otheruserid!=$lastuserid))
            
qa_db_event_create_not_entity($otheruserid$questionid$lastpostid$updatetype$lastuserid$timestamp); // possible other user to be informed
    
}
    

    function 
qa_create_event_for_tags($tagstring$questionid$updatetype$lastuserid$timestamp=null)
/*
    Add appropriate events to the database for an action performed on a set of tags in $tagstring (namely, a question
    being created with those tags or having one of those tags added afterwards). The event of type $updatetype relates
    to the question $questionid, and was caused by $lastuserid. Pass a unix $timestamp for the event time or leave as
    null to use now.
*/
    
{
        require_once 
QA_INCLUDE_DIR.'qa-util-string.php';
        require_once 
QA_INCLUDE_DIR.'qa-db-post-create.php';

        
$tagwordids=qa_db_word_mapto_ids(array_unique(qa_tagstring_to_tags($tagstring)));
        foreach (
$tagwordids as $wordid)
            
qa_db_event_create_for_entity(QA_ENTITY_TAG$wordid$questionid$questionid$updatetype$lastuserid$timestamp);
    }
    

    function 
qa_create_event_for_category($categoryid$questionid$updatetype$lastuserid$timestamp=null)
/*
    Add appropriate events to the database for an action performed on $categoryid (namely, a question being created in
    that category or being moved to it later on), along with all of its ancestor categories. The event of type
    $updatetype relates to the question $questionid, and was caused by $lastuserid. Pass a unix $timestamp for the event
    time or leave as null to use now.
*/
    
{
        if (isset(
$categoryid)) {
            require_once 
QA_INCLUDE_DIR.'qa-db-selects.php';
            require_once 
QA_INCLUDE_DIR.'qa-app-format.php';
            
            
$categories=qa_category_path(qa_db_single_select(qa_db_category_nav_selectspec($categoryidtrue)), $categoryid);
            foreach (
$categories as $category)
                
qa_db_event_create_for_entity(QA_ENTITY_CATEGORY$category['categoryid'], $questionid$questionid$updatetype$lastuserid$timestamp);
        }
    }
    
    
/*
    Omit PHP closing tag to help avoid accidental output
*/
Онлайн: 0
Реклама