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

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.

Related

How do I modify Drupal's Admin Screens?

I'm looking to edit Drupal's admin pages.
Some of the things I'm trying to achieve:
Remove is the the filter setting on the Content page/node/view. In other words, if I go to to the Content page and I filter by a certain type of node, then I leave that page, then come back, the filter setting is saved, I'd like it to reset each time I visit the Content page.
I would like to modify some of links associated with these pages, as an example on that Same Content page, the titles of the pages are linked to their 'front-end' views, I'd rather have them link to their 'edit' screens.
While I have been successful in modifying the front-end theme of Drupal, by editing the actual php files. I can't find the the same php files for the Admin theme. In our case we are using Seven (7.21). I've read something about views, and thought maybe the entire Admin theme is built as views, aka there no php files involved like the front-end theme has, but under the Views section I did not find any either. I'm still pretty new at this and coming from the Wordpress world, this is a Drupal is a lot different.
The logic for that section of the admin area is at (from the public root):
/modules/node
Specifically "node.admin.inc"
That being said, I don't recommend editing core scripts, as they will be overwritten when you update the core.
You could explore making your own module to supplement that page, or your own view or explore some pre-made modules, such as "Admin Views"
Find de view displayed and go to its configuration :
1 - Edit configuration view like suggested here : https://drupal.stackexchange.com/questions/44440/how-to-remember-exposed-filter-choices
2 - Rewrite output views to rewrite link : field https://www.drupal.org/node/1578524
Another option is to create and use your own dashboard/views to achive like you want http://definitivedrupal.org/suggestions/creating-custom-administrator-view-content
also you can see contrib module : https://www.drupal.org/project/admin_views
You don't have to use that default content overview page at all. Make your own instead:
Make a page view (you have to install views module if you already did not: https://www.drupal.org/project/views) and use table layout. Make sure that page paths starts with "admin" so it will use admin theme. Also pay attention about permissions, so only specific set of users (admins) can use it.
For that view you can freely select what columns you what to show. You can also allow ordering by any column and action if you click on some field.
Use exposed filters to add filtering form, again add any filters you need. You can even set the form to use AJAX, to do auto-submit when some filter field is changed, include reset button and more. Also for every exposed filed you can select (at fields settings) should it remember it's value or not.
At end, edit admin menu and add your new page to it so it will look and act as default one but will offer much more functionality. You can even totally remove default one from the admin menu.
Views module is very powerful, not only for front-end but also for back-end content handling.

Dotnetnuke with responsive skin

Is there a way to mark containers by numbers so that they show one after another in a certain order when responsive skin is used (when mobile device loads the page)?
I am using "Tidy" responsive skin and my plan is to have a module that sits on every page and gets "Request.Browser.Browser" on load so if it's a mobile browser I just plan to add this "?SkinSrc=%5BG%5DSkins/Tidy/TidySocial&ContainerSrc=%5BG%5DContainers/Tidy/PanelGrey" to my url and reload the page with Tidy skin, while making a Session variable that the user is on mobile. The problem is that containers with modules (html module, gallery, my custom modules) are not ordered one after another in a way I would like them to be.
This isn't really possible within DNN. The way to handle responsiveness and order is to control the order of the panes and modules within those panes when they are placed on the page (or change the order after). You can't easily target modules once they are on the page to control their positioning without doing custom development within the skin that would need to know details about the modules and locations of those.
ivan
you need to Change mobie.css of tidy to get you desire result
it is not possible in DNN by default
Latest DNN Install has responsive feature which is also good.

How to share DotNetNuke content across multiple pages?

I have just created a new DotNetNuke 6 website. The default installation has a social links area which is on each page. Can I change the contents of the social links (e.g set the Facebook href) in one central place or do I have to go to each page and edit the contents in each place?
DotNetNuke has a notion of referencing modules that would come in handy here. Essentially you can drop a new module on the page and configure it as you please, then go to another page and instead of dropping a new module, you select an existing module from another page. Now each of the modules appear to be separate, but are actually just the same module appearing in different places. You can then edit the module and the content will change across pages. *
To answer your question specifically - I don't believe this is how the default content is set up. You would need to go in and delete all of them (save one) and then reference the remaining elsewhere.
A couple of notes:
This behavior isn't absolute across all modules, technically each module gets to decide how it's content is shared across pages. Most modules, and notably the text/html module, work how I described, but some more advanced modules may not.
Additionally, the "copy module" option in the photo above will create a new module based on the original. If you don't have copy module selected, no new module will be created, the existing one will simply be referenced.

DotNetNuke - Module settings disapear on new user control

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.

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