joomla组件:如何删除所有预加载的数据和css

时间:2013-07-26 18:07:52

标签: joomla2.5 custom-component

好吧,伙计们, 这是我想做的事情。我有一个安装的joomla组件。它工作得很好,但现在我希望组件加载自己的index.php和css,而不必依赖或关心默认模板。我创建了一个组件/ views / dafault.php,并在其中称为

require_once('D:\ site \ localsite \ templates \ component \ index.php');

在index.php中的

我已经调用了css所以这没关系。问题是所有其他默认项目都进入顶部菜单,侧面菜单以及默认模板的其他所有内容。

请帮助我。我在这一个拉毛发。我是joomla的新手 - 习惯了kohana。

和yaa我试过tmpl = component而且做得不多。有没有办法去除例如在默认模板上预加载的所有内容,只留下组件人员?

4 个答案:

答案 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();
}

更新:我在代码中添加了更好的评论,希望你能看到我正在尝试做的事情。