Вход Регистрация
Файл: qa-include/qa-db-metas.php
Строк: 159
<?php
    
/*
    Question2Answer (c) Gideon Greenspan

    http://www.question2answer.org/

    
    File: qa-include/qa-db-metas.php
    Version: See define()s at top of qa-include/qa-base.php
    Description: Database-level access to metas tables


    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;
    }


    function 
qa_db_usermeta_set($userid$key$value)
/*
    Set the metadata for user $userid with $key to $value. Keys beginning qa_ are reserved for the Q2A core.
*/
    
{
        
qa_db_meta_set('usermetas''userid'$userid$key$value);
    }

    
    function 
qa_db_usermeta_clear($userid$key)
/*
    Clear the metadata for user $userid with $key ($key can also be an array of keys)
*/
    
{
        
qa_db_meta_clear('usermetas''userid'$userid$key);
    }

    
    function 
qa_db_usermeta_get($userid$key)
/*
    Return the metadata value for user $userid with $key ($key can also be an array of keys in which case this
    returns an array of metadata key => value).
*/
    
{
        return 
qa_db_meta_get('usermetas''userid'$userid$key);
    }
    

    function 
qa_db_postmeta_set($postid$key$value)
/*
    Set the metadata for post $postid with $key to $value. Keys beginning qa_ are reserved for the Q2A core.
*/
    
{
        
qa_db_meta_set('postmetas''postid'$postid$key$value);
    }

    
    function 
qa_db_postmeta_clear($postid$key)
/*
    Clear the metadata for post $postid with $key ($key can also be an array of keys)
*/
    
{
        
qa_db_meta_clear('postmetas''postid'$postid$key);
    }

    
    function 
qa_db_postmeta_get($postid$key)
/*
    Return the metadata value for post $postid with $key ($key can also be an array of keys in which case this
    returns an array of metadata key => value).
*/
    
{
        return 
qa_db_meta_get('postmetas''postid'$postid$key);
    }


    function 
qa_db_categorymeta_set($categoryid$key$value)
/*
    Set the metadata for category $categoryid with $key to $value. Keys beginning qa_ are reserved for the Q2A core.
*/
    
{
        
qa_db_meta_set('categorymetas''categoryid'$categoryid$key$value);
    }

    
    function 
qa_db_categorymeta_clear($categoryid$key)
/*
    Clear the metadata for category $categoryid with $key ($key can also be an array of keys)
*/
    
{
        
qa_db_meta_clear('categorymetas''categoryid'$categoryid$key);
    }

    
    function 
qa_db_categorymeta_get($categoryid$key)
/*
    Return the metadata value for category $categoryid with $key ($key can also be an array of keys in which
    case this returns an array of metadata key => value).
*/
    
{
        return 
qa_db_meta_get('categorymetas''categoryid'$categoryid$key);
    }
    

    function 
qa_db_tagmeta_set($tag$key$value)
/*
    Set the metadata for tag $tag with $key to $value. Keys beginning qa_ are reserved for the Q2A core.
*/
    
{
        
qa_db_meta_set('tagmetas''tag'$tag$key$value);
    }

    
    function 
qa_db_tagmeta_clear($tag$key)
/*
    Clear the metadata for tag $tag with $key ($key can also be an array of keys)
*/
    
{
        
qa_db_meta_clear('tagmetas''tag'$tag$key);
    }

    
    function 
qa_db_tagmeta_get($tag$key)
/*
    Return the metadata value for tag $tag with $key ($key can also be an array of keys in which case this
    returns an array of metadata key => value).
*/
    
{
        return 
qa_db_meta_get('tagmetas''tag'$tag$key);
    }


    function 
qa_db_meta_set($metatable$idcolumn$idvalue$title$content)    
/*
    Internal general function to set metadata
*/
    
{
        
qa_db_query_sub(
            
'REPLACE ^'.$metatable.' ('.$idcolumn.', title, content) VALUES ($, $, $)',
            
$idvalue$title$content
        
);
    }

    
    function 
qa_db_meta_clear($metatable$idcolumn$idvalue$title)
/*
    Internal general function to clear metadata
*/
    
{
        if (
is_array($title)) {
            if (
count($title))
                
qa_db_query_sub(
                    
'DELETE FROM ^'.$metatable.' WHERE '.$idcolumn.'=$ AND title IN ($)',
                    
$idvalue$title
                
);
            
        } else
            
qa_db_query_sub(
                
'DELETE FROM ^'.$metatable.' WHERE '.$idcolumn.'=$ AND title=$',
                
$idvalue$title
            
);
    }

    
    function 
qa_db_meta_get($metatable$idcolumn$idvalue$title)
/*
    Internal general function to return metadata
*/
    
{
        if (
is_array($title)) {
            if (
count($title))
                return 
qa_db_read_all_assoc(qa_db_query_sub(
                    
'SELECT title, content FROM ^'.$metatable.' WHERE '.$idcolumn.'=$ AND title IN($)',
                    
$idvalue$title
                
), 'title''content');
            else
                return array();
        
        } else
            return 
qa_db_read_one_value(qa_db_query_sub(
                
'SELECT content FROM ^'.$metatable.' WHERE '.$idcolumn.'=$ AND title=$',
                
$idvalue$title
            
), true);
    }

    
/*
    Omit PHP closing tag to help avoid accidental output
*/
Онлайн: 1
Реклама