Страница категорий товаров."Скачут" изображения

11 года 11 мес. назад #1975 от kryon
Как избавиться от "скачков" изображений категорий товаров при разной длине названий этих категорий:
Вложенный файл:

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

11 года 11 мес. назад #1976 от Wedal
kryon, самый простой способ - поместить эти карточки в таблицу и выровнять по вертикали. Если использовать только DIV'ы, то уже сложнее. Там начинаются проблемы с IE. В интернете встречал несколько нормальных вариантов на Div'ах. Ищите.

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

11 года 11 мес. назад #1978 от kryon
Wedal, чтобы "поместить в таблицу и выровнить" мне потребуется лезть в код browse_x.php? Подскажите с чего начать..

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

11 года 11 мес. назад #1986 от Wedal
kryon, если речь идет о категории товаров, то да. Также загляните в папку includes папки browse там вам понадобится один из файлов layout.

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

11 года 11 мес. назад #1994 от kryon
Wedal, речь о главной странице категорий, файл - categoryChildlist.tpl.php.
Здесь получается, что каждая карточка со своим именем имеет одну общую ячейку. Считаю, что поэтому при слишком длинном названии категории приподнимается и ее изображение, а выходом будет - поместить в отдельную таблицу имя каждой категории. Как я ни старался - ничего не выходит. Помогите..
Код:
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); 
mm_showMyFileName(__FILE__);
 
$iCol = 1;
if( !isset( $categories_per_row )) {
	$categories_per_row = 3;
}
$cellwidth = intval( 100 / $categories_per_row );
 
if( empty( $categories )) {
	return; // Do nothing, if there are no child categories!
}
?>
<br/>
<table width="100%" cellspacing="0" cellpadding="0" border="1">
<?php
foreach( $categories as $category ) {
	if ($iCol == 1) { // this is an indicator wether a row needs to be opened or not
		echo "<tr>\n";
	}
	?>
 
 
	<td align="center" width="<?php echo $cellwidth ?>%" >
		<br />
         <a title="<?php echo $category["category_name"] ?>" href="<?php $sess->purl(URL."index.php?option=com_virtuemart&amp;page=shop.browse&amp;category_id=".$category["category_id"]) ?>"> 
			<?php
			if ( $category["category_thumb_image"] ) {
				echo ps_product::image_tag( $category["category_thumb_image"], "alt=\"".$category["category_name"]."\"", 0, "category");
				echo "<br /><br/>\n";
			}
			echo $category["category_name"];
			echo $category['number_of_products'];
			?>
		 </a><br/>
	</td>
 
	<?php
	// Do we need to close the current row now?
	if ($iCol == $categories_per_row) { // If the number of products per row has been reached
		echo "</tr>\n";
		$iCol = 1;
	}
	else {
		$iCol++;
	}
}
// Do we need a final closing row tag?
if ($iCol != 1) {
	echo "</tr>\n";
}
?>
</table>

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

11 года 11 мес. назад - 11 года 11 мес. назад #2010 от kryon
Спасибо, что больше никто не отозвался! Пока искал выход, много чего освоил.
А выход, как всегда, очень простой:
- в том же коде файла categoryChildlist.tpl.php поменять
<td align="center" width="<?php echo $cellwidth ?>%" >

на
<td align="center" VALIGN="TOP" width="<?php echo $cellwidth ?>%" >

Таким образом, теперь не карточка товара подстраивается под текст, а наоборот... Просто выполнили вертикальное выравнивание по верхнему краю, а не по центру как было.

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

11 года 11 мес. назад #2013 от Wedal
kryon, а, так они уже и были в таблице. Тогда всё верно, только нужно:
VALIGN="TOP"

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

11 года 11 мес. назад #2018 от kryon
Точно, кавычки уже добавил

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