{"id":167,"date":"2015-02-15T21:28:27","date_gmt":"2015-02-15T20:28:27","guid":{"rendered":"http:\/\/localhost:8080\/howto\/?page_id=167"},"modified":"2017-07-10T12:35:53","modified_gmt":"2017-07-10T10:35:53","slug":"przydatne-skrypty","status":"publish","type":"page","link":"http:\/\/developer.edokumenty.eu\/index.php\/dokumentacja-online-systemu-edokumenty\/przetwarzanie-danych\/przydatne-skrypty\/","title":{"rendered":"Przydatne elementy skrypt\u00f3w"},"content":{"rendered":"<h2>U\u017cycie obiektu typu Bean dokumentu<\/h2>\n<p>Przyk\u0142ad pokazuje spos\u00f3b zmiany statusu (tpstid) oraz oznaczenie dokumentu jako za\u0142atwiony:<\/p>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\ninclude_once(MOD_PATH.'ADocuments\/beans\/Document.inc');\r\n\r\n$doc_id\u00a0=\u00a0123;\r\n$document\u00a0=\u00a0Document::getInstance($doc_id);\r\nif\u00a0($document-&gt;isReferenced())\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0$document-&gt;set('tpstid',\u00a02);\r\n\u00a0\u00a0\u00a0\u00a0$document-&gt;set('is_fix',\u00a0TRUE);\r\n\u00a0\u00a0\u00a0\u00a0$document-&gt;save();\r\n}\n<\/code><\/pre><\/div><div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\nrequire_once(LIB_PATH.'widgets\/ConfirmBox.inc');\r\n\r\n\/\/\u00a0identyfikator\u00a0sprawdzenia\r\n$hwnd\u00a0=\u00a0Application::getShortName(__CLASS__.__LINE__);\r\n\r\n\/\/\u00a0sprawdzenie\u00a0czy\u00a0przysz\u0142o\u00a0potwierdzenie\u00a0i\u00a0je\u015bli\u00a0jest\u00a0na\u00a0Nie\u00a0CONFIRM_NO\r\nif\u00a0(($confirmation\u00a0=\u00a0ConfirmBox::getConfirmation($hwnd))\u00a0AND\u00a0($confirmation\u00a0==\u00a0ConfirmBox::CONFIRM_NO))\u00a0{\r\n\/\/\u00a0tutaj\u00a0mo\u017cesz\u00a0co\u015b\u00a0zrobi\u0107\u00a0jak\u00a0users\u00a0klikn\u0105\u0142\u00a0Nie\r\nreturn\u00a0FALSE;\r\n}\r\n\r\n\/\/\u00a0to\u00a0samo\u00a0si\u0119\u00a0wywo\u0142uje\u00a0i\u00a0sprawdza\r\nif\u00a0(ConfirmBox::confirm($hwnd,\u00a0Translator::translate('Tre\u015b\u0107\u00a0pytania'),\u00a0NULL,\u00a0ConfirmBox::CONFIRM_YES|ConfirmBox::CONFIRM_NO,\u00a0'question.gif',\u00a0NULL,\u00a0NULL,\u00a0360,\u00a0150)\u00a0==\u00a0ConfirmBox::CONFIRM_YES)\u00a0{\r\n\/\/\u00a0tutaj\u00a0mo\u017cesz\u00a0co\u015b\u00a0zrobi\u0107\u00a0jak\u00a0user\u00a0da\u0142\u00a0Tak\u00a0CONFIRM_YES\r\n}\r\n\r\n\n<\/code><\/pre><\/div><\/p>\n<h2>Wywo\u0142anie formularza do potwierdzenia czynno\u015bci<\/h2>\n<p>Wy\u015bwietlony zostanie\u00a0formularz typu ConfirmBox. Kod zawarty wewn\u0105trz warunku <em>if<\/em> zostanie wykonany po potwierdzeniu przez u\u017cytkownika, w przypadku odrzucenia przez u\u017cytkownika kod zostanie pomini\u0119ty.<\/p>\n<p>&nbsp;<\/p>\n<h2>Wywo\u0142anie komendy ze skryptu<\/h2>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\nrequire_once('.\/commands\/AddCommentCommand.inc');\r\n$command\u00a0=\u00a0new\u00a0AddCommentCommand();\r\n$command-&gt;execute($bean,\u00a0array('dscrpt'\u00a0=&gt;\u00a0'test'.mktime(),\u00a0'notify'\u00a0=&gt;\u00a00));\n<\/code><\/pre><\/div>\n<h2>Od\u015bwie\u017cenie dialogu po wykonaniu komendy<\/h2>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\nJScript::add('App.DOCUMENTdlg'.$doc_id.'.refresh();');\n<\/code><\/pre><\/div>\n<p>&nbsp;<\/p>\n<h2>Za\u0142atwienie etapu workflow<\/h2>\n<p>Metody API mo\u017cna wywo\u0142a\u0107 r\u00f3wnie\u017c na lokalnym systemie:\u00a0<a href=\"http:\/\/support.edokumenty.eu\/trac\/wiki\/DeployerGuide\/Others\/eDokumentyApi\/CompleteStage\">http:\/\/support.edokumenty.eu\/trac\/wiki\/DeployerGuide\/Others\/eDokumentyApi\/CompleteStage<\/a><\/p>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\nrequire_once('.\/classes\/eDokumentyApi\/EDokApiClient.inc')\r\n$api\u00a0=\u00a0new\u00a0EDokApi();\r\n$api-&gt;completeStage(1,2);\n<\/code><\/pre><\/div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>U\u017cycie identyfikatora zalogowanego u\u017cytkownika<\/h2>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\nSysContext::$usr_info['usr_id']\n<\/code><\/pre><\/div>\n<p>Zmiana statusu dla wpisu w rejestrze<\/p>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\nrequire_once(MOD_PATH.'CRegisters\/beans\/CRegisterEntry.inc');\r\n\r\n$id____\u00a0=\u00a0id\u00a0wpisu\u00a0w\u00a0rejestrze;\r\n$tpstid\u00a0=\u00a0id\u00a0statusu;\r\n\r\n$bean\u00a0=\u00a0new\u00a0CRegisterEntry($id____);\r\n\r\n\/\/\u00a0tego\u00a0ifa\u00a0z\u00a0zawarto\u015bci\u0105\u00a0mo\u017cna\u00a0usun\u0105\u0107\u00a0je\u017celi\u00a0bezwarunkowo\u00a0chcemy\u00a0zmieni\u0107\u00a0status..\u00a0czyli\u00a0bez\u00a0sprawdzania\u00a0uprawnie\u0144\r\nif\u00a0($bean-&gt;get('tpstid'))\u00a0{\r\n\t$res\u00a0=\u00a0$this-&gt;db-&gt;select('types_of_processes_states',\u00a0'status,tpstnm',\u00a0'tpstid='.$bean-&gt;get('tpstid'),\u00a0FALSE,\u00a0PGSQL_ASSOC);\r\n\tif\u00a0(is_array($res))\u00a0{\r\n\t\t$res\u00a0=\u00a0$res[0];\r\n\t\t$stat\u00a0=\u00a0$res['status'];\r\n\t\t$desc\u00a0=\u00a0$res['tpstnm'];\r\n\r\n\t\t$can_change\u00a0=\u00a0((($stat\u00a0!==\u00a0'FINAL')\u00a0&amp;&amp;\u00a0($stat\u00a0!==\u00a0'ACCEPTED'))\u00a0||\u00a0UserRights::checkSysAcc('bswfms.extras.privilages.status_change'));\r\n\t\tif\u00a0(!$can_change)\u00a0{\r\n\t\t\tif\u00a0(($stat\u00a0===\u00a0'ACCEPTED')\u00a0&amp;&amp;\u00a0$bean-&gt;get('stcuid'))\u00a0{\r\n\t\t\t\tif\u00a0(!($can_change\u00a0=\u00a0UserRights::checkUsrAcc($bean-&gt;get('stcuid'))))\u00a0{\r\n\t\t\t\t\tthrow\u00a0new\u00a0UserRightsException(NULL,\u00a0NULL,\u00a0sprintf(Translator::translate('Zmian\u0119\u00a0statusu\u00a0%s\u00a0mo\u017ce\u00a0dokona\u0107\u00a0osoba,\u00a0kt\u00f3ra\u00a0go\u00a0ustawi\u0142a,\u00a0jej\u00a0prze\u0142o\u017cony\u00a0lub\u00a0inna\u00a0osoba\u00a0posiadaj\u0105ca\u00a0prawo\u00a0do\u00a0stanowiska\u00a0ustawiaj\u0105cego\u00a0status.'),\u00a0$desc));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif\u00a0(!$can_change)\u00a0{\r\n\t\t\tthrow\u00a0new\u00a0UserRightsException(NULL,\u00a0NULL,\u00a0sprintf(Translator::translate('Zmian\u0119\u00a0statusu\u00a0%s\u00a0mo\u017ce\u00a0dokona\u0107\u00a0osoba\u00a0posiadaj\u0105ca\u00a0odpowiedni\u00a0przywilej.'),\u00a0$desc));\r\n\t\t}\r\n\t}\r\n}\r\n\r\n$bean-&gt;set('tpstid',\u00a0$tpstid);\r\n$bean-&gt;save();\r\nDodanie\u00a0wpisu\u00a0do\u00a0rejestru\r\n\r\nrequire_once(MOD_PATH.'CRegisters\/beans\/CRegisterEntry.inc');\r\n\r\n$id____\u00a0=\u00a0FALSE;\u00a0\/\/\u00a0je\u015bli\u00a0edycja\u00a0wpisu\u00a0to\u00a0podajemy\u00a0id____\r\n$cregid\u00a0=\u00a01;\u00a0\/\/\u00a0podajemy\u00a0id\u00a0rejestru\u00a0z\u00a0tabli\u00a0cregisters.register\r\n\r\n$bean\u00a0=\u00a0new\u00a0CRegisterEntry($id____,\u00a0$cregid);\r\n\r\n\/*\u00a0Ka\u017cda\u00a0kolumna\u00a0wype\u0142niania\u00a0jest\u00a0poprzez\u00a0$bean-&gt;set.\u00a0Nie\u00a0musimy\u00a0wype\u0142ni\u0107\u00a0wszystkich.\r\n\u00a0*\u00a0$bean-&gt;set('tpstid',\u00a01);\r\n\u00a0*\/\r\n$bean-&gt;save();\n<\/code><\/pre><\/div>\n<h2>Usuni\u0119cie wpisu z rejestru<\/h2>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\nrequire_once(MOD_PATH.'CRegisters\/services\/CRegistersService.inc');\r\n\r\n\/\/\u00a0wersja\u00a0bezpieczna\u00a0zalecana\r\n$params\u00a0=\u00a0array(\r\n'id____'\u00a0=&gt;\u00a01,\u00a0\/\/\u00a0lub\u00a0array(1,\u00a02,\u00a03)\u00a01\u00a0wpis\u00a0albo\u00a0kolejne\u00a0wpisy\u00a0jako\u00a0tablica\r\n);\r\n\r\n$srv\u00a0=\u00a0new\u00a0CRegistersService();\r\n$srv-&gt;deleteEntries($params);\r\n\r\n\/\/\u00a0wersja\u00a0mniej\u00a0bezpieczna\r\n$id____\u00a0=\u00a01;\u00a0\/\/\u00a0je\u015bli\u00a0edycja\u00a0wpisu\u00a0to\u00a0podajemy\u00a0id____\r\n$cregid\u00a0=\u00a01;\u00a0\/\/\u00a0podajemy\u00a0id\u00a0rejestru\u00a0z\u00a0tabli\u00a0cregisters.register\r\n\r\n$bean\u00a0=\u00a0new\u00a0CRegisterEntry($id____,\u00a0$cregid);\r\n$bean-&gt;delete();\n<\/code><\/pre><\/div>\n<h2>Odczyt tekstowej warto\u015bci cechy<\/h2>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\nrequire_once('.\/classes\/FeatureBox\/FeaturesHelper.inc');\r\n$featureID\u00a0=\u00a01;\u00a0\/\/\u00a0id\u00a0cechy\u00a0(features.featid)\r\n$tblnam\u00a0=\u00a0'contacts';\u00a0\/\/\u00a0nazwa\u00a0tabeli\u00a0bazowej\u00a0(kolumna\u00a0features.tblnam)\u00a0zazwyczaj\u00a0jest\u00a0to\u00a0nazwa\u00a0tabeli\u00a0w\u00a0bazie,\u00a0kt\u00f3rej\u00a0dotycz\u0105\u00a0cechy\u00a0wyj\u0105tkiem\u00a0s\u0105\u00a0dokumenty\u00a0gdzie\u00a0nazwa\u00a0to\u00a0types_of_documents_view\r\n$tbl_id\u00a0=\u00a01;\u00a0\/\/\u00a0identyfikator\u00a0obiektu\u00a0w\u00a0systemie\u00a0np.\u00a0dla\u00a0klient\u00f3w\u00a0jest\u00a0to\u00a0contid\u00a0(contacts.contid)\r\n$value\u00a0=\u00a0FeaturesHelper::getTextValue($featureID,\u00a0$tblnam,\u00a0$tbl_id);\n<\/code><\/pre><\/div>\n<h2><a name=\"multi-file-download\"><\/a>Przes\u0142anie wielu plik\u00f3w do pobrania przez u\u017cytkownika<\/h2>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\nrequire_once(LIB_PATH.'system\/VarPathService.inc')\r\nrequire_once(LIB_PATH.'filesystem\/MimeType.inc')\r\nrequire_once(LIB_PATH.'contrib\/PHPZip\/Zip.php');\r\n\r\n$tmpPath\u00a0=\u00a0VarPathService::getTmpPath();\r\n\r\n$aFilenames\u00a0=\u00a0array(\r\n\u00a0\u00a0\u00a0\u00a0$tmpPath.'fileA.pdf',\r\n\u00a0\u00a0\u00a0\u00a0$tmpPath.'fileB.pdf',\r\n);\r\n\r\n\r\n$zip\u00a0=\u00a0new\u00a0Zip();\r\n\r\n$zipFilename\u00a0=\u00a0'archive.zip';\r\n\r\nforeach\u00a0($aFilenames\u00a0as\u00a0$filename)\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0$body\u00a0=\u00a0file_get_contents($filename);\r\n\r\n\u00a0\u00a0\u00a0\u00a0if(!is_null($fbody))\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$zip-&gt;addFile($body,\u00a0basename($filename),\u00a00,\u00a0null,\u00a0false);\r\n\u00a0\u00a0\u00a0\u00a0}\u00a0else\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0throw\u00a0new\u00a0Exception(sprintf(Translator::translate('Nie\u00a0mo\u017cna\u00a0odczyta\u0107\u00a0pliku\u00a0%s'),\u00a0basename($filename));\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0$body\u00a0=\u00a0null;\r\n}\r\n\r\n$zipBody\u00a0=\u00a0$zip-&gt;getZipData();\r\n\r\n\/\/\u00a0Clean\u00a0and\u00a0turn\u00a0off\u00a0output\u00a0buffer\r\nif(ob_get_level())\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0ob_end_clean();\r\n}\r\n\r\nheader('Pragma:\u00a0public');\r\nheader('Expires:\u00a0-1');\r\nheader('Cache-Control:\u00a0public,\u00a0must-revalidate,\u00a0post-check=0,\u00a0pre-check=0');\r\nheader('Content-Transfer-Encoding:\u00a0binary');\r\nheader('Content-Disposition:\u00a0attachment;\u00a0filename=\"'.$zipFilename.'\"');\r\nheader('Content-Type:\u00a0'.MimeType::get(null,\u00a0$zipFilename));\r\nheader('Content-Length:\u00a0'.mb_strlen($zipBody,\u00a0'8bit');\r\n\r\nsession_write_close();\r\nset_time_limit(0);\r\n\r\necho\u00a0$zipBody;\n<\/code><\/pre><\/div>\n<h2>Aktualizacja pliku\/za\u0142\u0105cznika<\/h2>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\nrequire_once(LIB_PATH.'filesystem\/File.inc');\r\n\r\n$file = new File($fileID);\r\n$file-&gt;setContent($content);\r\n\r\n$location = FileLocation::createByURI($file-&gt;URI);\r\n$doSVNCommit = TRUE;\r\nif ($location-&gt;isUnderVersionControl()) {\r\n    $result = $file-&gt;updateFile($doSVNCommit);\r\n} else {\r\n    $result = $file-&gt;newVersion($doSVNCommit);\r\n}\n<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>U\u017cycie obiektu typu Bean dokumentu Przyk\u0142ad pokazuje spos\u00f3b zmiany statusu (tpstid) oraz oznaczenie dokumentu jako za\u0142atwiony: Wywo\u0142anie formularza do potwierdzenia czynno\u015bci Wy\u015bwietlony zostanie\u00a0formularz typu ConfirmBox. Kod zawarty wewn\u0105trz warunku if zostanie wykonany po potwierdzeniu przez u\u017cytkownika, w przypadku odrzucenia przez u\u017cytkownika kod zostanie pomini\u0119ty. &nbsp; Wywo\u0142anie komendy ze skryptu Od\u015bwie\u017cenie dialogu po wykonaniu komendy &nbsp; [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":510,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"tags":[83,84,21,85,86,81,82,87],"_links":{"self":[{"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/pages\/167"}],"collection":[{"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/comments?post=167"}],"version-history":[{"count":30,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/pages\/167\/revisions"}],"predecessor-version":[{"id":3465,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/pages\/167\/revisions\/3465"}],"up":[{"embeddable":true,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/pages\/510"}],"wp:attachment":[{"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/media?parent=167"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/tags?post=167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}