Commit f462d938e5b1e9886b66be224543342ce6f4a8d0

Authored by Neil Blakey-Milner
1 parent 92a4ce70

Use fieldsets instead of working on fields directly.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3684 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/documentmanagement/getTypeMetadataFields.php
... ... @@ -4,34 +4,23 @@ require_once('../../../../config/dmsDefaults.php');
4 4  
5 5 require_once(KT_LIB_DIR . '/dispatcher.inc.php');
6 6 require_once(KT_LIB_DIR . '/templating/templating.inc.php');
7   -require_once(KT_LIB_DIR . '/documentmanagement/DocumentField.inc');
  7 +require_once(KT_LIB_DIR . '/metadata/fieldset.inc.php');
8 8  
9 9 require_once(KT_LIB_DIR . '/visualpatterns/PatternMetaData.inc');
10 10  
11 11 class GetTypeMetadataFieldsDispatcher extends KTDispatcher {
12 12 function do_main() {
13   - return $this->getTypeMetadataFields($_REQUEST['fDocumentTypeID']);
  13 + return $this->getTypeMetadataFieldsets ($_REQUEST['fDocumentTypeID']);
14 14 }
15 15  
16   - function getTypeMetadataFields ($iDocumentTypeID) {
17   - /*ok*/ $sQuery = array("SELECT DF.id AS id " .
18   - "FROM document_fields AS DF LEFT JOIN document_type_fields_link AS DTFL ON DTFL.field_id = DF.id " .
19   - "WHERE DF.is_generic = ? " .
20   - "AND DTFL.document_type_id = ?", array(false, $iDocumentTypeID));
21   -
22   - $aIDs = DBUtil::getResultArray($sQuery);
23   -
24   - $aFields = array();
25   - foreach ($aIDs as $iID) {
26   - $aFields[] =& call_user_func(array('DocumentField', 'get'), $iID);
27   - }
  16 + function getTypeMetadataFieldsets ($iDocumentTypeID) {
28 17 $aTemplateData = array(
29 18 'caption' => _('Type specific meta data'),
30 19 'empty_message' => _("No Type Specific Meta Data"),
31   - 'fields' => $aFields,
  20 + 'fieldsets' => KTFieldSet::getForDocumentType($iDocumentTypeID),
32 21 );
33 22 $oTemplating = KTTemplating::getSingleton();
34   - $oTemplate = $oTemplating->loadTemplate("ktcore/metadata_fields/editable_metadata_fields");
  23 + $oTemplate = $oTemplating->loadTemplate("ktcore/metadata_fields/editable_metadata_fieldsets");
35 24 return $oTemplate->render($aTemplateData);
36 25 }
37 26 }
... ...
templates/ktcore/metadata_fields/editable_metadata_fieldsets.smarty 0 → 100644
  1 +{literal}
  2 +<style>
  3 +
  4 +.kt_treenodes {
  5 + list-style: none;
  6 + margin: 0;
  7 + padding: 0;
  8 + border: 0;
  9 + text-align: left !important;
  10 +}
  11 +
  12 +.leafnode {font-weight: bold; }
  13 +
  14 +.kt_treenodes ul {
  15 + list-style: none;
  16 + text-align: left;
  17 +}
  18 +.kt_treenodes li.treenode > a.pathnode {
  19 + background: transparent url(/graphics/plus.png) center left no-repeat;
  20 + padding-left: 15px;
  21 +}
  22 +
  23 +.kt_treenodes li.treenode.active > a.pathnode {
  24 + background: transparent url(/graphics/minus.png) center left no-repeat;
  25 +}
  26 +
  27 +.kt_treenodes li.active > ul {
  28 + display: block;
  29 +}
  30 +
  31 +.kt_treenodes li ul {
  32 + display: none;
  33 +}
  34 +
  35 +</style>
  36 +{/literal}
  37 +
  38 +<script language="javascript" src="/thirdpartyjs/MochiKit/Base.js" > </script>
  39 +<script language="javascript" src="/thirdpartyjs/MochiKit/Iter.js" > </script>
  40 +<script language="javascript" src="/thirdpartyjs/MochiKit/DOM.js" > </script>
  41 +
  42 +{if !$metadata_prefix}
  43 + {assign var="metadata_prefix" value="emd"}
  44 +{/if}
  45 +
  46 +{if $caption}
  47 + <p>{$caption}</p>
  48 +{/if}
  49 +
  50 +{foreach from=$fieldsets item=oFieldset}
  51 +<fieldset>
  52 + <legend>{$oFieldset->getName()}</legend>
  53 +
  54 + <table class="prettysw" cellpadding="0" cellspacing="0">
  55 + { foreach item=oField from=$oFieldset->getFields() }
  56 + <tr>
  57 + <th>{$oField->getName()}</th>
  58 + <td>
  59 +
  60 + {php}
  61 + $oField = $this->_tpl_vars['oField'];
  62 + $sPrefix = $this->_tpl_vars['metadata_prefix'];
  63 + $sValue = $this->_tpl_vars['values'][$oField->getID()];
  64 + $this->assign('pattern',
  65 + new PatternMetadata($oField->getName(), $sPrefix . $oField->getID(), $sValue));
  66 + {/php}
  67 + {$pattern->render()}
  68 +
  69 + </td>
  70 + </tr>
  71 + { /foreach }
  72 + </table>
  73 +</fieldset}
  74 +{foreachelse}
  75 +No fields found
  76 +{/foreach}
... ...