Php помогите дописать функцию увеличения цифры (1,2,3)

123 4
S
На сайте с 13.11.2012
Offline
72
1381

Есть функция


protected function listQuery($yt){
return "<div class='div_topic_cover topic_cover_1 reviews'>...код...</div>";
}

выводит картинки, по 3 картинки горизонтально,

Мне нужно изменять значение div_topic_cover topic_cover_1 так, чтобы в результате получилось следующее:

<div class="div_topic_cover topic_cover_1 reviews">...код...</div>
<div class="div_topic_cover topic_cover_2 reviews">...код...</div>
<div class="div_topic_cover topic_cover_3 reviews">...код...</div>

<div class="div_topic_cover topic_cover_1 reviews">...код...</div>
<div class="div_topic_cover topic_cover_2 reviews">...код...</div>
<div class="div_topic_cover topic_cover_3 reviews">...код...</div>

и т.д.

Как это реализовать? Помогите, пожалуйста.

S
На сайте с 13.10.2014
Offline
171
#1

можно сделать через глобальный счетчик для класса, но это говнокод.

поэтому лучший вариант был-бы доработать функцию

protected function listQuery($yt, $cover_id=1){
return "<div class='div_topic_cover topic_cover_".$cover_id." reviews'>...код...</div>";
}

а счетчик уже инкрементить в самой функции, откуда всё это дело вызывается

SO
На сайте с 22.07.2007
Offline
83
#2

С функцией php не подскажу, т.к. там надо вводить глобальную переменную, а я не силен в ООП. Но, если это вам надо только для различного оформления css, то можете использовать возможности CSS.

HTML:

<div class="div_topic_cover reviews">...код...</div>

<div class="div_topic_cover reviews">...код...</div>
<div class="div_topic_cover reviews">...код...</div>

CSS:


.div_topic_cover::nth-child(3n-2){
//первый блок
}
.div_topic_cover::nth-child(3n-1){
//второй блок
}
.div_topic_cover::nth-child(3n){
//третий блок
}
S
На сайте с 30.09.2016
Offline
469
#3

Способы есть разные, в зависимости от конкретики. Здесь конкретики - чуть больше, чем ничего.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
S
На сайте с 13.11.2012
Offline
72
#4

Попробую реализовать вариант

protected function listQuery($yt, $cover_id=1){
return "<div class='div_topic_cover topic_cover_".$cover_id." reviews'>...код...</div>";
}

более понятен, вроде...

Спасибо!

S
На сайте с 13.10.2014
Offline
171
#5
Smirnof:
более понятен, вроде...

Пожалуйста!

Соответственно у вас где-то есть foreach выводящий три картинки вот там надо будет добавить что-то вроде

$icr =1;

foreach(...){

[... что-то тут...] -> listQuery($something,$icr);

$icr++;

}

S
На сайте с 30.09.2016
Offline
469
#6
silicoid:

[... что-то тут...] -> listQuery($something,$icr);

Что-то тут мне подсказывает, что тут в качестве [... что-то тут...] не может быть ничего, кроме $this. Потому что что-то protected тут.

S
На сайте с 13.10.2014
Offline
171
#7

Sitealert, Да. я наверное непонятно написал. "что-то тут" , это вообще всё, что туда напихали, а так да. $this -> listQuery();

S
На сайте с 13.11.2012
Offline
72
#8

Не смог сделать, у меня там нет foreach

Вот вся функция

protected function listQuery($yt, $cover_id=1){
return "<div class='div_topic_cover topic_cover_".$cover_id." reviews'>
...КОД...</div>";
}

в других protected есть foreach но не получилось сделать :(

Russ1an
На сайте с 25.03.2015
Offline
60
#9
Smirnof:
Не смог сделать, у меня там нет foreach

Вот вся функция

в других protected есть foreach но не получилось сделать :(

Найдите где у вас вызывается этот метод и приведите тут код

Достойный дом для любимых проектов https://clck.ru/PT7Vo
S
На сайте с 13.11.2012
Offline
72
#10

Нашел это:

protected function getimgkat($nom){
$this->url = "api запрос";
$data = $this->http(TRUE);
foreach ($data->items as $yt) {
$html .= $this->listQuery($yt);
}
return $html;
}

вроде оно.

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий