Need help creating a skeleton for a client portal on DNN - dotnetnuke

Total DNN noob. I can code some WebForms and MVC, but having no luck finding anything concrete out there about doing what I want in DNN
How would I go about setting up a client portal in DNN? I want to have separate areas for the client, including a main dashboard that aggregates content for the client from the other areas. The other areas would include a matter area (with matter information - some auto generated for client, other information to be input by client), a documents area, an events area, a tasks area, a communications area (for chat, or forum style questions) and a profile area for the client (contact info, invoicing, etc.).
What I'd like is for a client to login and see only their items. An admin would log in and get the same "screens" or "areas", but with aggregated content for ALL users.
I know that's a lot, but I would imagine setting me up with a way to do the overall app and then how to create the areas to navigate to would get me going. I know there are modules for each of those things out there, but a) I wouldn't know how to integrate this into one client app and b) some are cost prohibitive.
Most of what I find focuses on setting up one module. Do I go that route and set up user controls within for the different areas? Or do I create separate little modules and tie them together? This is primarily where I am stuck. I can create something like this with standalone web forms or MVC. Hooking into DNN is where I get stuck.
I appreciate any guidance / samples.

There are a LOT of questions here and many ways that you can go about doing this. You could use third-party modules to handle this but you will need to figure out exactly which ones give you the functionality that you want.
If you are looking to do things custom, this is where it gets a lot easier. DNN for users can manage user identity and roles. Based on what you are saying it seems like you would have some custom modules that store all information based on UserId. By default you only display the information for the current user. However, if the user is in a specific role, say for example "Administrators" you would display all content.
This is pretty easy as with any DNN control that inherits from PortalModuleBase you have the UserId available to you as a property. Then you can use UserInfo.IsInRole("Administrators") to check for admins.

Related

How to create separate admin panel for customer in joomla 3?

I am working on a project where my client has no idea about joomla admin panel.
So I have decided to provide a separate admin pannel which my client can access and manage few things.
I am also having multiple pages and sub-pages in this admin panel.
Lets say I want to give multiple manage links.
manage item
sub-menu
manage item 2
I am little confuse how do I do it, once I thought about component and moduel but I don't know how to add menu links in components for front end.
I am using joomla 3.0.
Many thanks in advance.
If your intention is creating a backend alternative to joomla to control joomla's frontend, this is a hard thing to do if you are just a e-commerce website developer.
But if you need a different account other than your administrator account, you can add one account and edit it's privileges.
A second admin panel for easier use? sorry that sounds not good. Just do it like serhat above said. make a new account for joomla admin-panel. cut of the privileges so the user see only the things he has access to! its better then coding a fully new admin panel. there is already a fully configurable panel so why do another one?
Give the users just what they have to see and hide the rest (via admin-privileges)

AngularJS: Triangular three way binding -- Project Structure

I am currently working out an admin interface with a Live Preview and I am still not 100% on how to structure it properly.
My page basically consists out of two parts. The Admin Interface and the Live Preview. Obviously, the Admin Interface fills some variables with data and the Live Preview displays this.
Therefore, the Admin Interface needs to bind variables, that the Live Preview will bind for reading.
Furthermore, the Live Preview in the end (if possible) should be re-used as the final product that displays a set of information. All it does is display a single JSON file that is received from the server (when in product mode) and in case of the Live Preview it will need to update the data Live as its edited.
One more note: Both, the Live Preview and the Admin Interface consist of elements like directives again and parts of the Admin Interface need to be loaded dynamically by having a user add a page with a certain type of content.
After researching how modules are handled I came up with the following:
Live Preview is a Module
Admin Interface is a Module
My page includes both modules
Both of them should be connected to something central that provides the ability of editing the data (bound variables?) and reading the data so its updated live.
Ideally, this would be a service, so later on when loading the "Live Preview" as an actual product, can just use the same kind of service which in this case provides the information from our Database instead of a variable in its scope.
Is this a good approach? Is there a way to have a service that on the one hand side can be edited lively like in a two way binding so that my live preview can also pick it up? Is there something I can use instead of the services, like a controller? How should I go on about this?
You are doing everything right. I don't think that it is relevant as to whether the preview and admin panel are their own modules or contained within one. You will find people using module seperation in a wide variety of ways within their Angular apps.
What I think you said that is important and correct is to connect the preview and admin panel via a Service. Other methods of connecting these two (i.e. $rootScope) are costly and bad practice.
If you will be re-using live preview in many locations of your application I would wrap it in a directive.
You should feel confident in your approach, it's a good one.

Remove site from DotNetNuke

My company has a enrollment website that is currently in DotNetNuke. I've been directed to "strip out nuke from the site" but from everything I've read it is the opposite that the site is in dnn not the other way around.
Has anyone had to migrate a site from dnn and if so can you point me towards some resources or give some insite to get me started?
The site is dnn 5.04
If you want to strip things down to absolute bare bones (HTML, images, JavaScript), you could use a tool that basically copies down an entire website to your local machine, such as HTTrack.
Download the app, give it your DNN website's URL, and it'll spider the entire website, download each page individually, along with any of its images and scripts. You'll be (theoretically) left with a full website containing all your content pages, which you can edit in a plain text editor.
All the user management, role management, content management, admin only areas, protected content, etc. will not carry over with this method, but that will be the case regardless if you're moving from DNN to a normal static HTML website.
An "enrollment website" sounds more like an application than a static HTML site and if that's the case then just grabbing the rendered HTML isn't going to be the best option as you wouldn't get any of the functionality. My approach would be to first find out why they want it pulled out of DotNetNuke. Perhaps it was poorly implemented and they are blaming DNN when the problem was actually how it was built. DNN may be a good solution and it might be best to convince them to leave it as DNN but improve the implementation.
If you do need to pull an application out of DNN and the enrollment piece was built as a custom module, it should be fairly easy to convert the ascx files of the custom module to normal .net User Controls.
If the Enrollment application was built using a Forms Module of some form, then you will likely need to rebuild it from scratch.

Salesforce: Adding items to 'Personal Setup' and 'Customize'

I am writing a simple salesforce app that requires app-level and user-level configuration. I have created custom objects for these settings, but cannot figure out how to add links to the Setup page (Personal Setup and Customize) so that the settings can be managed.
Quite a lot of research, and a question on a salesforce board, have left me none the wiser. I have seen a couple of scripts on the web that hack the setup sidebar with javascript (eg http://userscripts.org/scripts/show/95361) ... but this can't be the right way to do it surely?
Thanks
Jim
You are unable to do this without hacking because Salesforce want it so that you don't require over-explicit setup of any app you create - they want you to make it data-independent and in fact it may fail a security review if it is data dependent. It will also likely cause you headaches in correctly unit testing the app.
My suggestion would be to have a set of custom pages which are linked to on the home page for a user which display if they have no current values (so the first thing they see on the home page when they login for the first time is a "Hey, before you use this app you need to do some configuration through this handy wizard" and then block access to other areas of the app (i.e. display warning messages on other pages) if the app has not had this data setup.
That way you are not hacking and are providing a nice user experience around the extra setup.
Paul
DO you just want to add a new TAB on the top menu that links to the Edit page for your new sObject?
If so:
Goto setup https://cs3.salesforce.com/ui/setup/Setup
Click on 'Create' > 'Tab'
Pick the sObject you want the tab edit, the click next until you save the new tab.
There is no supported way to augment the Setup menu.
You should probably be using Custom Settings for what you are describing - they were designed for app-level and user-level configuration, and are available from Setup.
Otherwise, if it really is custom setup that requires fancier logic / UI / etc, you may want to do what many SFDC ISV's do and ship your app with its own configuration tab that's hidden, and/or custom VF page that manages app settings.

Multi-shell application?

I am new to Prism.
Imagin a scenario where you want to develop a multi-region application, but there should are many types of screens and I want those regions to be in one screen only, whereas, for instance in the HomePage which is the application map (like in QuickBooks, see image bellow), there should be no regions, and the whole layout should be different.
Also I want that the application should be available for registered users only; unregistered users are automatically forwarded to the LoginView, and they're not supposed to see the regions etc.
How are these two aspects achieved?
I think I am going to implement the entire application using View-Based Navigation.

Resources