Показывать только категории, в которых есть списки?

  • Автор темы kirillbushev
  • 26
  • Обновлено
  • 17, May 2024
  • #1
Всем привет, У меня довольно много категорий, и я хочу показывать только категории, в которых есть списки.

Это код, который у меня есть на данный момент, который показывает все категории независимо от того -
  $i_substr_cat=substr_count($category, ".");

foreach($categories as $key=>$value)

{

$i_substr_key=substr_count($key, ".");

if($i_substr_key != ($i_substr_cat+1))

{

continue;

}

if(strpos($key, $category.".", 0) === 0)

{

if($website->GetParam("SEO_URLS")==1)

{

$strLink = "https://".$DOMAIN_NAME."/".($MULTI_LANGUAGE_SITE?$M_SEO_CATEGORY:"category")."-".$website->format_str($value)."-".str_replace(".","-",$key).".html";

}

else

{

$strLink = "index.php?mod=search&category=".str_replace(".","-",$key).($MULTI_LANGUAGE_SITE?"&lang=".$website->lang:"");

}

echo "\n<div class=\"col-sm-4 no-left-padding margin-bottom-10\">\n";

echo "\n<a class=\"sub-cat-result\" href=\"".$strLink."\" title=\"".trim($value)."\" >".trim($value)."</a>";

if($website->GetParam("SHOW_LISTINGS_NUMBER")==1)

{

echo " (".(isset($arr_listings_count[$key])?$arr_listings_count[$key]:"0").")";

}

echo "</div>";

}

}

?>
PHP: Любая помощь будет очень признательна. Джастин

kirillbushev


Рег
01 Jan, 2011

Тем
1

Постов
3

Баллов
13
  • 13, Jun 2024
  • #2
Что такое серверная система? Какие данные вы сюда подаете? Какова структура $categories? Без этой информации невозможно ответить на ваш вопрос.

Мы не экстрасенсы.



Тем не менее, ПРЕКРАТИТЕ использование двойных кавычек, усложняющих вашу жизнь, ПРЕКРАТИТЕ использование \n вручную для обычного ввода и работы с пробелами, перестаньте избегать пробелов при добавлении строк, перестаньте создавать переменные просто так, прекратите использовать несколько эхо для выполнения работы одного эха, и т. д. и т. д. и т. д.

Очистка того, что у вас есть на данный момент:

 

$i_substr_cat = substr_count($category, '.');

foreach($categories as $key=>$value) {

if (substr_count($key, '.') != ($i_substr_cat + 1)) continue;

if (strpos($key, $category . '.') === 0) {

if ($website->GetParam("SEO_URLS") == 1) $strLink =

) . '-' . $website->format_str($value) . '-' . str_replace('.', '-', $key) . '.html';

else $strLink = 'index.php?mod=search&category=' . str_replace('.', '-', $key ) . (

$MULTI_LANGUAGE_SITE ? '&lang=' . $website->lang : ''

);

echo '

<div class="col-sm-4 no-left-padding margin-bottom-10">

<a class="sub-cat-result" href="', (

$website->GetParam("SEO_URLS") == 1 ?

'https://' . $DOMAIN_NAME . '/' . (

$MULTI_LANGUAGE_SITE ? $M_SEO_CATEGORY : 'category'

) :

'index.php?mod=search&category=' . str_replace('.', '-', $key ) . (

$MULTI_LANGUAGE_SITE ? '&lang=' . $website->lang : ''

)

), '">', trim($value), '</a>';

if ($website->GetParam("SHOW_LISTINGS_NUMBER") == 1) echo '(', (

array_key_exists($key, $arr_listings_count) ?

$arr_listings_count[$key] :

'0'

), ')';

echo '

</div>';

}

}



Код (разметка): хотя он и не проверен (попутная публикация здесь), может содержать пару опечаток, но дает вам лучшее представление о том, как следует писать PHP.



... хотя я вижу умственную карликовость, которая представляет собой лажу в разметке и полное отсутствие семантики - это похоже на список категорий, у нас есть теги для списков, создающие просто привязки с одним DIV вокруг них, несемантическая тарабарщина . Есть причина, по которой люди, которые СОЗДАЛИ буткрап, не имеют права написать ни единой строчки HTML, не говоря уже о том, чтобы рассказывать другим, как это сделать.
 

Azatick


Рег
11 Jun, 2012

Тем
1

Постов
2

Баллов
12
Тем
49554
Комментарии
57426
Опыт
552966

Интересно