|
|
|
| Тут загрузил на хост Ваш фотоальбом, но он неработает, дома делал, с PHP 5.0.1 всё работает, а у них стоит 4.0.какой-то, может ли быть в этом причина?
Да, я его не много усовершенствовал, с помощью JavaScripts, в итоге пропадает нужда использвать 2 страницы (photo.php and show.php).
По-моему так проще.
В странице photos.php изменяем строку
$image = "<a title='Увеличить фотографию' target=_blank href='photo.php?img=".$par['big']."' target=_blank><img border=0 src=".$par['small']."></a>";
|
на
$size_img = getimagesize($filename);
// Вызываем с помощью ява-скрипта новое окно с изображением и закрываем текущее окно.
$image = "<a title='Увеличить фотографию' onclick=\""."pic('".$par['big']."','".$size_img[0]."','".$size_img[1]."','".$par['name']." - Фотоальбом','#FFFFFF','hug image','0');return document.MM_returnValue"."\" href='javascript:;'><img border=0 src=".$par['small']."></a>";
|
а блок <head></head> вставляем сам скрипт
<SCRIPT language=JavaScript>
<!--
function pic (imageName,imageWidth,imageHeight,alt,bgcolor,hugger,hugMargin) {
// by E Michael Brandt of ValleyWebDesigns.com - Please leave these comments intact.
// version 3.0.4
if (bgcolor=="") {
bgcolor="#FFFFFF";
}
var adj=10
var w = screen.width;
var h = screen.height;
var byFactor=1;
if(w<740){
var lift=0.90;
}
if(w>=740 & w<835){
var lift=0.91;
}
if(w>=835){
var lift=0.93;
}
if (imageWidth>w){
byFactor = w / imageWidth;
imageWidth = w;
imageHeight = imageHeight * byFactor;
}
if (imageHeight>h-adj){
byFactor = h / imageHeight;
imageWidth = (imageWidth * byFactor);
imageHeight = h;
}
var scrWidth = w-adj;
var scrHeight = (h*lift)-adj;
if (imageHeight>scrHeight){
imageHeight=imageHeight*lift;
imageWidth=imageWidth*lift;
}
var posLeft=0;
var posTop=0;
if (hugger == "hug image"){
if (hugMargin == ""){
hugMargin = 0;
}
var scrHeightTemp = imageHeight - 0 + 2*hugMargin;
if (scrHeightTemp < scrHeight) {
scrHeight = scrHeightTemp;
}
var scrWidthTemp = imageWidth - 0 + 2*hugMargin;
if (scrWidthTemp < scrWidth) {
scrWidth = scrWidthTemp;
}
if (scrHeight<100){scrHeight=100;}
if (scrWidth<100){scrWidth=100;}
posTop = ((h-(scrHeight/lift)-adj)/2);
posLeft = ((w-(scrWidth)-adj)/2);
}
if (imageHeight > (h*lift)-adj || imageWidth > w-adj){
imageHeight=imageHeight-adj;
imageWidth=imageWidth-adj;
}
posTop = parseInt(posTop);
posLeft = parseInt(posLeft);
scrWidth = parseInt(scrWidth);
scrHeight = parseInt(scrHeight);
var agt=navigator.userAgent.toLowerCase();
if (agt.indexOf("opera") != -1){
var args= new Array();
args[0]='parent';
args[1]=imageName;
var i ; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
} else {
newWindow = window.open("vwd_justso.htm","newWindow","width="+scrWidth+",height="+scrHeight+",left="+posLeft+",top="+posTop);
newWindow.document.open();
newWindow.document.write('<html><title>'+alt+'</title><body leftmargin="0" topmargin="0" marginheight="0" marginwidth="0" bgcolor='+bgcolor+' onBlur="self.close()" onClick="self.close()">');
newWindow.document.write('<table width='+imageWidth+' border="0" cellspacing="0" cellpadding="0" align="center" height='+scrHeight+' ><tr><td>');
newWindow.document.write('<img src="'+imageName+'" width='+imageWidth+' height='+imageHeight+' alt="Щелкните, чтобы закрыть!" >');
newWindow.document.write('</td></tr></table></body></html>');
newWindow.document.close();
newWindow.focus();
}
}
//-->
</SCRIPT>
|
Вот и всё!
Вы можете сказать именно из-за этого и не работает, но нет со стандарным видом то же не фурычит! :) | |
|
|
|
|
|
|
|
для: Artemy
(15.11.2004 в 17:48)
| | Посмотрите на хостинге список расширений, которые он поддерживает или спросите в службе поддержки имеется ли у них GDLib и какая версия? А Фотогалерея что-нибудь пишет и как проявляется её неработа? | |
|
|
|
|
|
|
|
для: Artemy
(15.11.2004 в 17:48)
| | >Да, я его не много усовершенствовал
Да, можно и так. Нам просто не очень хотелось для каждой отображаемой фотографии вызывать
$size_img = getimagesize($filename);
|
И формировать страницу Ява-скриптом ()
document.write('<html><title>….........
………………………….
|
Вот и вынесли эти участки кода в отдельные файлы.
Как и сказал cheops для того, что мы понять почему он не работает нужно знать какие ошибки он выдает. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(15.11.2004 в 21:49)
| | Простите, так увлёкся рассказом об изменении, что забыл написать это!
Во-первых, при отрытии фотогалерии выводиться описание фото, но нет самой фото, если открыть HTML , то ячейка где должна быть фотография пустая, я попросил админов поставить GDLib, они поставили, но все-равно ничего не работает, во-вторых в папке files не создаётся ни сама копия фото, ни уменьшенная копия фото, но в БД создаются записи, и имена копий фото!
Здесь можно посмотреть http://www.boxer-dmk.ru/photo/ | |
|
|
|
|
|
|
|
для: Artemy
(16.11.2004 в 11:56)
| | Может кто-нибудь поможет?! | |
|
|
|
|
|
|
|
для: Artemy
(18.11.2004 в 10:12)
| | А права доступа на папку где хранятся фотографии выставлены нормально? Т.е. туда скрипты фотогалереи могут писать? | |
|
|
|
|
|
|
|
для: cheops
(18.11.2004 в 12:22)
| | ЗАРАБОТАЛО!
Я сейчас поставил права доступа 0777, а какие надо поставить чтобы всё работало и было защищено! | |
|
|
|
|
|
|
|
для: Artemy
(18.11.2004 в 12:37)
| | Лучше 744 или 700, если скрипт выполняется от имени владельца директории, если нет, тогда наверное придётся поставить что-то вроде 666 или (777 для директории).
Вы можете сами подобрать нужные вам права доступа - они обсуждаются по ссылке ниже.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=158 | |
|
|
|