I am a newbie to EE. I went through the features and looks cool. I am planning to use it for my new project. But I want to know, whether its possible to create a custom page or function in control panel. Say I want to show the list of all users who booked an appointed. And I want to list them in a new page. Also buttons against each list item for specific function. Is it possible, can someone suggest some reference links to do such kind off stuff ?
2 Answers
Module tutorial:
https://ellislab.com/expressionengine/user-guide/development/module_tutorial.html
Here is the official module creation tutorial (for EE 2.9.2). Custom modules allow you to create CP (control panel) views to handle almost any function, whether it be a simple 'settings' page for your custom module, or more complex views such as querying your database for specific records and displaying them in your CP.
A custom module doesn't even need a CP page though. Using either ACTions or the plugin API you could create a module that does what you want and outputs it to a template.
See the plugin API for more information on how to use your custom module in a template:
https://ellislab.com/expressionengine/user-guide/development/plugins.html
Depending on exactly what you want your buttons and "specific functions" to do, you can use the Channel Form (formerly SafeCracker) (https://ellislab.com/expressionengine/user-guide/add-ons/channel/channel_form/) add-on that will allow you to make changes to content within channels without having to log in to the CP. Note that even though it is considered an "add-on," it is built into all EE installs starting at version 2.7.
Basic syntax:
{exp:channel:form channel="store" entry_id="3" return="store/products"}
<input name="price" type="text"> <!-- change info in the "price" field -->
<input type="submit" value="Submit">
{/exp:channel:form}
Note: If you do not include an entry_id or an entry_title specification in the initial exp:channel:form tag, Channel Form will create an entirely new entry inside the channel in question ("store" in this case).
Hope this is helpful.