Welcome, Guest. Please login or register.
July 29, 2010, 07:20:38 PM

Login with username, password and session length
Search:     Advanced search
Interested in joining the WebsiteBaker team?
For more Information read here or on our new website.
119281 Posts in 17081 Topics by 9086 Members
Latest Member: Emiliano
* Home Help Search Login Register
+  WebsiteBaker Community Forum
|-+  English
| |-+  Droplets (PHP code for use with Droplet module) & Snippets (raw PHP code) (Moderators: Argos, BerndJM)
| | |-+  x_cForm
Pages: [1] Go Down Print
Author Topic: x_cForm  (Read 2646 times)
aldus

Offline Offline

Posts: 1112



« on: September 03, 2008, 03:41:10 PM »

A simple modul snipplet for a class for formulars forms

Once you have the modul installed you can use a class "cForm" to build forms.
Notice: this is not QuickForm (PEAR) and it is not mean as a portation to Websitebaker at all;
even no recoding of the package.

Current Version: 0.1.3.beta - 2008-10-07

update: multiple selections support

Requirements:
  • Website Baker 2.7
  • PHP 5.2.x

Known issues
  • No options/radio - groups
  • No validations
  • No file-upload

ToDo - Roadmap
  • add options/radio - groups
  • add simple client/serverside validations
  • file-upload


Bugfix in 0.1.2 Alpha: Checkbox-bugfix for missplaced "'" single quote ...

Bugfix in 0.1.1 Alpha: Typos ("cancle" instead of "cancel")

Any kind of improvment, critics, recomentations, code-cleanings, warnings and grumble
are always wellcome.

Some examples:

If you want to use this class in the backend you are in the need to import it first, like
Code:
<?php
require_once (WB_PATH.'/modules/x_cform/include.php');
?>

If you want to use it inside a template you don't need it.

Initial within some formattributes, you can use any valid attribute as you like inside an assoc. array.
Code:
<?php
$form_attribs 
= Array (
    
'name'        => "wb_addresses_form",
    
'class'        => "xForm",
    
'action'    => $_SERVER['PHP_SELF']
);

$form = new c_form$form_attribs );
?>


Add a hidden field with the name "id" and a typical value to the formular
Code:
<?php
$form
->addElement( Array ('type' => 'hidden''name' => "id""value" => $_REQUEST['id']) );
?>


Add a textfield with an label to the formular
Code:
<?php
$form
->addElement( Array ('type' => 'text''label'=> ucfirst($i), 'name' => $i'value' => $data[$i] ) );
?>


Add a textarea to the formular
Code:
<?php
$form
->addElement( Array ('type' => 'textarea''label'=> ucfirst($i), 'name' => $i'content' => $data[$i] ) );
?>


Add a select to the formular
As a "content" you will have to pass an assoc. array in the form "Key" = value, where the Key is display
in the popup menu. You can also pass a "select"-value to the select.
Code:
<?php
$content 
= array (
    
'Anna'        => 1,
    
'Judith'    => 2,
    
'Mary Lou'    => 3,
    
'Xanthippe'    => 4
}
$form->addElement( Array ('type' => 'select''label' => ucfirst($i), 'name' => $i'content' => $group_select'select'=>) );
?>


Add a submit-button within some javascript.
Code:
<?php
$form
->addElement ( Array ('type' => 'submit''name' => 'submit''value' => $TEXT['SAVE'], 'onclick' => "this.submit();") );
?>

update 0.1.3: support for multiple select ...
Code:
<?php

$form
->addElement ( Array (
    
'type'        => 'select'
    
'name'        => "group_id[]"
    
'label'        => $ADDRESSES['DISPLAYGROUP'], 
    
'content'    => $group_select
    
'select'    => explode(",",$temp_data['groups']), // !
    
'multiple'    =>'multiple'
    
'size'        => 4,
    
'onload'    => "alert(this);"
) );
?>


echo the complete form out of a module or template
Code:
<?php
echo $form->toHTML();
?>


Also supported types are "html", for "pur" html-code, "button", "cancel" and "checkbox".

To modify the output you can manipulate/change the template-strings (all public):

- $form_template - holds the complete form, default is:

"\n<form {{ attribs }}>\n{{ hidden }}\n<table>\n{{ content }}</table>\n</form>\n";

within the markers for
  • {{ attribs }} :: the formular-attributes, e.g. name, class, onchange, onsubmit, action, method ...
  • {{ hidden }} :: where to place the hidden values; by default at the begin of the formular
  • {{ content }} :: the complete formular-content

- $element_template - holds a single element, default is:

"<tr>\n\t<td class='left'>{{ label }}</td>\n\t<td class='right'>{{ content }}</td>\n</tr>\n"

within the markers for
  • {{ label }} :: where to display the label of the element
  • {{ content }} :: where to display the element

So if you want to display the formular-elements inside divs you can easy overwrite the templates as you needed.


Regards
Aldus

« Last Edit: October 07, 2008, 02:59:43 PM by aldus » Logged



6E 75 6C 6C 61 20 64 69 65 73 20 73 69 6E 65 20 6C 69 6E 65 61
aldus

Offline Offline

Posts: 1112



« Reply #1 on: September 15, 2008, 07:28:02 PM »

Update/Bugfix for 0.1.2 alpha

- Bugfix for "checkboxes" -> missplaced single quote bug ... could be problematic for some browsers
- Minor typos in the "info.php!" ...

Regards
Aldus
Logged



6E 75 6C 6C 61 20 64 69 65 73 20 73 69 6E 65 20 6C 69 6E 65 61
Stefek

Online Online

Posts: 3495



WWW
« Reply #2 on: September 15, 2008, 09:52:21 PM »

Any kind of improvment, critics, recomentations, code-cleanings, warnings and grumble
are always wellcome.
Have some "grumble"  cool

I don't get the clue what this is all about.
I can't figure out what to do with this - no idea.

But looks very interesting.
Maybe a working example would help understanding.

Regards,
Stefek
Logged

Bowling in Kiel Halle Aschaffenburg

"Es gibt viele Pfade am Fuße des Berges,
doch von der Spitze aus, erblicken wir alle den selben Mond."
jap. Sprichwort
aldus

Offline Offline

Posts: 1112



« Reply #3 on: September 16, 2008, 11:52:05 AM »

Make a new Page, Type: "code2", and place the following inside (PHP)
Code:
<?php
/**
 *    @version    0.1.0
 *    @date        2008-09-16
 *    @author        aldus
 *    @package    Websitebaker - code-examples
 *
 */

$form_attribs = Array (
    
'name'    => "search",
    
'class'    => "xForm",
    
'action'=> WB_URL."/search/index.php"
);

$form = new c_form$form_attribs );

$form->addElement( Array ('type' => 'hidden''name' => "page_id""value" => $page_id ) );
$form->addElement( Array ('type' => 'hidden''name' => "section_id""value" => $section_id ) );

$form->addElement( Array (
    
'type'    => 'text'
    
'label'    => "Suchbegriff: "
    
'name'    => "string"
    
'style' => "display:block;float:left;width:200px;"  
    
)
);

$form->addElement( Array('type' => 'html''content' => "&nbsp;") );

$form->addElement( Array (
    
'type'        => 'submit'
    
'name'        => 'submit'
    
'value'        => "Suchen"
    
'onclick'    => "this.submit();"
    
'style'        => "display:block;float:left;width:200px;"
    
)
);

echo 
$form->toHTML();
?>


As for other working examples you can take a look at "addresses" ...

Regards
Aldus
Logged



6E 75 6C 6C 61 20 64 69 65 73 20 73 69 6E 65 20 6C 69 6E 65 61
Stefek

Online Online

Posts: 3495



WWW
« Reply #4 on: September 16, 2008, 01:04:44 PM »

Make a new Page, Type: "code2", and place the following inside (PHP)
Cool.

Best Regards,
Stefek
Logged

Bowling in Kiel Halle Aschaffenburg

"Es gibt viele Pfade am Fuße des Berges,
doch von der Spitze aus, erblicken wir alle den selben Mond."
jap. Sprichwort
Argos
Forum administrator
*****
Offline Offline

Posts: 1511


WWW
« Reply #5 on: September 19, 2008, 01:52:23 PM »

What's a "formular"?

Can someone please explain in a few sentences what this thingy is and does, without people having to install it first?

Thanks.
Logged

Jurgen Nijhuis
Argos Media
www.argosmedia.nl
WB Showcase: http://www.mywebsitebaker.com/pages/showcase.php?v&category_id=1242&count=30
----------------------------------------------------------------
Please don't request personal support, use the forums!
aldus

Offline Offline

Posts: 1112



« Reply #6 on: September 19, 2008, 02:05:49 PM »

What's a "formular"?

Can someone please explain in a few sentences what this thingy is and does, without people having to install it first?

Thanks.

I must apologize for the "dinglish" and the confusion about the word - it's simple a form.

Regards
Aldus
Logged



6E 75 6C 6C 61 20 64 69 65 73 20 73 69 6E 65 20 6C 69 6E 65 61
aldus

Offline Offline

Posts: 1112



« Reply #7 on: October 07, 2008, 03:01:42 PM »

Update for 0.1.3 -
multiple select support for elementType "select".

Regards
Aldus
Logged



6E 75 6C 6C 61 20 64 69 65 73 20 73 69 6E 65 20 6C 69 6E 65 61
FrankH

Online Online

Posts: 574


WWW
« Reply #8 on: March 19, 2009, 12:23:07 PM »

I just installed x_cForm 0.14 from AMASP successfully.
But when I want to add a page, I can't choose this page type x_cForm because I don't see it in the list.
What's wrong here?
Logged
aldus

Offline Offline

Posts: 1112



« Reply #9 on: March 19, 2009, 12:56:53 PM »

Because it's a "code"-modul (snippet) - not a page-module like "form" ...
To use it for the frontend you can use a code/code2 page like in the examples.
If you want to use it for the backend, e.g. inside a modul in "modify.php", you will have to include it first.

Regards
Aldus
Logged



6E 75 6C 6C 61 20 64 69 65 73 20 73 69 6E 65 20 6C 69 6E 65 61
Pages: [1] Go Up Print 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
-->