2013-03-04 74 views
0

我在自定义Joomla组件上设置了分页。为了避免页面冗长的解释,我们正在做一些错综复杂的iframe嵌入和前向掩盖。这是组件前端的分页。Joomla分页URL不包含view = viewname

在我的iframe中,我有一个小狗列表(来自自定义组件)。它是分页的。为了使幼犬在iframe中正确显示它有网址:

http://americasfavoritepuppybreeders.com/puppies/breed/labrador/page-2.html?tmpl=component&view=microsite

但是当我真正点击分页链接,第2页上则丢弃该视图=微型导致的问题。我怎样才能调整这个,使它不会下降view = microsite?

原始URL是http://americasfavoritepuppybreeders.com/puppies/breed/labrador/page-1.html?tmpl=component&view=microsite

这个分页的代码是长,模型,视图和view.html.php之间,似乎很难让我发布所有相关的代码。这里有一些虽然我一直在寻找。

任何想法或提示何处/如何做到这一点?

感谢 扎克

// Get the pagination request variables 
    $limit  = $app->input->get('limit', $params->get('display_num', 20), 'uint'); 
    $limitstart = $app->input->get('limitstart', 0, 'uint'); 

    $this->setState('puppies.limit', $limit); 
    $this->setState('puppies.limitstart', $limitstart); 

    // Load the parameters. 
    $this->setState('params', $params); 
    }   

/** Method to get a store id based on the model configuration state. **/ 
protected function getStoreId($id = '') 
    { 
    // Compile the store id. 
    $id .= ':' . $this->getState('puppies.breed_alias'); 
    $id .= ':' . $this->getState('puppies.limit'); 
    $id .= ':' . $this->getState('puppies.limitstart'); 
    $id .= ':' . serialize($this->getState('puppies.filter')); 
    $id .= ':' . $this->getState('puppies.featured'); 

    return parent::getStoreId($id); 
    } 

/** Method to get a JPagination object for the data set. **/ 
public function getPagination() 
    { 
    // Create the pagination object. 
    $limit = (int) $this->getState('puppies.limit'); 
    $page = new JPagination($this->getTotal(), $this->getStart(), $limit); 

    return $page; 
    } 

/** Method to get the total number of items for the data set. **/ 
public function getTotal() 
    { 
    return $this->items_total; 
    } 

/** Method to get the starting number of items for the data set. **/ 
public function getStart() 
    { 
    $start = $this->getState('puppies.limitstart'); 
    $limit = $this->getState('puppies.limit'); 
    $total = $this->getTotal(); 
    if ($start > $total - $limit) 
     { 
     $start = max(0, (int) (ceil($total/$limit) - 1) * $limit); 
     } 

    return $start; 
    } 

同样,这里的代码的一部分,但我不知道该怎么开始张贴了一个答案,所以请我将张贴任何代码,但是点我在正确的方向, 谢谢。

回答

1

在该视图的“adminform”底部的某处,应该有提交视图/控制器/令牌的所有隐藏输入。

事情是这样的:

  <input type="hidden" name="option" value="com_puppies" /> 
      <input type="hidden" name="view" value="microsite" /> 
      <input type="hidden" name="task" value="" /> 
      <input type="hidden" name="boxchecked" value="0" /> 
      <inupt type="hidden" name="controller" value="microsite" /> 
      <input type="hidden" name="filter_order" value="<?php echo $this->escape($this->state->get('list.ordering')); ?>" /> 
      <input type="hidden" name="filter_order_Dir" value="<?php echo $this->escape($this->state->get('list.direction')) ?>" /> 
      <?php echo JHtml::_('form.token'); ?> 

随意删除(如果你处理的是不同的即那些filter_order),您将不能使用输入。重要的是视图输入。另外,如果您没有使用该视图的控制器(也就是说,您正在使用该组件的默认控制器),请将控制器输入输出。

+0

我想我可能错过了一个文件,当创建这个新的视图,但看着其他的我可以告诉这肯定会解决我的问题..一旦我设置该视图的管理表单。 – 2013-03-04 00:41:36

+0

应该在管理员目录下还是在组件目录下? – 2013-03-04 00:44:27

+0

很高兴知道!不确定这是否会对您有所帮助,但我们始终都会使用此组件创建者。它为我们节省了一大笔时间来设置最初的文件结构..我知道你知道痛苦..任何与Joomla合作的人都可以:)。 http://www.notwebdesign.com/joomla-component-creator/。 – dcasadevall 2013-03-04 00:44:55

0

您可以给此链接http://americasfavoritepuppybreeders.com/puppies/breed/labrador/page-1.html?tmpl=component&view=microsite没有SEF吗?你可以尝试创建文件/templates/{$your_template}/html/pagination.php这样的代码

<?php 
function pagination_item_active(&$item){ 
    $getData = new JInput($_GET); 
    $view = $getData->get('view','','string'); 
    $link_part = ($view == 'microsite' ? '&view=microsite' : ''); 
    $link = "<a title=\"" . $item->text . "\" href=\"" . $item->link.$link_part . "\" class=\"pagenav2\">" . $item->text . "</a>"; 
    return $link; 
} 

function pagination_item_inactive(&$item){ 
    return "<span class=\"pagenav\">" . $item->text . "</span>"; 
} 

此外,我认为你的问题中不正确的链接。你如何得到这个链接http://americasfavoritepuppybreeders.com/puppies/breed/labrador/page-1.html?tmpl=component&view=microsite?如果您使用view = microsite的ready链接,请尝试在管理面板的视图(微型网站)上创建链接并使用此链接。