Forums / Extensions / Helpdesk extension tutorial

Helpdesk extension tutorial

Author Message

Sebastian Schoeller

Thursday 21 July 2011 5:25:05 am

Hi all,

I am volunteering for a mid-sized NGO called Engineers Without Borders Germany. We are looking to organize our volunteer IT support. In order to do so we would like to install a helpdesk system, whereby somebody can post a ticket, that is assigned to an existing or external user. After having resolved the problem the ticket may be closed. Notification should be done via Email.

We are using eZPublish as our CMS for some time based on ezwebin standard. We do not dispose over much expertise on customizing extensions and so forth and we do not have a budget to pay for that. In order to avoid installing other open-source tools to do this job, I ask you as the community whether somebody has done this based on eZPublish already and whether this somebody is willing to share/generated a step-by-step tutorial on how to realize that.

Thanks for the attention and best wishes

Sebastian

Sandra Parente

Thursday 21 July 2011 8:38:33 am

I think this could be a good start:

http://projects.ez.no/ticketsystem

I've never tested it, so I don't know if it could be successfully modified for the 4.x series...

Sandra Parente
www.netbliss.it

Steven E. Bailey

Friday 22 July 2011 3:04:38 am

I was planning on building a customer portal/ticket system for my own business.  If there were a financial incentive I'd make it a priority...

Certified eZPublish developer
http://ez.no/certification/verify/396111

Available for ezpublish troubleshooting, hosting and custom extension development: http://www.leidentech.com

Sebastian Schoeller

Friday 22 July 2011 12:09:10 pm

@Steven: unfortunately we do not have funds for software development. Thanks for the offer

@Sandra: thanks for the hint. I checked out the trunk and started fumbling around with it

  1. adapted some overwrite template settings
  2. changed $view_parameters.xyz to is_set($view_parameters.xyz)
  3. assembled the class definitions since the class definition package would not install

I can now generate a ticketsystem object and view that within the admin view. I thus though receive the following error:

Unknown template variable 'ui_context' in namespace ''

I cannot find any solution for this one. Does anyone know whether some environment variable needs to be passed within the template structure?

Any hints are very welcome.

Best wishes

Sebastian

Steven E. Bailey

Saturday 23 July 2011 4:48:01 am

Understandable, if and when I ever get around to doing it I'll probably put it up on projects.

Is the ui_context error actually causing problems?

Certified eZPublish developer
http://ez.no/certification/verify/396111

Available for ezpublish troubleshooting, hosting and custom extension development: http://www.leidentech.com

Gaetano Giunta

Saturday 23 July 2011 5:33:48 am

I also have had the idea of such a project in the backburner for a long time, my goal being to create a drop-in replacement for issues.ez.no... Sadly I think I will never have enough time to implement it.

Here are my development notes (brain dump):

Content classes:
. issue
- id (int, autogenerated)
- name
- type (bug, fr, security bug, taks) Note: sec. issue have different perms!
- severity
- status (obj state?)
- relations (different obj relations attributes ?)
- affects ( obj relation / eztags / multiselect ?)
- fixed in ( obj relation / eztags / multiselect ?)
- description: rich text
- attachment (needs one or more => use children objs?)
- component(s) (eztags ?)
. issue_comment
- rich text
- attachment
Workflow events:
. change state to sec. issues upon creation to make them invisible ?
. update issue last modif. date upon adding a comment (for proper sorting)
Misc issues:
. shall we keep whole history of issues, as we do now?
. relation between issues: make sure it can be easily traversed both ways

Principal Consultant International Business
Member of the Community Project Board

Steven E. Bailey

Saturday 23 July 2011 8:34:54 am

I don't want to hijack Sebastian's thread here... but I was thinking more along the lines for business purposes, which is why I don't see anything out there that is good enough.

So start with an issue object - each issue is related to a customer group that can have multiple users, each customer group is related to a contract object they are under at the time.  All the fields of the issue that can be are related objects (severity, status, request type, affects) etc.  That way they can be easily added to.  Related objects for related issues.  Then of course the xml block for the description and the date fields opened, closed.  All other interaction can be a sort of comment class which would be a child of the issue but with the abilty to upload files too... a couple of extras could be sms notification on the highest priority issues and wrap everything up with http://dhtmlx.com/docs/products/dhtmlxGantt/index.shtml

Now if anyone has this or wants this... let me know.

Certified eZPublish developer
http://ez.no/certification/verify/396111

Available for ezpublish troubleshooting, hosting and custom extension development: http://www.leidentech.com

Sandra Parente

Saturday 23 July 2011 9:46:35 am

@Sebastian: I don't know if this may help you, but in this article

http://share.ez.no/learn/ez-publish/creating-custom-admin-modules-views

David Linnard explains very well the basic differences in templating between versions <= 4.2 and versions  4.3 and onward.

Sandra Parente
www.netbliss.it

Sebastian Schoeller

Saturday 23 July 2011 1:42:47 pm

@Sandra: thanks for the hint. I started reassembling the extension according to the tutorial. Unfortunately just changing for

 $tpl = eZTemplate::factory();

Does not work. I'll keep on trying.

Sandra Parente

Monday 25 July 2011 10:05:47 am

@Sebastian:

a couple of small hints:

http://doc.ez.no/eZ-Publish/Technical-manual/4.x/Reference/Configuration-files/menu.ini/Topmenu_dashboard/Enabled/

http://doc.ez.no/eZ-Publish/Technical-manual/4.x/Reference/Configuration-files/menu.ini/Topmenu_users/Shown/

Sandra Parente
www.netbliss.it

eZ debug

Timing: Jan 17 2025 20:49:52
Script start
Timing: Jan 17 2025 20:49:52
Module start 'content'
Timing: Jan 17 2025 20:49:53
Module end 'content'
Timing: Jan 17 2025 20:49:53
Script end

Main resources:

Total runtime1.1301 sec
Peak memory usage4,096.0000 KB
Database Queries223

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0059 597.1641180.8438
Module start 'content' 0.00590.9351 778.0078769.3281
Module end 'content' 0.94100.1890 1,547.3359348.6719
Script end 1.1300  1,896.0078 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00360.3176210.0002
Check MTime0.00140.1215210.0001
Mysql Total
Database connection0.00070.059310.0007
Mysqli_queries1.032891.38812230.0046
Looping result0.00210.18222210.0000
Template Total1.101297.420.5506
Template load0.00180.159920.0009
Template processing1.099497.285320.5497
Template load and register function0.00020.019810.0002
states
state_id_array0.00140.124610.0014
state_identifier_array0.00200.178020.0010
Override
Cache load0.00170.1516830.0000
Sytem overhead
Fetch class attribute can translate value0.00110.095550.0002
Fetch class attribute name0.00100.0903130.0001
XML
Image XML parsing0.00190.167350.0004
class_abstraction
Instantiating content class attribute0.00010.0050170.0000
General
dbfile0.00200.1740400.0000
String conversion0.00000.000530.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.tplfull/forum_topic.tplextension/sevenx/design/simple/override/templates/full/forum_topic.tplEdit templateOverride template
10content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
18content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
7content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
4content/datatype/view/ezxmltags/link.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/link.tplEdit templateOverride template
1content/datatype/view/ezxmltags/li.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/li.tplEdit templateOverride template
1content/datatype/view/ezxmltags/ol.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/ol.tplEdit templateOverride template
2content/datatype/view/ezxmltags/literal.tpl<No override>extension/community/design/standard/templates/content/datatype/view/ezxmltags/literal.tplEdit templateOverride template
1content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 46
 Number of unique templates used: 10

Time used to render debug report: 0.0001 secs