|
|
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;
…
}
но это опять же надо извернуться… через глобальные переменные
|