basic.inc.php.svn-base
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 869 行 · 第 1/3 页
SVN-BASE
869 行
<?php/** * $Id$ * * KnowledgeTree Community Edition * 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 <http://www.gnu.org/licenses/>. * * 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 * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices * must display the words "Powered by KnowledgeTree" and retain the original * copyright notice. * Contributor( s): ______________________________________ * */require_once(KT_LIB_DIR . '/dispatcher.inc.php');require_once(KT_LIB_DIR . '/metadata/fieldset.inc.php');require_once(KT_LIB_DIR . '/widgets/forms.inc.php');require_once(KT_LIB_DIR . '/plugins/pluginutil.inc.php');require_once(KT_LIB_DIR . "/documentmanagement/MDTree.inc");class BasicFieldsetManagementDispatcher extends KTAdminDispatcher { var $bAutomaticTransaction = true; var $bHaveConditional = null; var $sHelpPage = 'ktcore/admin/document fieldsets.html'; function predispatch() { $this->persistParams(array('fFieldId')); $this->oFieldset = KTFieldset::get(KTUtil::arrayGet($_REQUEST, 'fFieldsetId')); if (PEAR::isError($this->oFieldset)) { $this->oFieldset = null; unset($_REQUEST['fFieldsetId']); // prevent further attacks. } $this->oField = DocumentField::get(KTUtil::arrayGet($_REQUEST, 'fFieldId')); if (PEAR::isError($this->oField)) { $this->oField = null; unset($_REQUEST['fFieldId']); // prevent further attacks. } else { $this->aBreadcrumbs[] = array('url' => KTUtil::addQueryStringSelf($this->meldPersistQuery("","managefield")), 'name' => $this->oField->getName()); } } // API: this provides information about the fieldset, including which actions are available. function describe_fieldset($oFieldset) { $this->persistParams(array('fFieldsetId','action')); $oTemplate =& $this->oValidator->validateTemplate('ktcore/metadata/admin/basic_overview'); $oTemplate->setData(array( 'context' => $this, 'fields' => $oFieldset->getFields(), )); return $oTemplate->render(); } function do_main () { return _kt("Something very unexpected happened."); } function getFieldTypeVocab() { $types = array( 'normal' => _kt("Normal (String)"), 'lookup' => _kt("Lookup"), 'tree' => _kt("Tree"), ); return $types; } function getDefaultType() { return 'normal'; } function form_newfield() { $this->oPage->setBreadcrumbDetails(_kt('add field')); $oForm = new KTForm; $oForm->setOptions(array( 'identifier' => 'ktcore.fieldsets.basic.field.create', 'label' => _kt("Add New Field"), 'submit_label' => _kt('Add Field'), 'cancel_url' => $this->sParentUrl, 'fail_action' => 'newfield', 'action' => 'createfield', 'context' => $this, )); $type_vocab = $this->getFieldTypeVocab(); $oForm->setWidgets(array( array('ktcore.widgets.string',array( 'label' => _kt("Field Name"), 'name' => 'name', 'required' => true, 'description' => _kt("Within a given fieldset, each field needs a unique name."), )), array('ktcore.widgets.text',array( 'label' => _kt("Description"), 'name' => 'description', 'required' => true, 'description' => _kt("A good description can be the difference between useful metadata and poor metadata. At the same time, overly long descriptions are far less valuable than concise ones."), )), array('ktcore.widgets.selection', array( 'label' => _kt('Field Type'), 'name' => 'field_type', 'vocab' => $this->getFieldTypeVocab(), 'description' => _kt("Different types of fields may be available, depending on the system."), 'required' => true, 'value' => $this->getDefaultType(), )), array('ktcore.widgets.boolean',array( 'label' => _kt("Required"), 'name' => 'required', 'description' => _kt("Required fields must be filled in, or the adding process will be rejected."), )), )); $oForm->setValidators(array( array('ktcore.validators.string', array( 'test' => 'name', 'output' => 'name', )), array('ktcore.validators.string', array( 'test' => 'description', 'output' => 'description', )), array('ktcore.validators.boolean', array( 'test' => 'required', 'output' => 'required', )), array('ktcore.validators.string', array( 'test' => 'field_type', 'output' => 'field_type', )), )); return $oForm; } function do_newfield() { $oForm = $this->form_newfield(); return $oForm->render(); } function do_createfield() { $oForm = $this->form_newfield(); $res = $oForm->validate(); $data = $res['results']; $errors = $res['errors']; $extra_errors = array(); $oField = DocumentField::getByFieldsetAndName($this->oFieldset, $data['name']); if (!PEAR::isError($oField)) { $extra_errors['name'] = _kt("A field with that name already exists in this fieldset."); } if (!empty($errors) || !empty($extra_errors)) { return $oForm->handleError(null, $extra_errors); } $lookup = false; $tree = false; if ($data['field_type'] == 'lookup') { $lookup = true; } else if ($data['field_type'] == 'tree') { $lookup = true; $tree = true; } $oField = DocumentField::createFromArray(array( 'Name' => $data['name'], 'Description' => $data['description'], 'DataType' => 'STRING', 'IsGeneric' => false, 'HasLookup' => $lookup, 'HasLookupTree' => $tree, 'ParentFieldset' => $this->oFieldset->getId(), 'IsMandatory' => $data['required'], )); if (PEAR::isError($oField)) { return $oForm->handleError(sprintf(_kt("Unable to create field: %s"), $oField->getMessage())); } $this->successRedirectTo('managefield', _kt("Field created."), sprintf('fFieldId=%d', $oField->getId())); } function form_editfield($oField) { $oForm = new KTForm; $oForm->setOptions(array( 'identifier' => 'ktcore.fieldsets.basic.field.edit', 'label' => _kt("Edit Field"), 'submit_label' => _kt('Update Field'), 'cancel_url' => $this->sParentUrl, 'fail_action' => 'managefield', 'action' => 'updatefield', 'context' => $this, )); $oForm->setWidgets(array( array('ktcore.widgets.string',array( 'label' => _kt("Field Name"), 'name' => 'name', 'value' => sanitizeForHTML($oField->getName()), 'required' => true, 'description' => _kt("Within a given fieldset, each field needs a unique name."), )), array('ktcore.widgets.text',array( 'label' => _kt("Description"), 'name' => 'description', 'value' => sanitizeForHTML($oField->getDescription()), 'required' => true, 'description' => _kt("A good description can be the difference between useful metadata and poor metadata. At the same time, overly long descriptions are far less valuable than concise ones."), )), array('ktcore.widgets.boolean',array( 'label' => _kt("Required"), 'value' => $oField->getIsMandatory(), 'name' => 'required', 'description' => _kt("Required fields must be filled in, or the adding process will be rejected."), )), )); $oForm->setValidators(array( array('ktcore.validators.string', array( 'test' => 'name', 'output' => 'name', )), array('ktcore.validators.string', array( 'test' => 'description', 'output' => 'description', )), array('ktcore.validators.boolean', array( 'test' => 'required', 'output' => 'required', )), )); return $oForm; } function do_managefield() { $oTemplate = $this->oValidator->validateTemplate('ktcore/metadata/admin/manage_field'); $oTemplate->setData(array( 'context' => $this, 'field_name' => $this->oField->getName(), 'field_id' => $this->oField->getId(), 'form' => $this->form_editfield($this->oField), 'field' => $this->oField, )); return $oTemplate->render(); } function do_updatefield() { $oForm = $this->form_editfield($this->oField); $res = $oForm->validate(); $data = $res['results']; $errors = $res['errors']; $extra_errors = array(); // check that the field name either hasn't changed, or doesn't exist. if ($data['name'] != $this->oField->getName()) { $oOldField = DocumentField::getByFieldsetAndName($this->oFieldset, $data['name']); if (!PEAR::isError($oOldField)) {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?