W-gent and ObBot / Архив / Архив публикаций / Скрипт бронирования мест для турагентств

Скрипт бронирования мест для турагентств


Страница:  1 2 3
Редирект с YouTube shorts на страницу видео
Быстро, дёшево и качественно
Правильный генератор паролей
Language hack для любой CMS
Сложный парсер даты и времени начала и окончания мероприятия, написанных человеком
Простое решение парадокса Ферми
Thank God For The Bomb
Неверные загадки
Распахивание больших картинок на jQuery

Написан скрипт бронирования мест для работающих на нашем движке сайтов туристических агентств. Скрипт рассчитан на одновременную работу с ним нескольких менеджеров из нескольких офисов, расположенных в различных городах. Гарантируется корректное разрешение коллизий, возникающих при попытках одновременного бронирования одного и того же места разными менеджерами.

Live Demo бронирования мест предусматривает 3 различных уровня доступа:

Скрипт изначально писался под CMS LiveTree, поэтому для запуска в качестве отдельного ПО его придётся несколько переработать.

Возможна установка скрипта "Бронирование мест" на Ваш сайт вместе с CMS LiveTree в качестве раздела Вашего сайта с полным копированием Вашего дизайна. Пример такой работы (по заказу турагентства "Регион-Тур") можно посмотреть здесь, стоимость работ составит 6 тысяч рублей, заказать установку?

 

Ниже исходный код скрипта публикуется as is.

 

<?php /* Файл /script/mesto.php*/
chdir("..");
require_once("functions.php");
require_once("core.php");
chdir("script");
$ret=param("ret");
if($ret){ //if скрипт был вызван отдельно $locked=false; $parent=param("parent"); $parentIn=getName(getParent($parent)); $parentInType=getObjType(getParent($parent));

if($parentInType=="Менеджер") $locked=$parentIn;

if(!$locked) $locked=locked($parent);
 if($locked) {
?><META http-equiv=Content-Type content="text/html; charset=windows-1251">
Забронировать места невозможно потому, что автобус <? echo getName($parent); ?> сейчас редактируется пользователем "<?=$locked?>"<br />
Чтобы не потерять набранные данные, дождитесь, когда "<?=$locked?>" закончит редактирование,<br />
затем нажмите клавишу "F5" на клавиатуре и ответьте утвердительно на запрос системы о повторной отправке данных.
<?
  exit;
 } // if locked
 $thisName=param("thisName");
 $alsoName=param("alsoName");
 if( !isFree($parent, $thisName) || !isFree($parent, $alsoName) ) { ?><META http-equiv=Content-Type content="text/html; charset=windows-1251"> Увы! Как минимум одно из запрошенных Вами мест уже забронировано.<br /> <a href="<? echo getHref($parent) ?>">Вернуться к бронированию мест в автобусе "<? echo getName($parent); ?>"?</a> <? exit; } // if автобус заблокирован
// иначе:
 occupy($parent, $thisName);
 if($alsoName!="") occupy($parent, $alsoName);
 ob_end_clean(); header("Location: ".$ret); exit;
} //if скрипт был вызван отдельно и надо вернуться в точку вызова

// $ID определяется в processTemplate
$parent=param("id");
$mesto=param("mesto");
if($mesto=="") {echo "Ошибка в вызове скрипта mesto.php: не указан параметр "mesto" (т.е., собственно номер места)."; exit;}
if( isFree($parent, $mesto) ) { if( !isOwner($parent) || locked($parent) ) { ?> <font color="#00a0b0">Место № <b><? echo $mesto; ?></b> свободно.</font> <? }
 else { ?> <form action="script/mesto.php" method="POST"> <input type="hidden" value="<?=$parent?>" name="parent" /> <input type="hidden" value="/bus/id<?=$parent?>.htm" name="ret" /> <input type="hidden" value="<?=$mesto?>" name="thisName" /> Бронировать&nbsp;место <font color="#00a0b0"><b><? echo $mesto; ?></b></font><br /> <textarea name="desc" class="subminput" style="width:94%;height:40px;"></textarea><br /> а&nbsp;также&nbsp;<input type="text" name="alsoName" class="subminput" style="WIDTH: 20px; COLOR: #00a0b0;">&nbsp;<input class="subminput" style="WIDTH: 30px; COLOR: #ffffff; BACKGROUND-COLOR: #00a0b0; border:0;" type="submit" value="Ok" /> </form> <? } // else владелец может забронировать
} //if свободно
else { $thisID=db1("ID", CATEGORIES, "parent=".$parent." AND name='".$mesto."'"); $desc=db1("description", CATEGORIES, "parent=".$parent." AND name='".$mesto."'"); if(!isOwner($thisID)) { ?><font color="#FF3333">Забронировано</font><? }
 else { ?> <b><a href="edit.php?id=<?=$thisID?>&ref=<? echo getHref($parent); ?>" title="Редактировать информацию"><b><?=$mesto?></b></a></b> <i>(<? echo db1("owner", CATEGORIES, "parent=".$parent." AND name='".$mesto."'"); ?>)</i> [<a href="del.php?id=<?=$thisID?>" title="РАЗБРОНИРОВАТЬ МЕСТО" style="text-decoration:none;"><font color="#FF0000">X</font></a>]<br /> <? echo $desc; } // else владелец видит информацию
} //else занято
?>