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

/*
    Question2Answer (c) Gideon Greenspan

    http://www.question2answer.org/

    
    File: qa-include/qa-page-categories.php
    Version: See define()s at top of qa-include/qa-base.php
    Description: Controller for page listing categories


    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-selects.php';
    require_once 
QA_INCLUDE_DIR.'qa-app-format.php';


    
$categoryslugs=qa_request_parts(1);
    
$countslugs=count($categoryslugs);


//    Get information about appropriate categories and redirect to questions page if category has no sub-categories
    
    
@list($categories$categoryid)=qa_db_select_with_pending(
        
qa_db_category_nav_selectspec($categoryslugsfalsefalsetrue),
        
$countslugs qa_db_slugs_to_category_id_selectspec($categoryslugs) : null
    
);
    
    if (
$countslugs && !isset($categoryid))
        return include 
QA_INCLUDE_DIR.'qa-page-not-found.php';
    

//    Function for recursive display of categories

    
function qa_category_nav_to_browse(&$navigation$categories$categoryid)
    {
        foreach (
$navigation as $key => $navlink) {
            
$category=$categories[$navlink['categoryid']];
            
            if (!
$category['childcount'])
                unset(
$navigation[$key]['url']);
            elseif (
$navlink['selected']) {
                
$navigation[$key]['state']='open';
                
$navigation[$key]['url']=qa_path_html('categories/'.qa_category_path_request($categories$category['parentid']));
            } else
                
$navigation[$key]['state']='closed';
                
            
$navigation[$key]['note']='';
            
            
$navigation[$key]['note'].=
                
' - <A HREF="'.qa_path_html('questions/'.implode('/'array_reverse(explode('/'$category['backpath'])))).'">'.( ($category['qcount']==1)
                    ? 
qa_lang_html_sub('main/1_question''1''1')
                    : 
qa_lang_html_sub('main/x_questions'number_format($category['qcount']))
                ).
'</A>';
                
            if (
strlen($category['content']))
                
$navigation[$key]['note'].=qa_html(' - '.$category['content']);
            
            if (isset(
$navlink['subnav']))
                
qa_category_nav_to_browse($navigation[$key]['subnav'], $categories$categoryid);
        }
    }
        

//    Prepare content for theme

    
$qa_content=qa_content_prepare(falsearray_keys(qa_category_path($categories$categoryid)));

    
$qa_content['title']=qa_lang_html('misc/browse_categories');
    
    if (
count($categories)) {
        
$navigation=qa_category_navigation($categories$categoryid'categories/'false);
        
        unset(
$navigation['all']);
        
        
qa_category_nav_to_browse($navigation$categories$categoryid);
        
        
$qa_content['nav_list']=array(
            
'nav' => $navigation,
            
'type' => 'browse-cat',
        );

    } else {
        
$qa_content['title']=qa_lang_html('main/no_categories_found');
        
$qa_content['suggest_next']=qa_html_suggest_qs_tags(qa_using_tags());
    }

    
    return 
$qa_content;


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