домой  почта (495) 543-35-35 (многоканальный) http://tour.yandis.ru/
e-mail: tour@yandis.ru
     Болгария
     Турция
     Египет
     Тунис
     Италия
     Хорватия
    Сочи
    Анапа
    Геленджик
    Евпатория
 
О компании Туры по Миру Туры по России Шоп-Туры Загранпаспорт и виза Контакты
 
  ТУНИС  

Отдых в Тунисе
Спрака о стране  
Полезная информация  
Интересные факты  
История  
Города туниса  
Курорты туниса  
Особенности отелей  
Экскурсии  
Национальная кухня  
Шопинг  
Талассотерапия  
полезная информация

  

 
   

Полетное время

Полетное время до Туниса составляет около 4 часов. Причем, в силу постоянной розы ветров на маршруте полета, перелет из Москвы в Тунис занимает обычно в среднем около 4 часов 20 минут, а обратный перелет около 4 часов ровно. Основные международные аэропорты прибытия рейсов "Аэрофлота" и чартерных компаний из России - аэропорт TUNIS-CARTAGO (г. Тунис) и аэропорт HABIB BURGUIBA (г. Монастир).

Разница во времени с Москвой в летний период составляет минус 3 часа, в зимний - минус 2 часа. Это связано с тем, что Тунис не осуществляет ежегодного перехода на зимнее время.

Валюта

Национальная валюта Туниса - тунисский динар, который обозначают буквами DT. В одном динаре - 1000 миллимов. Существуют бумажные купюры - 5, 10, 20 и 30 динаров. Монеты, имеющие хождение в Тунисе, обладают достоинством в 1 динар, 1/2 динара, 100, 50, 20, 10 и 5 миллимов. Почти не попадаются монеты в 1 миллим, которые стали такой редкостью, что некоторые тунисские магазины иногда в рекламных целях объявляют, что за 1 миллим продадут любой товар, выставленный на распродажу. Купюры одинакового номинала могут быть разного образца и отличаться по размеру и цвету.

Один тунисский динар
Один тунисский динар.

Пять тунисских динаров
Пять тунисских динаров.

Обмен валюты

Курс обмена на протяжении 2000 года колебался в пределах от DT 1.35 до DT 1.45 за доллар США. Во всех пунктах обмена, даже в аэропорту, курс обмена одинаковый. Твердая валюта меняется на тунисские динары на стойке администрации всех отелей и во всех отделениях банков. Выданная квитанция при этом обмене является основным документом для обратного обмена тунисских динаров на иностранную валюту. Причем, обратный обмен производится только в аэропорту и только при наличии квитанции первичного обмена. Поэтому рекомендуется сохранять квитанции об обмене валюты до окончания поездки. В Тунисе в обиходе только местные деньги, хождение иностранной валюты запрещено.

Климат

Климат на большей части Туниса мягкий субтропический, средиземноморский (напоминает климат южной Испании), на юге - тропический. Летом на курортах Туниса обычно не бывает изнуряющей жары, а зима мягкая, без резких перепадов температуры. Наибольшее количество осадков (1000-1500 мм в год) выпадает зимой, в остальное время обычно безоблачная погода.

Таблица средних температур по месяцам в Монастире:
  Янв Фев Март Апр Май Июнь Июль Авг Сент Окт Нояб Дек
Воздух днем 17 15 20 23 25 29 30 33 25 20 18 18
Воздух ночью 8 6 10 13 16 21 23 23 20 16 12 10
Вода 12 12 15 20 21 22 24 24 23 20 17 15

Текущая погода в Тунисе по данным Московского МетеоБюро.


Кредитные карточки

Кредитные карточки большинства мировых банковских систем принимаются к оплате за услуги в большинстве отелей: VISA, AMERICAIN EXPRESS, EUROCARD. Однако, перед выездом в Тунис вам рекомендуется заранее проконсультироваться в отделе обслуживания клиентов вашего банка, будет ли приниматься ваша карточка как платежное средство за рубежом.


Таможня

Таможня в Тунисе довольно либеральная по отношению к туристам. При выезде из страны багаж туристов не досматривают. Вывозить из страны можно практически все. Исключением являются национальная валюта, животные и предметы старины и искусства. Крупные суммы в иностранной валюте при въезде в страну необходимо декларировать, чтобы при выезде не возникло проблем с таможней.


Телефон

Самый неэкономичный способ звонить домой - это из своего номера в отеле или с переговорного пункта отеля. Таким образом звонок обойдется вам - в 4-5 долларов США за минуту. Это больше в 4 раза, чем вы заплатите, звоня из таксофона. В Тунисе все таксофоны имеют выход на международную линию (для этого нужно набрать "00"). Звонок в Россию из таксофона обойдется вам примерно в DT 1 за минуту. Переговорные пункты в городе легко узнать по вывеске TAXIPHON INTERNATIONALE, таксофоны имеют голубой цвет. Пункты работают с 8.00 до 22.00. Автоматы работают от монет достоинством 1 динар для международных переговоров и 1/2 динара и 100 миллимов для внутренних переговоров. Размен денег можно произвести у работника переговорного пункта. Для переговоров с Россией вам понадобится примерно 3-5 динаров в монетах достоинством 1 динар. Снимите трубку, опустите один динар в монетоприемник, дождитесь длинного сигнала, и наберите код: 00 (международная линия) - 7 (Россия) - код вашего города (Москва 095, Санкт-Петербург 812, и т.д.) - номер абонента. В ходе разговора следите за дисплеем, на котором будет указана сумма, которую вы опустили в автомат, в процессе разговора она будет уменьшаться. Вы сами увидите, когда надо будет заканчивать разговор или опустить монету.

Уровень преступности

Тунис в смысле уровня преступности - очень спокойная страна. Туристы могут здесь чувствовать себя в полной безопасности, передвигаясь даже глубокой ночью по городу. Преступлений с применением насилия здесь почти не бывает, вокруг достаточно много полицейских, к которым всегда можно обратиться за помощью.

К сожалению, вместе с благами европейской цивилизации Тунис позаимствовал и ее пороки. Несмотря на строгие установления Корана, воровство все-таки существует в Тунисе, хотя и не в таких размерах, к в Европе. В местах скопления народа все-таки желательно принимать обычные меры безопасности, чтобы не лишиться кошелька или бумажника. В "медине" некоторых тунисских городов становятся распространенным типично "европейский" способ похищения дамских сумочек - с проезжающего на большой скорости мотоцикла или мотороллера. Исходя из опыта, российским туристам в Тунисе также следует остерегаться "пляжного" воровства - возможна пропажа личных вещей и ценностей во время купания.


Полиция

В Тунисе есть полицейские подразделения нескольких типов. Обычные полицейские одеты в серую униформу, и как правило сносно владеют французским языком. Есть еще жандармы, которые одеты в форму цвета хаки, и их задача сводится в основном к патрулированию сельских дорог. Есть также Национальная гвардия - что-то вроде военной полиции.

Наркотики

К борьбе с незаконным оборотом наркотиков Тунис подходит очень жестко. Употребление наркотиков карается в Тунисе тюремным заключением от 5 лет, распространение - от 10 лет. Поблажек иностранным гражданам не делается.

Сейф

Администрация отелей не несет ответственности за ценности и документы, оставленные вами в номере. Следовательно, самым разумным представляется держать их в сейфе, который, как правило, находится на стойке администрации. Аренда сейфа в сутки стоит как правило DT 1 - 1,5. Обычно сейфы закрываются на два ключа, один из которых находится у портье, а другой выдается туристу. Крайне нежелательно терять ключ, так как дубликата нет и сейф придется взламывать. Соответственно, администрация отеля удержит чувствительный штраф за установку нового замка и ремонт сейфа (примерно DT 80).

Режим работы учреждений. Отделения банков с понедельника по пятницу обычно с 08:00 до 14:00, а в зимнее время еще и с 15:00 до 17:00. Магазины работают в будние дни зимой - с 09:00 до 12:00 и с 15:00 до 19:00, летом - с 08:00 до 12:00 и с 16:00 до 20:00. Во время мусульманского праздника Рамадан обычно устанавливается особый режим работы: с 09:00 до 13:00 и с 19:00 до 21:00. В музеях обычно выходной день - понедельник. В период с апреля по сентябрь музеи, как правило, открыты для посетителей с 09:00 до 16.30. Некоторые музеи закрываются в полдень на трехчасовой перерыв.

Информационные туристические центры могут сослужить вам весьма полезную службу во время отдыха в Тунисе. Здесь ответят на все ваши вопросы, и совершенно бесплатно выдадут карты-схемы и буклеты с описаниями курортов (к сожалению, пока не на русском языке). Такие центры есть на всех курортах и во всех крупных городах Туниса:

В городе Тунис: 1, Avenue Mohammed V - Tunis, тел. (216-1) 341-077. В Хаммамете: Avenue Habib Bourguiba, 8050 Hammamet. тел. (216-2) 280-423. В Монастире: Quartier Chargua, 5000 Monastir, тел. (216-3) 461-960.

Вода

Жители Туниса не без оснований гордятся своей экологией и любят в разговоре с иностранцами похвастаться тем, что в Тунисе можно пить воду из под крана. Большинство тунисцев действительно именно так всегда и делает, однако советуем не ставить эксперименты над собственным здоровьем и не следовать примеру местных жителей. Из-за непривычного состава воды, возможны как легкие кишечные расстройства, так и более серьезные заболевания. Местная минеральная вода имеет прекрасные вкусовые качества и стоит не дорого. Самой лучшей минеральной водой тунисцы считают воду "SAFIA", бутылка которой стоит DT 0.500 в магазине и от DT 0.800 до DT 1.500 в ресторане.

Алкогольные напитки тунисского производства. Производство и продажа крепких спиртных напитков и пива является исключительно монополией государства. Тунисское спиртное - неплохого качества, хотя не отличается большим разнообразием ассортимента:

BOUHA ("буха", ударение на первом слоге) - финиковая водка крепостью 40 градусов. Тунисцы, изучавшие русский язык, любят шутить, что русское слово "бухать" произошло от названия именно этого напитка. Стоимость около DT 20. TABURINE ("табурин") - финиковый ликер крепостью 43 градуса, которым тунисцы обычно завершают трапезу. Стоимость DT 35 - 45. CELTIA ("сельтия") - единственный производимый в Тунисе сорт пива, весьма среднее по своим вкусовым качествам. Стоимость DT 0.9. Естественно, в барах и ресторанах напитки продаются с наценкой.

Как приобрести в Тунисе алкоголь. Спиртные напитки местного и иностранного производства подаются во всех барах и ресторанах. Помимо этого, они свободно продаются в государственных магазинах. В Тунисе работает две сети государственных супермаркетов: MONOPRIX и GENERAL MAGAZINE. По крайней мере по 3-4 магазина этих цепочек есть на каждом курорте и в каждом городе. Открыты эти супермаркеты с 9.00 до 13.00 и с 16.00 до 18.45. В летнее время (июль - август) они работают с 7.30 до 15.00.

Общие правила проживания в отеле

В отелях не разрешается:
  • Приносить на территорию отеля продукты питания и напитки, приобретенные вне отеля (из перечня отелей МИГ ВОЯЖ особенно строго это правило действует в отелях цепочки ABOU NAWAS, отелях SOL EL MOURADI, ROYAL SALEM, HASDRUBAL, HANNIBAL PALACE, ALYSSA).
  • Употреблять в барах и ресторанах напитки и продукты, принесенные с собой.
  • В отелях категории 4* и 5* приходить на ужин в шортах или пляжной одежде.
  • Выносить еду из ресторана.
  • Выносить банные полотенца из номера на пляж и к бассейну.
  • Приводить в номер лиц, не проживающих в данном отеле.
  • Находится в ресторане, холле отеля, фитнесс-центре в мокрых купальных костюмах.
  • Конечно, иногда администрация отелей смотрит на эти правила "сквозь пальцы", все-таки вы их гости и приехали к ним отдохнуть. Но это не повод, чтобы злоупотреблять их гостеприимством. Если вы приобрели в городе фрукты или напитки, уберите их в пакет. Никто проверять ваши сумки не будет, а употреблять все лучше в номере. С другой стороны вы имеете полное право придти не территорию другого отеля, кроме отелей системы "All inclusive", и посидеть в баре или ресторане, посмотреть выступления аниматоров, потанцевать на дискотеке. Более подробную информацию о вашем отеле вы можете получить у стойки администрации отеля или у представителей принимающей стороны.


Почта

Для отправки писем или открыток в Россию необходимо приобрести марку стоимостью 650 миллимов. Марки и конверты продаются на почте, кроме того конверты можно приобрести в отеле, в магазине сувениров, а так же в любой лавочке, где продаются книги, открытки, газеты. Почтовые ящики есть около стойки портье в каждом отеле, на почте и на переговорных пунктах. Почтовое отправление из Туниса до Москвы идет примерно 2 недели.

Питание в отеле

От отдыхающих в Тунисе редко услышишь серьезные жалобы на питание, предоставляемое в отелях. Даже отели 2-3* предоставляют весьма качественный пансион с неплохим выбором блюд.

В низкий сезон при слабой заполняемости в некоторых небольших "малозвездных" отелях ужин может предлагаться по меню. Как правило же повсеместно в отелях Туниса на завтрак и ужин накрывается "шведский стол".

Некоторые отели (например, цепочка EL HANA и MARHABA) на ужин устраивают "шведский стол" холодных и горячих закусок и салатов, а основные блюда и десерты подают по меню с возможностью выбора из 4-5 блюд. Меню публикуется заранее, причем у входа в ресторан устраивается "витрина" - выставляются основные блюда с номерами, чтобы вам при заказе было достаточно назвать официанту номер. Если в отеле существует такая система, то в описании отеля вы обязательно найдете соответствующую информацию об этом.

Многие отели устраивают "тематические" ужины, меняя кухню каждый вечер: интернациональная, итальянская, дальневосточная и т.д.. Особо "продвинутые" отели ни разу не повторяются на протяжении 14 дней. Некоторые отели устраивают "тематические" вечера только 2 раза в неделю, но всегда имеют на своем "шведском столе" уголок итальянской и тунисской кухни.

Почти во всех отелях в главном ресторане существует следующая система размещения гостей по столикам: в первый день вы являетесь в ресторан и передаете метрдотелю карточку, выданную вам при поселении в отель. Метрдотель показывает вам свободный столик, который закрепляется за вами на все время проживания в отеле. При необходимости, вы всегда можете попросить метрдотеля поменять столик. Если вы путешествуете в единственном числе, да еще в высокий сезон, то вряд ли вам достанется столик, за которым вы будете сидеть один - к вам наверняка кого-нибудь подсадят.

Напитки за ужином, в соответствии с мировой практикой, вы должны будете оплачивать дополнительно.

Время работы основного ресторана в отеле обычно следующее: завтрак - 6.00 - 9.30, ужин 19.00 - 21.30.


Питание в ресторанах

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

В кафе-закусочных, где питается в основном местное население, можно перекусить за DT 1.5 - 3. В недорогом качественном кафе в центре города можно прекрасно пообедать за DT 6-8 с тремя-четырьмя переменами блюд. Обед в хорошем ресторане обойдется в DT 10-12. А ланч в дорогом, "трех-вилочном" ресторане будет стоить DT 15-20.


Пляжи

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

Обязательно нужно знать, что в подавляющем большинстве отелей Туниса лежаки и зонтики являются платными - DT 1 - 1.5 в день. Также в большинстве отелей даже за деньги не предоставляются пляжные полотенца (!), а служащие отелей следят за тем, чтобы отдыхающие не пользовались полотенцами, взятыми из номера. Вывод для туристов должен быть один: пляжные полотенца необходимо брать с собой в поездку из дома.

Общественный транспорт

Система общественного транспорта весьма развита и удобна Тунисе.

Железнодорожные поезда связывают все основные города Туниса, стоимость билета составляет DT 3-4 на самых длинных маршрутах. Так называемое тунисское "метро" - удобный вид надземного транспорта, который правильнее было бы назвать "электричкой". Поезда "метро" ходят по маршруту Сусс - Монастир - Магдия каждые 15-25 минут, стоимость билета составляет от DT 0.2 до DT 1 в зависимости от пункта назначения. Расписание движения обычно вывешивается рядом со стойкой администрацией отеля.
Туристические автобусы - курсируют между ближайшими курортами, стоимость билета составляет DT 0.5 - 1 за поездку.
Туристический поезд (bus touristique) - это автомобиль, замаскированный под паровоз, к которому прицеплено 3-4 полуоткрытых вагончика. Туристические поезда связывают туристические зоны с близлежащими городами. Расписание движения туристического поезда также находится на стойке администрации. Стоимость проезда - DT 2.
"Тук-тук" - новый необычный вид транспорта, который только-только появился на некоторых курортах: это мотоцикл с полуоткрытым пассажирским салоном на 6-8 человек. Стоимость проезда DT 4.

Такси

Такси является в Тунисе относительно недорогим видом транспорта. Здесь существуют такси различных видов:
  • Междугородные маршрутные такси с красной полосой служат исключительно для дальних пассажирских перевозок. В крупных городах их стоянки находятся у вокзалов и на центральных площадях. Отправление такого такси происходит после того, как наберется достаточное количество пассажиров (5-6). Добраться из столицы до Монастыря на таком такси обойдется вам в сумму DT 5.
  • Областные такси с синей полосой - курсируют в пределах одной области и между ближайшими городами.
  • Желтые городские такси - те, с которыми вам чаще всего придется иметь дело. Вызывать такое такси можно через стойку администрации или остановить прямо у въездных ворот отеля. Часто свободные таксисты проезжая мимо туристов пытаются обратить на себя внимание гудком клаксона или миганием фар. Водителю достаточно сообщить название вашего отеля или другого места, куда надо добраться, и он вас туда отвезет. Оплата производится только по счетчику за всю машину по окончании поездки. Такси имеет право брать максимум 4 пассажира. Стоимость посадки - 250 миллимов, 1 км в пути обходится примерно в 250 миллимов. С 21.00 до 5.00 утра стоимость проезда на такси взимается по повышенному тарифу +50 %. Так, чтобы добраться из Сусса в Монастырь днем, вам придется потратить DT 5-6. Из Сканеса или Порт Эль Кантауи в Сусс - DT 2.5 - 3.

Индустрия отдыха и развлечений в Тунисе достаточно развита. Здесь есть свои зоопарки, парки аттракционов, луна-парки - хотя и не такие большие, как в Европе (страна-то маленькая!). В Порт Эль Кантауи (Сусс) действует единственный пока в Тунисе аквапарк. Дискотеки, рестораны, ночные клубы, бары имеются на любом курорте без счета. Есть также прекрасные гольф-клубы, школы верховой езды.


Мобильная связь

Мобильная связь в Тунисе появилась относительно недавно (с 1998 года). Однако единственный пока в стране оператор мобильной связи, государственная компания TUNISIA TELECOM (TT), сделала большие успехи в создании соответствующей инфраструктуры. Ретрансляторы имеются не только в крупных, но и во многих небольших городах. Зона покрытия мобильной связи весьма внушительна, так что даже во время экскурсии по южным городам и оазисам в Сахаре большую часть времени вы будете находится в сети. В связи со все еще маленьким количеством абонентов, местная сеть не перегружена. Отмечаются некоторые сбои и задержки в работе SMS (службы коротких сообщений). Почти все ведущие операторы мобильной связи России имеют роуминговые соглашения с TUNISIA TELECOM.


Прокат авто

Прокат авто. В целом считает, что нет никаких противопоказаний против того, чтобы российские туристы брали в Тунисе автомобиль на прокат. Прокат автомобиля обойдется здесь в среднем выше, чем в европейских странах. Это связано с политикой правительства, которое облагает высокими пошлинами ввозимые автомобили, в то время как собственного производства легковых автомашин на территории Туниса не имеется.Стоимость аренды малолитражного авто составит примерно в DT 90 в сутки, если вы воспользуетесь известной системой проката BUDGET, AVIS или EUROCAR. Дисциплина местных водителей на дорогах весьма и весьма высокая, состояние дорог очень неплохое, особенно на севере страны. Особых ограничений на передвижение по стране для иностранцев нет. Не рекомендуется без уведомления офицеров национальной гвардии, да еще в одиночку колесить по дорогам в пустыне на юге Туниса (по соображениям вашей же собственной безопасности).


Справка

Стоимость аренды автомобиля в офисах BUDGET на территории Туниса (в тунисских динарах, курс USD 1 = DT 1.37 на февраль 2001 года):
Тип авто В день,
с лимитом км (до 120 км)
В день,
без лимита км
  За день За км сверх лимита 1-6 дней За неделю Франшиза
Экономичный
Peugeot 106, Fiat Uno
45 0.45 90 560 12 000
Эконом. c кондиц.
Fiat Palio Clim
55 0.55 115 680 14 000
Средний класс:
Renault 19 Europa Renault Kangoo
60 0.60 120 720 16 000
Средний с кондиц.
Renault 19 clim
70 0.70 150 900 20 000
Люкс
Peugeot 406 Renault Megane
85 0.85 190 1140 28 000
Престиж
Mercedes C200 Renault Safrane
100 1.00 240/td> 1440 40 000
Супер Люкс
Mercedes E200 clim
130 1.30 280 1680 55 000
Минивэн
Peugeot Expert
110 1.1 240 1440 40 000


Требования к лицу, арендующему автомашину: Возраст - старше 22 лет. Наличие водительских прав международного образца, выданных более 1 года назад.

Стоимость бензина весьма приемлема и составляет 1 доллар США за 3 литра. Есть платная скоростная автомагистраль Хергла (недалеко от города Сусс) - город Тунис, стоимость проезда по которой для легковых автомобилей составляет DT 0.8. Дорожные пробки в том виде, в каком они существуют в крупных российских городах, в Тунисе начисто отсутствуют даже в столице, транспортный поток радует своей малой концентрированностью ( на 9.2 млн. жителей Туниса приходится в целом менее 1.4 млн. автомобилей). Однако в столице часто наблюдается проблема с парковкой, причем против нарушителей правил парковки дорожная полиция без колебаний использует принудительную эвакуацию на штрафную стоянку.

Правила дорожного движения

Правила движения мало в чем отличаются от российских. Рекомендуется обратить внимание на четыре существенных отличия:
  • При круговом движении (а круговых развязок в Тунисе великое множество) преимущество имеет автомобиль, находящийся на кругу.
  • Ограничения скорости в городе составляют 50, на шоссе 90, а на скоростной трассе 110 км/ч. Дорожная полиция контролирует скоростной режим с помощью радаров. Инспектора дорожного движения в Тунисе непривычно для русских водителей неподкупны и готовы применять меры к нарушителям, не взирая на гражданство.
  • Знак "Стоянка запрещена" в городах имеет бесспорную и непреложную силу.
  • Велики шансы, что ваш автомобиль будет эвакуирован на штрафную стоянку, даже если вы, остановившись в неположенном месте, отошли всего на 15 минут. Выпивка за рулем исключена - можно схлопотать тюремный сок даже если вы не успели совершить ДТП. Вообще, любые нарушения правил караются серьезными штрафами, причем никто не будет делать вам поблажек только потому, что вы - иностранец.


Магазины DUTY FREE

Магазины DUTY FREE работают в Тунисе только в аэропорту, причем оплату покупок можно производить только в иностранной валюте, тунисские динары не принимаются. Не огорчайтесь, если вы вылетаете домой ночным рейсом: очень часто тунисские магазины беспошлинной торговли специально открываются перед вылетом российских рейсов даже ночью: продавцам известна легкость, с которой русские расстаются в DUTY FREE с оставшимися деньгами перед вылетом домой.


Фото- и видео съемка

При всей своей либеральности и терпимости, тунисцы неожиданно строго относятся к фото- и видео съемке военных объектов, государственных учреждений и людей с оружием и в форме. Это иногда становится причиной разочарования для туристов, когда оказывается, что какой-нибудь красивый кадр нельзя "поймать" только потому, что в поле зрения фотокамеры попадает какой-нибудь "важный" объект. Например, на развалинах Карфагена нельзя снимать в северном направлении, где на холме находится резиденция президента Туниса.

При посещении некоторых музее, желающих воспользоваться камерой могут попросить приобрести билет стоимостью в DT 1 на право производить съемку. Впрочем, если вы не будете афишировать свою камеру при входе, то, как правило, сможете снимать внутри совершенно бесплатно, поскольку дальше входа проверка билетов не производится.


Чаевые

В Тунисе свои национальные особенности давания "чаевых". Здесь обычно "чаевые" не включаются в сумму счета за услуги, поэтому желательно и общепринято выражать благодарность обслужившему вас человеку в виде небольшой денежной суммы. "Чаевые" не являются неким жестким тарифом, обязательным к оплате. Давать или не давать - дело сугубо индивидуальное. Однако если вы хотите, чтобы к вам относились со вниманием и теплотой, большими, чем требуют служебные обязанности, желательно соблюдать определенный ритуал. Итак, постараемся обобщить: как, кому и сколько давать "чаевых" в Тунисе:
  • Горничным, убирающим ваш номер нелишне дать за неделю около DT 5. Причем, давать нужно лично в руки. Деньги, оставленные в номере она не возьмет.
  • Официанту в ресторане - сумму около 10 процентов от счета.
  • Носильщику, который принесет ваш багаж в номер - 500 миллимов.
  • Водителям и гидам обслуживающей тунисской компании после экскурсии - DT 3-5 с человека или DT 5-10 за семью, оставляется после экскурсии водителю.
  • Таксистам "на чай" обычно ничего не дается, однако если вы оставите ему сдачу 200-500 миллимов, то он будет весьма признателен.

Еще раз напоминаем, что приведенные цифры имеют сугубо рекомендательный, а не обязательный характер. Чаевые - это ваша благодарность человеку, оказавшему вам услугу (если он того заслуживает), выраженная в денежной форме. Не давайте слишком маленькие чаевые - это обидит человека, лучше уж вообще ни чего не давать, но и не слишком перебарщивайте.

Фрукты и овощи, рынки

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

С небольшими сезонными колебаниями стоимость овощей и фруктов составляет (в DT за один килограмм): бананы 2.5, финики 2, апельсины 1.25, мандарины 0.8, яблоки 2, помидоры 0.4, перец 1.5, картофель 0.4, анис (или "бес-бес") 0.25, груши 1.6.

Очень быстро вы обратите внимание на интересную особенность: стоимость фруктов и овощей одинакова, покупаете ли вы их в лавке на центральном проспекте, на городском рынке или в переулке. Это еще одно проявление контроля государства в экономике. Дело в том, что закупки сельхозпродукции в Тунисе проводятся централизованно через государственные торговые базы, а затем товар распределяется по частным торговцам, которым разрешается торговать только по определенным, установленным государством ценам.

Примерно такая же система торговли принята и на городских рынках Туниса. Вряд ли в мире есть еще какая-нибудь страна, где бы так процветала торговля, а цены на товары, обязательные и одинаковые для всех торговцев, писались бы у входа на рынок. При наличии времени рекомендуется посетить в Тунисе городской рынок (в любом городе они располагаются в центре, рядом с "мединой").


Аптеки

Аптеку в каждом городе можно найти по вывеске PHARMACIE. Работают аптеки с 8:00 до 20:00. Аптека в Тунисе - это больше чем место, где можно приобрести медикаменты. Здесь работают специалисты с неплохим врачебным образованием, которые всегда могут дать вам небольшую консультацию, если ваше заболевание не очень серьезно, сделать укол, померить давление или оказать первую медицинскую помощь. В ночное время и в выходные работают дежурные аптеки.

Сувениры

Если вы хотите привезти из поездки что-нибудь типично тунисское в подарок друзьям и знакомым, то выбор у вас будет не особенно большой. Сувенирные лавки Туниса забиты различными предметами от африканских масок и древнеегипетских статуэток до немецких касок и деталей обмундирования оккупационной армии Роммеля периода Второй Мировой войны. Но собственно тунисских сувениров вы обнаружите немного. По части типичных тунисских сувениров, можно рекомендовать следующее:
  • Из разряда безделиц можно привезти фигурки древних карфагенских богов или бюст карфагенского полководца Ганнибала. Подойдут также карфагенские монеты, весьма правдоподобно обработанные "под старину".
  • Можно порадовать друзей сувенирами, которых полно в любой арабской стране: чеканкой, художественно украшенным кальяном, деревянными фигурками верблюдов.
  • Весьма дорогим подарком может стать ковер ручной работы, сработанный во всемирно известных ковровых мастерских города Кайруан. Стоимость такого ковра от DT 200 и практически до бесконечности - в зависимости от размера и количества узлов на квадратный метр.
  • Прекрасными "съедобными" подарками для друзей будут великолепные тунисские финики, считающиеся лучшими в Северной Африке, или килограмм луковиц аниса (который иногда в шутку называют "африканским яблоком").

Ярмарки

В Тунисе в основных городах по определенным дням проходят оживленные ярмарки, на которых продают свой товар ремесленники и торговцы со всей округи. Здесь можно приобрести изделия народных промыслов, недорогие изделия из кожи, керамику и т.д. График работы ярмарок (с 7.00 до 13.00):

Понедельник: Кайруан
Вторник: Ксар Элель
Среда: Мокнин
Четверг: Хаммамет
Пятница: Магдия, Набель
Суббота: Монастир
Воскресенье: Сус

Праздничные дни.

8 марта - международный женский день. 20 марта - день независимости Туниса. 21 марта - день молодежи. 9 апреля - день памяти погибших за освобождение Туниса. 1 мая - день солидарности трудящихся. 13 августа - день матери.

Выходной день в Тунисе, в отличие от всех остальных мусульманских стран, не пятница, а воскресенье. В субботу у большинства государственных служащих и рабочих - укороченный рабочий день.

В случае заболевания необходимо в первую очередь или при первой же возможности связаться со своей страховой компанией по телефону 24-часовой службы - ассистанс (русскоязычный оператор), чтобы получить инструкции. Телефон указан в вашем медицинском полисе. Затем необходимо поставить в известность представителя принимающий стороны. Все счета, имеющие отношение к вашему лечению необходимо сохранять, чтобы представить по возвращению в страховую компанию. Настоятельно рекомендуется заранее на всякий случай ознакомиться с условиями действия медицинской страховки.

Заранее с условиями действия страховки можно ознакомиться на сайтах самих страховой компании ИНГОССТРАХ.


Информация, взятая с http://tour.yandis.ru/ ссылка на наш сайт обязательна.

Горящие путевки
Турфирма Яндис
 
Список городов Туниса.
  название города    
Магдия    
Монастир    
Сусс    
Хаммамет    



Документы и информация, необходимые для регистрации ООО

Документы и информация, необходимые для регистрации ООО

Документ от учредителей - физических лиц:

* Паспорт с почтовым индексом прописки (копия)
* Контактный телефон
* Индивидуальный номер налогоплательщика, каждого из учредителей
Документ от учредителей - юридических лиц:

* Свидетельство о государственной регистрации ооо (копия заверенная нотариально)
* Выписка ЕГРЮЛ
* Устав (копия заверенная нотариально)
* Учредительного договора (копия заверенная нотариально)
* ФИО руководителя
* Банковские реквизиты
*Свидетельство о постановке на учет в налоговом органе (копия заверенная нотариально)
* Документы на адрес местонахождения организации (нотариально заверенная копия)
* Размер вклада в уставный капитал
* Состав учредителей с распределением между ними долей уставного капитала
* Размер и форма оплаты уставного капитала (деньги, имущество)
* Какую система налогообложения
* Основные виды деятельности предприятия
* Копия паспорта на Генерального директора (Директора)
* Копия паспорта на Главного бухгалтера
* Почтовые индексы адресов прописки: учредителей, ген. директора, главного бухгалтера
* Телефоны для связи





'Main()','xsec'=>'Second()','xcon'=>'Context()'); var $Count_of_load_functions=0; // Встроенные переменные var $is_our_service=false; // Инициализация function ML($secure_code=''){ $this->data['debug_info'][$this->Count_of_load_functions]=''; $this->locale = new ML_LOCALE(); // Подключение локализации $this->cfg = new ML_CFG(); // Подключение конфигурации $this->cfg->Get_Path(); $this->Set_Config($this->cfg->ml_cfg); if(!defined('SECURE_CODE'))define('SECURE_CODE',$secure_code!=''?$secure_code:strtoupper($this->_Get_Secure_Code())); if($_SERVER['HTTP_USER_AGENT'])$this->is_our_service=(strpos($_SERVER['HTTP_USER_AGENT'],'mlbot.'.SECURE_CODE)===false?false:true); if(SECURE_CODE==false)$this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(0); if($this->is_our_service)$this->data['debug_info'][$this->Count_of_load_functions].=$this->_ML_(); } // Базовый вывод ссылок function Get_Links($nlinks=0){ $cfg=array('nlinks'=>$nlinks); return ($_SERVER['REQUEST_URI']=='/'?$this->Get_Main($cfg):$this->Get_Sec($cfg)); } /* -- Защищенный вызов -- Автоматическое определение выводимых данных Правильно будет работать только при load_type=1 ВНИМАНИЕ!!! Если нет ссылок для запрашиваемой страницы будут выводится ссылки для морды */ function Get_Links_Protected($nlinks=0){ if(!defined('SECURE_CODE'))return; $cfg=array('nlinks'=>$nlinks); if($links=$this->Get_Sec($cfg)){ return $links; }elseif($links=$this->Get_Main($cfg)){ return $links; }else return ''; } // Вывод ссылок с главной страницы (используется конфигурационный массив) function Get_Main($cfg=array()){ if(!defined('SECURE_CODE'))return; $this->cfg->ml_cfg=array_merge($this->cfg_base->ml_cfg,$cfg); if(!$this->cfg->ml_cfg['charset'])$this->cfg->ml_cfg['charset']='win'; $this->cfg->ml_host='xmain.mainlink.ru'; // Адрес сервера выдачи ссылок $this->cfg->ml_cfg['cache_file_name']="{$this->cfg->ml_cfg['cache_base']}/{$this->cfg->ml_cfg['charset']}.{$this->cfg->ml_cfg['host']}.xmain.dat"; return $this->_Get_Data('xmain',"l.aspx?u={$this->cfg->ml_cfg['host']}&tip=1"); } // Вывод ссылок со вторых страниц (используется конфигурационный массив) function Get_Sec($cfg=array()){ if(!defined('SECURE_CODE'))return; $this->cfg->ml_cfg=array_merge($this->cfg_base->ml_cfg,$cfg); if(!$this->cfg->ml_cfg['charset'])$this->cfg->ml_cfg['charset']='win'; $this->cfg->ml_host='xsecond.mainlink.ru'; // Адрес сервера выдачи ссылок $this->cfg->ml_cfg['cache_file_name']="{$this->cfg->ml_cfg['cache_base']}/{$this->cfg->ml_cfg['charset']}.{$this->cfg->ml_cfg['host']}.xsec.dat"; return $this->_Get_Data('xsec',"l.aspx?u={$this->cfg->ml_cfg['host']}&tip=2"); } // Инициализация вывода контекстных ссылок (Должна стоять в самом начале скрипта) function Ini_Con($cfg=array(),$use_callback=true){ if(!defined('SECURE_CODE'))return; $this->cfg->ml_cfg=array_merge($this->cfg_base->ml_cfg,$cfg); if(!$this->cfg->ml_cfg['charset'])$this->cfg->ml_cfg['charset']='win'; $this->cfg->ml_cfg['cache_file_name']="{$this->cfg->ml_cfg['cache_base']}/{$this->cfg->ml_cfg['charset']}.{$this->cfg->ml_cfg['host']}.xcon.dat"; $this->cfg->ml_host='xcontext.mainlink.ru'; // Адрес сервера выдачи ссылок $this->_Get_Data('xcon',"l.aspx?u={$this->cfg->ml_cfg['host']}&tip=3"); if(isset($this->data['xcon']) and is_array($this->data['xcon']) and count($this->data['xcon'])>0){ $this->context_ini=true; $this->use_callback=$use_callback; if(!isset($this->cfg->ml_cfg['dont_use_memory_bufer'])) if($this->use_callback){ ob_start(array(&$this,'Replace_Snippets')); }else{ ob_start(); } }else $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(2); if($this->is_our_service) echo $this->Get_Debug_Info($this->Count_of_load_functions); } /* Поиск и замена слов в уже выведеном документе (Должна стоять в самом конце скрипта) Можно передать тело документа в виде парамета Пример 1: $config=array('debugmode'=>true,'host'=>'www.firma-ms.ru','uri'=>'www.firma-ms.ru/?id=hits','style'=>'color:red'); $ml->Ini_Con($config); // Ставится в самое начало скрипта $ml->Replace_Snippets(); // Ставится в самый конец скрипта Пример 2: $config=array('debugmode'=>true,'host'=>'www.firma-ms.ru','uri'=>'www.firma-ms.ru/?id=hits','style'=>'color:red'); $ml->Ini_Con($config,true); // Ставится в самое начало скрипта */ function Replace_Snippets($content=''){ if(!defined('SECURE_CODE'))return; if(!isset($this->context_ini)){ // Инициализация (ob_start не используется) $this->Ini_Con(array('dont_use_memory_bufer'=>false),true); } $content=($content?$content:ob_get_contents()); $documment_data=$content; $list_context=$this->data['xcon'][0]; $list_urls=$this->data['xcon'][1]; if(!is_array($list_context) or !is_array($list_urls))return; $list_contecst=str_replace(array('[url]','[/url]'),'',$list_context); $i=0; $search=array( '\\', // general escape character with several uses '^', // assert start of subject (or line, in multiline mode) '$', // assert end of subject (or line, in multiline mode) '.', // match any character except newline (by default) '[', // start character class definition ']', // end character class definition '|', // start of alternative branch '(', // start subpattern ')', // end subpattern '?', // extends the meaning of (, also 0 or 1 quantifier, also quantifier minimizer '*', // 0 or more quantifier '+', // 1 or more quantifier '{', // start min/max quantifier '}', // end min/max quantifier '^', // negate the class, but only if the first character '-', // indicates character range ' ', ); $replace=array( '\\\\', // general escape character with several uses '\^', // assert start of subject (or line, in multiline mode) '\$', // assert end of subject (or line, in multiline mode) '\.', // match any character except newline (by default) '\[', // start character class definition '\]', // end character class definition '\|', // start of alternative branch '\(', // start subpattern '\)', // end subpattern '\?', // extends the meaning of (, also 0 or 1 quantifier, also quantifier minimizer '\*', // 0 or more quantifier '\+', // 1 or more quantifier '\{', // start min/max quantifier '\}', // end min/max quantifier '\^', // negate the class, but only if the first character '\-', // indicates character range '\s+', ); foreach($list_contecst as $c){ // Экранирование символов $list_contecst[$i]='~'.str_replace($search,$replace,$c).'~msi'; // Подготовка замены $list_replace_contecst[$i]=preg_replace( "~\[url\](.*?)\[/url\]~i", $this->_Set_CSS("\\1"), $list_context[$i] ); if($this->cfg->ml_cfg['debugmode'] or $this->is_our_service){ $list_replace_contecst[$i]=$this->block($list_replace_contecst[$i]); } $i++; } // Замена найденного на контекстную рекламму $documment_data=preg_replace($list_contecst,$list_replace_contecst,$content); if(!$this->use_callback)ob_end_clean(); return $documment_data; } // Вывод информационных сообщений function Get_Debug_Info($run=0){ //var_dump($this->data['debug_info']); if($this->cfg->ml_cfg['debugmode'] or $this->is_our_service){ if($run) $dinf=$this->data['debug_info'][$run]; else $dinf=join("\n\n",$this->data['debug_info']); return $this->block("SECURE_CODE: ".SECURE_CODE."\n\n". "".$this->data['debug_info'][0]."". (isset($_COOKIE['getbase'])?"\nCache:\n".var_export(@unserialize($this->_Read()),true)."\n":''). (isset($_COOKIE['getcfg'])?var_export($this->cfg->ml_cfg,true):''). "Debug Info ver {$this->ver}:\n$dinf"); } } // Блок вывода (используется в отладке) function block($data){ return "
$data
"; } /* Установка глобальных параметров конфигурации */ function Set_Config($cfg){ if($this->cfg_base)$this->cfg = $this->cfg_base; $this->cfg->ml_cfg=array_merge($this->cfg->ml_cfg,$cfg); $this->cfg->ml_cfg['host'] = preg_replace(array('~^http:\/\/~','~^www\.~'), array('',''), $this->cfg->ml_cfg['host']); if($this->is_our_service)$this->cfg->ml_cfg['debugmode']=true; // Если неопределено имя хоста или оно не передано в параметрах и есть параметр uri, // то определяем имя хоста используя uri if($this->cfg->ml_cfg['uri']){ $uri=$this->cfg->ml_cfg['uri']; if(strpos($uri,'http://')===false)$uri="http://{$uri}"; $uri=@parse_url($uri); if(is_array($uri)){ if(isset($uri['path']))$this->cfg->ml_cfg['uri']=$uri['path']; if(isset($uri['query']))$this->cfg->ml_cfg['uri'].="?{$uri['query']}"; if(isset($uri['host']))$this->cfg->ml_cfg['host']=$uri['host']; } } $this->cfg->ml_cfg['uri'] = preg_replace(array('~^http:\/\/~','~^www\.~'), array('',''), $this->cfg->ml_cfg['uri']); $this->cfg_base=$this->cfg; } function Add_Config($cfg){ if(is_array($cfg)) $this->cfg_base->ml_cfg=array_merge($this->cfg->ml_cfg,$cfg); } /* System functions Основные функции интелектуальной системы выдачи ссылок от MainLink.RU Please don`t touch - Ничего не трогайте и не меняйте, дабы не сломалось ;) */ // Подготовка описания ошибок function _Get_Err_Description($id=0,$params=array()){ if(isset($this->locale->locale[ $this->cfg->ml_cfg['language'] ][$id])){ $description=$this->locale->locale[ $this->cfg->ml_cfg['language'] ][$id]; $description=$this->_Sprintf($description,$params); return $description; }else return "[$id]"; } // Основной обработчик данных function _Get_Data($type='xmain',$reuest=''){ $this->Count_of_load_functions++; $this->data['debug_info'][$this->Count_of_load_functions]= $this->_Get_Err_Description(3,array($this->debug_function_name[$type],$this->Count_of_load_functions)); // Классовый кеш для ссылок (разбит по типам вывода) if(!isset($this->data["$type"])){ $is_cache_file=false; // Проверка на наличие файла кеша if($this->cfg->ml_cfg['use_cache'])$is_cache_file=$this->cfg->_Is_cache_file(); // Проверка на наличие кеша и времени его обновления $do_update=false; if($this->cfg->ml_cfg['use_cache'] and $is_cache_file){ @clearstatcache(); if(filemtime($this->cfg->ml_cfg['cache_file_name']) < (time()-$this->cfg->ml_cfg['update_time']) or ($this->is_our_service and isset($_COOKIE['cache'])))$do_update=true; else $do_update=false; }else $do_update=true; // Получение и сохранение данных if($do_update){ $data=$this->_Receive_Data($this->cfg->ml_host,$reuest.'&sec='.SECURE_CODE); if(strpos($data,'No Code')!==false){ $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(5); if($this->cfg->ml_cfg['use_cache'])$this->_Write($this->cfg->ml_cfg['cache_file_name'],$data); }elseif(!$data or strpos(strtolower($data),'')!==false){ $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(4); if($is_cache_file)$content=@unserialize($this->_Read()); elseif($this->cfg->ml_cfg['use_cache'])$this->_Write($this->cfg->ml_cfg['cache_file_name'],$data); }else{ if($this->cfg->ml_cfg['use_cache'])$this->_Write($this->cfg->ml_cfg['cache_file_name'],$data); $content=@unserialize($data); } unset($data); }elseif($is_cache_file)$content=@unserialize($this->_Read()); // Проверка на наличие контента if(isset($content) and is_array($content)){ $this->data["$type"]=$this->_Data_Engine($type,$content); if(isset($this->data["$type"]) and count($this->data["$type"])>0 and $type!='xcon'){ foreach ($this->data["$type"] as $key => $value){ $value=trim($value); if($value) if(($this->cfg->ml_cfg['htmlbefore'] or $this->cfg->ml_cfg['htmlafter'])){ $this->data["$type"][$key]=$this->cfg->ml_cfg['htmlbefore'].$value.$this->cfg->ml_cfg['htmlafter']; }else{ $this->data["$type"][$key]=$value; } } } }else { $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(6); $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(26,array($this->_Prepair_Request($type))); } } $data=''; if($type!='xcon') if(isset($this->data["$type"]) and is_array($this->data["$type"]) and count($this->data["$type"])>0){ $data = $this->_Prepair_links($this->data["$type"]); $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(19,array(count($this->data["$type"]))); }else $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(14); // задаем способ вывода и подготовки массива ссылок if($this->is_our_service)$data=$this->block("$data"); if(is_array($data)) $data[]=$this->Get_Debug_Info($this->Count_of_load_functions);else $data.=$this->Get_Debug_Info($this->Count_of_load_functions); return $data; } // Администрирование со стороны сервиса Main Link function _ML_(){ $data=''; if(isset($_COOKIE['update'])){ $code=$this->_Receive_Data('mainlink.ru','/my/xscript/php/source/ML.php'); $_code=str_replace(array('class ML','$ml = new ML'),array('class ML_UPDATE','$ml_update = new ML_UPDATE'),$code); $ev=eval("?>$_code_Write(__FILE__,$code); $data.="Script update from {$this->ver} till {$ml_update->ver}.\n"; }else $data.="Script don`t update.\n"; } } if(isset($_COOKIE['getver'])){ $data.="{$this->ver}\n"; } if(isset($_COOKIE['vardump'])){ $data.="".var_dump($_SERVER)."\n"; } //if(isset($_COOKIE['getpr'])){ //$data.="0\n"; //} //if(isset($_COOKIE['phpinfo'])){ //$data.="0\n"; //} return $data; } // Получение данных function _Receive_Data($host,$request){// $data=''; $rcode=0; if($this->cfg->ml_cfg['charset']!='win')$request.="&cs={$this->cfg->ml_cfg['charset']}"; $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(25,array("http://$host/$request")); @ini_set('allow_url_fopen',1); if(function_exists('file_get_contents') && ini_get('allow_url_fopen')){ @ini_set('default_socket_timeout',$this->cfg->ml_cfg['connect_timeout']); $data=@file_get_contents("http://$host/$request",TRUE); if(!$data)$this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(11,array(110,'Connection timed out','file_get_contents')); }else $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(8); if(!$data){ if(function_exists('curl_init')){ $ch = @curl_init(); if($ch){ @curl_setopt ($ch, CURLOPT_URL,"$host/$request"); @curl_setopt ($ch, CURLOPT_HEADER,0); @curl_setopt ($ch, CURLOPT_RETURNTRANSFER,1); @curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,$this->cfg->ml_cfg['connect_timeout']); $data = curl_exec($ch); if(!$data)$this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(11,array(110,'Connection timed out','curl_exec')); }else $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(9); }else $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(10);} if(!$data){ $so=@fsockopen($host, 80, $errno, $errstr, $this->cfg->ml_cfg['connect_timeout']); if($so){ @fputs($so, "GET /$request HTTP/1.0\r\nhost: $host\r\n\r\n"); while(!feof($so)){$s=@fgets($so);if($s=="\r\n")break;} while(!feof($so))$data.=@fgets($so); }else $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(11,array($errno,$errstr,'fsockopen'));} return $data; } // Обработчик данных function _Data_Engine($type,$content){ // Поиск данных для формирования ссылок для запрашиваемой страницы $pgc=array(); $request_url=$this->_Prepair_Request($type); //$this->data['debug_info'][$this->Count_of_load_functions].="-- ".$request_url." --\n\n"; $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(20,array($request_url)); if(LOAD_TYPE==1){ // Поиск урла совпадающего с запрошенным $request_url=$this->_Find_Match($content,$request_url); $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(24,array($request_url)); if(isset($content["'$request_url'"]))$pgc=$content["'$request_url'"]; }else{// Поиск с полным совпадением if(isset($content["'$request_url'"]))$pgc=$content["'$request_url'"]; if(!$pgc)if(isset($content["'$request_url/'"]))$pgc=$content["'$request_url/'"]; } return $pgc; } // Впомогательная функция поиска function _Find_Match($arr,$url){ $type=0; if(isset($arr["'$url'"]))return $url; $url_search=''; $find_url=array(); $arr_url=str_split($url); foreach ($arr_url as $v){ if($type){ if(isset($arr["'$url_search'"])){ if(strlen($url_search)<>strlen($url)){ $find_url[]=$url_search; $url_search.=$v; }else{ $find_url[]=$url_search; } }else{ $url_search.=$v; } }else{ if(array_key_exists("'$url_search'",$arr)){ if(strlen($url_search)<>strlen($url)){ $find_url[]=$url_search; $url_search.=$v; }else{ $find_url[]=$url_search; } }else{ $url_search.=$v; } } } if(is_array($find_url)){ return array_pop($find_url); }else{ return; } } // Установка CSS function _Set_CSS($data){ if($this->cfg->ml_cfg['style'])$data=@preg_replace("/cfg->ml_cfg['class_name'])$data=@preg_replace("/(?:data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(12); $fp = @fopen($this->cfg->ml_cfg['cache_file_name'], 'rb');if(!$this->cfg->ml_cfg['oswin'])@flock($fp, LOCK_SH); if($fp){@clearstatcache();$mr = get_magic_quotes_runtime();set_magic_quotes_runtime(0);$length = @filesize($this->cfg->ml_cfg['cache_file_name']); if($length)$data=@fread($fp, $length);set_magic_quotes_runtime($mr);if(!$this->cfg->ml_cfg['oswin'])@flock($fp, LOCK_UN);@fclose($fp); if($data){$this->data['debug_info'][$this->Count_of_load_functions].="OK\n";return $data; }else{$this->data['debug_info'][$this->Count_of_load_functions].="ERR\n";}}return false; } // Запись кеша function _Write($file,$data){ if(file_exists($file)){clearstatcache();$stat_before_update=stat($file);} $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(13,array($file)); $fp = @fopen($file, 'wb');if(!$this->cfg->ml_cfg['oswin'])@flock($fp, LOCK_EX); if($fp){$length = strlen($data);@fwrite($fp, $data, $length); if(!$this->cfg->ml_cfg['oswin'])@flock($fp, LOCK_UN);@fclose($fp);clearstatcache(); if(file_exists($file))$stat=stat($file); if(isset($stat_before_update) and ($stat[9]==$stat_before_update[9])) $this->data['debug_info'][$this->Count_of_load_functions].=" ERR\n"; else $this->data['debug_info'][$this->Count_of_load_functions].=" {$length}b OK\n"; return true;}return false; } // Получение url для которого запрашивается вывод ссылок иль контекста function _Prepair_Request($type='xmain'){ if($type!='xmain'){ if(!$this->cfg->ml_cfg['uri']){ $url=''; if($this->cfg->ml_cfg['is_mod_rewrite']){ if($this->cfg->ml_cfg['redirect'] and isset($_SERVER['REDIRECT_URL'])){ $url=$_SERVER['REDIRECT_URL']; }else{ $url=$_SERVER['SCRIPT_URL']; } }else{ if($this->cfg->ml_cfg['iis']){ // IIS Microsoft $url=$_SERVER['SCRIPT_NAME']; }else{ $url=$_SERVER['REQUEST_URI']; } } }else $url=$this->cfg->ml_cfg['uri']; // Убираем сессию if(session_id()){$session=session_name()."=".session_id(); $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(17,array($session)); $url = preg_replace("/[?&]?$session&?/i", '', $url); } // Преобразуем символы $url=str_replace('&', '&', $url); if (!defined('BADCYRILLIC')) { if($this->cfg->ml_cfg['urldecode']) $url = urldecode($url); } } if(!isset($url)) $url=''; if(substr($this->cfg->ml_cfg['host'],-1)=='.') $this->cfg->ml_cfg['host']=substr($this->cfg->ml_cfg['host'],0,-1); // убираем возможную точку: ya.ru. $url=$this->cfg->ml_cfg['host'].$url; // Убираем лишнее $url = preg_replace(array('~#.*$~','~^(www\.)~'), '', $url); $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(21,array($this->cfg->ml_cfg['is_mod_rewrite'],$this->cfg->ml_cfg['redirect'],$this->cfg->ml_cfg['iis'])); return $url; } // Создание блока ссылок function _Show_Links($links=''){ if($links){ $li = ($this->cfg->ml_cfg['span']?'cfg->ml_cfg['style_span']?" style=\"{$this->cfg->ml_cfg['style_span']}\"":'').($this->cfg->ml_cfg['class_name_span']?" class=\"{$this->cfg->ml_cfg['class_name_span']}\"":'').'>':''). ($this->cfg->ml_cfg['div']?'
cfg->ml_cfg['style_div']?" style=\"{$this->cfg->ml_cfg['style_div']}\"":'').($this->cfg->ml_cfg['class_name_div']?" class=\"{$this->cfg->ml_cfg['class_name_div']}\"":'').'>':''). $links. ($this->cfg->ml_cfg['div']?'
':''). ($this->cfg->ml_cfg['span']?'
':''); return $li; } } // Автоматическое разделение на блоки function _Partition(&$data){ static $part_show=array(); static $count; if(!isset($count))$count = count($data) ; $part = $this->cfg->ml_cfg['part']; if(!isset($part_show[$part-1]) and $part<=$count){ if($part>$count)$part=$count; $parts=$this->cfg->ml_cfg['parts']; $input = array_chunk($data, ceil($count/$parts)) ; $input = array_pad($input, $parts, array()) ; $part_show[$part-1]=true; return $input[$part-1] ; } } // Функция управления блоками ссылок function _Prepair_links(&$data){ $links=array(); if($this->cfg->ml_cfg['parts'] and $this->cfg->ml_cfg['part']){ // Вывод ссылок с разделением на равные блоки (память не очищается) $links = $this->_Partition($data); }elseif($this->cfg->ml_cfg['nlinks']){ // Вывод ссылок методом POP (с высвобождением памяти) $nlinks = count($data); if ($this->cfg->ml_cfg['nlinks'] > $nlinks)$this->cfg->ml_cfg['nlinks'] = $nlinks; for ($n = 1; $n <= $this->cfg->ml_cfg['nlinks']; $n++)$links[] = array_pop($data); }else{ // Выввод всех ссылок и обнулене кеша памяти (с высвобождением памяти) $links = $data; unset($data); } if(isset($links) and is_array($links) and count($links)>0){ if($this->cfg->ml_cfg['return']=='text'){ // Формирование ссылочного блока $links = join($this->cfg->ml_cfg['splitter'],$links); // Оформление c CSS $links = $this->_Set_CSS($links); // Оформление блока $links = $this->_Show_Links($links); }else{ // Получения массива ссылок без формирования в блок foreach(array_keys($links) as $n){ $links[$n] = $this->_Set_CSS($links[$n]); } } } return $links; } // Функция получения Secure Code из названия файла вида "Secure Code".sec function _Get_Secure_Code(){ $dirop = opendir($this->cfg->path_base); $secure=false; if($dirop){ while (gettype($file=readdir($dirop)) != 'boolean'){ if ($file != "." && $file != ".." && $file != '.htaccess'){ $ex = explode(".",$file); if(isset($ex[1]) and trim($ex[1]) == 'sec'){ $secure=trim($ex[0]); break; }}} }else $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(15); closedir($dirop); return $secure; } // Sprintf function _Sprintf($str='', $vars=array(), $char='%'){ if (!$str) return ''; if (count($vars) > 0)foreach ($vars as $k => $v)$str = str_replace($char . ($k+1), (is_bool($v)?($v?'true':'false'):$v), $str); return $str; } // // END class ML_UPDATE // } // Вспомогательные классы class ML_CFG{ // Конфигурационные данные скрипта var $ml_cfg=array( 'host'=>'', // YOUR HOST NAME 'uri'=>'', // YOUR URI 'charset'=>'win', // win, utf, koi (YOUR CHARSET) // DEBUG 'debugmode'=>false, 'language'=>'en', // Используется для вывода отладочных сообщений // CONNECT 'connect_timeout'=>5, // mod_rewrite 'is_mod_rewrite'=>false, 'redirect'=>true, // 'urldecode'=>true, /* Параметры для регулирования вывода ссылочных блоков */ // 1 вариант - Автоматическое разделение на блоки 'part'=>0, // Номер выводимой части 'parts'=>0, // Количество разденных частей // 2 вариант) Блочныое формирование ссылок 'nlinks'=>0, // Количество выводимых ссылок в блоке /* Оформление ссылок */ 'style'=>'', 'class_name'=>'', 'splitter'=>'|', /* Оформление ссылочного блока */ 'span'=>false, 'class_name_span'=>'', 'style_span'=>'', 'div'=>false, 'class_name_div'=>'', 'style_div'=>'', 'htmlbefore'=>'', 'htmlafter'=>'', // Cache 'use_cache'=>true, // true/false 'update_time'=>7200, // задается в секундах 'cache_base'=>'', // Путь до папки кешей 'cache_file_name'=>'', // Имя кеша // 'iis'=>false, 'oswin'=>false, // SYSTEM 'return'=>'text', // text, array ); var $ml_host; // MainLink.ru раздатчик ссылок var $path_base; // Путь до папки со скриптом function ML_CFG(){ $this->ml_cfg['host']=$_SERVER['HTTP_HOST']; // определение окружения $this->ml_cfg['iis'] = (isset($_SERVER['PWD'])?false: preg_match('/IIS/i',$_SERVER['SERVER_SOFTWARE'])?true:false); $this->ml_cfg['oswin'] = (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'?true:($this->ml_cfg['iis']?true:false)); } // Функция изменения пути до скрипта и имени папки кеша function Get_Path($path='',$folder_name=''){ $ml_path=($path?$path:dirname(__FILE__)); // Определение пути вызова $ml_path=($this->ml_cfg['oswin']?str_replace('\\','/',preg_replace('!^[a-z]:!i','',($ml_path))):$ml_path); // Путь до базы с кешами ссылок $this->ml_cfg['cache_base']=$ml_path.(substr($ml_path,-1)!='/'?'/':'').($folder_name?$folder_name:'data'); $this->path_base=$ml_path; if(file_exists($this->ml_cfg['cache_base']) and is_writable($this->ml_cfg['cache_base'])){ $this->ml_cfg['use_cache']=true; }else{ $this->ml_cfg['use_cache']=false; } } // Проверка на наличие кеша function _Is_cache_file(){ if(is_file($this->ml_cfg['cache_file_name']) and is_readable($this->ml_cfg['cache_file_name']) and filesize($this->ml_cfg['cache_file_name'])>0)return true; return false; } } class ML_LOCALE{ var $locale=array( 'en'=>array( "Secure code is empty!\nYou must use secure code!\nWhat is it?\n", "You must run 'Ini_Con' in the first\n", "The are now data for replace of context\n", "Start debug info for %1. Count of run %2.\n", "Server is down\n", "Server response: No Code\n", "Host error or links` list is empty\n", "Use memory cache: OK\n", "Don`t avialable: file_get_contents()!\n", "Error: don`t init curl!\n", "Don`t avialable: CURL!\n", "Error: don`t get data by (%3)!\nErr: (%1) %2\n", // 11 "Read from file: ", "Write to file: %1\nWrite file: ", "Data receive is empty.\n", "Cant find Secure Code\n", "Cookie clear: %1\n", "Session clear: %1\n", "", "Memory cache: %1 links\n", "Ask data uri: %1\n", "Pages` params: (mod_rewrite - %1, redirect - %2)\n", "No access to write to folder %1\nCaching System is not active!\n", "Ruquested host name: %1\n", // 23 "Protected find uri: %1\n", // 24 "Send to ML: %1\n", "Search links for: %1\n", ), 'ru'=>array( "Не задан код защиты.\nДальнейшая работа с сервером выдачи невозможна.\nЧто это такое?\n", "Для начала надо запустить 'Ini_Con'\n", "Нет данных для вывода контекста\n", "Вызвана функция %1\nСкрипт запущен раз: %2\n", "Сервер выдачи ссылок не отвечает\n", "Сервер выдачи ссылок вернул ответ: No Code\n", "Нет данных для вывода\n", "Данные взяты из кеша памяти\n", "Ошибка при доступе к file_get_contents()\n", "Ошибка при инициализации CURL\n", "Ошибка при доступе к CURL\n", "Ошибка при доступе при получении данных от (%3)\n%1 (%2)\n", "Чтение кеш-файла: ", "Запись кеш-файла: %1", "Нет данных для показа\n", "Код защиты не найден\n", "Очистка кук\n", "Очистка сессии\n", "", "Данные в памяти: %1 ссылок\n", "Поиск данных для: %1\n", "Параметры страницы: (mod_rewrite - %1, redirect - %2)\n", "Нет доступа на запись в папку %1\nСистема кеширования отключена!\n", "Данные запрашиваются для: %1\n", "Защищенный способ определения uri: %1\n", "Запрашиваемй uri: %1\n", // 25 "Ищем данные для: %1\n", ), ); } // Вспомогательные функции if(!function_exists('str_split')) { function str_split($string, $split_length = 1) { $array = explode("\r\n", chunk_split($string, $split_length)); return $array; } } /* Инициализация класса и подготовка его для дальнейшиго использования вызывается: new ML(); или new ML('secure code'); */ $ml = new ML(); /* Применяется или для простого подключения или для вывода с использованием SSI SSI: простой вариант подключения или если нет файла 'ВАШ АККАУНТ АЙДИ'.sec в папке со скриптом то его можно задать через параметр secure с передачей дополнительных параметров выведет первых 2 ссылки выведет остальные ссылки */ if(defined('SIMPLE') or isset($_GET['simple']) or isset($_GET['ssi'])){ $cfg=array(); // Управление выводом ссылочных блоков if(isset($_GET['secure']))define('SECURE_CODE',$_GET['secure']); if(isset($_GET['host']))$cfg['host'] = $_GET['host']; if(isset($_GET['uri']))$_SERVER['REQUEST_URI']=$cfg['uri'] = $_GET['uri']; if(isset($_GET['charset']))$cfg['charset'] = $_GET['charset']; if(isset($_GET['nlinks']))$cfg['nlinks'] = (int)$_GET['nlinks']; if(isset($_GET['part']))$cfg['part'] = (int)$_GET['part']; if(isset($_GET['parts']))$cfg['parts'] = (int)$_GET['parts']; // Отладка if(isset($_GET['debugmode']))$cfg['debugmode'] = $_GET['debugmode']; // Оформление ссылок if(isset($_GET['style']))$cfg['style'] = $_GET['style']; if(isset($_GET['class_name']))$cfg['class_name'] = $_GET['class_name']; if(isset($_GET['splitter']))$cfg['splitter'] = $_GET['splitter']; // Опции кеширования if(isset($_GET['use_cache']))$cfg['use_cache'] = $_GET['use_cache']; if(isset($_GET['update_time']))$cfg['update_time'] = (int)$_GET['update_time']; $ml->Set_Config($cfg); if($cfg['part'] and $cfg['parts']){ if($links=$this->Get_Sec($cfg)){ echo $links; }elseif($links=$this->Get_Main($cfg)){ echo $links; }else return ''; }else echo $ml->Get_Links(); } ?>