# cnn_month_select v1.2 # Adds a select form which can be used with zem_event or mdp_calendar. # Chris Newkirk # http://chrisnewkirk.com/ # ...................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ...................................................................... YTo5OntzOjc6InZlcnNpb24iO3M6MzoiMS4yIjtzOjY6ImF1dGhvciI7czoxMzoiQ2hyaXMg TmV3a2lyayI7czoxMDoiYXV0aG9yX3VyaSI7czoyNDoiaHR0cDovL2NocmlzbmV3a2lyay5j b20vIjtzOjExOiJkZXNjcmlwdGlvbiI7czo2ODoiQWRkcyBhIHNlbGVjdCBmb3JtIHdoaWNo IGNhbiBiZSB1c2VkIHdpdGggemVtX2V2ZW50IG9yIG1kcF9jYWxlbmRhci4iO3M6NDoidHlw ZSI7aTowO3M6NDoibmFtZSI7czoxNjoiY25uX21vbnRoX3NlbGVjdCI7czo0OiJoZWxwIjtz OjI2NzU6Igk8aDE+UGx1Z2luIDxjb2RlPmNubl9tb250aF9zZWxlY3Q8L2NvZGU+PC9oMT4K Cgk8cD5UaGlzIGlzIGEgdmVyeSBzaW1wbGUgcGx1Z2luIChoYWNrKSB0aGF0IGFkZHMgZnVu Y3Rpb25hbGl0eSB0byBlaXRoZXIgPGEgaHJlZj0iaHR0cDovL3d3dy5vdXRvdmVydGhldm9p ZC5jb20vcHJvamVjdC9jYWxlbmRhciI+bWRwX2NhbGVuZGFyPC9hPiBvciA8YSBocmVmPSJo dHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/aWQ9MjA3OTYiPnpl bV9ldmVudDwvYT4uIEl0IHNpbXBseSBjcmVhdGVzIGEgc2VsZWN0IGZvcm0gdGhhdCB3aWxs IGFsbG93IHlvdSB0byBjaG9vc2UgYSBtb250aCBhbmQgeWVhciBhbmQgYXV0b21hdGljYWxs eSBqdW1wIHRvIHRoZSBtb250aC48L3A+CgoJPGgyPlVzYWdlOjwvaDI+CgoJPHA+SnVzdCBw bGFjZSBhIDxjb2RlPiZsdDt0eHA6Y25uX21vbnRoX3NlbGVjdCAvJmd0OzwvY29kZT4gdGFn IHdoZXJldmVyIHlvdSB3YW50IHRoZSBmb3JtIHRvIGFwcGVhci48L3A+CgoJPGgyPkF0dHJp YnV0ZXM6PC9oMj4KCgk8dWw+CgkJPGxpPjxjb2RlPnBsdWdpbjwvY29kZT4KCTx1bD4KCQk8 bGk+dGhlIHBsdWdpbiB0aGF0IGNyZWF0ZXMgdGhlIGNhbGVuZGFyPC9saT4KCQk8bGk+b3B0 aW9uYWwgdmFsdWVzIGFyZSA8Y29kZT56ZW1fZXZlbnQ8L2NvZGU+IG9yIDxjb2RlPm1kcF9j YWxlbmRhcjwvY29kZT48L2xpPgoJCTxsaT5kZWZhdWx0IGlzIDxjb2RlPnplbV9ldmVudDwv Y29kZT48L2xpPgoJPC91bD48L2xpPgoJCTxsaT48Y29kZT5pZDwvY29kZT4KCTx1bD4KCQk8 bGk+dGhlIDxjb2RlPmlkPC9jb2RlPiBhdHRyaWJ1dGUgb2YgdGhlIDxjb2RlPmZvcm08L2Nv ZGU+IGVsZW1lbnQ8L2xpPgoJCTxsaT5kZWZhdWx0IGlzIDxjb2RlPm1vbnRoU2VsZWN0Rm9y bTwvY29kZT48L2xpPgoJPC91bD48L2xpPgoJCTxsaT48Y29kZT5hY3Rpb248L2NvZGU+Cgk8 dWw+CgkJPGxpPnRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSBvZiB0aGUgZm9y bTwvbGk+CgkJPGxpPmRlZmF1bHQgaXMgYmxhbms8L2xpPgoJCTxsaT50aGlzIG9ubHkgbmVl ZHMgdG8gYmUgdXNlZCBpZiB5b3Ugd2FudCB0byBwbGFjZSB0aGUgZm9ybSBvbiBhIGRpZmZl cmVudCBwYWdlIGZyb20gdGhlIGNhbGVuZGFyIGl0c2VsZi48L2xpPgoJPC91bD48L2xpPgoJ CTxsaT48Y29kZT53cmFwdGFnPC9jb2RlPgoJPHVsPgoJCTxsaT50aGUgaHRtbCB0YWcgdG8g d3JhcCB0aGUgZm9ybSBlbGVtZW50cyBpbjwvbGk+CgkJPGxpPmRlZmF1bHQgaXMgPGNvZGU+ ZGl2PC9jb2RlPjwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxjb2RlPm1vbnRoc2VsZWN0aWQ8 L2NvZGU+Cgk8dWw+CgkJPGxpPnRoZSA8Y29kZT5pZDwvY29kZT4gYXR0cmlidXRlIG9mIHRo ZSBtb250aCA8Y29kZT5zZWxlY3Q8L2NvZGU+IGVsZW1lbnQ8L2xpPgoJCTxsaT5kZWZhdWx0 IGlzIDxjb2RlPm1vbnRoU2VsZWN0PC9jb2RlPjwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxj b2RlPm1vbnRobGFiZWw8L2NvZGU+Cgk8dWw+CgkJPGxpPnRoZSA8Y29kZT5sYWJlbDwvY29k ZT4gdGV4dCBmb3IgdGhlIG1vbnRoIHNlbGVjdCBlbGVtZW50PC9saT4KCQk8bGk+ZGVmYXVs dCBpcyA8Y29kZT5Nb250aDogPC9jb2RlPjwvbGk+CgkJPGxpPmV4YW1wbGUgdXNhZ2U6IDxj b2RlPiZsdDt0eHA6Y25uX21vbnRoX3NlbGVjdCBtb250aGxhYmVsPSZxdW90O0Nob29zZSBh IG1vbnRoOiAmcXVvdDsgLyZndDs8L2NvZGU+PC9saT4KCTwvdWw+PC9saT4KCQk8bGk+PGNv ZGU+eWVhcnNlbGVjdGlkPC9jb2RlPgoJPHVsPgoJCTxsaT50aGUgPGNvZGU+aWQ8L2NvZGU+ IGF0dHJpYnV0ZSBvZiB0aGUgeWVhciA8Y29kZT5zZWxlY3Q8L2NvZGU+IGVsZW1lbnQ8L2xp PgoJCTxsaT5kZWZhdWx0IGlzIDxjb2RlPnllYXJTZWxlY3Q8L2NvZGU+PC9saT4KCQk8bGk+ PGVtPm9ubHkgbmVlZGVkIHVzZWQgd2l0aCBtZHBfY2FsZW5kYXI8L2VtPjwvbGk+Cgk8L3Vs PjwvbGk+CgkJPGxpPjxjb2RlPnllYXJsYWJlbDwvY29kZT4KCTx1bD4KCQk8bGk+dGhlIDxj b2RlPmxhYmVsPC9jb2RlPiB0ZXh0IGZvciB0aGUgeWVhciBzZWxlY3QgZWxlbWVudDwvbGk+ CgkJPGxpPmRlZmF1bHQgaXMgPGNvZGU+WWVhcjogPC9jb2RlPjwvbGk+CgkJPGxpPjxlbT5v bmx5IG5lZWRlZCB1c2VkIHdpdGggbWRwX2NhbGVuZGFyPC9lbT48L2xpPgoJPC91bD48L2xp PgoJCTxsaT48Y29kZT5zdWJtaXR2YWx1ZTwvY29kZT4KCTx1bD4KCQk8bGk+dGhlIHZhbHVl IG9mIHRoZSBmb3JtJiM4MjE3O3Mgc3VibWl0IGJ1dHRvbjwvbGk+CgkJPGxpPmRlZmF1bHQg aXMgPGNvZGU+R288L2NvZGU+PC9saT4KCTwvdWw+PC9saT4KCQk8bGk+PGNvZGU+c3VibWl0 aWQ8L2NvZGU+Cgk8dWw+CgkJPGxpPnRoZSA8Y29kZT5pZDwvY29kZT4gYXR0cmlidXRlIG9m IHRoZSA8Y29kZT5zdWJtaXQ8L2NvZGU+IGJ1dHRvbjwvbGk+CgkJPGxpPmRlZmF1bHQgaXMg Ymxhbms8L2xpPgoJPC91bD48L2xpPgoJCTxsaT48Y29kZT5zdWJtaXRjbGFzczwvY29kZT4K CTx1bD4KCQk8bGk+dGhlIDxjb2RlPmNsYXNzPC9jb2RlPiBhdHRyaWJ1dGUgb2YgdGhlIDxj b2RlPnN1Ym1pdDwvY29kZT4gYnV0dG9uPC9saT4KCQk8bGk+ZGVmYXVsdCBpcyA8Y29kZT5i dXR0b248L2NvZGU+PC9saT4KCTwvdWw+PC9saT4KCTwvdWw+IjtzOjQ6ImNvZGUiO3M6MjY4 MzoiCmZ1bmN0aW9uIGNubl9tb250aF9zZWxlY3QoJGF0dHMpCnsKCWV4dHJhY3QobEF0dHMo YXJyYXkoCgkJCQknYWN0aW9uJwkJPT4gJycsCgkJCQknaWQnCQkJPT4gJ21vbnRoU2VsZWN0 Rm9ybScsCgkJCQknd3JhcHRhZycJCT0+ICdkaXYnLAoJCQkJJ21vbnRoc2VsZWN0aWQnCT0+ ICdtb250aFNlbGVjdCcsCgkJCQknbW9udGhsYWJlbCcJPT4gJ01vbnRoOiAnLAoJCQkJJ3ll YXJzZWxlY3RpZCcJPT4gJ3llYXJTZWxlY3QnLAoJCQkJJ3llYXJsYWJlbCcJCT0+ICdZZWFy OiAnLAoJCQkJJ3N1Ym1pdHZhbHVlJwk9PiAnR28nLAoJCQkJJ3N1Ym1pdGlkJwkJPT4gJycs CgkJCQknc3VibWl0Y2xhc3MnCT0+ICdidXR0b24nLAoJCQkJJ3BsdWdpbicJCT0+ICd6ZW1f ZXZlbnQnLAkJLy8gdmFsaWQgb3B0aW9ucyBhcmUgemVtX2V2ZW50IG9yIG1kcF9jYWxlbmRh cgoJCQkpLCRhdHRzKSk7CgoJLy8gZ2V0IHllYXIgYW5kIG1vbnRoIHZhbHVlcyBmcm9tIHRo ZSBjdXJyZW50IGRhdGUgZm9yIG5vdwoJJG0gPSBzdHJmdGltZSgnJW0nKTsKCSR5ID0gc3Ry ZnRpbWUoJyVZJyk7CgoJJG91dCA9IGFycmF5KCk7Cgkkb3B0aW9udGFncyA9IGFycmF5KCk7 CgkkdGFnYXR0cyA9ICcnOwoKCSRvdXRbXSA9IGRvVGFnKCRtb250aGxhYmVsLCAnbGFiZWwn LCAnJywgJyBmb3I9IicuJG1vbnRoc2VsZWN0aWQuJyInKTsKCglpZiAoJHBsdWdpbiA9PSAn bWRwX2NhbGVuZGFyJykgewoJCS8vIHJlc2V0ICRtIGFuZCAkeSB0byB0aGUgZGF0ZSBhY3R1 YWxseSBiZWluZyB2aWV3ZWQKCQlpZiAoIGdwcygnbScpICkgJG0gPSBncHMoJ20nKTsKCQlp ZiAoIGdwcygneScpICkgJHkgPSBncHMoJ3knKTsKCgkJLy8gYnVpbGQgdGhlIG1vbnRoIHNl bGVjdCBsaXN0Li4uCgkJZm9yICggJGkgPSAxOyAkaSA8IDEzOyAkaSsrICkgewoJCQkkdGFn YXR0cyA9ICcgdmFsdWU9IicuJGkuJyInOwoJCQlpZiAoICRpID09ICRtICkgJHRhZ2F0dHMg Lj0gJyBzZWxlY3RlZD0ic2VsZWN0ZWQiJzsKCQkJJG9wdGlvbnRhZ3NbXSA9IGRvVGFnKGRh dGUoIk0iLCBta3RpbWUoMCwwLDAsJGkpKSwgJ29wdGlvbicsICcnLCAkdGFnYXR0cyk7CgkJ fQoJCSRvdXRbXSA9IGRvVGFnKGpvaW4obiwgJG9wdGlvbnRhZ3MpLCAnc2VsZWN0JywgJycs ICcgbmFtZT0ibSInLCAkbW9udGhzZWxlY3RpZCk7CgoJCS8vIGNsZWFuIHVwIHNvIHdlIGNh biB1c2UgdGhlIHNhbWUgYXJyYXkgYWdhaW4KCQkkb3B0aW9udGFncyA9IGFycmF5KCk7CgoJ CS8vIGJ1aWxkIHRoZSB5ZWFyIHNlbGVjdCBsaXN0CgkJJG91dFtdID0gZG9UYWcoJHllYXJs YWJlbCwgJ2xhYmVsJywgJycsICIgZm9yPVwiJHllYXJzZWxlY3RpZFwiIik7CgkJZm9yICgg JGkgPSAoJHkgLSAxKTsgJGkgPCAoJHkgKyAyKTsgJGkrKyApIHsKCQkJJHRhZ2F0dHMgPSAn IHZhbHVlPSInLiRpLiciJzsKCQkJaWYgKCAkaSA9PSAkeSApICR0YWdhdHRzIC49ICcgc2Vs ZWN0ZWQ9InNlbGVjdGVkIic7CgkJCSRvcHRpb250YWdzW10gPSBkb1RhZygkaSwgJ29wdGlv bicsICcnLCAkdGFnYXR0cyk7CgkJfQoJCSRvdXRbXSA9IGRvVGFnKGpvaW4obiwgJG9wdGlv bnRhZ3MpLCAnc2VsZWN0JywgJycsICcgbmFtZT0ieSInLCAkeWVhcnNlbGVjdGlkKTsKCgl9 IGVsc2UgewkvLyBwbHVnaW4gaXMgemVtX2V2ZW50CgoJCWlmICggZ3BzKCdkYXRlJykgKSB7 CS8vIHJlc2V0ICRtIGFuZCAkeSB0byB0aGUgZGF0ZSBhY3R1YWxseSBiZWluZyB2aWV3ZWQK CQkJJGN1cnJlbnRkYXRlID0gZ3BzKCdkYXRlJyk7CgkJCWxpc3QoJG0sICR5KSA9IGV4cGxv ZGUoJy0nLCAkY3VycmVudGRhdGUpOwoJCX0gZWxzZSB7CgkJCSRjdXJyZW50ZGF0ZSA9ICR5 LictJy5wcmVwZW5kX3plcm8oJG0pOwoJCX0KCgkJJHktLTsJLy8gYnVpbGQgdGhlIG9wdGlv biB2YWx1ZXMgc3RhcnRpbmcgZnJvbSBsYXN0IHllYXIKCQlmb3IgKCAkaSA9IDA7ICRpID4g MjU7ICRpKysgKSB7CgkJCWlmICggJG0gPiAxMiApIHsKCQkJCSRtID0gMTsKCQkJCSR5Kys7 CgkJCX0KCQkJJG9wdGlvbnZhbHVlID0gJHkuJy0nLnByZXBlbmRfemVybygkbSk7CgkJCSR0 YWdhdHRzID0gJyB2YWx1ZT0iJy4kb3B0aW9udmFsdWUuJyInOwoJCQlpZiAoICRvcHRpb252 YWx1ZSA9PSAkY3VycmVudGRhdGUgKSAkdGFnYXR0cyAuPSAnIHNlbGVjdGVkPSJzZWxlY3Rl ZCInOwoJCQkkb3B0aW9udGFnc1tdID0gZG9UYWcoZGF0ZSgiTSAkeSIsbWt0aW1lKDAsMCww LCRtKSksICdvcHRpb24nLCAnJywgJHRhZ2F0dHMpOwoJCQkkbSsrOwoJCX0KCQkkb3V0W10g PSBkb1RhZyhqb2luKG4sICRvcHRpb250YWdzKSwgJ3NlbGVjdCcsICcnLCAnIG5hbWU9ImRh dGUiJywgJG1vbnRoc2VsZWN0aWQpOwoJfQoKCS8vIGJ1aWxkIHRoZSBpbnB1dCBidXR0b24g YW5kIHRoZSBmb3JtCgkkb3V0W10gPSBkb1RhZygnJywgJ2lucHV0JywgJHN1Ym1pdGNsYXNz LCAnIHR5cGU9InN1Ym1pdCIgdmFsdWU9IicuJHN1Ym1pdHZhbHVlLiciJywgJHN1Ym1pdGlk KTsKCXJldHVybiAnPGZvcm0gYWN0aW9uPSInLiRhY3Rpb24uJyIgbWV0aG9kPSJnZXQiIGlk PSInLiRpZC4nIj4nLmRvVGFnKGpvaW4obiwgJG91dCksICR3cmFwdGFnKS4nPC9mb3JtPic7 Cn0KCmZ1bmN0aW9uIHByZXBlbmRfemVybygkbnVtKQp7CglpZiAoc3RybGVuKCRudW0pID09 IDEpICRudW0gPSAnMCcgLiAkbnVtOwoJcmV0dXJuICRudW07Cn0KCiI7czozOiJtZDUiO3M6 MzI6IjM0ZWQ1NzMwY2ExNzZlZDRiOThjOWRlMmU5MTVlZjJlIjt9