Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
Re: [feedback] Image upload directly in the write tab
philwareham wrote #301579:
Please open an issue for this on GitHub. I have planned work for this in 4.7 and we can discuss further. Cheers!
I can, but there are more users here than on github. I’d rather plan it for 4.8, when we’ll have to treat all kind of custom fields types, but great if 4.7 can already integrate it.
Offline
Re: [feedback] Image upload directly in the write tab
etc wrote #301578:
Since 4.6 is here, I have revisited abc_article_image plugin, to experiment with possible image upload workflows. Now it features drag and drop/sort support (only partly in IE/Edge). Suggestions welcome.
Nice experimentation; I’m lovin’it!
Offline
#39 2017-08-17 18:54:43
- raminrahimi
- Member
- From: India
- Registered: 2013-03-19
- Posts: 278
Re: [feedback] Image upload directly in the write tab
That is really a good idea and good system presented by etc :-) all the best
if u make option for that to do auto resize of images, that would be a good option.
Offline
Re: [feedback] Image upload directly in the write tab
I love the plugin, and my clients too!
One question though… is there a limit on how many images you can upload and view in the write tab with this plugin? At some point I can drag images in the box and the plugin will upload them but won’t show them in the list of images nor does it show up in the image ID box above the images.
Offline
Re: [feedback] Image upload directly in the write tab
Hello,
it’s been a long time, but AFAIR there is no limitation in the plugin itself. The browser and/or the server can limit the number of simultaneously uploaded files, though, but I don’t know how to fix it, sorry.
Offline
Re: [feedback] Image upload directly in the write tab
Thanks man! I already persuaded my client to limit the amount of photos to upload ?
He was kind of eager to upload as much photos as possible.
Offline
Re: [feedback] Image upload directly in the write tab
I have slightly modified abc_article_image
to enable drag-drop uploaded article images on textareas support. Nothing fancy, just allows you to insert <txp:image />
tag at the drop cursor position. Requires txp 4.7.
# Name: abc_article_image v0.5
# Type: Admin/AJAX plugin
#
# Author:
# URL:
# 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:
# .....................................................................
YToxMTp7czo0OiJuYW1lIjtzOjE3OiJhYmNfYXJ0aWNsZV9pbWFnZSI7czo2OiJhdXRob3Ii
O3M6MDoiIjtzOjEwOiJhdXRob3JfdXJpIjtzOjA6IiI7czo3OiJ2ZXJzaW9uIjtzOjM6IjAu
NSI7czoxMToiZGVzY3JpcHRpb24iO3M6MDoiIjtzOjQ6ImNvZGUiO3M6NjIzNzoiZ2xvYmFs
ICRldmVudDsNCg0KaWYoJGV2ZW50ID09ICdhcnRpY2xlJyAmJiBoYXNfcHJpdnMoJ2ltYWdl
LmVkaXQub3duJykpDQp7DQoJcmVnaXN0ZXJfY2FsbGJhY2soJ2FiY19maWxlX3VwbG9hZCcs
ICdhcnRpY2xlX3VpJywgJ2FydGljbGVfaW1hZ2UnKTsNCglyZWdpc3Rlcl9jYWxsYmFjaygn
YWJjX2ZpbGVfc2F2ZScsICdhcnRpY2xlX3Bvc3RlZCcpOw0KCXJlZ2lzdGVyX2NhbGxiYWNr
KCdhYmNfZmlsZV9zYXZlJywgJ2FydGljbGVfc2F2ZWQnKTsNCglyZWdpc3Rlcl9jYWxsYmFj
aygnYWJjX2ZpbGVfanMnLCAnYWRtaW5fc2lkZScsICdib2R5X2VuZCcpOw0KfQ0KDQpmdW5j
dGlvbiBhYmNfZmlsZV9qcygkZXZlbnQsICRzdGVwKSB7DQplY2hvIHNjcmlwdF9qcygnDQok
KCIjdHhwLWltYWdlLWdyb3VwLWNvbnRlbnQiKS5vbigiY2xpY2siLCAiI2FydGljbGUtZmls
ZS1yZXNldCIsIGZ1bmN0aW9uKGUpIHsNCgllLnByZXZlbnREZWZhdWx0KCk7DQoJJCgiI2Fy
dGljbGUtZmlsZS1pbnB1dCIpLnZhbCgiIik7DQoJJCgiI2FydGljbGUtZmlsZS1wcmV2aWV3
IikuZW1wdHkoKTsNCgkkKCIjYXJ0aWNsZS1maWxlLXJlc2V0IikuY3NzKCJ2aXNpYmlsaXR5
IiwgImhpZGRlbiIpOw0KfSkub24oImNsaWNrIiwgIi5zb3J0YWJsZSAuZGVzdHJveSIsIGZ1
bmN0aW9uKGUpIHsNCgllLnByZXZlbnREZWZhdWx0KCk7DQoJJCh0aGlzKS5wYXJlbnQoKS5y
ZW1vdmVDbGFzcygic29ydGFibGUiKS5hcHBlbmRUbygiI2FydGljbGUtZmlsZS1zZWxlY3Qi
KTsNCgkkKCIjdHhwLWltYWdlLWdyb3VwLWNvbnRlbnQiKS50cmlnZ2VyKCJzb3J0dXBkYXRl
Iikuc29ydGFibGUoInJlZnJlc2giKTsNCn0pLm9uKCJjbGljayIsICIjYXJ0aWNsZS1maWxl
LWFkZCIsIGZ1bmN0aW9uKGUpIHsNCgllLnByZXZlbnREZWZhdWx0KCk7DQoJJCgiI2FydGlj
bGUtZmlsZS1zZWxlY3QiKS50b2dnbGVDbGFzcygiaGlkZGVuIik7DQp9KS5vbigiZHJhZ3N0
YXJ0IiwgIiNhcnRpY2xlLWZpbGUtY29udGFpbmVyIGEsICNhcnRpY2xlLWZpbGUtc2VsZWN0
IGEiLCBmdW5jdGlvbihlKSB7DQoJZS5vcmlnaW5hbEV2ZW50LmRhdGFUcmFuc2Zlci5zZXRE
YXRhKCJ0ZXh0L3BsYWluIiwgZS5vcmlnaW5hbEV2ZW50LnRhcmdldC50aXRsZSk7DQp9KS5v
bigic29ydHVwZGF0ZSIsIGZ1bmN0aW9uKCBldmVudCApIHsNCgl2YXIgJGNvbnRhaW5lciA9
ICQoIiNhcnRpY2xlLWZpbGUtY29udGFpbmVyIiksIGxpc3QgPSBbXTsNCgkkY29udGFpbmVy
LmNoaWxkcmVuKCJwIikubm90KCIuZGVsZXRlZCIpLmVhY2goZnVuY3Rpb24oKSB7DQoJCWxp
c3QucHVzaCgkKHRoaXMpLmRhdGEoImlkIikpOw0KCX0pOw0KCSQoIiNhcnRpY2xlLWltYWdl
IikudmFsKGxpc3Quam9pbigpKTsNCn0pLm9uKCJjbGljayIsICIjYXJ0aWNsZS1maWxlLXNl
bGVjdCBhIiwgZnVuY3Rpb24oZSkgew0KCWUucHJldmVudERlZmF1bHQoKTsNCgkkKHRoaXMp
LnBhcmVudCgpLmFkZENsYXNzKCJzb3J0YWJsZSIpLmFwcGVuZFRvKCIjYXJ0aWNsZS1maWxl
LWNvbnRhaW5lciIpOw0KCSQoIiN0eHAtaW1hZ2UtZ3JvdXAtY29udGVudCIpLnRyaWdnZXIo
InNvcnR1cGRhdGUiKS5zb3J0YWJsZSgicmVmcmVzaCIpOw0KfSk7DQoNCiQoIiN0eHAtaW1h
Z2UtZ3JvdXAtY29udGVudCIpLm9uKCJkcmFnZW5kIiwgIiNhcnRpY2xlLWZpbGUtY29udGFp
bmVyIGEiLCBmdW5jdGlvbihlKSB7DQoJJCgiI3R4cC1pbWFnZS1ncm91cC1jb250ZW50Iiku
c29ydGFibGUoImVuYWJsZSIpOw0KfSkuc29ydGFibGUoew0KCWl0ZW1zOiAiLnNvcnRhYmxl
IiwNCglvdXQ6IGZ1bmN0aW9uIChldmVudCwgdWkpIHsNCgkJaWYgKCEhZHJvcHBlZE91dHNp
ZGUpICQodGhpcykuc29ydGFibGUoImRpc2FibGUiKTsNCgl9LA0KCW92ZXI6IGZ1bmN0aW9u
IChldmVudCwgdWkpIHsNCgkJJCh0aGlzKS5zb3J0YWJsZSgiZW5hYmxlIik7DQoJfSwNCgli
ZWZvcmVTdG9wOiBmdW5jdGlvbiAoZXZlbnQsIHVpKSB7ZHJvcHBlZE91dHNpZGUgPSBmYWxz
ZTsNCgl9LA0KCXN0YXJ0OiBmdW5jdGlvbiAoZXZlbnQsIHVpKSB7ZHJvcHBlZE91dHNpZGUg
PSB0cnVlOw0KCX0NCn0pOw0KDQp3aW5kb3cuYWJjUHJldmlldyA9IGZ1bmN0aW9uIChpbnB1
dCkgew0KCXZhciBjcmVhdGVPYmplY3RVUkwgPSAod2luZG93LlVSTCB8fCB3aW5kb3cud2Vi
a2l0VVJMIHx8IHt9KS5jcmVhdGVPYmplY3RVUkwNCg0KCWlmIChjcmVhdGVPYmplY3RVUkwg
JiYgaW5wdXQuZmlsZXMubGVuZ3RoKSB7DQoJCSQoIiNhcnRpY2xlLWZpbGUtcHJldmlldyIp
LmVtcHR5KCk7DQoJCSQoIiNhcnRpY2xlLWZpbGUtcmVzZXQiKS5jc3MoInZpc2liaWxpdHki
LCAidmlzaWJsZSIpOw0KCQkkKGlucHV0LmZpbGVzKS5lYWNoKGZ1bmN0aW9uICgpIHsNCgkJ
CSQoIiNhcnRpY2xlLWZpbGUtcHJldmlldyIpLmFwcGVuZCgiPHA+PGltZyBzcmM9XCciICsg
Y3JlYXRlT2JqZWN0VVJMKHRoaXMpICsgIlwnIC8+PC9wPiIpOw0KCQl9KTsNCgl9DQp9Jyku
bg0KLic8c3R5bGU+DQoJI3R4cC1pbWFnZS1ncm91cC1jb250ZW50IGltZ3ttYXgtd2lkdGg6
MTAwJTtoZWlnaHQ6YXV0b30NCgkjdHhwLWltYWdlLWdyb3VwLWNvbnRlbnQgLmRlbGV0ZWR7
b3BhY2l0eTowLjI1fQ0KCSN0eHAtaW1hZ2UtZ3JvdXAtY29udGVudCAuc29ydGFibGV7cG9z
aXRpb246cmVsYXRpdmV9DQoJI3R4cC1pbWFnZS1ncm91cC1jb250ZW50IC5kZXN0cm95e3Bv
c2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7ei1pbmRleDoxMDA7dmlzaWJpbGl0eTpoaWRkZW59
DQoJI3R4cC1pbWFnZS1ncm91cC1jb250ZW50IC5zb3J0YWJsZSAuZGVzdHJveXt2aXNpYmls
aXR5OnZpc2libGV9DQoJI2FydGljbGUtZmlsZS1yZXNldHt2aXNpYmlsaXR5OmhpZGRlbn0N
CgkuaGlkZGVue2Rpc3BsYXk6bm9uZX0NCgkjYXJ0aWNsZS1maWxlLWlucHV0e2hlaWdodDog
MTAwJTsgd2lkdGg6IDEwMCU7IHotaW5kZXg6IDUwOyBwb3NpdGlvbjogYWJzb2x1dGU7IG9w
YWNpdHk6IDB9DQoJI2FydGljbGUtZmlsZS1kcm9wPmRpdi50eHAtZm9ybS1maWVsZC12YWx1
ZXtwb3NpdGlvbjogcmVsYXRpdmU7IGJhY2tncm91bmQ6IHdoaXRlOyBvdXRsaW5lOiAxcHgg
c29saWQgI2UzZTNlMzsgbWluLWhlaWdodDogNWV4fQ0KCSNtYWluX2NvbnRlbnR7cG9zaXRp
b246c3RpY2t5O3RvcDowfQ0KPC9zdHlsZT4nOw0KfQ0KDQpmdW5jdGlvbiBhYmNfZmlsZV91
cGxvYWQoJGV2ZW50LCAkc3RlcCwgJGRhdGEsICRycykNCnsNCgkkaWRzID0gJGltYWdlcyA9
IGFycmF5KCk7DQoJaWYgKCFlbXB0eSgkcnNbJ0ltYWdlJ10pKQ0KCXsNCgkJJGltYWdlcyA9
IGFycmF5KCk7DQoJCWZvcmVhY2ggKGRvX2xpc3RfdW5pcXVlKCRyc1snSW1hZ2UnXSkgYXMg
JGlkKSB7DQoJCQlpZiAoIWlzX251bWVyaWMoJGlkKSkNCgkJCQkkaWQgPSAoaW50KSBmZXRj
aCgnaWQnLCAndHhwX2ltYWdlJywgJ25hbWUnLCAkaWQpOw0KCQkJaWYgKCRpZCkgew0KCQkJ
CSRpZHNbXSA9ICRpZDsNCgkJCX0NCgkJfQ0KCQkkaWRfbGlzdCA9IGltcGxvZGUoJywnLCAk
aWRzKTsNCgkJJHJvd3MgPSAkaWRzID8gc2FmZV9yb3dzKCdpZCwgZXh0JywgJ3R4cF9pbWFn
ZScsICdpZCBJTiAoJy4kaWRfbGlzdC4nKSBPUkRFUiBCWSBGSUVMRChpZCwgJy4kaWRfbGlz
dC4nKScpIDogYXJyYXkoKTsNCg0KCQlmb3JlYWNoICgkcm93cyBhcyAkcm93KSB7DQoJCQll
eHRyYWN0KCRyb3cpOw0KCQkJJGltYWdlc1tdID0gJzxwIGNsYXNzPSJzb3J0YWJsZSIgZGF0
YS1pZD0iJy4kaWQuJyI+PGEgaHJlZj0iaW5kZXgucGhwP2V2ZW50PWltYWdlJnN0ZXA9aW1h
Z2VfZWRpdCZpZD0nLiRpZC4nIiB0aXRsZT0iJmx0O3R4cDppbWFnZSBpZD0mcXVvdDsnLiRp
ZC4nJnF1b3QgLyZndDsiPicNCgkJCS4nPGltZyBzcmM9IicuaW1hZ2VzcmN1cmwoJGlkLCAk
ZXh0KS4nIiAvPicNCgkJCS4nPC9hPjxidXR0b24gY2xhc3M9ImRlc3Ryb3kiPjxzcGFuIGNs
YXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2UiPicuZ1R4dCgnZGVsZXRlJykuJzwvc3Bhbj48
L2J1dHRvbj48L3A+JzsNCgkJfQ0KCX0NCg0KCSRhcnRpY2xlX2ltYWdlID0gJzxkaXYgaWQ9
ImFydGljbGUtZmlsZS1jb250YWluZXIiPicuaW1wbG9kZShuLCAkaW1hZ2VzKS4nPC9kaXY+
Jy5uOw0KDQoJJGltYWdlcyA9IGFycmF5KCk7DQoJJHNlbGVjdF9pbWFnZXMgPSAnJzsNCg0K
CSRyb3dzID0gc2FmZV9yb3dzKCdpZCwgZXh0JywgJ3R4cF9pbWFnZScsICgkaWRzID8gJ2lk
IE5PVCBJTignLiRpZF9saXN0LicpJyA6ICcxJykuJyBPUkRFUiBCWSBkYXRlIERFU0MgTElN
SVQgMTAnKTsNCg0KCWZvcmVhY2ggKCRyb3dzIGFzICRyb3cpIHsNCgkJZXh0cmFjdCgkcm93
KTsNCgkJJGltYWdlc1tdID0gJzxwIGRhdGEtaWQ9IicuJGlkLiciPjxhIGhyZWY9ImluZGV4
LnBocD9ldmVudD1pbWFnZSZzdGVwPWltYWdlX2VkaXQmaWQ9Jy4kaWQuJyIgdGl0bGU9IiZs
dDt0eHA6aW1hZ2UgaWQ9JnF1b3Q7Jy4kaWQuJyZxdW90IC8mZ3Q7Ij4nDQoJCQkuJzxpbWcg
c3JjPSInLmltYWdlc3JjdXJsKCRpZCwgJGV4dCkuJyIgLz4nLy9pbWFnZShhcnJheSgnaWQn
ID0+ICRpZCkpDQoJCQkuJzwvYT48YnV0dG9uIGNsYXNzPSJkZXN0cm95Ij48c3BhbiBjbGFz
cz0idWktaWNvbiB1aS1pY29uLWNsb3NlIj4nLmdUeHQoJ2RlbGV0ZScpLic8L3NwYW4+PC9i
dXR0b24+PC9wPic7DQoJfQ0KDQoJJHNlbGVjdF9pbWFnZXMgPSAnPGEgaWQ9ImFydGljbGUt
ZmlsZS1hZGQiIGhyZWY9IiNhcnRpY2xlLWZpbGUtc2VsZWN0Ij4nLmdUeHQoJ2FkZCcpLic8
L2E+Jy5uDQoJLic8ZGl2IGlkPSJhcnRpY2xlLWZpbGUtc2VsZWN0IiBjbGFzcz0iaGlkZGVu
Ij4nLmltcGxvZGUobiwgJGltYWdlcykuJzwvZGl2PicubjsNCg0KCXJldHVybiAkZGF0YS5u
LiRhcnRpY2xlX2ltYWdlLm4uJzxociAvPicubg0KCS5pbnB1dExhYmVsKA0KCQknYXJ0aWNs
ZS1maWxlLWlucHV0JywNCgkJJzxidXR0b24gaWQ9ImFydGljbGUtZmlsZS1yZXNldCIgY2xh
c3M9ImRlc3Ryb3kiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2UiPicuZ1R4
dCgnZGVsZXRlJykuJzwvc3Bhbj48L2J1dHRvbj4nLm4uDQoJCSc8aW5wdXQgaWQ9ImFydGlj
bGUtZmlsZS1pbnB1dCIgdHlwZT0iZmlsZSIgbmFtZT0iYXJ0aWNsZV9maWxlW10iIG11bHRp
cGxlPSJtdWx0aXBsZSIgYWNjZXB0PSJpbWFnZS8qIiBvbmNoYW5nZT0iYWJjUHJldmlldyh0
aGlzKSIgLz4nDQoJCS4nPHA+Q2xpY2sgb3IgZHJvcCBmaWxlcyBvbiB0aGlzIHpvbmU8L3A+
Jy5uDQoJCS4nPGRpdiBpZD0iYXJ0aWNsZS1maWxlLXByZXZpZXciPjwvZGl2PicubiwgZ1R4
dCgndXBsb2FkJyksDQoJCWFycmF5KCcnLCAnaW5zdHJ1Y3Rpb25zX2FydGljbGVfaW1hZ2Un
KSwNCgkJYXJyYXkoJ2lkJyA9PiAnYXJ0aWNsZS1maWxlLWRyb3AnLCAnY2xhc3MnID0+ICd0
eHAtZm9ybS1maWVsZCBhcnRpY2xlLWltYWdlJykNCgkpLm4uJzxociAvPicubi4kc2VsZWN0
X2ltYWdlczsNCn0NCg0KZnVuY3Rpb24gYWJjX2ZpbGVfc2F2ZSgkZXZlbnQsICRzdGVwLCAk
cnMpDQp7DQoJaWYoZW1wdHkoJF9GSUxFU1snYXJ0aWNsZV9maWxlJ11bJ3RtcF9uYW1lJ11b
MF0pIHx8ICFoYXNfcHJpdnMoJ2ltYWdlLmVkaXQub3duJykpIHJldHVybjsNCg0KCWluY2x1
ZGVfb25jZSAnbGliJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidjbGFzcy50aHVtYi5waHAnOw0K
CSRpZHMgPSBhcnJheSgpOw0KCSRmaWxlcyA9IFR4cDo6Z2V0KCdcVGV4dHBhdHRlcm5cU2Vy
dmVyXEZpbGVzJyktPnJlZmFjdG9yKCRfRklMRVNbJ2FydGljbGVfZmlsZSddKTsNCg0KCWZv
cmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgew0KCQkkbWV0YSA9IGFycmF5KCdhbHQnID0+ICRm
aWxlWyduYW1lJ10pOyAgLy9jYXB0aW9uLCBjYXRlZ29yeQ0KCQkkaW1nX3Jlc3VsdCA9IGlt
YWdlX2RhdGEoJGZpbGUsICRtZXRhKTsNCg0KCQlpZiAoaXNfYXJyYXkoJGltZ19yZXN1bHQp
KSB7DQoJCQlsaXN0KCRtZXNzYWdlLCAkaWQpID0gJGltZ19yZXN1bHQ7DQoJCQkkaWRzW10g
PSAkaWQ7DQoJCX0NCgl9DQoNCgkkR0xPQkFMU1snSUQnXSA9IGludHZhbCgkcnNbJ0lEJ10p
Oy8vIHNpYyENCgkkaWRzID0gaW1wbG9kZSgnLCcsICRpZHMpOw0KCSRpZHMgPSBpbXBsb2Rl
KCcsJywgZG9fbGlzdF91bmlxdWUoJHJzWydJbWFnZSddLicsJy4kaWRzKSk7DQoJc2FmZV91
cGRhdGUoJ3RleHRwYXR0ZXJuJywgIkltYWdlPSciLmRvU2xhc2goJGlkcykuIiciLCAnSUQ9
Jy4kR0xPQkFMU1snSUQnXSk7DQp9IjtzOjQ6InR5cGUiO3M6MToiNCI7czo1OiJvcmRlciI7
czoxOiI1IjtzOjU6ImZsYWdzIjtzOjE6IjAiO3M6NDoiaGVscCI7czowOiIiO3M6MzoibWQ1
IjtzOjMyOiJhY2M5ZGE0ODQ1MTZhN2U3ZmI0ZTM1NTA3ZjAzYzUzZSI7fQ==
Offline
Re: [feedback] Image upload directly in the write tab
Version 0.6: now with drag image on article body to upload and insert.
# Name: abc_article_image v0.6
# Type: Admin/AJAX plugin
#
# Author:
# URL:
# 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:
# .....................................................................
YToxMTp7czo0OiJuYW1lIjtzOjE3OiJhYmNfYXJ0aWNsZV9pbWFnZSI7czo2OiJhdXRob3Ii
O3M6MDoiIjtzOjEwOiJhdXRob3JfdXJpIjtzOjA6IiI7czo3OiJ2ZXJzaW9uIjtzOjM6IjAu
NiI7czoxMToiZGVzY3JpcHRpb24iO3M6MDoiIjtzOjQ6ImNvZGUiO3M6ODQ1MToiZ2xvYmFs
ICRldmVudDsNCg0KaWYoJGV2ZW50ID09ICdhcnRpY2xlJyAmJiBoYXNfcHJpdnMoJ2ltYWdl
LmVkaXQub3duJykpDQp7DQoJcmVnaXN0ZXJfY2FsbGJhY2soJ2FiY19maWxlX3VwbG9hZCcs
ICdhcnRpY2xlX3VpJywgJ2FydGljbGVfaW1hZ2UnKTsNCglyZWdpc3Rlcl9jYWxsYmFjaygn
YWJjX2ZpbGVfc2F2ZScsICdhcnRpY2xlX3Bvc3RlZCcpOw0KCXJlZ2lzdGVyX2NhbGxiYWNr
KCdhYmNfZmlsZV9zYXZlJywgJ2FydGljbGVfc2F2ZWQnKTsNCglyZWdpc3Rlcl9jYWxsYmFj
aygnYWJjX2ZpbGVfanMnLCAnYWRtaW5fc2lkZScsICdib2R5X2VuZCcpOw0KfQ0KDQpmdW5j
dGlvbiBhYmNfZmlsZV9qcygkZXZlbnQsICRzdGVwKSB7DQplY2hvIHNjcmlwdF9qcygnDQpm
dW5jdGlvbiByZWFkZmlsZXMoZmlsZXMsIGlucHV0KSB7DQp2YXIgZm9ybURhdGEgPSBuZXcg
Rm9ybURhdGEoKSwgY291bnQgPSAwOw0KDQpmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmxl
bmd0aDsgaSsrKSB7DQogICAgaWYgKGZpbGVzW2ldLnR5cGUubWF0Y2goL15pbWFnZVwvLykp
IHsNCiAgICAgICAgY291bnQrKzsNCiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCJ0aGVmaWxl
W10iLCBmaWxlc1tpXSk7DQogICAgfQ0KfQ0KDQppZiAoIWNvdW50IC8qfHwgIXdpbmRvdy5j
b25maXJtKCJVcGxvYWQgaW1hZ2VzPyIpKi8pIHJldHVybjsNCg0KZm9ybURhdGEuYXBwZW5k
KCJfdHhwX3Rva2VuIiwgdGV4dHBhdHRlcm4uX3R4cF90b2tlbik7DQoNCiQuYWpheCh7DQog
ICAgdXJsOiAiaW5kZXgucGhwP2V2ZW50PWltYWdlJnN0ZXA9aW1hZ2VfaW5zZXJ0JmFwcF9t
b2RlPWFzeW5jIiwNCiAgICB0eXBlOiAiUE9TVCIsDQogICAgZGF0YTogZm9ybURhdGEsDQog
ICAgYXN5bmM6IHRydWUsDQogICAgc3VjY2VzczogZnVuY3Rpb24gKGRhdGEpIHsNCiAgICAg
ICAgdmFyIHRleHQgPSAiIjsNCiAgICAgICAgdGV4dHBhdHRlcm4uUmVsYXkuZGF0YS5maWxl
aWQuZm9yRWFjaChmdW5jdGlvbihpZCkgew0KICAgICAgICAgICAgdGV4dCArPSAiPHR4cDpp
bWFnZSBpZD1cIiIraWQrIlwiIC8+IjsNCiAgICAgICAgfSk7DQogICAgICAgIHRleHRwYXR0
ZXJuLlJlbGF5LmRhdGEuZmlsZWlkID0gW107DQogICAgICAgIGluc2VydEF0Q3Vyc29yKGlu
cHV0LCB0ZXh0KTsNCiAgICB9LA0KICAgIGNhY2hlOiBmYWxzZSwNCiAgICBjb250ZW50VHlw
ZTogZmFsc2UsDQogICAgcHJvY2Vzc0RhdGE6IGZhbHNlDQogfSk7DQp9ICAgICAgIA0KDQok
KCIjYm9keSwgI2V4Y2VycHQiKS5vbigiZHJhZ292ZXIiLCBmdW5jdGlvbihldnQpIHsNCiAg
ICBlID0gZXZ0Lm9yaWdpbmFsRXZlbnQ7DQogICAgaWYgKCQuaW5BcnJheSgiRmlsZXMiLCBl
LmRhdGFUcmFuc2Zlci50eXBlcykgPiAtMSkgew0KICAgICAgICBlLnN0b3BQcm9wYWdhdGlv
bigpOw0KICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgICAgIGUuZGF0YVRyYW5z
ZmVyLmRyb3BFZmZlY3QgPSAiY29weSI7DQogICAgfQ0KfSkub24oImRyb3AiLCBmdW5jdGlv
bihldnQpIHsNCiAgICBlID0gZXZ0Lm9yaWdpbmFsRXZlbnQ7DQogICAgaWYgKGUuZGF0YVRy
YW5zZmVyLmZpbGVzLmxlbmd0aCkgew0KICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7DQog
ICAgICAgIHJlYWRmaWxlcyhlLmRhdGFUcmFuc2Zlci5maWxlcywgdGhpcyk7DQogICAgfQ0K
fSk7DQoNCiQoIiN0eHAtaW1hZ2UtZ3JvdXAtY29udGVudCIpLm9uKCJjbGljayIsICIjYXJ0
aWNsZS1maWxlLXJlc2V0IiwgZnVuY3Rpb24oZSkgew0KCWUucHJldmVudERlZmF1bHQoKTsN
CgkkKCIjYXJ0aWNsZS1maWxlLWlucHV0IikudmFsKCIiKTsNCgkkKCIjYXJ0aWNsZS1maWxl
LXByZXZpZXciKS5lbXB0eSgpOw0KCSQoIiNhcnRpY2xlLWZpbGUtcmVzZXQiKS5jc3MoInZp
c2liaWxpdHkiLCAiaGlkZGVuIik7DQp9KS5vbigiY2xpY2siLCAiLnNvcnRhYmxlIC5kZXN0
cm95IiwgZnVuY3Rpb24oZSkgew0KCWUucHJldmVudERlZmF1bHQoKTsNCgkkKHRoaXMpLnBh
cmVudCgpLnJlbW92ZUNsYXNzKCJzb3J0YWJsZSIpLmFwcGVuZFRvKCIjYXJ0aWNsZS1maWxl
LXNlbGVjdCIpOw0KCSQoIiN0eHAtaW1hZ2UtZ3JvdXAtY29udGVudCIpLnRyaWdnZXIoInNv
cnR1cGRhdGUiKS5zb3J0YWJsZSgicmVmcmVzaCIpOw0KfSkub24oImNsaWNrIiwgIiNhcnRp
Y2xlLWZpbGUtYWRkIiwgZnVuY3Rpb24oZSkgew0KCWUucHJldmVudERlZmF1bHQoKTsNCgkk
KCIjYXJ0aWNsZS1maWxlLXNlbGVjdCIpLnRvZ2dsZUNsYXNzKCJoaWRkZW4iKTsNCn0pLm9u
KCJkcmFnc3RhcnQiLCAiI2FydGljbGUtZmlsZS1jb250YWluZXIgYSwgI2FydGljbGUtZmls
ZS1zZWxlY3QgYSIsIGZ1bmN0aW9uKGUpIHsNCgllLm9yaWdpbmFsRXZlbnQuZGF0YVRyYW5z
ZmVyLnNldERhdGEoInRleHQvcGxhaW4iLCBlLm9yaWdpbmFsRXZlbnQudGFyZ2V0LnRpdGxl
KTsNCn0pLm9uKCJzb3J0dXBkYXRlIiwgZnVuY3Rpb24oIGV2ZW50ICkgew0KCXZhciAkY29u
dGFpbmVyID0gJCgiI2FydGljbGUtZmlsZS1jb250YWluZXIiKSwgbGlzdCA9IFtdOw0KCSRj
b250YWluZXIuY2hpbGRyZW4oInAiKS5ub3QoIi5kZWxldGVkIikuZWFjaChmdW5jdGlvbigp
IHsNCgkJbGlzdC5wdXNoKCQodGhpcykuZGF0YSgiaWQiKSk7DQoJfSk7DQoJJCgiI2FydGlj
bGUtaW1hZ2UiKS52YWwobGlzdC5qb2luKCkpOw0KfSkub24oImNsaWNrIiwgIiNhcnRpY2xl
LWZpbGUtc2VsZWN0IGEiLCBmdW5jdGlvbihlKSB7DQoJZS5wcmV2ZW50RGVmYXVsdCgpOw0K
CSQodGhpcykucGFyZW50KCkuYWRkQ2xhc3MoInNvcnRhYmxlIikuYXBwZW5kVG8oIiNhcnRp
Y2xlLWZpbGUtY29udGFpbmVyIik7DQoJJCgiI3R4cC1pbWFnZS1ncm91cC1jb250ZW50Iiku
dHJpZ2dlcigic29ydHVwZGF0ZSIpLnNvcnRhYmxlKCJyZWZyZXNoIik7DQp9KTsNCg0KJCgi
I3R4cC1pbWFnZS1ncm91cC1jb250ZW50Iikub24oImRyYWdlbmQiLCAiI2FydGljbGUtZmls
ZS1jb250YWluZXIgYSIsIGZ1bmN0aW9uKGUpIHsNCgkkKCIjdHhwLWltYWdlLWdyb3VwLWNv
bnRlbnQiKS5zb3J0YWJsZSgiZW5hYmxlIik7DQp9KS5zb3J0YWJsZSh7DQoJaXRlbXM6ICIu
c29ydGFibGUiLA0KCW91dDogZnVuY3Rpb24gKGV2ZW50LCB1aSkgew0KCQlpZiAoISFkcm9w
cGVkT3V0c2lkZSkgJCh0aGlzKS5zb3J0YWJsZSgiZGlzYWJsZSIpOw0KCX0sDQoJb3Zlcjog
ZnVuY3Rpb24gKGV2ZW50LCB1aSkgew0KCQkkKHRoaXMpLnNvcnRhYmxlKCJlbmFibGUiKTsN
Cgl9LA0KCWJlZm9yZVN0b3A6IGZ1bmN0aW9uIChldmVudCwgdWkpIHtkcm9wcGVkT3V0c2lk
ZSA9IGZhbHNlOw0KCX0sDQoJc3RhcnQ6IGZ1bmN0aW9uIChldmVudCwgdWkpIHtkcm9wcGVk
T3V0c2lkZSA9IHRydWU7DQoJfQ0KfSk7DQoNCmZ1bmN0aW9uIGluc2VydEF0Q3Vyc29yIChp
bnB1dCwgdGV4dFRvSW5zZXJ0KSB7DQogIGNvbnN0IGlzU3VjY2VzcyA9IGRvY3VtZW50LmV4
ZWNDb21tYW5kKCJpbnNlcnRUZXh0IiwgZmFsc2UsIHRleHRUb0luc2VydCk7DQogIGlmIChp
c1N1Y2Nlc3MpIHJldHVybjsNCg0KICAvLyBJRSA4LTEwDQogIGlmIChkb2N1bWVudC5zZWxl
Y3Rpb24pIHsNCiAgICBjb25zdCBpZVJhbmdlID0gZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0
ZVJhbmdlKCk7DQogICAgaWVSYW5nZS50ZXh0ID0gdGV4dFRvSW5zZXJ0Ow0KDQogICAgLy8g
TW92ZSBjdXJzb3IgYWZ0ZXIgdGhlIGluc2VydGVkIHRleHQNCiAgICBpZVJhbmdlLmNvbGxh
cHNlKGZhbHNlIC8qIHRvIHRoZSBlbmQgKi8pOw0KICAgIGllUmFuZ2Uuc2VsZWN0KCk7DQoN
CiAgICByZXR1cm47DQogIH0NCg0KICAvLyBGaXJlZm94IChub24tc3RhbmRhcmQgbWV0aG9k
KQ0KICBpZiAodHlwZW9mIGlucHV0LnNldFJhbmdlVGV4dCA9PT0gImZ1bmN0aW9uIikgew0K
ICAgIGNvbnN0IHN0YXJ0ID0gaW5wdXQuc2VsZWN0aW9uU3RhcnQ7DQogICAgaW5wdXQuc2V0
UmFuZ2VUZXh0KHRleHRUb0luc2VydCk7DQogICAgLy8gdXBkYXRlIGN1cnNvciB0byBiZSBh
dCB0aGUgZW5kIG9mIGluc2VydGlvbg0KICAgIGlucHV0LnNlbGVjdGlvblN0YXJ0ID0gaW5w
dXQuc2VsZWN0aW9uRW5kID0gc3RhcnQgKyB0ZXh0VG9JbnNlcnQubGVuZ3RoOw0KDQogICAg
Ly8gTm90aWZ5IGFueSBwb3NzaWJsZSBsaXN0ZW5lcnMgb2YgdGhlIGNoYW5nZQ0KICAgIGNv
bnN0IGUgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiVUlFdmVudCIpOw0KICAgIGUuaW5pdEV2
ZW50KCJpbnB1dCIsIHRydWUsIGZhbHNlKTsNCiAgICBpbnB1dC5kaXNwYXRjaEV2ZW50KGUp
Ow0KICB9DQp9DQoNCndpbmRvdy5hYmNQcmV2aWV3ID0gZnVuY3Rpb24gKGlucHV0KSB7DQoJ
dmFyIGNyZWF0ZU9iamVjdFVSTCA9ICh3aW5kb3cuVVJMIHx8IHdpbmRvdy53ZWJraXRVUkwg
fHwge30pLmNyZWF0ZU9iamVjdFVSTA0KDQoJaWYgKGNyZWF0ZU9iamVjdFVSTCAmJiBpbnB1
dC5maWxlcy5sZW5ndGgpIHsNCgkJJCgiI2FydGljbGUtZmlsZS1wcmV2aWV3IikuZW1wdHko
KTsNCgkJJCgiI2FydGljbGUtZmlsZS1yZXNldCIpLmNzcygidmlzaWJpbGl0eSIsICJ2aXNp
YmxlIik7DQoJCSQoaW5wdXQuZmlsZXMpLmVhY2goZnVuY3Rpb24gKCkgew0KCQkJJCgiI2Fy
dGljbGUtZmlsZS1wcmV2aWV3IikuYXBwZW5kKCI8cD48aW1nIHNyYz1cJyIgKyBjcmVhdGVP
YmplY3RVUkwodGhpcykgKyAiXCcgLz48L3A+Iik7DQoJCX0pOw0KCX0NCn0nLCBmYWxzZSku
bg0KLic8c3R5bGU+DQoJI3R4cC1pbWFnZS1ncm91cC1jb250ZW50IGltZ3ttYXgtd2lkdGg6
MTAwJTtoZWlnaHQ6YXV0b30NCgkjdHhwLWltYWdlLWdyb3VwLWNvbnRlbnQgLmRlbGV0ZWR7
b3BhY2l0eTowLjI1fQ0KCSN0eHAtaW1hZ2UtZ3JvdXAtY29udGVudCAuc29ydGFibGV7cG9z
aXRpb246cmVsYXRpdmV9DQoJI3R4cC1pbWFnZS1ncm91cC1jb250ZW50IC5kZXN0cm95e3Bv
c2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7ei1pbmRleDoxMDA7dmlzaWJpbGl0eTpoaWRkZW59
DQoJI3R4cC1pbWFnZS1ncm91cC1jb250ZW50IC5zb3J0YWJsZSAuZGVzdHJveXt2aXNpYmls
aXR5OnZpc2libGV9DQoJI2FydGljbGUtZmlsZS1yZXNldHt2aXNpYmlsaXR5OmhpZGRlbn0N
CgkuaGlkZGVue2Rpc3BsYXk6bm9uZX0NCgkjYXJ0aWNsZS1maWxlLWlucHV0e2hlaWdodDog
MTAwJTsgd2lkdGg6IDEwMCU7IHotaW5kZXg6IDUwOyBwb3NpdGlvbjogYWJzb2x1dGU7IG9w
YWNpdHk6IDB9DQoJI2FydGljbGUtZmlsZS1kcm9wPmRpdi50eHAtZm9ybS1maWVsZC12YWx1
ZXtwb3NpdGlvbjogcmVsYXRpdmU7IGJhY2tncm91bmQ6IHdoaXRlOyBvdXRsaW5lOiAxcHgg
c29saWQgI2UzZTNlMzsgbWluLWhlaWdodDogNWV4fQ0KCSNtYWluX2NvbnRlbnR7cG9zaXRp
b246c3RpY2t5O3RvcDowfQ0KPC9zdHlsZT4nOw0KfQ0KDQpmdW5jdGlvbiBhYmNfZmlsZV91
cGxvYWQoJGV2ZW50LCAkc3RlcCwgJGRhdGEsICRycykNCnsNCgkkaWRzID0gJGltYWdlcyA9
IGFycmF5KCk7DQoJaWYgKCFlbXB0eSgkcnNbJ0ltYWdlJ10pKQ0KCXsNCgkJJGltYWdlcyA9
IGFycmF5KCk7DQoJCWZvcmVhY2ggKGRvX2xpc3RfdW5pcXVlKCRyc1snSW1hZ2UnXSkgYXMg
JGlkKSB7DQoJCQlpZiAoIWlzX251bWVyaWMoJGlkKSkNCgkJCQkkaWQgPSAoaW50KSBmZXRj
aCgnaWQnLCAndHhwX2ltYWdlJywgJ25hbWUnLCAkaWQpOw0KCQkJaWYgKCRpZCkgew0KCQkJ
CSRpZHNbXSA9ICRpZDsNCgkJCX0NCgkJfQ0KCQkkaWRfbGlzdCA9IGltcGxvZGUoJywnLCAk
aWRzKTsNCgkJJHJvd3MgPSAkaWRzID8gc2FmZV9yb3dzKCdpZCwgZXh0JywgJ3R4cF9pbWFn
ZScsICdpZCBJTiAoJy4kaWRfbGlzdC4nKSBPUkRFUiBCWSBGSUVMRChpZCwgJy4kaWRfbGlz
dC4nKScpIDogYXJyYXkoKTsNCg0KCQlmb3JlYWNoICgkcm93cyBhcyAkcm93KSB7DQoJCQll
eHRyYWN0KCRyb3cpOw0KCQkJJGltYWdlc1tdID0gJzxwIGNsYXNzPSJzb3J0YWJsZSIgZGF0
YS1pZD0iJy4kaWQuJyI+PGEgaHJlZj0iaW5kZXgucGhwP2V2ZW50PWltYWdlJnN0ZXA9aW1h
Z2VfZWRpdCZpZD0nLiRpZC4nIiB0aXRsZT0iJmx0O3R4cDppbWFnZSBpZD0mcXVvdDsnLiRp
ZC4nJnF1b3QgLyZndDsiPicNCgkJCS4nPGltZyBzcmM9IicuaW1hZ2VzcmN1cmwoJGlkLCAk
ZXh0KS4nIiAvPicNCgkJCS4nPC9hPjxidXR0b24gY2xhc3M9ImRlc3Ryb3kiPjxzcGFuIGNs
YXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2UiPicuZ1R4dCgnZGVsZXRlJykuJzwvc3Bhbj48
L2J1dHRvbj48L3A+JzsNCgkJfQ0KCX0NCg0KCSRhcnRpY2xlX2ltYWdlID0gJzxkaXYgaWQ9
ImFydGljbGUtZmlsZS1jb250YWluZXIiPicuaW1wbG9kZShuLCAkaW1hZ2VzKS4nPC9kaXY+
Jy5uOw0KDQoJJGltYWdlcyA9IGFycmF5KCk7DQoJJHNlbGVjdF9pbWFnZXMgPSAnJzsNCg0K
CSRyb3dzID0gc2FmZV9yb3dzKCdpZCwgZXh0JywgJ3R4cF9pbWFnZScsICgkaWRzID8gJ2lk
IE5PVCBJTignLiRpZF9saXN0LicpJyA6ICcxJykuJyBPUkRFUiBCWSBkYXRlIERFU0MgTElN
SVQgMTAnKTsNCg0KCWZvcmVhY2ggKCRyb3dzIGFzICRyb3cpIHsNCgkJZXh0cmFjdCgkcm93
KTsNCgkJJGltYWdlc1tdID0gJzxwIGRhdGEtaWQ9IicuJGlkLiciPjxhIGhyZWY9ImluZGV4
LnBocD9ldmVudD1pbWFnZSZzdGVwPWltYWdlX2VkaXQmaWQ9Jy4kaWQuJyIgdGl0bGU9IiZs
dDt0eHA6aW1hZ2UgaWQ9JnF1b3Q7Jy4kaWQuJyZxdW90IC8mZ3Q7Ij4nDQoJCQkuJzxpbWcg
c3JjPSInLmltYWdlc3JjdXJsKCRpZCwgJGV4dCkuJyIgLz4nLy9pbWFnZShhcnJheSgnaWQn
ID0+ICRpZCkpDQoJCQkuJzwvYT48YnV0dG9uIGNsYXNzPSJkZXN0cm95Ij48c3BhbiBjbGFz
cz0idWktaWNvbiB1aS1pY29uLWNsb3NlIj4nLmdUeHQoJ2RlbGV0ZScpLic8L3NwYW4+PC9i
dXR0b24+PC9wPic7DQoJfQ0KDQoJJHNlbGVjdF9pbWFnZXMgPSAnPGEgaWQ9ImFydGljbGUt
ZmlsZS1hZGQiIGhyZWY9IiNhcnRpY2xlLWZpbGUtc2VsZWN0Ij4nLmdUeHQoJ2FkZCcpLic8
L2E+Jy5uDQoJLic8ZGl2IGlkPSJhcnRpY2xlLWZpbGUtc2VsZWN0IiBjbGFzcz0iaGlkZGVu
Ij4nLmltcGxvZGUobiwgJGltYWdlcykuJzwvZGl2PicubjsNCg0KCXJldHVybiAkZGF0YS5u
LiRhcnRpY2xlX2ltYWdlLm4uJzxociAvPicubg0KCS5pbnB1dExhYmVsKA0KCQknYXJ0aWNs
ZS1maWxlLWlucHV0JywNCgkJJzxidXR0b24gaWQ9ImFydGljbGUtZmlsZS1yZXNldCIgY2xh
c3M9ImRlc3Ryb3kiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2UiPicuZ1R4
dCgnZGVsZXRlJykuJzwvc3Bhbj48L2J1dHRvbj4nLm4uDQoJCSc8aW5wdXQgaWQ9ImFydGlj
bGUtZmlsZS1pbnB1dCIgdHlwZT0iZmlsZSIgbmFtZT0iYXJ0aWNsZV9maWxlW10iIG11bHRp
cGxlPSJtdWx0aXBsZSIgYWNjZXB0PSJpbWFnZS8qIiBvbmNoYW5nZT0iYWJjUHJldmlldyh0
aGlzKSIgLz4nDQoJCS4nPHA+Q2xpY2sgb3IgZHJvcCBmaWxlcyBvbiB0aGlzIHpvbmU8L3A+
Jy5uDQoJCS4nPGRpdiBpZD0iYXJ0aWNsZS1maWxlLXByZXZpZXciPjwvZGl2PicubiwgZ1R4
dCgndXBsb2FkJyksDQoJCWFycmF5KCcnLCAnaW5zdHJ1Y3Rpb25zX2FydGljbGVfaW1hZ2Un
KSwNCgkJYXJyYXkoJ2lkJyA9PiAnYXJ0aWNsZS1maWxlLWRyb3AnLCAnY2xhc3MnID0+ICd0
eHAtZm9ybS1maWVsZCBhcnRpY2xlLWltYWdlJykNCgkpLm4uJzxociAvPicubi4kc2VsZWN0
X2ltYWdlczsNCn0NCg0KZnVuY3Rpb24gYWJjX2ZpbGVfc2F2ZSgkZXZlbnQsICRzdGVwLCAk
cnMpDQp7DQoJaWYoZW1wdHkoJF9GSUxFU1snYXJ0aWNsZV9maWxlJ11bJ3RtcF9uYW1lJ11b
MF0pIHx8ICFoYXNfcHJpdnMoJ2ltYWdlLmVkaXQub3duJykpIHJldHVybjsNCg0KCWluY2x1
ZGVfb25jZSAnbGliJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidjbGFzcy50aHVtYi5waHAnOw0K
CSRpZHMgPSBhcnJheSgpOw0KCSRmaWxlcyA9IFR4cDo6Z2V0KCdcVGV4dHBhdHRlcm5cU2Vy
dmVyXEZpbGVzJyktPnJlZmFjdG9yKCRfRklMRVNbJ2FydGljbGVfZmlsZSddKTsNCg0KCWZv
cmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgew0KCQkkbWV0YSA9IGFycmF5KCdhbHQnID0+ICRm
aWxlWyduYW1lJ10pOyAgLy9jYXB0aW9uLCBjYXRlZ29yeQ0KCQkkaW1nX3Jlc3VsdCA9IGlt
YWdlX2RhdGEoJGZpbGUsICRtZXRhKTsNCg0KCQlpZiAoaXNfYXJyYXkoJGltZ19yZXN1bHQp
KSB7DQoJCQlsaXN0KCRtZXNzYWdlLCAkaWQpID0gJGltZ19yZXN1bHQ7DQoJCQkkaWRzW10g
PSAkaWQ7DQoJCX0NCgl9DQoNCgkkR0xPQkFMU1snSUQnXSA9IGludHZhbCgkcnNbJ0lEJ10p
Oy8vIHNpYyENCgkkaWRzID0gaW1wbG9kZSgnLCcsICRpZHMpOw0KCSRpZHMgPSBpbXBsb2Rl
KCcsJywgZG9fbGlzdF91bmlxdWUoJHJzWydJbWFnZSddLicsJy4kaWRzKSk7DQoJc2FmZV91
cGRhdGUoJ3RleHRwYXR0ZXJuJywgIkltYWdlPSciLmRvU2xhc2goJGlkcykuIiciLCAnSUQ9
Jy4kR0xPQkFMU1snSUQnXSk7DQp9IjtzOjQ6InR5cGUiO3M6MToiNCI7czo1OiJvcmRlciI7
czoxOiI1IjtzOjU6ImZsYWdzIjtzOjE6IjAiO3M6NDoiaGVscCI7czowOiIiO3M6MzoibWQ1
IjtzOjMyOiI0MjAwNzk3ZDgxNzA1NDE4ZTQ2MzZhMTlhZjdmMGU1OSI7fQ==
Offline
Re: [feedback] Image upload directly in the write tab
Version 0.7 allows you to define how images should be imported via Preferences/Admin/abc_file_image
pref (disable/enable the plugin to trigger the prefs creation). Examples:
<txp:image id="{#}" />
(default): insert one image tag per image.<txp:images id="{##}" form="galery" />
: insert one common images tag for uploaded images.
Enjoy!
# Name: abc_article_image v0.7.2
# Type: Admin/AJAX plugin
#
# Author:
# URL:
# 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:
# .....................................................................
YToxMTp7czo0OiJuYW1lIjtzOjE3OiJhYmNfYXJ0aWNsZV9pbWFnZSI7czo2OiJhdXRob3Ii
O3M6MDoiIjtzOjEwOiJhdXRob3JfdXJpIjtzOjA6IiI7czo3OiJ2ZXJzaW9uIjtzOjU6IjAu
Ny4yIjtzOjExOiJkZXNjcmlwdGlvbiI7czowOiIiO3M6NDoiY29kZSI7czo5OTg3OiJnbG9i
YWwgJGV2ZW50Ow0KDQpyZWdpc3Rlcl9jYWxsYmFjaygnYWJjX2ZpbGVfaW5zdGFsbCcsJ3Bs
dWdpbl9saWZlY3ljbGUuYWJjX2FydGljbGVfaW1hZ2UnKTsNCg0KaWYoJGV2ZW50ID09ICdh
cnRpY2xlJyAmJiBoYXNfcHJpdnMoJ2ltYWdlLmVkaXQub3duJykpDQp7DQoJYWRkX3ByaXZz
KCdhYmNfZmlsZScsICcxLDIsMyw0LDUsNicpOw0KCWFkZF9wcml2cygncHJlZnMuYWJjX2Zp
bGUnLCAnMSwyLDMsNCw1LDYnKTsNCglyZWdpc3Rlcl9jYWxsYmFjaygnYWJjX2ZpbGVfdXBs
b2FkJywgJ2FydGljbGVfdWknLCAnYXJ0aWNsZV9pbWFnZScpOw0KCXJlZ2lzdGVyX2NhbGxi
YWNrKCdhYmNfZmlsZV9zYXZlJywgJ2FydGljbGVfcG9zdGVkJyk7DQoJcmVnaXN0ZXJfY2Fs
bGJhY2soJ2FiY19maWxlX3NhdmUnLCAnYXJ0aWNsZV9zYXZlZCcpOw0KCXJlZ2lzdGVyX2Nh
bGxiYWNrKCdhYmNfZmlsZV9qcycsICdhZG1pbl9zaWRlJywgJ2JvZHlfZW5kJyk7DQp9DQoN
CmZ1bmN0aW9uIGFiY19maWxlX2luc3RhbGwoJGV2ZW50LCAkc3RlcCkNCnsNCiAgICBpZiAo
JHN0ZXAgPT0gJ2RlbGV0ZWQnKSB7DQogICAgICAgIHNhZmVfZGVsZXRlKCd0eHBfcHJlZnMn
LCAibmFtZSBMSUtFICdhYmNcX2ZpbGVcXyUnIik7DQogICAgfSBlbHNlaWYgKCRzdGVwID09
ICdlbmFibGVkJykgew0KICAgICAgICBzYWZlX3VwZGF0ZSgndHhwX3ByZWZzJywgImV2ZW50
PSdhYmNfZmlsZSciLCAibmFtZSBMSUtFICdhYmNcX2ZpbGVcXyUnIik7DQogICAgICAgIGlm
ICghZ2V0X3ByZWYoJ2FiY19maWxlX2ltYWdlJykpDQogICAgICAgICAgICBzZXRfcHJlZign
YWJjX2ZpbGVfaW1hZ2UnLCAnPHR4cDppbWFnZSBpZD0ieyN9IiAvPicsICdhYmNfZmlsZScs
IFBSRUZfUExVR0lOLCAnbG9uZ3RleHRfaW5wdXQnLCA1MDAsIFBSRUZfUFJJVkFURSk7DQog
ICAgICAgIGlmICghZ2V0X3ByZWYoJ2FiY19maWxlX2xpbWl0JykpDQogICAgICAgICAgICBz
ZXRfcHJlZignYWJjX2ZpbGVfbGltaXQnLCAxMiwgJ2FiY19maWxlJywgUFJFRl9QTFVHSU4s
ICd0ZXh0X2lucHV0JywgMzAwLCBQUkVGX1BSSVZBVEUpOw0KICAgIH0NCn0NCg0KZnVuY3Rp
b24gYWJjX2ZpbGVfanMoJGV2ZW50LCAkc3RlcCkgew0KZWNobyBzY3JpcHRfanMoJw0KdmFy
IGltYWdlVGFnID0gIicuZXNjYXBlX2pzKGdldF9wcmVmKCdhYmNfZmlsZV9pbWFnZScsICc8
dHhwOmltYWdlIGlkPSJ7I30iIC8+JykpLiciOw0KDQpmdW5jdGlvbiByZWFkZmlsZXMoZmls
ZXMsIGlucHV0KSB7DQp2YXIgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSwgY291bnQgPSAw
Ow0KDQpmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYg
KGZpbGVzW2ldLnR5cGUubWF0Y2goL15pbWFnZVwvLykpIHsNCiAgICAgICAgY291bnQrKzsN
CiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCJ0aGVmaWxlW10iLCBmaWxlc1tpXSk7DQogICAg
fQ0KfQ0KDQp2YXIgdGV4dCA9ICJVcGxvYWQgIitjb3VudCsiIGltYWdlIisoY291bnQgPT0g
MSA/ICIiIDogInMiKSsiPyI7DQppZiAoIWNvdW50IHx8ICF3aW5kb3cuY29uZmlybSh0ZXh0
KSkgcmV0dXJuOw0KDQpmb3JtRGF0YS5hcHBlbmQoIl90eHBfdG9rZW4iLCB0ZXh0cGF0dGVy
bi5fdHhwX3Rva2VuKTsNCiQoaW5wdXQpLnByb3AoImRpc2FibGVkIiwgdHJ1ZSk7DQoNCiQu
YWpheCh7DQogICAgdXJsOiAiaW5kZXgucGhwP2V2ZW50PWltYWdlJnN0ZXA9aW1hZ2VfaW5z
ZXJ0JmFwcF9tb2RlPWFzeW5jIiwNCiAgICB0eXBlOiAiUE9TVCIsDQogICAgZGF0YTogZm9y
bURhdGEsDQogICAgYXN5bmM6IHRydWUsDQogICAgc3VjY2VzczogZnVuY3Rpb24gKGRhdGEp
IHsNCiAgICAgICAgdmFyIHRleHQgPSAiIiwgdGFnID0gaW1hZ2VUYWcucmVwbGFjZSgvXHsj
I1x9L2csIHRleHRwYXR0ZXJuLlJlbGF5LmRhdGEuZmlsZWlkLmpvaW4oIiwiKSk7DQogICAg
ICAgIGlmICh0YWcubWF0Y2goL1x7I1x9LykpIHRleHRwYXR0ZXJuLlJlbGF5LmRhdGEuZmls
ZWlkLmZvckVhY2goZnVuY3Rpb24oaWQpIHsNCiAgICAgICAgICAgIHRleHQgKz0gdGFnLnJl
cGxhY2UoL1x7I1x9L2csIGlkKTsNCiAgICAgICAgfSk7DQogICAgICAgIGVsc2UgdGV4dCA9
IHRhZzsNCiAgICAgICAgdGV4dHBhdHRlcm4uUmVsYXkuZGF0YS5maWxlaWQgPSBbXTsNCiAg
ICAgICAgJChpbnB1dCkucHJvcCgiZGlzYWJsZWQiLCBmYWxzZSk7DQogICAgICAgIGluc2Vy
dEF0Q3Vyc29yKGlucHV0LCB0ZXh0KTsNCiAgICAgICAgdGV4dHBhdHRlcm4uQ29uc29sZS5h
bm5vdW5jZSgidXBsb2FkRW5kIik7DQogICAgfSwNCiAgICBjYWNoZTogZmFsc2UsDQogICAg
Y29udGVudFR5cGU6IGZhbHNlLA0KICAgIHByb2Nlc3NEYXRhOiBmYWxzZQ0KIH0pOw0KfSAg
ICAgICANCg0KJCgiI2JvZHksICNleGNlcnB0Iikub24oImRyYWdvdmVyIiwgZnVuY3Rpb24o
ZXZ0KSB7DQogICAgZSA9IGV2dC5vcmlnaW5hbEV2ZW50Ow0KICAgIGlmIChlLmRhdGFUcmFu
c2Zlci50eXBlcy5pbmNsdWRlcygiRmlsZXMiKSkgew0KICAgICAgICBlLnN0b3BQcm9wYWdh
dGlvbigpOw0KICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgICAgIGUuZGF0YVRy
YW5zZmVyLmRyb3BFZmZlY3QgPSAiY29weSI7DQogICAgfQ0KfSkub24oImRyb3AiLCBmdW5j
dGlvbihldnQpIHsNCiAgICBlID0gZXZ0Lm9yaWdpbmFsRXZlbnQ7DQogICAgaWYgKGUuZGF0
YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCkgew0KICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7
DQogICAgICAgIHJlYWRmaWxlcyhlLmRhdGFUcmFuc2Zlci5maWxlcywgdGhpcyk7DQogICAg
fQ0KfSk7DQoNCiQoIiN0eHAtaW1hZ2UtZ3JvdXAtY29udGVudCIpLm9uKCJjbGljayIsICIj
YXJ0aWNsZS1maWxlLXJlc2V0IiwgZnVuY3Rpb24oZSkgew0KCWUucHJldmVudERlZmF1bHQo
KTsNCgkkKCIjYXJ0aWNsZS1maWxlLWlucHV0IikudmFsKCIiKTsNCgkkKCIjYXJ0aWNsZS1m
aWxlLXByZXZpZXciKS5lbXB0eSgpOw0KCSQoIiNhcnRpY2xlLWZpbGUtcmVzZXQiKS5jc3Mo
InZpc2liaWxpdHkiLCAiaGlkZGVuIik7DQp9KS5vbigiY2xpY2siLCAiLnNvcnRhYmxlIC5k
ZXN0cm95IiwgZnVuY3Rpb24oZSkgew0KCWUucHJldmVudERlZmF1bHQoKTsNCgkkKHRoaXMp
LnBhcmVudCgpLnJlbW92ZUNsYXNzKCJzb3J0YWJsZSIpLmNsb25lKCkuYXBwZW5kVG8oIiNh
cnRpY2xlLWZpbGUtc2VsZWN0Iik7DQoJJCh0aGlzKS5wYXJlbnQoKS5yZW1vdmUoKTsNCgkk
KCIjdHhwLWltYWdlLWdyb3VwLWNvbnRlbnQiKS50cmlnZ2VyKCJzb3J0dXBkYXRlIikuc29y
dGFibGUoInJlZnJlc2giKTsNCn0pLm9uKCJjbGljayIsICIjYXJ0aWNsZS1maWxlLWFkZCIs
IGZ1bmN0aW9uKGUpIHsNCgllLnByZXZlbnREZWZhdWx0KCk7DQoJJCh0aGlzKS5jaGlsZHJl
bigic3BhbiIpLnRvZ2dsZUNsYXNzKCJ1aS1pY29uLWFycm93dGhpY2tzdG9wLTEtcyB1aS1p
Y29uLWFycm93dGhpY2tzdG9wLTEtbiIpOw0KCSQoIiNhcnRpY2xlLWZpbGUtc2VsZWN0Iiku
dG9nZ2xlQ2xhc3MoImhpZGRlbiIpOw0KfSkub24oImRyYWdzdGFydCIsICIjYXJ0aWNsZS1m
aWxlLWNvbnRhaW5lciBhLCAjYXJ0aWNsZS1maWxlLXNlbGVjdCBhIiwgZnVuY3Rpb24oZSkg
ew0KICAgICAgICBpZiAoZS5vcmlnaW5hbEV2ZW50LnRhcmdldC50aXRsZSkNCgkgICAgZS5v
cmlnaW5hbEV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIiwgZS5vcmln
aW5hbEV2ZW50LnRhcmdldC50aXRsZSk7DQp9KS5vbigic29ydHVwZGF0ZSIsIGZ1bmN0aW9u
KCBldmVudCApIHsNCgl2YXIgJGNvbnRhaW5lciA9ICQoIiNhcnRpY2xlLWZpbGUtY29udGFp
bmVyIiksIGxpc3QgPSBbXTsNCgkkY29udGFpbmVyLmNoaWxkcmVuKCJwLnNvcnRhYmxlIiku
ZWFjaChmdW5jdGlvbigpIHsNCgkJbGlzdC5wdXNoKCQodGhpcykuZGF0YSgiaWQiKSk7DQoJ
fSk7DQoJJCgiI2FydGljbGUtaW1hZ2UiKS52YWwobGlzdC5qb2luKCkpOw0KfSkub24oImNs
aWNrIiwgIiNhcnRpY2xlLWZpbGUtc2VsZWN0IGEiLCBmdW5jdGlvbihlKSB7DQoJZS5wcmV2
ZW50RGVmYXVsdCgpOw0KCSQodGhpcykucGFyZW50KCkuYWRkQ2xhc3MoInNvcnRhYmxlIiku
YXBwZW5kVG8oIiNhcnRpY2xlLWZpbGUtY29udGFpbmVyIik7DQoJJCgiI3R4cC1pbWFnZS1n
cm91cC1jb250ZW50IikudHJpZ2dlcigic29ydHVwZGF0ZSIpLnNvcnRhYmxlKCJyZWZyZXNo
Iik7DQp9KTsNCg0KJCgiI3R4cC1pbWFnZS1ncm91cC1jb250ZW50Iikub24oImRyYWdlbmQi
LCAiI2FydGljbGUtZmlsZS1jb250YWluZXIgYSIsIGZ1bmN0aW9uKGUpIHsNCgkkKCIjdHhw
LWltYWdlLWdyb3VwLWNvbnRlbnQiKS5zb3J0YWJsZSgiZW5hYmxlIik7DQp9KS5zb3J0YWJs
ZSh7DQoJaXRlbXM6ICIuc29ydGFibGUiLA0KCW91dDogZnVuY3Rpb24gKGV2ZW50LCB1aSkg
ew0KCQlpZiAoISFkcm9wcGVkT3V0c2lkZSkgJCh0aGlzKS5zb3J0YWJsZSgiZGlzYWJsZSIp
Ow0KCX0sDQoJb3ZlcjogZnVuY3Rpb24gKGV2ZW50LCB1aSkgew0KCQkkKHRoaXMpLnNvcnRh
YmxlKCJlbmFibGUiKTsNCgl9LA0KCWJlZm9yZVN0b3A6IGZ1bmN0aW9uIChldmVudCwgdWkp
IHtkcm9wcGVkT3V0c2lkZSA9IGZhbHNlOw0KCX0sDQoJc3RhcnQ6IGZ1bmN0aW9uIChldmVu
dCwgdWkpIHtkcm9wcGVkT3V0c2lkZSA9IHRydWU7DQoJfQ0KfSk7DQoNCmZ1bmN0aW9uIGlu
c2VydEF0Q3Vyc29yIChpbnB1dCwgdGV4dFRvSW5zZXJ0KSB7DQogIGNvbnN0IGlzU3VjY2Vz
cyA9IGRvY3VtZW50LmV4ZWNDb21tYW5kKCJpbnNlcnRUZXh0IiwgZmFsc2UsIHRleHRUb0lu
c2VydCk7DQogIGlmIChpc1N1Y2Nlc3MpIHJldHVybjsNCg0KICAvLyBJRSA4LTEwDQogIGlm
IChkb2N1bWVudC5zZWxlY3Rpb24pIHsNCiAgICBjb25zdCBpZVJhbmdlID0gZG9jdW1lbnQu
c2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCk7DQogICAgaWVSYW5nZS50ZXh0ID0gdGV4dFRvSW5z
ZXJ0Ow0KDQogICAgLy8gTW92ZSBjdXJzb3IgYWZ0ZXIgdGhlIGluc2VydGVkIHRleHQNCiAg
ICBpZVJhbmdlLmNvbGxhcHNlKGZhbHNlIC8qIHRvIHRoZSBlbmQgKi8pOw0KICAgIGllUmFu
Z2Uuc2VsZWN0KCk7DQoNCiAgICByZXR1cm47DQogIH0NCg0KICAvLyBGaXJlZm94IChub24t
c3RhbmRhcmQgbWV0aG9kKQ0KICBpZiAodHlwZW9mIGlucHV0LnNldFJhbmdlVGV4dCA9PT0g
ImZ1bmN0aW9uIikgew0KICAgIGNvbnN0IHN0YXJ0ID0gaW5wdXQuc2VsZWN0aW9uU3RhcnQ7
DQogICAgaW5wdXQuc2V0UmFuZ2VUZXh0KHRleHRUb0luc2VydCk7DQogICAgLy8gdXBkYXRl
IGN1cnNvciB0byBiZSBhdCB0aGUgZW5kIG9mIGluc2VydGlvbg0KICAgIGlucHV0LnNlbGVj
dGlvblN0YXJ0ID0gaW5wdXQuc2VsZWN0aW9uRW5kID0gc3RhcnQgKyB0ZXh0VG9JbnNlcnQu
bGVuZ3RoOw0KDQogICAgLy8gTm90aWZ5IGFueSBwb3NzaWJsZSBsaXN0ZW5lcnMgb2YgdGhl
IGNoYW5nZQ0KICAgIGNvbnN0IGUgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiVUlFdmVudCIp
Ow0KICAgIGUuaW5pdEV2ZW50KCJpbnB1dCIsIHRydWUsIGZhbHNlKTsNCiAgICBpbnB1dC5k
aXNwYXRjaEV2ZW50KGUpOw0KICB9DQp9DQoNCndpbmRvdy5hYmNQcmV2aWV3ID0gZnVuY3Rp
b24gKGlucHV0KSB7DQoJdmFyIGNyZWF0ZU9iamVjdFVSTCA9ICh3aW5kb3cuVVJMIHx8IHdp
bmRvdy53ZWJraXRVUkwgfHwge30pLmNyZWF0ZU9iamVjdFVSTA0KDQoJaWYgKGNyZWF0ZU9i
amVjdFVSTCAmJiBpbnB1dC5maWxlcy5sZW5ndGgpIHsNCgkJJCgiI2FydGljbGUtZmlsZS1w
cmV2aWV3IikuZW1wdHkoKTsNCgkJJCgiI2FydGljbGUtZmlsZS1yZXNldCIpLmNzcygidmlz
aWJpbGl0eSIsICJ2aXNpYmxlIik7DQoJCSQoaW5wdXQuZmlsZXMpLmVhY2goZnVuY3Rpb24g
KCkgew0KCQkJJCgiI2FydGljbGUtZmlsZS1wcmV2aWV3IikuYXBwZW5kKCI8cD48aW1nIHNy
Yz1cJyIgKyBjcmVhdGVPYmplY3RVUkwodGhpcykgKyAiXCcgLz48L3A+Iik7DQoJCX0pOw0K
CX0NCn0nLCBmYWxzZSkubg0KLic8c3R5bGU+DQoJI3R4cC1pbWFnZS1ncm91cC1jb250ZW50
IGltZ3ttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b30NCgkjdHhwLWltYWdlLWdyb3VwLWNv
bnRlbnQgLnNvcnRhYmxle3Bvc2l0aW9uOnJlbGF0aXZlfQ0KCSN0eHAtaW1hZ2UtZ3JvdXAt
Y29udGVudCAuZGVzdHJveXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3otaW5kZXg6MTAw
O3Zpc2liaWxpdHk6aGlkZGVufQ0KCSN0eHAtaW1hZ2UtZ3JvdXAtY29udGVudCAuc29ydGFi
bGUgLmRlc3Ryb3l7dmlzaWJpbGl0eTp2aXNpYmxlfQ0KCSNhcnRpY2xlLWZpbGUtcmVzZXR7
dmlzaWJpbGl0eTpoaWRkZW59DQoJI2FydGljbGUtZmlsZS1jb250YWluZXIgcCwgI2FydGlj
bGUtZmlsZS1zZWxlY3QgcHtkaXNwbGF5OmlubGluZS1ibG9ja30NCgkjYXJ0aWNsZS1maWxl
LWlucHV0e2hlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IHotaW5kZXg6IDUwOyBwb3NpdGlv
bjogYWJzb2x1dGU7IG9wYWNpdHk6IDB9DQoJI2FydGljbGUtZmlsZS1kcm9wPmRpdi50eHAt
Zm9ybS1maWVsZC12YWx1ZXtwb3NpdGlvbjogcmVsYXRpdmU7IGJhY2tncm91bmQ6IHdoaXRl
OyBvdXRsaW5lOiAxcHggc29saWQgI2UzZTNlMzsgbWluLWhlaWdodDogNWV4fQ0KCSNtYWlu
X2NvbnRlbnR7cG9zaXRpb246c3RpY2t5O3RvcDowfQ0KCS5oaWRkZW57ZGlzcGxheTpub25l
fQ0KPC9zdHlsZT4nOw0KfQ0KDQpmdW5jdGlvbiBhYmNfZmlsZV91cGxvYWQoJGV2ZW50LCAk
c3RlcCwgJGRhdGEsICRycykNCnsNCgkkaWRzID0gJGltYWdlcyA9IGFycmF5KCk7DQoJaWYg
KCFlbXB0eSgkcnNbJ0ltYWdlJ10pKQ0KCXsNCgkJJGltYWdlcyA9IGFycmF5KCk7DQoJCWZv
cmVhY2ggKGRvX2xpc3RfdW5pcXVlKCRyc1snSW1hZ2UnXSkgYXMgJGlkKSB7DQoJCQlpZiAo
IWlzX251bWVyaWMoJGlkKSkNCgkJCQkkaWQgPSAoaW50KSBmZXRjaCgnaWQnLCAndHhwX2lt
YWdlJywgJ25hbWUnLCAkaWQpOw0KCQkJaWYgKCRpZCkgew0KCQkJCSRpZHNbXSA9ICRpZDsN
CgkJCX0NCgkJfQ0KCQkkaWRfbGlzdCA9IGltcGxvZGUoJywnLCAkaWRzKTsNCgkJJHJvd3Mg
PSAkaWRzID8gc2FmZV9yb3dzKCdpZCwgZXh0LCB0aHVtYm5haWwnLCAndHhwX2ltYWdlJywg
J2lkIElOICgnLiRpZF9saXN0LicpIE9SREVSIEJZIEZJRUxEKGlkLCAnLiRpZF9saXN0Licp
JykgOiBhcnJheSgpOw0KDQoJCWZvcmVhY2ggKCRyb3dzIGFzICRyb3cpIHsNCgkJCWV4dHJh
Y3QoJHJvdyk7DQoJCQkkaW1hZ2VzW10gPSAnPHAgY2xhc3M9InNvcnRhYmxlIiBkYXRhLWlk
PSInLiRpZC4nIj48YSBocmVmPSJpbmRleC5waHA/ZXZlbnQ9aW1hZ2Umc3RlcD1pbWFnZV9l
ZGl0JmlkPScuJGlkLiciIHRpdGxlPSImbHQ7dHhwOmltYWdlIGlkPSZxdW90OycuJGlkLicm
cXVvdCAvJmd0OyI+Jw0KCQkJLic8aW1nIHNyYz0iJy5pbWFnZXNyY3VybCgkaWQsICRleHQs
ICR0aHVtYm5haWwpLiciIC8+Jw0KCQkJLic8L2E+PGJ1dHRvbiBjbGFzcz0iZGVzdHJveSI+
PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZSI+Jy5nVHh0KCdkZWxldGUnKS4n
PC9zcGFuPjwvYnV0dG9uPjwvcD4nOw0KCQl9DQoJfQ0KDQoJJGFydGljbGVfaW1hZ2UgPSAn
PGRpdiBpZD0iYXJ0aWNsZS1maWxlLWNvbnRhaW5lciI+Jy5pbXBsb2RlKG4sICRpbWFnZXMp
Lic8L2Rpdj4nLm47DQoNCgkkaW1hZ2VzID0gYXJyYXkoKTsNCgkkc2VsZWN0X2ltYWdlcyA9
ICcnOw0KCSRsaW1pdCA9IGludHZhbChnZXRfcHJlZignYWJjX2ZpbGVfbGltaXQnKSkgb3Ig
JGxpbWl0ID0gMTI7DQoNCgkkcm93cyA9IHNhZmVfcm93cygnaWQsIGV4dCwgdGh1bWJuYWls
JywgJ3R4cF9pbWFnZScsICgkaWRzID8gJ2lkIE5PVCBJTignLiRpZF9saXN0LicpJyA6ICcx
JykuJyBPUkRFUiBCWSBkYXRlIERFU0MgTElNSVQgJy4kbGltaXQpOw0KDQoJZm9yZWFjaCAo
JHJvd3MgYXMgJHJvdykgew0KCQlleHRyYWN0KCRyb3cpOw0KCQkkaW1hZ2VzW10gPSAnPHAg
ZGF0YS1pZD0iJy4kaWQuJyI+PGEgaHJlZj0iaW5kZXgucGhwP2V2ZW50PWltYWdlJnN0ZXA9
aW1hZ2VfZWRpdCZpZD0nLiRpZC4nIiB0aXRsZT0iJmx0O3R4cDppbWFnZSBpZD0mcXVvdDsn
LiRpZC4nJnF1b3QgLyZndDsiPicNCgkJCS4nPGltZyBzcmM9IicuaW1hZ2VzcmN1cmwoJGlk
LCAkZXh0LCAkdGh1bWJuYWlsKS4nIiAvPicvL2ltYWdlKGFycmF5KCdpZCcgPT4gJGlkKSkN
CgkJCS4nPC9hPjxidXR0b24gY2xhc3M9ImRlc3Ryb3kiPjxzcGFuIGNsYXNzPSJ1aS1pY29u
IHVpLWljb24tY2xvc2UiPicuZ1R4dCgnZGVsZXRlJykuJzwvc3Bhbj48L2J1dHRvbj48L3A+
JzsNCgl9DQoNCgkkc2VsZWN0X2ltYWdlcyA9ICc8cCBjbGFzcz0idHhwLWFjdGlvbnMiPicN
CgkJLic8YSBpZD0iYXJ0aWNsZS1maWxlLWFkZCIgaHJlZj0iI2FydGljbGUtZmlsZS1zZWxl
Y3QiPicuZ1R4dCgnYWRkJykNCgkJLic8c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWFy
cm93dGhpY2tzdG9wLTEtcyI+PC9zcGFuPjwvYT48L3A+Jy5uDQoJLic8ZGl2IGlkPSJhcnRp
Y2xlLWZpbGUtc2VsZWN0IiBjbGFzcz0iaGlkZGVuIj4nLmltcGxvZGUobiwgJGltYWdlcyku
JzwvZGl2PicubjsNCg0KCXJldHVybiAkZGF0YS5uLiRhcnRpY2xlX2ltYWdlLm4uJzxociAv
Picubg0KCS5pbnB1dExhYmVsKA0KCQknYXJ0aWNsZS1maWxlLWlucHV0JywNCgkJJzxidXR0
b24gaWQ9ImFydGljbGUtZmlsZS1yZXNldCIgY2xhc3M9ImRlc3Ryb3kiPjxzcGFuIGNsYXNz
PSJ1aS1pY29uIHVpLWljb24tY2xvc2UiPicuZ1R4dCgnZGVsZXRlJykuJzwvc3Bhbj48L2J1
dHRvbj4nLm4uDQoJCSc8aW5wdXQgaWQ9ImFydGljbGUtZmlsZS1pbnB1dCIgdHlwZT0iZmls
ZSIgbmFtZT0iYXJ0aWNsZV9maWxlW10iIG11bHRpcGxlPSJtdWx0aXBsZSIgYWNjZXB0PSJp
bWFnZS8qIiBvbmNoYW5nZT0iYWJjUHJldmlldyh0aGlzKSIgLz4nDQoJCS4nPHA+Q2xpY2sg
b3IgZHJvcCBmaWxlcyBvbiB0aGlzIHpvbmU8L3A+Jy5uDQoJCS4nPGRpdiBpZD0iYXJ0aWNs
ZS1maWxlLXByZXZpZXciPjwvZGl2PicubiwgZ1R4dCgndXBsb2FkJyksDQoJCWFycmF5KCcn
LCAnaW5zdHJ1Y3Rpb25zX2FydGljbGVfaW1hZ2UnKSwNCgkJYXJyYXkoJ2lkJyA9PiAnYXJ0
aWNsZS1maWxlLWRyb3AnLCAnY2xhc3MnID0+ICd0eHAtZm9ybS1maWVsZCBhcnRpY2xlLWlt
YWdlJykNCgkpLm4uJzxociAvPicubi4kc2VsZWN0X2ltYWdlczsNCn0NCg0KZnVuY3Rpb24g
YWJjX2ZpbGVfc2F2ZSgkZXZlbnQsICRzdGVwLCAkcnMpDQp7DQoJaWYoZW1wdHkoJF9GSUxF
U1snYXJ0aWNsZV9maWxlJ11bJ3RtcF9uYW1lJ11bMF0pIHx8ICFoYXNfcHJpdnMoJ2ltYWdl
LmVkaXQnKSkgcmV0dXJuOw0KDQoJaW5jbHVkZV9vbmNlICdsaWInLkRJUkVDVE9SWV9TRVBB
UkFUT1IuJ2NsYXNzLnRodW1iLnBocCc7DQoJJGlkcyA9IGFycmF5KCk7DQoJJGZpbGVzID0g
VHhwOjpnZXQoJ1xUZXh0cGF0dGVyblxTZXJ2ZXJcRmlsZXMnKS0+cmVmYWN0b3IoJF9GSUxF
U1snYXJ0aWNsZV9maWxlJ10pOw0KDQoJZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKSB7DQoJ
CSRtZXRhID0gYXJyYXkoJ2FsdCcgPT4gJGZpbGVbJ25hbWUnXSk7ICAvL2NhcHRpb24sIGNh
dGVnb3J5DQoJCSRpbWdfcmVzdWx0ID0gaW1hZ2VfZGF0YSgkZmlsZSwgJG1ldGEpOw0KDQoJ
CWlmIChpc19hcnJheSgkaW1nX3Jlc3VsdCkpIHsNCgkJCWxpc3QoJG1lc3NhZ2UsICRpZCkg
PSAkaW1nX3Jlc3VsdDsNCgkJCSRpZHNbXSA9ICRpZDsNCgkJfQ0KCX0NCg0KCSRHTE9CQUxT
WydJRCddID0gaW50dmFsKCRyc1snSUQnXSk7Ly8gc2ljIQ0KCSRpZHMgPSBpbXBsb2RlKCcs
JywgJGlkcyk7DQoJJGlkcyA9IGltcGxvZGUoJywnLCBkb19saXN0X3VuaXF1ZSgkcnNbJ0lt
YWdlJ10uJywnLiRpZHMpKTsNCglzYWZlX3VwZGF0ZSgndGV4dHBhdHRlcm4nLCAiSW1hZ2U9
JyIuZG9TbGFzaCgkaWRzKS4iJyIsICdJRD0nLiRHTE9CQUxTWydJRCddKTsNCn0iO3M6NDoi
dHlwZSI7czoxOiI0IjtzOjU6Im9yZGVyIjtzOjE6IjUiO3M6NToiZmxhZ3MiO3M6MToiMCI7
czo0OiJoZWxwIjtzOjA6IiI7czozOiJtZDUiO3M6MzI6IjA1MGE4MWYyOTExMzE1OTY3Njdm
Y2ZmNThiZTczNmM1Ijt9
Offline
Re: [feedback] Image upload directly in the write tab
etc wrote #315128:
Version 0.7 allows you to define how images should be imported
Sounds more like smd_imagery with every release ;)
I’ll check this out, thank you for writing it.
The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.
Txp Builders – finely-crafted code, design and Txp
Offline
Offline
Re: [feedback] Image upload directly in the write tab
etc wrote #315138:
Version 0.7.1: uses thumbnails if present :-)
I am using the plugin currently on txp 4.6. Is it possible to select images from the uploaded ones like with bot_image_upload?
Offline