VirtueMart Category List проблемы отображения

7 года 9 мес. назад #7346 от swear000
Установлен стандартный модуль вывода категорий на главной. И возникли проблемы с выводом. Number of Columns 4

так не надо

как исправить чтобы показывалось нормально

надо так

joomla 1.5 virtuemart 1.1.5

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

7 года 9 мес. назад #7347 от Wedal
swear000, покажите действующий пример.

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

7 года 9 мес. назад - 7 года 9 мес. назад #7348 от swear000
пример

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

7 года 9 мес. назад #7349 от Wedal
swear000, посмотрел. Правкой только CSS тут не обойтись. Нужно переписывать код макета модуля вывода этих категорий.
Попробуйте этот модуль: wedal.ru/rasshireniya-joomla/virtuemart-internet-magazin-na-joomla-chast-18-vivod-kategoriy-virtuemart-s-izobrazeniyami-na-glavnoy-stranice-saita.html

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

7 года 9 мес. назад #7350 от swear000
поставила этот модуль (тот что стоял до этого по коду такой же). ничего не изменилось.

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

7 года 9 мес. назад #7351 от Wedal
swear000, Virtuemart старый, модуль - тоже. Сейчас написал бы все совсем иначе. А так, нужно править код макета. В этом модуле есть строка:
for ($kp = 0; $kp < $countCategories; $kp++) {
Она запускает цикл перебора категорий. Внутри этого цикла формируется код. Если вы хоть немного разбираетесь в PHP, то для вас не составит труда переписать его таким образом, чтобы не было никаких таблиц, а каждая категория выводилась в отдельном DIV'е с заданным CSS-классом. Этого достаточно. Остальное - правка CSS. Я переписал бы его, но уже давно не использую VM 1.1.x.

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

7 года 9 мес. назад - 7 года 9 мес. назад #7352 от swear000
в php плохо разбираюсь ((( я смотрела этот цикл, пыталась изменить, но не понимаю смысл float=1 и float=0

for ($kp = 0; $kp < $countCategories; $kp++) {
	if ( $columns == 1 ) {
		echo '<table border="0">';
	} else {
		$float = 0;
		foreach ($begin as $key2 => $value2)
		{
			if ($kp == $value2) {
				$float = 1;
			}
		}
		if ($float == 1) {		
			echo '<div style="position:relative;float:left;margin-top:10px;margin-left:20px;margin-right:20px;
margin-bottom:0px;"><table border="0" cellpadding="0" cellspacing="0">';
		}
	}
 
	echo '<tr>';
 
	if ($displayImg == 2) {
		echo '<td align="center"><div class="tov-img"><a href="'. $sess->url( URL .'index.php?page=shop.browse&amp;category_id=' . $categories[$kp]
['category_child_id']). '">'. ps_product::image_tag( $categories[$kp]["category_thumb_image"], "alt=\"".$categories[$kp]
["category_name"]."\"", 0, "category") . '</a></div>
		<div class="tov-title">'.$categories[$kp]['category_name'].'</div>
		</td></tr><tr>';
	} else if ($displayImg == 1) {
		echo '<td align="center">'. JHTML::_('image', 'modules/mod_virtuemart_category_list/assets/images/icon-folder-small.png', $categories[$kp]
['category_name']). '</td>';
	}
	echo '</tr>';
 
	if ( $columns == 1 ) {
		echo '</table>';
	} else {
		if ($kp == $endFloat) {
			echo '</table></div><div style="clear:both"></div>';
		} else {
			$float = 0;
			foreach ($end as $k => $v)
			{
				if ($kp == $v) {
					$float = 1;
				}
			}
			if ($float == 1) {		
				echo '</table></div>';
			}
		}
	}
}

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

7 года 9 мес. назад #7353 от Wedal
swear000, удаляйте это всё.
Оставьте в цикле только
<div class="mod_vm_category">
	<div class="tov-img">
		<a href="<?php echo $sess->url( URL .'index.php?page=shop.browse&amp;category_id=' . $categories[$kp] ['category_child_id']). ?>">
			<?php echo ps_product::image_tag( $categories[$kp]["category_thumb_image"], "alt=\"".$categories[$kp] ["category_name"]."\"", 0, "category") ?>
		</a>
	</div>
	<div class="tov-title">
		<a href="<?php echo $sess->url( URL .'index.php?page=shop.browse&amp;category_id=' . $categories[$kp] ['category_child_id']). ?>">
			<?php echo $categories[$kp]['category_name']; ?>
		</a>
	</div> 
</div>
После этого у вас должен появиться список категорий в один столбик, друг под другом.
Если всё так, в CSS добавите:
.mod_vm_category{
	width: 30%;
	float:left;
}
Ну и дальше подправите CSS под свои нужды.
Спасибо сказали: swear000

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

7 года 9 мес. назад - 7 года 9 мес. назад #7355 от swear000
спасибо что указали направление движения.
вот готовый цикл
for ($kp = 0; $kp < $countCategories; $kp++) {
 
	echo  "<div class='mod_vm_category'  style='float:left;width:".$cellwidth."%;'>";
	echo "<div class='tov-img'>";
    echo '
	<a href="'.$sess->url( URL .'index.php?page=shop.browse&amp;category_id=' . $categories[$kp] ['category_child_id']).'">
 '.ps_product::image_tag( $categories[$kp]["category_thumb_image"], "alt=\"".$categories[$kp] ["category_name"]."\"", 0, "category") .'
		</a>	
	</div>
	<div class="tov-title">';
	echo ''.$categories[$kp]['category_name'].'';
	echo "</div>";
echo '</div>';
 
}



перед циклом нужно разместить строку
$cellwidth = intval( (100 / $numColumns )-2 );


тогда модуль будет подстраиваться под кол-во категорий в строке, которые задаются через админку

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.