B i t s O f S h a r e P o i n t C o n s u l t i n g L L C > B l o g P o i n t > Categories
SharePoint 2007 - Wiki View Solution

I am not thrilled with the OOB wiki that SharePoint provides.  So I created a Wiki solution that can be put on any page within the site that provides a better view of the wiki with a nice navigation menu to the left.

Here is a screen shot of the solution.

wikiview.png

Here is a link to the Wiki Web Part that you can add to any page on the site that has the wiki.

Download the Web Part Here.

After you add this you will need to change several things:

  1. The link to ​jQuery is to Google, you may want to change that to a local copy.
  2. The link to SPServices needs to be changed to a location on your SP site.
  3. Next you will need to change the "wikiListName" to the name of your wiki.
    • Code: var wikiListName = 'Wiki';
    • Change what is in quotes to the name of your wiki.
  4. Last you will need to change the "startPageName" to the page you want to display first.  You will only need to put the name of the file, no need for extentions.
    • Code: var startPageName = 'Home';
    • Change what is in quotes to the name of the file you want to show first.

It should be work once this is all completed.

View a working example here.

Hope this helps.

Here is the 2010 version.

Below is the code:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://www.bitsofsharepoint2010.com/SiteAssets/jquery.SPServices-0.6.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
 var wikiListName = 'Wiki View';
    var startPageName = 'Home';
 var thisSite =$().SPServices.SPGetCurrentSite();
 var wikiSite =  thisSite + '/' + wikiListName + '/' + startPageName + '.aspx';
 var root = location.protocol + '//' + location.host;
 var startSite = wikiSite.replace(root, '').replace(' ', '%20');
 
 $().SPServices({
operation: "GetListItems",
async: false,
listName: wikiListName,
completefunc: function (xData, Status) {
   $(xData.responseXML).find("[nodeName='z:row']").each(function() {
    //alert(xData.responseXML.xml);
    var fileName = $(this).attr("ows_LinkFilename").replace('.aspx', '');
    var URL = $(this).attr("ows_FileRef").split('#');
    var infoURL = URL[1].replace(/\s+/g, '%20');
    var listHtml = '<a href="#" info="/' + infoURL + '" class="wikiLinks">' + fileName + '</a><br/>';
    $("#wikiList").append(listHtml);
   });
  }
 });
 $('#wikiContent').load(startSite + ' .ms-wikicontent', function() {
  
  modifiedInfo(startSite);
  
  addWikiPage();
  wikiURL();
  
  wikiClick();
 });
 
 
 $('.wikiLinks').click(function(){
  
  var siteURL = $(this).attr('info');
  
  //alert(siteURL);
  
  $('#wikiContent').load(siteURL + ' .ms-wikicontent', function() {
   
   modifiedInfo(siteURL);
   
   addWikiPage();
   
   wikiURL();
   wikiClick();
  });
 });
 
 
 function wikiClick() {
  
  $('.ms-wikilink').click(function(){
   
   var mssiteURL = $(this).attr('info');
   
   //alert(mssiteURL);
   
   $('#wikiContent').load(mssiteURL + ' .ms-wikicontent', function() {
    
    modifiedInfo(mssiteURL);
    
    addWikiPage();
    
    wikiURL();
    
    wikiClick();
   });
  });
 }
 
 function wikiURL() { 
  $('.ms-wikilink').each(function(){
   var hrefSite = $(this).attr('href');
   $(this).attr('info', hrefSite);
   $(this).attr('href', '#');
  });
 }

 function modifiedInfo(pageURLM) {
  $('.infoWiki').remove();
  $().SPServices({
   operation: "GetListItems",
   async: false,
   listName: wikiListName,
   completefunc: function (xData, Status) {
    $(xData.responseXML).find("[nodeName='z:row']").each(function() {
     //alert(xData.responseXML.xml);
                                        var pageID = $(this).attr("ows_ID");
     var URLM = $(this).attr("ows_FileRef").split('#');
                                        var wikiEditPage =  thisSite + '/' + wikiListName + '/Forms/EditForm.aspx?ID=' + pageID;
     var infoURLM = "/" + URLM[1].replace(/\s+/g, '%20');
     var fileNameA = $(this).attr("ows_LinkFilename").replace('.aspx', '');
     var infoModified = $(this).attr("ows_Modified");
     var infoEditor = $(this).attr("ows_Editor").split('#');
     var listHtmlB = '<a class="edit-wiki-page infoWiki" href="' + wikiEditPage  + '">Edit this Content</a>';
     var listHtmlA = '<div class="infoWiki">Last Modified ' + infoModified + ' by ' + infoEditor[1] + '</div><br/>';
     
     if ( pageURLM == infoURLM) {
      
      $("#wikiModificated").append(listHtmlA);
      $("#wikiEditContent").append(listHtmlB);
     }
    });
    
   }
  });
 }
 
 function addWikiPage() {
  $().SPServices({
   operation: "GetList",
   listName: wikiListName,
   async: false,
   completefunc: function (xData, Status) {
    //alert(xData.responseXML.xml);
    id = $(xData.responseXML).find("List").attr("ID");
    var urlEdit = thisSite + '/_layouts/CreateWebPage.aspx?List=' + id + '&RootFolder=';
    //alert(urlEdit);
    //alert(id);
    $('#wikiPagAdd').append('<a href="' + urlEdit + '" class="edit-wiki-page infoWiki">Add a Page</a>')
    
    
    
   }
  });
 }
 
 

 
});
</script>
<script type="text/javascript">

function open(siteURL) {
 var options = {
  url: siteURL,
  title: "Add New Wiki Page",
  allowMaximize: true,
  showClose: true,
  dialogReturnValueCallback: silentCallback};
 SP.UI.ModalDialog.showModalDialog(options);}
function silentCallback(dialogResult, returnValue) {
}
function refreshCallback(dialogResult, returnValue) {
 SP.UI.Notify.addNotification('Operation Successful!');
 SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK);
}
</script>
<table style="width: 100%">
<tr><td valign="top" class="leftWiki"><br/><div id="wikiList" class="nav-wiki-page"></div></td>
<td valign="top"><br/><div id="wikiPagAdd"></div><div id="wikiEditContent"></div><div id="wikiContent"></div><div id="wikiModificated"></div></td>
</tr>
</table>
<style>
.leftWiki {
}
.infoWiki {
 font-weight: bold;
}
.edit-wiki-page {
 display: block;
 font-size: 11px;
 border:2px solid #eeeeee;
 background-color:#ffffff;
 color:#666666;
 float: right;
 text-align: center;
 padding:8px 12px;
 width:115px;
 font-weight: normal;
}
.nav-wiki-page {
 display: block;
 font-size: 11px;
 border:2px solid #eeeeee;
 background-color:#ffffff;
 color:#666666;
 text-align: left;
 padding:8px 12px;
 font-weight: bold;
 white-space:nowrap;
}
</style>

Wiki Customization Update: Add List Views to Wiki Content

By request I have updated the functionality of the Wiki customization solution.  The update allows you to add any list view directly into the wiki content.  You are no longer restricted to add listed to only the end of the wiki page.  In addition, the list can be from any site on your domain.

So this allows you to include a task list, link list, document library or any other list into any wiki page.  The list does need to be a flat list and will not work with grouped lists at this time.

This update should really help with the integration of all the great data that you have stored on SharePoint.  Now you can customize the wiki pages to incorporate content from all corners of your SharePoint deployment.

If you already have the original solution in place then you will need to install the latest wiki.js file and follow the instructions found here.  If you are just now going to install this for the first time follow the instructions found here.

Here is a screen capture of what can be customized.

wikilist

Hope this helps.

Peter

Wiki Customization - Update

Fixed an issue with the Footer showing up in places other then the Wiki page like in the viewing of a list item.

  • Updated the wiki.js file so that Header and Footer only show up on the Wiki page. 
    • Footer was showing up on view/edit list item, this has been fixed.

To view the Wiki Customization site, click here: http://www.bitsofsharepoint.com/ExamplePoint/Wiki/Wiki%20Pages/Home.aspx

Enjoy,

Peter

Wiki - Customization
I have just recently started to look into Wiki's and how they can be used. 
 
I was fortunate to be apart of the Wiki and Blog Workshop that Mark Miller put on.  www.endusersharepoint.com His workshops are outstanding and are always packed full of really valuable info.  Here is a link to an overview of the Wiki/Blog workshop: http://www.endusersharepoint.com/?p=1474  Sign up to his newsletter to know when the next workshops will occur.
 
From his workshop I saw an opportunity to provide some customization to the Wiki.  Having a consistent header and footer on every Wiki page can be very valuable for navigation and helping the user to return to important section easily.  The solution can be found here: http://www.bitsofsharepoint.com/ExamplePoint/Wiki/Wiki%20Pages/Home.aspx
 
Also, there is a great article on Wiki's by Woody Windischman, which provides a solid overview of the SharePoint Wiki, which can be found here: http://www.endusersharepoint.com/?p=1523  Highly recommend that you read this.
 
Enjoy,
 
Peter
 
 
This blog is about HealthCare, SharePoint, Technology and things that catch my interest.
 

 
Below is BitsOfSharePoint related links:
 

 ‭(Hidden)‬ Content Editor Web Part ‭[2]‬

 T o p i c P o i n t

 E x a m p l e P o i n t

 All Posts

 > SharePoint Book - Global Navigation Solution 2010
 > SharePoint 2007 - Wiki View Solution
 > SharePoint - Global Navigation 2010 Solution In Progress
 > SharePoint – A Global Navigation Solution Across Site Collections – Permissions
 > SharePoint - A Global Navigation Solution across Site Collections – Version 2.0 Solution
 > SharePoint – A Global Navigation Solution Across Site Collections – Version 2.0 Primer and Deployment
 > Tab Page for SharePoint Version 2.0
 > SharePoint - A Global Navigation Solution across Site Collections
 > Search Lists and Document Libraries by Metadata
 > SharePoint Information Architecture with MindManager by MindJet
 > SharePoint Themes – More than Pretty Colors – Information Architecture
 > Site Owners – Display and Manage
 > SharePoint: ToolTip 2.0 (Posted on EndUserSharePoint.com)
 > jQuery – List and Document Library Filter Version 2.2
 > SharePoint CEWP Solution Interface – Part II
 > SharePoint CEWP Solution Interface – Introduction
 > jQuery – List and Document Library Filter Version 2.1 - Released
 > jQuery – List and Document Library Filter Version 2.0 – Part 2
 > What's next? List Filter, Search and CEWP Options Interface
 > jQuery - List and Document Library Filtering Solution
 > Wiki Customization Update: Add List Views to Wiki Content
 > Presenting at Sacramento SharePoint User Group
 > Where have I been?
 > Launch of Peter Allen's Blog
 > Multiple Lists from Different Sites – Viewing Tool
 > Wiki Customization - Update
 > Tab Page for SharePoint
 > JQuery - View a list from any site with Auto Refresh
 > Wiki - Customization
 > Challenge: Twitter and Managing/Following Multiple Interests - One Account or More?
 > SharePoint /_layout/images/ Full List - Update
 > SharePoint /_layout/images/ Full List
 > JQuery - Improved Pop-up for Lists, Document Libraries, Calendar and Username with Examples
 > JQuery - List Collapse/Expand Multi-line Text Fields
 > JQuery - Pop-up for Lists
 > Document Library - Another great article on using metadata
 > JQuery - View a list on any site from any other site
 > CSS - View all aspects of your SharePoint Site CSS Theme
 > JQuery - Manage Multiple implementations of a JQuery Solution
 > JQuery - Quick Launch with Tool tips with Simple Tip plug-in
 > JQuery - Solutions - Highlight list Item -Updated
 > Navigation - QuickLaunch add with CEWP and JavaScript
 > EndUserSharePoint.com - Become Your Company’s SharePoint Superstar
 > Print - Clean Pages and Lists on any Page
 > Document Library - Setup a Content Type (Link to a Document)
 > Meeting Minutes - Use of a Blog to manage
 > Blogs - How to change Blog Posts to allow multiple selections for Categories
 > Lists - Cascading Columns
 > Topic Point - Update - Added Ranking
 > Document Library - URL Length Problem/Solution
 > JQuery - Calendar with Mouseover preview pain
 > Navigation - Custom Quick Launch Look
 > JQuery - Solutions - Highlight list Item
 > Site Navigation - Quick launch in Webpart Pages (Continued)
 > Site Navigation - Quick launch in Webpart Pages
 > Issue Tracking - Custom Setup
 > BitsOfSharePoint Launched Today
 > Blog Setup - Comments and Spam - Today's date column
 > Calculated Column - Formula - Yes/No Field
 > SharePoint Add-ons - Embed Video in a Blog
 > Meeting Minutes - Use a Blog
 > Calculated Column - Formula - Fix Sort by Date
 > Calculated Column - HTML - The Progress Bar
 > SharePoint Blog lack of Features - Statistics - Part 1
 > Calculated Column - HTML - Java Script to Use
 > BitsOfSharePoint - What is this site and blog about?