Commit 08f96c4e1b3670183a0505f320244efc33f6e4cc
1 parent
666804bf
Merged in from DEV trunk...
WSA-22 "Changing document type or editing metadata does not call edit triggers" Fixed. Reviewed By: Kevin Fourie git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/STABLE/trunk@7051 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
58 additions
and
7 deletions
ktapi/KTAPIDocument.inc.php
| ... | ... | @@ -682,7 +682,27 @@ class KTAPI_Document extends KTAPI_FolderItem |
| 682 | 682 | DBUtil::rollback(); |
| 683 | 683 | return new KTAPI_Error(KTAPI_ERROR_INTERNAL_ERROR,$res ); |
| 684 | 684 | } |
| 685 | - DBUtil::commit(); | |
| 685 | + | |
| 686 | + | |
| 687 | + $metadata = $this->get_packed_metadata(); | |
| 688 | + | |
| 689 | + $oKTTriggerRegistry = KTTriggerRegistry::getSingleton(); | |
| 690 | + $aTriggers = $oKTTriggerRegistry->getTriggers('edit', 'postValidate'); | |
| 691 | + | |
| 692 | + foreach ($aTriggers as $aTrigger) | |
| 693 | + { | |
| 694 | + $sTrigger = $aTrigger[0]; | |
| 695 | + $oTrigger = new $sTrigger; | |
| 696 | + $aInfo = array( | |
| 697 | + "document" => $this->document, | |
| 698 | + "aOptions" => $packed, | |
| 699 | + ); | |
| 700 | + $oTrigger->setInfo($aInfo); | |
| 701 | + $ret = $oTrigger->postValidate(); | |
| 702 | + } | |
| 703 | + | |
| 704 | + DBUtil::commit(); | |
| 705 | + | |
| 686 | 706 | } |
| 687 | 707 | } |
| 688 | 708 | |
| ... | ... | @@ -941,14 +961,15 @@ class KTAPI_Document extends KTAPI_FolderItem |
| 941 | 961 | return $results; |
| 942 | 962 | } |
| 943 | 963 | |
| 944 | - /** | |
| 945 | - * This updates the metadata on the file. This includes the 'title'. | |
| 946 | - * | |
| 947 | - * @param array This is an array containing the metadata to be associated with the file. | |
| 948 | - */ | |
| 949 | - function update_metadata($metadata) | |
| 964 | + function get_packed_metadata($metadata=null) | |
| 950 | 965 | { |
| 951 | 966 | global $default; |
| 967 | + | |
| 968 | + if (is_null($metadata)) | |
| 969 | + { | |
| 970 | + $metadata = $this->get_metadata(); | |
| 971 | + } | |
| 972 | + | |
| 952 | 973 | $packed = array(); |
| 953 | 974 | |
| 954 | 975 | foreach($metadata as $fieldset_metadata) |
| ... | ... | @@ -1007,6 +1028,19 @@ class KTAPI_Document extends KTAPI_FolderItem |
| 1007 | 1028 | } |
| 1008 | 1029 | } |
| 1009 | 1030 | |
| 1031 | + return $packed; | |
| 1032 | + } | |
| 1033 | + | |
| 1034 | + /** | |
| 1035 | + * This updates the metadata on the file. This includes the 'title'. | |
| 1036 | + * | |
| 1037 | + * @param array This is an array containing the metadata to be associated with the file. | |
| 1038 | + */ | |
| 1039 | + function update_metadata($metadata) | |
| 1040 | + { | |
| 1041 | + global $default; | |
| 1042 | + $packed = $this->get_packed_metadata($metadata); | |
| 1043 | + | |
| 1010 | 1044 | DBUtil::startTransaction(); |
| 1011 | 1045 | $result = KTDocumentUtil::saveMetadata($this->document, $packed); |
| 1012 | 1046 | |
| ... | ... | @@ -1021,6 +1055,22 @@ class KTAPI_Document extends KTAPI_FolderItem |
| 1021 | 1055 | return new KTAPI_Error(sprintf(_kt("Unexpected validation failure: %s."), $result->getMessage())); |
| 1022 | 1056 | } |
| 1023 | 1057 | DBUtil::commit(); |
| 1058 | + | |
| 1059 | + | |
| 1060 | + $oKTTriggerRegistry = KTTriggerRegistry::getSingleton(); | |
| 1061 | + $aTriggers = $oKTTriggerRegistry->getTriggers('edit', 'postValidate'); | |
| 1062 | + | |
| 1063 | + foreach ($aTriggers as $aTrigger) { | |
| 1064 | + $sTrigger = $aTrigger[0]; | |
| 1065 | + $oTrigger = new $sTrigger; | |
| 1066 | + $aInfo = array( | |
| 1067 | + "document" => $this->document, | |
| 1068 | + "aOptions" => $packed, | |
| 1069 | + ); | |
| 1070 | + $oTrigger->setInfo($aInfo); | |
| 1071 | + $ret = $oTrigger->postValidate(); | |
| 1072 | + } | |
| 1073 | + | |
| 1024 | 1074 | } |
| 1025 | 1075 | |
| 1026 | 1076 | |
| ... | ... | @@ -1328,4 +1378,5 @@ class KTAPI_Document extends KTAPI_FolderItem |
| 1328 | 1378 | DBUtil::commit(); |
| 1329 | 1379 | } |
| 1330 | 1380 | } |
| 1381 | + | |
| 1331 | 1382 | ?> |
| 1332 | 1383 | \ No newline at end of file | ... | ... |