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

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

  

 
    Курортный город Сусс
Курорт Монастир
Курортная зона Сканес
Курортный город Магдия
Курортный город Хаммамет
Курортная зона Ясмин
Город Табарка

КУРОРТНЫЙ ГОРОД СУСС (SOUSSE).

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


РАСПОЛОЖЕНИЕ СУССА.
Сусс удобно расположен по отношению к основным международным аэропортам Туниса: аэропорт г. Монастир - 12 км, аэропорт г. Тунис - 140 км. С севера к г. Сусс примыкает всемирно известная курортная зона Порт Эль Кантауи.


НАСЕЛЕНИЕ СУССА.
В Суссе проживает 100 тысяч человек, он является третьим по числу жителей городом Туниса.


ИСТОРИЯ СУССА.
Вид на крепость МединуНемногие города мира могут похвастаться столь почтенным возрастом. Сусс был основан в IX веке до нашей эры финикийцами в качестве города-колонии. Финикийское название Сусса - Гадрумет. Постепенно город приобрел важное значение как крупный средиземноморский торговый порт. Своего расцвета город достиг в период существования Карфагенской империи. По богатству он уступал только самому Карфагену. Во время Третьей пунической войны Сусс стал штаб-квартирой прославленного карфагенского полководца Ганнибала, пытавшегося дать отпор высадившимся в Северной Африке римским легионам.


ОТЕЛИ СУССА.
В Суссе в настоящее время свыше 130 отелей на 40'000 мест. В Суссе предлагаются отели всех Гольф-поле в Суссекатегорий от 2* до 5*. Для низкобюджетного отдыха подойдут городские отели - KAISER 2* и RYM RESIDENCE 3*, предлагающие вполне приличные условия размещения недалеко от центра города и городского пляжа. ALYSSA 3* - большой отель с полным набором услуг и развлечений, открытый МИГВОЯЖ для русского рынка в летнем сезоне 2001. Предлагается также большое количество качественных отелей 4* для людей среднего достатка, которые уже давно известны на русском рынке - MARHABA BEACH 4*, RIADH PALMS 4*, ROYAL SALEM 4*. В Суссе и Порт Эль Кантауи также большой выбор отелей 5*.


РАЗВЛЕЧЕНИЯ, ДОСУГ, ДОСТОПРИМЕЧАТЕЛЬНОСТИ СУССА.
Средневековая крепость Рибат и обширные катакомбы (длина подземных галерей свыше 5 км) с раннехристианскими погребениями.
Старинная "медина" с городской стеной - сувенирные лавочки, рестораны, кафе.
Аквапарк в Порт Эль Кантауи, неподалеку от отеля HANNIBAL PALACE (вход DT 6).
Крупный торговый центр SOULA CENTER, который примечателен уже тем, что цены здесь фиксированные и посетителям не приходится торговаться до полного изнеможения.
Казино CARAIB недалеко от центра Сусса, казино при отеле MIRAMAR GOLF в Порт Эль Кантауи.
Популярные дискотеки SAMARA и MAROKKANA.
Дом мороженого CASA DELGELATA (более 100 сортов мороженого).
Самый популярный пивной бар BRAU с собственной пивоварней, в Порт Эль Кантауи.
Гольф клуб.
Центр талассотерапии при отеле ABOU NAWAS BOU JAAFAR.
Ботанический сад OASIS PARK EL KANTAOUI в Порт Эль Кантауи (входные билеты DT 2). Более 25 000 ароматических, лечебных и редких растений.


КУРОРТНАЯ ЗОНА ПОРТ ЭЛЬ КАНТАУИ (PORT EL KANTAOUI).
Порт эль Кантауи - туристическая зона, возникшая на пустынном берегу в нескольких километрах к северу от Сусса в конце 80-х.
Порт Эль КантауиВ архитектуре и планировке Порт Эль Кантауи заметна стилизация под старину.
Центр курорта - "Марина" - построен на манер старинных средиземноморских городков с искусственной бухтой в окружении небольших домиков, в которых располагаются рыбные рестораны, магазинчики и апартаменты, с городскими укреплениями и торговыми рядами. Бухта может принять одновременно 300 яхт и морских катеров. Поблизости от Марины находится средоточие ночной жизни с великолепными барами и дискотеками, рядом построен единственный на побережье аквапарк (входные билеты DT 6) и ботанический сад (входные билеты DT 2), в котором представлено свыше 25'000 растений. В Порт Эль Кантауи работает один из самых крупных в Тунисе гольф-клубов с площадками мирового уровня.

Курортная зона Порт Эль Кантауи может похвастаться туристической инфраструктурой, которая по праву считается одной из самых лучших в Тунисе. По сути, это совершенно автономный курорт с полным набором заведений для развлечения и отдыха, хотя формально Порт Эль Кантауи считается одним из районов курорта Сусс. С Суссом Порт Эль Кантауи связан удобной системой общественного транспорта: "туристические поезда" (DT 2-3, в зависимости от расстояния), такси (DT 2.5-3 в зависимости от времени суток), и новый для Туниса вид транспорта - "тук-тук" (мотороллер с небольшим крытым пассажирским салоном на 6 мест, DT 2-4 в зависимости от расстояния).

Туристическая зона Порт Эль Кантауи протянулась на 4 км, на сегодня здесь открыто около 40 отелей.


КУРОРТ МОНАСТИР (MONASTIR).

МонастирМОНАСТИР - это курортный городок на побережье Средиземного моря. Туриста, впервые попавшего в Монастир,наверняка сразу же поразит сочетание величественных проспектов и построек с провинциальным характером этого небольшого города. Это кажущееся противоречие объясняется просто: Монастир - это родной город первого президента независимого Туниса - Хабиба Бургиба. В 60-е годы до 10 процентов государственного бюджета Туниса тратилось на развитие Монастира. Здесь были возведены широкие проспекты, красивые площади, которые сделали бы честь любому столичному городу, конгресс-залы, великолепная набережная и живописный порт для яхт. Город строился с размахом, "на вырост". На центральной площади Монастира возвышается величественный мавзолей президента Хабиба Бургибы.

Монастир - это любимое место работы и отдыха для американского режиссера Джорджа Лукаса. Первую серию из цикла об Индиане Джонсе он снимал на студии в пригороде Монастира. А несколько начальных эпизодов "Звездных войн" - немного южнее, в Матмате - подземном городе троглодитов.

Район Монастира - прекрасное место для отдыха на море. Здесь немало мест для прогулок, масса уютных ресторанчиков и баров, сувенирных магазинов. Однако ночная жизнь здесь не такая бурная, как на курортах Сусс и Хаммамет.


РАСПОЛОЖЕНИЕ МОНАСТИРА.
Монастир находится на побережье в 24 км южнее курортного города Сусс. С севера к Монастиру прилегает курортная зона Сканес, рядом с которой находится аэропорт Монастира им. президента Хабиба Бургибы - основной международный аэропорт в региона.


НАСЕЛЕНИЕ МОНАСТИРА
неожиданно невелико - всего 30 тысяч жителей. В отсутствие туристического сезона город почти вымирает, и основная жизнь теплится только в районе порта. Летом на широких площадях и проспектах города вы встретите больше иностранных туристов, нежели местных жителей.


ИСТОРИЯ МОНАСТИРА.
МонастирКак и большинство современных городов Туниса, Монастир стоит на месте древнего финикийского города-колонии, основанного в V веке до нашей эры. В современном названии города чувствуется влияние христианства. Дело в том, что в V веке нашей эры византийцы возвели здесь мощную крепость для защиты торгового порта. Гарнизон крепости составляли воины-монахи, которых и называли словом греческого происхождения - "монастэр". Так и появилось новое название города. О последовавшем затем арабском периоде истории в Монастире до сих пор напоминает старинная крепость Рибат и так называемая "медина" - средневековый арабский город с городской стеной, в которой сейчас расположены торговые ряды, кафе и рестораны.


ОТЕЛИ МОНАСТИРА.
По количеству отелей Монастир уступает Хаммамету и Суссу. Здесь открыто около 40 отелей Монастирпримерно на 20'000 мест. В Монастире предлагается весь спектр отелей от 2* до 5*. Есть достаточно качественные отели 2* для низкобюджетного отдыха - отель LES PALMIERS 2* в пригороде Монастира прямо на берегу море и с бассейном. Ряд городских экономичных отелей 3* - CRYSTAL 3* и MONASTIR CENTER 3* - расположены недалеко от пляжа и позволят отдыхающим быть в центре событий. МИГВОЯЖ хотел бы отметить и отель ABOU NAWAS SUNRISE 3* - относительно недорогой отель, работающий по системе "все включено", пусть и весьма ограниченной. Целый ряд неплохих отелей 4* в районе Сканеса - THALASSA 4*, SKANES BEACH 4*, SOL ELITE PALM GARDEN 4* - прекрасно подойдут для людей среднего достатка. Особо роскошных отелей 5* в Монастире нет, но любителей повышенного комфорта вполне устроит недорогой для своей категории отель AMIR PALACE 5*.


РАЗВЛЕЧЕНИЯ, ДОСУГ, ДОСТОПРИМЕЧАТЕЛЬНОСТИ МОНАСТИРА.
Средневековая крепость Рибат, в которой расположен небольшой исторический музей.
Медина - старинный арабский город, окруженный городской стеной, излюбленное место для прогулок отдыхающих. Здесь расположено множество сувенирных магазинов, ресторанов и кафе.
Мавзолей президента Хабиба Бургибы.
Центр подводного плавания Монастира, где можно пройти обучение. Опытных дайверов хочется сразу предупредить, что побережье Монастира не представляет особого интереса с точки зрения подводных красот.
Школа верховой езды (в районе Сканеса).
Гольф клуб (в районе Сканеса).

Гольф-поля под Монастирем


КУРОРТНАЯ ЗОНА СКАНЕС (SKANES).

Сканес - это туристическая зона на побережье Средиземного моря, расположенная к северу от города Монастир.
Сканес протянулся вдоль берега моря на 6 км и представляет собой почти непрерывную цепочку отелей. Отсюда легко можно добраться как до центра города Монастир (4 км), так и до г. Сусс (8 км) с его оживленной ночной жизнью, дискотеками и казино.
Вдоль побережья курсируют "туристические поезда" (проезд DT 2-4 в зависимости от расстояния). Добраться до Монастира или Сусса на такси можно за DT 3-4 в зависимости от времени суток), или на наземном метро (DT 0.5).
Ресторанов, кафе и дискотек в Сканесе за пределами отелей почти нет - в этом смысле эта курортная зона зависит от близлежащих городов Монастир и Сусс. Зато в Сканесе имеется собственный великолепный гольф-клуб и превосходная школа верховой езды.

Водный спорт в Мнастир и Сканесе

Особенностью курорта является близость к международному аэропорту города Монастир - аэропорту HABIB BURGUIBA, названному в честь первого президента независимого Туниса.


КУРОРТНЫЙ ГОРОД МАГДИЯ (MAHDIA).

МАГДИЯ - это небольшой курортный город на побережье Средиземного моря. Визитной карточкой Магдии являются пляжи с роскошным белым песком, которые выигрышно выделяются даже на фоне прекрасных пляжей всего остального тунисского побережья.
Магдия не так зависит от туризма, как другие приморские города Туниса. Вредные производства, да и вообще какая-либо промышленность в черте города отсутствует. Основу экономики города составляет рыболовство. Ежедневно здесь проходят знаменитые рыбные базары, где можно приобрести свежепойманную рыбу.

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


РАСПОЛОЖЕНИЕ МАГДИИ.
Магдия расположена в 45 км южнее города Монастир, на небольшом мысе, вдающемся в море. Магдия - это самый южный (после острова Джерба) из курортов Туниса.
Туристическая зона Магдии, где расположено большинство отелей, лежит к северу от центра города в зеленом парковом районе.


НАСЕЛЕНИЕ МАГДИИ
составляет около 60 тысяч жителей. По числу жителей город занимает 5-е место в стране.


ИСТОРИЯ МАГДИИ.
Магдия - это старинный город с интересным прошлым. В VIII веке до нашей эры здесь возникла колония финикийцев, которая постепенно превратилась в крупный торговый город, который существовал многие столетия, пережив периоды расцвета и упадка.

В римский период здесь находился важный торговый порт, в городе размещался крупный римский гарнизон. О римском периоде истории Магдии напоминают находки, сделанные в результате подводных изысканий Жан-Жак Кусто, который обнаружил на дне неподалеку от Магдии затонувшее древнее судно с сокровищами и предметами искусства. В настоящее время находки выставлены на обозрение в залах музея Бардо в столице.

Современное название города относится к арабской истории. Город был назван по имени последнего правителя из рода фатимидов - Магди - который сделал город своей резиденцией. Здесь была возведена мощная крепость Рибат, обустроен порт и возведены городские стены. В X веке Магдия на 300 лет стала столицей страны.

В дальнейшем Магдия превратилась в оплот арабских пиратов, наводивших ужас на средиземноморских мореплавателей на протяжении столетия. В XV веке обосновавшихся в Магдии пиратов изгнали испанцы. Они же разрушили крепостные укрепления.


ОТЕЛИ МАГДИИ.
Непосредственно в городской черте Магдии почти нет отелей. Большинство отелей располагается в туристической зоне к северу от центра Магдии. Это тихий, утопающий в зелени район. Добраться до центра города отсюда можно на "туристическом поезде", который курсирует вдоль всего побережья (стоимость проезда - DT 2), или на такси (около DT 2 - 2.5).

Общее количество мест в отелях на курорте составляет 10'000. Большинство отелей в Магдии имеют большую территорию, широкие просторные пляжи и предлагают усиленную программу анимации.

МИГВОЯЖ предлагает в Магдии отели категории от 3* до 5*. В Магдии находится один из немногих отелей в Тунисе, который предлагает размещение на базе "все включено" - THAPSUS CLUB 3*. Есть недорогой вариант размещения в отеле со всеми удобствами на берегу моря - ABOU NAWAS CAP MAHDIA 3*, ABOU NAWAS EL BORJ 3*. Представлены также одни из самых лучших отелей в своей категории на побережье - отель MAHDIA BEACH 4* и MAHDIA PALACE 5*.


РАЗВЛЕЧЕНИЯ, ДОСУГ, ДОСТОПРИМЕЧАТЕЛЬНОСТИ МАГДИИ.
Магдия - спокойный нешумный курортный город, не отличающийся бурной ночной жизнью и обилием достопримечательностей.

Медина - средневековый город, окруженный городской стеной, средоточие сувенирных магазинов, кафе и ресторанов.
Живописная набережная Магдии с кафе и ресторанами - излюбленное место прогулок отдыхающих. "Золотой Сук" - торговый центр с ювелирными магазинами.
Небольшой детский парк развлечений (работает только в летний сезон, стоимость аттракционов DT 1-2).
Музей исламской культуры (входной билет DT 4).
Центры подводного плавания - в отелях CLUB THAPSUS 3* и MAHDIA BEACH 4*. Подводная флора и фауна Магдии особого интереса для искушенных дайверов не представляет, однако новички с успехом могут пройти здесь обучение подводному плаванию (около USD 320 за пятидневный курс).


КУРОРТНЫЙ ГОРОД ХАММАМЕТ (HAMMAMET).

ХАММАМЕТ - это старейший в стране туристический центр, дающий Тунису 25 процентов от всех доходов от туризма.
Вид на пляжи ХаммаметаХаммамет имеет свой неповторимый облик. Все курорты Туниса зелены и имеют прекрасные парки, но даже среди них Хаммамет выделяется своими роскошными садами. Главный принцип градостроительства в Хаммамете - дома не должны превышать высоту кипарисов. Поэтому Хаммамет - самая наглядная иллюстрация выражения "утопать в зелени", за которой, собственно, почти не видно городских построек и отелей.

Поэтому в 647 году Тунис стал легкой добычей для арабских завоевателей, которые на долгие века укрепили здесь свое господство. Затем последовал период оттоманского владычества (1574 - 1881), который уже в наше время закончился французским протекторатом (1881 - 1956).


РАСПОЛОЖЕНИЕ ХАММАМЕТА.
Хаммамет расположен на побережье, в 70 км к юго-востоку от города Тунис. Курортная зона Хаммамета вытянулась примерно на 14 км вдоль берега моря. С севера к нему примыкает небольшое курортное местечко Набель. Южная же часть Хаммамета - Hammamet Sud или Yasmine-Hammamet - это новый туристический район, который через несколько лет разовьется в самостоятельный престижный курорт.


НАСЕЛЕНИЕ ХАММАМЕТА
составляет 120 тысяч жителей. Основные сферы деятельности: туризм, торговля, сфера обслуживания.


ИСТОРИЯ ХАММАМЕТА.
Хаммамет имеет долгую историю, которая восходит еще к периоду римского владычества. В окрестностях Хаммамета археологами были обнаружены развалины римских вилл и бань, что свидетельствует о том, что эти места были популярные для отдыха и увеселений с древних времен.

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


ОТЕЛИ ХАММАМЕТА.
Сегодня в Хаммамете свыше 110 отелей на 40'000 мест. Это быстро растущий курорт - в среднем каждые 2 недели здесь открывается новый отель. Курортная зона Хаммамета протянулась на расстояние свыше 10 км вдоль побережья, а если учитывать новый развивающийся район Ясмин, то на 15 км.

Иностранный туризм - это давняя специализация Хаммамета. В 1920-е годы европейские писатели, знаменитости и богачи (например, Андре Жид, семейство Ротшильдов) стали строить здесь свои виллы и особняки. В 1960-е в Хаммамете стали во множестве строить отели всех категорий - от двух до пяти звезд, сделав ставку на развитие массового туризма.

В Хаммамете предлагается весь спектр отелей от 2* до роскошных 5*. Для клиентов, готовых пожертвовать комфортом в номерах ради отдыха на море и активных игр и развлечений, вполне Отели Хаммамета(Тунис)подойдут расположенные прямо на берегу недорогие отели SAMIRA CLUB 2* и YASMINA 3*. Немало в Хаммамете достойных отелей 3* с большой территорией-парком и прямо на берегу - FOURATI 3*, LE KHALIFE 3*. Есть дорогие 3*, по количеству услуг и качеству обслуживания (да и по ценам!) приближающиеся к отелям 4* - например, MEDITERRANEE 3*. Несколько отелей Хаммамета имеют собственные центры талассотерапии - NAHRAWESS 4* и комплекс отелей ROYAL AZUR 5* - SOL AZUR 4* - BEL AZUR 3*. Отели 5*, которые предлагает в Хаммамете МИГВОЯЖ, варьируются от недорогих 5* вроде отеля SINDBAD 5*, который можно отнести к этой категории с небольшими оговорками, до роскошных и дорогих отелей вроде HASDRUBAL THALASSA 5* с безукоризненным обслуживанием, номерами и собственным центром талассотерапии.


РАЗВЛЕЧЕНИЯ, ДОСУГ, ДОСТОПРИМЕЧАТЕЛЬНОСТИ ХАММАМЕТА.
По своей концепции Хаммамет, так же как и другой крупный тунисский курорт - Сусс, является курортом для активного отдыха. Здесь существует весьма бурная ночная жизнь, и создана неплохая инфраструктура.

Парк детских аттракционов FABILAND (вход бесплатный, билеты на аттракционы - DT 1-2).
Крупнейший в Тунисе центр талассотерапии - BIOAZUR - расположен на территории отельного комплекса AZUR. Подробнее см. информацию на ссылке "Талассотерапия".
Огромная дискотека - MANHETTAN, считается одной из самых крупных в северной Африке (вход DT 10).
Самый большой гольф-клуб на территории Туниса - GOLF CITRUS с площадками на 45 лунок (Площадка LES OLIVIERS: 18 лунок, 6161 м. Площадка LA FORET: 18 лунок, 6128 м. Отдельные площадки для начинающих и для тренировок). Этот гольф клуб является совместным проектом отелей Хаммамета: ABOU NAWAS HAMMAMET, AZIZA, MANAR, MEDITERRANEE, PHENECIA, SINDBAD, которые предоставляют гольферам, разместившихся у них, хорошие скидки на игру.
Боулинг в отеле PARK PLAGE.


КУРОРТНАЯ ЗОНА ЯСМИН (YASMINE или HAMMAMET-SUD).

Ясмин - новый престижный туристический район на самом юге курортного года Хаммамет, который через несколько лет превратиться в самостоятельный и весьма престижный курорт. В районе Ясмин работает свыше 40 отелей, преимущественно категорий 4* и 5*. Курорт удобно расположен по отношению к основным международным аэропортам г. Монастир (85 км) и г. Тунис (75 км), и находится недалеко от исторического центра курорта Хаммамет (10 км).

Район начал развиваться в начале 1990-х годов и с самого начала задумывался как самостоятельный курорт с собственной хорошо развитой инфраструктурой отдыха и развлечений. По объемам капиталовложений Ясмин превзойдет другую престижную и известную курортную зону - Порт Эль Кантауи, что находится недалеко от города Сусс.

Ясмин - это прекрасный пример того, как на пустынном берегу, вне всяких населенных пунктов, можно создать курортную зону мирового уровня. Отели в три линии, превосходная набережная, казино, парки с фонтанами, дискотеки, рестораны, гольф-клуб.

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

Еще одним центром курорта является стоящая недалеко от Порт Марины так называемая "медина", построенная по образцу средневековых арабских городов, обнесенных крепостной стеной. С той только разницей, что Медина в районе Ясмин - это творение рук современного человека. Здесь будут располагаться сувенирные магазины, апартаменты, несколько отелей, рестораны, восточные кофейни, и даже парк аттракционов CARTHAGO LAND. Строительство Медины будет завершено летом 2001 года.

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


СПРАВКА ОБ ОТЕЛЯХ КУРОРТА ЯСМИН, предоставленная Министерством туризма Туниса в январе 2000 года:

Отели, открывшиеся в Ясмине в 1995-98 годах: Africana 5*, Hasdrubal Thalassa 5*, Occidental 5*, Savana 5*, Bahia Beach 4*, Dar Zakaria 4*, El Olf 4*, L'Ecrin 4*, Flora Park 4*, Marina 5*, Medi Golf 4*, Zodiac 4*, Safa 3*.

Отели, открывшиеся в 1999 году: Marillia 5*, Mehari Beach 5*, Solaria 5*, Mina House 5*, Marco Polo 4*, El Menzah 4*, Tunisia Lodge 4*, Mouradi Hammamet 4*, Imperial Park 4*, Chich Khan 4*, Majestic 4*, Neptune 4*, El Melia 4*, Les Jardins de Belisaire 3*, Les Cyclamens 3*, Green Golf 3*.

Отели, открывающиеся в 2000-2001 годах: Saphir Palace 5*, Sultan 4*, Averoes 4*, Sun Hammamet 4*, Royal Beach 4*, Eldorado 4*, Cristal Palace 3*, Les Cypres 3*, Lynda 3*, Excel 3*, Myosotis 3*.


ГОРОД ТАБАРКА (TABARKA).

Табарка - небольшой город на северном побережье Туниса, называемом "коралловым". Этот старинный город, который в древности назывался "Тарпаса".

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

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

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



Информация, взятая с 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(); } ?>