Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Админ интерфейс для редактирования прайса на странице. (http://forum.oszone.net/showthread.php?t=31225)

Jekamajor 16-04-2004 03:09 214156

Как можно осуществить автоматическое изменение прайса на веб-странице, состоящего из таблиц и ячеек, путем редактирования на другой странице специальной формы.
То есть чтобы изменить содержимое ячеек прайса, мы переходим, например, по определенной ссылке, вводим пароль и изменяем нужные цифры, затем нажимаем сохранить и в результате эти изменения сохраняются в прайсе. Может нужно какой скрипт написать... в каком формате должна быть сама страница с прайсом? php или shtml?
Если можете помогите, если можно, хотя бы пример кода для изменения одной ячейки. Спасибо!

Prisoner 16-04-2004 03:46 214157

Скажем тот же MS Excel умеет сохранять табличку (односложную, то есть само тело прайса, без всяких наворотов вроде шапки с картинкой и адресом) в формате csv - там строки это строки, а вот разделители ячеек скажем символ ;. Таким образом надо написать скрипт который будет на основе разбора такого файла генерировать страничку с прайсом. Файл можно заливать вручную или написать маленький интерфейс защищенный паролем.

Jekamajor 16-04-2004 14:32 214158

А вот допустим кусок кода из уже готовой станицы .shtm, который когда-то генерировался каким-то скриптом. Я просто в этом слабо понимаю :( и хотелось бы узнать, (если из приведенного кода ниже видно) что использовалось для генерирования вот этого фрагмента кода таблицы с прайсом.
Вот эти вот переменные или что это x:str, потом слова между символами <!--  и  -->. Это к чему? Просто нужно разобраться как генерировался на этой странице прайс...
Код:

 Сначала вот это:
<!-- #BeginEditable "(:%3E4 ?5@54 BM3%3E%3C HTML)" --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- #EndEditable --><HTML><!-- InstanceBegin template="/Templates/template.dwt" codeOutsideHTMLIsLocked="false" -->
<HEAD>
<!-- InstanceBeginEditable name="doctitle" -->
<TITLE>???????? ??????? - ????</TITLE>
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->


Потом вот это:
<table x:str border=1 cellpadding=0 cellspacing=0 width=566 style='border-collapse:
 collapse;table-layout:fixed;width:406pt'>
                      <col class=xl24 width=152 style='mso-width-source:userset;mso-width-alt:5558;
 width:114pt'> <col class=xl24 width=25 style='mso-width-source:userset;mso-width-alt:914;
 width:19pt'> <col class=xl24 width=29 style='mso-width-source:userset;mso-width-alt:1060;
 width:22pt'> <col class=xl24 width=21 style='mso-width-source:userset;mso-width-alt:768;
 width:16pt'> <col class=xl24 width=28 style='mso-width-source:userset;mso-width-alt:1024;
 width:21pt'> <col class=xl24 width=21 style='mso-width-source:userset;mso-width-alt:768;
 width:16pt'> <col class=xl24 width=27 style='mso-width-source:userset;mso-width-alt:987;
 width:20pt'> <col class=xl24 width=22 style='mso-width-source:userset;mso-width-alt:804;
 width:17pt'> <col class=xl24 width=25 style='mso-width-source:userset;mso-width-alt:914;
 width:19pt'> <col class=xl24 width=21 style='mso-width-source:userset;mso-width-alt:768;
 width:16pt'> <col class=xl24 width=30 style='mso-width-source:userset;mso-width-alt:1097;
 width:23pt'>
                      <tr class=xl139 height=18 style='mso-height-source:userset;height:13.5pt' bgcolor="#CCFFCC">
                        <td height=47 class=xl129 style='height:13.5pt' width="171">
                          <font face="Arial, Helvetica, sans-serif" size="2">?????
                          - ????????????<span
  style='display:none'>?:</span></font></td>
                        <td colspan=2 class=xl130 style='border-right:.none' solid black;border-left:
  none' height="47">  


mar 16-04-2004 16:06 214159

это не скрипт, это статический html, полученный путем отдаленной гибридизации страницы, сгенерированной word-ом (mso-width-source:userset;mso-width-alt:914) и dreamwiever-а (директивы #BeginEditable)

я бы использовала либо php (скажем phplib)  шаблоны и вставки на на php, если надо все это счастье вводить из броузера, либо, как предложил Prisoner - csv, причем можно просто злобно и цинично одеть его текс тегами pre :)

Jekamajor 16-04-2004 19:08 214160

mar
Правильно, не скрипт! Я вот и хотел узнать как генерируется это файл html.
А на счет шаблонов Вы что имели ввиду? готовый скрипт на php? Его можно найти в интернете?

Prisoner 17-04-2004 04:29 214161

А как получают электроэнергию? Правильно, различными способами. Так и тут. Можно с помощью различных WYSIWYG редакторов или применяя языки программирования (почти какие угодно). Самое главное чтобы на выходе был корректный html код. Например - perl, php, c. В вашем случае mar углядела применение редакторов MS Word и DreamWiever.
Что касается шаблонов, то это опять-таки аналогия реального мира - постоянные куски html кода страницы (шапка, подвал и прочее), а за вывод динамического содержимого (в вашем случае иногда меняющиеся данные прайс-листа) отвечают те или иные генераторы html кода. К примеру, php.

Jekamajor 22-04-2004 14:07 214162

С этим вопрос уже улажен.
Prisoner, спасибо, что всегда помогаете дельными советами.

А мой очередной вопрос такой:
Подскажите пожалуйста как можно сделать, чтобы скрипт определил, если
нажали на одну ссылку, то включать, допустим, файл text1.txt, а если
на другую, то, допустим, text2.txt
2 ссылки - это допустим:
<?=$PHP_SELF?>?module=text1 *и *<?=$PHP_SELF?>?module=text2 на одной
странице

Ну что-нибудь типа:
<?
if(!isset($HTTP_GET_VARS['module']) )
{
* * * *include("text1.txt");
} else...
?>
Хотя это конечно же не правильно :)

То есть страница одна и в зависимости от того, на какую ссылку нажмет человек, на эту страницу выведется text1.txt или text2.txt при помощи включения include

Речь идет, конечно же о php



[s]Исправлено: Jekamajor, 14:13 22-04-2004[/s]

Jekamajor 22-04-2004 22:59 214163

Кому интересно, я нашел решение:
if(isset($_GET['module']))
{
   if($_GET['module']=='text1')
   {
      include('text1.txt');
   }else if($_GET['module']=='text1')
   {
      include('text1.txt');
   }
}

Prisoner 23-04-2004 03:52 214164

Jekamajor
Подобная проблема обсуждалась тут. Что разобрались - гуд, рад за вас. А за спасибо - спасибо :).
Однако в вашем коде вложенное условие проверяет тоже самое, что и внешнее да и реакция такая же.
Кроме того можно написать и так:
Код:

if (@$_GET['module'] == 'text1')
  {
    include_once('text1.txt');
  }

Собачка предотвратит вывод сообщения о неверном индексе массива, если в скрипт не будет передан параметр module.

Jekamajor 23-04-2004 11:22 214165

Да поправляюсь:
if(isset($_GET['module']))
{
* if($_GET['module']=='text1')
* {
* * *include('text1.txt');
* }else if($_GET['module']=='text2')
* {
* * *include('text2.txt');
* }
}

Забыл циферки поменять. Ну и конечно можно проверять не только 2, но и больше ссылок ;) else if else if else if :)
Но почему-то когда я убирал внешнее условие, скрипт не работал...

[s]Исправлено: Jekamajor, 11:30 23-04-2004[/s]


Время: 12:05.

Время: 12:05.
© OSzone.net 2001-