Simple Download Monitor - Version 0.15

Version Description

  • User rights required to access various parts of the plugin's interface are now configurable. This should satisfy the admins who don't want their users to view download stats.

  • More explicitly explained the "Inline files" setting and tightened it so that it must be at least three characters long to be valid.

  • Changed the captions of "delete" buttons to make it clear that only the statistics get deleted, not the actual files.

Download this release

Release Info

Developer pepak.net
Plugin Icon 128x128 Simple Download Monitor
Version 0.15
Comparing to
See all releases

Code changes from version 0.13 to 0.15

Files changed (252) hide show
  1. flags/_readme.txt +0 -9
  2. flags/ad.png +0 -0
  3. flags/ae.png +0 -0
  4. flags/af.png +0 -0
  5. flags/ag.png +0 -0
  6. flags/ai.png +0 -0
  7. flags/al.png +0 -0
  8. flags/am.png +0 -0
  9. flags/an.png +0 -0
  10. flags/ao.png +0 -0
  11. flags/ar.png +0 -0
  12. flags/as.png +0 -0
  13. flags/at.png +0 -0
  14. flags/au.png +0 -0
  15. flags/aw.png +0 -0
  16. flags/ax.png +0 -0
  17. flags/az.png +0 -0
  18. flags/ba.png +0 -0
  19. flags/bb.png +0 -0
  20. flags/bd.png +0 -0
  21. flags/be.png +0 -0
  22. flags/bf.png +0 -0
  23. flags/bg.png +0 -0
  24. flags/bh.png +0 -0
  25. flags/bi.png +0 -0
  26. flags/bj.png +0 -0
  27. flags/bm.png +0 -0
  28. flags/bn.png +0 -0
  29. flags/bo.png +0 -0
  30. flags/br.png +0 -0
  31. flags/bs.png +0 -0
  32. flags/bt.png +0 -0
  33. flags/bv.png +0 -0
  34. flags/bw.png +0 -0
  35. flags/by.png +0 -0
  36. flags/bz.png +0 -0
  37. flags/ca.png +0 -0
  38. flags/catalonia.png +0 -0
  39. flags/cc.png +0 -0
  40. flags/cd.png +0 -0
  41. flags/cf.png +0 -0
  42. flags/cg.png +0 -0
  43. flags/ch.png +0 -0
  44. flags/ci.png +0 -0
  45. flags/ck.png +0 -0
  46. flags/cl.png +0 -0
  47. flags/cm.png +0 -0
  48. flags/cn.png +0 -0
  49. flags/co.png +0 -0
  50. flags/cr.png +0 -0
  51. flags/cs.png +0 -0
  52. flags/cu.png +0 -0
  53. flags/cv.png +0 -0
  54. flags/cx.png +0 -0
  55. flags/cy.png +0 -0
  56. flags/cz.png +0 -0
  57. flags/de.png +0 -0
  58. flags/dj.png +0 -0
  59. flags/dk.png +0 -0
  60. flags/dm.png +0 -0
  61. flags/do.png +0 -0
  62. flags/dz.png +0 -0
  63. flags/ec.png +0 -0
  64. flags/ee.png +0 -0
  65. flags/eg.png +0 -0
  66. flags/eh.png +0 -0
  67. flags/england.png +0 -0
  68. flags/er.png +0 -0
  69. flags/es.png +0 -0
  70. flags/et.png +0 -0
  71. flags/europeanunion.png +0 -0
  72. flags/fam.png +0 -0
  73. flags/fi.png +0 -0
  74. flags/fj.png +0 -0
  75. flags/fk.png +0 -0
  76. flags/fm.png +0 -0
  77. flags/fo.png +0 -0
  78. flags/fr.png +0 -0
  79. flags/ga.png +0 -0
  80. flags/gb.png +0 -0
  81. flags/gd.png +0 -0
  82. flags/ge.png +0 -0
  83. flags/gf.png +0 -0
  84. flags/gh.png +0 -0
  85. flags/gi.png +0 -0
  86. flags/gl.png +0 -0
  87. flags/gm.png +0 -0
  88. flags/gn.png +0 -0
  89. flags/gp.png +0 -0
  90. flags/gq.png +0 -0
  91. flags/gr.png +0 -0
  92. flags/gs.png +0 -0
  93. flags/gt.png +0 -0
  94. flags/gu.png +0 -0
  95. flags/gw.png +0 -0
  96. flags/gy.png +0 -0
  97. flags/hk.png +0 -0
  98. flags/hm.png +0 -0
  99. flags/hn.png +0 -0
  100. flags/hr.png +0 -0
  101. flags/ht.png +0 -0
  102. flags/hu.png +0 -0
  103. flags/id.png +0 -0
  104. flags/ie.png +0 -0
  105. flags/il.png +0 -0
  106. flags/in.png +0 -0
  107. flags/io.png +0 -0
  108. flags/iq.png +0 -0
  109. flags/ir.png +0 -0
  110. flags/is.png +0 -0
  111. flags/it.png +0 -0
  112. flags/jm.png +0 -0
  113. flags/jo.png +0 -0
  114. flags/jp.png +0 -0
  115. flags/ke.png +0 -0
  116. flags/kg.png +0 -0
  117. flags/kh.png +0 -0
  118. flags/ki.png +0 -0
  119. flags/km.png +0 -0
  120. flags/kn.png +0 -0
  121. flags/kp.png +0 -0
  122. flags/kr.png +0 -0
  123. flags/kw.png +0 -0
  124. flags/ky.png +0 -0
  125. flags/kz.png +0 -0
  126. flags/la.png +0 -0
  127. flags/lb.png +0 -0
  128. flags/lc.png +0 -0
  129. flags/li.png +0 -0
  130. flags/lk.png +0 -0
  131. flags/lr.png +0 -0
  132. flags/ls.png +0 -0
  133. flags/lt.png +0 -0
  134. flags/lu.png +0 -0
  135. flags/lv.png +0 -0
  136. flags/ly.png +0 -0
  137. flags/ma.png +0 -0
  138. flags/mc.png +0 -0
  139. flags/md.png +0 -0
  140. flags/me.png +0 -0
  141. flags/mg.png +0 -0
  142. flags/mh.png +0 -0
  143. flags/mk.png +0 -0
  144. flags/ml.png +0 -0
  145. flags/mm.png +0 -0
  146. flags/mn.png +0 -0
  147. flags/mo.png +0 -0
  148. flags/mp.png +0 -0
  149. flags/mq.png +0 -0
  150. flags/mr.png +0 -0
  151. flags/ms.png +0 -0
  152. flags/mt.png +0 -0
  153. flags/mu.png +0 -0
  154. flags/mv.png +0 -0
  155. flags/mw.png +0 -0
  156. flags/mx.png +0 -0
  157. flags/my.png +0 -0
  158. flags/mz.png +0 -0
  159. flags/na.png +0 -0
  160. flags/nc.png +0 -0
  161. flags/ne.png +0 -0
  162. flags/nf.png +0 -0
  163. flags/ng.png +0 -0
  164. flags/ni.png +0 -0
  165. flags/nl.png +0 -0
  166. flags/no.png +0 -0
  167. flags/np.png +0 -0
  168. flags/nr.png +0 -0
  169. flags/nu.png +0 -0
  170. flags/nz.png +0 -0
  171. flags/om.png +0 -0
  172. flags/pa.png +0 -0
  173. flags/pe.png +0 -0
  174. flags/pf.png +0 -0
  175. flags/pg.png +0 -0
  176. flags/ph.png +0 -0
  177. flags/pk.png +0 -0
  178. flags/pl.png +0 -0
  179. flags/pm.png +0 -0
  180. flags/pn.png +0 -0
  181. flags/pr.png +0 -0
  182. flags/ps.png +0 -0
  183. flags/pt.png +0 -0
  184. flags/pw.png +0 -0
  185. flags/py.png +0 -0
  186. flags/qa.png +0 -0
  187. flags/re.png +0 -0
  188. flags/ro.png +0 -0
  189. flags/rs.png +0 -0
  190. flags/ru.png +0 -0
  191. flags/rw.png +0 -0
  192. flags/sa.png +0 -0
  193. flags/sb.png +0 -0
  194. flags/sc.png +0 -0
  195. flags/scotland.png +0 -0
  196. flags/sd.png +0 -0
  197. flags/se.png +0 -0
  198. flags/sg.png +0 -0
  199. flags/sh.png +0 -0
  200. flags/si.png +0 -0
  201. flags/sj.png +0 -0
  202. flags/sk.png +0 -0
  203. flags/sl.png +0 -0
  204. flags/sm.png +0 -0
  205. flags/sn.png +0 -0
  206. flags/so.png +0 -0
  207. flags/sr.png +0 -0
  208. flags/st.png +0 -0
  209. flags/sv.png +0 -0
  210. flags/sy.png +0 -0
  211. flags/sz.png +0 -0
  212. flags/tc.png +0 -0
  213. flags/td.png +0 -0
  214. flags/tf.png +0 -0
  215. flags/tg.png +0 -0
  216. flags/th.png +0 -0
  217. flags/tj.png +0 -0
  218. flags/tk.png +0 -0
  219. flags/tl.png +0 -0
  220. flags/tm.png +0 -0
  221. flags/tn.png +0 -0
  222. flags/to.png +0 -0
  223. flags/tr.png +0 -0
  224. flags/tt.png +0 -0
  225. flags/tv.png +0 -0
  226. flags/tw.png +0 -0
  227. flags/tz.png +0 -0
  228. flags/ua.png +0 -0
  229. flags/ug.png +0 -0
  230. flags/um.png +0 -0
  231. flags/us.png +0 -0
  232. flags/uy.png +0 -0
  233. flags/uz.png +0 -0
  234. flags/va.png +0 -0
  235. flags/vc.png +0 -0
  236. flags/ve.png +0 -0
  237. flags/vg.png +0 -0
  238. flags/vi.png +0 -0
  239. flags/vn.png +0 -0
  240. flags/vu.png +0 -0
  241. flags/wales.png +0 -0
  242. flags/wf.png +0 -0
  243. flags/ws.png +0 -0
  244. flags/ye.png +0 -0
  245. flags/yt.png +0 -0
  246. flags/za.png +0 -0
  247. flags/zm.png +0 -0
  248. flags/zw.png +0 -0
  249. lang/cs_CZ.mo +0 -0
  250. lang/cs_CZ.po +100 -62
  251. readme.txt +32 -1
  252. simple-download-monitor.php +47 -16
flags/_readme.txt DELETED
@@ -1,9 +0,0 @@
1
- Flag icons - http://www.famfamfam.com
2
-
3
- These icons are public domain, and as such are free for any use (attribution appreciated but not required).
4
-
5
- Note that these flags are named using the ISO3166-1 alpha-2 country codes where appropriate. A list of codes can be found at http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
6
-
7
- If you find these icons useful, please donate via paypal to mjames@gmail.com (or click the donate button available at http://www.famfamfam.com/lab/icons/silk)
8
-
9
- Contact: mjames@gmail.com
 
 
 
 
 
 
 
 
 
flags/ad.png DELETED
Binary file
flags/ae.png DELETED
Binary file
flags/af.png DELETED
Binary file
flags/ag.png DELETED
Binary file
flags/ai.png DELETED
Binary file
flags/al.png DELETED
Binary file
flags/am.png DELETED
Binary file
flags/an.png DELETED
Binary file
flags/ao.png DELETED
Binary file
flags/ar.png DELETED
Binary file
flags/as.png DELETED
Binary file
flags/at.png DELETED
Binary file
flags/au.png DELETED
Binary file
flags/aw.png DELETED
Binary file
flags/ax.png DELETED
Binary file
flags/az.png DELETED
Binary file
flags/ba.png DELETED
Binary file
flags/bb.png DELETED
Binary file
flags/bd.png DELETED
Binary file
flags/be.png DELETED
Binary file
flags/bf.png DELETED
Binary file
flags/bg.png DELETED
Binary file
flags/bh.png DELETED
Binary file
flags/bi.png DELETED
Binary file
flags/bj.png DELETED
Binary file
flags/bm.png DELETED
Binary file
flags/bn.png DELETED
Binary file
flags/bo.png DELETED
Binary file
flags/br.png DELETED
Binary file
flags/bs.png DELETED
Binary file
flags/bt.png DELETED
Binary file
flags/bv.png DELETED
Binary file
flags/bw.png DELETED
Binary file
flags/by.png DELETED
Binary file
flags/bz.png DELETED
Binary file
flags/ca.png DELETED
Binary file
flags/catalonia.png DELETED
Binary file
flags/cc.png DELETED
Binary file
flags/cd.png DELETED
Binary file
flags/cf.png DELETED
Binary file
flags/cg.png DELETED
Binary file
flags/ch.png DELETED
Binary file
flags/ci.png DELETED
Binary file
flags/ck.png DELETED
Binary file
flags/cl.png DELETED
Binary file
flags/cm.png DELETED
Binary file
flags/cn.png DELETED
Binary file
flags/co.png DELETED
Binary file
flags/cr.png DELETED
Binary file
flags/cs.png DELETED
Binary file
flags/cu.png DELETED
Binary file
flags/cv.png DELETED
Binary file
flags/cx.png DELETED
Binary file
flags/cy.png DELETED
Binary file
flags/cz.png DELETED
Binary file
flags/de.png DELETED
Binary file
flags/dj.png DELETED
Binary file
flags/dk.png DELETED
Binary file
flags/dm.png DELETED
Binary file
flags/do.png DELETED
Binary file
flags/dz.png DELETED
Binary file
flags/ec.png DELETED
Binary file
flags/ee.png DELETED
Binary file
flags/eg.png DELETED
Binary file
flags/eh.png DELETED
Binary file
flags/england.png DELETED
Binary file
flags/er.png DELETED
Binary file
flags/es.png DELETED
Binary file
flags/et.png DELETED
Binary file
flags/europeanunion.png DELETED
Binary file
flags/fam.png DELETED
Binary file
flags/fi.png DELETED
Binary file
flags/fj.png DELETED
Binary file
flags/fk.png DELETED
Binary file
flags/fm.png DELETED
Binary file
flags/fo.png DELETED
Binary file
flags/fr.png DELETED
Binary file
flags/ga.png DELETED
Binary file
flags/gb.png DELETED
Binary file
flags/gd.png DELETED
Binary file
flags/ge.png DELETED
Binary file
flags/gf.png DELETED
Binary file
flags/gh.png DELETED
Binary file
flags/gi.png DELETED
Binary file
flags/gl.png DELETED
Binary file
flags/gm.png DELETED
Binary file
flags/gn.png DELETED
Binary file
flags/gp.png DELETED
Binary file
flags/gq.png DELETED
Binary file
flags/gr.png DELETED
Binary file
flags/gs.png DELETED
Binary file
flags/gt.png DELETED
Binary file
flags/gu.png DELETED
Binary file
flags/gw.png DELETED
Binary file
flags/gy.png DELETED
Binary file
flags/hk.png DELETED
Binary file
flags/hm.png DELETED
Binary file
flags/hn.png DELETED
Binary file
flags/hr.png DELETED
Binary file
flags/ht.png DELETED
Binary file
flags/hu.png DELETED
Binary file
flags/id.png DELETED
Binary file
flags/ie.png DELETED
Binary file
flags/il.png DELETED
Binary file
flags/in.png DELETED
Binary file
flags/io.png DELETED
Binary file
flags/iq.png DELETED
Binary file
flags/ir.png DELETED
Binary file
flags/is.png DELETED
Binary file
flags/it.png DELETED
Binary file
flags/jm.png DELETED
Binary file
flags/jo.png DELETED
Binary file
flags/jp.png DELETED
Binary file
flags/ke.png DELETED
Binary file
flags/kg.png DELETED
Binary file
flags/kh.png DELETED
Binary file
flags/ki.png DELETED
Binary file
flags/km.png DELETED
Binary file
flags/kn.png DELETED
Binary file
flags/kp.png DELETED
Binary file
flags/kr.png DELETED
Binary file
flags/kw.png DELETED
Binary file
flags/ky.png DELETED
Binary file
flags/kz.png DELETED
Binary file
flags/la.png DELETED
Binary file
flags/lb.png DELETED
Binary file
flags/lc.png DELETED
Binary file
flags/li.png DELETED
Binary file
flags/lk.png DELETED
Binary file
flags/lr.png DELETED
Binary file
flags/ls.png DELETED
Binary file
flags/lt.png DELETED
Binary file
flags/lu.png DELETED
Binary file
flags/lv.png DELETED
Binary file
flags/ly.png DELETED
Binary file
flags/ma.png DELETED
Binary file
flags/mc.png DELETED
Binary file
flags/md.png DELETED
Binary file
flags/me.png DELETED
Binary file
flags/mg.png DELETED
Binary file
flags/mh.png DELETED
Binary file
flags/mk.png DELETED
Binary file
flags/ml.png DELETED
Binary file
flags/mm.png DELETED
Binary file
flags/mn.png DELETED
Binary file
flags/mo.png DELETED
Binary file
flags/mp.png DELETED
Binary file
flags/mq.png DELETED
Binary file
flags/mr.png DELETED
Binary file
flags/ms.png DELETED
Binary file
flags/mt.png DELETED
Binary file
flags/mu.png DELETED
Binary file
flags/mv.png DELETED
Binary file
flags/mw.png DELETED
Binary file
flags/mx.png DELETED
Binary file
flags/my.png DELETED
Binary file
flags/mz.png DELETED
Binary file
flags/na.png DELETED
Binary file
flags/nc.png DELETED
Binary file
flags/ne.png DELETED
Binary file
flags/nf.png DELETED
Binary file
flags/ng.png DELETED
Binary file
flags/ni.png DELETED
Binary file
flags/nl.png DELETED
Binary file
flags/no.png DELETED
Binary file
flags/np.png DELETED
Binary file
flags/nr.png DELETED
Binary file
flags/nu.png DELETED
Binary file
flags/nz.png DELETED
Binary file
flags/om.png DELETED
Binary file
flags/pa.png DELETED
Binary file
flags/pe.png DELETED
Binary file
flags/pf.png DELETED
Binary file
flags/pg.png DELETED
Binary file
flags/ph.png DELETED
Binary file
flags/pk.png DELETED
Binary file
flags/pl.png DELETED
Binary file
flags/pm.png DELETED
Binary file
flags/pn.png DELETED
Binary file
flags/pr.png DELETED
Binary file
flags/ps.png DELETED
Binary file
flags/pt.png DELETED
Binary file
flags/pw.png DELETED
Binary file
flags/py.png DELETED
Binary file
flags/qa.png DELETED
Binary file
flags/re.png DELETED
Binary file
flags/ro.png DELETED
Binary file
flags/rs.png DELETED
Binary file
flags/ru.png DELETED
Binary file
flags/rw.png DELETED
Binary file
flags/sa.png DELETED
Binary file
flags/sb.png DELETED
Binary file
flags/sc.png DELETED
Binary file
flags/scotland.png DELETED
Binary file
flags/sd.png DELETED
Binary file
flags/se.png DELETED
Binary file
flags/sg.png DELETED
Binary file
flags/sh.png DELETED
Binary file
flags/si.png DELETED
Binary file
flags/sj.png DELETED
Binary file
flags/sk.png DELETED
Binary file
flags/sl.png DELETED
Binary file
flags/sm.png DELETED
Binary file
flags/sn.png DELETED
Binary file
flags/so.png DELETED
Binary file
flags/sr.png DELETED
Binary file
flags/st.png DELETED
Binary file
flags/sv.png DELETED
Binary file
flags/sy.png DELETED
Binary file
flags/sz.png DELETED
Binary file
flags/tc.png DELETED
Binary file
flags/td.png DELETED
Binary file
flags/tf.png DELETED
Binary file
flags/tg.png DELETED
Binary file
flags/th.png DELETED
Binary file
flags/tj.png DELETED
Binary file
flags/tk.png DELETED
Binary file
flags/tl.png DELETED
Binary file
flags/tm.png DELETED
Binary file
flags/tn.png DELETED
Binary file
flags/to.png DELETED
Binary file
flags/tr.png DELETED
Binary file
flags/tt.png DELETED
Binary file
flags/tv.png DELETED
Binary file
flags/tw.png DELETED
Binary file
flags/tz.png DELETED
Binary file
flags/ua.png DELETED
Binary file
flags/ug.png DELETED
Binary file
flags/um.png DELETED
Binary file
flags/us.png DELETED
Binary file
flags/uy.png DELETED
Binary file
flags/uz.png DELETED
Binary file
flags/va.png DELETED
Binary file
flags/vc.png DELETED
Binary file
flags/ve.png DELETED
Binary file
flags/vg.png DELETED
Binary file
flags/vi.png DELETED
Binary file
flags/vn.png DELETED
Binary file
flags/vu.png DELETED
Binary file
flags/wales.png DELETED
Binary file
flags/wf.png DELETED
Binary file
flags/ws.png DELETED
Binary file
flags/ye.png DELETED
Binary file
flags/yt.png DELETED
Binary file
flags/za.png DELETED
Binary file
flags/zm.png DELETED
Binary file
flags/zw.png DELETED
Binary file
lang/cs_CZ.mo CHANGED
Binary file
lang/cs_CZ.po CHANGED
@@ -2,7 +2,7 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Simple Download Monitor v0.04\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2010-03-27 14:03+0100\n"
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: Pepak <pepak@pepak.net>\n"
8
  "Language-Team: Pepak <pepak@pepak.net>\n"
@@ -16,189 +16,227 @@ msgstr ""
16
  "X-Poedit-Basepath: .\n"
17
  "X-Poedit-SearchPath-0: ..\n"
18
 
19
- #: ../simple-download-monitor.php:406
20
- #: ../simple-download-monitor.php:822
21
  msgid "Simple Download Monitor options"
22
  msgstr "Simple Download Monitor - nastavení"
23
 
24
- #: ../simple-download-monitor.php:407
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  msgid "Allowed directories"
26
  msgstr "Povolené adresáře"
27
 
28
- #: ../simple-download-monitor.php:408
29
  msgid "Only requested files whose full names (relative to document root) start with this regular expression will be processed. It is strongly recommended to place all downloadable files (and ONLY downloadable files) into a designated directory and then placing that directory's name followed by a slash here. It is possible to use the power of PREG to allow multiple directories, but make sure there are ONLY files which you are comfortable with malicious users downloading. Do not EVER allow directories which contain PHP files here! That could lead to disclosure of sensitive data, including username and password used to connect to WordPress database."
30
  msgstr "Zpracovávány budou pouze soubory, jejichž plná jména (relativní vůči kořenovému adresáři webu) začínají tímto regulárním výrazem. Silně doporučuji umístit všechny stažitelné soubory (a JENOM stažitelné soubory) do jednoho určeného adresáře a vepsat sem název tohoto adresáře zakončený lomítkem. Lze také využít všech možností, které dává PREG, pro povolení více adresářů, ale dejte si pozor, ať v nich jsou JEDINĚ soubory, u kterých vám nevadí, když si je stáhne útočník. NIKDY do těchto adresářů neukládejte žádné PHP soubory! To by mohlo vést k zveřejnění citlivých dat, včetně uživatelského jména a hesla pro připojení k databázi."
31
 
32
- #: ../simple-download-monitor.php:409
33
  msgid "Default value is <code>files/</code>, which only allows download from /files directory (the leading <code>/</code> is implicit)."
34
  msgstr "Výchozí hodnota je <code>files/</code>, která dovolí stahovat pouze soubory z adresáře /files (úvodní <code>/</code> je dosazeno automaticky)."
35
 
36
- #: ../simple-download-monitor.php:411
37
  msgid "Allowed extensions"
38
  msgstr "Povolené přípony"
39
 
40
- #: ../simple-download-monitor.php:412
41
  msgid "Only files with extensions matching this regular expressions will be processed. This is another important security value. Make sure you only add extensions which are safe for malicious users to have, e.g. archives and possibly images. Do NOT use any expression that could allow a user to download PHP files, even if you think it safe given the Allowed Directories option above."
42
  msgstr "Zpracovávány budou pouze soubory, jejichž přípony odpovídají tomuto regulárnímu výrazu. Jde o další důležitý bezpečnostní prvek. Dejte si pozor, ať jsou zde uvedeny pouze takové přípony, které nemohou být zneužity útočníky, tzn. komprimované archívy a případně obrázky. NEPOUŽÍVEJTE výrazy, které by mohly uživateli dovolit download PHP souborů, ani kdyby tyto soubory vylučovalo nastavení \"Povolené adresáře\" výše."
43
 
44
- #: ../simple-download-monitor.php:413
45
  msgid "Default value is <code>zip|rar|7z</code> which only allows download of files ending with <code>.zip</code>, <code>.rar</code> and <code>.7z</code> (the leading <code>.</code> is implicit)."
46
  msgstr "Výchozí hodnota je <code>zip|rar|7z</code>, která povolí pouze stahování souborů s příponou <code>.zip</code>, <code>.rar</code> a <code>.7z</code> (úvodní <code>.</code> je dosazena automaticky)."
47
 
48
- #: ../simple-download-monitor.php:415
49
  msgid "Inline files"
50
  msgstr "Soubory pro inline zobrazení"
51
 
52
- #: ../simple-download-monitor.php:416
53
  msgid "Files whose names match this regular expression will be displayed inline (within a HTML page) rather than downloaded."
54
  msgstr "Soubory, které vyhovují tomuto regulárnímu výrazu, budou zobrazeny inline (jako objekt - např. obrázek nebo video - uvnitř HTML stránky) místo aby se stahovaly."
55
 
56
- #: ../simple-download-monitor.php:417
57
  msgid "By default, this value is empty - no files will appear inline, all will be downloaded. You may want to place something like <code>\\.(jpe?g|gif|png|swf)$</code> here to make images and Flash videos appear inline."
58
  msgstr "Výchozí hodnotou je prázdný řetězec - všechny soubory se budou stahovat, žádný nebude zobrazen inline. Vepište sem něco jako <code>\\.(jpe?g|gif|png|swf)$</code> pro zobrazování obrázků a Flashů inline."
59
 
60
- #: ../simple-download-monitor.php:418
61
  msgid "Note: Unlike the options above, nothing is implied in this regular expression. You <em>must</em> use an explicit <code>\\.</code> to denote \"start of extension\", you <em>must</em> use an explicit <code>$</code> to mark \"end of filename\", etc."
62
  msgstr "Pozn.: Narozdíl od nastavení uvedených výše se do tohoto regulárního výrazu nic nedoplňuje. Pokud chcete vyznačit \"začátek přípony\", <em>musíte</em> sem napsat <code>\\.</code>; pokud chcete vyznačit \"konec názvu souboru\", <em>musíte</em> sem napsat <code>$</code>, a podobně."
63
 
64
- #: ../simple-download-monitor.php:420
 
 
 
 
65
  msgid "Store detailed logs?"
66
  msgstr "Ukládat detailní záznamy?"
67
 
68
- #: ../simple-download-monitor.php:421
69
  msgid "If detailed logs are allowed, various information (including exact time of download, user's IP address, referrer etc.) is stored. This can fill your database quickly if you have only a little space or a lot of popular downloads. Otherwise just the total numbers of downloads are stored, consuming significantly less space."
70
  msgstr "Pokud je tato volba zapnuta, ukládají se detailní informace (jako přesný čas, IP adresa uživatele nebo referer) o každém downloadu. To může rychle zahltit databázi, pokud máte jen málo prostoru nebo populární downloady. Normálně se ukládá jen celkový počet stažení, který zabírá podstatně méně místa."
71
 
72
- #: ../simple-download-monitor.php:422
73
  msgid "Use detailed statistics."
74
  msgstr "Používat detailní statistiky"
75
 
76
- #: ../simple-download-monitor.php:423
77
  msgid "Ignored users"
78
  msgstr "Ignorovaní uživatelé"
79
 
80
- #: ../simple-download-monitor.php:424
81
  msgid "List of users whose downloads are not monitored. Separate multiple users with pipe character <code>|</code>. It is useful to prevent administrator damaging the statistics by testing that downloads work."
82
  msgstr "Seznam uživatelů, jejichž downloady nejsou sledovány. Uživatelská jména oddělujte znakem roury <code>|</code>. Funkce se hodí pro administrátory, kteří chtějí ověřovat funkčnost odkazů, ale nepřejí si, aby se jejich testy zaznamenávaly do statistik."
83
 
84
- #: ../simple-download-monitor.php:426
85
  msgid "Ignore quick re-downloads"
86
  msgstr "Ignorovat rychlé opakované downloady"
87
 
88
- #: ../simple-download-monitor.php:427
89
  msgid "If one IP address requests the same download several times within a given time interval, only the first time will be recorded. If a zero or a negative value is entered, all downloads will get recorded regardless of how quickly they occur after each other."
90
  msgstr "Pokud se jedna IP adresa pokusí stáhnout jeden soubor několikrát po sobě v daném časovém intervalu, zaznamená se do statistik jen první pokus. Pokud je rozpětí stanoveno na nula nebo záporné číslo, budou se zaznamenávat všechny downloady, bez ohledu na to, jak rychle po sobě následují."
91
 
92
- #: ../simple-download-monitor.php:428
93
  msgid "seconds"
94
  msgstr "sekund"
95
 
96
- #: ../simple-download-monitor.php:429
97
  msgid "Update settings"
98
  msgstr "Uložit nastavení"
99
 
100
- #: ../simple-download-monitor.php:549
101
  msgid "First"
102
  msgstr "První"
103
 
104
- #: ../simple-download-monitor.php:550
105
  msgid "Previous"
106
  msgstr "Předchozí"
107
 
108
- #: ../simple-download-monitor.php:555
109
  msgid "Next"
110
  msgstr "Další"
111
 
112
- #: ../simple-download-monitor.php:556
113
  msgid "Last"
114
  msgstr "Poslední"
115
 
116
- #: ../simple-download-monitor.php:653
117
- #: ../simple-download-monitor.php:730
118
- #: ../simple-download-monitor.php:822
119
- #: ../simple-download-monitor.php:823
120
  msgid "Simple Download Monitor"
121
  msgstr "Simple Download Monitor"
122
 
123
- #: ../simple-download-monitor.php:654
124
  msgid "Nonexistent downloads"
125
  msgstr "Neexistující soubory"
126
 
127
- #: ../simple-download-monitor.php:654
128
  msgid "All downloads"
129
  msgstr "Všechny downloady"
130
 
131
- #: ../simple-download-monitor.php:655
132
  msgid "Show all downloads"
133
  msgstr "Zobrazit všechny soubory"
134
 
135
- #: ../simple-download-monitor.php:655
136
  msgid "Show nonexistent downloads"
137
  msgstr "Zobrazit neexistující soubory"
138
 
139
- #: ../simple-download-monitor.php:670
140
  msgid "Filename"
141
  msgstr "Název souboru"
142
 
143
- #: ../simple-download-monitor.php:671
144
  msgid "Download count"
145
  msgstr "Počet stažení"
146
 
147
- #: ../simple-download-monitor.php:672
148
  msgid "Last date"
149
  msgstr "Poslední datum"
150
 
151
- #: ../simple-download-monitor.php:695
152
- #: ../simple-download-monitor.php:785
153
- msgid "Delete"
154
- msgstr "Smazat"
155
-
156
- #: ../simple-download-monitor.php:703
157
- #: ../simple-download-monitor.php:793
158
- msgid "Delete Checked"
159
- msgstr "Smazat vybrané"
160
-
161
- #: ../simple-download-monitor.php:704
162
- #: ../simple-download-monitor.php:796
163
- msgid "Delete All"
164
- msgstr "Smazat všechny"
165
-
166
- #: ../simple-download-monitor.php:704
167
- #: ../simple-download-monitor.php:796
168
  msgid "Yes, I am sure"
169
  msgstr "Ano, chci to udělat"
170
 
171
- #: ../simple-download-monitor.php:731
172
  #, php-format
173
  msgid "Detailed data for <strong>%s</strong>:"
174
  msgstr "Detailní data pro <strong>%s</strong>:"
175
 
176
- #: ../simple-download-monitor.php:732
177
  #, php-format
178
  msgid "Total number of downloads: <strong>%d</strong>."
179
  msgstr "Celkový počet stažení: <strong>%d</strong>."
180
 
181
- #: ../simple-download-monitor.php:749
182
  msgid "Date"
183
  msgstr "Datum"
184
 
185
- #: ../simple-download-monitor.php:750
186
  msgid "Country"
187
  msgstr "Země"
188
 
189
- #: ../simple-download-monitor.php:751
190
  msgid "IP address"
191
  msgstr "IP adresa"
192
 
193
- #: ../simple-download-monitor.php:752
194
  msgid "Referer"
195
  msgstr "Referer"
196
 
197
- #: ../simple-download-monitor.php:753
198
  msgid "Username"
199
  msgstr "Uživatel"
200
 
201
- #: ../simple-download-monitor.php:800
 
 
 
 
 
 
 
 
 
 
 
 
202
  msgid "Return to full list."
203
  msgstr "Návrat do úplného seznamu"
204
 
 
 
 
 
 
2
  msgstr ""
3
  "Project-Id-Version: Simple Download Monitor v0.04\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2010-11-06 12:13+0100\n"
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: Pepak <pepak@pepak.net>\n"
8
  "Language-Team: Pepak <pepak@pepak.net>\n"
16
  "X-Poedit-Basepath: .\n"
17
  "X-Poedit-SearchPath-0: ..\n"
18
 
19
+ #: ../simple-download-monitor.php:418
20
+ #: ../simple-download-monitor.php:852
21
  msgid "Simple Download Monitor options"
22
  msgstr "Simple Download Monitor - nastavení"
23
 
24
+ #: ../simple-download-monitor.php:419
25
+ msgid "Access rights"
26
+ msgstr "Přístupová práva"
27
+
28
+ #: ../simple-download-monitor.php:420
29
+ msgid "You can set up user rights required to access various functions of Simple Download Monitor. Rights are assigned through capabilities (see <a href=\"http://codex.wordpress.org/Roles_and_Capabilities#Roles\">Roles and Capabilities</a> in WordPress Codex). Predefined values are <strong>read</strong> (\"any registered user\") for displaying stats, <strong>delete_users</strong> (\"administrator\") for reseting stats and <strong>manage_options</strong> (\"administrator\") for changing options."
30
+ msgstr "Zde můžete nastavit uživatelská práva potřebná pro přístup k jednotlivým funkcím Simple Download Monitoru. Práva jsou definována prostřednictvím schopností (capabilities, viz <a href=\"http://codex.wordpress.org/Roles_and_Capabilities#Roles\">Roles and Capabilities</a> ve WordPress Codex). Výchozí hodnoty jsou <strong>read</strong> (\"každý registrovaný uživatel) pro zobrazení statistik, <strong>delete_users</strong> (\"administrátor\") pro mazání statistik a <strong>manage_options</strong> (\"administrátor\") pro změnu nastavení."
31
+
32
+ #: ../simple-download-monitor.php:421
33
+ msgid "Capability required for viewing download stats:"
34
+ msgstr "Schopnost (capability) pro zobrazení statistik:"
35
+
36
+ #: ../simple-download-monitor.php:423
37
+ msgid "Capability required for reseting download stats:"
38
+ msgstr "Schopnost (capability) pro smazání statistik:"
39
+
40
+ #: ../simple-download-monitor.php:425
41
+ msgid "Capability required for setting SDMON options:"
42
+ msgstr "Schopnost (capability) pro nastavení:"
43
+
44
+ #: ../simple-download-monitor.php:427
45
  msgid "Allowed directories"
46
  msgstr "Povolené adresáře"
47
 
48
+ #: ../simple-download-monitor.php:428
49
  msgid "Only requested files whose full names (relative to document root) start with this regular expression will be processed. It is strongly recommended to place all downloadable files (and ONLY downloadable files) into a designated directory and then placing that directory's name followed by a slash here. It is possible to use the power of PREG to allow multiple directories, but make sure there are ONLY files which you are comfortable with malicious users downloading. Do not EVER allow directories which contain PHP files here! That could lead to disclosure of sensitive data, including username and password used to connect to WordPress database."
50
  msgstr "Zpracovávány budou pouze soubory, jejichž plná jména (relativní vůči kořenovému adresáři webu) začínají tímto regulárním výrazem. Silně doporučuji umístit všechny stažitelné soubory (a JENOM stažitelné soubory) do jednoho určeného adresáře a vepsat sem název tohoto adresáře zakončený lomítkem. Lze také využít všech možností, které dává PREG, pro povolení více adresářů, ale dejte si pozor, ať v nich jsou JEDINĚ soubory, u kterých vám nevadí, když si je stáhne útočník. NIKDY do těchto adresářů neukládejte žádné PHP soubory! To by mohlo vést k zveřejnění citlivých dat, včetně uživatelského jména a hesla pro připojení k databázi."
51
 
52
+ #: ../simple-download-monitor.php:429
53
  msgid "Default value is <code>files/</code>, which only allows download from /files directory (the leading <code>/</code> is implicit)."
54
  msgstr "Výchozí hodnota je <code>files/</code>, která dovolí stahovat pouze soubory z adresáře /files (úvodní <code>/</code> je dosazeno automaticky)."
55
 
56
+ #: ../simple-download-monitor.php:431
57
  msgid "Allowed extensions"
58
  msgstr "Povolené přípony"
59
 
60
+ #: ../simple-download-monitor.php:432
61
  msgid "Only files with extensions matching this regular expressions will be processed. This is another important security value. Make sure you only add extensions which are safe for malicious users to have, e.g. archives and possibly images. Do NOT use any expression that could allow a user to download PHP files, even if you think it safe given the Allowed Directories option above."
62
  msgstr "Zpracovávány budou pouze soubory, jejichž přípony odpovídají tomuto regulárnímu výrazu. Jde o další důležitý bezpečnostní prvek. Dejte si pozor, ať jsou zde uvedeny pouze takové přípony, které nemohou být zneužity útočníky, tzn. komprimované archívy a případně obrázky. NEPOUŽÍVEJTE výrazy, které by mohly uživateli dovolit download PHP souborů, ani kdyby tyto soubory vylučovalo nastavení \"Povolené adresáře\" výše."
63
 
64
+ #: ../simple-download-monitor.php:433
65
  msgid "Default value is <code>zip|rar|7z</code> which only allows download of files ending with <code>.zip</code>, <code>.rar</code> and <code>.7z</code> (the leading <code>.</code> is implicit)."
66
  msgstr "Výchozí hodnota je <code>zip|rar|7z</code>, která povolí pouze stahování souborů s příponou <code>.zip</code>, <code>.rar</code> a <code>.7z</code> (úvodní <code>.</code> je dosazena automaticky)."
67
 
68
+ #: ../simple-download-monitor.php:435
69
  msgid "Inline files"
70
  msgstr "Soubory pro inline zobrazení"
71
 
72
+ #: ../simple-download-monitor.php:436
73
  msgid "Files whose names match this regular expression will be displayed inline (within a HTML page) rather than downloaded."
74
  msgstr "Soubory, které vyhovují tomuto regulárnímu výrazu, budou zobrazeny inline (jako objekt - např. obrázek nebo video - uvnitř HTML stránky) místo aby se stahovaly."
75
 
76
+ #: ../simple-download-monitor.php:437
77
  msgid "By default, this value is empty - no files will appear inline, all will be downloaded. You may want to place something like <code>\\.(jpe?g|gif|png|swf)$</code> here to make images and Flash videos appear inline."
78
  msgstr "Výchozí hodnotou je prázdný řetězec - všechny soubory se budou stahovat, žádný nebude zobrazen inline. Vepište sem něco jako <code>\\.(jpe?g|gif|png|swf)$</code> pro zobrazování obrázků a Flashů inline."
79
 
80
+ #: ../simple-download-monitor.php:438
81
  msgid "Note: Unlike the options above, nothing is implied in this regular expression. You <em>must</em> use an explicit <code>\\.</code> to denote \"start of extension\", you <em>must</em> use an explicit <code>$</code> to mark \"end of filename\", etc."
82
  msgstr "Pozn.: Narozdíl od nastavení uvedených výše se do tohoto regulárního výrazu nic nedoplňuje. Pokud chcete vyznačit \"začátek přípony\", <em>musíte</em> sem napsat <code>\\.</code>; pokud chcete vyznačit \"konec názvu souboru\", <em>musíte</em> sem napsat <code>$</code>, a podobně."
83
 
84
+ #: ../simple-download-monitor.php:439
85
+ msgid "Also note that this plugin uses PCRE-compatible regular expressions, NOT the better-known POSIX-compatible regular expressions. As a result, a valid regular expression must be at least three characters long - separator twice, and at least one character for a meaningful r.e."
86
+ msgstr "Dále upozorňuji, že plugin používá PCRE-kompatibilní regulární výrazy a ne známější POSIX-kompatibilní. Z tohoto důvodu je vyžadováno, aby regulární výraz byl aspoň tři znaky dlouhý - dva znaky na dva výskyty oddělovače a aspoň jeden znak pro smysluplný r.e."
87
+
88
+ #: ../simple-download-monitor.php:441
89
  msgid "Store detailed logs?"
90
  msgstr "Ukládat detailní záznamy?"
91
 
92
+ #: ../simple-download-monitor.php:442
93
  msgid "If detailed logs are allowed, various information (including exact time of download, user's IP address, referrer etc.) is stored. This can fill your database quickly if you have only a little space or a lot of popular downloads. Otherwise just the total numbers of downloads are stored, consuming significantly less space."
94
  msgstr "Pokud je tato volba zapnuta, ukládají se detailní informace (jako přesný čas, IP adresa uživatele nebo referer) o každém downloadu. To může rychle zahltit databázi, pokud máte jen málo prostoru nebo populární downloady. Normálně se ukládá jen celkový počet stažení, který zabírá podstatně méně místa."
95
 
96
+ #: ../simple-download-monitor.php:443
97
  msgid "Use detailed statistics."
98
  msgstr "Používat detailní statistiky"
99
 
100
+ #: ../simple-download-monitor.php:444
101
  msgid "Ignored users"
102
  msgstr "Ignorovaní uživatelé"
103
 
104
+ #: ../simple-download-monitor.php:445
105
  msgid "List of users whose downloads are not monitored. Separate multiple users with pipe character <code>|</code>. It is useful to prevent administrator damaging the statistics by testing that downloads work."
106
  msgstr "Seznam uživatelů, jejichž downloady nejsou sledovány. Uživatelská jména oddělujte znakem roury <code>|</code>. Funkce se hodí pro administrátory, kteří chtějí ověřovat funkčnost odkazů, ale nepřejí si, aby se jejich testy zaznamenávaly do statistik."
107
 
108
+ #: ../simple-download-monitor.php:447
109
  msgid "Ignore quick re-downloads"
110
  msgstr "Ignorovat rychlé opakované downloady"
111
 
112
+ #: ../simple-download-monitor.php:448
113
  msgid "If one IP address requests the same download several times within a given time interval, only the first time will be recorded. If a zero or a negative value is entered, all downloads will get recorded regardless of how quickly they occur after each other."
114
  msgstr "Pokud se jedna IP adresa pokusí stáhnout jeden soubor několikrát po sobě v daném časovém intervalu, zaznamená se do statistik jen první pokus. Pokud je rozpětí stanoveno na nula nebo záporné číslo, budou se zaznamenávat všechny downloady, bez ohledu na to, jak rychle po sobě následují."
115
 
116
+ #: ../simple-download-monitor.php:449
117
  msgid "seconds"
118
  msgstr "sekund"
119
 
120
+ #: ../simple-download-monitor.php:450
121
  msgid "Update settings"
122
  msgstr "Uložit nastavení"
123
 
124
+ #: ../simple-download-monitor.php:571
125
  msgid "First"
126
  msgstr "První"
127
 
128
+ #: ../simple-download-monitor.php:572
129
  msgid "Previous"
130
  msgstr "Předchozí"
131
 
132
+ #: ../simple-download-monitor.php:579
133
  msgid "Next"
134
  msgstr "Další"
135
 
136
+ #: ../simple-download-monitor.php:580
137
  msgid "Last"
138
  msgstr "Poslední"
139
 
140
+ #: ../simple-download-monitor.php:678
141
+ #: ../simple-download-monitor.php:755
142
+ #: ../simple-download-monitor.php:852
143
+ #: ../simple-download-monitor.php:853
144
  msgid "Simple Download Monitor"
145
  msgstr "Simple Download Monitor"
146
 
147
+ #: ../simple-download-monitor.php:679
148
  msgid "Nonexistent downloads"
149
  msgstr "Neexistující soubory"
150
 
151
+ #: ../simple-download-monitor.php:679
152
  msgid "All downloads"
153
  msgstr "Všechny downloady"
154
 
155
+ #: ../simple-download-monitor.php:680
156
  msgid "Show all downloads"
157
  msgstr "Zobrazit všechny soubory"
158
 
159
+ #: ../simple-download-monitor.php:680
160
  msgid "Show nonexistent downloads"
161
  msgstr "Zobrazit neexistující soubory"
162
 
163
+ #: ../simple-download-monitor.php:695
164
  msgid "Filename"
165
  msgstr "Název souboru"
166
 
167
+ #: ../simple-download-monitor.php:696
168
  msgid "Download count"
169
  msgstr "Počet stažení"
170
 
171
+ #: ../simple-download-monitor.php:697
172
  msgid "Last date"
173
  msgstr "Poslední datum"
174
 
175
+ #: ../simple-download-monitor.php:720
176
+ msgid "Reset this statistic"
177
+ msgstr "Vymazat tuto statistiku"
178
+
179
+ #: ../simple-download-monitor.php:728
180
+ msgid "Reset checked statistics"
181
+ msgstr "Vymazat označené statistiky"
182
+
183
+ #: ../simple-download-monitor.php:729
184
+ msgid "Reset all statistics"
185
+ msgstr "Vymazat všechny statistiky"
186
+
187
+ #: ../simple-download-monitor.php:729
188
+ #: ../simple-download-monitor.php:826
 
 
 
189
  msgid "Yes, I am sure"
190
  msgstr "Ano, chci to udělat"
191
 
192
+ #: ../simple-download-monitor.php:756
193
  #, php-format
194
  msgid "Detailed data for <strong>%s</strong>:"
195
  msgstr "Detailní data pro <strong>%s</strong>:"
196
 
197
+ #: ../simple-download-monitor.php:757
198
  #, php-format
199
  msgid "Total number of downloads: <strong>%d</strong>."
200
  msgstr "Celkový počet stažení: <strong>%d</strong>."
201
 
202
+ #: ../simple-download-monitor.php:774
203
  msgid "Date"
204
  msgstr "Datum"
205
 
206
+ #: ../simple-download-monitor.php:775
207
  msgid "Country"
208
  msgstr "Země"
209
 
210
+ #: ../simple-download-monitor.php:776
211
  msgid "IP address"
212
  msgstr "IP adresa"
213
 
214
+ #: ../simple-download-monitor.php:777
215
  msgid "Referer"
216
  msgstr "Referer"
217
 
218
+ #: ../simple-download-monitor.php:778
219
  msgid "Username"
220
  msgstr "Uživatel"
221
 
222
+ #: ../simple-download-monitor.php:815
223
+ msgid "Delete this statistic"
224
+ msgstr "Vymazat tuto statistiku"
225
+
226
+ #: ../simple-download-monitor.php:823
227
+ msgid "Delete checked statistics"
228
+ msgstr "Vymazat označené statistiky"
229
+
230
+ #: ../simple-download-monitor.php:826
231
+ msgid "Delete all statistics"
232
+ msgstr "Vymazat všechny statistiky"
233
+
234
+ #: ../simple-download-monitor.php:830
235
  msgid "Return to full list."
236
  msgstr "Návrat do úplného seznamu"
237
 
238
+ #~ msgid "Delete"
239
+ #~ msgstr "Smazat"
240
+ #~ msgid "Delete All"
241
+ #~ msgstr "Smazat všechny"
242
+
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link:
4
  Tags: files, counter, count, tracking, download monitor, monitor, downloads, download
5
  Requires at least: 2.8.0
6
  Tested up to: 3.0.0
7
- Stable tag: 0.13
8
 
9
  Count the number of downloads without having to maintain a comprehensive download page.
10
 
@@ -53,6 +53,10 @@ username of people who download my files.
53
 
54
  == Frequently Asked Questions ==
55
 
 
 
 
 
56
  = Why don't I see any files in the download statistics? =
57
 
58
  Because nobody downloaded any file yet. Simple Download Monitor does not
@@ -97,6 +101,15 @@ does work (PHP 5 is backwards compatible with PHP 4), but it may
97
  not work on a real PHP 4 as I have no test machine for it. But I
98
  will fix any errors that are reported to me.
99
 
 
 
 
 
 
 
 
 
 
100
  == Screenshots ==
101
 
102
  1. Administrative options
@@ -105,6 +118,24 @@ will fix any errors that are reported to me.
105
 
106
  == Changelog ==
107
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  = 0.13 =
109
 
110
  * Tested for compatibility with WordPress 3.0. Older versions work with
4
  Tags: files, counter, count, tracking, download monitor, monitor, downloads, download
5
  Requires at least: 2.8.0
6
  Tested up to: 3.0.0
7
+ Stable tag: 0.15
8
 
9
  Count the number of downloads without having to maintain a comprehensive download page.
10
 
53
 
54
  == Frequently Asked Questions ==
55
 
56
+ = Where can I get support? =
57
+
58
+ Support is provided at: http://forum.pepak.net
59
+
60
  = Why don't I see any files in the download statistics? =
61
 
62
  Because nobody downloaded any file yet. Simple Download Monitor does not
101
  not work on a real PHP 4 as I have no test machine for it. But I
102
  will fix any errors that are reported to me.
103
 
104
+ = How do I prevent monitoring of certain files? =
105
+
106
+ There is no such functionality in Simple Download Monitor itself, because
107
+ the user interface would become needlessly complex. You can achieve the
108
+ same result through a proper record in the `.htaccess` file. See this
109
+ comment for an example (Richie, 2010-07-21):
110
+
111
+ http://www.pepak.net/wordpress/simple-download-monitor-plugin/#comment-4729
112
+
113
  == Screenshots ==
114
 
115
  1. Administrative options
118
 
119
  == Changelog ==
120
 
121
+ = 0.15 =
122
+
123
+ * User rights required to access various parts of the plugin's interface
124
+ are now configurable. This should satisfy the admins who don't want
125
+ their users to view download stats.
126
+
127
+ * More explicitly explained the "Inline files" setting and tightened it
128
+ so that it must be at least three characters long to be valid.
129
+
130
+ * Changed the captions of "delete" buttons to make it clear that only the
131
+ statistics get deleted, not the actual files.
132
+
133
+ = 0.14 =
134
+
135
+ * Changed country-flag-displaying code to use my IP-to-Country plugin in
136
+ version 0.03.
137
+
138
+
139
  = 0.13 =
140
 
141
  * Tested for compatibility with WordPress 3.0. Older versions work with
simple-download-monitor.php CHANGED
@@ -4,7 +4,7 @@
4
  Plugin Name: Simple Download Monitor
5
  Plugin URI: http://www.pepak.net/wordpress/simple-download-monitor-plugin
6
  Description: Count the number of downloads without having to maintain a comprehensive download page.
7
- Version: 0.13
8
  Author: Pepak
9
  Author URI: http://www.pepak.net
10
  */
@@ -31,7 +31,7 @@ if (!class_exists('SimpleDownloadMonitor'))
31
  class SimpleDownloadMonitor
32
  {
33
 
34
- const VERSION = '0.12';
35
  const PREFIX = 'sdmon_';
36
  const PREG_DELIMITER = '`';
37
  const GET_PARAM = 'sdmon';
@@ -94,6 +94,9 @@ if (!class_exists('SimpleDownloadMonitor'))
94
  add_option(self::PREFIX . 'inline', '');
95
  add_option(self::PREFIX . 'ignored_users', '');
96
  add_option(self::PREFIX . 'group_within', '0');
 
 
 
97
  }
98
 
99
  protected function table_downloads()
@@ -317,7 +320,7 @@ if (!class_exists('SimpleDownloadMonitor'))
317
  }
318
  // If the file exists and is valid, download it
319
  // Make sure the file is available for download
320
- if (!($exists * $valid))
321
  return FALSE;
322
  // Generate proper headers
323
  $mimetype = '';
@@ -373,6 +376,9 @@ if (!class_exists('SimpleDownloadMonitor'))
373
  $inline = strval($_POST[self::PREFIX . 'inline']);
374
  $ignored_users = strval($_POST[self::PREFIX . 'ignored_users']);
375
  $group_within = intval($_POST[self::PREFIX . 'group_within']);
 
 
 
376
  // Remove slashes if necessary
377
  if (get_magic_quotes_gpc())
378
  {
@@ -387,9 +393,13 @@ if (!class_exists('SimpleDownloadMonitor'))
387
  update_option(self::PREFIX . 'directories', $directories);
388
  update_option(self::PREFIX . 'extensions', $extensions);
389
  update_option(self::PREFIX . 'detailed', $detailed);
390
- update_option(self::PREFIX . 'inline', $inline);
 
391
  update_option(self::PREFIX . 'ignored_users', $ignored_users);
392
  update_option(self::PREFIX . 'group_within', $group_within);
 
 
 
393
  }
394
  // Load options from the database
395
  $directories = get_option(self::PREFIX . 'directories');
@@ -398,11 +408,22 @@ if (!class_exists('SimpleDownloadMonitor'))
398
  $inline = get_option(self::PREFIX . 'inline');
399
  $ignored_users = get_option(self::PREFIX . 'ignored_users');
400
  $group_within = intval(get_option(self::PREFIX . 'group_within'));
 
 
 
401
  // Build the form
402
  ?>
403
  <div class="wrap">
404
  <form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
405
  <h2><?php echo __('Simple Download Monitor options', self::GETTEXT_REALM); ?></h2>
 
 
 
 
 
 
 
 
406
  <h3><?php echo __('Allowed directories', self::GETTEXT_REALM); ?></h3>
407
  <p><?php echo __("Only requested files whose full names (relative to document root) start with this regular expression will be processed. It is strongly recommended to place all downloadable files (and ONLY downloadable files) into a designated directory and then placing that directory's name followed by a slash here. It is possible to use the power of PREG to allow multiple directories, but make sure there are ONLY files which you are comfortable with malicious users downloading. Do not EVER allow directories which contain PHP files here! That could lead to disclosure of sensitive data, including username and password used to connect to WordPress database.", self::GETTEXT_REALM); ?></p>
408
  <p><?php echo __("Default value is <code>files/</code>, which only allows download from /files directory (the leading <code>/</code> is implicit).", self::GETTEXT_REALM); ?></p>
@@ -415,6 +436,7 @@ if (!class_exists('SimpleDownloadMonitor'))
415
  <p><?php echo __('Files whose names match this regular expression will be displayed inline (within a HTML page) rather than downloaded.', self::GETTEXT_REALM); ?></p>
416
  <p><?php echo __("By default, this value is empty - no files will appear inline, all will be downloaded. You may want to place something like <code>\.(jpe?g|gif|png|swf)$</code> here to make images and Flash videos appear inline.", self::GETTEXT_REALM); ?></p>
417
  <p><?php echo __('Note: Unlike the options above, nothing is implied in this regular expression. You <em>must</em> use an explicit <code>\.</code> to denote "start of extension", you <em>must</em> use an explicit <code>$</code> to mark "end of filename", etc.', self::GETTEXT_REALM); ?></p>
 
418
  <p><input type="text" name="<?php echo self::PREFIX; ?>inline" value="<?php echo attribute_escape($inline); ?>" /></p>
419
  <h3><?php echo __("Store detailed logs?", self::GETTEXT_REALM); ?></h3>
420
  <p><?php echo __("If detailed logs are allowed, various information (including exact time of download, user's IP address, referrer etc.) is stored. This can fill your database quickly if you have only a little space or a lot of popular downloads. Otherwise just the total numbers of downloads are stored, consuming significantly less space.", self::GETTEXT_REALM); ?></p>
@@ -564,7 +586,7 @@ if (!class_exists('SimpleDownloadMonitor'))
564
 
565
  protected function IsAdmin()
566
  {
567
- if (current_user_can('delete_users'))
568
  /*
569
  global $user_level;
570
  get_currentuserinfo();
@@ -695,7 +717,7 @@ if (!class_exists('SimpleDownloadMonitor'))
695
  <td><?php if ($detailed): ?><a href="<?php echo $this->GetUrlForList(array('download' => $download)); ?>"><?php endif; echo htmlspecialchars($filename); if ($detailed): ?></a><?php endif; ?></td>
696
  <td><?php echo $count; ?></td>
697
  <td><?php echo mysql2date('Y-m-d H:i:s', $date, TRUE); ?></td>
698
- <td><?php if ($this->IsAdmin()): ?><input type="checkbox" name="SimpleDownloadMonitor_DeleteIds[]" value="<?php echo $download; ?>" /><label for="SimpleDownloadMonitor_DeleteIds[]"> <?php echo __('Delete', self::GETTEXT_REALM); ?></label><?php else: ?>&nbsp;<?php endif; ?></td>
699
  </tr>
700
  </tbody><?php
701
  }
@@ -703,8 +725,8 @@ if (!class_exists('SimpleDownloadMonitor'))
703
  ?>
704
  </table>
705
  <?php if ($this->isAdmin()): ?>
706
- <div><input type="submit" name="SimpleDownloadMonitor_Delete" value="<?php echo __('Delete Checked', self::GETTEXT_REALM); ?>" /></div>
707
- <div><input type="submit" name="SimpleDownloadMonitor_DeleteAll" value="<?php echo __('Delete All', self::GETTEXT_REALM); ?>" /> - <input type="checkbox" name="SimpleDownloadMonitor_DeleteAllReally" value="yes" /><label for="SimpleDownloadMonitor_DeleteAllReally"> <?php echo __('Yes, I am sure', self::GETTEXT_REALM); ?></label></div>
708
  </form>
709
  <?php endif; ?>
710
  <?php echo $this->Paginator($options, $totalcount); ?>
@@ -775,17 +797,22 @@ if (!class_exists('SimpleDownloadMonitor'))
775
  foreach ($results as $row) {
776
  $rownum++;
777
  list($id, $date, $ip, $referer, $userid, $username, $country) = $row;
778
- $country = strtolower($country);
779
- $country_flag = ($country && file_exists($this->plugin_dir.'/flags/'.$country.'.png')) ? $this->plugin_url.'/flags/'.$country.'.png' : '';
 
 
 
 
 
780
  ?>
781
  <tr>
782
  <td><?php echo $rownum; ?>.</td>
783
  <td><?php echo mysql2date('Y-m-d H:i:s', $date, TRUE); ?></td>
784
- <td><?php echo ($country_flag) ? '<img src="'.htmlspecialchars($country_flag).'" alt="'.$country.'" title="'.$country.'"/>' : $country; ?></td>
785
  <td><?php echo htmlspecialchars($ip); ?></td>
786
  <td><?php echo htmlspecialchars($referer); ?></td>
787
  <td><?php echo htmlspecialchars($username); ?></td>
788
- <td><?php if ($this->IsAdmin()): ?><input type="checkbox" name="SimpleDownloadMonitor_DeleteIds[]" value="<?php echo $id; ?>" /><label for="SimpleDownloadMonitor_DeleteIds[]"> <?php echo __('Delete', self::GETTEXT_REALM); ?></label><?php else: ?>&nbsp;<?php endif; ?></td>
789
  </tr>
790
  </tbody><?php
791
  }
@@ -793,10 +820,10 @@ if (!class_exists('SimpleDownloadMonitor'))
793
  ?>
794
  </table>
795
  <?php if ($this->isAdmin()): ?>
796
- <div><input type="submit" name="SimpleDownloadMonitor_DeleteDetail" value="<?php echo __('Delete Checked', self::GETTEXT_REALM); ?>" /></div>
797
  </form>
798
  <form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
799
- <div><input type="submit" name="SimpleDownloadMonitor_Delete" value="<?php echo __('Delete All', self::GETTEXT_REALM); ?>" /> - <input type="checkbox" name="SimpleDownloadMonitor_DeleteIds[]" value="<?php echo $download; ?>" /> <?php echo __('Yes, I am sure', self::GETTEXT_REALM); ?></label></div>
800
  </form>
801
  <?php endif; ?>
802
  <?php echo $this->Paginator($options, $totalcount); ?>
@@ -822,8 +849,12 @@ if (!function_exists('SimpleDownloadMonitor_BuildAdminMenu'))
822
  global $sdmon;
823
  if (isset($sdmon))
824
  {
825
- $options_page = add_options_page(__('Simple Download Monitor options', SimpleDownloadMonitor::GETTEXT_REALM), __('Simple Download Monitor', SimpleDownloadMonitor::GETTEXT_REALM), 'manage_options', basename(__FILE__), array(&$sdmon, 'AdminPanel'));
826
- $tool_page = add_submenu_page('tools.php', __('Simple Download Monitor', SimpleDownloadMonitor::GETTEXT_REALM), __('Simple Download Monitor', SimpleDownloadMonitor::GETTEXT_REALM), 'read', basename(__FILE__), array(&$sdmon, 'ToolsPanel'));
 
 
 
 
827
  add_action('admin_head-'.$tool_page, array(&$sdmon, 'ActionHead'));
828
  }
829
  }
4
  Plugin Name: Simple Download Monitor
5
  Plugin URI: http://www.pepak.net/wordpress/simple-download-monitor-plugin
6
  Description: Count the number of downloads without having to maintain a comprehensive download page.
7
+ Version: 0.15
8
  Author: Pepak
9
  Author URI: http://www.pepak.net
10
  */
31
  class SimpleDownloadMonitor
32
  {
33
 
34
+ const VERSION = '0.15';
35
  const PREFIX = 'sdmon_';
36
  const PREG_DELIMITER = '`';
37
  const GET_PARAM = 'sdmon';
94
  add_option(self::PREFIX . 'inline', '');
95
  add_option(self::PREFIX . 'ignored_users', '');
96
  add_option(self::PREFIX . 'group_within', '0');
97
+ add_option(self::PREFIX . 'rights_view', 'read');
98
+ add_option(self::PREFIX . 'rights_delete', 'delete_users');
99
+ add_option(self::PREFIX . 'rights_options', 'manage_options');
100
  }
101
 
102
  protected function table_downloads()
320
  }
321
  // If the file exists and is valid, download it
322
  // Make sure the file is available for download
323
+ if (!$exists OR !$valid)
324
  return FALSE;
325
  // Generate proper headers
326
  $mimetype = '';
376
  $inline = strval($_POST[self::PREFIX . 'inline']);
377
  $ignored_users = strval($_POST[self::PREFIX . 'ignored_users']);
378
  $group_within = intval($_POST[self::PREFIX . 'group_within']);
379
+ $rights_view = strval($_POST[self::PREFIX . 'rights_view']);
380
+ $rights_delete = strval($_POST[self::PREFIX . 'rights_delete']);
381
+ $rights_options = strval($_POST[self::PREFIX . 'rights_options']);
382
  // Remove slashes if necessary
383
  if (get_magic_quotes_gpc())
384
  {
393
  update_option(self::PREFIX . 'directories', $directories);
394
  update_option(self::PREFIX . 'extensions', $extensions);
395
  update_option(self::PREFIX . 'detailed', $detailed);
396
+ if (strlen($inline) >= 3)
397
+ update_option(self::PREFIX . 'inline', $inline);
398
  update_option(self::PREFIX . 'ignored_users', $ignored_users);
399
  update_option(self::PREFIX . 'group_within', $group_within);
400
+ update_option(self::PREFIX . 'rights_view', $rights_view);
401
+ update_option(self::PREFIX . 'rights_delete', $rights_delete);
402
+ update_option(self::PREFIX . 'rights_options', $rights_options);
403
  }
404
  // Load options from the database
405
  $directories = get_option(self::PREFIX . 'directories');
408
  $inline = get_option(self::PREFIX . 'inline');
409
  $ignored_users = get_option(self::PREFIX . 'ignored_users');
410
  $group_within = intval(get_option(self::PREFIX . 'group_within'));
411
+ $rights_view = get_option(self::PREFIX . 'rights_view');
412
+ $rights_delete = get_option(self::PREFIX . 'rights_delete');
413
+ $rights_options = get_option(self::PREFIX . 'rights_options');
414
  // Build the form
415
  ?>
416
  <div class="wrap">
417
  <form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
418
  <h2><?php echo __('Simple Download Monitor options', self::GETTEXT_REALM); ?></h2>
419
+ <h3><?php echo __('Access rights', self::GETTEXT_REALM); ?></h3>
420
+ <p><?php echo __('You can set up user rights required to access various functions of Simple Download Monitor. Rights are assigned through capabilities (see <a href="http://codex.wordpress.org/Roles_and_Capabilities#Roles">Roles and Capabilities</a> in WordPress Codex). Predefined values are <strong>read</strong> ("any registered user") for displaying stats, <strong>delete_users</strong> ("administrator") for reseting stats and <strong>manage_options</strong> ("administrator") for changing options.', self::GETTEXT_REALM); ?></p>
421
+ <p><?php echo __('Capability required for viewing download stats:', self::GETTEXT_REALM); ?></p>
422
+ <p><input type="text" name="<?php echo self::PREFIX; ?>rights_view" value="<?php echo attribute_escape($rights_view); ?>" /></p>
423
+ <p><?php echo __('Capability required for reseting download stats:', self::GETTEXT_REALM); ?></p>
424
+ <p><input type="text" name="<?php echo self::PREFIX; ?>rights_delete" value="<?php echo attribute_escape($rights_delete); ?>" /></p>
425
+ <p><?php echo __('Capability required for setting SDMON options:', self::GETTEXT_REALM); ?></p>
426
+ <p><input type="text" name="<?php echo self::PREFIX; ?>rights_options" value="<?php echo attribute_escape($rights_options); ?>" /></p>
427
  <h3><?php echo __('Allowed directories', self::GETTEXT_REALM); ?></h3>
428
  <p><?php echo __("Only requested files whose full names (relative to document root) start with this regular expression will be processed. It is strongly recommended to place all downloadable files (and ONLY downloadable files) into a designated directory and then placing that directory's name followed by a slash here. It is possible to use the power of PREG to allow multiple directories, but make sure there are ONLY files which you are comfortable with malicious users downloading. Do not EVER allow directories which contain PHP files here! That could lead to disclosure of sensitive data, including username and password used to connect to WordPress database.", self::GETTEXT_REALM); ?></p>
429
  <p><?php echo __("Default value is <code>files/</code>, which only allows download from /files directory (the leading <code>/</code> is implicit).", self::GETTEXT_REALM); ?></p>
436
  <p><?php echo __('Files whose names match this regular expression will be displayed inline (within a HTML page) rather than downloaded.', self::GETTEXT_REALM); ?></p>
437
  <p><?php echo __("By default, this value is empty - no files will appear inline, all will be downloaded. You may want to place something like <code>\.(jpe?g|gif|png|swf)$</code> here to make images and Flash videos appear inline.", self::GETTEXT_REALM); ?></p>
438
  <p><?php echo __('Note: Unlike the options above, nothing is implied in this regular expression. You <em>must</em> use an explicit <code>\.</code> to denote "start of extension", you <em>must</em> use an explicit <code>$</code> to mark "end of filename", etc.', self::GETTEXT_REALM); ?></p>
439
+ <p><?php echo __('Also note that this plugin uses PCRE-compatible regular expressions, NOT the better-known POSIX-compatible regular expressions. As a result, a valid regular expression must be at least three characters long - separator twice, and at least one character for a meaningful r.e.', self::GETTEXT_REALM); ?></p>
440
  <p><input type="text" name="<?php echo self::PREFIX; ?>inline" value="<?php echo attribute_escape($inline); ?>" /></p>
441
  <h3><?php echo __("Store detailed logs?", self::GETTEXT_REALM); ?></h3>
442
  <p><?php echo __("If detailed logs are allowed, various information (including exact time of download, user's IP address, referrer etc.) is stored. This can fill your database quickly if you have only a little space or a lot of popular downloads. Otherwise just the total numbers of downloads are stored, consuming significantly less space.", self::GETTEXT_REALM); ?></p>
586
 
587
  protected function IsAdmin()
588
  {
589
+ if (current_user_can(get_option(self::PREFIX . 'rights_delete')))
590
  /*
591
  global $user_level;
592
  get_currentuserinfo();
717
  <td><?php if ($detailed): ?><a href="<?php echo $this->GetUrlForList(array('download' => $download)); ?>"><?php endif; echo htmlspecialchars($filename); if ($detailed): ?></a><?php endif; ?></td>
718
  <td><?php echo $count; ?></td>
719
  <td><?php echo mysql2date('Y-m-d H:i:s', $date, TRUE); ?></td>
720
+ <td><?php if ($this->IsAdmin()): ?><input type="checkbox" name="SimpleDownloadMonitor_DeleteIds[]" value="<?php echo $download; ?>" /><label for="SimpleDownloadMonitor_DeleteIds[]"> <?php echo __('Reset this statistic', self::GETTEXT_REALM); ?></label><?php else: ?>&nbsp;<?php endif; ?></td>
721
  </tr>
722
  </tbody><?php
723
  }
725
  ?>
726
  </table>
727
  <?php if ($this->isAdmin()): ?>
728
+ <div><input type="submit" name="SimpleDownloadMonitor_Delete" value="<?php echo __('Reset checked statistics', self::GETTEXT_REALM); ?>" /></div>
729
+ <div><input type="submit" name="SimpleDownloadMonitor_DeleteAll" value="<?php echo __('Reset all statistics', self::GETTEXT_REALM); ?>" /> - <input type="checkbox" name="SimpleDownloadMonitor_DeleteAllReally" value="yes" /><label for="SimpleDownloadMonitor_DeleteAllReally"> <?php echo __('Yes, I am sure', self::GETTEXT_REALM); ?></label></div>
730
  </form>
731
  <?php endif; ?>
732
  <?php echo $this->Paginator($options, $totalcount); ?>
797
  foreach ($results as $row) {
798
  $rownum++;
799
  list($id, $date, $ip, $referer, $userid, $username, $country) = $row;
800
+ if (class_exists('PepakIpToCountry') AND (PepakIpToCountry::VERSION>='0.03'))
801
+ $country_flag = PepakIpToCountry::IP_to_Country_Flag($ip);
802
+ else
803
+ {
804
+ $country = strtolower($country);
805
+ $country_flag = ($country && file_exists($this->plugin_dir.'/flags/'.$country.'.png')) ? '<img src="'.$this->plugin_url.'/flags/'.$country.'.png" alt="'.$country.'" />' : '';
806
+ }
807
  ?>
808
  <tr>
809
  <td><?php echo $rownum; ?>.</td>
810
  <td><?php echo mysql2date('Y-m-d H:i:s', $date, TRUE); ?></td>
811
+ <td><?php echo ($country_flag) ? $country_flag : '&nbsp;'; ?></td>
812
  <td><?php echo htmlspecialchars($ip); ?></td>
813
  <td><?php echo htmlspecialchars($referer); ?></td>
814
  <td><?php echo htmlspecialchars($username); ?></td>
815
+ <td><?php if ($this->IsAdmin()): ?><input type="checkbox" name="SimpleDownloadMonitor_DeleteIds[]" value="<?php echo $id; ?>" /><label for="SimpleDownloadMonitor_DeleteIds[]"> <?php echo __('Delete this statistic', self::GETTEXT_REALM); ?></label><?php else: ?>&nbsp;<?php endif; ?></td>
816
  </tr>
817
  </tbody><?php
818
  }
820
  ?>
821
  </table>
822
  <?php if ($this->isAdmin()): ?>
823
+ <div><input type="submit" name="SimpleDownloadMonitor_DeleteDetail" value="<?php echo __('Delete checked statistics', self::GETTEXT_REALM); ?>" /></div>
824
  </form>
825
  <form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
826
+ <div><input type="submit" name="SimpleDownloadMonitor_Delete" value="<?php echo __('Delete all statistics', self::GETTEXT_REALM); ?>" /> - <input type="checkbox" name="SimpleDownloadMonitor_DeleteIds[]" value="<?php echo $download; ?>" /> <?php echo __('Yes, I am sure', self::GETTEXT_REALM); ?></label></div>
827
  </form>
828
  <?php endif; ?>
829
  <?php echo $this->Paginator($options, $totalcount); ?>
849
  global $sdmon;
850
  if (isset($sdmon))
851
  {
852
+ $rights_options = get_option(SimpleDownloadMonitor::PREFIX . 'rights_options');
853
+ $rights_view = get_option(SimpleDownloadMonitor::PREFIX . 'rights_view');
854
+ if (!$rights_options) $rights_options = 'manage_options';
855
+ if (!$rights_view) $rights_view = 'read';
856
+ $options_page = add_options_page(__('Simple Download Monitor options', SimpleDownloadMonitor::GETTEXT_REALM), __('Simple Download Monitor', SimpleDownloadMonitor::GETTEXT_REALM), $rights_options, basename(__FILE__), array(&$sdmon, 'AdminPanel'));
857
+ $tool_page = add_submenu_page('tools.php', __('Simple Download Monitor', SimpleDownloadMonitor::GETTEXT_REALM), __('Simple Download Monitor', SimpleDownloadMonitor::GETTEXT_REALM), $rights_view, basename(__FILE__), array(&$sdmon, 'ToolsPanel'));
858
  add_action('admin_head-'.$tool_page, array(&$sdmon, 'ActionHead'));
859
  }
860
  }