Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > ... никак не могу решить ...


Автор: Onis 27.11.2005, 17:31
Вообще-то я в php неплохо разбираюсь, но вот есть нюансы до которых допереть я не могу smile . что поделаешь, стыдно =)

В общем у меня есть http://onis.jino-net.ru/. Он полу-автоматизированный smile. Но т.к. мой халявный хост не предлагает нормальную mySQL мне пришлось делать "движок" сайту основанным на работе с файлами а не с БД. smile

Так вотс... есть скрипт, когда выбираешь галерею он у меня читает директорию с картинками и выводит на экран их в виде ссылок (1 2 3 - 10) smile
Такс, скока я не ломал голову, не могу надумать как сделать (нормлаьно) так чтоб при выборе галереи он сразу показывал первую картинку в списке. smile. И как сделать так чтоб при открытии картинки ссылка на нее горела =).

Ток не нужно говорить что я ламер там, что код не рационален там =). Я это понимаю, просто я никогда не видел рабочих скриптов для сайта по этому все алгоритмы надумывал сам. smile А пользоваться готовыми кодами я не хочу, т.к. так нечему не научусь.

Вот код который вступает в работу после выбора галлереи:
Код

<?php
    function read_photo_dir()
    {
        global $gal;
        $main_page="index.php";
        class dir_folder
    {
        var $time;
        var $name;
    }
        if($dir=dir("photo/".$gal))
        {
            $i=0;
            echo("Директория: ".$dir->path."<br>\n");
            echo("<hr width='400'><table align='center'><tr>");
            while (false!==($file=$dir->read()))
            { 
                if($file!="." && $file!="..")
                {
                    $f->time=filemtime("photo/".$gal."/".$file);
                    $f->name=$file;
                    $dir_folder[$i]=$f;
                }
                $i++;
            }
            if(isset($dir_folder))
            {
            sort($dir_folder);
                reset($dir_folder);
            $d=1;
            foreach ($dir_folder as $key)
            {
                if($d%10==0)
                        echo("<tr>");
                        echo("<td><a class='lib' href='$main_page?menu=photo.php&gal=$gal&image=$key->name'>$d</a></td>");
                        $d++;
            }
            echo("</tr></table>");
            }
        }
    }
    read_photo_dir();
    if(isset($image))
    {
        $size=getimagesize("photo/$gal/$image");
        $width=$size[0];
        if($size[0]>428)
            $width=428;
    
        
        $main_page="index.php";
        
        if(isset($image))
            echo("<center><a href='photo/$gal/$image' target='_blank'><img width='$width' src='scripts/thumb.php?id=../photo/$gal/$image' border='0'></a></center>");
                echo("<hr width='400'>");
    }
    
    if(file_exists("biography/".$gal.".shtml"))
    {
        echo("<table align='center' width='80%'><tr><td>");
        include("biography/".$gal.".shtml");
        echo("</tr></td></table>");
    }echo("<hr width='400'>");
?>

http://onis.jino-net.ru/index.php?menu=photo.php&gal=leha

Если кто-то мне поможет.... то я БУДУ очень блпгодарен =).

Я вообщето на сайт забил, но друзя которым я отдал на него пассы зудят мне чтоб я исправил некоторые недоделки... одни исправляю с другими к вам иду (:

Автор: Mal Hack 27.11.2005, 18:07
Цитата(Onis @ 27.11.2005, 17:31)
так чтоб при выборе галереи он сразу показывал первую картинку в списке.

Код
while (false!==($file=$dir->read())) // тут я создаю объект для кратинки. Заполняю имя и дату. И загоняю объет в массив $dir_folder

Вот тут тебе надо Выполнить цикл 1 раз для показа первой картинки.

ЗЫ: http://php.net/glob, глянь, авось пригодиться smile

Цитата(Onis @ 27.11.2005, 17:31)
И как сделать так чтоб при открытии картинки ссылка на нее горела =).

Алгоритм такой.
Читаем в массив $a (индексный) имена файлов картинки, которые у нас есть.
Когда ты выводишь ссылку на картинку проверяй, если $a[i] = $_GET['image'] то потсвечивай, else - вывод, как обычно.

Автор: Onis 27.11.2005, 18:23
Mal Hack
Я не совсем понял. Я имел в виду чтоб при открытии непремер той галлереи, выводилось и ссылки на все картинки и сразу открывалась первая кртинка из всего списка.
Но как мне поможет то что вы мне посоветовали я не понимаю. smile

А вообще как вам мой код?

smile

Автор: Mal Hack 27.11.2005, 18:31
Цитата(Onis @ 27.11.2005, 18:23)
Я имел в виду чтоб при открытии непремер той галлереи, выводилось и ссылки на все картинки и сразу открывалась первая кртинка из всего списка.

Я про это и говорю.
Ты должен считать список картинок из галлереи и отсортировать его, и вывести первую картинку.

Цитата(Onis @ 27.11.2005, 18:23)
А вообще как вам мой код?

НУ, жить можно smile

Автор: Onis 27.11.2005, 18:32
Ой ой.... извините, код не совсем тот! =((

*отредактировал*

Токс... там теперь без комментов =)

Автор: Onis 27.11.2005, 19:36
Всё получилось. огромное пасибо =)

Автор: Mal Hack 27.11.2005, 20:20
Не за что, заходите чаще smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)