![]() |
|
sfAdminDashPlugin - 0.9.1Dashboard interface for application backend |
|
![]() |
207
users
Sign-in
to change your status |
Dashboard interface for application backend |
MOVED TO GITHUB
A dashboard and menu for application backends.
| Name | Status | |
|---|---|---|
|
|
lead | moc.kcurtsnez <<ta>> nivek |
Copyright (c) 2008-2009 Kevin Bond
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
| Version | License | API | Released |
|---|---|---|---|
| 0.9.1beta | MIT license | 0.9.0beta | 16/12/2009 |
| 0.9.0beta | MIT license | 0.9.0beta | 16/12/2009 |
| Version | License | API | Released |
|---|---|---|---|
| 0.9.1beta | MIT license | 0.9.0beta | 16/12/2009 |
| 0.9.0beta | MIT license | 0.9.0beta | 16/12/2009 |
| Version | License | API | Released |
|---|---|---|---|
| 0.9.1beta | MIT license | 0.9.0beta | 16/12/2009 |
| 0.9.0beta | MIT license | 0.9.0beta | 16/12/2009 |
| 0.8.1beta | MIT license | 0.8.1beta | 28/06/2009 |
| 0.8.0beta | MIT license | 0.8.0beta | 04/02/2009 |
| Name | Channel | Version |
|---|---|---|
| sfJqueryReloadedPlugin | plugins.symfony-project.org | 1.4.0-2.0.0 |
I found for all my symfony projects which had backends I had to create a menu to access all the various modules. This plugin automates the process by using a configuration file.
sfJqueryReloadedPlugin This plugin depends on sfJqueryReloadedPlugin to create the dropdown menu and manipulate the view. If this plugin is not yest installed, the symfony plugin dependency system will install it when you install sfAdminDashPlugin.
Install the plugin, clear the cache and activate the sfAdminDash module in the application's settings.yml.
enabled_modules: [default, sfAdminDash]
Publish the plugin's assets:
plugin:publish-assets
If the modules are admin generator modules, deactivate the default admin generator theme in each module's generator.yml by creating a css property. You can either point the css property to a real stylesheet or just use a placeholder.
generator:
class: sfPropelGenerator
param:
model_class: Article
theme: admin
non_verbose_templates: true
with_show: false
singular: ~
plural: ~
route_prefix: article
with_propel_route: 1
css: nothing #setting the css to a placeholder
config:
actions: ~
fields: ~
list: ~
filter: ~
form: ~
edit: ~
new: ~
In the future I would like to create an actual theme by overriding the default files but I found an issue when trying to do this (see my ticket)
Add the plugin's header and footer partials to your applications global layout:
<body>
<?php include_component('sfAdminDash','header'); ?>
<?php echo $sf_content ?>
<?php include_partial('sfAdminDash/footer'); ?>
</body>
At this point your modules should be styled with the joomla-like theme. There should also be a warning saying Plugin not configured. Please see documentation. We will fix that soon.
Set your application's homepage in your application's routing.yml to:
homepage:
url: /
param: { module: sfAdminDash, action: dashboard }
You should still see that warning, we will address that next.
The plugin's app.yml file looks like the following:
all:
sf_admin_dash:
web_dir: /sfAdminDashPlugin
image_dir: /sfAdminDashPlugin/images/icons/
default_image: config.png
resize_mode: thumbnail
site: My Site
include_path: true
include_jquery_no_conflict: false
logout: true
login_route: @sf_guard_signin
logout_route: @sf_guard_signout
You can override these settings as you see fit.
Items are controlled by your application's app.yml file. The best way to show how to use this is with an example:
I have created backend application and 2 admin modules: Comment and Article.
To create dash/menu items for these modules I use this format:
all:
sf_admin_dash:
items:
Articles:
url: article
Comments:
url: comment
This creates 2 items on the dashboard and a Menu dropdown. The url
property should be an internal URI. You can also set credentials and an
image. The image property can be just the image name - the plugin will look
for it in the folder specified in the global settings. Alternatively you can
also specify an absolute path, like so image: /somefolder/someimage.jpg.
The credential property can be used to hide options from users who do not have specific credentials. This gives the ability for different users to see different options. The format for this is the same as when setting credentials in security.yml.
NOTE: This just prevents the user from seeing the item. You still need to setup the same credentials in security.yml to prevent the user from accessing the module.
Here is an sample configuration:
all:
sf_admin_dash:
items:
Articles:
url: article
image: book.png
credentials: [[admin, publisher]]
Comments:
url: comment
image: textcloud.png
credentials: [admin]
The above example shows the Articles item only to users with the
admin or publisher credential and the Comments item only to
users with the admin credential. The images are self explanatory.
Packaged with this plugin is a small library of images that can be used.
You can group items into categories as well by embedding the items into a category name property under categories property:
all:
sf_admin_dash:
categories:
Blog:
items:
Articles:
url: article
image: book.png
credentials: [[admin, publisher]]
Comments:
url: comment
image: textcloud.png
credentials: [admin]
Category2:
items:
...
Category names are not only seperated on the dashboard but they have their own dropdown menu.
You can set credentials to entire categories like so:
all:
sf_admin_dash:
categories:
Blog:
credentials: [admin]
items:
Articles:
url: article
image: book.png
Comments:
url: comment
image: textcloud.png
This hides the entire category from the user if they don't have the admin credential.
By default the plugin header prints a cookie trail in the format "module / action". To make module and action names more userfriendly, you can overwrite them using the "translator" property like so:
all:
sf_admin_dash:
translator:
sfGuardUser: # the module we are translating
title: Users # title for that module
actions: # actions array
editUser: edit # here we specify each action and its translation
Packaged with this plugin is a partial called login. Currently, it works with sfGuardPlugin. Include it like this:
// in application/modules/sfGuardAuth/templates/signinSuccess.php <?php include_partial('sfAdminDash/login', array('form' => $form)); ?>
Feel free to email me with suggestions/bugs.
