Перед созданием темы или сообщения следует прочесть: Правила форума, Правила раздела, Как правильно оформить тему.


Автор Тема: Базовый ФАК по SSI (Basic SSI FAQ)  (Прочитано 12128 раз)

0 Пользователей и 2 Гостей смотрят эту тему.

Оффлайн Avdenago

  • Друзья
  • *
  • Сообщений: 1 477
  • Карма: +87/-9
  • Пол: Мужской
    • Avdenago.com
  • Версия SMF: 1.1.6-1.1.8
Базовый ФАК по SSI (Basic SSI FAQ)
« : 15 Ноября 2006, 22:39:11 »
Базовый ФАК по SSI
 (Basic SSI FAQ)
Перевод. Оригинал тут:
http://www.simplemachines.org/community/index.php?topic=12936.0

В данном ФАКе мы предлагаем Вам ознакомится с основами SSI и возможностями применения технологии SSI в Вашем проекте.
Данный ФАК освещает часто задаваемые вопросы по SSI и дает на них ответы в виде советов и приемов. В конце сообщения вы можете найти текстовые примеры рассмотренных скриптов.
Все вопросы и впечатления, а также обсуждения данного материала можно оставлять в данной теме.

!ВАЖНО: НЕ ИЗМЕНЯЙТЕ ФАЙЛ 'SSI.PHP'!
(Все описанное ниже делается без каких-либо изменений в данном файле)

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

Как SSI может мне помочь?
Если вы ищете способ применения SSI давайте рассмотрим следующий пример.
У вас есть сайт и, соответственно, форум и вы хотите, чтобы пользователи, вошедшие на форум, видели отдельную область закачки. 

Именно для чего-либо подобного и необходимо применение SSI. Реализация займет несколько минут.

Как мне начать использовать SSI?
Первое. Создаем у себя на сайте новый .php файл. Затем открываем его в текстовом редакторе и прописываем в него следующий код:
<?php
require("/home/simple/public_html/forum/SSI.php"); 
?>
Очень важно указать правильный путь к Вашему файлу 'SSI.php', который обычно находится в корневом каталоге Вашего форума. Правильный путь вы можете посмотреть в начале файла 'ssi_examples.php', который также находится в корневом каталоге Вашего форума.

Я добавил путь к файлу 'SSI.php". Что теперь?
Итак вы добавили путь к файлу 'SSI.php" и сохранили созданный Вами файл.
Далее мы попробуем добавить какую-нибудь возможность на страницу(в меню, список On-line) вашего сайта. Вставьте нижепреведенный код в созданный Вами файл после 'require("YOUR_PATH_TO_SSI.php");'
ssi_menubar();Теперь просмотрим созданный файл в браузере. Если все сделано правильно вы увидите меню форрума. Если же ничего не сработало или появилось сообщение об ошибке, значит вы неправильно указали путь к файлу 'SSI.php' в первой строчке.
Итак. теперь мы имеем небольшое представление о том как SSI работает и как он может пригодится. Вы можете ознакомится со всем набором функций SSI в файле 'ssi_examples.php', который также находится в корневом каталоге Вашего форума.

Что еще можно сделать используя SSI?
Как уже говорилось SSI имеет большое количество функций. Сейчас мы рассмотрим работату с правами пользователей.
Пример: У вас есть сайт и, соответственно, форум и вы хотите, чтобы пользователи, вошедшие на форум, видели отдельную область закачки.
Это делается без каких-либо проблем с использованием всего лишь php оператора 'if':
<?php
require("YOUR_PATH_TO_SSI.php"); 

if (
$context['user']['is_guest'])
 {
   echo 
   
'<h5>Доступ запрещен</h5>
   У Вас нет прав для просмотра данной страницы.'
;
 }
else
 {
   echo
   
'<h5>Здравствуйте, '$context['user']['name'], '!</h5>
   Это страница закачек:'
;
 }
?>
Несколько комментариев по работе данного примера. В примере использыется оператор 'if'. Если выражение (в данном случае $context['user']['is_guest']) ИСТИННО,то активируется первый блок операторов, если же выражение ЛОЖНО, то выполняется блок 'else'.
В нашем примере - если пользователь не вошел на форум, то выражение принимает значение ИСТИННО и отображается сообщение об отсутсвии прав для просмотра страницы. Если же пользователь вошел на форум, то отобразится страница закачек.

Можно сделать похожее с Администратором:
if ($context['allow_admin'])
  {
   Блок операторов
  }
else
  {
 Блок операторов
  }


Вот Вы и дочитали до конца Базовый ФАК по SSI.
Если есть желание можно продолжить освоение SSI перейдя к Углубленному ФАКу по SSI (Advanced SSI FAQ)

В прикрепленных файлах находится код еще нескольких небольших примеров.

-Lamper

От переводчика:
Если данный ФАК помог вам и ответил на ваши вопросы, или наоборот у вас появились вопросы, а также если вы нашли неточности или ошибки, вы можете обсудить его в данной теме.
Также следует отметить, что вышеприведенный перевод, довольно таки вольный... Но идеи и мысли сохранены.

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

Вот также интересная ссылка, иллюстрирующая работу SSI:
http://www.simplemachines.org/community/ssi_examples.shtml


« Последнее редактирование: 16 Ноября 2006, 15:36:18 от Avdenago »

Оффлайн m412

  • Новичок
  • *
  • Сообщений: 10
  • Карма: +0/-0
  • Пол: Мужской
  • это не я)
    • kokki.ru - любопытные новости
  • Версия SMF: 2.0 RC2
Re: Базовый ФАК по SSI (Basic SSI FAQ)
« Ответ #1 : 14 Июня 2007, 08:33:05 »
Цитировать
Правильный путь вы можете посмотреть в начале файла 'ssi_examples.php', который также находится в корневом каталоге Вашего форума.

Я не могу определить правильный путь...
в файле ssi_examples.phpу меня написано: "require(dirname(__FILE__) . '/SSI.php');"

и поэтому видимо не работает....что делать?
я на денвере пробую...

Оффлайн Avdenago

  • Друзья
  • *
  • Сообщений: 1 477
  • Карма: +87/-9
  • Пол: Мужской
    • Avdenago.com
  • Версия SMF: 1.1.6-1.1.8
Re: Базовый ФАК по SSI (Basic SSI FAQ)
« Ответ #2 : 14 Июня 2007, 10:20:21 »
попробуйте написать путь к виртуальной папке сервера от корня сервера...

Оффлайн m412

  • Новичок
  • *
  • Сообщений: 10
  • Карма: +0/-0
  • Пол: Мужской
  • это не я)
    • kokki.ru - любопытные новости
  • Версия SMF: 2.0 RC2
Re: Базовый ФАК по SSI (Basic SSI FAQ)
« Ответ #3 : 14 Июня 2007, 10:38:43 »
эм...) я не понял... :-[

Оффлайн Avdenago

  • Друзья
  • *
  • Сообщений: 1 477
  • Карма: +87/-9
  • Пол: Мужской
    • Avdenago.com
  • Версия SMF: 1.1.6-1.1.8
Re: Базовый ФАК по SSI (Basic SSI FAQ)
« Ответ #4 : 14 Июня 2007, 12:04:35 »
ну вот например у меня относительный путь будет наподобие...

F:\\AppServ\\www\\smf/SSI.php

Оффлайн m412

  • Новичок
  • *
  • Сообщений: 10
  • Карма: +0/-0
  • Пол: Мужской
  • это не я)
    • kokki.ru - любопытные новости
  • Версия SMF: 2.0 RC2
Re: Базовый ФАК по SSI (Basic SSI FAQ)
« Ответ #5 : 14 Июня 2007, 13:13:50 »
Спасибо! все заработало....
немного надо было подправить...
у меня это выглядит так:
"Z:/home/tmndnb/www/forum/SSI.php"

Оффлайн Илья

  • Новичок
  • *
  • Сообщений: 1
  • Карма: +0/-0
  • Пол: Мужской
    • Пытаюсь сделать сайт по садоводству :-)
Re: Базовый ФАК по SSI (Basic SSI FAQ)
« Ответ #6 : 15 Марта 2008, 23:15:32 »
Столкнулся с подобной проблемой...(в пихипи не силён)
фраза :
"Правильный путь вы можете посмотреть в начале файла 'ssi_examples.php', который также находится в корневом каталоге Вашего форума." - в корне не верна!
Путь можно посмотреть не в самом файле, естественно там написана функция dirname(__FILE__) !
Чтобы узнать путь, необходимо перейти на страницу ssi_examples.php (набрав в броузере адрес с этим файлом) у меня например получилось узнать:
<?php require("/home/u73761/forum.internetsad.ru/www/SSI.php"); ?>

Оффлайн matroskyn

  • Новичок
  • *
  • Сообщений: 10
  • Карма: +0/-0
Re: Базовый ФАК по SSI (Basic SSI FAQ)
« Ответ #7 : 18 Марта 2008, 15:41:19 »
Большое спасибо за перевод! Весьма помогло с пониманием.
я с помощью враппера в джумле вставил ssi_login() и  ssi_welcome() .
увы, знаний пока не хватает - пытаюсь сейчас все понять и сделать... медленно, но получается..
Но...
Тут казус один есть... ПРи вводе логина и пароля он в этом же окне (wrapped) и загружает форум - а мне нужно, чтобы он загружал в мэин.. ну либо в новом окне - если только это и останется.. ну и естессно, чтобы враппер как раз показывал кнопку Выход....
Ребяты.. с меня скоро уже пыль можно смахивать - сижу, копаюсь.. Читал вроде внимательно форум.. может что упустил?
Покажите, пожалуйста, путь истинный!

Оффлайн Avdenago

  • Друзья
  • *
  • Сообщений: 1 477
  • Карма: +87/-9
  • Пол: Мужской
    • Avdenago.com
  • Версия SMF: 1.1.6-1.1.8
Re: Базовый ФАК по SSI (Basic SSI FAQ)
« Ответ #8 : 18 Марта 2008, 15:59:08 »
Думаю вам лучше искать там, где могут дать совет по джумле. Это либо тут в соответсвующем разделе, либо где-нить в других местах...  Я вот не берусь консультировать по джумле, ибо не знаю ее.

Оффлайн highwhite

  • Новичок
  • *
  • Сообщений: 2
  • Карма: +0/-0
Re: Базовый ФАК по SSI (Basic SSI FAQ)
« Ответ #9 : 26 Мая 2008, 04:46:25 »
Здравствуйте. Есть проблема. Форум находится на моем сервере. А сайт собственно на хостинге.
С помощью require на SSI.php с сайта не работает. По УРЛ до SSI.php Тоже не добраться :'(

Так как можно подключить SSI.php с форма на моем сервере  на сайт у хостера?

Оффлайн digger

  • Чемпион по боксу по переписке
  • Russian SMF Hero
  • ***
  • Сообщений: 4 373
  • Карма: +457/-39
  • One sick bastard
    • Тестовый форум SMF
  • Версия SMF: 2.0 RC2
Re: Базовый ФАК по SSI (Basic SSI FAQ)
« Ответ #10 : 26 Мая 2008, 05:57:57 »
Здравствуйте. Есть проблема. Форум находится на моем сервере. А сайт собственно на хостинге.
С помощью require на SSI.php с сайта не работает. По УРЛ до SSI.php Тоже не добраться :'(

Так как можно подключить SSI.php с форма на моем сервере  на сайт у хостера?

Включить allow_url_fopen и allow_url_include.

Оффлайн highwhite

  • Новичок
  • *
  • Сообщений: 2
  • Карма: +0/-0
Re: Базовый ФАК по SSI (Basic SSI FAQ)
« Ответ #11 : 26 Мая 2008, 15:51:39 »
allow_url_fopen включен. Вторую опцию в конфиге ненашел. Все то же.

Warning: require(T:\home\virtual\xxxxxxx.yyy\forum\SSI.php) [function.require]: failed to open stream: No such file or directory in /home/xxxxxxx_zz_www/index.php on line 2 // корень сайта у хостера

Fatal error: require() [function.require]: Failed opening required 'T:\home\virtual\xxxxxxx.yyy\forum\SSI.php' (include_path='.:/www/php2/lib/php') in /home/xxxxxxx_zz_www/index.php on line 2

   Если инклудом, до SSI.php ругается.

Оффлайн digger

  • Чемпион по боксу по переписке
  • Russian SMF Hero
  • ***
  • Сообщений: 4 373
  • Карма: +457/-39
  • One sick bastard
    • Тестовый форум SMF
  • Версия SMF: 2.0 RC2
Re: Базовый ФАК по SSI (Basic SSI FAQ)
« Ответ #12 : 26 Мая 2008, 18:15:38 »
allow_url_fopen включен. Вторую опцию в конфиге ненашел. Все то же.

Warning: require(T:\home\virtual\xxxxxxx.yyy\forum\SSI.php) [function.require]: failed to open stream: No such file or directory in /home/xxxxxxx_zz_www/index.php on line 2 // корень сайта у хостера

Fatal error: require() [function.require]: Failed opening required 'T:\home\virtual\xxxxxxx.yyy\forum\SSI.php' (include_path='.:/www/php2/lib/php') in /home/xxxxxxx_zz_www/index.php on line 2

   Если инклудом, до SSI.php ругается.


Ну так надо делать require('http://.../SSI.php'), а не require('T:\...\SSI.php')

Оффлайн mod

  • Новичок
  • *
  • Сообщений: 5
  • Карма: +0/-0
  • Пол: Мужской
Re: Базовый ФАК по SSI (Basic SSI FAQ)
« Ответ #13 : 25 Ноября 2008, 15:39:19 »
а может он не работать из за chmod на SSI 644 &

Оффлайн Dux

  • Новичок
  • *
  • Сообщений: 8
  • Карма: +0/-0
  • Пол: Мужской
Re: Базовый ФАК по SSI (Basic SSI FAQ)
« Ответ #14 : 27 Апреля 2009, 16:53:08 »
Ну так надо делать require('http://.../SSI.php'), а не require('T:\...\SSI.php')

Та же история. Написал напрямую через HTTP://. Выдает ошибку:

Warning: require() [function.require]: URL file-access is disabled in the server configuration in /home/www/z87548/delphicode/test.php on line 7

Warning: require(http://forum.delphicode.ru/SSI.php) [function.require]: failed to open stream: no suitable wrapper could be found in /home/www/z87548/delphicode/test.php on line 7

Fatal error: require() [function.require]: Failed opening required 'http://forum.delphicode.ru/SSI.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/www/z87548/delphicode/test.php on line 7