Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: VowikEasyCMS

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Моя Cms не работает, надеюсь на помощь :)
Nemo
Отправлено: 25 Декабря, 2006 - 12:23:29
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Дек. 2006  
Откуда: Москва


Помог: 0 раз(а)




Полная проблема описана тут.. просто лень переписывать.. там мне помочь не захотели Недовольство, огорчение(( Может Вы поможите Улыбка

http://php[dot]ru/forum/viewtopic.php?t=3103
 
 Top
evgenijj
Отправлено: 25 Декабря, 2006 - 13:05:22
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Люди честно пытались тебе помочь - вряд ли здесь ты получишь более исчерпывающие ответы. Поскольку общаться посредством испорченного телефона у меня нет желания (новички не способны внятно излагать свои мысли) - прикрепи файлы своей CMS к сообщению. Посмотрю, когда время будет.
 
 Top
Nemo
Отправлено: 25 Декабря, 2006 - 13:12:58
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Дек. 2006  
Откуда: Москва


Помог: 0 раз(а)




Да я-то объяснить могу Улыбка))))
Заранее спасибо Улыбка
 
 Top
evgenijj
Отправлено: 25 Декабря, 2006 - 14:35:00
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Давай попробуем разобраться. Итак, файл index.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. include "config.php";
  4. include "style.php";
  5. $copyright = "n<p align="center"><font size="1"><a target="_blank" href="http://cms.vowik.ru/">VowikEasyCMS© - ".$version."</a></font></p>";
  6. echo $copyright;
  7. ?>
  8.  

Смотрим config.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $site_name = "http://www.host2.ru";
  4. // Введите название папки, в которой будут храниться файлы *.txt с текстом Вашего сайта
  5. $page_name = "text";
  6. $version =  ("1.2");
  7. ?>
  8.  

Файл style.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $style = "default";
  4. if ( isset($_GET['style']) )
  5. {
  6.         if ( !empty($_GET['style']) )
  7.         {
  8.                 if ( !preg_match("#[^a-z]#s", $_GET['style']) )
  9.                 {
  10.                         $style = $_GET['style'];
  11.                 }
  12.         }
  13. }
  14. if($style == '')
  15. {
  16.         $style = 'default';
  17. }
  18.  
  19. $filename = 'style/' . $style . '/index.tpl';
  20. if ( !file_exists($filename) )
  21. {
  22.   $filename = 'style/default/index.tpl';
  23. }
  24. $f_php = file($filename);
  25. for ($i = 0; $i < count($f_php); $i++)
  26. {
  27.       $f_php[$i] = eregi_replace('{style_path}', $site_name.'/style/'. $style, $f_php[$i]);
  28.       echo $f_php[$i];
  29. }
  30. ?>
  31.  

Пока все нормально. А вот дальше уже интересно. Ты считал файл index.tpl в массив и отдал его клиенту - т.е. сервер отдал браузеру сгенерированный html. В этом html есть строка '<? include ("page.php");?>'
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Language" content="ru">
  5. <meta name="keywords" content="VowikEasyCMS">
  6. <meta name="description" content="VowikEasyCMS">
  7. <title>VowikEasyCMS</title>
  8. </head>
  9. <body bgcolor="#C0C0C0" text="#000000">
  10. .......................................
  11. <img border="0" src="{style_path}/img/logo.gif" width="200" height="100">
  12. .......................................
  13. <? include ("page.php");?>
  14. </body>
  15. </html>
  16.  

Вот это работать не будет. Соответственно файл page.php даже разбирать смысла нет:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. include ("config.php");
  4. $page = 'default';
  5. if ( isset($_GET['page']) )
  6. {
  7.    if ( !empty($_GET['page']) )
  8.    {
  9.       if ( !preg_match("#[^a-z]#s", $_GET['page']) )
  10.       {
  11.          $page = $_GET['page'];
  12.       }
  13.    }
  14. }
  15. $filename = "$page_name/" . $page . '.txt';
  16. if ( file_exists($filename) )
  17. {
  18.    include $filename;
  19. }
  20. else
  21. {
  22.    include "$page_name/main.txt";
  23. }
  24. ?>
  25.  

Кстати, обращаю внимание - ты пытаешься подключить config.php дважды - это ошибка. Используй include_once.
В общем ты почти нашел путь для решения задачи, когда использовал str_replace, чтобы заменить {style_path}:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <img border="0" src="{style_path}/img/logo.gif" width="200" height="100">
  3.  

Что мешает сделать еще одну вставку в файле index.tpl

прочитать содержимое файла main.txt (или другого) в переменную и выполнить операцию замены
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $page_content = file_get_contents( $path.$_GET['page'].".txt" );
  4. $template = file_get_contents( "./style/default/index.tpl" );
  5. $html = str_replace( "{page_content}", $page_content, $template );
  6. echo $html;
  7. ?>
  8.  

И последнее - в файле admin.php у тебя есть такая строка
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $new_version = include ("http://cms.vowik.ru/new.php");
  4. ?>
  5.  

Тебе уже говорили - есть понятие URI и есть понятие пути (абсолютного и относительного). Зря не прочел статью, ссылку на которую тебе давали на http://php[dot]ru/ Правильно будет так:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $new_version = include "./new.php";
  4. // или так
  5. $new_version = include "new.php";
  6. ?>
  7.  
 
 Top
Nemo
Отправлено: 25 Декабря, 2006 - 14:45:05
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Дек. 2006  
Откуда: Москва


Помог: 0 раз(а)




А почему не будет??? Оченю даже работает Улыбка
В нем же происходит замена {style_path} на то, что надо... а вот <? include ("page.php");?> выводится как обычный текст Недовольство, огорчение(( Я даже включил поодержку персера в tpl файлах, но все равно не работает Недовольство, огорчение

Про Конфиг понял... исправил Улыбка

Проблема в том, что название стиля, также как и файла в загрузке зависит от параметра в адресной страке... т.е. в $template = file_get_contents( "./style/default/index.tpl" );
дефаул тожен быть динамическим... что-то типа index.php?style=1111 строка должна меняться на $template = file_get_contents( "./style/1111/index.tpl" );

и последнее.. т.е. в шаблоне вместо php кода вставляю {page_content} и да будет свет?
 
 Top
evgenijj
Отправлено: 25 Декабря, 2006 - 14:52:10
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Допустим браузер запрашивает какую-то страницу у сервера. Сервер видит, что этот файл имеет расширение .php - и отдает его на обработку PHP, который возвращает серверу сгенерированный html, а тот отдает его браузеру. После того, как ты написал echo $something; - поезд ушел. И если внутри этого $something есть что-то типа <? include ("page.php");?> - это твои личные трудности.
Цитата:

и последнее.. т.е. в шаблоне вместо php кода вставляю {page_content} и да будет свет?

Попробуй Улыбка
Цитата:

дефаул тожен быть динамическим... что-то типа index.php?style=1111 строка должна меняться на $template = file_get_contents( "./style/1111/index.tpl" );

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $template = file_get_contents( "./style/".$_GET["style"]."/index.tpl" );
  4. ?>
  5.  
 
 Top
Nemo
Отправлено: 25 Декабря, 2006 - 14:56:44
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Дек. 2006  
Откуда: Москва


Помог: 0 раз(а)




А с admin.php Меня немного не поняли.. мне нужен модуль обновления.... типа он сравнивает два значения из двух файлов.. независимых от сервера... т.е. new.php имеет вид
http://cms[dot]vowik[dot]ru/new.php а второй любой ДРУГОЙ адрес.. и значение $version должно сравниваться с версией из new.php и если она меньше выводить что-то типа "обновите версию", а если все норм, то "более новой версии нет"\n\n(Добавление)
Результат ЭТОЙ работы можно посмотреть на http://cms.vowik.ru/\n\n(Добавление)
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. /***************************************************************************
  4.  *                              index.php
  5.  *                            -------------------
  6.  *   Begin                 : Sunday, Nov 5, 2006
  7.  *   Copyright          : (C) 2006 vowik.ru
  8.  *   E-Mail                : support@vowik.ru
  9.  *
  10.  *
  11.  ***************************************************************************/
  12. // Загрузка общей конфигурации
  13. include_once "config.php";
  14. include "style.php";
  15.  
  16. $page = "main";
  17. $style = "default";
  18.  
  19. $page_content = file_get_contents( "$page_name/".$_GET['page'].".txt" );
  20. $template = file_get_contents( "./style/".$_GET["style"]."/index.tpl" );
  21. $html = str_replace( "{page_content}", $page_content, $template );
  22. echo $html;
  23.  
  24. $copyright = "n<p align="center"><font size="1"><a target="_blank" href="http://cms.vowik.ru/">VowikEasyCMS© - $version</a></font></p>";
  25. echo ("$copyright");
  26. ?>
  27.  


Вот так теперь выглядит index.php

Только вот незадача.. как быть с дефаутовыми настройками?? Улыбка))\n\n(Добавление)
Наличие строк типа
$page = "main";
$style = "default";
ничего не дали Недовольство, огорчение\n\n(Добавление)
Еще один глюк - это перестала обрабатываться
$f_php = file($filename);
for ($i = 0; $i < count($f_php); $i++)
{
$f_php[$i] = eregi_replace('{style_path}', $site_name.'/style/'. $style, $f_php[$i]);
echo $f_php[$i];
}
В файле style.php
 
 Top
evgenijj
Отправлено: 25 Декабря, 2006 - 16:01:15
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Мда... У меня складывавется впечатление, что совсем скоро ты пойдешь на следующий форум с просьбой тебе помочь... Я тебе говорю общее направление, в каком надо двигаться, а ты просишь разжевать за тебя, да еще и проглотить.
Никто не напишет за тебя твою CMS, кроме тебя самого. Если нет желания разобраться, что и как, а есть желание "чтоб заработало" - зачем вообще за программирование взялся?
Файл index.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if ( !isset( $_GET["page"] ) )
  4.         $page = 1; // главная страница сайта
  5. else
  6.         $page = $_GET["page"];
  7.        
  8. if ( !isset( $_GET["tpl"] ) )
  9.         $tpl = "default"; // шаблон по умолчанию
  10. else
  11.         $tpl = $_GET["tpl"];
  12.        
  13. // Читаем содержимое файла шаблона в переменую
  14. if( is_file( "./templates/".$tpl.".tpl" ) )
  15. {
  16.         $template = file_get_contents( "./templates/".$tpl.".tpl" );
  17. }
  18. else
  19. {
  20.         $template = "";
  21. }
  22.  
  23. // Получаем содержимое полей шаблона (в нашем случае поле всего одно)
  24. if( is_file( "./content/page".$page.".html" ) )
  25. {
  26.         $field = file_get_contents( "./content/page".$page.".html" );
  27. }
  28. else
  29. {
  30.         $field = "";
  31. }
  32.  
  33. // "Наполняем" поля шаблона содержимым
  34. if ( !empty( $template ) and !empty( $field ) )
  35. {
  36.         $html = str_replace( "{field}", $field, $template );
  37.         $html = str_replace( "{title}", "VowikEasyCMS", $template );
  38. }
  39. else
  40. {
  41.         $html = "Ошибка!";
  42. }
  43.  
  44. echo $html;
  45. ?>
  46.  

Шаблон по умолчанию default.tpl
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4. <title>{title}</title>
  5. </head>
  6. <body bgcolor="#C0C0C0" text="#000000">
  7. <table>
  8. <tr>
  9.         <td valign="top" width="20%">
  10.         <ul>
  11.                 <li><a href="/index.php?page=1&tpl=red">Главная страница</a></li>
  12.                 <li><a href="/index.php?page=2&tpl=green">Каталог продукции</a></li>
  13.                 <li><a href="/index.php?page=3&tpl=blue">Контакты</a></li>
  14.         </ul>
  15.         </td>
  16.         <td valign="top" width="80%">
  17.         {field}
  18.         </td>
  19. </tr>
  20. </table>
  21. </body>
  22. </html>
  23.  
 
 Top
Nemo
Отправлено: 25 Декабря, 2006 - 16:17:47
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Дек. 2006  
Откуда: Москва


Помог: 0 раз(а)




Спасибо, помучаю... Улыбка)))

Просто я немного не понимаю... поэтому такие глупые ошибки Улыбка))
 
 Top
Nemo
Отправлено: 25 Декабря, 2006 - 18:59:15
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Дек. 2006  
Откуда: Москва


Помог: 0 раз(а)




Вроде получилось, НО...
насколько мне помнится в этой части
{
$html = str_replace( "{field}", $field, $template );
$html = str_replace( "{title}", "VowikEasyCMS", $template );
}
параметру $html будет присвоено значение $html = str_replace( "{title}", "VowikEasyCMS", $template );

Также в шаблоне проиходит вывод {field} вместо замены... адже при закоментированной строке описанной выше...\n\n(Добавление)
Это исправил Улыбка)) Теперь друго глюк Улыбка)))

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. /***************************************************************************
  4.  *                              index.php
  5.  *                            -------------------
  6.  *   Begin                 : Sunday, Dec 25, 2006
  7.  *   Copyright          : (C) 2006 vowik.ru
  8.  *   E-Mail                : support@vowik.ru
  9.  *
  10.  *
  11.  ***************************************************************************/
  12. // Загрузка общей конфигурации
  13. include "config.php";
  14. $copyright = "n<p align="center"><font size="1"><a target="_blank" href="http://cms.vowik.ru/">VowikEasyCMS© - $version</a></font></p>";
  15.  
  16.  if ( !isset( $_GET["page"] ) )  
  17.      $page = 1; // главная страница сайта
  18.  else
  19.      $page = $_GET["page"];
  20.      
  21.  if ( !isset( $_GET["style"] ) )  
  22.      $style = "default"; // шаблон по умолчанию
  23.  else
  24.      $style = $_GET["style"];
  25.      
  26.  // Читаем содержимое файла шаблона в переменую
  27.  if( is_file( "./templates/$style/index.tpl" ) )
  28.  {
  29.      $template = file_get_contents( "./templates/$style/index.tpl" );
  30.  }
  31.  else
  32.  {
  33.      $template = "./templates/defult/index.tpl";
  34.  }
  35.  
  36.  // Получаем содержимое полей шаблона (в нашем случае поле всего одно)
  37.  if( is_file( "./$page_name/".$page.".txt" ) )
  38.  {
  39.      $field = file_get_contents( "./$page_name/".$page.".txt" );
  40.  }
  41.  else
  42.  {
  43.      $field = "./$page_name/main.txt";
  44.  }
  45.  
  46.  // "Наполняем" поля шаблона содержимым
  47.  if ( !empty( $template ) and !empty( $field ) )  
  48.  {
  49.      $html = str_replace( "{field}", $field, $template );
  50.  }
  51.  else
  52.  {
  53.      $html = "Ошибка, проверьте параметры!";
  54.  }
  55. echo $html;
  56. echo ("$copyright");
  57. ?>
  58.  


И собственно шаблон
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4. <title>VowikEasyCMS</title>
  5. </head>
  6. <body bgcolor="#C0C0C0" text="#000000">
  7. <p align="center">{field}</p>
  8. </body>
  9. </html>
  10.  


Так вот.. глюк следующий... в шаблоне вместо {field} выводится "./text/main.txt"

Что за глюк Улыбка))\n\n(Добавление)
ВСЕ, ИСПРАВИЛ Улыбка
 
 Top
evgenijj
Отправлено: 25 Декабря, 2006 - 19:50:40
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Я так понимаю, идею ты уловил. str_replace не лучший вариант, лучше использовать шаблонизатор типа Smarty
http://smarty.php.net/manual/ru/
 
 Top
Nemo
Отправлено: 26 Декабря, 2006 - 08:33:09
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Дек. 2006  
Откуда: Москва


Помог: 0 раз(а)




Все, сделал... результат там же ;)

Тему ф топку Улыбка)))\n\n(Добавление)
Не, смарти для меня темный лес... пока пусть так работает Улыбка))))

Огромное спасибо за помощь Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Наработки по собственным проектам »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB