Welcome to the Question2Answer Q&A. There's also a demo if you just want to try it out.
–1 vote
in Q2A Core by
Why have chosen a complex template system.

It's so hard and sometimes impossible to customize a page without modifying q2a core
Q2A version: 1.5.4
I have also have this problem.
Why we can't customize themes like WordPress?

2 Answers

+1 vote
I don't think template system is complicated! You can overwrite functions exists in qa-template-base.php and there is no need to modify the core!

But I agree that sometimes modifying core is more simple and template system is not very professional. There can be a more professional system.
+3 votes

Template system is not so hard just a matter of getting hands on and to know how it works. If you momorize qa-theme-base.php and once you start to recognize functions and elements you will find it is very easy to works on.

But if you are comparing with WordPress or other CMS than woudl say those CMSs have different concept than Q2A. If you are talking about HTML than I agree in some part but not all that inline HTML sometime makes theming difficult. But agian Q2A doesn't have many elements to align and desing so if you are good with CSS and know at least qa-theme-base.php than I believe you can create theme with most types of layout.

But if you never tried any document and directly start to comparing with WordPress or other CMS you belong to than definatly it is going to give you pain.

Best wayt to star with them is going through documents http://www.question2answer.org/themes.php and check other themes.. You dont have to buy free themes still have great customized layout..

Few of them Snow, Classic, Pixel n Grain - Dark, Pixel n Grain - Light


In most cases you can customize theme layout by refering qa-theme-base.php and refer above document. PHP knowledge will helps you a lot.

Whatever element you want to customize it should go into your theme.php file withing this class


class qa_html_theme extends qa_html_theme_base
// this fuction you can find in qa-theme-base.php
function head_css()
now to call base function elements you must have to 
load by qa_html_theme_base::function() -> here is head_css() function
So if you want to add your element before default function's elements
loads than place qa_html_theme_base::function() after your code/function
if you want to add your element after default function's elements
loads than place qa_html_theme_base::function() before your code/function
$this->output('This text will loads before other css loads');
$this->output('This text will loads after all above css and text loads');

I hope this will helps you to understand and to rid off your frustration :P

I have understood the systeme of theme.php file but some part can't be modified, for example, the user profil page is impossible to customize due to the <table> coding.

For me, The best way to make more easier and just use css would be to work with <div>.
I agree Div allows more to play with CSS than table. I also believe in some part designer needs some more flexibility which allows to add or remove HTML elements without touching core. I also don't like table and only use for real table content. But I believe it is just matter of time and will have more flexible design architecture eventually.. :)