Welcome to the Question2Answer Q&A. There's also a demo if you just want to try it out.
  • Register
Welcome to the Q&A for Question2Answer.

If you have questions about the platform, click here to ask and please use English.

If you just want to try Q2A, please use the demo, which also grants admin access.

Apr 29: Q2A 1.5.2

How to set quantity of shown users in sidebar ?

0 votes
Is there a simple method to limit the quantity of shown users ?
related to an answer for: Showing popular contributors in sidebar
asked Aug 9, 2010 in Q2A Core by monk333

1 Answer

0 votes
Use the PHP function array_slice on the $users variable before you start displaying them: http://php.net/manual/en/function.array-slice.php
answered Aug 9, 2010 by gidgreen
Ah great, this one I used for the tags on the sidebar. Just thought there may be an easier way. I will figure it out.
Thanks and regards

monk333
Can you please tell me how you did it?? How did you implement the function array_slice??
Hey, I figured it out....For those who wants to display the top 5 users here in the sidebar here is the code...place it in the qa-theme.php file located in the themes folder....

function sidebar()
        {
            global $qa_db;

            qa_html_theme_base::sidebar();

            $users=qa_db_single_select($qa_db, qa_db_top_users_selectspec(0));
            echo "Top 5 Users";  
            foreach (array_slice($users,0,5) as $user)
            $this->output('<P>'.qa_get_one_user_html($user['handle'], false).
                    ' ('.number_format($user['points']).')</P>');
        }

In fact your qa-theme.php file will look like this after placing the code....

<?php

/*
    Question2Answer 1.2.1 (c) 2010, Gideon Greenspan

    http://www.question2answer.org/

   
    File: qa-theme/Candy/qa-theme.php
    Version: 1.2.1
    Date: 2010-07-29 03:54:35 GMT
    Description: Override something in base theme class for Candy theme


    This software is free to use and modify for public websites, so long as a
    link to http://www.question2answer.org/ is displayed on each page. It may
    not be redistributed or resold, nor may any works derived from it.
   
    More about this license: http://www.question2answer.org/license.php


    THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
    AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
    THE COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
    TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

    class qa_html_theme extends qa_html_theme_base
    {
        function nav_user_search() // reverse the usual order
        {
            $this->search();
            $this->nav('user');
        }
       
        function sidebar()
        {
            global $qa_db;

            qa_html_theme_base::sidebar();

            $users=qa_db_single_select($qa_db, qa_db_top_users_selectspec(0));
            echo "Top 5 Users";  
            foreach (array_slice($users,0,5) as $user)
                $this->output('<P>'.qa_get_one_user_html($user['handle'], false).
                    ' ('.number_format($user['points']).')</P>');
        }
    

    }
   

/*
    Omit PHP closing tag to help avoid accidental output
*/