����JFIF�����%%��� }!1AQa"q2���#B��R��$3br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz������������������������������������������������������������������������� w!1AQaq"2�B���� #3R�br� $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|��O�������h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@��o�E��/�?��ߵE_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ ?�z�����������goڢ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?��=[�Qg�����o����Q@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y�����[����TP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,���|-��v��(���� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�������;~��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@�������?�_�����j������ (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@��o�E��/�?��ߵE_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ ?�z�����������goڢ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?��=[�Qg�����o����Q@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y�����[����TP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,���|-��v��(���� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�������;~��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@�������?�_�����j������ (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@��o�E��/�?��ߵE_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ ?�z�����������goڢ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?��=[�Qg�����o����Q@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y�����[����TP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,��������ο�O�P��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������k�w���~���v��������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j�?�5o�%��?��� g����U@�����&O3�����a�;�^=�wH���D��/��*� �fX�I���,������k?g_���?�5o�%��?��� g����U@�F�����������*������?�o�}��Τ~g��ʀ�#V��Y������~ο�T�j��K/� ������������z��������#;�~���A�;��� w�F�����������*���տ��_�@�o��5����EU������������u�誠��W��[�����������O��?jW���@��տ���@�o��5����EM������������v�訠�#V��Y�������������V��Zv��~����vw�~���c�Q@���,��~���kgo���?�5o�%��/��� o����Q@��o�%�>�ߤ���߳����S������?��o�%�~�ߠ�d�߳����S����g�P��j��K?� _������������[� g�D����[�;�TP7���������'Ѿ���=��;/�P��j��K?� _������������[� g�D����[�;�TP���,��~���kgo���a������۔���B{���ea�`T�+ �n%Ц �����j��K?� _������������[� g�D����[�;�TP���,��~���kgo����?���%�/�~�����#����x��c�~�q�v�t`ȫ��_'h���������'�]�;{s� Pp=N= 5���%�����ڜs�����=���J��A@�����Kp�b��}��X�����4g v+:�Բ�+60�ʩ,� @�����������I �uO�����ToUv��bgUl�cP�T?�#V��Y������������j��K?� _����������!��X��]���������TK�|4��`� ��#��P\y��aa >NgL��j��K?� _������������[� g�D����[�;�TP���,��~���kgo���o�F�����$��ہ�� ��vݞr6��S�q''*02���[� g�D����[�;�TP���,��~���kgo���?�5o�%��/��� o����Q@�F�����������*(��տ���@�o��5����EE������������v�訠��������~1�o���}G�L�������5o�%��/��� o����Q@�F�����������*(��տ���@�o��5����EE5����%�˷���r�v����y�\~���)(?0���=[� i����>��gc��N=����5o�%��/��� o����Q@�F�����������*(��W��Z�l����m#���X�wn_�j`0C6윅����5o�%��/��� o����Q@��տ��y9���gbO�G�5@�n�>���#V��Y������~ο�T��V��Y����9�gc��s�T.�?Z_��[� e�D����Y�:��UP���,������k?g_����_�=_� n�~~�rI������w�,"~ԓ�!72���)( u��#V��Y������~ο�T�j��K/� ��������������K
�����Kr_���}�De>~��Z=��pjX�n[p(�"� �a,Ub�/�×�<����;��<�����K>��o���[�:����V���,��$��ϧ�*�����5O����տ��_�@�o��5����EU5��o�%����?�ꜜm�_�;>Gbs�S�����@��տ��_�@�o��5����EU ��տ��}�~�����v?�������-��o�l��~�ȥ�v����r��B1���@��տ���A�?����ggP��c�S�`@%�*����տ��_�@�o��5����EU������������u�誠7���� O���!c�|0��ёv��4�+�X�Vx�RX3��8����K>��o���[�:���u#�x��#V��Y������~ο�T�j��K/� ������������[� e�D����Y�:��UP���,������k?g_���O��[� g�D����[�:��T��=_� k����~��k����c�;����.8����c��z��Ͽ�/��zc�o����F?Z_��[� e�D����Y�:��UP���,������k?g_���C���,�v����v�o���H������(�z���w�/�����v ��T.G��Ϡ���տ��_�@�o��5����EU������������u�誠��W��[��'����%��o���:�Cڕ�R̀���j���������?�o���[�;������g0q�?��o�%�>o�_��>�gf����~4�������������u�誠�z���7�/��o���������_��[� e�D����Y�:��UP���,������k?g_���C���,�|�����o��;�Ԟ��9�l�z��ؠ3|��O�X�~���;~�q����Z�F�����������*���տ��_�@�o��5����EU!��տ��}�~����-��G��I�T�������������u�誠�#V��Y������~ο�T�j��K/� ����������#�=_� n|���KbB�gtdM��"�ڒA#n�63�6�m�P�����,���/���gS�u����#�9��5o�%��?��� g����U@��o�%�o�_�����u��'�������?��o��� ���3��?go���|m�ڇ���-S�O��x��>���^�����7����x�]_�>�qke>���m��4��7P�Yހ��
0byt3m1n1
0byt3m1n1
Path:
/
hermes
/
bosweb
/
web
/
sb_web
/
web
/
b2680
/
zoompc.info
/
fromthe
/
wp-content
/
plugins
/
worker
/
src
/
MMB
/
[
Home
]
File: Post.php
<?php /************************************************************* * post.class.php * Create remote post * Copyright (c) 2011 Prelovac Media * www.prelovac.com **************************************************************/ class MMB_Post extends MMB_Core { public function create($args) { global $wpdb; /** * algorithm * 1. create post using wp_insert_post (insert tags also here itself) * 2. use wp_create_categories() to create(not exists) and insert in the post * 3. insert meta values */ include_once ABSPATH.'wp-admin/includes/taxonomy.php'; include_once ABSPATH.'wp-admin/includes/image.php'; include_once ABSPATH.'wp-admin/includes/file.php'; $post_struct = $args['post_data']; $post_data = $post_struct['post_data']; $new_custom = $post_struct['post_extras']['post_meta']; $post_categories = explode(',', $post_struct['post_extras']['post_categories']); $post_atta_img = $post_struct['post_extras']['post_atta_images']; $post_upload_dir = $post_struct['post_extras']['post_upload_dir']; $post_checksum = $post_struct['post_extras']['post_checksum']; $post_featured_img = $post_struct['post_extras']['featured_img']; $upload = wp_upload_dir(); // create dynamic url RegExp $mwp_base_url = parse_url($post_upload_dir['url']); $mwp_regexp_url = $mwp_base_url['host'].$mwp_base_url['path']; $rep = array( '/', '+', '.', ':', '?', ); $with = array( '\/', '\+', '\.', '\:', '\?', ); $mwp_regexp_url = str_replace($rep, $with, $mwp_regexp_url); // rename all src ../wp-content/ with hostname/wp-content/ $mmb_dot_url = '..'.$mmb_base_url['path']; $mmb_dot_url = str_replace($rep, $with, $mmb_dot_url); $dot_match_count = preg_match_all('/(<a[^>]+href=\"([^"]+)\"[^>]*>)?(<\s*img.[^\/>]*src="([^"]*'.$mmb_dot_url.'[^\s]+\.(jpg|jpeg|png|gif|bmp))"[^>]*>)/ixu', $post_data['post_content'], $dot_get_urls, PREG_SET_ORDER); if ($dot_match_count > 0) { foreach ($dot_get_urls as $dot_url) { $match_dot = '/'.str_replace($rep, $with, $dot_url[4]).'/'; $replace_dot = 'http://'.$mmb_base_url['host'].substr($dot_url[4], 2, strlen($dot_url[4])); $post_data['post_content'] = preg_replace($match_dot, $replace_dot, $post_data['post_content']); if ($dot_url[1] != '') { $match_dot_a = '/'.str_replace($rep, $with, $dot_url[2]).'/'; $replace_dot_a = 'http://'.$mmb_base_url['host'].substr($dot_url[2], 2, strlen($dot_url[2])); $post_data['post_content'] = preg_replace($match_dot_a, $replace_dot_a, $post_data['post_content']); } } } //to find all the images $match_count = preg_match_all('/(<a[^>]+href=\"([^"]+)\"[^>]*>)?(<\s*img.[^\/>]*src="([^"]+'.$mmb_regexp_url.'[^\s]+\.(jpg|jpeg|png|gif|bmp))"[^>]*>)/ixu', $post_data['post_content'], $get_urls, PREG_SET_ORDER); if ($match_count > 0) { $attachments = array(); $post_content = $post_data['post_content']; foreach ($get_urls as $get_url_k => $get_url) { // unset url in attachment array foreach ($post_atta_img as $atta_url_k => $atta_url_v) { $match_patt_url = '/'.str_replace($rep, $with, substr($atta_url_v['src'], 0, strrpos($atta_url_v['src'], '.'))).'/'; if (preg_match($match_patt_url, $get_url[4])) { unset($post_atta_img[$atta_url_k]); } } $pic_from_other_site = $get_urls[$get_url_k][4]; if (strpos($pic_from_other_site, 'managewp.com') === false) { continue; } if (isset($get_urls[$get_url_k][6])) { // url have parent, don't download this url if ($get_url[1] != '') { // change src url $s_mmb_mp = '/'.str_replace($rep, $with, $get_url[4]).'/'; $s_img_atta = wp_get_attachment_image_src($get_urls[$get_url_k][6]); $s_mmb_rp = $s_img_atta[0]; $post_content = preg_replace($s_mmb_mp, $s_mmb_rp, $post_content); // change attachment url if (preg_match('/attachment_id/i', $get_url[2])) { $mmb_mp = '/'.str_replace($rep, $with, $get_url[2]).'/'; $mmb_rp = get_bloginfo('wpurl').'/?attachment_id='.$get_urls[$get_url_k][6]; $post_content = preg_replace($mmb_mp, $mmb_rp, $post_content); } } continue; } $no_thumb = ''; /*if (preg_match('/-\d{3}x\d{3}\.[a-zA-Z0-9]{3,4}$/', $get_url[4])) { $no_thumb = preg_replace('/-\d{3}x\d{3}\.[a-zA-Z0-9]{3,4}$/', '.'.$get_url[5], $get_url[4]); } else { $no_thumb = $get_url[4]; }*/ $no_thumb = $get_url[4]; if (isset($upload['error']) && !empty($upload['error'])) { return array('error' => $upload['error']); } $file_name = basename($no_thumb); $tmp_file = download_url($no_thumb); if (is_wp_error($tmp_file)) { return array('error' => $tmp_file->get_error_message()); } $attach_upload['url'] = $upload['url'].'/'.$file_name; $attach_upload['path'] = $upload['path'].'/'.$file_name; $renamed = @rename($tmp_file, $attach_upload['path']); if ($renamed === true) { $match_pattern = '/'.str_replace($rep, $with, $get_url[4]).'/'; $replace_pattern = $attach_upload['url']; $post_content = preg_replace($match_pattern, $replace_pattern, $post_content); if (preg_match('/-\d{3}x\d{3}\.[a-zA-Z0-9]{3,4}$/', $get_url[4])) { $match_pattern = '/'.str_replace($rep, $with, preg_replace('/-\d{3}x\d{3}\.[a-zA-Z0-9]{3,4}$/', '.'.$get_url[5], $get_url[4])).'/'; $post_content = preg_replace($match_pattern, $replace_pattern, $post_content); } $attachment = array( 'post_title' => $file_name, 'post_content' => '', 'post_type' => 'attachment', //'post_parent' => $post_id, 'post_mime_type' => 'image/'.$get_url[5], 'guid' => $attach_upload['url'], ); // Save the data $attach_id = wp_insert_attachment($attachment, $attach_upload['path']); $attachments[$attach_id] = 0; // featured image if ($post_featured_img != '') { $feat_img_url = ''; if (preg_match('/-\d{3}x\d{3}\.[a-zA-Z0-9]{3,4}$/', $post_featured_img)) { $feat_img_url = substr($post_featured_img, 0, strrpos($post_featured_img, '.') - 8); } else { $feat_img_url = substr($post_featured_img, 0, strrpos($post_featured_img, '.')); } $m_feat_url = '/'.str_replace($rep, $with, $feat_img_url).'/'; if (preg_match($m_feat_url, $get_url[4])) { $post_featured_img = ''; $attachments[$attach_id] = $attach_id; } } // set $get_urls value[6] - parent atta_id foreach ($get_urls as $url_k => $url_v) { if ($get_url_k != $url_k) { $s_get_url = ''; if (preg_match('/-\d{3}x\d{3}\.[a-zA-Z0-9]{3,4}$/', $url_v[4])) { $s_get_url = substr($url_v[4], 0, strrpos($url_v[4], '.') - 8); } else { $s_get_url = substr($url_v[4], 0, strrpos($url_v[4], '.')); } $m_patt_url = '/'.str_replace($rep, $with, $s_get_url).'/'; if (preg_match($m_patt_url, $get_url[4])) { array_push($get_urls[$url_k], $attach_id); } } } $some_data = wp_generate_attachment_metadata($attach_id, $attach_upload['path']); wp_update_attachment_metadata($attach_id, $some_data); // changing href of a tag if ($get_url[1] != '') { $mmb_mp = '/'.str_replace($rep, $with, $get_url[2]).'/'; if (preg_match('/attachment_id/i', $get_url[2])) { $mmb_rp = get_bloginfo('wpurl').'/?attachment_id='.$attach_id; $post_content = preg_replace($mmb_mp, $mmb_rp, $post_content); } } } else { @unlink($tmp_file); return array('error' => "Cannot create attachment file in ".$attach_upload['path']." Please set correct permissions."); } @unlink($tmp_file); } $post_data['post_content'] = $post_content; } if (count($post_atta_img)) { foreach ($post_atta_img as $img) { $file_name = basename($img['src']); if (isset($upload['error']) && !empty($upload['error'])) { return array('error' => $upload['error']); } $tmp_file = download_url($img['src']); if (is_wp_error($tmp_file)) { return array('error' => $tmp_file->get_error_message()); } $attach_upload['url'] = $upload['url'].'/'.$file_name; $attach_upload['path'] = $upload['path'].'/'.$file_name; $renamed = @rename($tmp_file, $attach_upload['path']); if ($renamed === true) { $atta_ext = end(explode('.', $file_name)); $attachment = array( 'post_title' => $file_name, 'post_content' => '', 'post_type' => 'attachment', //'post_parent' => $post_id, 'post_mime_type' => 'image/'.$atta_ext, 'guid' => $attach_upload['url'], ); // Save the data $attach_id = wp_insert_attachment($attachment, $attach_upload['path']); wp_update_attachment_metadata($attach_id, wp_generate_attachment_metadata($attach_id, $attach_upload['path'])); $attachments[$attach_id] = 0; // featured image if ($post_featured_img != '') { $feat_img_url = ''; if (preg_match('/-\d{3}x\d{3}\.[a-zA-Z0-9]{3,4}$/', $post_featured_img)) { $feat_img_url = substr($post_featured_img, 0, strrpos($post_featured_img, '.') - 8); } else { $feat_img_url = substr($post_featured_img, 0, strrpos($post_featured_img, '.')); } $m_feat_url = '/'.str_replace($rep, $with, $feat_img_url).'/'; if (preg_match($m_feat_url, $img['src'])) { $post_featured_img = ''; $attachments[$attach_id] = $attach_id; } } } else { @unlink($tmp_file); return array('error' => "Cannot create attachment file in ".$attach_upload['path']." Please set correct permissions."); } @unlink($tmp_file); } } //Prepare post data and temporarily remove content filters before insert post $user = $this->mmb_get_user_info($args['username']); if ($user && $user->ID) { $post_data['post_author'] = $user->ID; } //remove filter which can brake scripts or html remove_filter('content_save_pre', 'wp_filter_post_kses'); //check for edit post $post_result = 0; if (isset($post_data['mwp_post_edit']) && $post_data['mwp_post_edit']) { if ($post_data['mwp_match_by'] == 'title') { $match_by = "post_title = '".$post_data['post_title']."'"; } else { $match_by = "post_name = '".$post_data['post_name']."'"; } $query = "SELECT ID FROM $wpdb->posts WHERE $match_by AND post_status NOT IN('inherit','auto-draft','draft') LIMIT 1"; $post_result = $wpdb->get_var($query); } if ($post_result) { //update existing post $post_data['ID'] = $post_result; $post_id = wp_update_post($post_data); //check for previous attachments $atta_allimages = & get_children('post_type=attachment&post_parent='.$post_id); if (!empty($atta_allimages)) { foreach ($atta_allimages as $image) { wp_delete_attachment($image->ID); } } } else { if ($post_data['mwp_post_edit'] && $post_data['mwp_force_publish']) { $post_id = wp_insert_post($post_data); } elseif ($post_data['mwp_post_edit'] && !$post_data['mwp_force_publish']) { return array('error' => "Post not found."); } else { $post_id = wp_insert_post($post_data); } } if (count($attachments)) { foreach ($attachments as $atta_id => $featured_id) { $result = wp_update_post( array( 'ID' => $atta_id, 'post_parent' => $post_id, ) ); if ($featured_id > 0) { $new_custom['_thumbnail_id'] = array( $featured_id, ); } } } // featured image if ($post_featured_img != '') { $file_name = basename($post_featured_img); if (isset($upload['error']) && !empty($upload['error'])) { return array('error' => $upload['error']); } $tmp_file = download_url($post_featured_img); if (is_wp_error($tmp_file)) { return array('error' => $tmp_file->get_error_message()); } $attach_upload['url'] = $upload['url'].'/'.$file_name; $attach_upload['path'] = $upload['path'].'/'.$file_name; $renamed = @rename($tmp_file, $attach_upload['path']); if ($renamed === true) { $atta_ext = end(explode('.', $file_name)); $attachment = array( 'post_title' => $file_name, 'post_content' => '', 'post_type' => 'attachment', 'post_parent' => $post_id, 'post_mime_type' => 'image/'.$atta_ext, 'guid' => $attach_upload['url'], ); // Save the data $attach_id = wp_insert_attachment($attachment, $attach_upload['path']); wp_update_attachment_metadata($attach_id, wp_generate_attachment_metadata($attach_id, $attach_upload['path'])); $new_custom['_thumbnail_id'] = array( $attach_id, ); } else { @unlink($tmp_file); return array('error' => "Cannot create attachment file in ".$attach_upload['path']." Please set correct permissions."); } @unlink($tmp_file); } if ($post_id && is_array($post_categories)) { //insert categories $cat_ids = wp_create_categories($post_categories, $post_id); } //get current custom fields $cur_custom = get_post_custom($post_id); //check which values doesnot exists in new custom fields $diff_values = array_diff_key($cur_custom, $new_custom); if (is_array($diff_values)) { foreach ($diff_values as $meta_key => $value) { delete_post_meta($post_id, $meta_key); } } //insert new post meta foreach ($new_custom as $meta_key => $value) { if (strpos($meta_key, '_mmb') === 0 || strpos($meta_key, '_edit') === 0) { continue; } else { update_post_meta($post_id, $meta_key, $value[0]); } } return $post_id; } public function change_status($args) { global $wpdb; $post_id = $args['post_id']; $status = $args['status']; $success = false; if (in_array($status, array('draft', 'publish', 'trash'))) { $edited_status = array( 'ID' => $post_id, 'post_status' => $status, ); $success = wp_update_post($edited_status); } return $success; } /** * Function which gets posts from worker depending on arguments. * If FROM and TO dates are provided and range, range has bigger priority to date FROM. * This means if there are less posts between FROM and TO than range provided, * this function omit date from and returns last range number posts to date TO. * * @param array $args arguments passed to function * * @arg string filter_posts search phrase for post titles * @arg string mwp_get_posts_date_from date in format(Y-m-d H:i:s) when posts are publishes from * @arg string mwp_get_posts_date_to date in format(Y-m-d H:i:s) when posts are publishes to * @arg string mwp_get_posts_range range number of returned posts * @arg string mwp_get_posts_publish on or off * @arg string mwp_get_posts_pending on or off * @arg string mwp_get_posts_private on or off * @arg string mwp_get_posts_future on or off * @arg string mwp_get_posts_draft on or off * @arg string mwp_get_posts_trash on or off * @return array posts related to args */ public function get_posts($args) { global $wpdb; $where = ''; extract($args); if (!empty($filter_posts)) { $where .= " AND (post_title LIKE '%".esc_sql($filter_posts)."%' OR post_content LIKE '%".esc_sql($filter_posts)."%')"; } if (!empty($mwp_get_posts_date_from) && !empty($mwp_get_posts_date_to)) { $where .= " AND post_date BETWEEN '".esc_sql($mwp_get_posts_date_from)."' AND '".esc_sql($mwp_get_posts_date_to)."'"; } else { if (!empty($mwp_get_posts_date_from) && empty($mwp_get_posts_date_to)) { $where .= " AND post_date >= '".esc_sql($mwp_get_posts_date_from)."'"; } else { if (empty($mwp_get_posts_date_from) && !empty($mwp_get_posts_date_to)) { $where .= " AND post_date <= '".esc_sql($mwp_get_posts_date_to)."'"; } } } $post_array = array(); $post_statuses = array('publish', 'pending', 'private', 'future', 'draft', 'trash'); foreach ($args as $checkbox => $checkbox_val) { if ($checkbox_val == "on") { $post_array[] = "'".str_replace("mwp_get_posts_", "", $checkbox)."'"; } } if (!empty($post_array)) { $where .= " AND post_status IN (".implode(",", $post_array).")"; } $limit = ($mwp_get_posts_range) ? ' LIMIT '.esc_sql($mwp_get_posts_range) : ' LIMIT 500'; $sql_query = "$wpdb->posts WHERE post_status!='auto-draft' AND post_status!='inherit' AND post_type='post' ".$where." ORDER BY post_date DESC"; $total = array(); $posts = array(); $posts_info = $wpdb->get_results("SELECT * FROM ".$sql_query.$limit); $user_info = $this->getUsersIDs(); $post_cats = $this->getPostCats(); $post_tags = $this->getPostCats('post_tag'); $total['total_num'] = count($posts_info); foreach ($posts_info as $post_info) { $cats = array(); foreach ($post_cats[$post_info->ID] as $cat_array => $cat_array_val) { $cats[] = array('name' => $cat_array_val); } $tags = array(); if (!empty($post_tags[$post_info->ID])) { foreach ($post_tags[$post_info->ID] as $tag_array => $tag_array_val) { $tags[] = array('name' => $tag_array_val); } } $posts[] = array( 'post_id' => $post_info->ID, 'post_title' => htmlspecialchars($post_info->post_title), 'post_name' => $post_info->post_name, 'post_author' => array('author_id' => $post_info->post_author, 'author_name' => $user_info[$post_info->post_author]), 'post_date' => $post_info->post_date, 'post_modified' => $post_info->post_modified, 'post_status' => $post_info->post_status, 'post_type' => $post_info->post_type, 'guid' => $post_info->guid, 'post_password' => $post_info->post_password, 'ping_status' => $post_info->ping_status, 'comment_status' => $post_info->comment_status, 'comment_count' => $post_info->comment_count, 'cats' => $cats, 'tags' => $tags, ); } return array('posts' => $posts, 'total' => $total); } public function delete_post($args) { if (!empty($args['post_id']) && !empty($args['action'])) { if ($args['action'] == 'delete' || $args['action'] == 'delete_restore') { $action = ($args['action'] == 'delete') ? 'trash' : 'publish'; $edited_status = array( 'ID' => $args['post_id'], 'post_status' => $action, ); $success = wp_update_post($edited_status); } else { if ($args['action'] == 'delete_perm') { $success = wp_delete_post($args['post_id'], true); } } return 'Post deleted.'; } else { return 'No ID...'; } } public function delete_posts($args) { extract($args); if ($deleteaction == 'trash' || $deleteaction == 'draft' || $deleteaction == 'publish') { foreach ($args as $key => $val) { if (!empty($val) && is_numeric($val)) { $edited_status = array( 'ID' => $val, 'post_status' => $deleteaction, ); $success = wp_update_post($edited_status); } } } elseif ($deleteaction == 'delete') { foreach ($args as $key => $val) { if (!empty($val) && is_numeric($val)) { $success = wp_delete_post($val, true); } } } return "Post deleted"; } /** * Function which gets pages from worker depending on arguments. * If FROM and TO dates are provided and range, range has bigger priority to date FROM. * This means if there are less pages between FROM and TO than range provided, * this function omit date from and returns last range number pages to date TO. * * @param array $args arguments passed to function * * @arg string filter_pages search phrase for page titles * @arg string mwp_get_pages_date_from date in format(Y-m-d H:i:s) when pages are publishes from * @arg string mwp_get_pages_date_to date in format(Y-m-d H:i:s) when pages are publishes to * @arg string mwp_get_pages_range range number of returned pages * @arg string mwp_get_pages_publish on or off * @arg string mwp_get_pages_pending on or off * @arg string mwp_get_pages_private on or off * @arg string mwp_get_pages_future on or off * @arg string mwp_get_pages_draft on or off * @arg string mwp_get_pages_trash on or off * @return array pages related to args */ public function get_pages($args) { global $wpdb; $where = ''; extract($args); if (!empty($filter_pages)) { $where .= " AND (post_title LIKE '%".esc_sql($filter_pages)."%' OR post_content LIKE '%".esc_sql($filter_pages)."%')"; } if (!empty($mwp_get_pages_date_from) && !empty($mwp_get_pages_date_to)) { $where .= " AND post_date BETWEEN '".esc_sql($mwp_get_pages_date_from)."' AND '".esc_sql($mwp_get_pages_date_to)."'"; } else { if (!empty($mwp_get_pages_date_from) && empty($mwp_get_pages_date_to)) { $where .= " AND post_date >= '".esc_sql($mwp_get_pages_date_from)."'"; } else { if (empty($mwp_get_pages_date_from) && !empty($mwp_get_pages_date_to)) { $where .= " AND post_date <= '".esc_sql($mwp_get_pages_date_to)."'"; } } } $post_array = array(); $post_statuses = array('publish', 'pending', 'private', 'future', 'draft', 'trash'); foreach ($args as $checkbox => $checkbox_val) { if ($checkbox_val == "on") { $post_array[] = "'".str_replace("mwp_get_pages_", "", $checkbox)."'"; } } if (!empty($post_array)) { $where .= " AND post_status IN (".implode(",", $post_array).")"; } $limit = ($mwp_get_pages_range) ? ' LIMIT '.esc_sql($mwp_get_pages_range) : ' LIMIT 500'; $sql_query = "$wpdb->posts WHERE post_status!='auto-draft' AND post_status!='inherit' AND post_type='page' ".$where.' ORDER BY post_date DESC'; $total = array(); $posts = array(); $posts_info = $wpdb->get_results("SELECT * FROM ".$sql_query.$limit); $user_info = $this->getUsersIDs(); $total['total_num'] = count($posts_info); foreach ($posts_info as $post_info) { $posts[] = array( 'post_id' => $post_info->ID, 'post_title' => htmlspecialchars($post_info->post_title), 'post_name' => $post_info->post_name, 'post_author' => array('author_id' => $post_info->post_author, 'author_name' => $user_info[$post_info->post_author]), 'post_date' => $post_info->post_date, 'post_modified' => $post_info->post_modified, 'post_status' => $post_info->post_status, 'post_type' => $post_info->post_type, 'guid' => $post_info->guid, 'post_password' => $post_info->post_password, 'ping_status' => $post_info->ping_status, 'comment_status' => $post_info->comment_status, 'comment_count' => $post_info->comment_count, ); } return array('posts' => $posts, 'total' => $total); } public function delete_page($args) { global $wpdb; if (!empty($args['post_id']) && !empty($args['action'])) { if ($args['action'] == 'delete') { $delete_query = "UPDATE $wpdb->posts SET post_status = 'trash' WHERE ID = ".$args['post_id']; } else { if ($args['action'] == 'delete_perm') { $delete_query = "DELETE FROM $wpdb->posts WHERE ID = ".$args['post_id']; } else { if ($args['action'] == 'delete_restore') { $delete_query = "UPDATE $wpdb->posts SET post_status = 'publish' WHERE ID = ".$args['post_id']; } } } $wpdb->get_results($delete_query); return 'Page deleted.'; } else { return 'No ID...'; } } public function getPostCats($taxonomy = 'category') { global $wpdb; $cats = $wpdb->get_results( "SELECT p.ID AS post_id, $wpdb->terms.name FROM $wpdb->posts AS p INNER JOIN $wpdb->term_relationships ON ( p.ID = $wpdb->term_relationships.object_id ) INNER JOIN $wpdb->term_taxonomy ON ( $wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id AND $wpdb->term_taxonomy.taxonomy = '".$taxonomy."' ) INNER JOIN $wpdb->terms ON ( $wpdb->term_taxonomy.term_id = $wpdb->terms.term_id )" ); foreach ($cats as $post_val) { $post_cats[$post_val->post_id][] = $post_val->name; } return $post_cats; } }
© 2017 -
ZeroByte.ID
.