Version Description
- Fixed Invalid image path returned - Pull Request #35
- Added dfi_post_type_user_filter to disable metabox in post types.
- Added filter to change metabox title.
- Some minor fixes.
Download this release
Release Info
Developer | ankitpokhrel |
Plugin | Dynamic Featured Image |
Version | 3.3.0 |
Comparing to | |
See all releases |
Version 3.3.0
- css/dashicons.css +760 -0
- css/style-dfi.css +91 -0
- dynamic-featured-image.php +872 -0
- img/spinner.gif +0 -0
- js/script-dfi.js +165 -0
- languages/dynamic-featured-image-bs_BA.mo +0 -0
- languages/dynamic-featured-image-bs_BA.po +69 -0
- languages/dynamic-featured-image-he_IL.mo +0 -0
- languages/dynamic-featured-image-he_IL.po +69 -0
- languages/dynamic-featured-image-hr_HR.mo +0 -0
- languages/dynamic-featured-image-hr_HR.po +69 -0
- languages/dynamic-featured-image-it_IT.mo +0 -0
- languages/dynamic-featured-image-it_IT.po +69 -0
- languages/dynamic-featured-image-ne_NP.mo +0 -0
- languages/dynamic-featured-image-ne_NP.po +69 -0
- languages/dynamic-featured-image-sr_RS.mo +0 -0
- languages/dynamic-featured-image-sr_RS.po +69 -0
- languages/dynamic-featured-image-sv_SE.mo +0 -0
- languages/dynamic-featured-image-sv_SE.po +69 -0
- readme.txt +229 -0
css/dashicons.css
ADDED
@@ -0,0 +1,760 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@font-face {
|
2 |
+
font-family: "dashicons";
|
3 |
+
src: url("fonts/dashicons.eot");
|
4 |
+
}
|
5 |
+
|
6 |
+
@font-face {
|
7 |
+
font-family: "dashicons";
|
8 |
+
src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAEusAA4AAAAAeLwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABRAAAABwAAAAcalaUI0dERUYAAAFgAAAAHgAAACAA/gAET1MvMgAAAYAAAABAAAAAYJAJaKpjbWFwAAABwAAAARMAAAJqa9pcbWdhc3AAAALUAAAACAAAAAgAAAAQZ2x5ZgAAAtwAAEFRAABllDwCzExoZWFkAABEMAAAAC4AAAA2BQeF9GhoZWEAAERgAAAAGgAAACQPoge7aG10eAAARHwAAADdAAABxo31U7Fsb2NhAABFXAAAAZsAAAGkDb8oFm1heHAAAEb4AAAAHwAAACABJACdbmFtZQAARxgAAAFzAAADBkirZYVwb3N0AABIjAAAAxYAAAg09k2zcHdlYmYAAEukAAAABgAAAAbraFLmAAAAAQAAAADMPaLPAAAAAM8MVWwAAAAAzwyb53jaY2BkYGDgA2IJBhBgYmAEwgtAzALmMQAADToBAwAAeNpjYGavYJzAwMrAwirCsoGBgWEahGbaw2DEFAHkA6Wwg1DvcD8GBwWGL+XsF0B8IKkBpBiRlCgwMAIA/wkJpHja3ZA/S8NQFMXva6qQmtxE1CHg8EA6ZDI4iNliRUyXIihIdGj8g1JEsFNxEATx+/hlXHSI6OR43ntOVmJIxcHZyQP3XA4cfsMhIosmt0iichInVRJ1boq0+j1KaIpYtuSy7LfHsDGHAEsIEWEVMTawiRQZDjHAFe6UULYKVKhilaiOtnWgQx3rrumaPZOZ3AzMqCyJJH3zCD4WINGueCtYQ1LxtrCDHMcY4kaRspSvpIpqntC+ljrSiUnNds07Mpdl+WwVRXH/OO/NejNey2t6Fn/ymD/4nQ1rfuNXfuEnfuAD3udd7nHKHV53b91rd+QO3XPnwjlzTp3c6TvZZIe/lJimH6hoVNb4XaB/ry8O5HHCAAABAAH//wAPeNqdvQlgFEX2P97VPd09k3syV66ZZO4ck2tOIMkkQLjDYbiiCHIMd8AogiAJKkZE5YioKMqiIireUZH1yLJeq+ONbMTVRRdXZVn06667fF1IMuX/veqZkCD63d+fSXdXV1dX1/ne5x1VcCIH/8hpvosTOInTcClcOsdVaq1aQWfVmbTEmky0OnK65zH6RPQxuo1Meyz6GN8Vqye3cj/R7p8IjX3M/UQ8lOd+4gg34F8lx/FchIvJL0k9kGeA4zQkFCZGk4WYLEIwpCGypM8nRr2cxssSnCx8mISCoTAfCnoh3hsS98dqdmavvWNY6YNTS6pnN64YFnskVvOM2bzMbM4dtdg4wu6fUiGPXXLFFX6bL7XBn2eeCo+mmoUN/Os781LtLsumsqw8aypJiT3Cv/4MezrNnBscm1Fp919xxZKxcsVkv61eu3JkLsuTI8TDRaU6Wc1lQptYvUaDVi+VEKK121wBrT9ITgvtjWvWNEZpShSusnpNY6y+cQ1NIafXNPJdjWug2gL3H8jjU+kotGUay8cka4hbQwI+kUCz4iHV7VoWWxdbt4z/gXREY/v5pt4pQgFtUW3YtYy/icXTlug9sUdjj/PTaTo5TVMg3yi3U26Wh3FZnIurhnyNGekkjbhJLQn63S5bOiGuIIQLNOxekomkNxmDMjFK6UQqcLsyakmYmFisV/p+w4ZdjX9dRqSGhtra2mdrJ9KnzEMb776WLOz7ljfm59ua8mPf4qWM7LHgA7r7WuUVOr+urvZZqQtj7m4caiHixAbIoK6ugT617K+Nuzb0zoQMLskv4C2xU+z6FrmPPdiwgSzaAK+Y6bzaZ+tqOU4F4yMCdWrmdFwuV4RjhGj9rhLitsp2mwStb/RZvUHOa9RLNpdftGrZNejzmrRWaND+W1FfVfTIjbTlxkeKqqqKhJNFVbG6wzt2HN4hHCSn4bJjiSmXdkObKmGhne8qqopGq4pi9fAC/xxGH1b1nliC74jkLJWX0r3shuP7x4QAPcph94lWg1Xr45uEk70HhIK+rCg5Lep7votERT32/ynuhPS1dJJTQ50cOOrdJIijXgwROY3YrbJkc7v8tVDToEZ5IhMxn3a9TOpzLnW5M/venCXceLX323m0tdXT6vF4WmsEidRn47Mc2iXlKUl1btesd1v61k/zjoBEJW2eVtI+9zTdB48y4VEOfRnmX5R7U4pJfZyBs0LZJZWbYIuFiCszFHSYNLxRwonGxg/MRql9Af3+mthX44/cMZ7f4vcvmENUa+hfSA6xFA3p2W2ZZrZYzNMsZuGnBX5/7KrxdxwZx1uuIZkL5gzx0L/QEyR/9U+xfLM5npATiId4ZLW0D+Z/CTdG6V279VzPEh92bQkxYEfWEDv2ZhU2DEy9xF0A78yJlKzLA7K6qqjnO+xrUV9U1ZcVwWDEXGzuD5DTF4jrUHViuHcKdrq5qrFqp8FsNuyEAO/CEN07MC72GYYYeeQ6uL3yaLkJepQj0I0uCaeeSYbmVEFTEnfIGMTZpdIf5Ft/O+m1URPqdf7f/kBPBunHwXcCxPQDRNZPGKWT9h6M3XjQrxs1YdSrkw/+QP8efCdISiHBv1hk/Wsw3vQw3rpgvGVxFfBtW5mqnLjCgs8L4yRNFJxwNZM0ld1WxpdD44SJT2W89KKgJ1srCJJUUrsovHhzWRpRabNKAhtIxlV/bEsPPLTvrwsXffnUbW73VR9do/K5asaNq9HpQssXTChd89hsOXvM8ClD6d8Objqy4qyY7rZkmay2lOSzLR9sVGh4RFZDedxcOdTeLslQb0k2WAMut+wOudx2rS8YcodMwVDAajCaQibZaPJx3qDfZZP0svqznNA9R+5pWky7Fzfd031PKOuzT01DIWZ6M/GwmKGmT/u8Zzo7z3QKBctnwBNI8llWCJ40LSZFC2dDTDA3HjN7IR3eiWlZuaKyTb4IaCz0CmfMBC6icguiYHUrwzvTGwywMki1r4waNbeFvr35ZfrxTtodEXLHVK6aS/jylZMmrZwkl71CKf1pbkugjj6fT7dEBXIrqV01d1Ts+KQhIUiB3yKFcjOMYy3OaOJVmeQyGJ+S7NMQXzDTobM53CELjNFgyK4h9jRBOHkP0c5/PPzSst/8YDtJ99K9h7NeI6VP3kv/2R9L5pA5hzPXH/yHtG9Dy+uNc9+4k7aQjv0kc09PezyCdNCWDZ/fP5tDWhmF+ipzKRtmc9HPZxNXoDJJqgKHO6hi9TZ6CVCqAPzYfNnM5stamC8h0kj869fT9+hT9L316/mH1uxbs2YfjF9Pz2biEQqQtGHiviw4C+P2bNu2B47jmGhNbH8kEoHypHJRmNvNMC7SgXqboA/yYYSUwBgJcVVcLcz2CReY71atVQdF8sWPBGUPQTmd8GzQPTxXDbiXm6EODlaHY0VVPQ5GcolH+etdUWyGGR7FBuObkGH2xQbEdA1OQTqQbMRJiOpTiPBE2T+aYmapIhHg6Z5EGB7Eg1Bv5AcRaR/DCJbBKMEaRwnuEEwMmCUwFQAxnIwjBtoNAWFfT08k8Yf4oe94Aj8IBY1r+p4a8Bh5CQd9fhi+JUMr5yMv0dl1gCUcrHeDfsFpNLnsNpXscthtcjAknIwZy6IVdwgnhZN9wxurgIpF+NKWLH9RF3119mz6aldhIKtFOEmKew+qVldhW0RY1WJ/+Mudz8sv7t79ovz8nQrPk0fKawANahHBAEhDxmcF/IbsTJZ2bTWbaWPvAVXJAcvU2N/47G2xk2Pkpq2AsehFfUPFYwfMpG8Hn7Ut9rduDnAl/IN6HIaRYueaYOYu41ogKoMvI44CVRrhMzItBEZumMAYNmZm8DiMXRAbZJjRJUt2mzvo8MHEc0kGPSBIo8kITAMwT5gg4WUpXEAoJWM+0WlIWOWG57yGuPiAn+jwdfnwwhd/pB/Sl+iHP764EMKkkowmlT++2PsmWUkm/rBt2w/0ObqDPochUkM/XKpP0xmun2bVrSTzP7iHmJr9s03GHFHw1hYU0B8MLrVan67Xb5xmX2p36CE4rYW8QERBbdTISXM+7jlGNrzzv0LxN6vbFi8WRimfWnheEcSZgz46kRWkt0gIqHlfOUkiD7+2coE8Ybx5eGGRWpy5qfp4YyP/PVGrBD7kJ8kSL5BAiKjp4Vge/6Kc3dh43dDH/vhnukXY0XtyAbnp2+fou7HtxRZOjI/ZZhhRMpfMZiyHc5EAxR50eMS1PZtVDX3HAdewg2+K7Zebz5wR18Kc6D53AE2cTjpkUU4DbFECufndZcAXM0PuNJUJKWEo6Px5lDBjrPfJcdkfPPDg/Of3rPBm5Hz12F3z5gtPXyiWP7rx0lpXxnYy/KKvyzcdeP/sdX/sa2raeaFIHF5iP5ZUAfJK4TKwjjrA21YChIQdUEENsQIzi+3vnUI8qs7eKarO2P7YfqEAKYbc3Dsltl88BhVsQQKAV3Ia8+YH4FQX8kCbZD4nFfgYCeinA1oSj1c1NF50M+1GSaGRb2pcgwdSgu4IXMW128a/QLuJZ00jOY3xtAWOFCAG/XEwZRiPw+9qgN5qoaWzOTNXgPXCrznhI6Lg01ntgo8kDpimGh4Aa1HVmTNV5MVoBMh0JBoBPJQ4IZE/rfRrVdHZV3gpXFQVwc+eOwDXnuzLEtppC21h+EepfwRpEHEGAY5BVQtcGQyJi9o0rLJy4w/yL6smFVa9T794//3bxk3sa82Mtt/GgkOk3VGptiTa+z3cE9v7dn5VtK/9uidYWKgqDAyQB9KZRDA8UVO9ZE8QV6gfl+Bu/rDs63/mtajyYd57LbzpSynNP26c/+y/4Cz+p2cz36UwuL1ETDKYy4Y1Vii8rWjiML89W5JUGUPqlrQsHulLlpvjr/kxi7Ov4HQQehjjo93qnMYpzbPnjCxmfLGI7/KMmT59jNGYUrR48nCIMSTGSpTxRR1Di+eV3wd8jisIZrgKpAzxGHF5wmHP2ffwTFyAljvoDtJw6hQ9cEqqC3t6F5TW15eqfuMJR3u+O6U8wG9I8I2d/XKTHeafD3guB7TTwuvTeKCdZbw/zGfGMZjqvGuCy0rxq5BL7iHD3r7O77/ubfomXUTfVMJya1NTaxOfM/ASk9jl94y3yM0jVz360l9fenTVyEQgZm9iCQb8xTayS0sVvgMydgc5zfhnsiJNJX7SPuSRyAuBCukTISb7KjKY8o4J37IHUAQDISwQMtgN9oA94AM8Ie2DydXXqmoAlg1MOyLqga9HehxCe5TdR6Os7TjALYcBR52jhZCnNkENIeAOMNjEKKJ8+EyFQv9AyqDdshonyJkz0j4YFycRMDAeyrBDC8tfhPyzIP+OgbR2YO7O83LGmQYkqZ7vgmw7zstWyfT/zNN9Xp6yGkobq5fVv5gljNOBeSq5wQlzEI/1ZeFr0P4dyvxHSCiuFdfiWxoe74BQrqUr6CqO8F3w7JiqU3kmHsNYJKt8U/yZPvGeqMdYgGe3k63sWZd4DERm9gwgGsRi+tj+X30mKzhYHgZtkM/wpo8hTsbPtNa4tKhcDVYDwqQagsNeHBBm/aC1w1k5YCZ6zr5CPDBQSQec+loVwMd3KVeCrdER5ZvwT6rr2QzsMNzUFI6wcw/KiYNPPauE9r7WCCrKEge2I9R+geQUH2Oj0ETsJGQS79sU+9smemTTt+Jjc2Imclsbyu1/4v4knZHOKFwM5I1zmCjgz3QAjxFO3k9sR1pbj9Av6Cv0iyOt3WQpuTf2knTmXFTrEWK7/2Oy9Ehvs6Cm13JMHxBlslw6k5nOx1o8QEtZQ0wawgBL4dFrrz1K/wRw5U8YEn6PYx+mGPA0ZBJRRbofmIQUstf6fPgoOjj5ID6qwXppiEgE+BZxEp1IdE5RR5zCSdod209+cwUOlBayO7afdp8iH9HXZlIP9cykr5GP5ObY/gnUG1uKufJ3kQ8mkLW0ZBjdHYudOgWQKDKMG8Cz8FvsS4AKWf7EwzfRSAvy/SvoAr7p59lhOTGejT+ce1ZSRAigoiykSFDCFBjJ0KesPVE2bubSFLnQmMGQJg7EMNHF5U+D3oTKAiNKh8QovrHp0KFNVucy4LEvaQ7cOPuGG166IZcest+YKcgFz1hIPczg39PTh9TLer8Sj912b+zP7ZfObm+fHayERG9kqtZDEiSCZD/ZLxVKRYyOKirGkAb1e7o/08foHR+QZvrYZ2QmaX6f3sGv+YCsoI+y2w/oHWTGZ/RR7v8cD1xBmGSUkYI0kmG80IAgI0nGiU2bTtB/wvmCA6F3+aYT/WlAniEdcV2aCeZuKZTbN5g7Mt1PgdEgaFnDaYk7TOJtaDTJMOn6pdKiCPLDKPBl4nG4y2HOlrsdqoa4Rq8I9XvE8/CpUw/jIGT4qjtW/0nmOA9OWM+4zE8GY0bEVU6unps4uEw1ZCDGQwrTjz3Ckg+6GdBGPgYRdQBbYq8ZpLo3SmpqSnpOl9SwgJhSUtPznaqh9wA5zVghKeDV5oLg0IlFfa1DGl1GQoiQmml1V9nKJxTlifwrkZqSvuukOiWPmpI3lDxqSnqnqRpolPFV2p3kWHLZqqlDEaNDpfLzVelFrjKrCYFIrAJG63UlNSCwagZgKhNDC25GM1FG50IgkwcGyOiZcUSAsjf/X4QZzkQQCecogwTi2t4DP/xqKFJVdO4tqY6hgipkS78WGthX5+rBOc/XgCTKBl3DDwgrSBc/ip8+23uBYg2siiQq30V21Xf8XJjjFJkcy3EY5H8DlzUYwyAThXEAA8WEHwX43N13HPUNQHS6AIejDhqYMOkQCjCIVwb6WtizWD2gHXzKcYpuXJGZk+BLWVweyh0wEAM2zmDXJD4qsguqTviu17fffZL+81kiSdNoCjD9dqEAKCkQYpoCWP6keOzmXUfo3z+nT/Jf9WymKcJJwEWxehBHgKv+wvc08EnObvAaSbx2OnYREK5VvU7qiPQs/efJu7f3FGFumCtjChH8Gn2STP2cmI7sInJfK5JOVSecoR36WhNtqWJteRj6NJnZSgBAE4PCxvHstGpQgSVaiXyYdkPu3Sif9p7gu+hevguZMN0LbTZH1RBFYTWK8mqUdMTWRHoYbInXCfsKMZOSf5znA3aEati1gkaAjoL3WA5efBN65SRtQYSnfBD5An4MBOMc1OSh3o6xc+AxUe6InATlNzF7jOwEiu924c+uhT7yoppCennyZHoqFPLPn9fWvhWr/t5LBzffInzxEl3y0ur2rds2ts2fFwjBt14jr9GjkyfeslnJ+03IWx3POxiCnw/ztMkS/oCpiK4MYoDUB196D5HR1vbW+fP9oRA9NVn4Aj4wcTIppmEaJp5QYN78to3btravfonczWQUaP6ouBbocAYbwXpJ1qIyRVuG2vYCo4opl1w2ce2jN0S83hseRVob288mgrj2lqO22D2eSF6eUGY7egvQ2Gw2QdjcUOaoul9DacVJqFB3ps5HOgrojFgTs9MRv/JNQnuCuEcxQDxFVSAGtPS1tjB6JxxTxJAuLAUMN3bB8dsyQNSIy0bR8/SS9gvLkUwTiSa5+HUwCejZjKpFoQBVBXAZrELF6dXXKhREFMG5RbnGcQeiIvEYk/4saNpg3/QHQ3gCGTnMOIxefP/Gg+/f1pd12/udG6UdSyrLvL+/8uFTwjdpb96E8vKNb2hz8pbs0C1Ye+rhCta2UXKa5WsG2j0SYpjAmyYxA0FYzPSGVbWkTLKlqdKJRXTE+ZSw8b237rl1/jhtppTVOKvjrujg2y/vueOqJeNDqaliZk1985V3Dr7l05iuXTwWalq+vCk3L85xBt31PR+XgtXmqQ2XjigbdHeCqfWBdp/DGTomrdb9XDfshkkpsuFh1/oMeJzrLY7Jy8YCwWRRbEXYnIN7JIJTtDekysn3ROCfJ7/3RL7HIzShLA3D9+GJoXoAC/UhnNFM9xt/E1K2AUKl3W2QPB9fj/FxEZzvWpUVqUHwUBPJYvOG6AmRuqRDnIcbgjM+U1ZUkYmfnEZkSSEA8Z/kcLsyQkGHSghmuF0FspRhMhaoDt3qWipkq23lYVWNtdLuMBlVwoiKSq/f76u0evjSgqws/T307o3337+M5JJc+6JFi+kXixYvXkRsUtmtdN19glHKLShRlVorEVWWVowQBKPBZa+0Vgu1ZQUW/VT/9Q+Qt+9fNmFCLGcxsS6Gf/QvixcjTUQCLe0bIP/2czAhcW1H6S62P6pcVA1IXvBQ1IFMDIN5BrIQjMe1g+VoRbLyaZFRAJqz92sWTwsne76LAo1GUblbyQUmPZDsSCJTPEgHTiVg+FK/3TUd6HY+4/clCkVRxDsfQGyvUbSWQZsQa2JqD5TqVJ1IRHq+Q2Ki3X5gO72eeDKmz59O5yJQ7GtFiAjcFv8AhxRFAF3OuPLKGSVDh9JH4yBzsACn7h/HWOeMuD7OCsiRQ5QBxUIZWjFKmwIwyZ2MkZ07ZDWqlFDt2NdKPDi5jqNeEHlO4sCHUG9Ip0e40N2KMygaXdOI6khARKic5BLYnfWjpPA1FBJRGaA/B+AdwsntRHj5cui3rstfpjH6Vxp7+fLLXyaCcFKJ2Q5tXr89EQvkClIzWjOgnslK7RLtKqtZOfAPi4mwFnuRYSOQ7T3iMakOeG0etgoUxxtSeGIAkbzbZRW0QAJRd2+XfV6DXpZKQComb3549Vqff9X0RatX0di6zSv8vjlLdt7/J593+X4Qt7+LLHh2w4SGXE36zquemDQ5FiPWAuv4KaP//MCskhKkueQ9GNMq+C7KQnbik60hH7GHrOKbH9OT3eHY7PBRkvVxmH9QXNvXCoOwHcdXB5sHdayGOiaR2NHe6kLNgR4tTvwvhSOM3USQBXRdMCjqFZUXQKvzA0x/B9/OYX2Hel0/0JLF3HKm15JNwOhlQD4GqxCwB0KM7wdQkW5XGL8JcQBrQLxNJwaWFBoWnivPDMygnkgD4qjLbTD6+rsB0piwDk2jri8sS8nkSR4WeP0TviFpBk1SRlq13WzUZhtyS7MMhixTSqokpySXLyDbMdX1TmftpFBhrk5vGOapyM/3ZZn0huJcS3aut35KcUlOdmVhtul6pQFIx2KfMymzmP47Gok9OVpV4dflmEx5VjgkISXFFNQlJyWnZKWnZ2hTKyPDXo/QT8uycwqrM0W5LD9rREqKuSA9XS2njjdarVWFWVkSr8nLq48ADXaQDukz6Dc9QxjnjAw8/3PDQ3+c8HxNyR1hw9O33Lrs5TvGao2v33bdtKmC81zk7RD5GkbyD18xMWBNu4Zkjnrdt/tdGtt84JMJ46+/YmKw4PxI7hfo6XlWFZztTJHcrlzFY4oWLnH8N3nAwD2ualBsM3j9/5OHtA8gSzvyyfj1/DzEn+WhUyg6iWtErXF9I4JjhMVoIYCjG20K2OUo3SiWVKTkDIQn9HUZnIVzccO4USBjN3FzUFsCHDPkUsY1yPfQSwFJGbABfyhIfIJd8IV8Ou2gsYsBuxzoH96iHWYIZCQmYkoIU2NJFQ57jss+adaMEcNtti3tTWMLil2Oi0vLKyr7nlpyfNnxxcO+OfLpwiFDLHnDvXl5Q4JtU6bXm/PNeTV06lNBkyZdrSGbFtTZCgryw0toGnp+RVCUk7qS1dqL3E7nmPrL7tyTMy1Jox4abFlaXR1jJpWHybOx/WWexmq7PUWlsTt9kxyOMw/rMkvK9PpFu4eX+nOyt5hMZb6srNhLIIIVRFBCQ3wU95MRWasbGHaUdU5ZW0S0blHHvI5MTsFUREKCGNLyTW1f0pvbgMF1tNGbv+x7i2/qPdBGrv6yjbaoOtu+JFe3SfvwSRv2At73nWXqX/ZaPCEHHCyBlQfy8Nx+bpvQrdbGRwHDyqh7H3xc+Jk1ILDxotyjVlrahzpWgLED/jrOiwbBOCWCQxxv0FIH3DFFkZCj/f9AoIUBjFwNOHNTf2y3ckWcdhrlG8DKRi4HOQKiAyaDaPUWwRsWAlo2paJbli67M5o9fMF90QcWjMiB2Xks9oft9+7ewtfEnq+5ev3sYUNnXXN1TQwVEKr+PuqfXzqo5MAf44eDjn3RRJGwTOS0+HfGb5JQy4R8Smd1W3ViySG6ACZg13Kyt4S+eidIyqgq8txDTpzz+4A+EoFX2NEnSMOsmQnrjuIxZ4Ko0ACfOSLYk9EemEvgT3WUSCB7q19ngprQXlV0T7B3SujeBHbGlotEDr8SRcNJBG0ckQhObybw9RrQa6r2f74Pxz2nhHFMUZECYngKXhUb6cBypgPvLx1QzrgKz/kzbR96EQnMluPTDi4kf+O951D6vSHARH3HYQicK9uwYnxSXIyFKh42rFgp5P/EbmCmjtMJvz2pE8aAm/kwmIleJpKtnHfVEH+IIBtFV8lygjSIMF9Ur3jnypqa2NLqp6ovhwB/V/XMGTWU5zeazUfNJcXm2AYMTJfEy6tnds+sji2tqVnJgjX8zpqa3igknGY5aoZ0lmmQENtFy3BGHbNd/fL8Ghn3l2EkVstIbWI2oTZZjofF866/9kyqQ5iNtBlRWV9WRDgZiaD3DlwBdPefLxQnqyORHkckglb/CHOGOc0C0f7TheLQf5bxj5WMMysEOY11shVJNwhAVpCAtHqg11jRMqKQeuHkoYWRUdYVU2Cub98xYvxDDwNQ/fKhh8aF76A7+KZpKy0jIwvEA83N779yU3iBLxpdeOOugyT53nt/s5ueef7ujcui0VAkfOPvPljejBg9MoCHoVYJaYCFsyn8UEQrmT2A7rjOAazRHr/CmG5B9hiJIhaPCif7WpHIMGMOsLoC2i3VRSKKvW8v3ZsgO8oEYnKLmllFmn/p++gjR3z4ffvA7/v6HTCAzyC5Y35KUbTBo/CB5A6icQog046wb/1CARCH9/PxdBhjNczTxmG3qSQQCowqn9dB7NjuoQQ/tcnuAaASuLEQV1WwGJu0r4seOtQvJWw/REbQ0buzjCNq9Pq8PF9TS90NO9aOHWPOnRbKSL891+8rz8vNzZ0rFJNWMvLlc4LHy2RFyZBit7ckL8fhNOiGXjd+2LB5I0pLawpNRjt9N6fc683JqSjPzlV081H+gPQn0cTVc5O4i7nZgJFhTEGZDQqotcfZfcBusrvtsj1kDwBcMPni2CCd+BSlmdcku9wKzIBBB0I6kX1uHHpuyWnwJZoAsjGIbrtBARtSWaHNWji66YbRVZo5maGhCz7ZOntx1dfDlsyefcPsZZc++8yqcChXfb3a5AjXzZzdgEjDMbXCriFO+qnGXtp7InOxgU9WpfBp5Nmr3dl5FstIetmT/O+EV5ZUF+QLsiynTsuZPLKloHxKWWlPzyOP9ETOnu0pckz02zXhijF2p+ui1JTkKs/IyMTiIWRcsEa0pRQlVVU9KKTryot1mfQMIYTfb8rylmFbKXKpYsfIA+pi44LcUK6a8W30Epdkdy2vOIkLbsVHnPeh6c1JQiY57htuSldcw0OiBliTTkNE5iReWvvxowkf8YZ9w/PL0Ee8pwl1y1HmvM68hI7Xjb9FcRG/9dtRd6ODeK1wFtUFCCxRiS4USN8zj/Gy/OH7Eg7jDY8erfXs2oB0SvE3Yvgx9taob29VnMVvGV+3iyWdrOQBE6ADPhqvM+lg/DgV8BJab8qg1mFuNFLRoNbPuxwFMOANGQmbgOo8jaMm7kvcH5G49pt41qqOd54zavH/YYyJPq4w0VnK3QRyEfqGjGF3qm+VSMVsQTr+TLIfTBjNHqR/Ez5m8VsVgwL7oxnkrdh+VDFN/2Rg9ImESjXh+8DoiRYlcTtgrTBI6sGQNo2U8QibPFO7Pz1OV0797i8/vRcVj/U4ULGSR8xmPrfvuF1ty1crNKGDybtxmZ4wFwrlUPy+EodUF2UasWj8+3yTtI/Z8EXk6VoYGhgXRbwrfENuZx2HrgCQtoMQxusQ66M9kUfDnUUEgh8MhcUQ6gB4VYExA52HVLdCw373wJYrVG59odmZcaPZfGOG01yod6uu2PJA7GWS98479Ot3ZPUD9LsHt52dL1gzneZiw1Pz5j1lKDY7M63C/LPbHiT6yzDVOySvX28hHeVSQDpE70zdAPthwrhFnFrRKWqdok7Ur64et+PwjnHVISa7kxFkLM2K7WauJ48/yT/FN1pXj16yY8eS0aut5EomwdO1N/a1vvsu6hC2xlzn5Bvk70jrUR9UAiMRpXlmZWAaZiiB1e/CKAJXO3og2LWOfmREArYyEZ51RAHoRHunoPsX6Vjd90NEKIDrVPQRjQh3Prwa7Z0dCx9du3Ll2kcXxq3R3bQbDSuqzjWNU1fDDEFI5pm6ek1sBgYj+DY8ifVGrYG6uoCVpiR05DCmkpk1DX3KXMyDwm6wIxgLMD+yhC4EEJoW7RnoboI1OA3IOdqzORoV9b1ThKPMOyrSeyCCpenL4rsgKO3rPRCNKoYZ4J2kgzlgxbxQH+RlgEtSWJDZDNg8rmM+ewUwauJqYYZjYbgR+TxFsVBQVURTiqpq3OR0EX87k2uqivqOs6UfBUVV4nNoGigehhwcGgbdNvBRbD+cmQ8COS03g2wQl24HZw6iFsGWxHU9ypoeRT3ZpXjvsblKGmgY2j2MOrg4r09nK33Oy8sJZW9e09jzHb4p6hvX9B5A32TFI7gvC84HkeQpdqSodBTGkJN5ESh0KeSU7PHVLk4X82dBKcYtGvWyGBQfY4pBDR1/cTuEWjfOIgc1qFCEEB2v0ZCDFwsF7N5mP7EAAgtO2G3sFQjUQ5SiQ3yLe5uN3Xy21gDtQFaifAuYqwk/TeJQIGQwClpiVLTvITeWhMhqX1FPLnnYADND7CgdARB7UVVTODtPLNpKf4ux5MHCiqxc+op0/6UTtD1f8g843WiA1+prvRr+es/4cFOSJlnbM0J1Sew55ZE81pxEBcV2p8imSEuQtnPOgbMZUTvwteC5iAShP5/gy2pSGoTxV+ujC/x14YjpaNrqh1cHSulRycTIbO+tisjRrhibVe/lzgpiF1XNy4qtdNUP2WVzTl29emrwktzYP8RjjEDHrmWXHxSfNhzDGhgHbzG7OnaoMY0MsAIoqCqOrQCGaK3BUP8vYTtIsB3RhYvk+n+hAUkDwRC8izaGxC/xBWmG3bRknd1gc+Q7C4uLL7m0pKjQabXajFlakpJMfSRJIxRX+qprh48Zfdddo8cMr632VdKDbN1TrBjevcamvOuomHlZhQPfzc/OSYd3yfv0R16Ov1w38a67Jtaxl8Ut/nWjTf58h82QnaGT9TpNZka20WqzOgp53lJMPBmqcKWvsCTXklpQkGrJLSn0VcYOskVZj/mvGZ0VfzMjSadLysA38x1FdnyTdvNp8VdzMwoKMnLZq2yuKfw+Be0MQBjSVHIm8EMCgi+aLVSyFaTDlBk33nPdzWEjmU/q0RUw2uMQnqbfP0KPqDqBIJTwaa7a5vEklVQYiBdo1P2xw6qGirtxDi4jWnmRdAgXLgJigpGeRCSVvcBp9BWEAC+igqqM1EDfoJU0ZFSZ4jMjGJLkoLxoQjOZ0XmaPvY6PUxjFYXcT9GrX3a4LeWV1z4yZcaEJu8t5OYvkz65+/7mDctLrl4uZbZMSi+4nX5K/3W49SHxN/y2y+XUnHfaVSWC74E5kWmPvptc6r7rk6tyattHJzO7Irklbg/JRy01EhlZn2nyMkrD6E5AGw8Bjz3w1Hry7Zd8ksBrZrS2zogdt/BhFnhNVq+f2XeVJHxEf5JI61Pr3aR8/VOtH8xUfBsU/vkPkFtykSM4rf4kwnmIXetNITlEtPp5zgE3KpMxU+znXkaxm/hXfQh1eYDO+/QIuYWE/3FD7Djx76ff0HVHd5KM5cuuiP29qa2ts601epTcTS4m9veuoEeu/5a+Rdd/+EdyPTE9RI+0LFlC/7Xjmpkz1q+fMfOauH1d4a2OgZ60Wh9gfbY0zMU8sQG196+9sIrbnT6fky45nP8P7+jrRqzd9uhHH8V4px/IgM/Z0+Lw880/3FNV9SfNI3c/+0PsDr9D7HD6FN88LireBd/SY721Pp2VfUMb/4bWJ0wizv910hNVjXdd1vrIWz/+GOU/I3kHR43ifkr+w3NH6NcJGy3Dahq2ckLRl8KM5/rt3LRbPNbXGqUpgppZR1Gg68tCVtmqUOwznEQ00NdvSs8DR8wDWXoIN5ZrwlFpEXzeMM+sAZIoWYg3TNxo/8KwL3Ej6IIsgUnHViQRCCAjcQsuHK2S02uUBfTYduuCQDqCgl0WHRXji7xNFabUjCtG1rfQxlTbxVdebEtNm3vlXGEJ3AwZqtxdNq7NGT5404evDd2gbWuY0BZ7evnwlsDI4UvTl1fs6yxyJQuVnQ9VLk9fOnxk4PKRK1LTXVJm4azZE8rHLltbMXbWrL2hzYsWbQ7VTJpU0x/qbSBPbXh2/mcv0MZAfb1QcXs3vTF/aBlZsfsFKVn7wm56e9nQfLLukx2Z6RIbExO5g/LV0nLmi24iuAJNg2odwtY1Oh0mi8YkndpKH9o2LTiP+mL/Mk+1rDWbVeP+RjvJ7h+zvW5fnl8XSh4miE3b6OPbGq9fFFtBi83mdbh0+PhtQttlSbmmEuMQ3cjUCQLQnbvJEOkO6QmumBvGLPppApDlsCqEINxkITzSY1UZ9kpY1jF6naD5JqMwU89nOfKSzS5Tw/hZDVOy3bMWzM63ZpRe9vQVq2nsx887fWZDhmfMzMUrr7r8KcvcWY1zBZKSM//SaXNkXtojW4oqQoEhJm2Wd+KYkWnGjIxJI8ceo7G+k2PG12XNfmLViJ237bzp2khjcWpscX1KytgZC235wwvMU+dMzFBshGQ7w1aoieBIXLeks6IjiZV0KEIVCHLobIkOkQDseie/jfoimoIoUtHfkxKWRyrQXStXDpLlSOYnN0jKIgpmgCEu9odI0FFL0givLHg9F++8QOh8YatLEYVoinIlbzjJ6I4Oy+zfOWs7a8PUqETzTYOvpORzkrWXFDGR65O99KTQwrSEw4btiV/pUefTo0bVvUrvddbWhp+ZH48uPu+q6DMV385Mto4Xbc8+5nKOSy69iI0sxICaGz/qXRGYlBAAQASIBcRJ+yJnX4lsOrF56WWXLd18YlPvlOgivrVTONnZyi+i3REA+r0HYNLDo+JiSBaN7tvcSbuirZ2b90XJw5e0R6PtnEiC3BTpHlnL/DOdUIZKtp48H8T2Whj55UR2y8Sm8CFsR7ctARRF2a0L+YgpJLjt5FAw+Pb6EyfWvx0MRltPfNNGFjxy6tuHHzp16pHWp58+80wnEa47HNvS0/tu28e9W3rE90580wpJ32795kTr26FgNJZ06hFI/NDD30aebmMYcuXx8tiLx3jDl77Y745xMLYG2ouT4F4LVDSh6XQBBfPg2lFd3MdcDLGL0w342OSWmVNZEcSIyjMh5BZN2nRijSqqNxAoLDtpNy7SgQA5vXNnz07iicbqpTqmG8uiKaoNuKxz504yhz1T3Onx6Nmp6Kjh2k08O3d6d6KAgk+YAnPnTtqyE/4RT89ORW8WXyeV8E81nLd6Azu/wEJEg5XxPhIYgEgN4rF+YN+o+L3G6pnkQ7KCI+AyIgjza6Bogb3P+h4iep/8NGtBNeLM6gVZnzJZGnjAcLb2D+cukyN9WmgjEMS04rrBExWaQlHENEVxHuN85gbmISl5KO/GTfmozUSjBKpfoqpn3saXFDIQTRAGhQczu0cdW/3OHERMUBBc8n72Fb4LuiEi6vuyRH0UpblzPmDop1nFTWK6R4VIoO6xwBEkDneQc6bxRpNUpkIaCT+LSubFYJnoDgvEokoT0kmZCkho8/bE6rjt2xOr4/pG0k2PjSe3Es5allnst9dXBlwV+qYy77PhsfNumlScQiTawudW1oyoqkxO0rpGCBvzyy0ZskpMV6tlQ7hqSGmSW6hkeW0flH+P+9A/yZDk0Lbdu3yi0VVsEbWjLmoaok/VlvvHjfLSo0/M2DSttshaaCr2ja0m71QsmHHp6It8I3KzsnwXVw+ps908eP2PNYFazq1bj7s1K2G7rYzAcNLwfCH/N+Zt0q8BKll/eN26w8K7bFmaGiKUxe4Dlq8X8dPWHf7x8LreKagRY99dyb0ri7IIdMLL+FQm4lcHqjpDjFGFhTLg+7KJCKYwcaiYYBew5xLiDLnE6bd9cKnxjjP0OD102y1vevfZ7lt1+Y/Hfndl5tjffAHXoV1U6352/FliJcPpMbOKzJtHymmYT5U6x5+hf6G/p1+8P9s4fszXWxevfaN6qHbMHnjr0JVwvXwefY8fPQuyN/XtNxerUgTyJc2nr3bzMtBYDYytVwEv4VqOam48thcCl0xgrj4rqm3hVhatYVUViMUmAhPRGwzpggzksofpPKYAFkOUROiH3UEPWUpUu190qIdaedVoWVdFn88rlcmbMDAknT439WODNz32QOVEyVkYUu8XC3Pp79y5dLPJk5Q0ho7JLlTdl6pVfUzH85qcbEf6N3qbIV0Qj5U7+7L54884bIdNo2yWzao0W47Rm927cYLHLTTYXbenu8zpadtyTbH5tZcKy9ljg9mczA1cQ68C6QVnkYYkFsirGpCExepVrzE9CpIuJFFxjQlb+xP3y80EFDiduxR9WmFOcTCnON6gx4WzPq+Dc15woazq15bJimHBz5bJypnExWn9IegO9n6mfPg+eppuo8voVnp6D1sr++C75EqS0vspfXx1VoYx67ZLnYZ15Na/PUFC1wxbrlFnJdlVodF2O/0oqwjuIEXHHPdVbneWMSPr0g1CWkqyUdYs/f6d//S+9lf6j7FkCvme8Dfesq4571HBTHZi3vexb777IFscu4ekOIXb1cKQAEkmL/3pmhbN9MZMd055xjBp7s4RPZdeKowiapWKD1eRFEkQSHWYqOnjZQWWWZPb6l89+b/0sqv4O2MNK8hBIr3xYN9icn9sdKl1KvkfxUczsa56+oXWIKA95r+KQye0wKBVoMz3BkOymq1VoAx/4GLSX7zDxZ7snnSwe9T9AfwppkeLq6qKSXExblTyy3fARZSQEgv8RRkzEaaXMnE5gFsnczOVVauyYBV8qEMYuKrBrhPPd44NQLUQ2wDdAEkBdyiBaQfShCvM1wLecIdJSHa5fTCwXKqGu8pm5lxCv/zHo+NJLq5gVXgbrX0nQl7HUJzjCW76+lX09es0IwJ1NxWIYjIJv9A4tauWqCRJ4K1bhvuGa/63IfujnPEqQdS780larD6Kq2KVPEB4d746kHnSlOZPP20esWVIjiMnZ6xxuNc7PM3tsiYnO3OGbBn+6uj1raMEHvnRbVyHXCvXJfxZNMQoyUTUcaGgEdc68W4iRsmkIuLsc8UatwuPVtg30k9jU27mH6PpfGd7bLKsp8941rr6HNv5TuGJSqeKbohNvJl/sW8r/xw8xm88w62U88UocFkz2j45pj9DyTGdKBaGgbdcAadzS3B2y5n80odX542NeGYYDHn8++fC9Ea+jLx5SXsDvYF66A0N7ZeI0dVT/RX6JFGs8CNM6A/35pJ6oi77gv6TZHxRRs8gjkFfg2PisX5d/0BPomO4GkA5gGuf8/5R5G0F8+oUtJsYJhCSUKcp1UV7vkN1Iyp1GUdqQO+NzlZVZ2tnz2Y0WZxbE6WFtmBWhsG56BJM0AiyKds4BzPEK2T4Q3y9nSc6IE/08MeFdb0H4DzAJgLz18z5kNepfPokksYDbJD5AEjIIR1wgwBgCK3VIuQT4WRK6e33nGiZ2Hrnna1ulyZ/7qUbVqycVNny1YM3WG3kNKPV+lG/vevOPJqS17r5uuJiWa3OHRUoOU6vpP9z4ta5Op0qPTyh/a4//5uMeAZX2PSdVmVOWvRSiyq9tLQ2L1avZBW3vZ6W9l247dFvqt/Scl7bD6jThWr0q3X4v0rL8j9LzoqfiJ9gmTR8/4Ix8RO6h8zfSvfQ+7aReexE5ovj4X7P1sT9vG30PjJPkQUVXb0A6LgSqCfaZefF9xKIKylrQRQMMBE47rIIv/yBGk0vw/lu9tDc7z6Nhlfc/QvNtsoiCrsYt9czm70aXWp6X9SlpSWlqkRRInJyis3uM+fmpGuTknjC87wK2Fdyakq6Tlch/EhTYiduqQkE8sz6HHOR2zYi5PcOrfAG8zIcfKo6v8AfGCZsSjiw4OpOVSetSk7NyMxJTjVk8RIpLS0B7p2Sqc/Kys10apLTLEKmDsCgWuNCk8PUpgKr3x9qE9VSkizLkiRqkmQhScW3hfwBq/VD5hMRZVulAHI+Jx9huwXi7baQW8p0Tf8PbZfwYfh/aT8yqA37zP9tG5YpzUOfGtSOQ3zntyN/KLFzADovg6QL0sgn/11TEok10m9/vTGXs0To+aM06Ln5X8RNg9HndiU05D625AYt3v0/5iwQ/xHmBJRQoCee4DZKStOZZK0ppHWHIBf+MwFwhdFosXr9NYvrRxmNqQJJklNTDZnm7GJ3eVlRcXZ2ljElTdYId3rNcrVlZWj6ypaFC6+4pNnTUlKbWzZ8evmzkx8ZuWh+/UMfXTRXXKsLBYZUeB1ug6mqetr02bokl9Vhg47OMep0BnOey+F051ljD0y//qxKw2sBUaWnpKSodeqcJF3y2U0XrQqYcx65kXY3NxPPjY/4a1g7HAR5NRdorRXpIFegyjTokWikEahnfAWj3+UuUwX8mToYAQhP8ACKDLBFmEy8RLiruKraYMi2K4DEnq3OHR3w7GzhmwpKskPl0TJ/dkmB3HwXpbv87asiZot1WZGyo1bRMmuye9Wym/y7CN8TmTkzUF0WDJRXD9LbqtmKLqJldjw1CiuKmV/VEMXFcUKBshCuX/+6lvmPAX2CN8S1OP4wvXgMpVwlOfez/K2KWZWgbxjzS2cJTyqu9Oi0g+njaxVY3iAFD8xR2S8o4cM+KG9n3KefDMwOl7h1RNGtC9/4ebnP5YdsGI20fccvkDdBYRzFelx8jilYtsCVlQaCeXSBcg/M8Vz7DNDds/USpguu5o3bl3Qo+l9gNS9fHl9secGVvPRN9lBZARJfB4n7KJxbI9DvBRrfRSBxYPXYmu7+M+43MGA/IFwNNB7kmiuUHSwIFDoNNwMqw22BwiSuO0ghBQ4uMyMJ7wfVS7TJuChIZpoYUdkYCUJERs7v85eBiOhOQ3nHGgRA8Es78fB30g30/p927uR+InPJRjKXg/BPMS+5hFR9vWnT1/QP9GH6Bwzxu6eOXXNvaMHGx+mudY8//q8nHiflvhHzy828cJ3RWRkIVDqTP+/url85BmikgCR1WlLesIbJIw2/uAORb+dP9P6ffd878KukipXEWZr3SltkpvG+Jesejzzxr8cfX3fN4zS5Snfxgtn5loa2aSMc2WqBNH70kcpVNeGii8aGtBmL9i2cYNOTuK96nG6aoN3L2Y58VmWXPRczdjCcynbaE/tX7vmDup+FS5ghmNER1H5CvDg6Vo/m2/s0TeFIuElzH9z0pQxQWGwdsKXYD4pFfkU87Qq4YSsmzAbMwmDGZRRx/W/3gGviMfOMQf3s+/JieQZI1DlcGfo6cS5bfNPLEAmaBt74dQTNL7hzFdv+EFWkMvHjDnpp6KICNQ+q6ppaPbF3PJ6y9SV80PMPT1tJ/11JLdnraWoroXOe8bQ2eeAxnHsfs1VWarXpngkThxaEx0q0CV9v9XgIvr/KA3clbR4PXwzvt8W20Dn4Etn7DGTk4QMe/Fp36apIU05O/oI/BS9ZeTHMiz2Anb3SX7kp3CXcfO5K7npuK7cL7cl6tHDo0yS5TAwolWDrCVGzA8KY4ieQ2CkxflU6SkmA/QohktgSz5jYQYxIBgvB6ocAM0CHin6mdJElxYVBTBgX4d7kwzCkgbD0WVPn2SabLqfcVWOv1iRP9E8os9maznY2LWrerM5sXxS43alFSQ23XIMDg1rHrspF7ZnqzRVLzH13uMLYs2SD0r0HdXyeLqLL43Xp6ZF0otGlZ9DujHSd2UA8BjPdi2ezgXbDeV0Eg3gS3sUP+kdcNbWhtNJol9QVjosuub3Jj0UbWfvCV+WBG75pzBsmrdm3xovveJUz3Eo12Y3f3BAo/+qFvOGZ5KrqwiJG+RTTPtXm6HJzdQZjco8JWLAWJJJvFLEkvg1c3O8DZRy2EpOgUSDoMwR92vgulWZF31dDJHtia8v41eY2xLV/inUxoQYCtvLCVbNW4NZQjTj2fZXxAlX6cBO3ztYoXx7fcwfE4lUvzphBu9HthtBUnEqfZbJFs1HlnPmZok+ItHaisltxUmDrjhL67STOABSgkpvJvBX87jTCVmDg0plEkHmzxJ1Z0Jdl4J0IoCJeDxuU3h6vLXvVZOG9YVRGcewihOAh0uqA1oKLcYT2SGE1NjgUTwnQFjS54EE6zoUO3Q9UQG3LsKnhev+h3+wr2NXe2r6r4ME9MXHDzXc56xeOLTa/TH9H2+nvXnaOaJtp3yXtu7S58CqPs7a6MBGIHSZz0FOI7mX+QufCNSteCPyI5ISUEEI/xtCPgRdWrHzan1Tncg1P8j1NJ7vDSbrKEYFS2r3iheXLX1hBPMPGTcxOCnNqtr7gGFs/bYVWHM6N4sZxE7mLsC0ZUVGxzWacA28UP32lCXHCOc+7JyGD7IRDjF+F5Q6fPzNTzqouc814dgbfNOg29ir0M+vsIrR+9YdxeRsuiYjtV67idveyudOzc5Js8y5uds+fMGH+efe9P6HP1ED/qXiYvx53UWKe3coVZdvXgH+kyQZOz+VxhahLSeNtZcRN4NAZkdDogPGiLOKWBKApbmZnlo2q8eSNiq4jh490VZDXhn6x88e35vtWL/rtKzQ4e8zUt3Yv3Dz79p6J8yf23D7z4tq7xeK+d+ZuqavbMlfwzl6mIo6th6YsstC/ltHMRzMuOzg19nlkRueMhYZVF/VjKuk+6AumCQDkj3si24kEsBfFKpOEG05Lsk6LPr9hwrZRJbJWx7RYQXdQ0lw8saCu6u0Z9MxS+p/pH9XUFUy6uH4Cr9Hft9wy7O1Fz+n0YztPd47V655b9GGtY8VevYYfJ15Wtv+1S6YuVtNU8u+UJTMveW1/qU0IV13/Y3iGm97AB/NOtrd/vWXL1+3tJ/NivyfXWefVnN1YVcsP2HMlFfdY4NgOIgCZwoKGd8s6p+CO78Bzx/6v3n0uEDz7in7M+13CGXorWV3y16y+28vespLVdH8hfzW/VVYvvv12nx8tifr6J9p7niAOkuXcSJ7202GX5dOT9KsScjedx5239076z/fe+bV9d35twx3cz0tol+pUDQwRoi9pB9tYryGKPLqT+4z5rpZxw7jR3Kz4ivg0Hm0fAb8DSIkPuZjkQi0qGlatst0YXzcAs8ZtDDJXbexDMmCnL8bH3GUS8CpUcxuF3zSNrl7x+JINR64lqhfS/Ck1JnWedNerl/92AXljYcdUfcl1Aevkd5oWpad3NOH5NtUUtiVY394ndouqVFOmy+BPGTLkhjcfF+rD7QvCq2aHatdPvu4PpGZ4SQkRXtsy8755kZnm2otuWlDsdeZNf0vYs+rKvQJ/z5WrHiaTlc3Feh+7drkxOyM3T2dOc6gz+a1zI1ux3aeQsfJ10mZOy3wsvapME+4aq+wf6w46dLYy3m0nxkyTXdlB1iSphL4nSelrWYfRxf+k7YffLHsp/Ph8or1y4z8Ors8Eklb192H90fSf0uY99Pv96O545xtzG19v2dDzyuz7P99AOkbSH0fGo2DueolP2iM9cCE9qBDXg64g6TZi6ftLrPsq/ozbvPQfsY8u54vpCr5seewjqY3+0z4/v++Lq/gyvrfQItC3Yh9ezgdifr6iOXZY8SckHXIzW4er7H0HxI15Jvk1hHmnwNh2geRtNJEbxNKurp4/dgmN/F5Dit4wJjv2Zuyt7DEGfYpBqnuu7+Bzzwnjn+vbxxdph1otsp5uIBsBw1iHagd+J53tSXy+gyhSAageowS4RzPI+CENUciBhgTl5qZwz01I8sV14aYb0sXUJLqMbMrRa1waOuHox3QCBPQ5ZBNdlpQqpheG+Bb+ihDvEtrxnb5WOAvvp9uzkugWusxiSObVZPXrr9Nb1XwygKmd5KqkLHt6YTlVkzPlbL6vkDXyHCirVSmrjIwSyhqCNoE5WMYDs8wnIgcXk1HWrGnsnYwKXtUzU1dvj+2LLZZTNMkaa0oyv4Z8lZfiyLYKVwoLLr7ISu3Wpy7p23PJFCv53PqkUN83i7wnppvTM5Jxffc1jvTkVBOu0++XC43MT97DdAXnW2V1kuwMEyK63DoLSXj+ik6jSSgjohAMiUA0L7jX1/g755XSWwOHVDp6a+m8O9cfoipmyep7nqxm98ICSEFWBw5dSOpUTUq89VY8VWw/s3y9Hs/23/Fczpdxc5H//HzHKgfcQr3ghuCOUSSZ+PRAIS64fRVWQP/AA/Q75of+AGlJ0/DkNfrRvHlEdeHtrOQHiH7gS6QlSeS7SS2aNEkGX8z0vwlsgLPM+PMdINnOI1aCLvrneO03sf1s2c/gPS16p8S34UxRfBMU2e3X8x20yblqdV8W818+f/cShUSzfPvb1HzOYq3kixYvZa8FtH8N/kp8Fw2agpgjC6AHemRXiTW9U9gCePwe28pF2VYhqmzKryymwv0O+v1rgDckVkhdaC9l3GrfxPYAUhgLg8c0hblhq/Yg34swtUw3epVL+87//xjiwIX0663VcS8e9H+S6qK9BzAt8q++VtqNlvT4PnWJ9KKiLTdoVAFglgX0ZnI1eldAyqvpzWwXxMvozfTmL5Fr9lWSq8nVX6IDRb8+H/01y5iUjQpHXPgGWE/LltngxluhIK5V6r9PrHQWj8WMrUuWVtfUVC9d3FZizp+Sb8GT2YKnhYUWiyVfVleHFy8+s3hJdU3siULcdL9I1QniiTm/ELregldRb8krhuAgGmDjLuNWcOu4TRecPcHMBF0wsMKiQT0D2TWCJYU9BZnjtS6IHm5pxBgKWpgHnIHZt+TMEHsQdBBf0ELYA1xMxrEtYtEE7fOKA8JGYTSpT/hr0S76CZttXvgZ3r766rfpt/QD+u3bV19TFFxCnry558Dy5Qd6bv5g/6QdAf3aWRs/zzFf2Va6yL2ET04d8nhmqjYT+K9KSgYaP/T6soXuiCAkpxbfPIdo6GIpJzdNSE0mC6t4V9nV00L1Wlv6iupGvty4Fm/s6c3VjSE268+Vo4iVreeKq98mhnNF2vWXl2uGLBVzoCj0eyjSFaqGmmHTOluvfaI4n/wlLV2VruUteYSotKayYIlA/j0b4t/PTM1QJaevWE8/IWpT8cgKntDKjTs+pLcf3tw44ZG6GaeWKNeNHPf/AdN0KloAAAB42mNgZGBgYGTstGYSlYnnt/nKwM1+ASjCcJ5n9nNkmv0CWJyDgQnEAwAUZwnuAAB42mNgZGBgv/D/BohkYACTjAyoQAgAddYEcQAAeNpFUCsOAkEMfV0EwXMABBKF4BabYEj2AKsQcA/U4AgCjQSDQiGgAoHkCAS9CQFFf7vbl05n2jevnaEKZtkW6LyA7qONmiOpU+6On8QkcenRapVxSxrhA7b4BsuaqI/SwHZG+CyyAUqad+sMsrMDnBV4qp4r0F48xQnNyrgKr+3SFy3txYqsoLuoJxrSyGH5UiZmdWVa97KpcTCTM2td3GI3p5UrC7OHHJu4NQmtFLcW6NmEamscm26Kb+xPrlPrGWA/xNgZo6JLTJxwwJTGMsctOlb1xP7eP91vbRwAAAB42mNgYFAjAPUY2hhWMFxhtGOcwLiC8R2THtMkphPMAswxzJOYr7DIsMxgOcfKxWrE+olNhi2FbRLbOXYhdjf2Fey3OCw4gjgqOFZwXOL4wynEqcCpx2nD6cUZwbmN8xTnNy4zrhyuLq55XHe4/nGbcddxf+AJ4ZnBc4aXhdeON493Hu8Z3l98anwZfCv4rvAb8U/j/yEgI+AjME3gjiCXoJpgkmCN4C6hCKEFQoeEngizCRsIHxL+J5IlMkVki8gFURXRHNENYmpiGWIrxF6J+4g/koiRuCDxRVJAUk0yTXKB5C8pB6kKqXlSh6T+SftIL5IJkWmRuSLLJusn2yK7TPaUXITcBLl38gLyPfLnFJQU2hTOKLxTFFDUUFyh+ETJTmmT0gXlKuVXKgUqi1ReqbKpaqhGqa5QPaL6RU1MbZN6lPo9DS0NF40ojSKNDo0FGts0zmk80ZTRtNL8phWjdUx7lvY3nVm6YroJujt0v+gp6OnpbdD7oq+mH6W/Qf+DQZjBCoMrhgyGNoZFhl2Gaww/GZ0CAEoDeZsAeNpjYGRgYLjIMItBkAEEmICYkQEk5gDmMwAAKNUBwgB42o1Sy07CQBQ9LWhCNC5cuDAuGt2oCQUfPIStj0TREI3itkgpRKS1VMBf8Mt05xf4DcYPMJ65TAmhGzOZmXPPnPuYuQNgCW9IwUhnAHxxTrCBVVoTbGIF3xqnUMavxmlsGkWNFzA27jVeJP+pcQa7xo/Gy1g3NzR+x5oZ+34gb9ZwhjpqsDCEixADdOGjT3uf0ydjwaH9yr1HFIkqqR4RRegQtYWJiFyM8cA1oBXrtqmJOAJUkOMYybDh8fSFu8roke/RQ/n2mcPlzJENyGYZ38EzlSrOE5ktnOqMJ4l8OzimekCtiuZLtGsqPOZStwmxx0h5jiKquMUFGrgiSnpl5/ySCmtOcTf3QrOZ6rgho6xZtkNlpOMNpx42SlyrvKuDR8ZUmjZZ9UJNdslGQWYZB7SO/lF7Q165xSpCeVtVe0tQV/pgSZcdZhxpZTBVxh1q0G7O9HpS66W+67n8GfWHSnJWZrcVrrDGgvDq5od/5JJ4ZwB42m2T9ZMcVRhF5ywS3N3dZfr7XvfrxUJIWNzdXYIEDe4a3N3dneDuTvEXQWDO/MZUbZ3q2n7nzdy6dzAx+O/z9/xBDP7v89eCPwYTTLAQC7MIizKNxVicJViSpViaZViW5VieFViRlViZVViV1VidNViTtVibdViX9VifDdiQjdiYTdiUzdicLdiSrdiabdiWIQ1BUmjpqPRMsh3bswM7shPT2ZkZ7MJMZrErU+zG7uzBnuzF3uzDvuzH/hzAgRzEwRzCoRzG4RzBkRzF0RzDsRzH8ZzAiZzEyZzCqZzG6czmDM7kLM5mDudwLudxPhdwIXO5iIu5hEu5jMu5giu5iqu5hmu5juu5gRu5iZuZxy3cym3czh3cyV3czT3cy33czwM8yEM8zCM8ymM8zhM8yVM8zTM8y3M8zwu8yEu8zCu8ymu8zhu8yVu8zTu8y3u8z3w+4EM+4mM+4VM+43O+4Eu+4mu+4Vu+43t+4Ed+4md+4Vd+43f+4M9pc+fMjuFwKBsZMmWRrexklb2clDNGjKkR2xHbqZn/cqoZ3beAjQyZsshWdrLKXk6O2Ohr9DX6Gn2NnkZPo6fR0+gJPaEn9ISe0BN6Qk/oCT2pJz2fnk9/V+pJPen59HzxfPF7FD1FT/F88f7i+db/t97T+l7rPa3vt+P3va/zvs77Oj2dnk5Pp6fT0+np9FTPV79v1VP1VD1VT9VT9VQ9vd+n19fr6/X1+vqRL+xT2KewR2GPYjh+r5NV9nJ0b9ijsEdhj8IeRaPPPoV9CvsU9insU9insE9hn8I+ReizV2Gvwl6FvQp7FfYqUp/9CvsV9ivsV9ivSH32LOxZ2LOwX2l+ORw/pyyylZ2sspcjb5pjmmOaY5pjmmOaY5pjmmOaY5pjmmOaY5pjmmOaY5pjmmOaY5pjmmOaY5pjmmOaY5pjmmOaY5pjmmOaY5pjutcc5+les+hzt1n0ud90v1lGvuJzGT+3Q9nIkCmLbGUnq9TjzkvneXde3Hlx58WdF3de3Hlx56Xqce/FvRf3Xtx7ce/FvZda/wHBCBuoAAAAAVLm62cAAA==) format('woff'),
|
9 |
+
url("fonts/dashicons.ttf") format("truetype"),
|
10 |
+
url("fonts/dashicons.svg#dashicons") format("svg");
|
11 |
+
font-weight: normal;
|
12 |
+
font-style: normal;
|
13 |
+
}
|
14 |
+
|
15 |
+
.dashicons {
|
16 |
+
display: inline-block;
|
17 |
+
width: 20px;
|
18 |
+
height: 20px;
|
19 |
+
-webkit-font-smoothing: antialiased;
|
20 |
+
font-size: 20px;
|
21 |
+
line-height: 1;
|
22 |
+
font-family: "dashicons";
|
23 |
+
text-decoration: inherit;
|
24 |
+
font-weight: normal;
|
25 |
+
font-style: normal;
|
26 |
+
vertical-align: top;
|
27 |
+
-moz-transition: color .1s ease-in 0;
|
28 |
+
-webkit-transition: color .1s ease-in 0;
|
29 |
+
text-align: center;
|
30 |
+
}
|
31 |
+
|
32 |
+
|
33 |
+
/* Admin Menu Icons */
|
34 |
+
|
35 |
+
.dashicons-menu:before {
|
36 |
+
content:"\f333";
|
37 |
+
}
|
38 |
+
|
39 |
+
.dashicons-admin-site:before {
|
40 |
+
content:"\f319";
|
41 |
+
}
|
42 |
+
|
43 |
+
.dashicons-dashboard:before {
|
44 |
+
content:"\f226";
|
45 |
+
}
|
46 |
+
|
47 |
+
.dashicons-admin-media:before {
|
48 |
+
content: "\f104";
|
49 |
+
}
|
50 |
+
|
51 |
+
.dashicons-admin-page:before {
|
52 |
+
content: "\f105";
|
53 |
+
}
|
54 |
+
|
55 |
+
.dashicons-admin-comments:before {
|
56 |
+
content: "\f101";
|
57 |
+
}
|
58 |
+
|
59 |
+
.dashicons-admin-appearance:before {
|
60 |
+
content: "\f100";
|
61 |
+
}
|
62 |
+
|
63 |
+
.dashicons-admin-plugins:before {
|
64 |
+
content: "\f106";
|
65 |
+
}
|
66 |
+
|
67 |
+
.dashicons-admin-users:before {
|
68 |
+
content: "\f110";
|
69 |
+
}
|
70 |
+
|
71 |
+
.dashicons-admin-tools:before {
|
72 |
+
content: "\f107";
|
73 |
+
}
|
74 |
+
|
75 |
+
.dashicons-admin-settings:before {
|
76 |
+
content: "\f108";
|
77 |
+
}
|
78 |
+
|
79 |
+
.dashicons-admin-network:before {
|
80 |
+
content: "\f112";
|
81 |
+
}
|
82 |
+
|
83 |
+
.dashicons-admin-generic:before {
|
84 |
+
content: "\f111";
|
85 |
+
}
|
86 |
+
|
87 |
+
.dashicons-admin-home:before {
|
88 |
+
content: "\f102";
|
89 |
+
}
|
90 |
+
|
91 |
+
.dashicons-admin-collapse:before {
|
92 |
+
content:"\f148";
|
93 |
+
}
|
94 |
+
|
95 |
+
|
96 |
+
/* Both Admin Menu and Post Formats */
|
97 |
+
|
98 |
+
.dashicons-admin-links:before,
|
99 |
+
.dashicons-format-links:before {
|
100 |
+
content: "\f103";
|
101 |
+
}
|
102 |
+
|
103 |
+
.dashicons-admin-post:before,
|
104 |
+
.dashicons-format-standard:before {
|
105 |
+
content: "\f109";
|
106 |
+
}
|
107 |
+
|
108 |
+
|
109 |
+
/* Post Format Icons */
|
110 |
+
|
111 |
+
.dashicons-format-image:before {
|
112 |
+
content: "\f128";
|
113 |
+
}
|
114 |
+
|
115 |
+
.dashicons-format-gallery:before {
|
116 |
+
content: "\f161";
|
117 |
+
}
|
118 |
+
|
119 |
+
.dashicons-format-audio:before {
|
120 |
+
content: "\f127";
|
121 |
+
}
|
122 |
+
|
123 |
+
.dashicons-format-video:before {
|
124 |
+
content: "\f126";
|
125 |
+
}
|
126 |
+
|
127 |
+
.dashicons-format-chat:before {
|
128 |
+
content: "\f125";
|
129 |
+
}
|
130 |
+
|
131 |
+
.dashicons-format-status:before {
|
132 |
+
content: "\f130";
|
133 |
+
}
|
134 |
+
|
135 |
+
.dashicons-format-aside:before {
|
136 |
+
content: "\f123";
|
137 |
+
}
|
138 |
+
|
139 |
+
.dashicons-format-quote:before {
|
140 |
+
content: "\f122";
|
141 |
+
}
|
142 |
+
|
143 |
+
|
144 |
+
/* Welcome Screen Icons */
|
145 |
+
|
146 |
+
.dashicons-welcome-write-blog:before,
|
147 |
+
.dashicons-welcome-edit-page:before {
|
148 |
+
content:"\f119";
|
149 |
+
}
|
150 |
+
|
151 |
+
.dashicons-welcome-add-page:before {
|
152 |
+
content:"\f133";
|
153 |
+
}
|
154 |
+
|
155 |
+
.dashicons-welcome-view-site:before {
|
156 |
+
content:"\f115";
|
157 |
+
}
|
158 |
+
|
159 |
+
.dashicons-welcome-widgets-menus:before {
|
160 |
+
content:"\f116";
|
161 |
+
}
|
162 |
+
|
163 |
+
.dashicons-welcome-comments:before {
|
164 |
+
content:"\f117";
|
165 |
+
}
|
166 |
+
|
167 |
+
.dashicons-welcome-learn-more:before {
|
168 |
+
content:"\f118";
|
169 |
+
}
|
170 |
+
|
171 |
+
|
172 |
+
/* Image Editing Icons */
|
173 |
+
|
174 |
+
.dashicons-image-crop:before {
|
175 |
+
content:"\f165";
|
176 |
+
}
|
177 |
+
|
178 |
+
.dashicons-image-rotate-left:before {
|
179 |
+
content:"\f166";
|
180 |
+
}
|
181 |
+
|
182 |
+
.dashicons-image-rotate-right:before {
|
183 |
+
content:"\f167";
|
184 |
+
}
|
185 |
+
|
186 |
+
.dashicons-image-flip-vertical:before {
|
187 |
+
content:"\f168";
|
188 |
+
}
|
189 |
+
|
190 |
+
.dashicons-image-flip-horizontal:before {
|
191 |
+
content:"\f169";
|
192 |
+
}
|
193 |
+
|
194 |
+
|
195 |
+
/* Both Image Editing and TinyMCE */
|
196 |
+
|
197 |
+
.dashicons-undo:before {
|
198 |
+
content:"\f171";
|
199 |
+
}
|
200 |
+
|
201 |
+
.dashicons-redo:before {
|
202 |
+
content:"\f172";
|
203 |
+
}
|
204 |
+
|
205 |
+
/* TinyMCE Icons */
|
206 |
+
|
207 |
+
.dashicons-editor-bold:before {
|
208 |
+
content:"\f200";
|
209 |
+
}
|
210 |
+
|
211 |
+
.dashicons-editor-italic:before {
|
212 |
+
content:"\f201";
|
213 |
+
}
|
214 |
+
|
215 |
+
.dashicons-editor-ul:before {
|
216 |
+
content:"\f203";
|
217 |
+
}
|
218 |
+
|
219 |
+
.dashicons-editor-ol:before {
|
220 |
+
content:"\f204";
|
221 |
+
}
|
222 |
+
|
223 |
+
.dashicons-editor-quote:before {
|
224 |
+
content:"\f205";
|
225 |
+
}
|
226 |
+
|
227 |
+
.dashicons-editor-alignleft:before {
|
228 |
+
content:"\f206";
|
229 |
+
}
|
230 |
+
|
231 |
+
.dashicons-editor-aligncenter:before {
|
232 |
+
content:"\f207";
|
233 |
+
}
|
234 |
+
|
235 |
+
.dashicons-editor-alignright:before {
|
236 |
+
content:"\f208";
|
237 |
+
}
|
238 |
+
|
239 |
+
.dashicons-editor-insertmore:before {
|
240 |
+
content:"\f209";
|
241 |
+
}
|
242 |
+
|
243 |
+
.dashicons-editor-spellcheck:before {
|
244 |
+
content:"\f210";
|
245 |
+
}
|
246 |
+
|
247 |
+
.dashicons-editor-distractionfree:before {
|
248 |
+
content:"\f211";
|
249 |
+
}
|
250 |
+
|
251 |
+
.dashicons-editor-kitchensink:before {
|
252 |
+
content:"\f212";
|
253 |
+
}
|
254 |
+
|
255 |
+
.dashicons-editor-underline:before {
|
256 |
+
content:"\f213";
|
257 |
+
}
|
258 |
+
|
259 |
+
.dashicons-editor-justify:before {
|
260 |
+
content:"\f214";
|
261 |
+
}
|
262 |
+
|
263 |
+
.dashicons-editor-textcolor:before {
|
264 |
+
content:"\f215";
|
265 |
+
}
|
266 |
+
|
267 |
+
.dashicons-editor-paste-word:before {
|
268 |
+
content:"\f216";
|
269 |
+
}
|
270 |
+
|
271 |
+
.dashicons-editor-paste-text:before {
|
272 |
+
content:"\f217";
|
273 |
+
}
|
274 |
+
|
275 |
+
.dashicons-editor-removeformatting:before {
|
276 |
+
content:"\f218";
|
277 |
+
}
|
278 |
+
|
279 |
+
.dashicons-editor-video:before {
|
280 |
+
content:"\f219";
|
281 |
+
}
|
282 |
+
|
283 |
+
.dashicons-editor-customchar:before {
|
284 |
+
content:"\f220";
|
285 |
+
}
|
286 |
+
|
287 |
+
.dashicons-editor-outdent:before {
|
288 |
+
content:"\f221";
|
289 |
+
}
|
290 |
+
|
291 |
+
.dashicons-editor-indent:before {
|
292 |
+
content:"\f222";
|
293 |
+
}
|
294 |
+
|
295 |
+
.dashicons-editor-help:before {
|
296 |
+
content:"\f223";
|
297 |
+
}
|
298 |
+
|
299 |
+
.dashicons-editor-strikethrough:before {
|
300 |
+
content:"\f224";
|
301 |
+
}
|
302 |
+
|
303 |
+
.dashicons-editor-unlink:before {
|
304 |
+
content:"\f225";
|
305 |
+
}
|
306 |
+
|
307 |
+
.dashicons-editor-rtl:before {
|
308 |
+
content:"\f320";
|
309 |
+
}
|
310 |
+
|
311 |
+
.dashicons-editor-break:before {
|
312 |
+
content:"\f474";
|
313 |
+
}
|
314 |
+
|
315 |
+
.dashicons-editor-code:before {
|
316 |
+
content:"\f475";
|
317 |
+
}
|
318 |
+
|
319 |
+
.dashicons-editor-paragraph:before {
|
320 |
+
content:"\f476";
|
321 |
+
}
|
322 |
+
|
323 |
+
/* Post Icons */
|
324 |
+
|
325 |
+
.dashicons-align-left:before {
|
326 |
+
content:"\f135";
|
327 |
+
}
|
328 |
+
|
329 |
+
.dashicons-align-right:before {
|
330 |
+
content:"\f136";
|
331 |
+
}
|
332 |
+
|
333 |
+
.dashicons-align-center:before {
|
334 |
+
content:"\f134";
|
335 |
+
}
|
336 |
+
|
337 |
+
.dashicons-align-none:before {
|
338 |
+
content:"\f138";
|
339 |
+
}
|
340 |
+
|
341 |
+
.dashicons-lock:before {
|
342 |
+
content:"\f160";
|
343 |
+
}
|
344 |
+
|
345 |
+
.dashicons-calendar:before {
|
346 |
+
content:"\f145";
|
347 |
+
}
|
348 |
+
|
349 |
+
.dashicons-visibility:before {
|
350 |
+
content:"\f177";
|
351 |
+
}
|
352 |
+
|
353 |
+
.dashicons-post-status:before {
|
354 |
+
content:"\f173";
|
355 |
+
}
|
356 |
+
|
357 |
+
.dashicons-edit:before {
|
358 |
+
content:"\f464";
|
359 |
+
}
|
360 |
+
|
361 |
+
.dashicons-trash:before {
|
362 |
+
content:"\f182";
|
363 |
+
}
|
364 |
+
|
365 |
+
|
366 |
+
/* Sorting */
|
367 |
+
|
368 |
+
.dashicons-arrow-up:before {
|
369 |
+
content:"\f142";
|
370 |
+
}
|
371 |
+
|
372 |
+
.dashicons-arrow-down:before {
|
373 |
+
content:"\f140";
|
374 |
+
}
|
375 |
+
|
376 |
+
.dashicons-arrow-left:before {
|
377 |
+
content:"\f141";
|
378 |
+
}
|
379 |
+
|
380 |
+
.dashicons-arrow-right:before {
|
381 |
+
content:"\f139";
|
382 |
+
}
|
383 |
+
|
384 |
+
.dashicons-arrow-up-alt:before {
|
385 |
+
content:"\f342";
|
386 |
+
}
|
387 |
+
|
388 |
+
.dashicons-arrow-down-alt:before {
|
389 |
+
content:"\f346";
|
390 |
+
}
|
391 |
+
|
392 |
+
.dashicons-arrow-left-alt:before {
|
393 |
+
content:"\f340";
|
394 |
+
}
|
395 |
+
|
396 |
+
.dashicons-arrow-right-alt:before {
|
397 |
+
content:"\f344";
|
398 |
+
}
|
399 |
+
|
400 |
+
.dashicons-arrow-up-alt2:before {
|
401 |
+
content:"\f343";
|
402 |
+
}
|
403 |
+
|
404 |
+
.dashicons-arrow-down-alt2:before {
|
405 |
+
content:"\f347";
|
406 |
+
}
|
407 |
+
|
408 |
+
.dashicons-arrow-left-alt2:before {
|
409 |
+
content:"\f341";
|
410 |
+
}
|
411 |
+
|
412 |
+
.dashicons-arrow-right-alt2:before {
|
413 |
+
content:"\f345";
|
414 |
+
}
|
415 |
+
|
416 |
+
.dashicons-leftright:before {
|
417 |
+
content:"\f229";
|
418 |
+
}
|
419 |
+
|
420 |
+
.dashicons-sort:before {
|
421 |
+
content:"\f156";
|
422 |
+
}
|
423 |
+
|
424 |
+
.dashicons-list-view:before {
|
425 |
+
content:"\f163";
|
426 |
+
}
|
427 |
+
|
428 |
+
.dashicons-exerpt-view:before {
|
429 |
+
content:"\f164";
|
430 |
+
}
|
431 |
+
|
432 |
+
|
433 |
+
/* Social Icons */
|
434 |
+
|
435 |
+
.dashicons-share:before {
|
436 |
+
content:"\f237";
|
437 |
+
}
|
438 |
+
|
439 |
+
.dashicons-share1:before {
|
440 |
+
content:"\f237";
|
441 |
+
}
|
442 |
+
|
443 |
+
.dashicons-share-alt:before {
|
444 |
+
content:"\f240";
|
445 |
+
}
|
446 |
+
|
447 |
+
.dashicons-share-alt2:before {
|
448 |
+
content:"\f242";
|
449 |
+
}
|
450 |
+
|
451 |
+
.dashicons-twitter:before {
|
452 |
+
content:"\f301";
|
453 |
+
}
|
454 |
+
|
455 |
+
.dashicons-rss:before {
|
456 |
+
content:"\f303";
|
457 |
+
}
|
458 |
+
|
459 |
+
.dashicons-email:before {
|
460 |
+
content:"\f465";
|
461 |
+
}
|
462 |
+
|
463 |
+
.dashicons-email-alt:before {
|
464 |
+
content:"\f466";
|
465 |
+
}
|
466 |
+
|
467 |
+
.dashicons-facebook:before {
|
468 |
+
content:"\f304";
|
469 |
+
}
|
470 |
+
|
471 |
+
.dashicons-facebook-alt:before {
|
472 |
+
content:"\f305";
|
473 |
+
}
|
474 |
+
|
475 |
+
.dashicons-networking:before {
|
476 |
+
content:"\f325";
|
477 |
+
}
|
478 |
+
|
479 |
+
.dashicons-googleplus:before {
|
480 |
+
content:"\f462";
|
481 |
+
}
|
482 |
+
|
483 |
+
|
484 |
+
/* Jobs Icons */
|
485 |
+
|
486 |
+
.dashicons-hammer:before {
|
487 |
+
content:"\f308";
|
488 |
+
}
|
489 |
+
|
490 |
+
.dashicons-art:before {
|
491 |
+
content:"\f309";
|
492 |
+
}
|
493 |
+
|
494 |
+
.dashicons-migrate:before {
|
495 |
+
content:"\f310";
|
496 |
+
}
|
497 |
+
|
498 |
+
.dashicons-performance:before {
|
499 |
+
content:"\f311";
|
500 |
+
}
|
501 |
+
|
502 |
+
|
503 |
+
/* Internal/Products */
|
504 |
+
|
505 |
+
.dashicons-wordpress:before {
|
506 |
+
content:"\f120";
|
507 |
+
}
|
508 |
+
|
509 |
+
.dashicons-wordpress-alt:before {
|
510 |
+
content:"\f324";
|
511 |
+
}
|
512 |
+
|
513 |
+
.dashicons-pressthis:before {
|
514 |
+
content:"\f157";
|
515 |
+
}
|
516 |
+
|
517 |
+
.dashicons-update:before {
|
518 |
+
content:"\f463";
|
519 |
+
}
|
520 |
+
|
521 |
+
.dashicons-screenoptions:before {
|
522 |
+
content:"\f180";
|
523 |
+
}
|
524 |
+
|
525 |
+
.dashicons-info:before {
|
526 |
+
content:"\f348";
|
527 |
+
}
|
528 |
+
|
529 |
+
.dashicons-cart:before {
|
530 |
+
content:"\f174";
|
531 |
+
}
|
532 |
+
|
533 |
+
.dashicons-feedback:before {
|
534 |
+
content:"\f175";
|
535 |
+
}
|
536 |
+
|
537 |
+
.dashicons-cloud:before {
|
538 |
+
content:"\f176";
|
539 |
+
}
|
540 |
+
|
541 |
+
.dashicons-translation:before {
|
542 |
+
content:"\f326";
|
543 |
+
}
|
544 |
+
|
545 |
+
|
546 |
+
/* Taxonomies */
|
547 |
+
|
548 |
+
.dashicons-tag:before {
|
549 |
+
content:"\f323";
|
550 |
+
}
|
551 |
+
|
552 |
+
.dashicons-category:before {
|
553 |
+
content:"\f318";
|
554 |
+
}
|
555 |
+
|
556 |
+
|
557 |
+
/* Alerts/Notifications/Flags */
|
558 |
+
|
559 |
+
.dashicons-yes:before {
|
560 |
+
content:"\f147";
|
561 |
+
}
|
562 |
+
|
563 |
+
.dashicons-no:before {
|
564 |
+
content:"\f158";
|
565 |
+
}
|
566 |
+
|
567 |
+
.dashicons-no-alt:before {
|
568 |
+
content:"\f335";
|
569 |
+
}
|
570 |
+
|
571 |
+
.dashicons-plus:before {
|
572 |
+
content:"\f132";
|
573 |
+
}
|
574 |
+
|
575 |
+
.dashicons-minus:before {
|
576 |
+
content:"\f460";
|
577 |
+
}
|
578 |
+
|
579 |
+
.dashicons-dismiss:before {
|
580 |
+
content:"\f153";
|
581 |
+
}
|
582 |
+
|
583 |
+
.dashicons-marker:before {
|
584 |
+
content:"\f159";
|
585 |
+
}
|
586 |
+
|
587 |
+
.dashicons-star-filled:before {
|
588 |
+
content:"\f155";
|
589 |
+
}
|
590 |
+
|
591 |
+
.dashicons-star-half:before {
|
592 |
+
content:"\f459";
|
593 |
+
}
|
594 |
+
|
595 |
+
.dashicons-star-empty:before {
|
596 |
+
content:"\f154";
|
597 |
+
}
|
598 |
+
|
599 |
+
.dashicons-flag:before {
|
600 |
+
content:"\f227";
|
601 |
+
}
|
602 |
+
|
603 |
+
|
604 |
+
/* Misc/CPT */
|
605 |
+
|
606 |
+
.dashicons-location:before {
|
607 |
+
content:"\f230";
|
608 |
+
}
|
609 |
+
|
610 |
+
.dashicons-location-alt:before {
|
611 |
+
content:"\f231";
|
612 |
+
}
|
613 |
+
|
614 |
+
.dashicons-camera:before {
|
615 |
+
content:"\f306";
|
616 |
+
}
|
617 |
+
|
618 |
+
.dashicons-images-alt:before {
|
619 |
+
content:"\f232";
|
620 |
+
}
|
621 |
+
|
622 |
+
.dashicons-images-alt2:before {
|
623 |
+
content:"\f233";
|
624 |
+
}
|
625 |
+
|
626 |
+
.dashicons-video-alt:before {
|
627 |
+
content:"\f234";
|
628 |
+
}
|
629 |
+
|
630 |
+
.dashicons-video-alt2:before {
|
631 |
+
content:"\f235";
|
632 |
+
}
|
633 |
+
|
634 |
+
.dashicons-video-alt3:before {
|
635 |
+
content:"\f236";
|
636 |
+
}
|
637 |
+
|
638 |
+
.dashicons-vault:before {
|
639 |
+
content:"\f178";
|
640 |
+
}
|
641 |
+
|
642 |
+
.dashicons-shield:before {
|
643 |
+
content:"\f332";
|
644 |
+
}
|
645 |
+
|
646 |
+
.dashicons-shield-alt:before {
|
647 |
+
content:"\f334";
|
648 |
+
}
|
649 |
+
|
650 |
+
.dashicons-sos:before {
|
651 |
+
content:"\f468";
|
652 |
+
}
|
653 |
+
|
654 |
+
.dashicons-search:before {
|
655 |
+
content:"\f179";
|
656 |
+
}
|
657 |
+
|
658 |
+
.dashicons-slides:before {
|
659 |
+
content:"\f181";
|
660 |
+
}
|
661 |
+
|
662 |
+
.dashicons-analytics:before {
|
663 |
+
content:"\f183";
|
664 |
+
}
|
665 |
+
|
666 |
+
.dashicons-chart-pie:before {
|
667 |
+
content:"\f184";
|
668 |
+
}
|
669 |
+
|
670 |
+
.dashicons-chart-bar:before {
|
671 |
+
content:"\f185";
|
672 |
+
}
|
673 |
+
|
674 |
+
.dashicons-chart-line:before {
|
675 |
+
content:"\f238";
|
676 |
+
}
|
677 |
+
|
678 |
+
.dashicons-chart-area:before {
|
679 |
+
content:"\f239";
|
680 |
+
}
|
681 |
+
|
682 |
+
.dashicons-groups:before {
|
683 |
+
content:"\f307";
|
684 |
+
}
|
685 |
+
|
686 |
+
.dashicons-businessman:before {
|
687 |
+
content:"\f338";
|
688 |
+
}
|
689 |
+
|
690 |
+
.dashicons-id:before {
|
691 |
+
content:"\f336";
|
692 |
+
}
|
693 |
+
|
694 |
+
.dashicons-id-alt:before {
|
695 |
+
content:"\f337";
|
696 |
+
}
|
697 |
+
|
698 |
+
.dashicons-products:before {
|
699 |
+
content:"\f312";
|
700 |
+
}
|
701 |
+
|
702 |
+
.dashicons-awards:before {
|
703 |
+
content:"\f313";
|
704 |
+
}
|
705 |
+
|
706 |
+
.dashicons-forms:before {
|
707 |
+
content:"\f314";
|
708 |
+
}
|
709 |
+
|
710 |
+
.dashicons-testimonial:before {
|
711 |
+
content:"\f473";
|
712 |
+
}
|
713 |
+
|
714 |
+
.dashicons-portfolio:before {
|
715 |
+
content:"\f322";
|
716 |
+
}
|
717 |
+
|
718 |
+
.dashicons-book:before {
|
719 |
+
content:"\f330";
|
720 |
+
}
|
721 |
+
|
722 |
+
.dashicons-book-alt:before {
|
723 |
+
content:"\f331";
|
724 |
+
}
|
725 |
+
|
726 |
+
.dashicons-download:before {
|
727 |
+
content:"\f316";
|
728 |
+
}
|
729 |
+
|
730 |
+
.dashicons-upload:before {
|
731 |
+
content:"\f317";
|
732 |
+
}
|
733 |
+
|
734 |
+
.dashicons-backup:before {
|
735 |
+
content:"\f321";
|
736 |
+
}
|
737 |
+
|
738 |
+
.dashicons-clock:before {
|
739 |
+
content:"\f469";
|
740 |
+
}
|
741 |
+
|
742 |
+
.dashicons-lightbulb:before {
|
743 |
+
content:"\f339";
|
744 |
+
}
|
745 |
+
|
746 |
+
.dashicons-desktop:before {
|
747 |
+
content:"\f472";
|
748 |
+
}
|
749 |
+
|
750 |
+
.dashicons-tablet:before {
|
751 |
+
content:"\f471";
|
752 |
+
}
|
753 |
+
|
754 |
+
.dashicons-smartphone:before {
|
755 |
+
content:"\f470";
|
756 |
+
}
|
757 |
+
|
758 |
+
.dashicons-smiley:before {
|
759 |
+
content:"\f328";
|
760 |
+
}
|
css/style-dfi.css
ADDED
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* @file style-dfi.css
|
3 |
+
*
|
4 |
+
* Style for dynamic featured image plugin
|
5 |
+
*
|
6 |
+
* Copyright (c) 2013, Ankit Pokhrel <ankitpokhrel@gmail.com, http://ankitpokhrel.com.np>
|
7 |
+
*/
|
8 |
+
|
9 |
+
.dfiAddNew {
|
10 |
+
float: left;
|
11 |
+
margin-top: 3px;
|
12 |
+
}
|
13 |
+
|
14 |
+
.dfiRemove {
|
15 |
+
float: right;
|
16 |
+
}
|
17 |
+
|
18 |
+
.dfiLinks{
|
19 |
+
padding: 2px 0;
|
20 |
+
}
|
21 |
+
|
22 |
+
.dfiClearFloat {
|
23 |
+
clear: both;
|
24 |
+
}
|
25 |
+
|
26 |
+
.featured-meta-box a:not(.hasFeaturedImage):not(.dfiAddNew) {
|
27 |
+
display: inline-block !important;
|
28 |
+
margin: 3px 0;
|
29 |
+
}
|
30 |
+
|
31 |
+
img.dfiImg {
|
32 |
+
max-width: 258px;
|
33 |
+
}
|
34 |
+
|
35 |
+
img.dfiImg[src=""]{
|
36 |
+
display: none;
|
37 |
+
}
|
38 |
+
|
39 |
+
img.dfiImgEmpty {
|
40 |
+
display: none;
|
41 |
+
}
|
42 |
+
|
43 |
+
.dfiLoading {
|
44 |
+
background: url("../img/spinner.gif") no-repeat;
|
45 |
+
display: inline-block;
|
46 |
+
height: 20px;
|
47 |
+
position: relative;
|
48 |
+
top: 2px;
|
49 |
+
width: 20px;
|
50 |
+
}
|
51 |
+
|
52 |
+
.dfiFeaturedImage {
|
53 |
+
border: 2px dashed #AAA;
|
54 |
+
color: #CCC;
|
55 |
+
height: 130px;
|
56 |
+
margin: 10px 0 !important;
|
57 |
+
padding: 10px;
|
58 |
+
text-align: center;
|
59 |
+
width: 235px;
|
60 |
+
}
|
61 |
+
|
62 |
+
.dfiFeaturedImage:hover{
|
63 |
+
border-color: #999;
|
64 |
+
}
|
65 |
+
|
66 |
+
.dfiFeaturedImage > span {
|
67 |
+
display: inline-block;
|
68 |
+
font-size: 54px;
|
69 |
+
margin-top: 17%;
|
70 |
+
margin-right: 11%;
|
71 |
+
}
|
72 |
+
|
73 |
+
.hasFeaturedImage {
|
74 |
+
border: none;
|
75 |
+
width: auto;
|
76 |
+
height: auto;
|
77 |
+
margin: 0 !important;
|
78 |
+
position: absolute;
|
79 |
+
top: 30%;
|
80 |
+
left: 37%;
|
81 |
+
display: none;
|
82 |
+
z-index: 999;
|
83 |
+
}
|
84 |
+
|
85 |
+
.dashicons {
|
86 |
+
text-decoration: none !important;
|
87 |
+
}
|
88 |
+
|
89 |
+
.dashicons:hover, .dfiFeaturedImage:hover {
|
90 |
+
color: #2ea2cc !important;
|
91 |
+
}
|
dynamic-featured-image.php
ADDED
@@ -0,0 +1,872 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/***
|
3 |
+
Plugin Name: Dynamic Featured Image
|
4 |
+
Plugin URI: http://wordpress.org/plugins/dynamic-featured-image/
|
5 |
+
Description: Dynamically adds multiple featured image or post thumbnail functionality to your posts, pages and custom post types.
|
6 |
+
Version: 3.3.0
|
7 |
+
Author: Ankit Pokhrel
|
8 |
+
Author URI: http://ankitpokhrel.com.np
|
9 |
+
License: GPL2 or later
|
10 |
+
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
+
Text Domain: dynamic-featured-image
|
12 |
+
Domain Path: /languages
|
13 |
+
|
14 |
+
Copyright (C) 2013 Ankit Pokhrel <ankitpokhrel@gmail.com, http://ankitpokhrel.com.np>,
|
15 |
+
|
16 |
+
This program is free software; you can redistribute it and/or modify
|
17 |
+
it under the terms of the GNU General Public License as published by
|
18 |
+
the Free Software Foundation; either version 3 of the License, or
|
19 |
+
(at your option) any later version.
|
20 |
+
|
21 |
+
This program is distributed in the hope that it will be useful,
|
22 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
23 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
24 |
+
GNU General Public License for more details.
|
25 |
+
|
26 |
+
You should have received a copy of the GNU General Public License
|
27 |
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
28 |
+
*/
|
29 |
+
|
30 |
+
// Avoid direct calls to this file
|
31 |
+
if ( !defined( 'ABSPATH' ) ) {
|
32 |
+
header( 'Status: 403 Forbidden' );
|
33 |
+
header( 'HTTP/1.1 403 Forbidden' );
|
34 |
+
exit();
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Dynamic Featured Image plugin main class
|
39 |
+
*
|
40 |
+
* @package dynamic-featured-image
|
41 |
+
* @author Ankit Pokhrel <ankitpokhrel@gmail.com>
|
42 |
+
* @version 3.0.1
|
43 |
+
*/
|
44 |
+
class Dynamic_Featured_Image
|
45 |
+
{
|
46 |
+
/**
|
47 |
+
* Current version of the plugin.
|
48 |
+
*
|
49 |
+
* @since 3.0.0
|
50 |
+
*/
|
51 |
+
const VERSION = '3.3.0';
|
52 |
+
private $upload_dir, $upload_url, $prefix, $db, $textDomain, $_metabox_title, $_userFilter;
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Constructor. Hooks all interactions to initialize the class.
|
56 |
+
*
|
57 |
+
* @since 1.0.0
|
58 |
+
* @access public
|
59 |
+
* @global object $wpdb
|
60 |
+
*
|
61 |
+
* @see add_action()
|
62 |
+
*
|
63 |
+
* @return Void
|
64 |
+
*/
|
65 |
+
public function __construct()
|
66 |
+
{
|
67 |
+
$this->textDomain = 'dynamic-featured-image';
|
68 |
+
|
69 |
+
if ( is_admin() ) {
|
70 |
+
add_action( 'in_plugin_update_message-' . plugin_basename(__FILE__), array( $this, 'update_notice' ) );
|
71 |
+
}
|
72 |
+
|
73 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) );
|
74 |
+
add_action( 'add_meta_boxes', array( $this, 'initialize_featured_box' ) );
|
75 |
+
add_action( 'save_post', array( $this, 'save_meta' ) );
|
76 |
+
add_action( 'plugins_loaded', array( $this, 'load_plugin_textdomain' ) );
|
77 |
+
|
78 |
+
//handle ajax request
|
79 |
+
add_action( 'wp_ajax_dfiMetaBox_callback', array( $this, 'ajax_callback' ) );
|
80 |
+
|
81 |
+
//get the site protocol
|
82 |
+
$protocol = ( (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') ||
|
83 |
+
$_SERVER['SERVER_PORT'] == 443 ) ? "https://" : "http://";
|
84 |
+
|
85 |
+
$this->upload_dir = wp_upload_dir();
|
86 |
+
$this->upload_url = preg_replace('#^https?://#', '', $this->upload_dir['baseurl']);
|
87 |
+
|
88 |
+
//add protocol to the upload url
|
89 |
+
$this->upload_url = $protocol . $this->upload_url;
|
90 |
+
|
91 |
+
//post type filter added by user
|
92 |
+
$this->_userFilter = array();
|
93 |
+
|
94 |
+
global $wpdb;
|
95 |
+
$this->db = $wpdb;
|
96 |
+
|
97 |
+
} // END __construct()
|
98 |
+
|
99 |
+
/**
|
100 |
+
* Add required admin scripts
|
101 |
+
*
|
102 |
+
* @since 1.0.0
|
103 |
+
* @access public
|
104 |
+
*
|
105 |
+
* @see wp_enque_style()
|
106 |
+
* @see wp_register_script()
|
107 |
+
* @see wp_enqueue_script()
|
108 |
+
*
|
109 |
+
* @return Void
|
110 |
+
*/
|
111 |
+
public function enqueue_admin_scripts()
|
112 |
+
{
|
113 |
+
//enqueue styles
|
114 |
+
wp_enqueue_style( 'style-dfi', plugins_url( '/css/style-dfi.css', __FILE__ ), array(), self::VERSION );
|
115 |
+
wp_enqueue_style( 'dashicons', plugins_url( '/css/dashicons.css', __FILE__ ), array(), self::VERSION );
|
116 |
+
|
117 |
+
//register script
|
118 |
+
wp_register_script( 'scripts-dfi', plugins_url( '/js/script-dfi.js', __FILE__), array( 'jquery' ), self::VERSION );
|
119 |
+
|
120 |
+
//localize the script with required data
|
121 |
+
wp_localize_script(
|
122 |
+
'scripts-dfi',
|
123 |
+
'WP_SPECIFIC',
|
124 |
+
array(
|
125 |
+
'upload_url' => $this->upload_url,
|
126 |
+
'metabox_title' => __($this->_metabox_title, $this->textDomain),
|
127 |
+
'mediaSelector_title' => __('Dynamic Featured Image - Media Selector', $this->textDomain),
|
128 |
+
'mediaSelector_buttonText' => __('Set Featured Image', $this->textDomain)
|
129 |
+
)
|
130 |
+
);
|
131 |
+
|
132 |
+
//enqueue scripts
|
133 |
+
wp_enqueue_script( 'scripts-dfi' );
|
134 |
+
|
135 |
+
} // END initialize_components()
|
136 |
+
|
137 |
+
/**
|
138 |
+
* Add featured meta boxes dynamically
|
139 |
+
*
|
140 |
+
* @since 1.0.0
|
141 |
+
* @access public
|
142 |
+
* @global object $post
|
143 |
+
*
|
144 |
+
* @see get_post_meta()
|
145 |
+
* @see get_post_types()
|
146 |
+
* @see add_meta_box()
|
147 |
+
* @see add_filter()
|
148 |
+
*
|
149 |
+
* @return Void
|
150 |
+
*/
|
151 |
+
public function initialize_featured_box()
|
152 |
+
{
|
153 |
+
global $post;
|
154 |
+
|
155 |
+
//make metabox title dynamic
|
156 |
+
$this->_metabox_title = apply_filters('dfi_set_metabox_title', "Featured Image");
|
157 |
+
|
158 |
+
$featuredData = get_post_meta( $post->ID, 'dfiFeatured', true );
|
159 |
+
$totalFeatured = count( $featuredData );
|
160 |
+
|
161 |
+
$defaultFilter = array( 'attachment', 'revision', 'nav_menu_item' );
|
162 |
+
$this->_userFilter = apply_filters('dfi_post_type_user_filter', $this->_userFilter);
|
163 |
+
$filter = array_merge($defaultFilter, $this->_userFilter);
|
164 |
+
|
165 |
+
$postTypes = get_post_types();
|
166 |
+
$postTypes = array_diff( $postTypes, $filter );
|
167 |
+
|
168 |
+
$postTypes = apply_filters('dfi_post_types', $postTypes);
|
169 |
+
|
170 |
+
if ( !empty($featuredData) && $totalFeatured >= 1 ) {
|
171 |
+
$i = 2;
|
172 |
+
foreach ($featuredData as $featured) {
|
173 |
+
self::_dfi_add_meta_box($postTypes, $featured, $i);
|
174 |
+
$i++;
|
175 |
+
}
|
176 |
+
} else {
|
177 |
+
self::_dfi_add_meta_box($postTypes);
|
178 |
+
}
|
179 |
+
|
180 |
+
} // END initialize_featured_box()
|
181 |
+
|
182 |
+
/**
|
183 |
+
* Translates more than one digit number digit by digit.
|
184 |
+
* @param Integer $number Integer to be translated
|
185 |
+
* @return String Translated number
|
186 |
+
*/
|
187 |
+
private function _get_number_translation($number)
|
188 |
+
{
|
189 |
+
if ($number <= 9) {
|
190 |
+
return __($number, $this->textDomain);
|
191 |
+
} else {
|
192 |
+
$pieces = str_split($number, 1);
|
193 |
+
$buffer = '';
|
194 |
+
foreach ($pieces as $piece) {
|
195 |
+
$buffer .= __($piece, $this->textDomain);
|
196 |
+
}
|
197 |
+
|
198 |
+
return $buffer;
|
199 |
+
}
|
200 |
+
}
|
201 |
+
|
202 |
+
/**
|
203 |
+
* adds meta boxes
|
204 |
+
* @param Array $postTypes post types to show featured image box
|
205 |
+
* @param Object $featured callback arguments
|
206 |
+
* @param Integer $i index of the featured image
|
207 |
+
* @return Void
|
208 |
+
*/
|
209 |
+
private function _dfi_add_meta_box($postTypes, $featured = null, $i = null)
|
210 |
+
{
|
211 |
+
if ( !is_null($i) ) {
|
212 |
+
foreach ($postTypes as $type) {
|
213 |
+
add_meta_box(
|
214 |
+
'dfiFeaturedMetaBox-' . $i,
|
215 |
+
__($this->_metabox_title, $this->textDomain) . " " . self::_get_number_translation($i),
|
216 |
+
array( $this, 'featured_meta_box' ),
|
217 |
+
$type,
|
218 |
+
'side',
|
219 |
+
'low',
|
220 |
+
array( $featured, $i + 1 )
|
221 |
+
);
|
222 |
+
add_filter( "postbox_classes_{$type}_dfiFeaturedMetaBox-" . $i, array( $this, 'add_metabox_classes' ) );
|
223 |
+
}
|
224 |
+
|
225 |
+
} else {
|
226 |
+
foreach ($postTypes as $type) {
|
227 |
+
add_meta_box(
|
228 |
+
'dfiFeaturedMetaBox',
|
229 |
+
__( $this->_metabox_title, $this->textDomain ) . " " . __(2, $this->textDomain),
|
230 |
+
array( $this, 'featured_meta_box' ),
|
231 |
+
$type,
|
232 |
+
'side',
|
233 |
+
'low',
|
234 |
+
array( null, null )
|
235 |
+
);
|
236 |
+
add_filter( "postbox_classes_{$type}_dfiFeaturedMetaBox", array( $this, 'add_metabox_classes' ) );
|
237 |
+
}
|
238 |
+
}
|
239 |
+
|
240 |
+
}
|
241 |
+
|
242 |
+
/**
|
243 |
+
* Featured meta box as seen in the admin
|
244 |
+
*
|
245 |
+
* @since 1.0.0
|
246 |
+
* @access public
|
247 |
+
*
|
248 |
+
* @see wp_nonce_field()
|
249 |
+
* @see plugin_basename()
|
250 |
+
*
|
251 |
+
* @param Object $post global post object
|
252 |
+
* @param Array $featured array containing featured image count
|
253 |
+
*
|
254 |
+
* @return Void
|
255 |
+
*/
|
256 |
+
public function featured_meta_box($post, $featured)
|
257 |
+
{
|
258 |
+
$featuredImg = $featured['args'][0];
|
259 |
+
$featuredId = is_null( $featured['args'][1]) ? 2 : --$featured['args'][1];
|
260 |
+
|
261 |
+
$featuredImgTrimmed = $featuredImgFull = $featuredImg;
|
262 |
+
if ( !is_null( $featured['args'][0] ) ) {
|
263 |
+
@list( $featuredImgTrimmed, $featuredImgFull ) = explode( ',', $featuredImg );
|
264 |
+
}
|
265 |
+
|
266 |
+
try {
|
267 |
+
|
268 |
+
$thumbnail = $this->get_image_thumb( $this->upload_url . $featuredImgFull, 'medium' );
|
269 |
+
if ( is_null($thumbnail) ) {
|
270 |
+
|
271 |
+
//medium sized thumbnail image is missing
|
272 |
+
throw new Exception("Medium size image not found", 1);
|
273 |
+
|
274 |
+
}
|
275 |
+
|
276 |
+
} catch (Exception $e) {
|
277 |
+
|
278 |
+
//since medium sized thumbnail image was not found,
|
279 |
+
//let's set full image url as thumbnail
|
280 |
+
$thumbnail = $featuredImgFull;
|
281 |
+
|
282 |
+
}
|
283 |
+
|
284 |
+
//Add a nonce field
|
285 |
+
wp_nonce_field(plugin_basename(__FILE__), 'dfi_fimageplug-' . $featuredId);
|
286 |
+
echo self::_get_featured_box($featuredImgTrimmed, $featuredImg, $featuredId, $thumbnail);
|
287 |
+
|
288 |
+
} // END featured_meta_box()
|
289 |
+
|
290 |
+
/**
|
291 |
+
* Returns featured box html content
|
292 |
+
* @since 3.1.0
|
293 |
+
* @access private
|
294 |
+
*
|
295 |
+
* @param String $featuredImgTrimmed Medium sized image
|
296 |
+
* @param String $featuredImg Full sized image
|
297 |
+
* @param String $featuredId Attachment Id
|
298 |
+
* @param String $thumbnail Thumb sized image
|
299 |
+
*
|
300 |
+
* @return String Html content
|
301 |
+
*/
|
302 |
+
private function _get_featured_box($featuredImgTrimmed, $featuredImg, $featuredId, $thumbnail)
|
303 |
+
{
|
304 |
+
$hasFeaturedImage = !empty($featuredImgTrimmed) ? 'hasFeaturedImage' : '';
|
305 |
+
$thumbnail = !is_null($thumbnail) ? $thumbnail : '';
|
306 |
+
$dfiEmpty = is_null($featuredImgTrimmed) ? 'dfiImgEmpty' : '';
|
307 |
+
|
308 |
+
return "<a href='javascript:void(0)' class='dfiFeaturedImage {$hasFeaturedImage}' title='". __('Set Featured Image', $this->textDomain) . "' data-post-id='" . get_the_ID() . "'><span class='dashicons dashicons-camera'></span></a><br/>
|
309 |
+
<img src='" . $thumbnail . "' class='dfiImg {$dfiEmpty}'/>
|
310 |
+
<div class='dfiLinks'>
|
311 |
+
<a href='javascript:void(0)'' data-id='{$featuredId}' data-id-local='" . self::_get_number_translation( ($featuredId + 1) ) . "' class='dfiAddNew dashicons dashicons-plus' title='" . __('Add New', $this->textDomain) ."'></a>
|
312 |
+
<a href='javascript:void(0)' class='dfiRemove dashicons dashicons-minus' title='" . __('Remove', $this->textDomain) . "'></a>
|
313 |
+
</div>
|
314 |
+
<div class='dfiClearFloat'></div>
|
315 |
+
<input type='hidden' name='dfiFeatured[]' value='{$featuredImg}' class='dfiImageHolder' />";
|
316 |
+
}
|
317 |
+
|
318 |
+
/**
|
319 |
+
* Load new featured meta box via ajax
|
320 |
+
*
|
321 |
+
* @since 1.0.0
|
322 |
+
* @access public
|
323 |
+
*
|
324 |
+
* @see wp_nonce_field()
|
325 |
+
* @see plugin_basename()
|
326 |
+
*
|
327 |
+
* @return Void
|
328 |
+
*/
|
329 |
+
public function ajax_callback()
|
330 |
+
{
|
331 |
+
$featuredId = isset($_POST['id']) ? (int) strip_tags( trim( $_POST['id'] ) ) : null;
|
332 |
+
|
333 |
+
if ( is_null( $featuredId ) ) {
|
334 |
+
return;
|
335 |
+
}
|
336 |
+
|
337 |
+
wp_nonce_field( plugin_basename(__FILE__), 'dfi_fimageplug-' . $featuredId );
|
338 |
+
?>
|
339 |
+
<a href="javascript:void(0)" class='dfiFeaturedImage' title="<?php echo __('Set Featured Image', $this->textDomain) ?>"><span class="dashicons dashicons-camera"></span></a><br/>
|
340 |
+
<img src="" class='dfiImg dfiImgEmpty'/>
|
341 |
+
<div class='dfiLinks'>
|
342 |
+
<a href="javascript:void(0)" data-id='<?php echo $featuredId ?>' data-id-local='<?php echo self::_get_number_translation( ($featuredId + 1) ) ?>' class='dfiAddNew dashicons dashicons-plus' title="<?php echo __('Add New', $this->textDomain) ?>"></a>
|
343 |
+
<a href="javascript:void(0)" class='dfiRemove dashicons dashicons-minus' title="<?php echo __('Remove', $this->textDomain) ?>"></a>
|
344 |
+
</div>
|
345 |
+
<div class='dfiClearFloat'></div>
|
346 |
+
<input type='hidden' name="dfiFeatured[]" value="" class="dfiImageHolder" />
|
347 |
+
<?php
|
348 |
+
die();
|
349 |
+
|
350 |
+
} // END MetaBox_callback())
|
351 |
+
|
352 |
+
/**
|
353 |
+
* Add custom class 'featured-meta-box' to meta box
|
354 |
+
*
|
355 |
+
* @since 1.0.0
|
356 |
+
* @access public
|
357 |
+
*
|
358 |
+
* @see add_metabox_classes
|
359 |
+
*
|
360 |
+
* @param $classes classes to add in the meta box
|
361 |
+
*
|
362 |
+
* @return string
|
363 |
+
*/
|
364 |
+
public function add_metabox_classes($classes)
|
365 |
+
{
|
366 |
+
array_push( $classes, 'featured-meta-box' );
|
367 |
+
|
368 |
+
return $classes;
|
369 |
+
|
370 |
+
} // END add_metabox_classes()
|
371 |
+
|
372 |
+
/**
|
373 |
+
* Update featured images in the database
|
374 |
+
*
|
375 |
+
* @since 1.0.0
|
376 |
+
* @access public
|
377 |
+
*
|
378 |
+
* @see wp_verify_nonce()
|
379 |
+
* @see plugin_basename()
|
380 |
+
* @see update_post_meta()
|
381 |
+
* @see current_user_can()
|
382 |
+
*
|
383 |
+
* @param Integer $post_id current post id
|
384 |
+
*
|
385 |
+
* @return Void
|
386 |
+
*/
|
387 |
+
public function save_meta($post_id)
|
388 |
+
{
|
389 |
+
//Check autosave
|
390 |
+
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
|
391 |
+
return;
|
392 |
+
}
|
393 |
+
|
394 |
+
$keys = array_keys( $_POST );
|
395 |
+
foreach ($keys as $key) {
|
396 |
+
if ( preg_match( '/dfi_fimageplug-\d+$/', $key ) ) {
|
397 |
+
//Verify nonce
|
398 |
+
if ( !wp_verify_nonce( $_POST[$key], plugin_basename(__FILE__) ) ) {
|
399 |
+
return;
|
400 |
+
}
|
401 |
+
}
|
402 |
+
}
|
403 |
+
|
404 |
+
//Check permission before saving data
|
405 |
+
if ( current_user_can( 'edit_posts', $post_id ) && isset( $_POST['dfiFeatured'] ) ) {
|
406 |
+
update_post_meta( $post_id, 'dfiFeatured', $_POST['dfiFeatured'] );
|
407 |
+
}
|
408 |
+
|
409 |
+
} // END save_meta()
|
410 |
+
|
411 |
+
/**
|
412 |
+
* Add update notice. Displayed in plugin update page.
|
413 |
+
*
|
414 |
+
* @since 2.0.0
|
415 |
+
* @access public
|
416 |
+
* @ignore
|
417 |
+
*
|
418 |
+
* @return Void
|
419 |
+
*/
|
420 |
+
public function update_notice()
|
421 |
+
{
|
422 |
+
$info = __( 'ATTENTION! Please read the <a href="https://github.com/ankitpokhrel/Dynamic-Featured-Image/wiki" target="_blank">DOCUMENTATION</a> properly before update.', $this->textDomain );
|
423 |
+
echo '<div style="color:red; padding:7px 0;">' . strip_tags( $info, '<a><b><i><span>' ) . '</div>';
|
424 |
+
|
425 |
+
} // END update_notice()
|
426 |
+
|
427 |
+
/** Helper functions */
|
428 |
+
|
429 |
+
private function execute_query($query)
|
430 |
+
{
|
431 |
+
return $this->db->get_var( $query );
|
432 |
+
}
|
433 |
+
|
434 |
+
/**
|
435 |
+
* Get attachment id of the image by image url
|
436 |
+
*
|
437 |
+
* @since 3.1.7
|
438 |
+
* @access private
|
439 |
+
* @global object $wpdb
|
440 |
+
*
|
441 |
+
* @param String $image_url url of the image
|
442 |
+
*
|
443 |
+
* @return string
|
444 |
+
*/
|
445 |
+
private function _get_attachment_id($image_url)
|
446 |
+
{
|
447 |
+
return self::execute_query($this->db->prepare( "SELECT ID FROM " . $this->db->posts . " WHERE guid = %s", $image_url ));
|
448 |
+
|
449 |
+
} // END _get_attachment_id()
|
450 |
+
|
451 |
+
/**
|
452 |
+
* Get image url of the image by attachment id
|
453 |
+
*
|
454 |
+
* @since 2.0.0
|
455 |
+
* @access public
|
456 |
+
*
|
457 |
+
* @see wp_get_attachment_image_src()
|
458 |
+
*
|
459 |
+
* @param Integer $attachment_id attachment id of an image
|
460 |
+
* @param String $size size of the image to fetch (thumbnail, medium, full)
|
461 |
+
*
|
462 |
+
* @return String
|
463 |
+
*/
|
464 |
+
public function get_image_url($attachment_id, $size = 'full')
|
465 |
+
{
|
466 |
+
$image_thumb = wp_get_attachment_image_src( $attachment_id, $size );
|
467 |
+
|
468 |
+
return empty( $image_thumb ) ? null : $image_thumb[0];
|
469 |
+
|
470 |
+
} // END get_image_url()
|
471 |
+
|
472 |
+
/**
|
473 |
+
* Get image thumbnail url of specific size by image url
|
474 |
+
*
|
475 |
+
* @since 2.0.0
|
476 |
+
* @access public
|
477 |
+
*
|
478 |
+
* @see get_image_id()
|
479 |
+
* @see wp_get_attachment_image_src()
|
480 |
+
*
|
481 |
+
* @param String $image_url url of an image
|
482 |
+
* @param String $size size of the image to fetch (thumbnail, medium, full)
|
483 |
+
*
|
484 |
+
* @return String
|
485 |
+
*/
|
486 |
+
public function get_image_thumb($image_url, $size = 'thumbnail')
|
487 |
+
{
|
488 |
+
$attachment_id = self::get_image_id( $image_url );
|
489 |
+
$image_thumb = wp_get_attachment_image_src( $attachment_id, $size );
|
490 |
+
|
491 |
+
return empty( $image_thumb ) ? null : $image_thumb[0];
|
492 |
+
|
493 |
+
} // END get_image_thumb()
|
494 |
+
|
495 |
+
/**
|
496 |
+
* Gets attachment id from given image url
|
497 |
+
* @param String $image_url url of an image
|
498 |
+
* @return Integer|Null attachment id of an image
|
499 |
+
*
|
500 |
+
* @since 2.0.0
|
501 |
+
* @access public
|
502 |
+
*/
|
503 |
+
public function get_image_id($image_url)
|
504 |
+
{
|
505 |
+
$attachment_id = self::_get_attachment_id( $image_url );
|
506 |
+
if ( is_null($attachment_id) ) {
|
507 |
+
//check if the image is edited image
|
508 |
+
//and try to get the attachment id
|
509 |
+
$image_url = str_replace($this->upload_url . "/", '', $image_url);
|
510 |
+
$row = self::execute_query( $this->db->prepare( "SELECT post_id FROM " . $this->db->postmeta . " WHERE meta_value = %s", $image_url ) );
|
511 |
+
if ( !is_null($row) ) {
|
512 |
+
$attachment_id = $row;
|
513 |
+
}
|
514 |
+
}
|
515 |
+
|
516 |
+
return $attachment_id;
|
517 |
+
}
|
518 |
+
|
519 |
+
/**
|
520 |
+
* Get image title
|
521 |
+
*
|
522 |
+
* @since 2.0.0
|
523 |
+
* @access public
|
524 |
+
*
|
525 |
+
* @param String $image_url url of an image
|
526 |
+
*
|
527 |
+
* @return String
|
528 |
+
*/
|
529 |
+
public function get_image_title($image_url)
|
530 |
+
{
|
531 |
+
return self::execute_query( $this->db->prepare( "SELECT post_title FROM " . $this->db->posts . " WHERE guid = %s", $image_url ) );
|
532 |
+
|
533 |
+
} // END get_image_title()
|
534 |
+
|
535 |
+
/**
|
536 |
+
* Get image title by id
|
537 |
+
*
|
538 |
+
* @since 2.0.0
|
539 |
+
* @access public
|
540 |
+
*
|
541 |
+
* @param Integer $attachment_id attachment id of an image
|
542 |
+
*
|
543 |
+
* @return String
|
544 |
+
*/
|
545 |
+
public function get_image_title_by_id($attachment_id)
|
546 |
+
{
|
547 |
+
return self::execute_query( $this->db->prepare( "SELECT post_title FROM " . $this->db->posts . " WHERE ID = %d", $attachment_id ) );
|
548 |
+
|
549 |
+
} // END get_image_title_by_id()
|
550 |
+
|
551 |
+
/**
|
552 |
+
* Get image caption
|
553 |
+
*
|
554 |
+
* @since 2.0.0
|
555 |
+
* @access public
|
556 |
+
*
|
557 |
+
* @param String $image_url url of an image
|
558 |
+
*
|
559 |
+
* @return String
|
560 |
+
*/
|
561 |
+
public function get_image_caption($image_url)
|
562 |
+
{
|
563 |
+
return self::execute_query( $this->db->prepare("SELECT post_excerpt FROM " . $this->db->posts . " WHERE guid = %s", $image_url ) );
|
564 |
+
|
565 |
+
} // END get_image_caption()
|
566 |
+
|
567 |
+
/**
|
568 |
+
* Get image caption by id
|
569 |
+
*
|
570 |
+
* @since 2.0.0
|
571 |
+
* @access public
|
572 |
+
*
|
573 |
+
* @param Integer $attachment_id attachment id of an image
|
574 |
+
*
|
575 |
+
* @return String
|
576 |
+
*/
|
577 |
+
public function get_image_caption_by_id($attachment_id)
|
578 |
+
{
|
579 |
+
return self::execute_query( $this->db->prepare("SELECT post_excerpt FROM " . $this->db->posts . " WHERE ID = %d", $attachment_id) );
|
580 |
+
|
581 |
+
} // END get_image_caption_by_id()
|
582 |
+
|
583 |
+
/**
|
584 |
+
* Get image alternate text
|
585 |
+
*
|
586 |
+
* @since 2.0.0
|
587 |
+
* @access public
|
588 |
+
*
|
589 |
+
* @see get_post_meta()
|
590 |
+
*
|
591 |
+
* @param String $image_url url of an image
|
592 |
+
*
|
593 |
+
* @return String
|
594 |
+
*/
|
595 |
+
public function get_image_alt($image_url)
|
596 |
+
{
|
597 |
+
$attachment = $this->db->get_col( $this->db->prepare( "SELECT ID FROM " . $this->db->posts . " WHERE guid = %s", $image_url ) );
|
598 |
+
|
599 |
+
$alt = null;
|
600 |
+
if ( !empty( $attachment ) ) {
|
601 |
+
$alt = get_post_meta( $attachment[0], '_wp_attachment_image_alt' );
|
602 |
+
}
|
603 |
+
|
604 |
+
return ( is_null( $alt ) || empty( $alt ) ) ? null : $alt[0];
|
605 |
+
|
606 |
+
} // END get_image_alt()
|
607 |
+
|
608 |
+
/**
|
609 |
+
* Get image alternate text by attachment id
|
610 |
+
*
|
611 |
+
* @since 2.0.0
|
612 |
+
* @access public
|
613 |
+
*
|
614 |
+
* @see get_post_meta()
|
615 |
+
*
|
616 |
+
* @param Integer $attachment_id attachment id of an image
|
617 |
+
*
|
618 |
+
* @return String
|
619 |
+
*/
|
620 |
+
public function get_image_alt_by_id($attachment_id)
|
621 |
+
{
|
622 |
+
$alt = get_post_meta($attachment_id, '_wp_attachment_image_alt');
|
623 |
+
|
624 |
+
return empty($alt) ? null : $alt[0];
|
625 |
+
|
626 |
+
} // END get_image_alt_by_id()
|
627 |
+
|
628 |
+
/**
|
629 |
+
* Get image description
|
630 |
+
*
|
631 |
+
* @since 3.0.0
|
632 |
+
* @access public
|
633 |
+
*
|
634 |
+
* @param String $image_url url of an image
|
635 |
+
*
|
636 |
+
* @return String
|
637 |
+
*/
|
638 |
+
public function get_image_description($image_url)
|
639 |
+
{
|
640 |
+
return self::execute_query( $this->db->prepare( "SELECT post_content FROM " . $this->db->posts . " WHERE guid = %s", $image_url ) );
|
641 |
+
|
642 |
+
} // END get_image_description()
|
643 |
+
|
644 |
+
/**
|
645 |
+
* Get image description by id
|
646 |
+
*
|
647 |
+
* @since 3.0.0
|
648 |
+
* @access public
|
649 |
+
*
|
650 |
+
* @param Integer $attachment_id attachment id of an image
|
651 |
+
*
|
652 |
+
* @return String
|
653 |
+
*/
|
654 |
+
public function get_image_description_by_id($attachment_id)
|
655 |
+
{
|
656 |
+
return self::execute_query( $this->db->prepare( "SELECT post_content FROM " . $this->db->posts . " WHERE ID = %d", $attachment_id ) );
|
657 |
+
|
658 |
+
} // END get_image_description_by_id()
|
659 |
+
|
660 |
+
/**
|
661 |
+
* Get all attachment ids of the post
|
662 |
+
*
|
663 |
+
* @since 2.0.0
|
664 |
+
* @access public
|
665 |
+
*
|
666 |
+
* @see get_post_meta()
|
667 |
+
*
|
668 |
+
* @param Integer $post_id id of the current post
|
669 |
+
*
|
670 |
+
* @return Array
|
671 |
+
*/
|
672 |
+
public function get_post_attachment_ids($post_id)
|
673 |
+
{
|
674 |
+
$dfiImages = get_post_meta($post_id, 'dfiFeatured', true);
|
675 |
+
|
676 |
+
$retVal = array();
|
677 |
+
if ( !empty( $dfiImages ) && is_array( $dfiImages ) ) {
|
678 |
+
foreach ($dfiImages as $dfiImage) {
|
679 |
+
@list( $dfiImageTrimmed, $dfiImageFull ) = explode( ',', $dfiImage );
|
680 |
+
|
681 |
+
$retVal[] = $this->get_image_id( $this->upload_url . $dfiImageFull );
|
682 |
+
}
|
683 |
+
}
|
684 |
+
|
685 |
+
return $retVal;
|
686 |
+
|
687 |
+
} // END get_post_attachment_ids()
|
688 |
+
|
689 |
+
/**
|
690 |
+
* Fetches featured image data of nth position
|
691 |
+
*
|
692 |
+
* @since 3.0.0
|
693 |
+
* @access public
|
694 |
+
*
|
695 |
+
* @see get_featured_images()
|
696 |
+
*
|
697 |
+
* @param Integer $position position of the featured image
|
698 |
+
* @param Integer $post_id id of the current post
|
699 |
+
*
|
700 |
+
* @return Array if found, null otherwise
|
701 |
+
*/
|
702 |
+
public function get_nth_featured_image($position, $post_id = null)
|
703 |
+
{
|
704 |
+
if ( is_null( $post_id ) ) {
|
705 |
+
global $post;
|
706 |
+
$post_id = $post->ID;
|
707 |
+
}
|
708 |
+
|
709 |
+
$featured_images = $this->get_featured_images( $post_id );
|
710 |
+
|
711 |
+
return isset($featured_images[$position - 2 ]) ? $featured_images[$position - 2] : null;
|
712 |
+
|
713 |
+
} // END get_nth_featured_image()
|
714 |
+
|
715 |
+
/**
|
716 |
+
* Check if the image is attached with the particular post
|
717 |
+
*
|
718 |
+
* @since 2.0.0
|
719 |
+
* @access public
|
720 |
+
*
|
721 |
+
* @see get_post_attachment_ids()
|
722 |
+
*
|
723 |
+
* @param $attachment_id attachment id of an image
|
724 |
+
* @param $post_id id of the current post
|
725 |
+
*
|
726 |
+
* @return boolean
|
727 |
+
*/
|
728 |
+
public function is_attached($attachment_id, $post_id)
|
729 |
+
{
|
730 |
+
$attachment_ids = $this->get_post_attachment_ids( $post_id );
|
731 |
+
|
732 |
+
return in_array( $attachment_id, $attachment_ids ) ? true : false;
|
733 |
+
|
734 |
+
} // END is_attached()
|
735 |
+
|
736 |
+
/**
|
737 |
+
* Retrieve featured images for specific post(s)
|
738 |
+
*
|
739 |
+
* @since 2.0.0
|
740 |
+
* @access public
|
741 |
+
*
|
742 |
+
* @see get_post_meta()
|
743 |
+
*
|
744 |
+
* @param Integer $post_id id of the current post
|
745 |
+
*
|
746 |
+
* @return Array
|
747 |
+
*/
|
748 |
+
public function get_featured_images($post_id = null)
|
749 |
+
{
|
750 |
+
if ( is_null( $post_id ) ) {
|
751 |
+
global $post;
|
752 |
+
$post_id = $post->ID;
|
753 |
+
}
|
754 |
+
|
755 |
+
$dfiImages = get_post_meta($post_id, 'dfiFeatured', true);
|
756 |
+
|
757 |
+
$retImages = array();
|
758 |
+
if ( !empty( $dfiImages ) && is_array( $dfiImages ) ) {
|
759 |
+
$dfiImages = array_filter($dfiImages);
|
760 |
+
|
761 |
+
$count = 0;
|
762 |
+
foreach ($dfiImages as $dfiImage) {
|
763 |
+
@list( $dfiImageTrimmed, $dfiImageFull ) = explode( ',', $dfiImage );
|
764 |
+
|
765 |
+
try {
|
766 |
+
|
767 |
+
$retImages[$count]['thumb'] = self::_get_real_upload_path( $dfiImageTrimmed );
|
768 |
+
$retImages[$count]['full'] = self::_get_real_upload_path( $dfiImageFull );
|
769 |
+
$retImages[$count]['attachment_id'] = $this->get_image_id( $retImages[$count]['full'] );
|
770 |
+
|
771 |
+
} catch (Exception $e) { /* Ignore the exception and continue with other featured images */ }
|
772 |
+
|
773 |
+
$count++;
|
774 |
+
}
|
775 |
+
}
|
776 |
+
|
777 |
+
return $retImages;
|
778 |
+
|
779 |
+
} // END get_featured_images()
|
780 |
+
|
781 |
+
/**
|
782 |
+
* Check to see if the upload url is already available in path.
|
783 |
+
*
|
784 |
+
* @since 3.1.14
|
785 |
+
* @access protected
|
786 |
+
*
|
787 |
+
* @param string $img
|
788 |
+
* @return string
|
789 |
+
*/
|
790 |
+
protected function _get_real_upload_path( $img ) {
|
791 |
+
//check if upload path is already attached
|
792 |
+
if ( strpos($img, $this->upload_url) !== false ) {
|
793 |
+
return $img;
|
794 |
+
}
|
795 |
+
|
796 |
+
return $this->upload_url . $img;
|
797 |
+
} // END _get_real_upload_path()
|
798 |
+
|
799 |
+
/**
|
800 |
+
* Retrieve featured images for specific post(s) including the default Featured Image
|
801 |
+
*
|
802 |
+
* @since 3.1.7
|
803 |
+
* @access public
|
804 |
+
*
|
805 |
+
* @see $this->get_featured_images()
|
806 |
+
*
|
807 |
+
* @param Integer $post_id id of the current post
|
808 |
+
*
|
809 |
+
* @return Array An array of images or an empty array on failure
|
810 |
+
*/
|
811 |
+
public function get_all_featured_images($post_id = null)
|
812 |
+
{
|
813 |
+
if ( is_null( $post_id ) ) {
|
814 |
+
global $post;
|
815 |
+
$post_id = $post->ID;
|
816 |
+
}
|
817 |
+
|
818 |
+
$thumbnail_id = get_post_thumbnail_id( $post_id );
|
819 |
+
|
820 |
+
$featured_image_array = array();
|
821 |
+
if ( ! empty( $thumbnail_id ) ) {
|
822 |
+
$featured_image = array(
|
823 |
+
'thumb' => wp_get_attachment_thumb_url( $thumbnail_id ),
|
824 |
+
'full' => wp_get_attachment_url( $thumbnail_id ),
|
825 |
+
'attachment_id' => $thumbnail_id
|
826 |
+
);
|
827 |
+
$featured_image_array[] = $featured_image;
|
828 |
+
}
|
829 |
+
|
830 |
+
$dfiImages = $this->get_featured_images( $post_id );
|
831 |
+
|
832 |
+
$all_featured_images = array_merge( $featured_image_array, $dfiImages );
|
833 |
+
|
834 |
+
return $all_featured_images;
|
835 |
+
|
836 |
+
}
|
837 |
+
|
838 |
+
/**
|
839 |
+
* Load the plugin's textdomain hooked to 'plugins_loaded'.
|
840 |
+
*
|
841 |
+
* @since 1.0.0
|
842 |
+
* @access public
|
843 |
+
*
|
844 |
+
* @see load_plugin_textdomain()
|
845 |
+
* @see plugin_basename()
|
846 |
+
* @action plugins_loaded
|
847 |
+
*
|
848 |
+
* @return void
|
849 |
+
*/
|
850 |
+
public function load_plugin_textdomain()
|
851 |
+
{
|
852 |
+
load_plugin_textdomain(
|
853 |
+
$this->textDomain,
|
854 |
+
false,
|
855 |
+
dirname( plugin_basename( __FILE__ ) ) . '/languages/'
|
856 |
+
);
|
857 |
+
|
858 |
+
} // END load_plugin_textdomain()
|
859 |
+
|
860 |
+
} // END class Dynamic_Featured_Image
|
861 |
+
|
862 |
+
|
863 |
+
/**
|
864 |
+
* Instantiate the main class
|
865 |
+
*
|
866 |
+
* @since 1.0.0
|
867 |
+
* @access public
|
868 |
+
*
|
869 |
+
* @var object $dynamic_featured_image holds the instantiated class {@uses Dynamic_Featured_Image}
|
870 |
+
*/
|
871 |
+
global $dynamic_featured_image;
|
872 |
+
$dynamic_featured_image = new Dynamic_Featured_Image();
|
img/spinner.gif
ADDED
Binary file
|
js/script-dfi.js
ADDED
@@ -0,0 +1,165 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* @file script-dfi.js
|
3 |
+
*
|
4 |
+
* Script for dynamic featured image plugin.
|
5 |
+
*
|
6 |
+
* Copyright (c) 2013, Ankit Pokhrel <ankitpokhrel@gmail.com, http://ankitpokhrel.com.np>
|
7 |
+
*/
|
8 |
+
|
9 |
+
jQuery(document).ready(function($) {
|
10 |
+
var current = null;
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Add new meta box
|
14 |
+
*/
|
15 |
+
$(document).on('click', '.dfiAddNew', function() {
|
16 |
+
|
17 |
+
var obj = $(this);
|
18 |
+
var id = parseInt( $('.featured-meta-box:last').find('.dfiAddNew').data('id'), 10 );
|
19 |
+
var idLocal = $('.featured-meta-box:last').find('.dfiAddNew').attr('data-id-local');
|
20 |
+
|
21 |
+
var newMetaBox = obj.closest('.featured-meta-box').clone();
|
22 |
+
newMetaBox.find('.hndle span').html( WP_SPECIFIC.metabox_title + " " + idLocal );
|
23 |
+
|
24 |
+
newMetaBox.attr('id', 'dfiFeaturedMetaBox' + "-" + (++id) );
|
25 |
+
newMetaBox.find('.handlediv').addClass('dfiDynamicBox');
|
26 |
+
|
27 |
+
var metaBoxContentObj = newMetaBox.find('.inside');
|
28 |
+
metaBoxContentObj.html('');
|
29 |
+
obj.hide();
|
30 |
+
obj.parent().append('<span class="dfiLoading"></span>').hide().fadeIn(200);
|
31 |
+
|
32 |
+
$.ajax({
|
33 |
+
type: 'POST',
|
34 |
+
url: 'admin-ajax.php',
|
35 |
+
data: { action: 'dfiMetaBox_callback', id: id },
|
36 |
+
success: function(response){
|
37 |
+
metaBoxContentObj.append(response);
|
38 |
+
newMetaBox.appendTo( obj.closest('.featured-meta-box').parent() );
|
39 |
+
|
40 |
+
//Add post id
|
41 |
+
newMetaBox.find('.dfiFeaturedImage').attr('data-post-id', obj.parent().parent().find('.dfiFeaturedImage').attr('data-post-id') );
|
42 |
+
|
43 |
+
var alias = obj;
|
44 |
+
obj.parent().find('.dfiLoading').fadeOut(300, function(){ $(this).remove(); alias.fadeIn(200); });
|
45 |
+
}
|
46 |
+
});
|
47 |
+
|
48 |
+
});
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Remove featured image meta box
|
52 |
+
*/
|
53 |
+
$(document).on('click', '.dfiRemove', function() {
|
54 |
+
|
55 |
+
if( confirm('Are you sure?') ) {
|
56 |
+
|
57 |
+
var dfiMetaBox = $(this).closest('.featured-meta-box');
|
58 |
+
var totalMetaBox = $('.featured-meta-box').length;
|
59 |
+
|
60 |
+
if( totalMetaBox === 1 ) {
|
61 |
+
|
62 |
+
dfiMetaBox.find('.dfiImg').attr('src', '');
|
63 |
+
dfiMetaBox.find('.dfiImageHolder').val('');
|
64 |
+
dfiMetaBox.find('.dfiFeaturedImage')
|
65 |
+
.removeClass('hasFeaturedImage')
|
66 |
+
.show()
|
67 |
+
.animate({ opacity: 1, display: 'inline-block' }, 600);
|
68 |
+
|
69 |
+
} else {
|
70 |
+
|
71 |
+
dfiMetaBox.fadeOut(500, function(){
|
72 |
+
$(this).remove();
|
73 |
+
});
|
74 |
+
|
75 |
+
}
|
76 |
+
|
77 |
+
}
|
78 |
+
|
79 |
+
});
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Display custom media uploader and allow to
|
83 |
+
* select featured image from the media library
|
84 |
+
*/
|
85 |
+
$(document).on('click', '.dfiFeaturedImage', function() {
|
86 |
+
|
87 |
+
current = $(this);
|
88 |
+
|
89 |
+
if( null !== current) {
|
90 |
+
|
91 |
+
var dfi_uploader = wp.media({
|
92 |
+
|
93 |
+
title: WP_SPECIFIC.mediaSelector_title,
|
94 |
+
button: {
|
95 |
+
text: WP_SPECIFIC.mediaSelector_buttonText
|
96 |
+
},
|
97 |
+
multiple: false,
|
98 |
+
|
99 |
+
}).on('select', function() {
|
100 |
+
|
101 |
+
var attachment = dfi_uploader.state().get('selection').first().toJSON();
|
102 |
+
var fullSize = attachment.url;
|
103 |
+
var imgUrl = (typeof attachment.sizes.thumbnail === "undefined") ? fullSize : attachment.sizes.thumbnail.url;
|
104 |
+
var imgUrlTrimmed, fullUrlTrimmed;
|
105 |
+
|
106 |
+
imgUrlTrimmed = imgUrl.replace(WP_SPECIFIC.upload_url, "");
|
107 |
+
|
108 |
+
fullUrlTrimmed = fullSize.replace(WP_SPECIFIC.upload_url, "");
|
109 |
+
|
110 |
+
var featuredBox = current.parent();
|
111 |
+
|
112 |
+
featuredBox.find('.fImg').attr({
|
113 |
+
'src': imgUrl,
|
114 |
+
'data-src': fullSize
|
115 |
+
});
|
116 |
+
|
117 |
+
featuredBox.find('.dfiFeaturedImage').addClass('hasFeaturedImage');
|
118 |
+
|
119 |
+
var dfiFeaturedImages = [imgUrlTrimmed, fullUrlTrimmed];
|
120 |
+
|
121 |
+
/**
|
122 |
+
* Check if medium sized image exists
|
123 |
+
* @type object
|
124 |
+
*/
|
125 |
+
var medium = attachment.url;
|
126 |
+
if( typeof attachment.sizes.medium !== "undefined" ) {
|
127 |
+
medium = attachment.sizes.medium.url;
|
128 |
+
}
|
129 |
+
|
130 |
+
featuredBox.find('img').attr('src', medium).fadeIn(200);
|
131 |
+
featuredBox.find('input.dfiImageHolder').val(dfiFeaturedImages);
|
132 |
+
|
133 |
+
}).open();
|
134 |
+
}
|
135 |
+
|
136 |
+
return false;
|
137 |
+
|
138 |
+
});
|
139 |
+
|
140 |
+
/**
|
141 |
+
* Enable toggle of dynamically generated featured box
|
142 |
+
*/
|
143 |
+
$(document).on('click', '.dfiDynamicBox', function() {
|
144 |
+
$(this).parent().toggleClass('closed');
|
145 |
+
});
|
146 |
+
|
147 |
+
/**
|
148 |
+
* Add a hover animation in image
|
149 |
+
*/
|
150 |
+
$(document).on({
|
151 |
+
mouseenter: function(){
|
152 |
+
var obj = $(this).closest('.featured-meta-box');
|
153 |
+
obj.find('.dfiImg').stop(true, true).animate({ opacity: 0.3 }, 300 );
|
154 |
+
obj.find('.hasFeaturedImage').fadeIn(200);
|
155 |
+
},
|
156 |
+
mouseleave: function(){
|
157 |
+
var obj = $(this);
|
158 |
+
obj.find('.dfiImg').stop(true, true).animate({ opacity: 1 }, 300 );
|
159 |
+
obj.find('.hasFeaturedImage').fadeOut(100);
|
160 |
+
}
|
161 |
+
}, '.featured-meta-box .inside');
|
162 |
+
|
163 |
+
});
|
164 |
+
|
165 |
+
//END
|
languages/dynamic-featured-image-bs_BA.mo
ADDED
Binary file
|
languages/dynamic-featured-image-bs_BA.po
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: dynamic-featured-image\n"
|
4 |
+
"POT-Creation-Date: 2014-07-19 16:43+0545\n"
|
5 |
+
"PO-Revision-Date: 2014-07-21 23:00+0545\n"
|
6 |
+
"Last-Translator: Ankit Pokhrel <ankitpokhrel@gmail.com>\n"
|
7 |
+
"Language-Team: Ankit Pokhrel <ankitpokhrel@gmail.com>\n"
|
8 |
+
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"X-Generator: Poedit 1.5.7\n"
|
12 |
+
"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"X-Poedit-SearchPath-0: D:\\Program Files\\VertrigoServ\\www\\wp39\\wp-content"
|
15 |
+
"\\plugins\\dynamic-featured-image\n"
|
16 |
+
|
17 |
+
msgid "Featured Image "
|
18 |
+
msgstr "Glavna slika "
|
19 |
+
|
20 |
+
msgid "Dynamic Featured Image - Media Selector"
|
21 |
+
msgstr "Dinamična Glavna Slika – Izbor Media"
|
22 |
+
|
23 |
+
msgid "Set Featured Image"
|
24 |
+
msgstr "Postavite glavnu sliku"
|
25 |
+
|
26 |
+
msgid "Add New"
|
27 |
+
msgstr "Dodoajte novu"
|
28 |
+
|
29 |
+
msgid "Remove"
|
30 |
+
msgstr "Uklonite"
|
31 |
+
|
32 |
+
msgid ""
|
33 |
+
"ATTENTION! Please read the <a href=\"https://github.com/ankitpokhrel/Dynamic-"
|
34 |
+
"Featured-Image/wiki\" target=\"_blank\">DOCUMENTATION</a> properly before "
|
35 |
+
"update."
|
36 |
+
msgstr ""
|
37 |
+
"PAŽNJA! Molimo vas pažljivo pročitajte <a href=\"https://github.com/"
|
38 |
+
"ankitpokhrel/Dynamic-Featured-Image/wiki\" target=\"_blank\">DOKUMENTACIJU</"
|
39 |
+
"a> pre ažuriranja."
|
40 |
+
|
41 |
+
msgid "0"
|
42 |
+
msgstr "0"
|
43 |
+
|
44 |
+
msgid "1"
|
45 |
+
msgstr "1"
|
46 |
+
|
47 |
+
msgid "2"
|
48 |
+
msgstr "2"
|
49 |
+
|
50 |
+
msgid "3"
|
51 |
+
msgstr "3"
|
52 |
+
|
53 |
+
msgid "4"
|
54 |
+
msgstr "4"
|
55 |
+
|
56 |
+
msgid "5"
|
57 |
+
msgstr "5"
|
58 |
+
|
59 |
+
msgid "6"
|
60 |
+
msgstr "6"
|
61 |
+
|
62 |
+
msgid "7"
|
63 |
+
msgstr "7"
|
64 |
+
|
65 |
+
msgid "8"
|
66 |
+
msgstr "8"
|
67 |
+
|
68 |
+
msgid "9"
|
69 |
+
msgstr "9"
|
languages/dynamic-featured-image-he_IL.mo
ADDED
Binary file
|
languages/dynamic-featured-image-he_IL.po
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: dynamic-featured-image\n"
|
4 |
+
"POT-Creation-Date: 2014-07-19 16:43+0545\n"
|
5 |
+
"PO-Revision-Date: 2014-07-19 22:23+0545\n"
|
6 |
+
"Last-Translator: Ankit Pokhrel <ankitpokhrel@gmail.com>\n"
|
7 |
+
"Language-Team: Ankit Pokhrel <ankitpokhrel@gmail.com>\n"
|
8 |
+
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"X-Generator: Poedit 1.5.7\n"
|
12 |
+
"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"X-Poedit-SearchPath-0: D:\\Program Files\\VertrigoServ\\www\\wp39\\wp-content"
|
15 |
+
"\\plugins\\dynamic-featured-image\n"
|
16 |
+
|
17 |
+
msgid "Featured Image "
|
18 |
+
msgstr "תמונה ראשית "
|
19 |
+
|
20 |
+
msgid "Dynamic Featured Image - Media Selector"
|
21 |
+
msgstr "תמונה ראשית דינאמית - בחירת מדיה"
|
22 |
+
|
23 |
+
msgid "Set Featured Image"
|
24 |
+
msgstr "קבע תמונה ראשית"
|
25 |
+
|
26 |
+
msgid "Add New"
|
27 |
+
msgstr "הוסף תמונה"
|
28 |
+
|
29 |
+
msgid "Remove"
|
30 |
+
msgstr "הסר"
|
31 |
+
|
32 |
+
msgid ""
|
33 |
+
"ATTENTION! Please read the <a href=\"https://github.com/ankitpokhrel/Dynamic-"
|
34 |
+
"Featured-Image/wiki\" target=\"_blank\">DOCUMENTATION</a> properly before "
|
35 |
+
"update."
|
36 |
+
msgstr ""
|
37 |
+
"לתשומת לבך! אנא קרא את <a href=\"https://github.com/ankitpokhrel/Dynamic-"
|
38 |
+
"Featured-Image/wiki\" target=\"_blank\">הדוקומנטציה</a> היטב לפני שדרוג "
|
39 |
+
"התוסף."
|
40 |
+
|
41 |
+
msgid "0"
|
42 |
+
msgstr "0"
|
43 |
+
|
44 |
+
msgid "1"
|
45 |
+
msgstr "1"
|
46 |
+
|
47 |
+
msgid "2"
|
48 |
+
msgstr "2"
|
49 |
+
|
50 |
+
msgid "3"
|
51 |
+
msgstr "3"
|
52 |
+
|
53 |
+
msgid "4"
|
54 |
+
msgstr "4"
|
55 |
+
|
56 |
+
msgid "5"
|
57 |
+
msgstr "5"
|
58 |
+
|
59 |
+
msgid "6"
|
60 |
+
msgstr "6"
|
61 |
+
|
62 |
+
msgid "7"
|
63 |
+
msgstr "7"
|
64 |
+
|
65 |
+
msgid "8"
|
66 |
+
msgstr "8"
|
67 |
+
|
68 |
+
msgid "9"
|
69 |
+
msgstr "9"
|
languages/dynamic-featured-image-hr_HR.mo
ADDED
Binary file
|
languages/dynamic-featured-image-hr_HR.po
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: dynamic-featured-image\n"
|
4 |
+
"POT-Creation-Date: 2014-07-19 16:43+0545\n"
|
5 |
+
"PO-Revision-Date: 2014-07-21 23:01+0545\n"
|
6 |
+
"Last-Translator: Ankit Pokhrel <ankitpokhrel@gmail.com>\n"
|
7 |
+
"Language-Team: Ankit Pokhrel <ankitpokhrel@gmail.com>\n"
|
8 |
+
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"X-Generator: Poedit 1.5.7\n"
|
12 |
+
"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"X-Poedit-SearchPath-0: D:\\Program Files\\VertrigoServ\\www\\wp39\\wp-content"
|
15 |
+
"\\plugins\\dynamic-featured-image\n"
|
16 |
+
|
17 |
+
msgid "Featured Image "
|
18 |
+
msgstr "Glavna slika "
|
19 |
+
|
20 |
+
msgid "Dynamic Featured Image - Media Selector"
|
21 |
+
msgstr "Dinamična Glavna Slika – Izbor Media"
|
22 |
+
|
23 |
+
msgid "Set Featured Image"
|
24 |
+
msgstr "Postavite glavnu sliku"
|
25 |
+
|
26 |
+
msgid "Add New"
|
27 |
+
msgstr "Dodoajte novu"
|
28 |
+
|
29 |
+
msgid "Remove"
|
30 |
+
msgstr "Uklonite"
|
31 |
+
|
32 |
+
msgid ""
|
33 |
+
"ATTENTION! Please read the <a href=\"https://github.com/ankitpokhrel/Dynamic-"
|
34 |
+
"Featured-Image/wiki\" target=\"_blank\">DOCUMENTATION</a> properly before "
|
35 |
+
"update."
|
36 |
+
msgstr ""
|
37 |
+
"PAŽNJA! Molimo vas pažljivo pročitajte <a href=\"https://github.com/"
|
38 |
+
"ankitpokhrel/Dynamic-Featured-Image/wiki\" target=\"_blank\">DOKUMENTACIJU</"
|
39 |
+
"a> pre ažuriranja."
|
40 |
+
|
41 |
+
msgid "0"
|
42 |
+
msgstr "0"
|
43 |
+
|
44 |
+
msgid "1"
|
45 |
+
msgstr "1"
|
46 |
+
|
47 |
+
msgid "2"
|
48 |
+
msgstr "2"
|
49 |
+
|
50 |
+
msgid "3"
|
51 |
+
msgstr "3"
|
52 |
+
|
53 |
+
msgid "4"
|
54 |
+
msgstr "4"
|
55 |
+
|
56 |
+
msgid "5"
|
57 |
+
msgstr "5"
|
58 |
+
|
59 |
+
msgid "6"
|
60 |
+
msgstr "6"
|
61 |
+
|
62 |
+
msgid "7"
|
63 |
+
msgstr "7"
|
64 |
+
|
65 |
+
msgid "8"
|
66 |
+
msgstr "8"
|
67 |
+
|
68 |
+
msgid "9"
|
69 |
+
msgstr "9"
|
languages/dynamic-featured-image-it_IT.mo
ADDED
Binary file
|
languages/dynamic-featured-image-it_IT.po
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: dynamic-featured-image\n"
|
4 |
+
"POT-Creation-Date: 2014-07-19 16:43+0545\n"
|
5 |
+
"PO-Revision-Date: 2014-09-14 20:16+0545\n"
|
6 |
+
"Last-Translator: Ankit Pokhrel <ankitpokhrel@gmail.com>\n"
|
7 |
+
"Language-Team: Ankit Pokhrel <ankitpokhrel@gmail.com>\n"
|
8 |
+
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"X-Generator: Poedit 1.5.7\n"
|
12 |
+
"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"X-Poedit-SearchPath-0: D:\\Program Files\\VertrigoServ\\www\\wp39\\wp-content"
|
15 |
+
"\\plugins\\dynamic-featured-image\n"
|
16 |
+
|
17 |
+
msgid "Featured Image "
|
18 |
+
msgstr "Immagine in Primo Piano "
|
19 |
+
|
20 |
+
msgid "Dynamic Featured Image - Media Selector"
|
21 |
+
msgstr "Dynamic Featured Image - Selettore Multimediale"
|
22 |
+
|
23 |
+
msgid "Set Featured Image"
|
24 |
+
msgstr "Imposta Immagine in Primo Piano"
|
25 |
+
|
26 |
+
msgid "Add New"
|
27 |
+
msgstr "Aggiungi Nuova"
|
28 |
+
|
29 |
+
msgid "Remove"
|
30 |
+
msgstr "Rimuovere"
|
31 |
+
|
32 |
+
msgid ""
|
33 |
+
"ATTENTION! Please read the <a href=\"https://github.com/ankitpokhrel/Dynamic-"
|
34 |
+
"Featured-Image/wiki\" target=\"_blank\">DOCUMENTATION</a> properly before "
|
35 |
+
"update."
|
36 |
+
msgstr ""
|
37 |
+
"ATTENZIONE! Si prega di leggere la <a href=\"https://github.com/ankitpokhrel/"
|
38 |
+
"Dynamic-Featured-Image/wiki\" target=\"_blank\">DOCUMENTAZIONE</a> prima di "
|
39 |
+
"effettuare l'aggiornamento."
|
40 |
+
|
41 |
+
msgid "0"
|
42 |
+
msgstr "0"
|
43 |
+
|
44 |
+
msgid "1"
|
45 |
+
msgstr "1"
|
46 |
+
|
47 |
+
msgid "2"
|
48 |
+
msgstr "2"
|
49 |
+
|
50 |
+
msgid "3"
|
51 |
+
msgstr "3"
|
52 |
+
|
53 |
+
msgid "4"
|
54 |
+
msgstr "4"
|
55 |
+
|
56 |
+
msgid "5"
|
57 |
+
msgstr "5"
|
58 |
+
|
59 |
+
msgid "6"
|
60 |
+
msgstr "6"
|
61 |
+
|
62 |
+
msgid "7"
|
63 |
+
msgstr "7"
|
64 |
+
|
65 |
+
msgid "8"
|
66 |
+
msgstr "8"
|
67 |
+
|
68 |
+
msgid "9"
|
69 |
+
msgstr "9"
|
languages/dynamic-featured-image-ne_NP.mo
ADDED
Binary file
|
languages/dynamic-featured-image-ne_NP.po
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: dynamic-featured-image\n"
|
4 |
+
"POT-Creation-Date: 2014-07-19 16:43+0545\n"
|
5 |
+
"PO-Revision-Date: 2014-08-17 20:55+0545\n"
|
6 |
+
"Last-Translator: Ankit Pokhrel <ankitpokhrel@gmail.com>\n"
|
7 |
+
"Language-Team: Ankit Pokhrel <ankitpokhrel@gmail.com>\n"
|
8 |
+
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"X-Generator: Poedit 1.5.7\n"
|
12 |
+
"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"X-Poedit-SearchPath-0: D:\\Program Files\\VertrigoServ\\www\\wp39\\wp-content"
|
15 |
+
"\\plugins\\dynamic-featured-image\n"
|
16 |
+
|
17 |
+
msgid "Featured Image "
|
18 |
+
msgstr "फीचर्ड इमेज "
|
19 |
+
|
20 |
+
msgid "Dynamic Featured Image - Media Selector"
|
21 |
+
msgstr "डाइनामिक फीचर्ड इमेज - मिडिया सेलेक्टर"
|
22 |
+
|
23 |
+
msgid "Set Featured Image"
|
24 |
+
msgstr "फीचर्ड इमेज राख्नुहोस्"
|
25 |
+
|
26 |
+
msgid "Add New"
|
27 |
+
msgstr "नयाँ"
|
28 |
+
|
29 |
+
msgid "Remove"
|
30 |
+
msgstr "हटाउनुहोस्"
|
31 |
+
|
32 |
+
msgid ""
|
33 |
+
"ATTENTION! Please read the <a href=\"https://github.com/ankitpokhrel/Dynamic-"
|
34 |
+
"Featured-Image/wiki\" target=\"_blank\">DOCUMENTATION</a> properly before "
|
35 |
+
"update."
|
36 |
+
msgstr ""
|
37 |
+
"साबधान! कृपया अपडेट गर्नु अगाडि <a href=\"https://github.com/ankitpokhrel/"
|
38 |
+
"Dynamic-Featured-Image/wiki\" target=\"_blank\">डकुमेन्टेसन</a> राम्रोसँग पढ्नु होला "
|
39 |
+
"|"
|
40 |
+
|
41 |
+
msgid "0"
|
42 |
+
msgstr "०"
|
43 |
+
|
44 |
+
msgid "1"
|
45 |
+
msgstr "१"
|
46 |
+
|
47 |
+
msgid "2"
|
48 |
+
msgstr "२"
|
49 |
+
|
50 |
+
msgid "3"
|
51 |
+
msgstr "३"
|
52 |
+
|
53 |
+
msgid "4"
|
54 |
+
msgstr "४"
|
55 |
+
|
56 |
+
msgid "5"
|
57 |
+
msgstr "५"
|
58 |
+
|
59 |
+
msgid "6"
|
60 |
+
msgstr "६"
|
61 |
+
|
62 |
+
msgid "7"
|
63 |
+
msgstr "७"
|
64 |
+
|
65 |
+
msgid "8"
|
66 |
+
msgstr "८"
|
67 |
+
|
68 |
+
msgid "9"
|
69 |
+
msgstr "९"
|
languages/dynamic-featured-image-sr_RS.mo
ADDED
Binary file
|
languages/dynamic-featured-image-sr_RS.po
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: dynamic-featured-image\n"
|
4 |
+
"POT-Creation-Date: 2014-07-19 16:43+0545\n"
|
5 |
+
"PO-Revision-Date: 2014-07-21 22:58+0545\n"
|
6 |
+
"Last-Translator: Ankit Pokhrel <ankitpokhrel@gmail.com>\n"
|
7 |
+
"Language-Team: Ankit Pokhrel <ankitpokhrel@gmail.com>\n"
|
8 |
+
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"X-Generator: Poedit 1.5.7\n"
|
12 |
+
"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"X-Poedit-SearchPath-0: D:\\Program Files\\VertrigoServ\\www\\wp39\\wp-content"
|
15 |
+
"\\plugins\\dynamic-featured-image\n"
|
16 |
+
|
17 |
+
msgid "Featured Image "
|
18 |
+
msgstr "Glavna slika "
|
19 |
+
|
20 |
+
msgid "Dynamic Featured Image - Media Selector"
|
21 |
+
msgstr "Dinamična Glavna Slika – Izbor Media"
|
22 |
+
|
23 |
+
msgid "Set Featured Image"
|
24 |
+
msgstr "Postavite glavnu sliku"
|
25 |
+
|
26 |
+
msgid "Add New"
|
27 |
+
msgstr "Dodoajte novu"
|
28 |
+
|
29 |
+
msgid "Remove"
|
30 |
+
msgstr "Uklonite"
|
31 |
+
|
32 |
+
msgid ""
|
33 |
+
"ATTENTION! Please read the <a href=\"https://github.com/ankitpokhrel/Dynamic-"
|
34 |
+
"Featured-Image/wiki\" target=\"_blank\">DOCUMENTATION</a> properly before "
|
35 |
+
"update."
|
36 |
+
msgstr ""
|
37 |
+
"PAŽNJA! Molimo vas pažljivo pročitajte <a href=\"https://github.com/"
|
38 |
+
"ankitpokhrel/Dynamic-Featured-Image/wiki\" target=\"_blank\">DOKUMENTACIJU</"
|
39 |
+
"a> pre ažuriranja."
|
40 |
+
|
41 |
+
msgid "0"
|
42 |
+
msgstr "0"
|
43 |
+
|
44 |
+
msgid "1"
|
45 |
+
msgstr "1"
|
46 |
+
|
47 |
+
msgid "2"
|
48 |
+
msgstr "2"
|
49 |
+
|
50 |
+
msgid "3"
|
51 |
+
msgstr "3"
|
52 |
+
|
53 |
+
msgid "4"
|
54 |
+
msgstr "4"
|
55 |
+
|
56 |
+
msgid "5"
|
57 |
+
msgstr "5"
|
58 |
+
|
59 |
+
msgid "6"
|
60 |
+
msgstr "6"
|
61 |
+
|
62 |
+
msgid "7"
|
63 |
+
msgstr "7"
|
64 |
+
|
65 |
+
msgid "8"
|
66 |
+
msgstr "8"
|
67 |
+
|
68 |
+
msgid "9"
|
69 |
+
msgstr "9"
|
languages/dynamic-featured-image-sv_SE.mo
ADDED
Binary file
|
languages/dynamic-featured-image-sv_SE.po
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: dynamic-featured-image\n"
|
4 |
+
"POT-Creation-Date: 2014-07-19 16:43+0545\n"
|
5 |
+
"PO-Revision-Date: 2014-07-21 23:05+0545\n"
|
6 |
+
"Last-Translator: Ankit Pokhrel <ankitpokhrel@gmail.com>\n"
|
7 |
+
"Language-Team: Ankit Pokhrel <ankitpokhrel@gmail.com>\n"
|
8 |
+
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"X-Generator: Poedit 1.5.7\n"
|
12 |
+
"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"X-Poedit-SearchPath-0: D:\\Program Files\\VertrigoServ\\www\\wp39\\wp-content"
|
15 |
+
"\\plugins\\dynamic-featured-image\n"
|
16 |
+
|
17 |
+
msgid "Featured Image "
|
18 |
+
msgstr "framtida bild "
|
19 |
+
|
20 |
+
msgid "Dynamic Featured Image - Media Selector"
|
21 |
+
msgstr "Dynamiska framtids bild - Välj bild"
|
22 |
+
|
23 |
+
msgid "Set Featured Image"
|
24 |
+
msgstr "välj framtida bild"
|
25 |
+
|
26 |
+
msgid "Add New"
|
27 |
+
msgstr "lägg till ny bild"
|
28 |
+
|
29 |
+
msgid "Remove"
|
30 |
+
msgstr "ta bort bild"
|
31 |
+
|
32 |
+
msgid ""
|
33 |
+
"ATTENTION! Please read the <a href=\"https://github.com/ankitpokhrel/Dynamic-"
|
34 |
+
"Featured-Image/wiki\" target=\"_blank\">DOCUMENTATION</a> properly before "
|
35 |
+
"update."
|
36 |
+
msgstr ""
|
37 |
+
"VIKTIGT! Vänlig läs <a href=\"https://github.com/ankitpokhrel/Dynamic-"
|
38 |
+
"Featured-Image/wiki\" target=\"_blank\">DOKUMENTATIONEN</a> innan "
|
39 |
+
"uppdatering!"
|
40 |
+
|
41 |
+
msgid "0"
|
42 |
+
msgstr "0"
|
43 |
+
|
44 |
+
msgid "1"
|
45 |
+
msgstr "1"
|
46 |
+
|
47 |
+
msgid "2"
|
48 |
+
msgstr "2"
|
49 |
+
|
50 |
+
msgid "3"
|
51 |
+
msgstr "3"
|
52 |
+
|
53 |
+
msgid "4"
|
54 |
+
msgstr "4"
|
55 |
+
|
56 |
+
msgid "5"
|
57 |
+
msgstr "5"
|
58 |
+
|
59 |
+
msgid "6"
|
60 |
+
msgstr "6"
|
61 |
+
|
62 |
+
msgid "7"
|
63 |
+
msgstr "7"
|
64 |
+
|
65 |
+
msgid "8"
|
66 |
+
msgstr "8"
|
67 |
+
|
68 |
+
msgid "9"
|
69 |
+
msgstr "9"
|
readme.txt
ADDED
@@ -0,0 +1,229 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
=== Dynamic Featured Image ===
|
2 |
+
Contributors: ankitpokhrel, cfoellmann
|
3 |
+
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=J9FVY3ESPPD58
|
4 |
+
Tags: dynamic featured image, featured image, post thumbnail, dynamic post thumbnail, multiple featured image, multiple post thumbnail
|
5 |
+
Requires at least: 3.5
|
6 |
+
Tested up to: 4.1
|
7 |
+
Stable tag: 3.3.0
|
8 |
+
License: GPLv2 or later
|
9 |
+
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
+
|
11 |
+
Dynamically adds multiple featured image (post thumbnail) functionality to posts, pages and custom post types.
|
12 |
+
|
13 |
+
== Description ==
|
14 |
+
Dynamically adds multiple featured image or multiple post thumbnail functionality to your page, posts and custom post types. This plugin provides you an interface to add any number of featured image as you want without writing a single code. These dynamic featured images can then be collected by the various theme functions.
|
15 |
+
|
16 |
+
> **A NOTE ABOUT SUPPORT:** We’re here to help troubleshoot bugs, but please don't set expectations early as the support forums at WordPress.org are only checked once a week. All the support of the Dynamic Featured Image plugin will now be provided from within [this support forum](http://ankitpokhrel.com.np/blog/forums/forum/dynamic-featured-image-free-version/ "Dynamic Featured Image Support Forum").
|
17 |
+
|
18 |
+
> Users looking for more timely/in-depth support and extended features are encouraged to check out [Dynamic Featured Image PRO](http://ankitpokhrel.com.np/blog/downloads/dynamic-featured-image-pro/ "Dynamic Featured Image PRO").
|
19 |
+
|
20 |
+
> **FEATURES OF PRO VERSION**
|
21 |
+
- Settings Page to control various settings.
|
22 |
+
- Shortcodes to make your life easier.
|
23 |
+
- Pro-level support on all forums, including the free forum.
|
24 |
+
- Dedicated email and chat support.
|
25 |
+
- Access to more advance features and future updates for free.
|
26 |
+
|
27 |
+
> [Learn more »](http://ankitpokhrel.com.np/blog/downloads/dynamic-featured-image-pro/ "Dynamic Featured Image PRO")
|
28 |
+
|
29 |
+
**Overview**
|
30 |
+
Dynamic Featured Image enables the option to have MULTIPLE featured images within a post or page.
|
31 |
+
This is especially helpful when you use other plugins, post thumbnails or sliders that use featured images.
|
32 |
+
Why limit yourself to only one featured image if you can do some awesome stuffs with multiple featured image?
|
33 |
+
DFI allows you to add different number of featured images to each post and page that can be collected by the various theme functions.
|
34 |
+
|
35 |
+
**How it works?**
|
36 |
+
1. After successfull plugin activation go to `add` or `edit` page of posts or pages and you will notice a box for second featured image.
|
37 |
+
2. Click `Set featured image`, select required image from "Dynamic Featured Image - Media Selector" popup and click `Set Featured Image`.
|
38 |
+
3. Click on `Add New` to add new featured image or use `Remove` link to remove the featured image box.
|
39 |
+
4. You can then get the images by calling the function `$dynamic_featured_image->get_featured_images([$postId (optional)])` in your theme. ([Click here for details](https://github.com/ankitpokhrel/Dynamic-Featured-Image/wiki "Documentation for current version"))
|
40 |
+
5. The data will be returned in the following format.
|
41 |
+
`
|
42 |
+
array
|
43 |
+
0 =>
|
44 |
+
array
|
45 |
+
'thumb' => string 'http://your_site/upload_path/yourSelectedImage.jpg' (length=50)
|
46 |
+
'full' => string 'http://your_site/upload_path/yourSelectedImage_fullSize.jpg' (length=69)
|
47 |
+
'attachment_id' => string '197' (length=3)
|
48 |
+
1 =>
|
49 |
+
array
|
50 |
+
'thumb' => string 'http://your_site/upload_path/yourSelectedImage.jpg' (length=50)
|
51 |
+
'full' => string 'http://your_site/upload_path/yourSelectedImage_fullSize.jpg' (length=69)
|
52 |
+
'attachment_id' => string '198' (length=3)
|
53 |
+
2 => ...
|
54 |
+
`
|
55 |
+
|
56 |
+
**Resources**
|
57 |
+
1. [Detail Documentation](https://github.com/ankitpokhrel/Dynamic-Featured-Image/wiki "Documentation for current ver.").
|
58 |
+
2. [DFI Blog](http://ankitpokhrel.com.np/blog/category/dynamic-featured-image/ "DFI Blog").
|
59 |
+
3. [StackOverflow Tag](http://stackoverflow.com/questions/tagged/dynamic-featured-image "StackOverflow Tag").
|
60 |
+
|
61 |
+
**MultiSite Info**
|
62 |
+
You can use `Network Activate` to activate plugin for all sites on a single install. It is only available on the Network admin site not anywhere else.
|
63 |
+
Simple `Activate` activates for the site you are currently on. These will be permitted to be activated or deactivated on ANY blog.
|
64 |
+
|
65 |
+
While deleting the plugin from the `Network` be sure that the plugin is deactive in all installation of your WordPress network.
|
66 |
+
|
67 |
+
**Remote Image URL Info**
|
68 |
+
You can add the image using the remote image url but various helper functions provided may/may not work for the image from remote url.
|
69 |
+
The attachment id for the remote image will always be `null`.
|
70 |
+
|
71 |
+
**Contribute**
|
72 |
+
If you'd like to check out the code and contribute, join us on [Github](https://github.com/ankitpokhrel/Dynamic-Featured-Image "View this plugin in github").
|
73 |
+
Pull requests, issues, and plugin recommendations are more than welcome!
|
74 |
+
|
75 |
+
== Installation ==
|
76 |
+
|
77 |
+
1. Unzip and upload the `dynamic-featured-images` directory to the plugin directory (`/wp-content/plugins/`) or install it from `Plugins->Add New->Upload`.
|
78 |
+
2. Activate the plugin through the `Plugins` menu in WordPress.
|
79 |
+
3. If you don't see new featured image box, click `Screen Options` in the upper right corner of your wordpress admin and make sure that the `Featured Image 2` box is selected.
|
80 |
+
|
81 |
+
== Frequently Asked Questions ==
|
82 |
+
= 1. The media uploader screen freezes and stays blank after clicking insert into post? =
|
83 |
+
The problem is usually due to the conflicts with other plugin or theme functions. You can use general debugging technique to find out the problem.
|
84 |
+
|
85 |
+
i. Switch to the default wordpress theme to rule out any theme-specific problems.
|
86 |
+
ii. Try the plugin in a fresh new WordPress installation.
|
87 |
+
iii. If it works, deactivate all plugins from your current wordpress installation to see if this resolves the problem. If this works, re-activate the plugins one by one until you find the problematic plugin(s).
|
88 |
+
iv. [Resetting the plugins folder](http://www.google.com/url?q=http%3A%2F%2Fcodex.wordpress.org%2FFAQ_Troubleshooting%23How_to_deactivate_all_plugins_when_not_able_to_access_the_administrative_menus.3F&sa=D&sntz=1&usg=AFQjCNFaei9nyiMZe2yZQUBBA_MghJ-Wxw) by FTP or PhpMyAdmin. Sometimes, an apparently inactive plugin can still cause problems.
|
89 |
+
|
90 |
+
= 2. There is no additional image on the page when I save it or publish it? =
|
91 |
+
This happens when there is any problem in saving you post or page properly. For example, if you try to save or publish the post without the post title the featured images may not be saved properly.
|
92 |
+
|
93 |
+
= 3. Can i set the image from remote url? =
|
94 |
+
If you need to add images from the remote url you need to switch back to ver. 2.0.2 . There is no such feature in ver. 3.0.0 and above.
|
95 |
+
|
96 |
+
Note: If you are using remote url to use the feature image, the helper functions may not work properly.
|
97 |
+
Alt, caption and title attribute for these images cannot be retrieved using helper functions. `NULL` is returned instead.
|
98 |
+
|
99 |
+
= 4. I am seeing a broken image icon when setting the second feature image? [ for ver. 2.0.2 and below ] =
|
100 |
+
Some plugins like `Regenerate Thumbnails` changes the default image format in media uploader from `File URL` to `Attachment Post URL`.
|
101 |
+
Make sure you click on `File URL` under `Link URL` section before clicking `Insert Into Post`.
|
102 |
+
|
103 |
+
= 5. I cannot add or change secondary featured images after update? =
|
104 |
+
This usually happens because of cache. Clear all your cache and try again if you are having this problem. If you still have such problem you can get help through support forum.
|
105 |
+
|
106 |
+
= 6. Is it Possible to Make DFI Work Only for Certain Post Types? =
|
107 |
+
Yes! It is easily possible from version 3.1.13. A filter is added in the recent version for this purpose. Refer [this thread](http://ankitpokhrel.com.np/blog/is-it-possible-to-make-dfi-work-only-for-certain-post-types/) for mor info.
|
108 |
+
|
109 |
+
= 7. Other problems or questions? =
|
110 |
+
Other problems? Don't forget to check the [blog](http://ankitpokhrel.com.np/blog/category/dynamic-featured-image/) and learn to create some exciting things using DFI.
|
111 |
+
|
112 |
+
Please use [support forum](http://wordpress.org/support/plugin/dynamic-featured-image) first if you have any question or queries about the project.
|
113 |
+
If you don't receive any help in support forum then you can directly contact me at `ankitpokhrel [at] gmail [dot] com`. Please atleast wait for 48hrs before sending another request.
|
114 |
+
|
115 |
+
Please feel free to report any bug found at https://github.com/ankitpokhrel/Dynamic-Featured-Image/ or `ankitpokhrel [at] gmail [dot] com`.
|
116 |
+
|
117 |
+
== Screenshots ==
|
118 |
+
1. New featured image box.
|
119 |
+
2. Selecting image from media box.
|
120 |
+
3. Add new featured image box.
|
121 |
+
|
122 |
+
== Changelog ==
|
123 |
+
= 3.3.0 =
|
124 |
+
* Fixed Invalid image path returned - Pull Request #35
|
125 |
+
* Added dfi_post_type_user_filter to disable metabox in post types.
|
126 |
+
* Added filter to change metabox title.
|
127 |
+
* Some minor fixes.
|
128 |
+
|
129 |
+
= 3.1.13 =
|
130 |
+
* Added post types filter - Pull Request #32
|
131 |
+
* Fixed issue #33 - Incorrect data return when no image attached.
|
132 |
+
* Fixed issue #34 - Problem Retrieving Images in HTTPS Protocol.
|
133 |
+
* Revised code quality.
|
134 |
+
* Added Italian translation.
|
135 |
+
|
136 |
+
= 3.1.9 =
|
137 |
+
* Changed the scope of function get_image_id()
|
138 |
+
* Fixed typo in Nepali translation.
|
139 |
+
|
140 |
+
= 3.1.7 =
|
141 |
+
* Added Nepali, Swedish, Hebrew, Serbian, Croation and Bosnian languages.
|
142 |
+
* Fixed bug on issue #25 solution.
|
143 |
+
* Various code quality improvements.
|
144 |
+
|
145 |
+
= 3.1.2 =
|
146 |
+
* Fixed issue #25.
|
147 |
+
|
148 |
+
= 3.1.0 =
|
149 |
+
* Partial fix for issue #22.
|
150 |
+
* Increased code quality.
|
151 |
+
|
152 |
+
= 3.0.1 =
|
153 |
+
* Fixed several JSLint issues
|
154 |
+
|
155 |
+
= 3.0.0 =
|
156 |
+
* Fully Object Oriented (Thanks to @cfoellmann).
|
157 |
+
* New WordPress Media Uploader.
|
158 |
+
* Uses dashicons instead of images.
|
159 |
+
* Functions to retrieve image descriptions and nth featured image.
|
160 |
+
* Well documented.
|
161 |
+
|
162 |
+
= 2.0.2 =
|
163 |
+
* Minor css fix (issue #18 in GitHub, Thanks to @cfoellmann)
|
164 |
+
|
165 |
+
= 2.0.1 =
|
166 |
+
* Change in design.
|
167 |
+
|
168 |
+
= 2.0.0 =
|
169 |
+
* Now with various helper functions.
|
170 |
+
* Helpers to retrieve alt, title and caption of each featured image.
|
171 |
+
* Added support for remote url.
|
172 |
+
* WordPress 3.7 compatible.
|
173 |
+
* Primarily focused on theme developers.
|
174 |
+
|
175 |
+
= 1.1.5 =
|
176 |
+
* Fixed PHP Notice issues in strict debugging mode (Issue #4 in GitHub, Thanks to @Micky Hulse).
|
177 |
+
* Added post id in media upload box.
|
178 |
+
* Enhanced MultiSite Support.
|
179 |
+
|
180 |
+
= 1.1.2 =
|
181 |
+
* Resolved media uploader conflicts.
|
182 |
+
|
183 |
+
= 1.1.1 =
|
184 |
+
* Fixed a bug on user access for edit operation.
|
185 |
+
|
186 |
+
= 1.1.0 =
|
187 |
+
* Major security update
|
188 |
+
* Now uses AJAX to create new featured box
|
189 |
+
|
190 |
+
= 1.0.3 =
|
191 |
+
* First stable version with minimum features released.
|
192 |
+
* Fixed bug for duplicate id.
|
193 |
+
* Updated dfiGetFeaturedImages function to accept post id.
|
194 |
+
* Fixed some minor issues.
|
195 |
+
|
196 |
+
== Upgrade Notice ==
|
197 |
+
= 3.3.0 =
|
198 |
+
This version has multisite url bug fix and has added various useful filters.
|
199 |
+
|
200 |
+
= 3.1.13 =
|
201 |
+
This version has some major bug fix over ver. 3.1.9
|
202 |
+
|
203 |
+
= 3.1.9 =
|
204 |
+
This version has some bug fix over ver. 3.1.7
|
205 |
+
|
206 |
+
= 3.1.7 =
|
207 |
+
This version has translation in 6 different languages, bug fix on edited image and code quality improvement.
|
208 |
+
|
209 |
+
= 3.1.2 =
|
210 |
+
This version has bug fixes on edited image. View issue #25 in Github for more info.
|
211 |
+
|
212 |
+
= 3.1.0 =
|
213 |
+
This version has some bug fix and code quality improvement. You may need to change database value manually because the plugin finds the uplod folder
|
214 |
+
automatically from now on.
|
215 |
+
|
216 |
+
= 3.0.1 =
|
217 |
+
This version has fixed various JSLint issues.
|
218 |
+
|
219 |
+
= 3.0.0 =
|
220 |
+
This version has major changes which are not compatible with the previous version of the plugin. The plugin is now fully object oriented.
|
221 |
+
|
222 |
+
= 2.0.2 =
|
223 |
+
This version has some minor css fix. Issue #18 in GitHub.
|
224 |
+
|
225 |
+
= 2.0.1 =
|
226 |
+
This version has just some graphics change to make it more attractive. Please clear the cache after update.
|
227 |
+
|
228 |
+
= 2.0.0 =
|
229 |
+
This version has some major updates and is much more powerful than before. Read the documentation carefully before update.
|