Smart-Thinker Home Page Module Configuration Guide
Version 04.03.01
Thank you
for trying the Smart-Thinker HomePage module. We hope you find it useful!
Overview
Please
ensure you have read and adhered to these instructions before contacting
support.
If you wish
to request a new feature, please you Feature
Requests.
If you have
found a bug, please raise a support issue by following these steps.
Key Information
- Works on DotNetNuke 4.3.3+
only. This version will not work on DotNetNuke 3.x – you can read more
about it here.
- Do not
edit/delete/assign/unassign the “STHomePageEdit” role – leave this to the
module
- Be careful what modules you
give your user’s access to. Do you really want to let all users be able to
run adhoc SQL queries using the DNN core Reports module? Think careful and
ask on the Forums if unsure.
- If unsure, create a page and a
new role and put a user in this role and give them edit rights over the
page. This is almost exactly what this module does behind the scenes (but
with a scaled-down/restricted Control Panel)
- You can try a free trial on a
test DNN installation, but please adhere to our Licensing
Agreement.
Background
Firstly,
please bear in mind that this module was designed to bypass some of the
limitations in the current DotNetNuke architecture. It uses the existing architecture
and layout as much as possible to create a consistent, standard interface for
users. It is assumed that a user is familiar with basic DotNetNuke concepts
such as pages and modules.
It should
be stressed that as of version 01.00.01 this module does NOT create one role
per user, which is how you would achieve the same effect manually - it creates
one role only called "STHomePageEdit" which must not be edited or
deleted. We highly recommend that you do not assign View or Edit rights to this
role or add/remove it from a user’s roles (the module will do this
dynamically).
Licensing
As of
version 04.03.01, this module now has a Parent/Child portal limit check
depending on the License you have. Please see our Licensing
Agreement for more information if unsure.
Set up
Add the
Smart-Thinker HomePage module to your website, and set up the Role rights on
who can see the button - you can decide who is eligible for a HomePage by
assigning the View Role. Only those users who can see this module can create a
HomePage. It should not be viewable by non-registered users as they cannot
create pages. Do not use caching on this module as it can have unwanted
effects.
As an administrator,
select which modules will be available for selection by the user. You can do
this by editing the module settings. Bear in mind that some modules expose
sensitive information or have access to Portal-wide information. Think about
each module careful before you allow the user to select it. The majority of the
DotNetNuke core modules should all be ok, with the one new exception being the
Reports module. We have defaulted the list to blank so that you can decide what
your users can do. This means that when a user goes to their HomePage for the
first time they will have no modules to add unless you have done the above
step.
For
example, you will probably want to give them at least the HTML module,
Announcement module, Image module and Links module so they can publish their
own favourite links or text. You could also give them a Gallery module or Blog,
although be sure to check with the module developer on the functionality if it
is a 3rd party module. We are not responsible for the functionality for any 3rd
party module, but if you want your users to be able to use the module in
question then add it to the list. An example of where you need to be careful is
if you had a SQL module on your site - you probably do not want your
average
user running SQL statements against your database, so don't give them access to
a module like this. If in doubt, do not give it to them; you can always add it
later. You can even test your module selection by creating your own page and
see what is available. We also recommend that you assign the Smart-Thinker
HomePage module to your available module selection. When placed on a page and
viewed by a normal user, this doubles as a Control Panel operator, so the user
can hide the Panel when it is not in use. In fact, it is critical that this
module is always on a user's HomePage so that they can edit their page. If they
erase it then an Administrator will have to add it back to their page (it may
be worth mentioning this fact to your users) and their page will be rendered
useless.
You can
also choose where new pages are placed. You will probably just want to select
the Home or first page in the module settings so that all new pages are placed
under there. As an administrator, you can also decide if new pages are visible
on the menu or not (of course, a person will only see it if they have the
necessary rights). Please note the difference between visible and accessible
(this works the same as the standard DNN functionality of having a Hidden
page). Pages by default start off by being visible to all users, including
unauthenticated users. It is up to the HomePage owner to change what they want
to show on a page. For example, you may want to make your Links module private
on your own page, so you would set the rights on that module to be visible by
the STHomePageEdit role only. Or you may be holding a meeting and want all
members of a certain role to have access to a particular discussion module, so
you would assign the View right to this role on that module.
The
"visibility" module setting determines whether or not new pages are
visible on the menu or not. It is only recommended that you make them visible
if you are allowing a small group to have their own pages. This is limited
because of the standard UI - if you imagine you create a new menu item called
"Members HomePages" and you have 1000 members who create a page, this
menu item will soon be very tricky to navigate with 1000 visible entries. You
may instead want to make the page invisible, and then it is up to the user to
give out the URL of their personal page. Even if a page is invisible, it can
still be navigated to by pasting the URL into the address window (An
enhancement is planned for a future version to allow user's to change the accessibility
of their page, but for now it is all users and module rights need to be edited
to show or hide information).
We suggest
that you create an average test user and test the process to ensure your
understand the functionality.
Bear in
mind that this module uses standard DotNetNuke functionality, so as an
administrator you can still move pages, delete them or change them as you see
fit. The only difference is that each user can also change their page. Bear in
mind that for each user that creates a page, that is one more page in your database,
with all it's associated modules and permissions. There is no imposed limit to
the number of pages within a portal, but obviously core DNN functionality may
slow down if you had 10 000's of pages. As mentioned before, please note that
caching should not be used on this module as it will cause unwanted effects.
Customizations
Feel free
to customize the .ascx file to suit your requirements. You may want to change
the text on the button or add some blurb around it to explain to the user what
to expect. You could always add another HTML module next to it or modify the
footer or header for an easier result. Most of the language strings can be
edited in the normal fashion using the core localization tools (Language
Editor). Our aim is to make the module 100% localizable in the next version.
Check the Tips
and Tricks section for more integration and customization ideas.
Technical Architecture
The
limitation of 1 role per user no longer exists, and has been replaced by 1 role
in total called "STHomePageEdit".
Do NOT edit
or delete this role, or do any manual assignment with it as an administrator.
Also - do NOT change the Description of a user's HomePage - we did not want to
modify the core so we used these fields to mark a page as belonging to a
certain user. If you fiddle with Page attributes then unwanted functionality
may occur. Please let us know on the Forum if you require a change and we can
help you. For module version 01.00.00 the description is STH-<UserID>,
and for modle version 01.00.01+ this has been amended to STH-<RoleVersion>-<UserID>
to mark the page as upgraded (the visibility between pages is different in the
new version.) Note that this naming convention (<Role Version> is loosely
related to the Module Version.
This module
uses a scaled-down custom Control Panel for normal users called the
SMARTTHINKERHPBAR. It will change your Host Setting to point to this Control
Panel, and it will load the default Control Panel if you are an administrator
(ie. you will notice no difference from before). This does mean that if you
were using a different or custom Control Panel before installing this module
then you will need to specify it in the Smart-Thinker HomePage Module Settings
so it can be loaded for Administrators.
Upgrading
As of
version 01.00.01 this module requires only one Role. The previous version
created one Role per User, but this is no longer necessary. The upgrade will
erase any old Roles created by the first version of the module when the
limitation was in place (i.e. You should not see any Smart-Thinker created
roles names "STH-x" (where X is a UserID) after this install). The
upgrade process also moves any HomePages without associated users (e.g if they
unregistered themselves) to the Recylce Bin. You may want to review the Bin
after your upgrade.
Please note
that due to an error in the IUpgradeable core interface, the upgrade process is
done by setting a module setting to the new version number. This process will
run once only and create the required "STHomePageEdit" role. New
Smart-Thinker HomePages are visible by all users (including anonymous users)
and are editable by the owner and administrators. Each existing HomePage will be
upgraded to match these settings the first time the Owner browses to it. It was
found that a mass page upgrade caused a timeout due to the amount of database
traffic when saving multiple tabs in a loop.
The page
name has also been updated from "My <PortalName>" to "<DisplayName>
- HomePage" - if you are upgrading than an administrator will need to
change the PageNames if required.
Removing unused pages
One of the
features planned for a later version is a scheduled task to remove unused
HomePages - for example, if a user has not added any modules to a page after 1
week then it will be removed (they could always re-create it when they were
ready).
Once a
HomePage is created, it behaves as a normal page, so you can safely erase it
with no problems (if a user clicks on “My HomePage” then a new page will be
created.
Uninstallation
We did not
want to take a chance with erasing hundreds of user pages, so we decided to
leave the user HomePages after uninstallation. We can help you erase them
manually using a SQL script - please contact us if this is required.
If you were
using a Control Panel other than the default one then you will need to update
your Host Settings after Uninstallation to reflect this. The role used in this
module will be erased (hence only Admin will have Edit rights on the remaining
pages).
Source
The source
for this module is in C# and was created in Visual Studio 2005 using the WAP
project model. Please see our licensing options for information on how to
obtain it.
If you have
any queries then please see the top of this document for more information.