1
0
Fork 0
feedizer-php/htdocs/libraries/formsgeneration/test_crud_input.php
2015-11-13 23:51:46 +01:00

286 lines
7.2 KiB
PHP

<?php
/*
*
* @(#) $Id: test_crud_input.php,v 1.2 2013/05/08 03:05:42 mlemos Exp $
*
*/
require('forms.php');
require('form_scaffolding.php');
require('form_crud.php');
/*
* Include the layout vertical plug-in class to automatically layout
* the inputs
*/
require('form_layout_vertical.php');
/*
* Include the AJAX submit plug-in class to automatically interact with
* the server without reloading the page
*/
require('form_ajax_submit.php');
/*
* Include the blog post view class and initialize the object to define
* details of presentation of the forms and listings of the posts being
* edited
*/
require('blog_post_view.php');
$view = new blog_post_view_class;
if(!$view->Initialize())
die('Error: '.$view->error);
/*
* Include the blog post model class and initialize the object to store
* and retrieve data of the post entries being edited
*/
require('blog_post_model.php');
$model = new blog_post_model_class;
if(!$model->Initialize())
die('Error: '.$model->error);
/*
* Include the blog post data source class so it can act as adapter to
* store and retrieve information from the model and view classes.
*/
require('blog_post_data_source.php');
$form=new form_class;
$form->NAME = 'scaffolding_form';
$form->METHOD = 'POST';
$form->ACTION = (defined('SCAFFOLDING_URI') ? SCAFFOLDING_URI : '?');
$form->InvalidCLASS = $view->GetInvalidInputsClass();
$form->ShowAllErrors = 1;
$form->ErrorMessagePrefix = '- ';
$form->debug = 'trigger_error';
/*
* Add the crud custom input pointing to the scaffolding input
* The DataSourceClass parameter defines a class that will store and
* retrieve records of data to be manipulated
*/
$error = $form->AddInput(array(
'TYPE'=>'custom',
'CustomClass'=>'form_crud_class',
'ID'=>'crud',
'DataSourceClass'=>'blog_post_data_source_class',
'ScaffoldingInput'=>'posts',
'Model'=>&$model,
'View'=>&$view,
));
if(strlen($error))
die('Error: '.$error);
/*
* Add the scaffolding custom input with all the necessary properties
*/
$error = $form->AddInput(array(
'TYPE'=>'custom',
'CustomClass'=>'form_scaffolding_class',
'ID'=>'posts',
/*
* Make the crud input handle all the events to store and retrieve
* the entry records.
*/
'TargetInput'=>'crud',
/*
* Customize all the necessary messages for which the default values
* may not be suitable. These messages may include HTML tags.
*/
'ListingMessage'=>'All blog posts',
'NoEntriesMessage'=>'No blog articles were submitted.',
'CreateMessage'=>'Submit a new blog post',
'CreateCanceledMessage'=>'Submitting the blog post was canceled.',
'CreatedMessage'=>'The new blog post was submitted successfully.',
'UpdateMessage'=>'Update this blog post',
'UpdateCanceledMessage'=>'Updating the blog post was canceled.',
'UpdatedMessage'=>'The blog post was updated successfully.',
'DeleteMessage'=>'Are you sure you want to delete this blog post?',
'DeleteCanceledMessage'=>'Deleting the blog post was canceled.',
'DeletedMessage'=>'The blog post was deleted successfully.',
/*
* If we want to display entry previews, a few more properties are
* necessary.
*/
'Preview'=>1,
'PreviewLabel'=>'Preview',
'CreatePreviewMessage'=>'New blog post preview',
'UpdatePreviewMessage'=>'Blog post update preview',
/*
* If we want to allow saving an entry and continue editing, a few
* more properties are necessary.
*/
'Save'=>1,
'SaveLabel'=>'Save',
/*
* If we want to allow viewing an entry without editing it, a few
* more properties are necessary.
*/
'View'=>1,
'ViewLabel'=>'View',
'ViewingMessage'=>'Viewing blog post',
/*
* Here we define all the input fields necessary to edit the
* properties of each entry being created or updated.
*/
'EntryFields'=>array(
array(
'TYPE'=>'text',
'NAME'=>'title',
'LABEL'=>'<u>T</u>itle',
'ValidateAsNotEmpty'=>1,
'ValidationErrorMessage'=>'It was not entered a valid post title.',
),
array(
'TYPE'=>'textarea',
'NAME'=>'body',
'LABEL'=>'<u>B</u>ody',
'COLS'=>60,
'ROWS'=>10,
'ValidateAsNotEmpty'=>1,
'ValidationErrorMessage'=>'It was not entered a valid post body.',
)
),
/*
* Several properties may be set to customize the presentation of the
* listing of existing entries.
*/
'ListingClass'=>'listing box',
'HighlightRowListingClass'=>'highlightrow',
'OddRowListingClass'=>'oddrow',
'EvenRowListingClass'=>'evenrow',
/*
* Customize the presentation of validation error messages and marks
* that appear next to invalid fields.
*/
'ErrorMessageFormat'=>$view->GetErrorMessageFormat(),
'InvalidMark'=>$view->GetInvalidMark(),
/*
* Customize the HTML that surrounds the forms for creating, updating
* and deleting entries.
*/
'FormHeader'=>$view->GetFormHeader(),
'FormFooter'=>$view->GetFormFooter(),
));
if(strlen($error))
die('Error: '.$error);
/*
* Handle events AJAX requests handling events.
* Do not output anything nor send any headers before this line.
*/
if(strlen($error = $form->HandleEvent($processed)))
die('Error: '.$error);
/*
* Exit your script if all AJAX events were processed.
*/
if($processed)
exit;
/*
* Load input values so the scaffolding input can post event messages
* for handling by the crud input.
*/
$submitted = strlen($form->WasSubmitted('')) != 0;
if(strlen($error = $form->LoadInputValues($submitted)))
die('Error: '.$error);
/*
* Were any messages posted to handle scaffolding events?
*/
if($form->GetNextMessage($message))
{
/*
* If so process and reply to all messages until there are no more
* messages to process.
*/
do
{
/*
* After processing each type of event, always reply to the
* message.
*/
if(strlen($error = $form->ReplyMessage($message, $processed)))
die('Error: '.$error);
}
/*
* Check whether there anymore posted messages until all have been
* processed.
*/
while(!$processed
&& $form->GetNextMessage($message));
/*
* Exit your script if all AJAX events were processed.
*/
if($processed)
exit;
}
/*
* Finalize the model object after we are done with it.
*/
if(!$model->Finalize())
die('Error: '.$model->error);
/*
* Finalize the view object after we are done with it.
*/
if(!$view->Finalize())
die('Error: '.$view->error);
/*
* Get some values to generate the page output.
*/
$onload = HtmlSpecialChars($form->PageLoad());
$onunload = HtmlSpecialChars($form->PageUnload());
$head = $form->PageHead();
$styles = $view->GetCSSStyles();
/*
* Generate the page output.
*/
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test for Manuel Lemos' PHP form class
using the scaffolding plug-in input</title>
<style type="text/css"><!--
<?php
echo $styles;
?>
// --></style>
<?php echo $head; ?>
</head>
<body onload="<?php echo $onload; ?>"
onunload="<?php echo $onunload; ?>"
bgcolor="#cccccc">
<center><h1>Test for Manuel Lemos' PHP form class
using the scaffolding and crud plug-in inputs</h1></center>
<hr />
<?php
$form->AddInputPart('posts');
$form->DisplayOutput();
?>
<hr />
</body>
</html>