Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
initial version based the Joomla3 tutorial: Developing an MVC Component
- Loading branch information
0 parents
commit f06c163
Showing
69 changed files
with
1,773 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# Joomla3 Front-End private data editing | ||
This tutorial provides a guideline for development of a Joomla component that enables users to create and edit their own (private) data records in the database. This can be used for instance as starter for an address book. | ||
|
||
This guide continues from the tutorial 'Developing an MVC Component' (aka the 'Hello World' tutorial) from this Joomla site: https://docs.joomla.org/J3.x:Developing_an_MVC_Component. | ||
|
||
|
||
Version history: | ||
|
||
v1-15 2016-04 initial version based on the Joomla3 tutorial: Developing an MVC Component |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
<?xml version="1.0" encoding="utf-8" ?> | ||
<access component="com_helloworld"> | ||
<section name="component"> | ||
<action name="core.admin" title="JACTION_ADMIN" description="JACTION_ADMIN_COMPONENT_DESC" /> | ||
<action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_COMPONENT_DESC" /> | ||
<action name="core.create" title="JACTION_CREATE" description="JACTION_CREATE_COMPONENT_DESC" /> | ||
<action name="core.delete" title="JACTION_DELETE" description="JACTION_DELETE_COMPONENT_DESC" /> | ||
<action name="core.edit" title="JACTION_EDIT" description="JACTION_EDIT_COMPONENT_DESC" /> | ||
</section> | ||
<section name="category"> | ||
<action name="core.create" title="JACTION_CREATE" description="COM_CATEGORIES_ACCESS_CREATE_DESC" /> | ||
<action name="core.delete" title="JACTION_DELETE" description="COM_CATEGORIES_ACCESS_DELETE_DESC" /> | ||
<action name="core.edit" title="JACTION_EDIT" description="COM_CATEGORIES_ACCESS_EDIT_DESC" /> | ||
<action name="core.edit.state" title="JACTION_EDITSTATE" description="COM_CATEGORIES_ACCESS_EDITSTATE_DESC" /> | ||
<action name="core.edit.own" title="JACTION_EDITOWN" description="COM_CATEGORIES_ACCESS_EDITOWN_DESC" /> | ||
</section> | ||
<section name="message"> | ||
<action name="core.delete" title="JACTION_DELETE" description="COM_HELLOWORLD_ACCESS_DELETE_DESC" /> | ||
<action name="core.edit" title="JACTION_EDIT" description="COM_HELLOWORLD_ACCESS_EDIT_DESC" /> | ||
</section> | ||
</access> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<config> | ||
<fieldset | ||
name="greetings" | ||
label="COM_HELLOWORLD_CONFIG_GREETING_SETTINGS_LABEL" | ||
description="COM_HELLOWORLD_CONFIG_GREETING_SETTINGS_DESC" | ||
> | ||
<field | ||
name="show_category" | ||
type="radio" | ||
label="COM_HELLOWORLD_HELLOWORLD_FIELD_SHOW_CATEGORY_LABEL" | ||
description="COM_HELLOWORLD_HELLOWORLD_FIELD_SHOW_CATEGORY_DESC" | ||
default="0" | ||
> | ||
<option value="0">JHIDE</option> | ||
<option value="1">JSHOW</option> | ||
</field> | ||
</fieldset> | ||
<fieldset | ||
name="permissions" | ||
label="JCONFIG_PERMISSIONS_LABEL" | ||
description="JCONFIG_PERMISSIONS_DESC" | ||
> | ||
<field | ||
name="rules" | ||
type="rules" | ||
label="JCONFIG_PERMISSIONS_LABEL" | ||
class="inputbox" | ||
validate="rules" | ||
filter="rules" | ||
component="com_helloworld" | ||
section="component" | ||
/> | ||
</fieldset> | ||
</config> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
<?php | ||
/** | ||
* @package Joomla.Administrator | ||
* @subpackage com_helloworld | ||
* | ||
* @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved. | ||
* @license GNU General Public License version 2 or later; see LICENSE.txt | ||
*/ | ||
|
||
// No direct access to this file | ||
defined('_JEXEC') or die('Restricted access'); | ||
|
||
/** | ||
* General Controller of HelloWorld component | ||
* | ||
* @package Joomla.Administrator | ||
* @subpackage com_helloworld | ||
* @since 0.0.7 | ||
*/ | ||
class HelloWorldController extends JControllerLegacy | ||
{ | ||
/** | ||
* The default view for the display method. | ||
* | ||
* @var string | ||
* @since 12.2 | ||
*/ | ||
protected $default_view = 'helloworlds'; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
<?php | ||
/** | ||
* @package Joomla.Administrator | ||
* @subpackage com_helloworld | ||
* | ||
* @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved. | ||
* @license GNU General Public License version 2 or later; see LICENSE.txt | ||
*/ | ||
// No direct access to this file | ||
defined('_JEXEC') or die('Restricted access'); | ||
|
||
/** | ||
* HelloWorld Controller | ||
* | ||
* @package Joomla.Administrator | ||
* @subpackage com_helloworld | ||
* @since 0.0.9 | ||
*/ | ||
class HelloWorldControllerHelloWorld extends JControllerForm | ||
{ | ||
/** | ||
* Implement to allowAdd or not | ||
* | ||
* Not used at this time (but you can look at how other components use it....) | ||
* Overwrites: JControllerForm::allowAdd | ||
* | ||
* @param array $data | ||
* @return bool | ||
*/ | ||
protected function allowAdd($data = array()) | ||
{ | ||
return parent::allowAdd($data); | ||
} | ||
/** | ||
* Implement to allow edit or not | ||
* Overwrites: JControllerForm::allowEdit | ||
* | ||
* @param array $data | ||
* @param string $key | ||
* @return bool | ||
*/ | ||
protected function allowEdit($data = array(), $key = 'id') | ||
{ | ||
$id = isset( $data[ $key ] ) ? $data[ $key ] : 0; | ||
if( !empty( $id ) ) | ||
{ | ||
return JFactory::getUser()->authorise( "core.edit", "com_helloworld.message." . $id ); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
<?php | ||
/** | ||
* @package Joomla.Administrator | ||
* @subpackage com_helloworld | ||
* | ||
* @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved. | ||
* @license GNU General Public License version 2 or later; see LICENSE.txt | ||
*/ | ||
// No direct access to this file | ||
defined('_JEXEC') or die('Restricted access'); | ||
|
||
/** | ||
* HelloWorlds Controller | ||
* | ||
* @since 0.0.1 | ||
*/ | ||
class HelloWorldControllerHelloWorlds extends JControllerAdmin | ||
{ | ||
/** | ||
* Proxy for getModel. | ||
* | ||
* @param string $name The model name. Optional. | ||
* @param string $prefix The class prefix. Optional. | ||
* @param array $config Configuration array for model. Optional. | ||
* | ||
* @return object The model. | ||
* | ||
* @since 1.6 | ||
*/ | ||
public function getModel($name = 'HelloWorld', $prefix = 'HelloWorldModel', $config = array('ignore_request' => true)) | ||
{ | ||
$model = parent::getModel($name, $prefix, $config); | ||
|
||
return $model; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<html><body bgcolor="#FFFFFF"></body></html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
<?php | ||
/** | ||
* @package Joomla.Administrator | ||
* @subpackage com_helloworld | ||
* | ||
* @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved. | ||
* @license GNU General Public License version 2 or later; see LICENSE.txt | ||
*/ | ||
|
||
// No direct access to this file | ||
defined('_JEXEC') or die('Restricted access'); | ||
|
||
// Set some global property | ||
$document = JFactory::getDocument(); | ||
$document->addStyleDeclaration('.icon-helloworld {background-image: url(../media/com_helloworld/images/tux-16x16.png);}'); | ||
|
||
// Access check: is this user allowed to access the backend of this component? | ||
if (!JFactory::getUser()->authorise('core.manage', 'com_helloworld')) | ||
{ | ||
return JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR')); | ||
} | ||
|
||
// require helper file | ||
JLoader::register('HelloWorldHelper', JPATH_COMPONENT . '/helpers/helloworld.php'); | ||
|
||
// Get an instance of the controller prefixed by HelloWorld | ||
$controller = JControllerLegacy::getInstance('HelloWorld'); | ||
|
||
// Perform the Request task | ||
$input = JFactory::getApplication()->input; | ||
$controller->execute($input->getCmd('task')); | ||
|
||
// Redirect if set by the controller | ||
$controller->redirect(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
<?php | ||
/** | ||
* @package Joomla.Administrator | ||
* @subpackage com_helloworld | ||
* | ||
* @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved. | ||
* @license GNU General Public License version 2 or later; see LICENSE.txt | ||
*/ | ||
|
||
// No direct access to this file | ||
defined('_JEXEC') or die('Restricted access'); | ||
|
||
/** | ||
* HelloWorld component helper. | ||
* | ||
* @param string $submenu The name of the active view. | ||
* | ||
* @return void | ||
* | ||
* @since 1.6 | ||
*/ | ||
class HelloWorldHelper extends JHelperContent | ||
{ | ||
/** | ||
* Configure the Linkbar. | ||
*/ | ||
public static function addSubmenu($submenu) | ||
{ | ||
JHtmlSidebar::addEntry( | ||
JText::_('COM_HELLOWORLD_SUBMENU_MESSAGES'), | ||
'index.php?option=com_helloworld', | ||
$submenu == 'messages' | ||
); | ||
|
||
JHtmlSidebar::addEntry( | ||
JText::_('COM_HELLOWORLD_SUBMENU_CATEGORIES'), | ||
'index.php?option=com_categories&view=categories&extension=com_helloworld', | ||
$submenu == 'categories' | ||
); | ||
|
||
// set some global property | ||
$document = JFactory::getDocument(); | ||
$document->addStyleDeclaration('.icon-48-helloworld ' . | ||
'{background-image: url(../media/com_helloworld/images/tux-48x48.png);}'); | ||
if ($submenu == 'categories') | ||
{ | ||
$document->setTitle(JText::_('COM_HELLOWORLD_ADMINISTRATION_CATEGORIES')); | ||
} | ||
} | ||
|
||
/** | ||
* Get the actions | ||
*/ | ||
public static function getActions($messageId = 0) | ||
{ | ||
$result = new JObject; | ||
|
||
if (empty($messageId)) { | ||
$assetName = 'com_helloworld'; | ||
} | ||
else { | ||
$assetName = 'com_helloworld.message.'.(int) $messageId; | ||
} | ||
|
||
$actions = JAccess::getActions('com_helloworld', 'component'); | ||
|
||
foreach ($actions as $action) { | ||
$result->set($action->name, JFactory::getUser()->authorise($action->name, $assetName)); | ||
} | ||
|
||
return $result; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<html><body bgcolor="#FFFFFF"></body></html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<html><body bgcolor="#FFFFFF"></body></html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
; Joomla! Project | ||
; Copyright (C) 2005 - 2015 Open Source Matters. All rights reserved. | ||
; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php | ||
; Note : All ini files need to be saved as UTF-8 | ||
|
||
COM_HELLOWORLD_ADMINISTRATION="HelloWorld - Administration" | ||
COM_HELLOWORLD_ADMINISTRATION_CATEGORIES="HelloWorld - Categories" | ||
COM_HELLOWORLD_NUM="#" | ||
COM_HELLOWORLD_HELLOWORLDS_FILTER="Filters" | ||
COM_HELLOWORLD_PUBLISHED="Published" | ||
COM_HELLOWORLD_GREET_NAME="Name" | ||
COM_HELLOWORLD_ID="Id" | ||
COM_HELLOWORLD_HELLOWORLD_CREATING="HelloWorld - Creating" | ||
COM_HELLOWORLD_HELLOWORLD_DETAILS="Details" | ||
COM_HELLOWORLD_HELLOWORLD_EDITING="HelloWorld - Editing" | ||
COM_HELLOWORLD_HELLOWORLD_ERROR_UNACCEPTABLE="Some values are unacceptable" | ||
COM_HELLOWORLD_HELLOWORLD_FIELD_CATID_DESC="The category the messages belongs to" | ||
COM_HELLOWORLD_HELLOWORLD_FIELD_CATID_LABEL="Category" | ||
COM_HELLOWORLD_HELLOWORLD_FIELD_GREETING_DESC="This message will be displayed" | ||
COM_HELLOWORLD_HELLOWORLD_FIELD_GREETING_LABEL="Message" | ||
COM_HELLOWORLD_HELLOWORLD_FIELD_SHOW_CATEGORY_LABEL="Show category" | ||
COM_HELLOWORLD_HELLOWORLD_FIELD_SHOW_CATEGORY_DESC="If set to Show, the title of the message’s category will show." | ||
COM_HELLOWORLD_HELLOWORLD_HEADING_GREETING="Greeting" | ||
COM_HELLOWORLD_HELLOWORLD_HEADING_ID="Id" | ||
COM_HELLOWORLD_MANAGER_HELLOWORLD_EDIT="HelloWorld manager: Edit Message" | ||
COM_HELLOWORLD_MANAGER_HELLOWORLD_NEW="HelloWorld manager: New Message" | ||
COM_HELLOWORLD_MANAGER_HELLOWORLDS="HelloWorld manager" | ||
COM_HELLOWORLD_EDIT_HELLOWORLD="Edit message" | ||
COM_HELLOWORLD_N_ITEMS_DELETED_1="One message deleted" | ||
COM_HELLOWORLD_N_ITEMS_DELETED_MORE="%d messages deleted" | ||
COM_HELLOWORLD_N_ITEMS_PUBLISHED="%d message(s) published" | ||
COM_HELLOWORLD_N_ITEMS_UNPUBLISHED="%d message(s) unpublished" | ||
COM_HELLOWORLD_HELLOWORLD_GREETING_LABEL="Greeting" | ||
COM_HELLOWORLD_HELLOWORLD_GREETING_DESC="Add Hello World Greeting" | ||
COM_HELLOWORLD_SUBMENU_MESSAGES="Messages" | ||
COM_HELLOWORLD_SUBMENU_CATEGORIES="Categories" | ||
COM_HELLOWORLD_CONFIGURATION="HelloWorld Configuration" | ||
COM_HELLOWORLD_CONFIG_GREETING_SETTINGS_LABEL="Messages settings" | ||
COM_HELLOWORLD_CONFIG_GREETING_SETTINGS_DESC="Settings that will be applied to all messages by default" | ||
COM_HELLOWORLD_FIELDSET_RULES="Message Permissions" | ||
COM_HELLOWORLD_FIELD_RULES_LABEL="Permissions" | ||
COM_HELLOWORLD_ACCESS_EDIT_DESC="Is this group allowed to edit this message?" | ||
COM_HELLOWORLD_ACCESS_DELETE_DESC="Is this group allowed to delete this message?" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
; Joomla! Project | ||
; Copyright (C) 2005 - 2015 Open Source Matters. All rights reserved. | ||
; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php | ||
; Note : All ini files need to be saved as UTF-8 | ||
|
||
COM_HELLOWORLD="Hello World!" | ||
COM_HELLOWORLD_DESCRIPTION="This is the Hello World description" | ||
COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE="Hello World" | ||
COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_DESC="This view displays a selected message" | ||
COM_HELLOWORLD_INSTALL_TEXT="HelloWorld Install script" | ||
COM_HELLOWORLD_MENU="Hello World!" | ||
COM_HELLOWORLD_POSTFLIGHT_DISCOVER_INSTALL_TEXT="HelloWorld postlight discover install script" | ||
COM_HELLOWORLD_POSTFLIGHT_INSTALL_TEXT="HelloWorld postflight install script" | ||
COM_HELLOWORLD_POSTFLIGHT_UNINSTALL_TEXT="HelloWorld postflight uninstall script" | ||
COM_HELLOWORLD_POSTFLIGHT_UPDATE_TEXT="HelloWorld postflight update script" | ||
COM_HELLOWORLD_PREFLIGHT_DISCOVER_INSTALL_TEXT="HelloWorld preflight discover install script" | ||
COM_HELLOWORLD_PREFLIGHT_INSTALL_TEXT="HelloWorld preflight install script" | ||
COM_HELLOWORLD_PREFLIGHT_UNINSTALL_TEXT="HelloWorld preflight uninstall script" | ||
COM_HELLOWORLD_PREFLIGHT_UPDATE_TEXT="HelloWorld preflight update script" | ||
COM_HELLOWORLD_UNINSTALL_TEXT="HelloWorld Uninstall script" | ||
COM_HELLOWORLD_UPDATE_TEXT="HelloWorld Update script. HelloWorld now updated to version %s." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<html><body bgcolor="#FFFFFF"></body></html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<html><body bgcolor="#FFFFFF"></body></html> |
Oops, something went wrong.