Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: вставить блок с кодом в нужном месте

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

gooddemo

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть галерея, лежит  в папке  foto
 
index.php

Код:
 
<?
include("config.php");
?>
<html>
<head>
<script type="text/javascript" src="/js/prototype.js"></script>
<script type="text/javascript" src="/js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="/js/lightbox.js"></script>
</head>
</html>
<table cellpadding=2 cellspacing=7 border=0 width=100%>
<tr>
<td valign=top width=190>
<table class=tborder cellspacing=1 cellpadding=6 border=0 width=200>
<tr>
<td class=tcat>Галереи</td>
</tr>
<tr>
<td class=alt2><a href="index.php">Главная</a></td>
</tr><?
$t=0;
$dir_menu=opendir("./files");
while($folder=readdir($dir_menu))
  {
  if($folder!="." && $folder!=".." && filetype("./files/$folder")=="dir")
    {
    chdir("./files/$folder");
    #$scan_dir=opendir(".");
    $t++;
    if(file_exists("info.dat"))
      {
      $file=fopen("info.dat",r);
      $title_cat=fgets($file);
      clearstatcache();
      }
    else $title_cat="Категория $t";
    $array_cat["$folder"]=ucfirst(trim($title_cat));
    chdir("../../");
    }
  }
 
if(count($array_cat)>0)
  {
  asort($array_cat);
  foreach($array_cat as $key=>$val)
    {
    $first=substr($val,0,1);?>
    <tr>
    <td class=alt2><?if($first!=$symbol) echo "<b>";?>
    <a href="index.php?cat=<?echo rawurlencode($key);?>"><?echo$val;?></a>
    <?if($first!=$symbol) echo "</b>";?></td>
    </tr><?
    $symbol=$first;
    }
  }?>
  </table></td>
  <td valign=top align=center width=90%><?
  $cat=urldecode($cat);
  if(file_exists("./files/$cat"))
    {
    chdir("./files/$cat");
    $scan_dir=opendir(".");
    while($scan_dir2=readdir($scan_dir))
      {
      $arr=explode(".",$scan_dir2);
      $end=strtolower(end($arr));
      if($scan_dir2!="." && $scan_dir2!=".." && in_array($end,$types)) $r++;
      }
    $pages=ceil($r/$f);
    if($page=="" || $page=="0" || $page>$pages) $page=1;
    if(file_exists("info.dat"))
      {
      $file=fopen("info.dat",r);
      $title_cat=fgets($file);
      clearstatcache();
      }
    else $title_cat="Категория NONAME";?>
    <table class=tborder cellspacing=1 cellpadding=6 width="100%" align=center border=0>
    <tr>
      <td class=tcat colspan=<?echo$x;?>>Галерея: <?echo$title_cat;?>.
      Всего фотографий: <?echo$r;?>.</td>
     </tr>
     <tr>
      <td class=alt2 colspan=<?echo$x;?> valign=middle align=center><?
      if($page>1) echo "<a href=\"index.php?cat=$cat&page=".($page-1)."\"><</a>&nbsp;&nbsp;";?>
      Страницы: <?pages($r);?><?
      if($page<$pages) echo "&nbsp;&nbsp;<a
      href=\"index.php?cat=$cat&page=".($page+1)."\">></a>&nbsp;&nbsp;";?></td>
     </tr><?
    $i=$ii=1;
    $start=($page-1)*$f+1;
    $end=$page*$f;
    $dir_gal=opendir(".");
    while($image=readdir($dir_gal))
      {
      $arr=explode(".",$image);
      $ext=strtolower(end($arr));
      if($image!="." && $image!=".." && in_array($ext,$types) && filetype("$image")=="file")
        {
        if($ii>=$start && $ii<=$end)
          {
          if($i==1) echo "<tr>";
          $info_img=getimagesize($image);
          echo "<td class=alt2 valign=middle align=center><strong> $ii </strong><br>
          <a href=\"full.php?cat=".urlencode($cat)."&img=$image\" target=blank>
          <img src=\"image.php?cat=".urlencode($cat)."&image=$image\" border=0></a>
          <br>Название: ".str_replace(".$end","",$image)."<br>
          <i>Размер: $info_img[0]x$info_img[1]</i></td>";
          if($i==$x) { echo "</tr>"; $i=1; }
          else $i++;
          }
        $ii++;
        }
      }?>
     <tr>
      <td class=alt2 colspan=<?echo$x;?> valign=middle align=center><?
      if($page>1) echo "<a
      href=\"index.php?cat=$cat&page=".($page-1)."\"><</a>&nbsp;&nbsp;";?>
      Страницы: <?pages($r);?><?
      if($page<$pages) echo "&nbsp;&nbsp;<a
      href=\"index.php?cat=$cat&page=".($page+1)."\">></a>&nbsp;&nbsp;";?></td>
     </tr>
   </table><?
    }
  else
    {?>
   <table class=tborder cellspacing=1 cellpadding=6 width="100%" align=center border=0>
     <tr>
      <td class=tcat>Галлерея!</td>
     </tr>
     <tr>
      <td class=alt1 align=middle><?include("design/index.tpl");?></td>
     </tr>
   </table><?
    }?>
    </td>
  </tr>
</table>

 
config.php

Код:
<?
 
error_reporting (E_ERROR | E_WARNING | E_PARSE);
 
#####################################################################
################# POST and GET variables ############################
#####################################################################
 
$mode         = $_GET[mode];
$cat          = $_GET[cat];
$page         = $_GET[page];
$image        = $_GET[image];
$img          = $_GET[img];
$nc           = $_GET[nc];
 
#####################################################################
 
$version      = "v1.0";              // версия
 
$site_url     = "http://my_site";         // адрес сайта
 
$site_slogan  = "Yo!";                    // слоган для добавления в избранное
 
$site_title   = "my_title";               // название сайта
 
$x            = 4;                        // количество картинок вс троке
 
$y            = 5;                        // количество строк
 
$types        = array("jpg","gif","png"); // типы файлов для загрузки (не трогать!)
 
$deg          = 70;               // степень сжатия
 
$go           = "./files/$cat";              // каталог для загрузки
 
$w          = 133;              // ширина уменьшения
 
$h          = 100;              // высота уменьшения
 
$f=$x*$y;
 
function no_image()
  {
  $img_out=ImageCreate(100, 75);
  $background=ImageColorAllocate($img_out,250,250,250);
  imagefill($img_out, 0, 0,$background);
  $text_color=ImageColorAllocate($img_out,0,0, 0);
  ImageString($img_out, 5, 11, 1, "Error" , $text_color);
  ImageJPEG($img_out,'',50);
  ImageDestroy($img_out);
  }
 
function compress($filename,$q,$w="",$h="")  
  {
  $size_img=getimagesize($filename);
  if(empty($w)) $w=$size_img[0];
  if(empty($h)) $h=$size_img[1];
  $ratio=$w/$h;  
  if(($size_img[0]<$w) && ($size_img[1]<$h)) return true;  
  $src_ratio=$size_img[0]/$size_img[1];  
  if($ratio<$src_ratio) $h=$w/$src_ratio;  
  else $w=$h*$src_ratio;  
  $dest_img=imagecreatetruecolor($w,$h);    
  $white=imagecolorallocate($dest_img, 255, 255, 255);
  if($size_img[2]==2) $src_img=imagecreatefromjpeg($filename);                        
  elseif($size_img[2]==1) $src_img=imagecreatefromgif($filename);
  elseif($size_img[2]==3) $src_img=imagecreatefrompng($filename);
  imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
  if($size_img[2]==2) imagejpeg($dest_img, "", $q);                        
  elseif($size_img[2]==1) imagejpeg($dest_img, "", $q);                        
  elseif($size_img[2]==3) imagepng($dest_img, "", $q);  
  imagedestroy($dest_img);  
  imagedestroy($src_img);
  return true;          
  }
 
function pages($string)
  {
  global $f,$u,$page,$pages,$cat;
  if($string>$f)
    {
    if(!isset($page))
      {
      $page="1";
      }
    for($u=1;$u<=$pages;$u++)
      {
      if($u!=$page)
        {
        if($u==$pages)
          {
          print '&nbsp;<a href="'.$PHP_SELF.'?cat='.rawurlencode($cat).'&page='.$u.'">'.$u.'</a>';
          }
        else print '&nbsp;<a href="'.$PHP_SELF.'?cat='.rawurlencode($cat).'&page='.$u.'">'.$u.'</a>';
          }
      else
        {
        if($u==$pages)
          {
          print '&nbsp;'.$u;
          }
        else print '&nbsp;'.$u;
        }
      }
    }
  else echo"1";
  }
 
?>

 
есть еще full.php и image.php но они пока не нужны
 
 
в этом коде происходит сканирование и вывод на экран ссылок на папки с изображениями
Код:
<?
$t=0;
$dir_menu=opendir("./files");
while($folder=readdir($dir_menu))
  {
  if($folder!="." && $folder!=".." && filetype("./files/$folder")=="dir")
    {
    chdir("./files/$folder");
    #$scan_dir=opendir(".");
    $t++;
    if(file_exists("info.dat"))
      {
      $file=fopen("info.dat",r);
      $title_cat=fgets($file);
      clearstatcache();
      }
    else $title_cat="Категория $t";
    $array_cat["$folder"]=ucfirst(trim($title_cat));
    chdir("../../");
    }
  }
 
if(count($array_cat)>0)
  {
  asort($array_cat);
  foreach($array_cat as $key=>$val)
    {
    $first=substr($val,0,1);?>
    <tr>
    <td class=alt2><?if($first!=$symbol) echo "<b>";?>
    <a href="index.php?cat=<?echo rawurlencode($key);?>"><?echo$val;?></a>
    <?if($first!=$symbol) echo "</b>";?></td>
    </tr><?
    $symbol=$first;
    }
  }?>

 
Нужно что бы эти ссылки выводились в меню в списке <li></li>, в корне сервера есть основнойфайл index.php меню в нем инклюдится примерно так:
Код:
 
 <?php
if ($master == "Фотогалерея")  
{  
echo "    <li><p class=\"p_menu\">Фотогалерея</p>
<ul>
<li></li>
<li></li>
</ul></li>";  
}  
else
{  
echo "<li><a href=\"/fotoalbom/index.php\">Фотогалерея</a></li>";  
}  
?>
 

 

Всего записей: 51 | Зарегистр. 15-02-2010 | Отправлено: 18:23 17-04-2011 | Исправлено: Cheery, 09:18 18-04-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Нужно что бы эти ссылки выводились в меню в списке <li></li>

ну и в чем проблема?
перед

Цитата:
foreach($array_cat as $key=>$val)

делаете  
echo '<ul>';
после
Цитата:
  $symbol=$first;  
    }  

делаете  
echo '</ul>';
а

Цитата:
    <tr>  
    <td class=alt2><?if($first!=$symbol) echo "<b>";?>  
    <a href="index.php?cat=<?echo rawurlencode($key);?>"><?echo$val;?></a>  
    <?if($first!=$symbol) echo "</b>";?></td>  
    </tr>

заменяете на тот формат одного элемента, который вам нужен


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:28 17-04-2011
gooddemo

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, но чуть чуть не до конца, теперь вот то что получилось нужно проинклудить в меню
 
index.php

Код:
<?
include '/menu.php';
?>

 
menu.php

Код:
<?php
if ($master == "Фотогалерея")  
{  
echo   <li>  foreach($array_cat as $key=>$val)  
     {  
     $first=substr($val,0,1);?>  
     <tr>  
     <td class=alt2><?if($first!=$symbol) echo "<b>";?>  
     <a href="index.php?cat=<?echo rawurlencode($key);?>"><?echo$val;?></a>  
     <?if($first!=$symbol) echo "</b>";?></td>  
     </tr><?  
     $symbol=$first;  
     }</li>
?>

Всего записей: 51 | Зарегистр. 15-02-2010 | Отправлено: 20:58 17-04-2011 | Исправлено: gooddemo, 21:01 17-04-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gooddemo

Цитата:
но чуть чуть не до конца,

вы не моежет tr выводить в li
и все же подробно написал, как генерить вывод
 
что непонятно то?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:05 17-04-2011
gooddemo

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
мне нужно этот кусок кода (который генерирует ссылку) вытащить из файла index.php, вставить его в файл menu.php и проинклудить в других документах. В этом же документе у меня все получается.

Всего записей: 51 | Зарегистр. 15-02-2010 | Отправлено: 21:38 17-04-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gooddemo
ну так делайте, где хочется, инклуд этого файла
 

Цитата:
в этом коде происходит сканирование и вывод на экран ссылок на папки с изображениями

 


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:40 17-04-2011
gooddemo

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
index.php

Код:
<?php
include 'menu_f_1.php';
?>

 

Код:
<?php
if ($master == "Фотогалерея")  
{  
echo '<ul>';
<?
$t=0;
$dir_menu=opendir("./files");
while($folder=readdir($dir_menu))
  {
  if($folder!="." && $folder!=".." && filetype("./files/$folder")=="dir")
    {
    chdir("./files/$folder");
    #$scan_dir=opendir(".");
    $t++;
    if(file_exists("info.dat"))
      {
      $file=fopen("info.dat",r);
      $title_cat=fgets($file);
      clearstatcache();
      }
    else $title_cat="Категория $t";
    $array_cat["$folder"]=ucfirst(trim($title_cat));
    chdir("../../");
    }
  }
 
if(count($array_cat)>0)
  {
  asort($array_cat);
 
foreach($array_cat as $key=>$val)
    {
    $first=substr($val,0,1);?>
 
<?if($first!=$symbol) echo "<b>";?>
<li><a href="index.php?cat=<?echo rawurlencode($key);?>"><?echo$val;?></a></li>
    <?if($first!=$symbol) echo "</b>";?>
<?
    $symbol=$first;
}
 
echo '</ul>';
  }?>
}
?>

 
ошибка
Parse error: syntax error, unexpected '<' in C:\webserver\www\fotoalbom\menu_f_1.php on line 5
 
Добавлено:
вывелось так

Код:
<?php
if ($master == "Фотогалерея")  
{
 
$t=0;
$dir_menu=opendir("./files");
while($folder=readdir($dir_menu))
  {
  if($folder!="." && $folder!=".." && filetype("./files/$folder")=="dir")
    {
    chdir("./files/$folder");
    #$scan_dir=opendir(".");
    $t++;
    if(file_exists("info.dat"))
      {
      $file=fopen("info.dat",r);
      $title_cat=fgets($file);
      clearstatcache();
      }
    else $title_cat="Категория $t";
    $array_cat["$folder"]=ucfirst(trim($title_cat));
    chdir("../../");
    }
  }
 
if(count($array_cat)>0)
  {
  asort($array_cat);
echo '<ul>';
foreach($array_cat as $key=>$val)
    {
    $first=substr($val,0,1);?>
<li><?if($first!=$symbol) echo "<b>";?>
<a href="index.php?cat=<?echo rawurlencode($key);?>">1<?echo$val;?></a>
<?if($first!=$symbol) echo "</b>";?></li>
 
<?
    $symbol=$first;
}
echo '</ul>';
  }
}
?>

Всего записей: 51 | Зарегистр. 15-02-2010 | Отправлено: 21:56 17-04-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gooddemo
блин, ну неужели даже такие вещи нужно разжевывать? сообщение об ошибке вам все рассказало

Цитата:
<?  

не нужно это на 5 строке, вы уже выше "открыли" начало php кода с помощью <?php

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:08 17-04-2011
gooddemo

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
все спасибо получилось осталось немного до ковырять до нужного вида
 
Добавлено:
вот только теперь содержимое галерей перестало отоброжаться, что с указанием директории? хотя ошибки не выдает
 
Добавлено:
все, отбой, получилось!
 
Добавлено:
еще из этого же  примера, как сделать условие, если в пути url стоит cat, то выводит слово "получилось"?
 

Код:
<?php
if ($title_cat=fgets($file))  
{
echo "<p class=\"p_submenu\">получлось</p>";
}
?>

Всего записей: 51 | Зарегистр. 15-02-2010 | Отправлено: 22:16 17-04-2011 | Исправлено: gooddemo, 23:34 17-04-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gooddemo

Цитата:
еще из этого же  примера, как сделать условие, если в пути url стоит cat, то выводит слово "получилось"?  

стоит где?  
if (preg_match('/cat/',$url)) echo "Получилось";

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:54 18-04-2011
gooddemo

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не получилось!
 
site/fotoalbom/index.php?cat=1 вот к примеру ссылка.

Всего записей: 51 | Зарегистр. 15-02-2010 | Отправлено: 09:04 18-04-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gooddemo

Цитата:
не получилось!

так формулируйте внятно вопросы..откуда я знаю. что под URL вы имеете в виду строку запроса к серверу?

Цитата:
if (isset($_GET['cat'])) echo "Получилось";

 


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 09:09 18-04-2011
gooddemo

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извиняюсь за некорректность вопроса, щас все получилось огромное спасибо!
 
Добавлено:
а как сделать если добавить условие cat =1 выводим получилось, иначе не получилось  

Всего записей: 51 | Зарегистр. 15-02-2010 | Отправлено: 09:38 18-04-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gooddemo

Цитата:
а как сделать если добавить условие cat =1 выводим получилось, иначе не получилось  

вы вопросы задаете, которые изучается на первых страницах любого учебника по PHP  
не ленитесь!
if (isset($_GET['cat'])&&$_GET['cat']==1) echo "Получилось";

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:35 18-04-2011
denop ua

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе время суток!
Прошу помощи по этому скрипту. Делаю небольшую галерею, но по ходу выяснилось, что фотографии не сортируются по порядку (к примеру: 1,2,3,4,5, и т.д.).
Подскажите плиз, что необходимо изменить.  
Заранее благодарю!

Всего записей: 8 | Зарегистр. 14-06-2012 | Отправлено: 01:56 14-06-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
denop ua
1) а при чем тут данная тема?
2) вопрос не совсем понятен - чем считываете, тем и сортируете.. слишком мало конкретики у вас

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:03 14-06-2012 | Исправлено: Cheery, 02:04 14-06-2012
denop ua

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1) тема не причем. я использую тот же скрипт что и gooddemo.
 
Я в пхп не силён. поэтому прошу помощи.
Не понимаю какой функцией выполнить сортировку и вывести?
Как откорректировать код до рабочего состояния?
 
возможно я ошибаюсь, думаю
while($image=readdir($dir_gal))  //из исходника index.php  
 
далее содержимое $image = array();
ksort($image);
 
далее вывод...
 
 
 
Спасибо, что отозвались!

Всего записей: 8 | Зарегистр. 14-06-2012 | Отправлено: 10:59 14-06-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
denop ua

Цитата:
возможно я ошибаюсь, думаю  

читаете в массив названия файлов, сортируете, выводите в цикле уже отсортированные

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 11:17 14-06-2012
denop ua

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемый форумчане и модераторы прошу помочь.
 
По совету Cheery пробую сделать сортировку. Перепробовал разные варианты найденные в сети. НО по каким-то причинам не сортирует по порядку (sort, natsort)
 
<?
$dir_gal=opendir("files");
$myArray = array();
while($image=readdir($dir_gal)){
natsort($myArray);
$myArray = array($image);
foreach ($myArray as $val)
if ($val != '.' && $val != '..') {
 echo "$val.<br/>";
}
}
?>
 
Хочу выяснить для себя что тут не так?

Всего записей: 8 | Зарегистр. 14-06-2012 | Отправлено: 23:07 20-06-2012
Drewx



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
что тут не так?

Господь мой бог, да это полный пи... Братик, ничего личного, но у тебя полностью отсутствует понятие о том, как выполняется программа. В этом коде что-то типа: справил малую нужду, потом расстегнул штаны, потом направился в туалет.
 
Чтобы как-то оправдать этот словесный высер лови рабочий фрагмент:

Код:
 
$dirGal = opendir('files');
$myArray = array();
 
// собираем имена файлов в массив как есть
while(false !== ($image=readdir($dirGal))) {  
    if ($image != '.' && $image != '..') {  
        $myArray[] = $image;  
    }  
}
closedir($dirGal);
 
// сортируем
natsort($myArray);
 
// выводим на экран
foreach ($myArray as $val) {
     echo "{$val}<br/>";  
}
 

Всего записей: 134 | Зарегистр. 26-02-2002 | Отправлено: 03:16 21-06-2012 | Исправлено: Drewx, 03:20 21-06-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: вставить блок с кодом в нужном месте


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru