Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2016, 11:34   #1
Bilargo
Форумчанин
 
Аватар для Bilargo
 
Регистрация: 17.09.2009
Сообщений: 231
По умолчанию Вывод множества тегов

Всем доброго времени суток!
Подскажите пожалуйста, есть конструкция типа:
PHP код:
function TagCat($tags$itemid){
    foreach(
$tags as $tag){    
        if(
$tag->itemID == $itemid AND $tag->type == '8'){
            
$taglink urldecode(JRoute::_(K2HelperRoute::getTagRoute(urlencode($tag->name))));
            return 
'<a href="'.$taglink.'" class="category">'.$tag->name.'</a>';
        }
    }

Которая отвечает за вывод тега определенного типа объекта, вопрос: как изменить функцию чтобы она выводила не один тег данного типа, а всё множество тегов соответствующего типа?
Цитата:
Относись к людям так, как хочешь, чтоб относились к тебе!
Bilargo вне форума Ответить с цитированием
Старый 19.06.2016, 11:55   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Вместо return <some_tag> – собирай теги в массив, и возвращай не один тег, а массив тегов.
Andkorol вне форума Ответить с цитированием
Старый 19.06.2016, 12:26   #3
Bilargo
Форумчанин
 
Аватар для Bilargo
 
Регистрация: 17.09.2009
Сообщений: 231
По умолчанию

Что-то не получается..
Код:
function TagCat($tags, $itemid){
	foreach($tags as $tag){
		if($tag->itemID == $itemid AND $tag->type == '8'){
			$taglink = urldecode(JRoute::_(K2HelperRoute::getTagRoute(urlencode($tag->name))));
			$array = array($taglink, $tag->name);
			echo '<a href="'.$array[0].'" class="category">'.$array[1].'</a>';
		}
	}
}
Забыл цикл.. сейчас переделаю, должно получится.

Нет, всё-равно мимо, с массивами раньше не работал.

Код:
function TagCatB($tags, $itemid){
	foreach($tags as $tag){
		if($tag->itemID == $itemid AND $tag->type == '8'){
			$taglink = urldecode(JRoute::_(K2HelperRoute::getTagRoute(urlencode($tag->name))));
			$array = array($taglink, $tag->name);
			foreach ($array as $key=>$value){
				echo '<a href="'.$taglink.'" class="category">'.$value.'</a><br>';
			}
		}
	}
}
Цитата:
Относись к людям так, как хочешь, чтоб относились к тебе!

Последний раз редактировалось Bilargo; 19.06.2016 в 12:37.
Bilargo вне форума Ответить с цитированием
Старый 19.06.2016, 13:10   #4
Bilargo
Форумчанин
 
Аватар для Bilargo
 
Регистрация: 17.09.2009
Сообщений: 231
По умолчанию

Всё получилось, вот рабочий вариант:
Код:
function TagCat($tags, $itemid){
	foreach($tags as $tag){
		if($tag->itemID == $itemid AND $tag->type == '8'){
			$array = array ($tag->name);
			foreach ($array as $array){
				$taglink = urldecode(JRoute::_(K2HelperRoute::getTagRoute(urlencode($array))));
				echo '<a href="'.$taglink.'" class="category">'.$array.'</a>&nbsp&nbsp';
			}
		}
	}
}
Возможно кому-то пригодится.
Цитата:
Относись к людям так, как хочешь, чтоб относились к тебе!

Последний раз редактировалось Bilargo; 19.06.2016 в 13:12.
Bilargo вне форума Ответить с цитированием
Старый 19.06.2016, 17:36   #5
Bilargo
Форумчанин
 
Аватар для Bilargo
 
Регистрация: 17.09.2009
Сообщений: 231
По умолчанию

Друзья, в продолжение темы, кто может подсказать как выводить теги из массива в случайном порядке?
Цитата:
Относись к людям так, как хочешь, чтоб относились к тебе!
Bilargo вне форума Ответить с цитированием
Старый 19.06.2016, 17:45   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

перемешайте массив с тегами:

Код:
function TagCat($tags, $itemid){
	shuffle($tags);
	foreach($tags as $tag){
...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.06.2016, 17:57   #7
Bilargo
Форумчанин
 
Аватар для Bilargo
 
Регистрация: 17.09.2009
Сообщений: 231
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
перемешайте массив с тегами:

Код:
function TagCat($tags, $itemid){
	shuffle($tags);
	foreach($tags as $tag){
...
Спасибо, получилось!
Цитата:
Относись к людям так, как хочешь, чтоб относились к тебе!
Bilargo вне форума Ответить с цитированием
Старый 19.06.2016, 18:41   #8
Bilargo
Форумчанин
 
Аватар для Bilargo
 
Регистрация: 17.09.2009
Сообщений: 231
По умолчанию

Друзья, кто подскажет почему в конструкции ниже, массив выводит только последний элемент?
Код:
foreach($this->item->tags as $tag){
			if($tag->type == '6'){
				$array = array($tag->id, $tag->name);
				$FindFTagId = $tag->id;
				$FindFTagname = $tag->name;
			}
		}
			foreach ($array as $key){
					echo $key;
			}
А в такой, выводит все элементы.
Код:
foreach($this->item->tags as $tag){
			if($tag->type == '6'){
				$array = array($tag->id, $tag->name);
				$FindFTagId = $tag->id;
				$FindFTagname = $tag->name;
				foreach ($array as $key){
					echo $key;
				}
			}
		}
Цитата:
Относись к людям так, как хочешь, чтоб относились к тебе!
Bilargo вне форума Ответить с цитированием
Старый 28.07.2016, 19:15   #9
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Bilargo, все дело в расстановке фигурных скобочек. В первом случае внутри первого foreach ничего не выводится, и цикл гоняется впустую.
Arigato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь с задачей:Даны два множества точек на плоскости. Найти радиус и центр окружности, проходящей через n (n>=3) точек множества artiom4356 Помощь студентам 5 16.12.2015 21:42
Pascal ABC. Множества. Сформировать два множества из M и N элементов случайным образом. powersej Паскаль, Turbo Pascal, PascalABC.NET 0 13.12.2012 21:08
Pascal ABC. Множества. Сформировать два множества из M и N элементов случайным образом. powersej Помощь студентам 0 13.12.2012 20:58
Вывод на экран элементов перечислимого множества чисел Фибоначчи Dark Raven Помощь студентам 1 16.03.2012 08:18
Через множества заданы сорта роз,выращиваемых цветоводами. Ввод множества с клавиатуры,сравнение множеств BAMbarBIO Паскаль, Turbo Pascal, PascalABC.NET 5 31.05.2011 13:17