Category:
Community Answers
Published on Friday, 09 July 2010 12:51
Written by Administrator
Hits: 1067
For v2.x and above:
You can use standard Joomla template overrides to override output from Community Answers. To know more please follow below link:
http://docs.joomla.org/How_to_override_the_output_from_the_Joomla!_core
The following documentation is meant for v1.x users.
Community Answers allow you to extend the template without loosing the work you've done when upgrading the component. Before moving forward, below are few facts about the template framework of Community Answers.
- Community Answers uses jQuery framework for all Ajax and user interaction. The required jQuery and jQuery UI libraries will be loaded from the assets/scripts directory when the component is loaded.
- Community Answers stores default template under components/com_communityanswers/templates. The default folder stores the default template and required files.
- Community Answers has the mechanism to load your css and JavaScript files automatically from the templates. You need not include your scipts or styles manually. All you need to do is to place the scripts and styles in appropriate directories which you will learn later in this article.
- When extending the templates, you need to copy all resources from the template you are extending into your custom template. This includes images, scripts and styles etc.
- The custom template location of Community Answers is JOOMLAROOT/templates/communityanswers/ .
So here is the procedure to extend the default template that is part of the Community Answers package (components/com_communityanswers/templates/default)
- Copy the template directory "default" from the templates folder to the custom templates folder Do not rename the folder for now as you are extending the default template and want to keep the name as is.
- Keep the template files (*.php files) that you want to customize and remove all other .php files in your custom template folder. Below are the template files which you may be interested in:
- open_answers.php - The home page of community answers. Displays open, answered, featured, most answered answers etc.
- view_answer.php - This page displays the individual answer
- new_answer.php - This page displays form for posting new question
- user_answers.php - Lists the answers submitted by the logged in user that he owns
- user_questions.php - Lists questions submitted by logged in user that he owns.
- The Community Answers template system is intelligent enough to take the available template file from your custom template folder/template folder/default template folder. It looks for a template file in the sequential order of the following locations:
- JOOMLAROOT/templates/communityanswers/TEMPLATENAME folder where TEMPLATENAME is the name of your custom template (for now you can treat this as default as your custom template is extending from default template).
- components/com_communityanswers/templates/TEMPLATENAME folder
- components/com_communityanswers/templates/default folder
- Now if you want to customize only home page of Community Answers, just keep open_answers.php file and remove other template files. Please note that you still need to keep all resources that you copied from default template
- Now customize the template file as you wish and Community Answers loads your template instantly.
Below are the variables available that you can make use of:
$this->list - Array stores the list of questions. Each question is a PHP object with the following properties
- id - id of the question (number)
- title - title of the question (string)
- description - description (string)
- alias - alias for sef urls (string, sef safe)
- catid - category id (number)
- category - category name (string)
- catalias - category alias (string sef safe)
- published - 1 = published , 0 = unpublished (number)
- answers - total number of answers this question has received so far (number)
- created_by - user who created the question (number)
- created - date created in the format "mm-dd-yyyy hh:mm:ss" (string)
- ip_adress - ip address of the creator (string)
- $this->category - category id if your are viewing specific category
Always use $this->escape($YOUR_STRING_VARIABLE) function when you are printing a string variable for security reasonsEx: echo $this->escape($row->title);