Ricky Nguyen
asked on
Joomla 3 - JFactory::getDocument()->countModules
Hi Experts,
Can you please help me understand why line8 isn't working?
What I'm trying to achieve is something similar to $this->countModules() in a non-index.php file.
Thanks
Rick
Can you please help me understand why line8 isn't working?
What I'm trying to achieve is something similar to $this->countModules() in a non-index.php file.
Thanks
Rick
function topSpanSize(){
// count modules in the top container
$modCount=0;
for($i=1; $i<=3; $i++){
$module=JFactory::getDocument()->countModules('top-'.$i);
if(!$module==0){
$modCount++;
}
}
/* Calculate the span size based
* on module count. e.g. If only 1
* module exist in the top-container
* then it should take up the whole row.
* i.e. span12 */
if ($modCount<>0){
$topSpanNum = 12/$modCount;
}
else{
$topSpanNum = 0;
}
return $topSpanNum;
}
What is happening when you try that code? Have you tried dumping any of the variables to see what is being returned?
function topSpanSize(){
// count modules in the top container
$modCount=0;
for($i=1; $i<=3; $i++){
$x=JFactory::getDocument(); // <------------- what happens here?
die(print_r($x,1)); // <------------- what happens here?
$module=JFactory::getDocument()->countModules('top-'.$i);
if(!$module==0){
$modCount++;
}
}
/* Calculate the span size based
* on module count. e.g. If only 1
* module exist in the top-container
* then it should take up the whole row.
* i.e. span12 */
if ($modCount<>0){
$topSpanNum = 12/$modCount;
}
else{
$topSpanNum = 0;
}
return $topSpanNum;
}
ASKER
Thanks for posting routinet. As per your code above, when at line 5, $x variable of type JDocumentHTML is recognised. After line 6 it prints the following and dies:
JDocumentHTML Object ( [_links] => Array ( [http://localhost/joomla3_1/] => Array ( [relation] => canonical [relType] => rel [attribs] => Array ( ) ) ) [_custom] => Array ( ) [template] => alpha1_0 [baseurl] => /joomla3_1 [params] => JRegistry Object ( [data:protected] => stdClass Object ( ) ) [_file] => C:\xampp\htdocs\Joomla3_1/templates/alpha1_0/index.php [_template:protected] => [_template_tags:protected] => Array ( ) [_caching:protected] => [_html5:JDocumentHTML:private] => [title] => Home [description] => [link] => [base] => http://localhost/joomla3_1/index.php [language] => en-gb [direction] => ltr [_generator] => Joomla! - Open Source Content Management [_mdate] => [_tab] => [_lineEnd] => [_charset] => utf-8 [_mime] => text/html [_namespace] => [_profile] => [_scripts] => Array ( [/joomla3_1/media/system/js/mootools-core.js] => Array ( [mime] => text/javascript [defer] => [async] => ) [/joomla3_1/media/system/js/core.js] => Array ( [mime] => text/javascript [defer] => [async] => ) [/joomla3_1/media/system/js/caption.js] => Array ( [mime] => text/javascript [defer] => [async] => ) [/joomla3_1/media/jui/js/jquery.min.js] => Array ( [mime] => text/javascript [defer] => [async] => ) [/joomla3_1/media/jui/js/jquery-noconflict.js] => Array ( [mime] => text/javascript [defer] => [async] => ) [/joomla3_1/media/jui/js/bootstrap.min.js] => Array ( [mime] => text/javascript [defer] => [async] => ) ) [_script] => Array ( [text/javascript] => window.addEvent('load', function() { new JCaption('img.caption'); }); ) [_styleSheets] => Array ( [/joomla3_1/media/jui/css/bootstrap.min.css] => Array ( [mime] => text/css [media] => [attribs] => Array ( ) ) [/joomla3_1/media/jui/css/bootstrap-responsive.min.css] => Array ( [mime] => text/css [media] => [attribs] => Array ( ) ) [/joomla3_1/media/jui/css/bootstrap-extended.css] => Array ( [mime] => text/css [media] => [attribs] => Array ( ) ) ) [_style] => Array ( ) [_metaTags] => Array ( [http-equiv] => Array ( [content-type] => text/html; charset=utf-8 ) [standard] => Array ( [keywords] => [rights] => [author] => Super User ) ) [_engine] => [_type] => html )
ASKER
When I run my original codes and it hits line 8. The module count = 0. This is incorrect as I am definitely sure the module count should equal to 3. When I test the codes with $this->countModules() on the index file. It gives the correct count.
The index.php file is currently pulling in an external file via:
The index.php file is currently pulling in an external file via:
require dirname(__FILE__) . '\php\htmlOutputFns.php';
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
output as per above code:
count for top-1=0
count for top-2=0
count for top-3=0
ASKER
Thanks... Stupid of me. I forgot to switch it on.
ASKER