DotNetNuke - Module settings disapear on new user control - dotnetnuke

I have a DNN module which renders a user control (view.ascx)
All is ok ( I am logged in ) and I get the DNN settings menu.
however when I add another control and load it like so:
string url = Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "View_Details", "mid=" + ModuleId.ToString());
Response.Redirect(url);
I lose the settings link when the new control loads.
Any ideas? Is there a property somewhere to turn on settings for the loaded user control?

When you have "mid" in the querystring, you're going to be using module isolation (i.e. that module control will show up in the edit skin's ContentPane and will be the only module on the page). When in module isolation, the action menu doesn't include settings. This is just a fact of DNN.
You have a couple of options. First, you could choose another navigation method (see Michael Washington's old (but still good) Module Navigation Options for your DotNetNuke® Module article).
Second, you could put your own link to the Settings on that control. You may be able to implement IActionable and just add it back to the action menu (I'm not sure if that would work), or you can add some sort of button or navigation bar to your module (potentially on all of the controls for consistency).
Are you designing this module for the general DNN community, or for a client that isn't familiar with DNN? People with DNN experience won't expect to be able to get to the settings one they're "inside" a module.

Related

Installed DNN Module - Not showing in dropdown to give link

I had an link in my DNN site Menu - pointing to aspx page of my installed module.
I replaced this link with an external link.
And now i wish to change back to old one - aspx from module. BUT am not getting that listed in the dropdown
How to get that back or I missed anything ? I could found the module still in that EXTENSIONS.
Please suggest
Rigin
I think you may be a little confused,
Modules are placed on pages, (One or mor module generally makes up a page.
Menu links refer to pages,
To add a module to a menu it must be on a page.
Once you have placed you module on a page you can select it from the select a web page drop down
A dnn module got 2 pages a view page and a settings page. So you must be sure that your module start's with the correct page.
So what you want is not possible the way you want it.
Best way for you is to control the page in your module. You can control this with for example a user controls(ascx). See image for a default module view.

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.

dotnetnuke clicking left bar opening page on the content pane(BEST PRACTISE)

ok i have created a picture gallery module in the left bar , there is a page viewpicturegallery.ascs . on clicking any image i want it details to open in the content pane in the middle . how would i do it.
can some tell me the process? i would made a new page or new module or what? for the details in the middle
here are some steps you can achive it:
create two controls in a single module for showing images and showing details for a single image and create two different definitions, each having a default view control as the one you want to show.
when you install the module in the page, it will show both definition controls in content page, you can re-arrange them in whatever panes you want.
search for inter module communication in dotnetnuke and grab a sample from net
you will find that there are two module definitions participating in the communication. Your list control will be the IModuleCommunication and your details view will be your IModuleListner
That's how you can achieve the things you want.
Please tell me if you have any other questions.
Short answer: use multiple DNN modules and communicate between them via querystring parameters, postbacks or IModuleCommunicator. Depending on your requirements, the details view may be possible to implement using a Text/HTML module and client-side tools like jQuery and plugins only?
More details on using multiple interconnected DNN modules:
You can define multiple modules in the .dnn manifest section.
This way, each interconnected submodule is part of the same install package, but you'll only have one visible module in the in the control panel's "Modules" dropdownlist. Adding this composite module to a page will add all the submodules, but you can remove any one of them independently of the others.
You should be aware that each submodule that directly inherits PortalModuleBase will have its own Settings object. If you want to share settings, you'll have to inherit from a shared parent ascx that inherits PortalModuleBase or write a function to read settings from another module in the same page (having the same ModuleID helps here).
Communication between modules can be based on querystring parameters, which is recommendable for opening a details view so that you can open it even if the gallery module weren't present. PostBacks let you use UpdatePanel, though. Modules in the same page can also use IModuleCommunicator interface for event-based communication. For example, I use an event calendar module with a "month view datepicker" module and a "list view of events" module. List view module communicates active days to the monthview via IModuleCommunicator. This way I can emphasize the active days with a boldface font in the datepicker. For more details on IModuleCommunicator, see Rafe Kemmis's blog post.

DotNetNuke 5: How do you edit module content in DotNetNuke 5?

How can I edit modules in DNN5? I have previously used DNN4. It is not obvious to me what to do now.
There isn't anything that has changed substantially between DNN 4 and DNN5 in terms of editing module content. First, make sure that you're logged in with a user who has edit permissions to the module. Then make sure that you're viewing the site in Edit mode (the radio buttons on the top left). Then, there will probably be an "action menu" in the top left corner of the module's container, from which you can access the module's edit page.
If you're still having trouble, it may be that you're using a container that doesn't have the standard action menu. You can try changing the container for the page or the site (in page or site settings) to see if that addresses the issue.
Finally, which module are you trying to edit content in? Is it an HTML module, or some other module?

dotnetnuke: can we create a master page?

Can we create a content managed master page in dotnetnuke?
eg. I want the right pane and bottom pane to be content managed, but to show the same thing across all pages.
Thanks
What you are describing is essentially what DNN calls a Skin.
A DNN skin is actually just an ASP.NET user control (ascx) that dictates page-wide or site-wide look and feel, which offers developers the same functionality as a Master page, except that it ties into DNN-specific elements and uses some DNN-specific user controls, such as menu/navigation, logo, breadcrumbs, login/user account links, etc.
Now, in order to add the ability to provide content management capabilities site-wide, you specify an area in your skin to place a module (let's say, a Text/HTML module). This area is called a pane. Once you add a module to this pane, in its settings you can tell it to appear on every page. This way, the module can be edited on any page, and its changes will be reflected on all pages automatically.
Check out DNN's site, as it contains a TON of documentation on how to do many common tasks: http://www.dotnetnuke.com/Support/Documentation/DownloadableFiles/tabid/478/Default.aspx. Under the Technical Documentation section, you'll want to grab the Skinning document (I believe it's a PDF).
DNN Modules can be set to appear on all pages by checking a checkbox in the module settings. However DNN does not use the concept of a Master Page. It injects modules (user controls) in containers on a single aspx page at runtime.
A Master Page would be a great addition to DotNetNuke you cannot replace content in a single area of the page. The whole page refreshes. For example if you have a menu and you only want the content of what you select to appear in a specific content area without refreshing the rest of the page you have to resort to third party modules that attempt to do that but usually fail. There are 'module wrappers' but all the ones I've tested have issues with modules that allow the user to edit content. Edit screens are usualy different user control files (ascx) that are launched when you edit the module content. Since the page refreshes with the new page you have lost your place. Those module wrappers work fine for static content and some other controls but not for all controls.
IFrames can be used (DNN has one) to trade out content but that doesn't get rid of the probelms mentione above. I'm heavily invested in DNN, running the UCanUse.com web site so this isn't a slam on DNN. I just thought I'd try to answer the quesiton with detail.

Resources