[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите усовершенствовать скрипт галереи
Саша (девочка)
Здрасте!
Я сперва сделала простой код, ну, тупой просто, но рабочий (это его часть):

<table>
<tr>
<td
width="25%"><div align="center"><a href='galery/pic009.php'><img src='galery/pic009_mini.jpg' border="0" class="border_shadow" alt="9"></a><br>
9</div></td>
<td
width="25%"><div align="center"><a href='galery/pic010.php'><img src='galery/pic010_mini.jpg' border="0" class="border_shadow" alt="10"></a><br>
10</div></td>
<td
width="25%"><div align="center"><a href='galery/pic011.php'><img src='galery/pic011_mini.jpg' border="0" class="border_shadow" alt="11"></a><br>
11</div></td>
<td
width="25%"><div align="center"><a href='galery/pic012.php'><img src='galery/pic012_mini.jpg' border="0" class="border_shadow" alt="12"></a><br>
12</div></td>
</tr>
</table>



Потом мне надоело писать одно и то же, я сделала такой:

<tr height="134">
<?PHP

for($i = 1; $i <= 4; $i++) {
echo '<td width="25%"><div align="center">
<a href="galery/pic00'
. $i . '.php"><img src="galery/pic00' . $i . '_mini.jpg" border="0" class="border_shadow" alt="' . $i . '"></a><br> ' . $i . '</div></td>';
}
?>
</tr>

<tr
height="134">
<?PHP

for(; $i <= 8; $i++) {
echo '<td width="25%"><div align="center">
<a href="galery/pic00'
. $i . '.php"><img src="galery/pic00' . $i . '_mini.jpg" border="0" class="border_shadow" alt="' . $i . '"></a><br> ' . $i . '</div></td>';
}
?>
</tr>



Но дело в том, что при переходе на новый разряд мне приходится писать код вручную. И еще: я хочу подписи к картинкам тоже трёхзначные числа.

Замучилась, помогите пожалуйста, сделайте код так, чтобы написать один код в пару строчек с функциями for, if, while и иже с ними, и чтобы этот коротенький код обрабатывал бы все картинки - и с номером 001, и с номером 011, и с номером 123, то есть обрабатывал бы все номера. И номера бы были трёхзначные, а то у меня функция
for($i = 001; $i <= 004; $i++)

не работает!

Большое спасибо всем откликнувшимся.



Спустя 3 минуты, 39 секунд (3.12.2010 - 14:29) Basili4 написал(а):
for($i = 1; $i <= 4; $i++)
{
echo "00$i";
}

Спустя 2 минуты, 22 секунды (3.12.2010 - 14:31) Гость_Саша написал(а):
И еще хотелось бы, чтобы дойдя до четвертой картинки в строке, код бы сам увеличивал бы строку на единицу и следующую картинку тоже на единицу.
Спасибо.

Спустя 29 секунд (3.12.2010 - 14:32) Игорь_Vasinsky написал(а):
Цитата
echo "00$i";


а если $i = 23

то будет 0023 - эже не 3х значное... тутдругое нужно...

Спустя 1 минута, 2 секунды (3.12.2010 - 14:33) Гость_Саша написал(а):
Basili4
Спасибо, сейчас попробую

Спустя 33 секунды (3.12.2010 - 14:33) Игорь_Vasinsky написал(а):
а зачем иммено 3х значное?

мож всётаки с 1 начать?

Спустя 42 секунды (3.12.2010 - 14:34) Гость_Саша написал(а):
Игорь_Vasinsky
Правильно! В этом-то и загвоздка!!! Мне приходится убирать нолик вручную для следующего разряда. А - типа лень smile.gif

Спустя 1 минута, 10 секунд (3.12.2010 - 14:35) Guest написал(а):
Игорь_Vasinsky
Да можно и с единицы - но для кода. А надпись к картинкам - только трехзначное. У меня уже все файлы изображений пронумерованы так.

Спустя 1 минута, 23 секунды (3.12.2010 - 14:37) Гость_Саша написал(а):
здесь нужна функция if, типа если значащих цивр в числе две, то спереди приписываем только один нолик. Что-то в этом роде.

Спустя 9 минут, 35 секунд (3.12.2010 - 14:46) Игорь_Vasinsky написал(а):
ну есть же программа для пакетного переименовывания картинок - там и 1 можно и с 001

я просто не знаю вариант чтобы php принял 1 как 001

можно конечно попробовать так:

$fotoname_start = "001";
$fotoname_start =(int)$fotoname_start;

мож он так ег примет за число???....

Спустя 3 минуты, 55 секунд (3.12.2010 - 14:50) inpost написал(а):
$temp = $num < 10 ? '00' : ($num < 100 ? '0' : '');
echo $temp.$i;

Спустя 2 минуты, 20 секунд (3.12.2010 - 14:53) Гость_Саша написал(а):
Игорь_Vasinsky
Есть у меня тотал коммандер, он умеет пакетом переименовывать, а я не хочу. Ну упёртая я вот такая. smile.gif

inpost
Спасибки, буду пробовать.

Спустя 5 минут, 41 секунда (3.12.2010 - 14:58) inpost написал(а):
Отредактировал вверхнее сообщение, смотри =)

Спустя 8 минут, 50 секунд (3.12.2010 - 15:07) Гость_Саша написал(а):
inpost
Ура-а-а! работает!!!
Чмоки тя в разные приятные места biggrin.gif

Спустя 3 минуты, 29 секунд (3.12.2010 - 15:11) Гость_Саша написал(а):
inpost
Это хорошо, но это - одна строчка. А как сделать, чтобы, перейдя на пятую картинку, код автоматом бы строил новую строку, и уже в ней показывал бы картинки с 005 по 008 ?
А картинок под сотню, и надо расположить их по четыре в строке, а потом еще сделать постраничную навигацию (но это уже другая тема, и то, если ну самой не получится).

Спустя 1 минута, 42 секунды (3.12.2010 - 15:12) Гость_Саша написал(а):
Я мыслю, что надо родить новую переменную, например, $j, которая бы отсчитывала количество картинок в строке и отвечала бы за формирование новой строки.

Спустя 15 минут, 3 секунды (3.12.2010 - 15:27) Гость_Саша написал(а):
inpost
Неа, не работает :( Рано радовалась и целовала :(
Десятую картинку не выводит:

<tr height="150">
<?PHP

for($i = 1; $i <= 5; $i++) {
echo '<td width="20%"><div align="center">
<a href="img/gallery/cards/newcards/card'
.$temp.$i. '.jpg" rel="lytebox" title="Новогодняя<br>'. $temp.$i .'"><img src="img/gallery/cards/newcards/card' .$temp.$i. '_mini.jpg" border="0" class="border_shadow" alt="' . $i . '"></a><br><!-- '.$temp.$i. '--></div></td>';
}
?>
</tr>

<tr
height="150">
<?PHP

for(; $i<= 10; $i++) {
echo '<td width="20%"><div align="center">
<a href="img/gallery/cards/newcards/card'
.$temp.$i. '.jpg" rel="lytebox" title="Новогодняя<br>'. $temp.$i .'"><img src="img/gallery/cards/newcards/card' .$temp.$i. '_mini.jpg" border="0" class="border_shadow" alt="' . $i . '"></a><br><!-- '.$temp.$i. '--></div></td>';
}
?>
</tr>


Спустя 47 секунд (3.12.2010 - 15:28) Гость_Саша написал(а):
Я картинки по пять сгруппировала в строке, а то что-то слишком большие превьюшки.

Спустя 2 минуты, 27 секунд (3.12.2010 - 15:30) Guest написал(а):
А при
alt="' .$temp.$i. '"

Подписывает десятую картинку как "0010"

Спустя 23 минуты, 55 секунд (3.12.2010 - 15:54) twin написал(а):
Теперь меня целуй. :)
printf('%03d', $i);

Спустя 3 минуты, 55 секунд (3.12.2010 - 15:58) Гость_Саша написал(а):
twin
И в какое место это засунуть? Типа в какое место кода (не подумай плохого)

Спустя 1 минута, 56 секунд (3.12.2010 - 16:00) twin написал(а):
Вот так
'<a href="img/gallery/cards/newcards/card' .sprintf('%03d', $i). '.jpg" rel="lytebox" title="Новогодняя<br>'. sprintf('%03d', $i) .'">'


А еще kirik'a можешь чмокнуть. Там круче.

Спустя 11 минут, 40 секунд (3.12.2010 - 16:12) Guest написал(а):
twin
Вот за такую фенечку действительно не грех и расцеловать. Спасибо, работает. А как теперь строчки автоматом делать, чтобы не писать код на каждую строчку с периодически увеличивающимися $i : от 1 до 5, от 6 до 10, от 11 до 15 и т.д. ?

Спустя 47 секунд (3.12.2010 - 16:13) Гость_Саша написал(а):
twin
А кирик - то тут при чем? Объясни блондинке... smile.gif

Спустя 3 минуты, 15 секунд (3.12.2010 - 16:16) Гость_Саша написал(а):
twin
И ещё: мне знакома функция printf. А зачем спереди "s" ?

Спустя 6 минут, 9 секунд (3.12.2010 - 16:22) Гость_Саша написал(а):
twin
Дошло! У меня же та же самая задача, что у Кирика - вывод по горизонтали картинок, а по вертикали - строчек! Спасибки, буду разбираться.

Спустя 2 минуты, 23 секунды (3.12.2010 - 16:24) twin написал(а):
Вот причем:
function drawTableH($data, $columns=10, $tabs=0)
{
$tbl = null;

if($tabs === false)
{
$tr = $td = null;
}
else
{
$tr = "\n".str_repeat("\t", $tabs);
$td = $tr."\t";
}

for($i = 0, $n = 1, $d = ceil(count($data) / $columns) * $columns; $i < $d; $i++, $n++)
{
if($n == 1)
$tbl .= $tr.'<tr>';

$tbl .= $td.'<td width="20%"><div align="center">'.(isset($data[$i]) ? $data[$i] : ' ').'</div></td>';

if($n == $columns)
{
$n = 0;
$tbl .= $tr.'</tr>';
}
}


if($tabs !== false)
$tbl .= "\n";

return $tbl;
}






for($i = 1; $i <= 100; $i++)
$data[] = '<a href="img/gallery/cards/newcards/card'
. sprintf('%03d', $i) .'.jpg" rel="lytebox" title="Новогодняя<br>'
. sprintf('%03d', $i) .'"><img src="img/gallery/cards/newcards/card'
. sprintf('%03d', $i) . '_mini.jpg" border="0" class="border_shadow" alt="' . $i . '"></a><br>'
. '<!-- '. sprintf('%03d', $i) . '-->';

echo '<table>'.drawTableH($data, 5, 0).'</table>';

Спустя 8 минут, 18 секунд (3.12.2010 - 16:33) twin написал(а):
Кстати, а кто научил в title <br> сувать? Толку не будет.

Спустя 2 минуты, 29 секунд (3.12.2010 - 16:35) Гость_Саша написал(а):
twin
Неа, не поняла. Я ж не такая крутая, как вареное яйцо.
Со строчками-чтобы автоматом, так и не разобралась.

Спустя 1 минута, 42 секунды (3.12.2010 - 16:37) Гость_Саша написал(а):
twin
Никто не учил, сама - учка (типа самоучка smile.gif
И всё получается: номер ниже названия картинки, а не правее его.

Спустя 1 минута, 53 секунды (3.12.2010 - 16:39) twin написал(а):
Цитата
Со строчками-чтобы автоматом, так и не разобралась.

Дык я же написал. Запусти просто

Спустя 49 секунд (3.12.2010 - 16:40) Гость_Саша написал(а):
twin
А что, надо было так?
"Новогодняя" <br> " '.sprintf('%03d', $i) .'""

Спустя 2 минуты, 12 секунд (3.12.2010 - 16:42) twin написал(а):
Ничего не ниже.

Спустя 2 минуты, 5 секунд (3.12.2010 - 16:44) twin написал(а):
Никак не сделаешь. В тайтлах перенос не предусмотрен.

Спустя 1 минута, 20 секунд (3.12.2010 - 16:45) Гость_Саша написал(а):
twin
Запустила. Получилось, но коряво. Интервалы очень маленькие между картинками. Ну, с ними как-нибудь разберусь. И пустых строчек много. Как сделать не "до ста", а "до конца наполнения", чтбы пустые места были только в последней неполной строке?

Спустя 2 минуты, 20 секунд (3.12.2010 - 16:48) twin написал(а):
Ну в цикле поставь количество картинок $i <= 50. А коряво - все в твоих руках. Правь. smile.gif

Спустя 1 минута, 6 секунд (3.12.2010 - 16:49) Гость_Саша написал(а):
twin
На самой картинке номер ниже, жаль, не умею присоединять изображения... Какую кнопку нажать для присоединения?

Спустя 49 секунд (3.12.2010 - 16:50) Гость_Саша написал(а):
twin
Да-да, спасибо, про цикл я поняла, уже правлю.

Спустя 30 секунд (3.12.2010 - 16:50) Гость_Саша написал(а):
Но хорошо бы в дальнейшем не править, при увеличении галереи.

Спустя 2 минуты, 1 секунда (3.12.2010 - 16:52) twin написал(а):
Цитата
Какую кнопку нажать для присоединения?

Вот эту
user posted image
Цитата
Но хорошо бы в дальнейшем не править, при увеличении галереи.
Задай динамически. подсчитай сколько их и подставь переменной.

Спустя 1 минута, 30 секунд (3.12.2010 - 16:54) Guest написал(а):
Ой, всем пока! родители пришли, щас за уроки погонят. Всем поки-чмоки!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.