diff --git a/lib/widgets/FieldsetDisplayRegistry.inc.php b/lib/widgets/FieldsetDisplayRegistry.inc.php
index 9ca62ba..07a18c0 100644
--- a/lib/widgets/FieldsetDisplayRegistry.inc.php
+++ b/lib/widgets/FieldsetDisplayRegistry.inc.php
@@ -6,31 +6,31 @@
* Document Management Made Simple
* Copyright (C) 2008 KnowledgeTree Inc.
* Portions copyright The Jam Warehouse Software (Pty) Limited
- *
+ *
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License version 3 as published by the
* Free Software Foundation.
- *
+ *
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
- *
- * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco,
+ *
+ * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco,
* California 94120-7775, or email info@knowledgetree.com.
- *
+ *
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU General Public License version 3.
- *
+ *
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "Powered by
- * KnowledgeTree" logo and retain the original copyright notice. If the display of the
+ * KnowledgeTree" logo and retain the original copyright notice. If the display of the
* logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices
- * must display the words "Powered by KnowledgeTree" and retain the original
+ * must display the words "Powered by KnowledgeTree" and retain the original
* copyright notice.
* Contributor( s): ______________________________________
*
@@ -43,9 +43,9 @@ require_once(KT_LIB_DIR . '/widgets/widgetfactory.inc.php');
require_once(KT_LIB_DIR . '/validation/validatorfactory.inc.php');
class KTFieldsetDisplayRegistry {
-
+
var $fieldset_types = array();
-
+
// {{{ getSingleton
function &getSingleton () {
if (!KTUtil::arrayGet($GLOBALS, 'oKTFieldsetDisplayRegistry')) {
@@ -63,14 +63,26 @@ class KTFieldsetDisplayRegistry {
function registerFieldsetDisplay($nsname, $className) {
$this->fieldset_types[$nsname] = $className;
}
-
+
function getHandler($nsname) {
if (!array_key_exists($nsname, $this->fieldset_types)) {
- // unfortunately, we need to do a bit more spelunking here.
+ // unfortunately, we need to do a bit more spelunking here.
// if its conditional, we use a different item. ns is unsufficient.
- //
+ //
// FIXME this is slightly wasteful from a performance POV, though DB caching should make it OK.
$oFieldset =& KTFieldset::getByNamespace ($nsname);
+ if (PEAR::isError($oFieldset))
+ {
+ global $default;
+ $default->log->error('Could not resolve Fieldset by namespace: ' . $nsname . '. Error: ' . $oFieldset->getMessage());
+ return 'SimpleFieldsetDisplay';
+ }
+ if (is_a($oFieldset, 'KTEntityNoObjects'))
+ {
+ global $default;
+ $default->log->error('Could not resolve Fieldset by namespace: ' . $nsname . '. Error: KTEntityNoObjects returned.');
+ return 'SimpleFieldsetDisplay';
+ }
if ($oFieldset->getIsConditional() && KTMetadataUtil::validateCompleteness($oFieldset)) {
return 'ConditionalFieldsetDisplay';
} else {
@@ -80,7 +92,7 @@ class KTFieldsetDisplayRegistry {
return $this->fieldset_types[$nsname];
}
}
-
+
// simple function to adapt a fieldset to a form
// passing in $oDocument will set the initial default
// values to those attached to the document.
@@ -89,10 +101,10 @@ class KTFieldsetDisplayRegistry {
function formAdaptor($oFieldset, $oDocument = null) {
$widgets = array();
$validators = array();
-
+
$oVF =& KTValidationFactory::getSingleton();
- $oWF =& KTWidgetFactory::getSingleton();
-
+ $oWF =& KTWidgetFactory::getSingleton();
+
$fields =& $oFieldset->getFields();
foreach ($fields as $oField) {
// FIXME we probably want to use some form of factory here.
@@ -100,7 +112,7 @@ class KTFieldsetDisplayRegistry {
if ($field->getHasLookup()) {
// lookups
if ($field->getHasLookupTree()) {
- // tree
+ // tree
// FIXME we don't handle trees yet
continue;
/*
@@ -108,13 +120,13 @@ class KTFieldsetDisplayRegistry {
$fieldTree = new MDTree();
$fieldTree->buildForField($field->getId());
$fieldTree->setActiveItem($current_value);
- $fieldOptions['tree'] = $fieldTree->_evilTreeRenderer($fieldTree, $fieldName);
- $oField = new KTTreeWidget($fieldLabel, $fieldDescription, $fieldName, $fieldValue, $page, $fieldRequired, null, $fieldErrors, $fieldOptions);
-
+ $fieldOptions['tree'] = $fieldTree->_evilTreeRenderer($fieldTree, $fieldName);
+ $oField = new KTTreeWidget($fieldLabel, $fieldDescription, $fieldName, $fieldValue, $page, $fieldRequired, null, $fieldErrors, $fieldOptions);
+
*/
} else {
// normal
-
+
$widgets[] = $oWF->get('ktcore.widgets.entityselection', array(
'label' => $oField->getName(),
'name' => 'metadata_' . $oField->getId(),
@@ -124,14 +136,14 @@ class KTFieldsetDisplayRegistry {
'label_method' => 'getName',
'required' => $oField->getIsMandatory(),
));
-
+
if ($oField->getIsMandatory()) {
$validators[] = $oVF->get('ktcore.validators.required', array(
'test' => $field_name,
'basename' => 'metadata_',
));
}
-
+
$validators[] = $oVF->get('ktcore.validators.membership', array(
'test' => $field_name,
'output' => $field_name,
@@ -150,10 +162,10 @@ class KTFieldsetDisplayRegistry {
'test' => $field_name,
'basename' => $field_name,
));
- }
- }
+ }
+ }
}
-
+
return array(
'widgets' => $widgets,
'validators' => $validators,
diff --git a/plugins/tagcloud/TagCloudPlugin.php b/plugins/tagcloud/TagCloudPlugin.php
index 15cf962..c6df912 100644
--- a/plugins/tagcloud/TagCloudPlugin.php
+++ b/plugins/tagcloud/TagCloudPlugin.php
@@ -7,31 +7,31 @@
* Document Management Made Simple
* Copyright (C) 2008 KnowledgeTree Inc.
* Portions copyright The Jam Warehouse Software (Pty) Limited
- *
+ *
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License version 3 as published by the
* Free Software Foundation.
- *
+ *
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
- *
- * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco,
+ *
+ * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco,
* California 94120-7775, or email info@knowledgetree.com.
- *
+ *
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU General Public License version 3.
- *
+ *
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "Powered by
- * KnowledgeTree" logo and retain the original copyright notice. If the display of the
+ * KnowledgeTree" logo and retain the original copyright notice. If the display of the
* logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices
- * must display the words "Powered by KnowledgeTree" and retain the original
+ * must display the words "Powered by KnowledgeTree" and retain the original
* copyright notice.
* Contributor( s): ______________________________________
*
@@ -76,23 +76,27 @@ require_once(KT_LIB_DIR . '/templating/templating.inc.php');
// Check if the tagcloud fielset entry exists, if not, create it
- if(!TagCloudPlugin::tagFieldsetExists()){
+ $iFieldsetId = TagCloudPlugin::tagFieldsetExists();
+ if(PEAR::isError($iFieldsetId)){
+ return false;
+ }
+ if($iFieldsetId !== false){
$oFieldset = TagCloudPlugin::createFieldset();
- if (PEAR::isError($oFieldset)) {
+ if (PEAR::isError($oFieldset) || is_null($oFieldset)) {
return false;
}
- if($oFieldset){
- // make the fieldset id viewable
- $iFieldsetId = $oFieldset->iId;
- }
- }else{ // if the entry exists, make the fieldset id viewable anyway
- $iFieldsetId = TagCloudPlugin::tagFieldsetExists();
+ // make the fieldset id viewable
+ $iFieldsetId = $oFieldset->iId;
}
// Check if the tagcloud document field entry exists, if not, create it
- if(!TagCloudPlugin::tagFieldExists()){
+ $fExists = TagCloudPlugin::tagFieldExists();
+ if(PEAR::isError($fExists)){
+ return false;
+ }
+ if($fExists !== false){
$oField = TagCloudPlugin::createDocumentField($iFieldsetId);
- if (PEAR::isError($oField)) {
+ if (PEAR::isError($oField) || is_null($oField)) {
return false;
}
}
@@ -156,8 +160,9 @@ require_once(KT_LIB_DIR . '/templating/templating.inc.php');
$sTag = DBUtil::getOneResultKey(array($sQuery), 'id');
if (PEAR::isError($sTag)) {
- // XXX: log error
- return false;
+ global $default;
+ $default->log->error('Error resolving Tag Cloud field: '. $sTag->getMessage());
+ return $sTag;
}
if(!is_null($sTag)){
@@ -178,8 +183,9 @@ require_once(KT_LIB_DIR . '/templating/templating.inc.php');
$iFieldset = DBUtil::getOneResultKey(array($sQuery), 'id');
if (PEAR::isError($iFieldset)) {
- // XXX: log error
- return false;
+ global $default;
+ $default->log->error('Error resolving Tag Cloud fieldset: '. $iFieldset->getMessage());
+ return $iFieldset;
}
if(!is_null($iFieldset)){