Commit 0b97eb1b691b4e58f15989c3853088361e4d869d

Authored by Brad Shuttleworth
1 parent a567016d

Viewlet framework. Of course, there are no viewlets, but

they will come.

Fixes KTS-669


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5906 c91229c3-7414-0410-bfa2-8a42b809f60b
lib/actions/documentviewlet.inc.php 0 → 100644
  1 +<?php
  2 +
  3 +/**
  4 + * $Id: documentaction.inc.php 5848 2006-08-16 15:58:51Z bshuttle $
  5 + *
  6 + * The contents of this file are subject to the KnowledgeTree Public
  7 + * License Version 1.1 ("License"); You may not use this file except in
  8 + * compliance with the License. You may obtain a copy of the License at
  9 + * http://www.ktdms.com/KPL
  10 + *
  11 + * Software distributed under the License is distributed on an "AS IS"
  12 + * basis,
  13 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  14 + * for the specific language governing rights and limitations under the
  15 + * License.
  16 + *
  17 + * The Original Code is: KnowledgeTree Open Source
  18 + *
  19 + * The Initial Developer of the Original Code is The Jam Warehouse Software
  20 + * (Pty) Ltd, trading as KnowledgeTree.
  21 + * Portions created by The Jam Warehouse Software (Pty) Ltd are Copyright
  22 + * (C) 2006 The Jam Warehouse Software (Pty) Ltd;
  23 + * All Rights Reserved.
  24 + *
  25 + */
  26 +
  27 +require_once(KT_LIB_DIR . "/actions/documentaction.inc.php");
  28 +
  29 +class KTDocumentViewlet extends KTDocumentAction {
  30 + var $sName;
  31 + var $sDescription;
  32 +
  33 + var $_sShowPermission = "ktcore.permissions.read";
  34 +
  35 + // the only major distinction of the viewlet vs. the action is the
  36 + // display_viewlet() method.
  37 +
  38 + function display_viewlet() {
  39 + return "";
  40 + }
  41 +}
  42 +
  43 +?>
... ...
templates/ktcore/document/view.smarty
... ... @@ -40,20 +40,14 @@ these tasks, use the Request Assistance action.{/i18n}
40 40 {$oFieldset->render($document_data)}
41 41 {/foreach}
42 42  
  43 +{if !empty($viewlets)}
  44 +
43 45 <!-- Document "Views" -->
44 46 <div id="document-views">
45 47  
46   -<div class="ktError"><p>Someone please suggest some "viewlets" we can ship by default ...
47   -this is a tad bare.</p></div>
48   -
49   -{*
50   -<div class="downloadbox">
51   - <ul>
52   - {foreach from=$viewlet_info item=aInfo}
53   - <li class="{$aInfo.icon_class}"><a href="{$aInfo.url}">{$aInfo.name}</a></li>
54   - {/foreach}
55   - </ul>
56   -</div>
57   -*}
  48 +{foreach from=$viewlets item=oViewlet}
  49 + {$oViewlet->display_viewlet()}
  50 +{/foreach}
58 51  
59 52 </div>
  53 +{/if}
... ...
view.php
... ... @@ -200,36 +200,26 @@ class ViewDocumentDispatcher extends KTStandardDispatcher {
200 200 }
201 201 }
202 202  
203   - $this->oPage->setContentClass('view');
204   - /*
205   - // we want to enable the viewlets.
206   -
207   - $aMajorInfo = KTDocumentActionUtil::getDocumentActionsByNames(array('ktcore.actions.document.view',), 'documentinfo', $this->oDocument, $this->oUser);
208   - $aMajorActions = KTDocumentActionUtil::getDocumentActionsByNames(array(
209   - 'ktcore.actions.document.checkout',
210   - 'ktcore.actions.document.cancelcheckout',
211   - 'ktcore.actions.document.checkin',
212   - 'ktcore.actions.document.edit'
213   - ), 'documentaction', $this->oDocument, $this->oUser);
214   -
215   - $aMajorViewletActions = kt_array_merge($aMajorInfo, $aMajorActions);
216   - $aViewletInfo = array();
217   -
218   - //var_dump($aMajorActions[0]);
219   -
220   - foreach ($aMajorViewletActions as $action) {
221   -
222   - $aInfo = $action->getInfo();
223   -
  203 + // viewlets.
  204 + $aViewlets = array();
  205 + $aViewletActions = KTDocumentActionUtil::getDocumentActionsForDocument($this->oDocument, $this->oUser, 'documentviewlet');
  206 + foreach ($aViewletActions as $oAction) {
  207 + $aInfo = $oAction->getInfo();
  208 +
224 209 if ($aInfo !== null) {
225   - if ($aInfo["ns"] == $this->sName) {
226   - unset($aInfo["url"]);
227   - $aInfo['active'] = true;
228   - }
229   - $aViewletInfo[] = $aInfo;
  210 + $aViewlets[] = $oAction; // use the action, since we display_viewlet() later.
230 211 }
231   - }
232   - */
  212 + }
  213 +
  214 +
  215 + $content_class = 'view';
  216 + if (!empty($aViewlets)) {
  217 + $content_class = 'view withviewlets';
  218 + }
  219 + $this->oPage->setContentClass($content_class);
  220 +
  221 +
  222 +
233 223 $oTemplating =& KTTemplating::getSingleton();
234 224 $oTemplate = $oTemplating->loadTemplate("ktcore/document/view");
235 225 $aTemplateData = array(
... ... @@ -241,7 +231,7 @@ class ViewDocumentDispatcher extends KTStandardDispatcher {
241 231 "document" => $oDocument,
242 232 "document_data" => $document_data,
243 233 "fieldsets" => $fieldsets,
244   - 'viewlet_info' => $aViewletInfo,
  234 + 'viewlets' => $aViewlets,
245 235 );
246 236 //return '<pre>' . print_r($aTemplateData, true) . '</pre>';
247 237 return $oTemplate->render($aTemplateData);
... ...