Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!
50 ₴

Прошу помощи с php

project complete


Здравтсвуйте.

Сайт на Joomla 2.5 + JoomShopping 3.15

На странице выводятся категории.

Среди этих категорий есть одна , которая не должна быть показана. Отключать ее нельзя.

Если ставлю условие на данную категорию, то вывод сбивается, получчается в ряду просто пропуск.

Вот кусок кода:

<div class="jshop_list_category">
<?php
if (count($this->categories)){?>
<table class = "jshop">

<?php foreach($this->categories as $k=>$category){?>

<?php if ($k%$this->count_category_to_row==0) print "<tr>"; ?>
<td class="jshop_categ" width="<?php print (100/$this->count_category_to_row)?>%">
<a class="img" href="<?php print $category->category_link;?>"><img src="<?php print $this->image_category_path;?>/<?php if ($category->category_image) print $category->category_image; else print $this->noimage;?>" alt="<?php print htmlspecialchars($category->name);?>" title="<?php print htmlspecialchars($category->name);?>" /></a>
<a class="product_link" href="<?php print $category->category_link?>"><?php print $category->name?></a>
</td>

<?php if ($k%$this->count_category_to_row==$this->count_category_to_row-1) print '</tr>'; ?>

<?php } ?>

<?php if ($k%$this->count_category_to_row!=$this->count_category_to_row-1) print '</tr>'; ?>
</table>
<?php } ?>
</div>

Спасибо за внимание.

Client's feedback about the contractor Иване Палийчуке

Quality
Professionalism
Price
Availability
Terms

Иван быстро справился с поставленной задачей. Сразу приступил к выполнению задания и выполнил его отлично.
Буду еще сотрудничать с Иваном.
Спасибо за работу.

Владимир В. Владимир Верный

Freelancer's feedback about the client Владимире Верном

Payment
Task formulation
Requirements
Availability

Работа прошла отлично. Все четко обговоренных пунктов, ничего лишнего. Своевременная оплата. Рекомендую!

Иван Палийчук Иван П.


Make a proposal!

The client doesn't want to make prepayment? Offer him to make a payment via Safe to avoid possible fraud.

  1. 1 day50 $
    Вадим П.
     836  verified   11   0

    Сделаю быстро!
    C ув. Вадим. Опыт web-разработки - более 7 лет.
    skype: lovesexguns

    Ukraine Kyiv | 18 August 2015 |
  2. 1 day990 ₴
    Олим К.
     587  verified   5   0

    Ну у вас массив категорий. Сделайте var_dump массива, посмотрите какой ключ в необходимой категории и сделайте​ unset

    Ukraine Odessa | 18 August 2015 |
  3. 1 day20 $
    Makc Odarchenko
     135 

    Здравствуйте, быстро и качественно выполню ваш заказ, мой email : [email protected]

    Ukraine Ukraine | 18 August 2015 |
  4. 1 day100 ₽
    Геннадий Николаев
     901   14   1

    В обсуждении предложил. Можно подумать еще.

    Russia Zarinsk | 19 August 2015 |
  5. 1 day50 ₴Winning proposal
    Иван П.
     1196  verified   31   0

    Обращайтесь, сделаю.

    Ukraine Lvov | 19 August 2015 |
  • Иван П.
    Complain | 18 August 2015 |

    после
    foreach($this->categories as $k=>$category)
    попробуйте поставить что-то типа
    if ($category->id != укажите id нужной категории ) {
    ...остальной код
    }

  • Владимир Верный — project author
    Complain | 18 August 2015 |

    if ($category->category_id != 188 ) {
    ...остальной код
    }

    Так я делал, категория скрывается, но ломается структура

    489d742495.jpg

  • Александр П.
    Complain | 18 August 2015 |

    Через unset попробуйте. Если не выйдет, то в скайп стучите alexxxx12345g5 , просто так помогу.

  • Иван П.
    Complain | 18 August 2015 |

    По ключу не вариант, если категорию снять с публикации ключи сместятся и все слетит

  • Иван П.
    Complain | 18 August 2015 |

    На крайняк можно переверстать
    не делать через table, а например блочную верстку сделать

  • Владимир Верный — project author
    Complain | 18 August 2015 |

    Снимать с публикации не желательно. Эта категория содержит один товар.

    Через unset - как?

  • Александр П.
    Complain | 18 August 2015 |
    <?php
    $var = ['bar','foo'];
    print_r($var);
    unset($var[1]);
    print_r($var);
  • Владимир Верный — project author
    Complain | 18 August 2015 |

    Что-то не выходит у меня с

    unset
  • Александр П.
    Complain | 18 August 2015 |

    Больше кода можно? Как вариант то можно было бы запрос к БД отредачить..

  • Владимир Верный — project author
    Complain | 18 August 2015 |
    <div class="jshop_list_category">
    <?php
    if (count($this->categories)){?>
    <table class = "jshop">

    <?php foreach($this->categories as $k=>$category){?>
    <?php /* if ($category->category_id != 188 ) { */?>

    <?php if ($k%$this->count_category_to_row==0) print "<tr>"; ?>
    <td class="jshop_categ" width="<?php print (100/$this->count_category_to_row)?>%">
    <a class="img" href="<?php print $category->category_link;?>"><img src="<?php print $this->image_category_path;?>/<?php if ($category->category_image) print $category->category_image; else print $this->noimage;?>" alt="<?php print htmlspecialchars($category->name);?>" title="<?php print htmlspecialchars($category->name);?>" /></a>
    <a class="product_link" href="<?php print $category->category_link?>"><?php print $category->name?></a>
    </td>

    <?php if ($k%$this->count_category_to_row==$this->count_category_to_row-1) print '</tr>'; ?>

    <?php } ?>
    <?php/* } */ ?>
    <?php if ($k%$this->count_category_to_row!=$this->count_category_to_row-1) print '</tr>'; ?>
    </table>
    <?php } ?>
    </div>
  • Иван П.
    Complain | 18 August 2015 |

    условие

    [php]
    <?php /* if ($category->category_id != 188 ) { */?>
    [/php]
    закройте после
    [php]
    <?php if ($k%$this->count_category_to_row!=$this->count_category_to_row-1) print '</tr>'; ?>
    [/php]

    а не перед

  • Владимир Верный — project author
    Complain | 18 August 2015 |

    Сделал так, теперь

    в каждой строке по одной категории)

    8a1d901423.jpg

  • Иван П.
    Complain | 18 August 2015 |

    в общем без фтп и ссылки на сайт тут не разберешься...

  • Александр П.
    Complain | 18 August 2015 |

    костыли от Бога...

  • Александр П.
    Complain | 18 August 2015 |

    Хм. Жаль, я не работал с жумлой...

  • Dmitry Gor
    Complain | 19 August 2015 |

    Здраствуйте!

    Возможно попробуйте так?

    <div class="jshop_list_category">
    <?php
    if (count($this->categories)){?>
    <table class = "jshop">

    <?php foreach($this->categories as $k=>$category){?>
    <?php if ($category->category_id == 188 ) { continue; }/?>

    <?php if ($k%$this->count_category_to_row==0) print "<tr>"; ?>
    <td class="jshop_categ" width="<?php print (100/$this->count_category_to_row)?>%">
    <a class="img" href="<?php print $category->category_link;?>"><img src="<?php print $this->image_category_path;?>/<?php if ($category->category_image) print $category->category_image; else print $this->noimage;?>" alt="<?php print htmlspecialchars($category->name);?>" title="<?php print htmlspecialchars($category->name);?>" /></a>
    <a class="product_link" href="<?php print $category->category_link?>"><?php print $category->name?></a>
    </td>

    <?php if ($k%$this->count_category_to_row==$this->count_category_to_row-1) print '</tr>'; ?>

    <?php } ?>
    <?php if ($k%$this->count_category_to_row!=$this->count_category_to_row-1) print '</tr>'; ?>
    </table>
    <?php } ?>
    </div>

  • Dmitry Gor
    Complain | 19 August 2015 |

    а вывод в 3 колонки можно попробовать сделать так заменить

    <?php if ($k%$this->count_category_to_row==0) print "<tr>"; ?>

    на

    <?php if ($k % 3 == 0) print "<tr>"; ?>


  • Dmitry Gor
    Complain | 19 August 2015 |

    Правда закладываться на идентификатор категории не рекомендую, так как это явный костыль )), как вариант в категории добавить класс, либо какое то описание и по нему уже ориентироваться.

  • может так -

    <div class="jshop_list_category">

    <?php

    if (count($this->categories)){?>

    <table class = "jshop">

    <?php foreach($this->categories as $k=>$category){?>

    <?php if ($category->category_id != 188 ) continue; ?>

    <?php if ($k%$this->count_category_to_row==0) print "<tr>"; ?>

    <td class="jshop_categ" width="<?php print (100/$this->count_category_to_row)?>%">

    <a class="img" href="<?php print $category->category_link;?>"><img src="<?php print $this->image_category_path;?>/<?php if ($category->category_image) print $category->category_image; else print $this->noimage;?>" alt="<?php print htmlspecialchars($category->name);?>" title="<?php print htmlspecialchars($category->name);?>" /></a>

    <a class="product_link" href="<?php print $category->category_link?>"><?php print $category->name?></a>

    </td>

    <?php if ($k%$this->count_category_to_row==$this->count_category_to_row-1) print '</tr>'; ?>

    <?php } ?>

    <?php if ($k%$this->count_category_to_row!=$this->count_category_to_row-1) print '</tr>'; ?>

    </table>

    <?php } ?>

    </div>

  • Владимир Верный — project author
    Complain | 19 August 2015 |

    Дмитрий и Генадий, варианты не подошли.

    Все так же товар только скрывается.


    Как написать условия, что мол выводим все категории кроме "id188" ? Надо , наверное, где-то в helpere писать..

  • Иван П.
    Complain | 19 August 2015 |

    нет. не в контроллере, можно и в шаблоне.
    Почему вы не хотите доверить дело специалисту и оплатить за его знания и труд ?
    Тут фриланс, а не форум для обсуждения проблем на сайте.

  • Dmitry Gor
    Complain | 19 August 2015 |

    У Вас вывод колонок формируется

    в этой строке

    <?php if ($k%$this->count_category_to_row==0) print "<tr>"; ?>

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

    <?php if ($k % 3 == 0) print "<tr>"; ?>

    ну и ниже также нужно исправить, или найти где происходит инициализация переменной $this->count_category_to_row и исправить ее


  • Add

Client
Project published
18 August 2015
554 views
Share