ПОЖАЛУЙСТА ПОМОГИТЕ! Изменить PHP

Статус
В этой теме нельзя размещать новые ответы.

vave

Полезный
Регистрация
22 Июн 2007
Сообщения
467
Реакции
16
Всем привет!
я скачал галерею AutoBoss, по функциям она самая подходящая из всех перепробованных галерей, если кто знает подобную и лучше прошу скинуть название!

Суть в том что я не могу изменить код что бы скрипт работал так как нужно, проблема заключается в открытии картинок, в общем..
вот скрин:
128.jpg

нужно сделать что бы при тыкании на большую картинку открывалась огромная, картинка оригинального размера, но это я сделал, проблема в том, при нажатии "View full Size" открывается с первой картинки, тоесть slideshow.php?id=2 и там уже кликаешь < Назад Вперёд >
и дело в том что это не ID картинки, это лиж ID созданного наименования с картинками!
Нужно сделать так, что бы при нажатии на большую картинку или "View full Size" открывалась та картинка которая на данный момент в окошке, тоесть средних размеров, и на её кликание открывалась такая-же огромная картинка, а не первая добавленная, надеюсь объяснил более менее понятно, если что спрашивайте!
вот код:

PHP:
	<?php
			if($row[images]) {
				
				if($row[images] > 1) echo "";
				
				echo "<img class='none' name='large' src='images/$image_set[0]' alt=''/>";
				
				 echo "</a><p style='text-align:center;margin:5px 0;padding:0;'><a href=\"javascript:new_window('slideshow.php?id=$_GET[id]', '900', '700');\">View full size</p>";
				
				// if there is more than one image, display the others as thumbnails
				if($row[images] > 1) {
					
					echo "<table border='0' cellpadding='0' cellspacing='0'>";
					echo "<tr>";
					
					$n = 1;
					foreach($image_set as $image) {
					
						echo "<td style='padding-top:10px;' width='130' valign='top'>";
						echo "<a href=\"javascript:swap('large', '$image');\"><img class='none' src='thumbs/$image' alt=''/></a>";
						echo "</td>";
						
						if(!($n % 3) && $n < count($image_set)) echo "</tr><tr>";
						$n++;
					}
					
					echo "</tr>";
					echo "</table>";
					
								}
				
			} else {
			
				echo "<img src='common/no-photo-large.jpg' alt=''/>";
				
			}
			?>
		</font>
		</td>
		
		<td width='20'><div style='width:20px;'></div></td>
		
		<td width='270' valign='top'>
			<table class='info' width='270' border='0' cellpadding='0' cellspacing='0' id="table40">
				<?php
				
				// general information
				echo "<tr><td class='title' colspan='2' style='background-color: #5b4f4f'>";
				if($row[model]) echo $row[model]." ";
				echo "$row[make]</td></tr>";
				if($row[cond]) echo "<tr><td>ID:</td><td>$row[cond]</td></tr>";
                if($row[engine]) echo "<tr><td>Year:</td><td>$row[model_year]</td></tr>";
				
				echo "</td></tr>";
				


				if($row[engine]) echo "<tr><td>Paint:</td><td>$row[engine]</td></tr>";


				
				if($row[ebay_url]) echo "";
				elseif($row[exterior])	echo "<tr><b><td><b>Price:</b></td><td><b>".($row[exterior])."</b></td></tr>";
				elseif($row[price_alt]) echo "<tr><td>Price:</td><td>$row[price_alt]</td></tr>";
				else echo "<tr><td>Price:</td><td>Call for Price</td></tr>";
				if($row[sale]) echo "<tr><td>Sale Price:</td><td><span class='success'>".$conf[currency].number_format($row[sale])."</span></td></tr>";
				
				// dealership information
				if($conf[show_dealer]) {
					
					echo "<tr><td colspan='2'><hr/></td></tr>";
					
		echo "<tr><td colspan='3'>".nl2br($row[description])."</td></tr>";
					
					if($location[address]) {
						echo "<tr>";
						echo "<td class='label'>Address:</td>";
						echo "<td>";
						echo $location[address]."<br/>";
						if($location[address2]) echo $location[address2]."<br/>";
						if($location[city]) echo $location[city];
						if($location[city] && $location[state]) echo ", ";
						if($location[state]) echo $location[state];
						if($location[city] || $location[state]) echo "<br/>";
						if($location[zip]) echo $location[zip]."<br/>";
						if($location[country]) echo $location[country];
						echo "</td>";
						echo "</tr>";
					}
				}
				
				// salesperson information
				if($user[contact]) {
					
			
				}
				

				?>

думаю я правильный кусок кода выбрал, если нужно я могу выложить весь скрипт, хотя он есть на форуме.
Кто поможет буду очень признателен!!!:thenks:
 
покажи функцию javascript swap(). Примерная схема действий такая: там происходит замена большой картинки на одну из маленьких. Вот там и надо бы заменить id в slideshow.php?id=... на новый. Например, в javascript завести переменную CurId, инициализировать ее значением $_GET[id], в swap() менять на новое значение, а ссылку на гигантсткую картинку сделать так:

Код:
javascript:new_window('slideshow.php?id='+CurId, '900', '700');
 
Стало понятнее, уточняю алгоритм.
Параметр id=$_GET[id], передаваемый в slideshow.php, сохраняем. Это не номер картинки, которую надо показать в отдельном окне, а группа картинок. Из этой группы картинок сначала показывается всегда первая. В окне можно перейти на следующую/предыдущую или показать в цикле, ведь передана группа картинок. Чтобы slideshow.php показывал не первую, а текущую картинку, надо дополнительно передать в скрипт название этой картинки:

Код:
javascript:new_window('slideshow.php?id=$_GET[id]'+'&begpic='+document[target].src, '900', '700');

Мы ввели новый параметр begpic, но скрипт slideshow.php еще не понимает этот параметр. Теперь надо смотреть этот скрипт и добавлять в него эту функциональность.
 
Вот код slideshow.php

PHP:
<script type='text/javascript'>

var photos  = new Array(<?php echo "'".implode("','", $image_set)."'"; ?>);
var start   = 0; // array index of first slide
var end     = <?php echo $row[images]-1; ?>; // array index of last slide
var current = start;
var doplay  = true; // do not play show automatically

// skip to first slide
function first() {
	current = 0;
	change();
}

// advance to next slide
function previous() {
	current -= 1;
	if(current < start) current = end; // skip to last slide
	change();
}

// go back to previous slide
function next() {
	current += 1;
	if(current > end) current = start; // skip to first slide
	change();
}

// skip to last slide
function last() {
	current = end;
	change();
}

// change slide according to value of current
function change() {
	document.photo.src = 'enlarge/' + photos[current];
}

// play automatic slideshow
function play() {
	if(doplay == true) {
		next();
		setTimeout(play, 2500); // call play() in 2.5 seconds
	}
}

// pause slideshow
function pause() {
	doplay = false;
}

</script>
</head>

<body>

<div id='container'>
	
	<?php require 'modules/module-slideshow.php'; ?>

как сюда вставить эту функцию?:thenks:
 
патч для AutoBoss version 3
название: slideshow с текущей картинки
версия патча: 1.0


1. Сохранить копии всех файлов, которые должны быть модифицированы:
/show.php
/modules/module-show.php
/modules/module-initialize.php
/modules/module-slideshow.php
/slideshow.php

2. в /show.php
после функции swap добавляем переменную picnum и функцию swap2 :

Код:
function swap(target, fname) {
        document[target].src = "images/" + fname;
}
[B]var picnum = 0;
function swap2(target, fname, num) {
        document[target].src = "images/" + fname;
        picnum = num;
}[/B]


3. в /modules/module-show.php

3.1. строку:

Код:
if($row[images] > 1) echo "<a href=\"javascript:new_window('slideshow.php?id=$_GET[id]', '700', '550');\">";

меняем на строку:

Код:
[B]if($row[images] > 1) echo "<a href=\"javascript:new_window('slideshow.php?id=$_GET[id]'+'&picnum='+picnum, '700', '550');\">";[/B]

3.2. строку:

Код:
echo "<a href=\"javascript:swap('large', '$image');\"><img class='none' src='thumbs/$image' alt=''/></a>";

меняем на строку:

Код:
[B]echo "<a href=\"javascript:swap2('large', '$image'," . strval($n-1) . ");\"><img class='none' src='thumbs/$image' alt=''/></a>";[/B]


4. в /modules/module-initialize.php

после строки:

Код:
if($_POST[submit]) $_GET[id] = $_POST[id];

вставляем строку:

Код:
[B]if($_POST[submit]) $picnum = $_POST[picnum]; else $picnum = $_GET[picnum];[/B]


5. в /modules/module-slideshow.php

строку:

Код:
<img name='photo' src='enlarge/<?php echo $image_set[0]; ?>' alt=''/>
заменить на:

Код:
[B]<img name='photo' src='enlarge/<?php echo $image_set[$picnum]; ?>' alt=''/>[/B]


6. в /slideshow.php

строку:

Код:
var current = start;

заменить на:

Код:
[B]var current = <?php echo intval($picnum); ?>;[/B]
 
  • Нравится
Реакции: vave
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху