Jump to content
  • 0

Увеличение строк в последних объявлениях


Manager87
 Share

Question

Здравствуйте!

Помогите пожалуйста с решением

Есть компонент adsmanager 2.7 на joomla 2.5

мне нужно чтобы в последних объявлениях который выводится как контент на главной, было 16 объявлений, но так чтобы после каждого 4-го объявления, переносилось в следующую строку то есть 16 объявлений=4 колонки,4 строки

решил сделать так:

components/com_adsmanager/views/front/view.html.php


$nb_cols = $conf->nb_last_cols;
$col = 0;
foreach($contents as $row) {
if ($col == 4)
{
echo "<tr>";}
$col++;
?>

Но проблема в том что выводятся только в 2 строки, а не в 4 как мне нужно. Мне кажется что то нужно менять в этом файле. Прошу помочь..

Edited by Manager87
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Вот весь код файла view.html.php, скажите пожалуйста, где нужно менять, чтобы последние объявления выводились например в 4 строки?


<?php
/**
* @package AdsManager
* @copyright Copyright (C) 2010-2012 JoomPROD.com. All rights reserved.
* @license GNU/GPL
*/
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die( 'Restricted access' );
jimport('joomla.application.component.view');
require_once(JPATH_BASE."/components/com_adsmanager/helpers/general.php");
/**
* @package Joomla
* @subpackage Contacts
*/
class AdsmanagerViewFront extends JView
{
function display($tpl = null)
{
jimport( 'joomla.session.session' );
$currentSession = JSession::getInstance('none',array());
$currentSession->set("search_fields","");
$currentSession->set("searchfieldscatid",0);
$currentSession->set("searchfieldssql"," 1 ");
$currentSession->set("tsearch","");

$app = JFactory::getApplication();
$pathway = $app->getPathway();

$user = JFactory::getUser();

$document = JFactory::getDocument();

$contentmodel =$this->getModel( "content" );
$catmodel =$this->getModel( "category" );
$configurationmodel =$this->getModel( "configuration" );
// Get the parameters of the active menu item
$menus = $app->getMenu();
$menu = $menus->getActive();

$conf = $configurationmodel->getConfiguration();

$cats = $catmodel->getCatTree(true,true,$nbcontents);
$this->assignRef('cats',$cats);
$this->assignRef('conf',$conf);

$document->setTitle( JText::_('ADSMANAGER_PAGE_TITLE'));

$general = new JHTMLAdsmanagerGeneral(0,$conf,$user);
$this->assignRef('general',$general);

$conf = $configurationmodel->getConfiguration();
$nbimages = $conf->nb_images;
if (function_exists("getMaxPaidSystemImages"))
{
$nbimages += getMaxPaidSystemImages();
}
$this->assignRef('nbimages',$nbimages);

$nb_cols = $conf->nb_last_cols;
$nb_rows = $conf->nb_last_rows;
$contents = $contentmodel->getLatestContents($nb_cols*$nb_rows);
$this->assignRef('contents',$contents);
parent::display($tpl);
}

function recurseCategories( $id, $level, &$children) {

if (@$children[$id]) {
$i=0;$first=true;
foreach ($children[$id] as $row) {
$link = TRoute::_("index.php?option=com_adsmanager&view=list&catid=".$row->id);
if ($level == 0)
{
if ($i==0)
{
echo '<tr align="center">';
}
?>
<td width="50%">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td rowspan="2" width="80"><div align="center">
<?php
if (file_exists(JPATH_BASE."/images/com_adsmanager/categories/".$row->id."cat.jpg"))
echo '<a href="'.$link.'"><img class="imgcat" src="'.$this->get('baseurl').'/images/com_adsmanager/categories/'.$row->id.'cat.jpg" alt="'.htmlspecialchars($row->name).'" /></a>';
else
echo '<a href="'.$link.'"><img class="imgcat" src="'.$this->get('baseurl').'/components/com_adsmanager/images/default.gif" alt="'.htmlspecialchars($row->name).'" /></a>';
?>
</div></td>
<td>
<h2 class="adsmanager_main_cat"><a href="<?php echo $link; ?>" ><?php echo htmlspecialchars($row->name)." (".$row->num_ads.")"; ?></a></h2>
</td>
</tr>
<tr>
<td>
<h3 class="adsmanager_sub_cat">
<?php
}
else
{
if ($first == false)
echo ' <br> ';
echo '<a href="'.$link.'">'.htmlspecialchars($row->name)." (".$row->num_ads.")".'</a>';
$first = false;
}
if ($level == 0)
{
$this->recurseCategories( $row->id, $level+1, $children);
}
if ($level == 0)
{
?>
</h3>
</td>
</tr>
</table>
</td>
<?php
if ($i==1)
{
echo '</tr>';
}
}
$i++;
if ($i == 2) $i=0;
}
}
}

function displayContents($contents,$nbimages) {
$configurationmodel =$this->getModel( "configuration" );
$conf = $configurationmodel->getConfiguration();
?>
<h1 class="contentheading"><?php echo JText::_('ADSMANAGER_LAST_ADS');?></h1>
<div class='adsmanager_box_module' align="center">
<table class='adsmanager_inner_box' width="100%">
<?php
$nb_cols = $conf->nb_last_cols;
$col = 0;
foreach($contents as $row) {
if ($col == 4)
{
echo "<TR>";}
$col++;
?>
<td>
<?php
$linkTarget = TRoute::_("index.php?option=com_adsmanager&view=details&id=".$row->id."&catid=".$row->catid);
if (isset($row->images[0])) {
echo "<div align='center'><a href='".$linkTarget."'><img src='".$this->get('baseurl')."/images/com_adsmanager/ads/".$row->images[0]->thumbnail."' alt='".htmlspecialchars($row->ad_headline)."' border='0' /></a>";
} else {
echo "<div align='center'><a href='".$linkTarget."'><img src='".ADSMANAGER_NOPIC_IMG."' alt='nopic' border='0' /></a>";
}

echo "<br /><a href='$linkTarget'>".$row->ad_headline."</a>";
//echo "<br /><span class=\"adsmanager_cat\">(".htmlspecialchars($row->parent)." / ".htmlspecialchars($row->cat).")</span>";
//echo "<br />".$this->reorderDate($row->date_created);
echo "</div>";
?>
</td>
<?php
if ($col == $nb_cols) {
echo "</tr>";
$col = 0;
}
}
?>
</table>
</div>
<br />
<?php
}

function reorderDate( $date ){
$format = JText::_('ADSMANAGER_DATE_FORMAT_LC');

if ($date && (preg_match("/([0-9]{4})-([0-9]{2})-([0-9]{2})/",$date,$regs))) {
$date = mktime( 0, 0, 0, $regs[2], $regs[3], $regs[1] );
$date = $date > -1 ? strftime( $format, $date) : '-';
}
return $date;
}
}

Link to comment
Share on other sites

  • 0

Сделал так. Например нужно вывести 12 объявлений, в 4 ряда, 3 строки, вот кусок кода


<?php
$nb_cols = $conf->nb_last_cols;
$col = 0;
foreach($contents as $row) {
if ($col == 4)
{
echo "<tr>";}
$col++;
?>

пишем $col=8;

if ($col==4), т.е 8+4=12


<?php
$nb_cols = $conf->nb_last_cols;
$col = 8;
foreach($contents as $row) {
if ($col == 4)
{
echo "<tr>";}
$col++;
?>

Но проблема в том что если например нужно 16 объявлений вывести в 4 ряда и 4 строки, то этот трюк не срабатывает...

Edited by Manager87
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy