require_once('D:\ site \ localsite \ templates \ component \ index.php');
在index.php中的我已经调用了css所以这没关系。问题是所有其他默认项目都进入顶部菜单,侧面菜单以及默认模板的其他所有内容。
请帮助我。我在这一个拉毛发。我是joomla的新手 - 习惯了kohana。
和yaa我试过tmpl = component而且做得不多。有没有办法去除例如在默认模板上预加载的所有内容,只留下组件人员?
答案 0 :(得分:0)
如果我不明白你的问题是错的,你可以做这样的事情;
<?php if ($this->countModules( 'position-1' )) : ?>
<div class="cssforthecomponent">
<jdoc:include type="component" />
</div>
<?php else: ?>
<?php if ($this->countModules( 'position-2' )) : ?>
<div class="cssfortherestofwebsite">
<jdoc:include type="component" />
</div>
<?php endif; ?>
将组件分配给菜单项,其中空模块为同一菜单项的位置-1。它会工作。你不需要包含或做其他事情。
和平..
答案 1 :(得分:0)
您可以这样调用您的组件:
index.php?option=com_your_component&format=raw
或者您可以为组件添加菜单项并禁用此菜单项的所有模块分配
答案 2 :(得分:0)
你这方面的工作太过努力了。 Joomla旨在使模板覆盖变得容易,而无需对可能在以后引发问题的大量内容进行硬编码。最简单的方法是创建特定于此组件的模板,然后仅将该模板分配给此组件。您需要为组件创建一个菜单项,以便您有一个项目ID,它将显示在模板管理器的菜单分配中。如果模板与原始网站模板类似,则可以在模板管理器中创建副本,然后编辑生成的副本。
答案 3 :(得分:0)
在组件的基本文件(位于components/com_yourname/yourname.php
)中,您希望检查正在设置的组件,然后设置它(或重定向到设置它的URL),如果没有设置:< / p>
$app = JFactory::getApplication();
$menu = $app->getMenu();
$jinput = $app->input;
// check if they are on the default menu item (i.e. not your component's)
// also check if the template is set already
if ($menu->getActive() == $menu->getDefault() && $jinput->get('template') != 'comtemplate') {
// you might be able to get away with this, I haven't tested this
$jinput->set('template', 'comtemplate');
// otherwise set up a redirect
// get the current url of the page
$url = $_SERVER['REQUEST_URI'];
// check if '?' already exists in the url
// if it does then there is already the start of the query string so we should
// use '&' to tack on the new query item
// if not then start the query string with '?'
$url .= (strpos($url, '?')===FALSE ? '?' : '&') . 'template=comtemplate';
// take the new url and redirect to it.
//This should update the url in the browser for the user
$app->redirect($url);
// since you redirected, no sense letting anything else run here, so exit
exit();
}
更新:我在代码中添加了更好的评论,希望你能看到我正在尝试做的事情。