Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
organic 09.09.2003 15:35
Миша, поверьте, я ни в коем случае не хочу отнимать Ваше время@USE /classes/gbook.p @main[] ^body[] @dbconnect[code] ^connect[$SQL.connect-string]{$code} @body[] $response:expires[^date::now[]] <html> <body> ^body_content[] </body> </html>/xlinks/index.html
@body_content[] $gb[^gbook::load[]] ^gb.show_messages[]/xlinks/add.html
@body_content[] $gb[^gbook::load[]] ^gb.show_form[] ^gb.test_and_post_message[]/xlinks/delete.html
@body_content[] $gb[^gbook::load[]] ^gb.show_and_delete[]
@CLASS xlinks # инициализация @load[] ^MAIN:dbconnect{ $external_links[^table::sql{ SELECT id, url, title, comment, date FROM xlinks ORDER BY id ASC } ] } $date[^date::now[]] # если существует переменная $external_links то отображаем все содержимое базы # иначе Ссылок нет # происходит сие в корневом документе: # /xlinks/ # $xl[^xlinks::load[]] # ^xl.show_links[] # @show_links[] ^if($external_links){ ^external_links.menu{ <dl> <dt>${external_links.id}. <a href="$external_links.url">$external_links.url</a></dt> <dd>Название: <b>$external_links.title</b></dd> <dd>Описание: $external_links.comment</dd> </dl> }[<hr>] }{ Ссылок нет! } # показываем форму # сам обрабатывающий скрипт в другом документе action="do.html" # с целью не передавать повторно скрипту данные при релоаде страницы # /xlinks/add.html # $xl[^xlinks::load[]] # ^xl.show_form[] # @show_form[] $date[^date::now[]] <table border="0" cellpadding="4" cellspacing="2"> <form method="POST" action="do.html"> <tr> <td>URL (255 символов):</td> <td><input name="url" value="http://" size="50"></td> </tr><tr> <td>Заголовок (255 символов):</td> <td><input name="title" size="50"></td> </tr><tr> <td valign="top">Описание:</td> <td><textarea cols="50" name="comment" rows="5"></textarea></td> </tr><tr> <td><input type="submit" value="OK" name="post"> <input type="reset" value="Cancel"></td><td> ^;</td> </tr> </form> </table> # здесь начинаются извороты # # # # # # @test_and_post_link[] ## Проверяем есть ли такой УРЛ? # при существовании переменной $external_links нечинаем перебирать столбец из базы # при совпадении значения из базы и передаваемого из формы # зажигаем флаг (если правильно использую термин) # $est[1] - есть запись в базе # $est[0] - нет записи в базе ^if($external_links){ ^external_links.menu{ ^if("$external_links.url" eq "$form:url"){ $est[1] }{ $est[0] } } } # При существовании передаваемых данных из формы, проверяем (косо и криво) заполнены ли поля ^if(def $form:post){ ^if("$form:url" ne "http://" && "$form:title" ne ""){ # если переменная $est == 0 значит записи в базе нет # соединяемся и вставляем ряд в таблицу ^if($est == 0){ ^MAIN:dbconnect{ ^void:sql{ INSERT INTO xlinks ( url, title, comment, date ) VALUES ( '$form:url', '$form:title', '$form:comment', '${date.year}-${date.month}-${date.day}' )} } # После добавления ряда в таблицу возвращаемся в корень # где отображаются все записи из базы $response:refresh[ $.value[0] $.url[/xlinks/] ] }{ # Если переменная $est не равна 0, предполагаем, что запись уже есть, о чем и сообщаем Ссылка уже есть! } }{ # Если не заполнены поля - напоминаем Поля <b>url</b> и <b>title</b> обязательны для заполнения!<br> } } # # Сие происходит в документе на который указывает action формы # do.html # $xl[^xlinks::load[]] # ^xl.test_and_post_link[]В конечном, итоге код вообще перестал работать...