# Name: jcr_file_custom v0.1.1 # Type: Admin/Public plugin # Adds a custom field to the files panel # Author: jcr / txpbuilders # URL: http://txp.builders # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern CMS - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxNTp7czo0OiJuYW1lIjtzOjE1OiJqY3JfZmlsZV9jdXN0b20iO3M6NzoidmVyc2lvbiI7 czo1OiIwLjEuMSI7czo4OiJyZXZpc2lvbiI7czowOiIiO3M6NjoiYXV0aG9yIjtzOjE3OiJq Y3IgLyB0eHBidWlsZGVycyI7czoxMDoiYXV0aG9yX3VyaSI7czoxOToiaHR0cDovL3R4cC5i dWlsZGVycyI7czoxMToiZGVzY3JpcHRpb24iO3M6Mzg6IkFkZHMgYSBjdXN0b20gZmllbGQg dG8gdGhlIGZpbGVzIHBhbmVsIjtzOjU6Im9yZGVyIjtzOjE6IjUiO3M6NDoidHlwZSI7czox OiIxIjtzOjU6ImZsYWdzIjtzOjE6IjIiO3M6ODoidGV4dHBhY2siO3M6OTc6IiNAYWRtaW4K I0BsYW5ndWFnZSBlbi1nYgpqY3JfZmlsZV9jdXN0b20gPT4gSW1hZ2UgSUQKI0BsYW5ndWFn ZSBkZS1kZQpqY3JfZmlsZV9jdXN0b20gPT4gQmlsZCBJRAoiO3M6MTA6ImxvYWRfb3JkZXIi O3M6MToiNSI7czo0OiJoZWxwIjtzOjMxMzA6IjxoMT5qY3JfZmlsZV9jdXN0b208L2gxPgoK PHA+QWRkcyBhIHNpbmdsZSBleHRyYSBjdXN0b20gZmllbGQgb2YgdXAgdG8gMjU1IGNoYXJh Y3RlcnMgdG8gdGhlIDxhIGhyZWY9Imh0dHA6Ly9kb2NzLnRleHRwYXR0ZXJuLmlvL2FkbWlu aXN0cmF0aW9uL2ZpbGVzLXBhbmVsIj5Db250ZW50IOKAuiBGaWxlczwvYT4gcGFuZWwgYW5k IHByb3ZpZGVzIGEgY29ycmVzcG9uZGluZyB0YWcgdG8gb3V0cHV0IHRoZSBjdXN0b20gZmll bGQuPC9wPgoKCjxoMj5Vc2UgY2FzZXM8L2gyPgoKPHA+VXNlIHdoZW5ldmVyIGV4dHJhIGlu Zm9ybWF0aW9uIG5lZWRzIHRvIGJlIHN0b3JlZCB3aXRoIGEgZmlsZS4gRm9yIGV4YW1wbGU6 PC9wPgoKPHVsPgoJPGxpPlN0b3JlIGEgdHhwIGltYWdlIElEIG51bWJlciBhbmQgdXNlIGl0 IHRvIGFzc29jaWF0ZSBhIGNvdmVyIGltYWdlIHdpdGggdGhlIGZpbGUuPC9saT4KCTxsaT5T dG9yZSBhc3NvY2lhdGVkIGRldGFpbHMsIGZvciBleGFtcGxlIHRoZSBhdXRob3Iocykgb2Yg YSBkb2N1bWVudCBvciBkdXJhdGlvbiBvZiBhIG11c2ljIHRyYWNrLjwvbGk+Cgk8bGk+4oCm PC9saT4KPC91bD4KCgo8aDIgaWQ9Imluc3RhbGxhdGlvbiI+SW5zdGFsbGF0aW9uPC9oMj4K CjxwPlBhc3RlIHRoZSBjb2RlIGludG8gdGhlICA8ZW0+QWRtaW4g4oC6IFBsdWdpbnM8L2Vt PiBwYW5lbCwgaW5zdGFsbCBhbmQgZW5hYmxlIHRoZSBwbHVnaW4uPC9wPgoKCjxoMiBpZD0i dGFncyI+VGFnczwvaDI+Cgo8cHJlPjxjb2RlPiZsdDt0eHA6amNyX2ZpbGVfY3VzdG9tIC8m Z3Q7PC9jb2RlPjwvcHJlPgoKPHA+T3V0cHV0cyB0aGUgY29udGVudCBvZiB0aGUgZmlsZSBj dXN0b20gZmllbGQuPC9wPgoKPGgzPlRhZyBhdHRyaWJ1dGVzPC9oMz4KCjxwPjxzdHJvbmc+ ZXNjYXBlPC9zdHJvbmc+PGJyIC8+CkVzY2FwZSA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwv c3Bhbj4gZW50aXRpZXMgc3VjaCBhcyA8Y29kZT4mbHQ7PC9jb2RlPiwgPGNvZGU+Jmd0Ozwv Y29kZT4gYW5kIDxjb2RlPiZhbXA7PC9jb2RlPiBwcmlvciB0byBlY2hvaW5nIHRoZSBmaWVs ZCBjb250ZW50cy48YnIgLz4KRXhhbXBsZTogVXNlIDxjb2RlPmVzY2FwZT0mcXVvdDsmcXVv dDs8L2NvZGU+IHRvIHN1cHByZXNzIGNvbnZlcnNpb24uIERlZmF1bHQ6IDxjb2RlPmh0bWw8 L2NvZGU+LjwvcD4KCgo8aDIgaWQ9ImV4YW1wbGVzIj5FeGFtcGxlPC9oMj4KCjxwPlByb2R1 Y2UgYSBsaXN0IG9mIGRvd25sb2FkYWJsZSBkb2N1bWVudHMgKGFzc2lnbmVkIHRvIHRoZSBm aWxlIGNhdGVnb3J5ICYjODIyMDtpc3N1ZXMmIzgyMjE7KSB3aXRoIHRoZWlyIHB1YmxpY2F0 aW9uIGNvdmVyczo8L3A+Cgo8cHJlPjxjb2RlPiZsdDt0eHA6ZmlsZV9kb3dubG9hZF9saXN0 IHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsgYnJlYWs9JnF1b3Q7bGkmcXVvdDsgY2F0ZWdvcnk9 JnF1b3Q7aXNzdWVzJnF1b3Q7Jmd0OwogICZsdDthIGhyZWY9JnF1b3Q7Jmx0O3R4cDpmaWxl X2Rvd25sb2FkX2xpbmsgLyZndDsmcXVvdDsgdGl0bGU9JnF1b3Q7Jmx0O3R4cDpmaWxlX2Rv d25sb2FkX25hbWUgLyZndDsmcXVvdDsmZ3Q7CiAgICAmbHQ7dHhwOmltYWdlIGlkPSYjMzk7 Jmx0O3R4cDpqY3JfZmlsZV9jdXN0b20gLyZndDsmIzM5OyAvJmd0OwogICZsdDsvYSZndDsK Jmx0Oy90eHA6ZmlsZV9kb3dubG9hZF9saXN0Jmd0OzwvY29kZT48L3ByZT4KCjxwPndoZW4g dGhlIGZpbGUgY3VzdG9tIGZpZWxkIGlzIHVzZWQgdG8gc3RvcmUgdGhlIEltYWdlIElEIyBv ZiB0aGUgZG9jdW1lbnQgY292ZXIgaW1hZ2UuPC9wPgoKCjxoMj5DaGFuZ2luZyB0aGUgbGFi ZWwgb2YgdGhlIGN1c3RvbSBmaWVsZDwvaDI+Cgo8cD5UaGUgbmFtZSBvZiBjdXN0b20gZmll bGQgY2FuIGJlIGNoYW5nZWQgYnkgc3BlY2lmeWluZyBhIG5ldyBsYWJlbCB1c2luZyB0aGUg PGVtPkluc3RhbGwgZnJvbSBUZXh0cGFjazwvZW0+IGZpZWxkIGluIHRoZSA8YSBocmVmPSJo dHRwOi8vZG9jcy50ZXh0cGF0dGVybi5pby9hZG1pbmlzdHJhdGlvbi9sYW5ndWFnZXMtcGFu ZWwiPkFkbWluIOKAuiBMYW5ndWFnZXM8L2E+IHBhbmVsLiBFbnRlciB5b3VyIG93biBpbmZv cm1hdGlvbiBpbiB0aGUgZm9sbG93aW5nIHBhdHRlcm4gYW5kIGNsaWNrIDxzdHJvbmc+VXBs b2FkPC9zdHJvbmc+OjwvcD4KCjxwcmU+PGNvZGU+I0BhZG1pbgojQGxhbmd1YWdlIGVuLWdi Cmpjcl9maWxlX2N1c3RvbSA9Jmd0OyBZb3VyIGxhYmVsPC9jb2RlPjwvcHJlPgoKPHA+cmVw bGFjaW5nIDxjb2RlPmVuLWdiPC9jb2RlPiB3aXRoIHlvdXIgb3duIGxhbmd1YWdlIGFuZCA8 Y29kZT5Zb3VyIGxhYmVsPC9jb2RlPiB3aXRoIHlvdXIgb3duIGRlc2lyZWQgbGFiZWwuPC9w PgoKCjxoMiBpZD0iZGVpbnN0YWxsYXRpb24iPkRlLWluc3RhbGxhdGlvbjwvaDI+Cgo8cD5U aGUgcGx1Z2luIGNsZWFucyB1cCBhZnRlciBpdHNlbGY6IGRlaW5zdGFsbGluZyB0aGUgcGx1 Z2luIHJlbW92ZXMgdGhlIGV4dHJhIGNvbHVtbiBmcm9tIHRoZSBkYXRhYmFzZS4gVG8gc3Rv cCB1c2luZyB0aGUgcGx1Z2luIGJ1dCBrZWVwIHRoZSBkYXRhYmFzZSB0YWJsZXMsIGp1c3Qg ZGlzYWJsZSAoZGVhY3RpdmF0ZSkgdGhlIHBsdWdpbiBidXQgZG9uJiM4MjE3O3QgZGVsZXRl IGl0LjwvcD4KCgo8aDIgaWQ9ImNoYW5nZWxvZyI+Q2hhbmdlbG9nPC9oMj4KCjxoMz5WZXJz aW9uIDAuMS4xIOKAkyAyMDE2LzEyLzA1PC9oMz4KCjx1bD4KCTxsaT5SZW1lZHkgdGFibGUg bm90IGJlaW5nIGNyZWF0ZWQgb24gaW5zdGFsbDwvbGk+CjwvdWw+Cgo8aDM+VmVyc2lvbiAw LjEg4oCTIDIwMTYvMDMvMDQ8L2gzPgoKPHVsPgoJPGxpPkZpcnN0IHJlbGVhc2U8L2xpPgo8 L3VsPgoKCjxoMiBpZD0iY3JlZGl0cyI+Q3JlZGl0czwvaDI+Cgo8cD5Sb2JlcnQgV2V0emxt YXly4oCZcyA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vcndldHpsbWF5ci93ZXRfcHJv ZmlsZSI+d2V0X3Byb2ZpbGU8L2E+IHBsdWdpbiBmb3IgdGhlIHN0YXJ0aW5nIHBvaW50LCBh bmQgZnVydGhlciBleGFtcGxlcyBieSA8YSBocmVmPSJodHRwOi8vd3d3LnN0ZWZkYXdzb24u Y29tIj5TdGVmIERhd3NvbjwvYT4gYW5kIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9n b2NvbSI+SnVra2EgU3ZhaG48L2E+LjwvcD4iO3M6MzoiY3NzIjtzOjA6IiI7czo0OiJjb2Rl IjtzOjI3MTM6ImNsYXNzIGpjcl9maWxlX2N1c3RvbQp7CgkvKioKCSAqIEluaXRpYWxpc2Uu CgkgKi8KCSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCgl7CgkJLy8gSG9vayBpbnRvIHRoZSBz eXN0ZW0ncyBjYWxsYmFja3MuCgkJcmVnaXN0ZXJfY2FsbGJhY2soYXJyYXkoX19DTEFTU19f LCAnbGlmZWN5Y2xlJyksICdwbHVnaW5fbGlmZWN5Y2xlLmpjcl9maWxlX2N1c3RvbScpOwoJ CXJlZ2lzdGVyX2NhbGxiYWNrKGFycmF5KF9fQ0xBU1NfXywgJ3VpJyksICdmaWxlX3VpJywg J2V4dGVuZF9kZXRhaWxfZm9ybScpOwoJCXJlZ2lzdGVyX2NhbGxiYWNrKGFycmF5KF9fQ0xB U1NfXywgJ3NhdmUnKSwgJ2ZpbGUnLCAnZmlsZV9zYXZlJyk7Cgl9CgoJLyoqCiAgICogQWRk IGFuZCByZW1vdmUgY3VzdG9tIGZpZWxkIGZyb20gdHhwX2ZpbGUgdGFibGUuCiAgICoKICAg KiBAcGFyYW0gJGV2ZW50IHN0cmluZwogICAqIEBwYXJhbSAkc3RlcCBzdHJpbmcgIFRoZSBs aWZlY3ljbGUgcGhhc2Ugb2YgdGhpcyBwbHVnaW4KICAgKi8KICBwdWJsaWMgc3RhdGljIGZ1 bmN0aW9uIGxpZmVjeWNsZSgkZXZlbnQsICRzdGVwKQogIHsKICAgICAgc3dpdGNoICgkc3Rl cCkgewogICAgICAgICAgY2FzZSAnZW5hYmxlZCc6CiAgICAgICAgICAgICAgYnJlYWs7CiAg ICAgICAgICBjYXNlICdkaXNhYmxlZCc6CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg ICBjYXNlICdpbnN0YWxsZWQnOgogICAgICAgICAgICAgIHNhZmVfYWx0ZXIoCiAgICAgICAg ICAgICAgICAndHhwX2ZpbGUnLAogICAgICAgICAgICAgICAgJ0FERCBDT0xVTU4gamNyX2Zp bGVfY3VzdG9tIFZBUkNIQVIoMjU1KSBOVUxMIEFGVEVSIGF1dGhvcicKICAgICAgICAgICAg ICApOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAnZGVsZXRlZCc6CiAg ICAgICAgICAgICAgc2FmZV9hbHRlcigKICAgICAgICAgICAgICAgICd0eHBfZmlsZScsCiAg ICAgICAgICAgICAgICAnRFJPUCBDT0xVTU4gamNyX2ZpbGVfY3VzdG9tJwogICAgICAgICAg ICAgICk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgcmV0dXJuOwogIH0K CgkvKioKCSAqIFBhaW50IGFkZGl0aW9uYWwgZmllbGRzIGZvciBmaWxlIGN1c3RvbSBmaWVs ZAoJICoKCSAqIEBwYXJhbSAkZXZlbnQgc3RyaW5nCgkgKiBAcGFyYW0gJHN0ZXAgc3RyaW5n CgkgKiBAcGFyYW0gJGR1bW15IHN0cmluZwoJICogQHBhcmFtICRycyBhcnJheSBUaGUgY3Vy cmVudCBmaWxlJ3MgZGF0YQoJICogQHJldHVybiBzdHJpbmcKCSAqLwoJcHVibGljIHN0YXRp YyBmdW5jdGlvbiB1aSgkZXZlbnQsICRzdGVwLCAkZHVtbXksICRycykKCXsKCQlleHRyYWN0 KGxBdHRzKGFycmF5KAoJCQknamNyX2ZpbGVfY3VzdG9tJyA9PiAnJwoJCSksICRycywgMCkp OwoKCQlyZXR1cm4KCQkJaW5wdXRMYWJlbCgnamNyX2ZpbGVfY3VzdG9tJywgZklucHV0KCd0 ZXh0JywgJ2pjcl9maWxlX2N1c3RvbScsICRqY3JfZmlsZV9jdXN0b20sICcnLCAnJywgJycs IElOUFVUX1JFR1VMQVIsICcnLCAnamNyX2ZpbGVfY3VzdG9tJyksICdqY3JfZmlsZV9jdXN0 b20nKS5uOwoJfQoKCS8qKgoJICogU2F2ZSBhZGRpdGlvbmFsIGZpbGUgY3VzdG9tIGZpZWxk cwoJICoKCSAqIEBwYXJhbSAkZXZlbnQgc3RyaW5nCgkgKiBAcGFyYW0gJHN0ZXAgc3RyaW5n CgkgKi8KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2F2ZSgkZXZlbnQsICRzdGVwKQoJewoJ CWV4dHJhY3QoZG9TbGFzaChwc2EoYXJyYXkoJ2pjcl9maWxlX2N1c3RvbScsICdpZCcpKSkp OwoJCSRpZCA9IGFzc2VydF9pbnQoJGlkKTsKCQlzYWZlX3VwZGF0ZSgndHhwX2ZpbGUnLAoJ CSAgImpjcl9maWxlX2N1c3RvbSA9ICckamNyX2ZpbGVfY3VzdG9tJyIsCgkJCSJpZCA9ICRp ZCIKCQkpOwoJfQp9CgppZiAodHhwaW50ZXJmYWNlID09PSAnYWRtaW4nKSB7CgogICAgbmV3 IGpjcl9maWxlX2N1c3RvbTsKCn0gZWxzZWlmICh0eHBpbnRlcmZhY2UgPT09ICdwdWJsaWMn KSB7CgogICAgaWYgKGNsYXNzX2V4aXN0cygnXFRleHRwYXR0ZXJuXFRhZ1xSZWdpc3RyeScp KSB7CiAgICAgICAgVHhwOjpnZXQoJ1xUZXh0cGF0dGVyblxUYWdcUmVnaXN0cnknKQogICAg ICAgICAgICAtPnJlZ2lzdGVyKCdqY3JfZmlsZV9jdXN0b20nKTsKICAgIH0KCn0KCiAgLyoq CiAgICogUHVibGljIHRhZzogT3V0cHV0IGN1c3RvbSBmaWxlIGZpZWxkCiAgICogQHBhcmFt ICBzdHJpbmcgJGF0dHNbZXNjYXBlXSBDb252ZXJ0IHNwZWNpYWwgY2hhcmFjdGVycyB0byBI VE1MIGVudGl0aWVzLgogICAqIEByZXR1cm4gc3RyaW5nIGN1c3RvbSBmaWVsZCBvdXRwdXQK ICAgKiA8Y29kZT4KICAgKiAgICAgICAgPHR4cDpqY3JfZmlsZV9jdXN0b20gZXNjYXBlPSJo dG1sIiAvPgogICAqIDwvY29kZT4KICAgKi8KCiAgICBmdW5jdGlvbiBqY3JfZmlsZV9jdXN0 b20oJGF0dHMpCiAgICB7CiAgICAgICAgZ2xvYmFsICR0aGlzZmlsZTsKCiAgICAgICAgYXNz ZXJ0X2ZpbGUoKTsKCiAgICAgICAgZXh0cmFjdChsQXR0cyhhcnJheSgKICAgICAgICAgICAg J2VzY2FwZScgPT4gJ2h0bWwnLAogICAgICAgICksICRhdHRzKSk7CgogICAgICAgIHJldHVy biAoJGVzY2FwZSA9PSAnaHRtbCcpCiAgICAgICAgICAgID8gdHhwc3BlY2lhbGNoYXJzKCR0 aGlzZmlsZVsnamNyX2ZpbGVfY3VzdG9tJ10pCiAgICAgICAgICAgIDogJHRoaXNmaWxlWydq Y3JfZmlsZV9jdXN0b20nXTsKICAgIH0iO3M6MzoibWQ1IjtzOjMyOiI3MzQ4MDU3YjAyZDIy ZjgyZTNlNTZiMTEwNzQwNGJhMCI7fQ==