Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Вывод подразделов каталога в картинках

Страницы: 1  |  2
18.11.2008, 23:45
Гость
Гость

Есть раздел Продукция. В нём категория товаров. Каждой категории присвоена картинка-пиктограмма. Закачена через поле %img в каждом подразделе. То есть, находясь в конкретной категории, я могу выводить картинку. Но мне нужно вывести все эти картинки на главной.

На главной я вывожу категории при помощи
Код:
<H2>Наша продукция:</H2>
".s_browse_sub(120, $browse_sub[5])."


Сейчас у меня идёт просто перечисление категорий в текстовом виде.
Код:
$browse_sub[5][prefix] = " ";
$browse_sub[5][suffix] = " ";
$browse_sub[5][unactive] = "<a href='%URL'>%NAME</a>";
$browse_sub[5][active] = "<a href='%URL'><B>%NAME</B></a>";
$browse_sub[5][active_link] = "<B>%NAME</B>";
$browse_sub[5][divider] = "<BR>";


Чтобы вывести картинки с текстом, подозреваю, что нужно как-то вывести содержание массива $current_sub[img], но так и не получилось как, помогите?
19.11.2008, 02:02
Гость
Гость

В чем проблема то?

Код:
$browse_sub[5][prefix] = "";
$browse_sub[5][suffix] = "";
$browse_sub[5][unactive] = "<a href='%URL'><img src='%img'></a>";
$browse_sub[5][active] = "<a href='%URL'><img src='%img'></a>";
$browse_sub[5][active_link] = "<img src='%img'>";
$browse_sub[5][divider] = "<BR>";
27.12.2009, 20:58
Гость
Гость

Как проверить сущестует ли картинка? Если да, то выводить и наборот?
19.01.2010, 12:32
ooo
ПАЛНАРИС

Зарегистрирован:
2009-06-18
Сообщений: 57

функцией opt_case
19.01.2010, 14:47
pe3udent
Артур Юсупов

Зарегистрирован:
2008-04-03
Сообщений: 220

ooo писал(а):
функцией opt_case


Советую раз и навсегда забыть про функции opt и opt_case. Использовать их можно только для вывода html; если вторым параметром передать php-код, он выполнится в любом случае, что чревато.
Чтобы в будущем не наломать дров лучше использовать тернарный оператор
Код:
".( condition ? true : false )."
20.01.2010, 09:21
ooo
ПАЛНАРИС

Зарегистрирован:
2009-06-18
Сообщений: 57

Код:
<?php
// Пример использования тернарного оператора
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// Приведенный выше код аналогичен следующему блоку с использованием if/else
if (empty($_POST['action'])) {
$action = 'default';
} else {
$action = $_POST['action'];
}
?>


хм. нормально. а чем же так чревато opt_case? можно пример?
20.01.2010, 09:44
Хыиуду

Зарегистрирован:
2009-10-21
Сообщений: 156

function inc_x()
{ global x; x=x+1; return x;}
function dec_x()
{global x; x=x-1; return x;}

Допустим, х=5. Если вы в тексте используете что-нибудь вида
echo opt_case(a>0, inc_x(), dec_x())
можно было бы ожидать, что если a>0, то х примет значение 6 и будет возвращено функцией opt_case, а в противном случае х станет равным 4. На самом деле обе эти функции отработают, и х сначала увеличится на 1, а потом уменьшится.

Другой вариант: есть две функции, которые достают одну и ту же информацию: первая - из базы данных, вторая - из cookies пользователя в случае, если эта информация уже была вытащена из базы и помещена в cookies.
opt_case(!isset($_COOKIE[my_data]), get_data_from_db(), get_data_from_cookies()) вне зависимости от того, есть ли запись my_data в куках, все равно отработает и вытаскивание инфы из кук, и вытаскивание той же самой инфы из базы данных, причем если инфа в куках есть, то последняя процедура оказывается мало того, что ресурсоемкой, так еще и совершенно излишней, поскольку результаты ее работы не будут использованы
20.01.2010, 11:07
ooo
ПАЛНАРИС

Зарегистрирован:
2009-06-18
Сообщений: 57

Действительно, весьма полезная информация. Хоть не сталкивался пока с подобными проблемами, но однозначно пригодится, спасибо.
30.01.2010, 00:49
Гость
Гость

Пробовал делать так, не получается.

$browse_sub[5][unactive] = "<a href='%URL'>".(!empty(%img)?"<img src='%img'>":"")."</a>";

В заначении %img всегда пусто.
01.02.2010, 08:45
pe3udent
Артур Юсупов

Зарегистрирован:
2008-04-03
Сообщений: 220

Код:
$browse_sub[5][unactive] = "<a href='%URL'>".( !empty($data[$i][img]) ? "<img src='$data[$i][img]'>" : "")."</a>";

не проверял, возможны ошибки экранирования
18.02.2010, 06:52
Гость
Гость

pe3udent писал(а):
ooo писал(а):
функцией opt_case


Советую раз и навсегда забыть про функции opt и opt_case. Использовать их можно только для вывода html; если вторым параметром передать php-код, он выполнится в любом случае, что чревато.
Чтобы в будущем не наломать дров лучше использовать тернарный оператор
Код:
".( condition ? true : false )."

лучше не спорю, а как сделать такое
".opt(0, $mydata=1)."
акромя как на php не вставляя код
вообще можно сделать собственную функцию типа
".my(mydata,1)."
function my($index, $value)
{
$$index=$value;

}
но это опять же надо извернуться… через глобальные переменные
198 196 2010-02-18 10:42:31 9507
Страницы: 1  |  2
Описание проекта