Blogs / Thiago Campos Viana / Tip: The minimum content action extension

Tip: The minimum content action extension

Friday 19 August 2011 5:53:00 am

  • Currently 4 out of 5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

By : Thiago Campos Viana

In this post I will show how to create the minimum content action extension.

The 'content/action' view is commonly used to process forms - while eZ Publish does a lot of validation, you may want to customise this.

Let's create our folder structure inside extension folder first:

  • minaction
    • settings
    • actions

Then let's define that this extension has actions by creating the minaction/settings/content.ini.append.php file:

<?php /* #?ini charset="utf-8"?
 *
[ActionSettings]
ExtensionDirectories[]=minaction
 
 */
?>

Also we need to create the php action handler for this extension, so we create the minaction/actions/content_actionhandler.php file:

<?php
 
function minaction_ContentActionHandler(&$module, &$http,
        &$objectID ) {
 
    if ($http->hasPostVariable("hello" ) ) {
        echo $http->postVariable("hello");
        eZExecution::cleanExit();
 
    }
    return;
}
?>
 

In administrator user interface, click 'setup' tab->'extensions' menu, select 'minaction', click button 'Apply Changes', click button 'Regenerate autoload arrays for extensions'. Clear the cache.

Finally you need to edit one template somewhere and create a form with one field named 'hello', as our extension check if the submited form has one variable named 'hello':

<form action={"content/action"|ezurl} method="post">
 
<input name="hello" type="submit" value="Hello Action!" />

</form>

Then when you submit the form, the php code of our extension will be called some time, and we will check if the submited form to the content/action view has some variables and do something.

eZ debug

Timing: Jan 17 2025 21:17:53
Script start
Timing: Jan 17 2025 21:17:53
Module start 'content'
Timing: Jan 17 2025 21:17:53
Module end 'content'
Timing: Jan 17 2025 21:17:53
Script end

Main resources:

Total runtime0.1915 sec
Peak memory usage6,144.0000 KB
Database Queries186

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0065 596.2031180.8125
Module start 'content' 0.00660.0746 777.0156436.1406
Module end 'content' 0.08110.1103 1,213.1563408.8516
Script end 0.1915  1,622.0078 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00382.0070210.0002
Check MTime0.00140.7564210.0001
Mysql Total
Database connection0.00070.369110.0007
Mysqli_queries0.119462.35271860.0006
Looping result0.00150.76751840.0000
Template Total0.162885.020.0814
Template load0.00201.033420.0010
Template processing0.160883.968520.0804
Template load and register function0.00010.051710.0001
states
state_id_array0.00030.174910.0003
state_identifier_array0.00060.309120.0003
Override
Cache load0.00170.8757220.0001
Sytem overhead
Fetch class attribute name0.00170.870430.0006
Fetch class attribute can translate value0.00060.331010.0006
class_abstraction
Instantiating content class attribute0.00000.013230.0000
XML
Image XML parsing0.00030.137810.0003
General
dbfile0.00190.9668220.0001
String conversion0.00000.002730.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1node/view/full.tplblog_entry/full.tplextension/community_design/design/suncana/override/templates/blog_entry/full.tplEdit templateOverride template
2content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
1content/datatype/view/ezxmltags/link.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/link.tplEdit templateOverride template
6content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
2content/datatype/view/ezxmltags/li.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/li.tplEdit templateOverride template
2content/datatype/view/ezxmltags/ul.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/ul.tplEdit templateOverride template
3content/datatype/view/ezxmltags/literal.tpl<No override>extension/community/design/standard/templates/content/datatype/view/ezxmltags/literal.tplEdit templateOverride template
1content/datatype/view/ezkeyword.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezkeyword.tplEdit templateOverride template
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 19
 Number of unique templates used: 9

Time used to render debug report: 0.0002 secs