- Автор темы
- #1
Плагин позволяет одной строкой создавать всплывающее окно на сайте с содержимым любой страницы (локальной или удаленной).
Качаем Для просмотра ссылки Войдиили Зарегистрируйся сам класс аяксовых окошек.
Далее в <head></head> своей страницы подключаем необходимые файлы (библиотека prototype, css-ы, файлы windows.js и т.д.)
Далее в папке с плагинами к Smarty создаем файл function.url_window.php
Пишем в него следующее:
Пользоваться так:
Появится ссылка "редактировать" (параметр caption), при нажатии на которую появится всплывающее окно edit_supplier.php с переданным в него $_GET параметром supplier_id (параметр url).
Все параметры:
Качаем Для просмотра ссылки Войди
Далее в <head></head> своей страницы подключаем необходимые файлы (библиотека prototype, css-ы, файлы windows.js и т.д.)
Далее в папке с плагинами к Smarty создаем файл function.url_window.php
Пишем в него следующее:
PHP:
function smarty_function_url_window($params, &$smarty)
{
if(!isset($params['window_id']) || empty($params['window_id']))
$smarty->trigger_error('url_window: не указан обязательный параметр "window_id"');
foreach($params as $key => $value) {
if(!is_bool($value))
$value = '"' . preg_replace("/[\r\n]+/", '" + $0"', addslashes($value)) . '"';
}
if (!isset($params['url']) || empty($params['url']))
$smarty->trigger_error('url_window: не указан обязательный параметр "url"');
if (!isset($params['className']) || empty($params['className']))
$params['className'] = 'alphacube';
if(!isset($params['caption']) || empty($params['caption']))
$smarty->trigger_error('dialog: не указан обязательный параметр "caption"');
if(!isset($params['opacity']) || empty($params['opacity']))
$params['opacity'] = 1;
if (!isset($params['href']) || empty($params['href']))
$params['href'] = '#';
if (!isset($params['title']) || empty($params['title']))
$params['title'] = '';
if (!isset($params['width']) || empty($params['width']))
$params['width'] = '300';
if (!isset($params['height']) || empty($params['height']))
$params['height'] = '150';
if (!isset($params['top']) || empty($params['top']))
$params['top'] = '200';
if (!isset($params['left']) || empty($params['left']))
$params['left'] = '350';
$out = '';
$out .= '<a href="'. $params['href'] .'" onclick="window'. $params['window_id'] .'.show();">'. $params['caption'] .'</a>';
$out .= "\n<script type=\"text/javascript\">\n";
$out .= "setTimeout('func". $params['window_id'] ."()',0);";
$out .= "function func". $params['window_id'] ."() {";
$out .= "window". $params['window_id'] ." = new Window('". $params['window_id'] ."', {className: '". $params['className']."', title: '". $params['title'] ."', opacity:".$params['opacity'].", width:". $params['width'] .", height:". $params['height'] .", top:". $params['top'] .", left:". $params['left'] .", url:\"".$params['url']."\"});";
$out .= "}";
$out .= "\n</script>\n";
return $out;
}
HTML:
{url_window window_id="`$suppliers[i].supplier_id`" width="600" height="320" caption="редактировать" title="`$smarty.const.EDITING_SUPPLIER_NAMED``$suppliers[i].supplier_name`" url="edit_supplier.php?supplier_id=`$suppliers[i].supplier_id`"}
Все параметры:
- window_id - id нового окна. Число или строка. Двух одинаковых id на странице быть не должно (оконный класс сам об этом скажет)
- url - страница, сожержимое которой будет показываться в окне.
- className - тема, скин, стиль. Не забудьте только в <head> страницы подключить нужный css
- caption - текст ссылки, при нажатии на которую будет открываться окно. Можно и рисунок вставлять (<img src="...>)
- opactity - прозрачность открываемого окна. Значение от 0 до 1, где 0 - полностью прозрачное, 1 - полностью непрозрачное. Обладателям бинарного мозга напоминаю, что между 0 и 1 туева хуча значений и значение 0.5 даст 50% прозрачность окна.
- href - адрес ссылки, которая открывает окно. По умолчанию проставляется "#"
- title - Текст на заголовке окна.
- width - Ширина окна
- height - Высота
- top - положение окна по вертикали
- left - и горизонтали