Прошу помощи с jQuerty.
Недавно нашол интересный скрипт для создания демотиваторов на jQuerty.У меня есть исходники, вот только в отдельный плагин всё это я собрать не могу.может кто то скажет «ламер» кто то ещё хуже…, но всё таки нужна ваша помощь- хотелось бы создать свой сайт с демотиваторами.Кто может помочь с плагином вот исходники:
jQuickForm::css()->addCss('/vendors/highlight/styles/ir_black.css');
//добавим код php-файла с инициализацией приложения на страницу
Jaguar::view()->setVar('PHP_CODE','1) Инициализация приложения');
Jaguar::view()->setVar('PHP_CODE',
trim(highlight_file($_SERVER['DOCUMENT_ROOT'].'/cms/prepend.php',true)));
//добавим код php-файла со сборкой страницы на страницу (масло масляное :) )
Jaguar::view()->setVar('PHP_CODE','3) Сборка страницы');
Jaguar::view()->setVar('PHP_CODE',
trim(highlight_file($_SERVER['DOCUMENT_ROOT'].'/cms/append.php',true)));
}
//выведем все стили, которые были добавлены как внешние
//выведем все стили, которые были добавлены как inline css
Jaguar::view()->setVar('css',jQuickForm::css()->getCssAll());
//Что попало в JsOnload
Jaguar::view()->setVar('PHP_CODE','Что попало в JsOnload');
Jaguar::view()->setVar('PHP_CODE',
'
//Что попало в JsInline
Jaguar::view()->setVar('PHP_CODE','Что попало в JsInline');
Jaguar::view()->setVar('PHP_CODE',
'
//Подключенные javascript-файлы
Jaguar::view()->setVar('PHP_CODE','Подключенные javascript-файлы');
Jaguar::view()->setVar('PHP_CODE',
'
//результат выбора шаблона для элемента
Jaguar::view()->setVar('PHP_CODE','Здесь показано какие шаблоны были использованы
при отрисовке каждого элемента');
Jaguar::view()->setVar('PHP_CODE',
''.implode('
',jQuickForm::$element_templates).'');
//выведем все js, которые были добавлены необходимые по событию «onload»
//выведем все inline js
//выведем все js, подключенные как внешние
Jaguar::view()->setVar('js',jQuickForm::js()->getJsAll());
//ну и заголовок страницы
Jaguar::view()->setVar('title', 'jQuickForm = jQuery UI + Html_QuickForm2');
//парсим и выводим сгенерированную страницу
print Jaguar::view()->parse();
?>
Что попало в JsInline
Всё это доступно по ссылке внизу страницы.
Буду признателен за помощь.Думаю что это будет интересно многим пользователям сайта.
Собственно сборка формы
<code>Собственно сборка формы
<?
$form = new jQuickForm('simple');
$form->setAttribute('enctype', 'multipart/form-data');
$form->addElement('hidden', 'MAX_FILE_SIZE')->setValue('204800');
$fieldset = $form->insertFieldset('Демотиватор');
$upload = $fieldset->addElement('file','picture')
->setLabel('Картинка для дема')
->setAttribute('size',70);
$upload->addRule('required',"Что за дем без картинки?");
// no longer using 'filename' rule for uploads
$upload->addRule('regex', 'Allowed extensions: .gif, .jp(e)g, .png', '/\\.(gif|jpe?g|png)$/i');
$upload->addRule('mimetype', 'Your browser doesn\'t think that\'s an image',
array('image/gif', 'image/png', 'image/jpeg', 'image/pjpeg'));
$upload->addRule('maxfilesize', 'Картинка великовата, разрешается до 200kB', 204800);
$gr = $fieldset->insertGroup()->addClass('col2');
$header = $gr->insertInputText('header')
->setLabel('Заголовок (обязательно):')
->setAttribute('size',70);
$header->addRuleMax("Очень много текста для заголовка", 15);
$header->addRuleRequired("Заголовок для демотиватора обязателен");
$gr->insertInputCheckbox('header_up', 'все большие буквы');
$gr = $fieldset->insertGroup()->addClass('col2');
$text = $gr->insertInputText('text')
->setAttribute('size',70)
->setLabel('Демотиватор (не обязательно):')
->setComment('Разрешается 25 символов');
$text->addRuleMax("Краткость - сестра таланта", 25);
$gr->insertInputCheckbox('text_up', 'все маленькие буквы');
$form->insertInputSubmit('Создать демотиватор!');
if($form->validate()){
$text = isset($_POST['text'])? trim(strip_tags($_POST['text'])) : '';
$header = isset($_POST['header'])? trim(strip_tags($_POST['header'])) : '';
if(isset($_POST['header_up'])){
$header = mb_strtoupper($header,'UTF-8');
}
if(isset($_POST['text_up'])){
$text = mb_strtoupper($text,'UTF-8');
}
$dem = jaguar_demotivator($_FILES['picture']['tmp_name'], $header, $text);
if(!$dem){
Jaguar::view()->setVar('BODY','<h3>ERROR: ошибка при создании демотиватора</h3>');
} else {
header('Content-type: image/png');
imagepng($dem);
imagedestroy($dem);
exit;
}
}
?>
HTML-код сгенерированной формы
<div class="quickform">
<form id="simple" method="post" action="/?page=examples_demotivator" enctype="multipart/form-data">
<div>
<input type="hidden" name="_qf_csrf_token__simple" id="_qf_csrf_token__simple-0" value="388a3c80cfa248461e1290b0934e0809" />
<input type="hidden" name="MAX_FILE_SIZE" id="MAX_FILE_SIZE-0" value="204800" />
<fieldset id="qfauto-0" rows="10">
<legend id="qfauto-0-legend">
Демотиватор
</legend>
<div class="jqf_row_wrap">
<div class="jqf_row">
<label for="picture-0" class="jqf_element">
<span class="required">* </span>Картинка для дема
</label>
<span class="jqf_error" id="jqferr-picture-0"></span>
<div class="jqf_element">
<input type="file" name="picture" id="picture-0" size="70" />
</div>
</div>
<div id="qfauto-1" class="jqf_group col2">
<span class="jqf_error" id="jqferr-qfauto-1"></span>
<div class="clear">
</div>
<div class="jqf_element">
<div class="jqf_row">
<label for="header-0">
<span class="required">* </span>Заголовок (обязательно):
</label>
<span class="jqf_error" id="jqferr-header-0"></span>
<div class="jqf_element">
<input type="text" name="header" id="header-0" size="70" />
</div>
</div>
<div class="jqf_row jqf_checkbox">
<label for="header_up-0">
<input type="checkbox" name="header_up" id="header_up-0" value="1" />
все большие буквы
</label>
</div>
<div class="clear">
</div>
</div>
</div>
<div id="qfauto-2" class="jqf_group col2">
<span class="jqf_error" id="jqferr-qfauto-2"></span>
<div class="clear">
</div>
<div class="jqf_element">
<div class="jqf_row">
<label for="text-0">
Демотиватор (не обязательно):
</label>
<span class="jqf_error" id="jqferr-text-0"></span>
<div class="jqf_element">
<input type="text" name="text" id="text-0" size="70" />
<div class="jqf_comment">
Разрешается 25 символов
</div>
</div>
</div>
<div class="jqf_row jqf_checkbox">
<label for="text_up-0">
<input type="checkbox" name="text_up" id="text_up-0" value="1" />
все маленькие буквы
</label>
</div>
<div class="clear">
</div>
</div>
</div>
</div>
</fieldset>
<div class="jqf_row">
<input type="submit" value="Создать демотиватор!" name="" id="qfauto-3" />
</div>
</div>
</form>
<div class="reqnote">
<em>
*
</em>
Поля, обязательные для заполнения
</div>
</div>
1) Инициализация приложения
<?
//показываем все ошибки
ini_set('display_errors' , 'On');
ini_set('error_reporting' , E_ALL);
header('Content-Type: text/html; charset=utf-8');
date_default_timezone_set('Europe/Moscow');
//создаем представление
Jaguar::view(dirname(__FILE__).'/tpl/layout.tpl');
//добавляем стили представления формы и страницы
jQuickForm::css()->addCss('/cms/css.css');
jQuickForm::css()->addCss('/cms/quickform.css');
//Подключаем главный js-файл форм, который отвечает за клиентскую валидацию
jQuickForm::js()->addJs('/vendors/jQuickForm/quickform.js');
?>
3) Сборка страницы
<?
//если была создана форма - покажем процесс ее создания
if(isset($form)){
//если форма прошла проверку
if($form->validate()){
//выведем полученные POST'ом значения
if(count($_FILES)){
Jaguar::view()->setVar('body','<h2>$_FILES</h2>');
Jaguar::view()->setVar('body',
'<pre>'.htmlentities(print_r($_FILES,1),ENT_QUOTES,'UTF-8').'</pre>');
}
Jaguar::view()->setVar('body','<h2>$_POST</h2>');
Jaguar::view()->setVar('body',
'<pre>'.htmlentities(print_r($_POST,1),ENT_QUOTES,'UTF-8').'</pre>');
Jaguar::view()->setVar('body','<h2>$form->getValue()</h2>');
Jaguar::view()->setVar('body',
'<pre>'.htmlentities(print_r($form->getValue(),1),ENT_QUOTES,'UTF-8').'</pre>');
}
//если требуется создание формы с особенной отрисовкой, отличной от по-умолчанию
if(isset($renderer)){
$html = $form->render($renderer);
} else {
$html = $form.'';
}
//добавим саму форму на страницу
Jaguar::view()->setVar('body',$html);
//добавим код php-файла со сборкой формы на страницу
Jaguar::view()->setVar('PHP_CODE','<h2>2) Собственно сборка формы</h2>');
Jaguar::view()->setVar('PHP_CODE',
trim(highlight_file($_SERVER['DOCUMENT_ROOT'].'/cms/actions/'.PAGE.'.php',true)));
Jaguar::view()->setVar('PHP_CODE','<h2>HTML-код сгенерированной формы</h2>');
Jaguar::view()->setVar('PHP_CODE',
'<pre><code>'.htmlentities(jaguar_html_nice($html),ENT_QUOTES,'UTF-8').'
');jQuickForm::css()->addCss('/vendors/highlight/styles/ir_black.css');
//добавим код php-файла с инициализацией приложения на страницу
Jaguar::view()->setVar('PHP_CODE','1) Инициализация приложения');
Jaguar::view()->setVar('PHP_CODE',
trim(highlight_file($_SERVER['DOCUMENT_ROOT'].'/cms/prepend.php',true)));
//добавим код php-файла со сборкой страницы на страницу (масло масляное :) )
Jaguar::view()->setVar('PHP_CODE','3) Сборка страницы');
Jaguar::view()->setVar('PHP_CODE',
trim(highlight_file($_SERVER['DOCUMENT_ROOT'].'/cms/append.php',true)));
}
//выведем все стили, которые были добавлены как внешние
//выведем все стили, которые были добавлены как inline css
Jaguar::view()->setVar('css',jQuickForm::css()->getCssAll());
//Что попало в JsOnload
Jaguar::view()->setVar('PHP_CODE','Что попало в JsOnload');
Jaguar::view()->setVar('PHP_CODE',
'
'.htmlentities(jQuickForm::js()->getJsOnload(),ENT_QUOTES,'UTF-8').'');
//Что попало в JsInline
Jaguar::view()->setVar('PHP_CODE','Что попало в JsInline');
Jaguar::view()->setVar('PHP_CODE',
'
'.htmlentities(jQuickForm::js()->getJsInline(),ENT_QUOTES,'UTF-8').'');
//Подключенные javascript-файлы
Jaguar::view()->setVar('PHP_CODE','Подключенные javascript-файлы');
Jaguar::view()->setVar('PHP_CODE',
'
'.htmlentities(jQuickForm::js()->getJs(),ENT_QUOTES,'UTF-8').'');
//результат выбора шаблона для элемента
Jaguar::view()->setVar('PHP_CODE','Здесь показано какие шаблоны были использованы
при отрисовке каждого элемента');
Jaguar::view()->setVar('PHP_CODE',
''.implode('
',jQuickForm::$element_templates).'');
//выведем все js, которые были добавлены необходимые по событию «onload»
//выведем все inline js
//выведем все js, подключенные как внешние
Jaguar::view()->setVar('js',jQuickForm::js()->getJsAll());
//ну и заголовок страницы
Jaguar::view()->setVar('title', 'jQuickForm = jQuery UI + Html_QuickForm2');
//парсим и выводим сгенерированную страницу
print Jaguar::view()->parse();
?>
Что попало в JsInline
Всё это доступно по ссылке внизу страницы.
Буду признателен за помощь.Думаю что это будет интересно многим пользователям сайта.
4 комментария
И, кстати, сам скрипт создания демотиватора лежит тут:
code.google.com/p/jquickform/source/browse/trunk/www/cms/helpers/jaguar_demotivator.php
из него и можете модуль сделать.
Взят тут и слегка причесан