Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Переход к подкатегориям в галерее изображений

16K
18 февраля 2007 года
SVlad
26 / / 16.02.2007
Здравствуйте, All!

Такая проблемка у меня:
есть список превью, генерящийся по адресу:

index.php?page_id=fotos&cat=1&page=1&foto=1.jpg&stat=prev

при выборе к примеру первой превьюхи, должен произойти переход
к превьюхам, относящимся к этой превьюхе(тоесть переход в подкатегорию) с таким адресом:

index.php?page_id=fotos&cat=1&page=1&foto=1.jpg&act=newfoto&stat=prev

при выборе в новом списке превьюхи, должна измениться ссылка на

index.php?page_id=fotos&cat=1&page=1&foto=1.jpg&act=newfoto&stat=view

тоесть фактически используется одна и таже функция для вывода превьюх,
но при попадании в определенную (на "уровень" скажем 2) подкатегорию
генерится ссылка для вызова полноразмерного изображения
(должен измениться параметр &stat с prev на view)

вот собственно функция, вызываемая в нужном месте(полностью):
(в нее также передаются и другие параметры, но с ними нет проблем:))

PS: все это работает без БД!!!

------
Цитата:

function write_link_big_foto($subdir,$img){

include('dirs.php');

$page = 1;

$s = $_GET['s'];

$tmp = $subdir.$img.".jpg";

$image = basename($tmp);


$act = explode(".",$_GET['act']);

if ($act[0] != "") {$sub1 = $act[0];};

//if ($fldr != "") {

$act = $sub1.".".$fldr;

// }
// else $act = "";


print "<a href=\"index.php?page_id=".$_GET['page_id']."&cat=".$_GET['cat']."&page=$page&img=$image&stat=prev&act=$act\" style=\"text-decoration:none;border:0px;\">

<img src=\"$subdir$img.png\" style=\"text-decoration:none;border:0px; class=\"img_prev\" alt=\"\" />

</a>";

}


------

337
18 февраля 2007 года
shine
719 / / 09.06.2006
В чем проблема? Или это очередной топик в стиле посмотрите_какой_крутой_скрипт_я_написал? :)
16K
18 февраля 2007 года
SVlad
26 / / 16.02.2007
Проблема в том, как сделать переход, вернее изменение ссылки, а точнее параметра $stat с prev на view.

PS а скрипт я выложил не для того, чтобы выпендрться, а чтоб донести суть проблемы)
337
18 февраля 2007 года
shine
719 / / 09.06.2006
В php просматривай значение $_GET['act']. Если оно пустое, то stat=prev. Если оно имеет значение newfoto, то stat=view.
16K
19 февраля 2007 года
SVlad
26 / / 16.02.2007
В первом посте я не указал включаемый инклуд, так что вот вся функция:

Цитата:

function write_link_big_foto($subdir,$num) {
$page = 1;
//include('dirs.php');
//=======================================================

$lnk = explode(".",$_GET['act']);

$sub1 = $lnk[0];

//категория //подкатегория
$comments = array ( "razvl" => array ( 1 => "polit",
2 => "katok"
),
"frendz" => array ( 1 =>"guljanki",
2 =>"kafe",
3 =>"rabota"
),

"fotki" => array ( 1 =>"gorod",
2 =>"priroda"
),

"prikols" => array ( 1 =>"tolstii"
)

);

$fldr = $comments[$sub1][$num];


//=======================================================

$tmp = $subdir.$num.".jpg";

$image = basename($tmp);

$act = $sub1.".".$fldr;



if ($act == $_GET['act'] || $_GET['act'] == "" || $fldr == "" || $fldr == $act) {


$stat = "view";

$act = "";

}

else

{
$stat = "prev";
};

print "<a href=\"index.php?page_id=".$_GET['page_id']."&cat=".$_GET['cat']."&page=$page&img=$image&stat=$stat&act=$act\" style=\"text-decoration:none;border:0px;\">

<img src=\"$subdir$num.png\" style=\"text-decoration:none;border:0px; class=\"img_prev\" alt=\"\" />

</a>";

}



а вызов ее идет так:

Цитата:

<table>
<tr>
<td><? if (file_exists($subdir.intval($num-11).$f_ext)) {write_link_big_foto($subdir,intval($num-11));} ?></td>
<td><? if (file_exists($subdir.intval($num-10).$f_ext)) {write_link_big_foto($subdir,intval($num-10));} ?></td>
<td><? if (file_exists($subdir.intval($num-9).$f_ext)) {write_link_big_foto($subdir,intval($num-9));} ?></td>
</tr>



тоесть в нее(функцию) при генерации таблицы передается $subdir в которой содержится значение, которое передается в функцию, а точнее в массив из которого потом генерится $fldr, из которой складывается конечный $act.

работает все это так:
пользователь попадает в галерею по ссылке
...&stat=prev&act=razvl.prev - это превьюхи на подкатегории
и видит перед собой две(так как в массиве по ссылке razvl - только два ключа) превьюхи на две подкатегории, кот. ссылаются на:
1:...&stat=prev&act=razvl.polit
2:...&stat=prev&act=razvl.katok
при щелчке на (1) или (2)
окрывается список превьюх, которые, если рассмотреть (1), имеют ссылку на ...&stat=view&act=
работает почти нормально, но это "почти" все портит.
а именно: первая превьюха в конечной подкатегории имеет $stat=view, вторая (и если добавить в массив 3,4,5....) будут иметь $stat=prev, а все остальные, которые не имеют в массиве соответствующих номеров имеют $stat=view.

так где я ошибся? или надо использовать какуюто другую ф-ю?

все это лежит тут: personalno.ru/svlad

в Мои фотки - Развлечения

337
19 февраля 2007 года
shine
719 / / 09.06.2006
Тебе нужно чтобы "все остальные, которые не имеют в массиве соответствующих номеров" имели $stat=prev? Или тебе нужно что-то другое?
16K
20 февраля 2007 года
SVlad
26 / / 16.02.2007
нет, мне нужно чтобы, если пользователь попал в конечную категорию(ЕСЛИ ОНА КОНЕЧНАЯ), то чтобы у всех превьюх в ней был $stat=view
тоесть, если смотреть на personalno.ru/svlad по пути в Мои фотки - Развлечения - клик по превьюхе (левой превьюхе из двух(там мерин сфоткан)) то вывалится семь превьюх - так вот у каждой из них $stat должен быть view, а там сам можешь посмотреть какой
337
20 февраля 2007 года
shine
719 / / 09.06.2006
Переделай if.
Если у тебя в GET stat=prev и !empty(cat), то stat=prev
Если в GET stat=prev и empty(cat), то stat=view
16K
20 февраля 2007 года
SVlad
26 / / 16.02.2007
так тоже не получится, потомучто $cat у меня всегда чемунить равна (1 или 2 или 3 или 4) в зависимости от выбранной в правом столбце категории. в данном случае она равна 1, таккак выбрана категория Развлечения ($cat=1)
337
20 февраля 2007 года
shine
719 / / 09.06.2006
Ааа! Точно. Я не заметил что ты cat вначало querystring перенес. Тогда так:
Если у тебя в GET act=razvl.prev, то stat=prev
Если у тебя в GET act!=razvl.prev, то stat=view
16K
21 февраля 2007 года
SVlad
26 / / 16.02.2007
YAHOO!!! я понял что надо было - всего двестрочки кода:

if ($_GET['stat'] == "") { $stat = "prev";};
if ($_GET['stat'] == "prev") { $stat = "view";};

а при переходе из Развлечения в Мои фотки просто не не передавать $stat и все))

Так что теперь можно создавать бесконечное число подкатегорий, только делать при этом проверку:

if ($_GET['stat'] == "view") { $stat = "prev";};

Пасибо за поддержку, дамаю скоро зайду с новыми вопросами)))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог