by
KK » Wed Jun 18, 2014 11:50 pm
Apologies for the delay in my reply, atisz (am having an unusually busy week).
As promised, here is the solution.
Members, as you know, are just cloned pages and so we can use our trusty cms:pages tag to get data from their editable regions.
Assuming that your member template has regions named 'apartment_block', 'entrance' and 'apartment', the following code would store data of the currently logged-in member into some global variables -
- Code: Select all
<cms:pages masterpage=k_member_template id=k_member_id>
// we have all data about the current member here ..
<cms:set my_apartment_block=apartment_block 'global' />
<cms:set my_entrance=entrance 'global' />
<cms:set my_apartment=apartment 'global' />
</cms:pages>
Now we can use the variables we set above to pass data on to the databound-form, as discussed before -
- Code: Select all
<cms:db_persist_form
_invalidate_cache='0'
_auto_title='1'
apartment_block=my_apartment_block
entrance=my_entrance
apartment=my_apartment
/>
And that's it.
Full code of your template now becomes -
- Code: Select all
<?php require_once( '../couch/cms.php' ); ?>
<cms:template title='Consumption' clonable='1'>
<cms:editable name='apartment_block' required='1' type='text' />
<cms:editable name='entrance' required='1' type='text' />
<cms:editable name='apartment' required='1' type='text' />
<cms:editable name='date' required='1' type='text' />
<cms:editable name='index1' required='1' type='text' />
<cms:editable name='index2' required='1' type='text' />
</cms:template>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>User consumtion</title>
<link href="css/bootstrap.min.css" media="screen" rel="stylesheet">
<link href="css/styles.css" media="screen" rel="stylesheet">
</head>
<body>
<cms:member_check_login />
<cms:if k_member_logged_out >
<cms:redirect "<cms:member_login_link />" />
</cms:if>
<div class="container">
<div class="header">
<h3>Enter your consumption</h3>
</div>
<div class="body">
<cms:set submit_success="<cms:get_flash 'submit_success' />" />
<cms:if submit_success >
<div class="alert alert-success"><strong>Success:</strong> Your consumption has been sent successfully.</div>
</cms:if>
<cms:pages masterpage=k_member_template id=k_member_id>
// we have all data about the current member here ..
<cms:set my_apartment_block=apartment_block 'global' />
<cms:set my_entrance=entrance 'global' />
<cms:set my_apartment=apartment 'global' />
</cms:pages>
<cms:form
masterpage=k_template_name
mode='create'
enctype='multipart/form-data'
method='post'
anchor='0'
>
<cms:if k_success >
<cms:db_persist_form
_invalidate_cache='0'
_auto_title='1'
apartment_block=my_apartment_block
entrance=my_entrance
apartment=my_apartment
/>
<cms:if k_success >
<cms:set_flash name='submit_success' value='1' />
<cms:redirect k_page_link />
</cms:if>
</cms:if>
<cms:if k_error >
<div class="alert alert-danger"><strong>Error:</strong>
<cms:each k_error >
<br><cms:show item />
</cms:each>
</div>
</cms:if>
<div class="form-group <cms:if k_error_date >has-error</cms:if>">
<label class="control-label" for="date">Date <span class="required">*</span></label>
<cms:input class="form-control" id="date" name="date" type='bound' value="" />
</div>
<div class="form-group <cms:if k_error_index1 >has-error</cms:if>">
<label class="control-label" for="index1">Index 1 <span class="required">*</span></label>
<cms:input class="form-control" id="index1" name="index1" type='bound' value="" />
</div>
<div class="form-group <cms:if k_error_index2 >has-error</cms:if>">
<label class="control-label" for="index2">Index 2</label>
<cms:input class="form-control" id="index2" name="index2" type='bound' value="" />
</div>
<cms:if "<cms:not submit_success />" >
<button class="btn btn-primary" type="submit">Send consumption</button>
</cms:if>
</cms:form>
</div>
</div>
</body>
</html>
<?php COUCH::invoke(); ?>
Hope this helps.
Do let us know.
Thanks.