Function: nornix_site.save_content

Information
DTD identifierDeterministicData accessMode
int(11)NOMODIFIES SQL DATA

Code

Save content

CREATE DEFINER=`root`@`localhost` FUNCTION `save_content`(vDocumentNo INTEGER,
 vContentTypeNo INTEGER, vText MEDIUMTEXT, vData MEDIUMBLOB,
 vBlock VARCHAR(16), vVersionDays INTEGER, vVersionMinCount INTEGER,
 vVersionMaxCount INTEGER, vResponseType INTEGER) RETURNS int(11)
    MODIFIES SQL DATA
    COMMENT 'Save content'
BEGIN
 DECLARE vMatch VARCHAR(127);
 UPDATE content SET Version = Version + 1, TS = TS
  WHERE DocumentNo = vDocumentNo AND Block = vBlock ORDER BY `Version` DESC;
 INSERT content (DocumentNo, ContentTypeNo, `Text`, `Data`, Block)
  VALUES (vDocumentNo, vContentTypeNo, vText, vData, vBlock);
 DELETE FROM content
  WHERE (DATEDIFF(CURRENT_DATE, TS) > vVersionDays AND `Version` > vVersionMinCount)
   OR (`Version` > vVersionMaxCount);
 DELETE FROM documentcache WHERE DocNo = vDocumentNo;
 SELECT find_doc_path(`No`) INTO vMatch FROM document WHERE `No` = vDocumentNo LIMIT 1;
 SET vMatch = CONCAT(vMatch, '.%');
 DELETE FROM `cache` WHERE `Type` = vResponseType AND `Path` LIKE vMatch;
 RETURN 1;
END