powerdlz23 1.1.6 → 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1034) hide show
  1. package/Zefoy-Automation/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  2. package/Zefoy-Automation/README.md +134 -0
  3. package/Zefoy-Automation/captcha.png +0 -0
  4. package/Zefoy-Automation/donation-userlist.md +7 -0
  5. package/Zefoy-Automation/main.py +257 -0
  6. package/Zefoy-Automation/output/Zefoy Automation for Windows.exe +0 -0
  7. package/Zefoy-Automation/requirements.txt +5 -0
  8. package/Zefoy-Automation/src/captcha.png +0 -0
  9. package/Zefoy-Automation/src/process.py +269 -0
  10. package/package.json +1 -1
  11. package/pto/yaamp/README.md +70 -0
  12. package/pto/yaamp/blocknotify/blocknotify.cpp +90 -0
  13. package/pto/yaamp/config/blake.conf +16 -0
  14. package/pto/yaamp/config/fresh.conf +16 -0
  15. package/pto/yaamp/config/groestl.conf +16 -0
  16. package/pto/yaamp/config/keccak.conf +16 -0
  17. package/pto/yaamp/config/lyra2.conf +16 -0
  18. package/pto/yaamp/config/neo.conf +16 -0
  19. package/pto/yaamp/config/nist5.conf +16 -0
  20. package/pto/yaamp/config/quark.conf +16 -0
  21. package/pto/yaamp/config/qubit.conf +16 -0
  22. package/pto/yaamp/config/run.sh +12 -0
  23. package/pto/yaamp/config/scrypt.conf +16 -0
  24. package/pto/yaamp/config/scryptn.conf +16 -0
  25. package/pto/yaamp/config/sha.conf +17 -0
  26. package/pto/yaamp/config/skein.conf +16 -0
  27. package/pto/yaamp/config/x11.conf +16 -0
  28. package/pto/yaamp/config/x13.conf +16 -0
  29. package/pto/yaamp/config/x14.conf +16 -0
  30. package/pto/yaamp/config/x15.conf +16 -0
  31. package/pto/yaamp/rc.local +30 -0
  32. package/pto/yaamp/stratum/algos/Lyra2.c +208 -0
  33. package/pto/yaamp/stratum/algos/Lyra2.h +50 -0
  34. package/pto/yaamp/stratum/algos/Lyra2RE.c +70 -0
  35. package/pto/yaamp/stratum/algos/Lyra2RE.h +16 -0
  36. package/pto/yaamp/stratum/algos/Sponge.c +745 -0
  37. package/pto/yaamp/stratum/algos/Sponge.h +115 -0
  38. package/pto/yaamp/stratum/algos/blake.c +16 -0
  39. package/pto/yaamp/stratum/algos/blake.h +16 -0
  40. package/pto/yaamp/stratum/algos/fresh.c +44 -0
  41. package/pto/yaamp/stratum/algos/fresh.h +16 -0
  42. package/pto/yaamp/stratum/algos/groestl.c +41 -0
  43. package/pto/yaamp/stratum/algos/groestl.h +18 -0
  44. package/pto/yaamp/stratum/algos/jha.c +135 -0
  45. package/pto/yaamp/stratum/algos/jha.h +16 -0
  46. package/pto/yaamp/stratum/algos/keccak.c +32 -0
  47. package/pto/yaamp/stratum/algos/keccak.h +16 -0
  48. package/pto/yaamp/stratum/algos/makefile +32 -0
  49. package/pto/yaamp/stratum/algos/neoscrypt.c +962 -0
  50. package/pto/yaamp/stratum/algos/neoscrypt.h +33 -0
  51. package/pto/yaamp/stratum/algos/nist5.c +47 -0
  52. package/pto/yaamp/stratum/algos/nist5.h +16 -0
  53. package/pto/yaamp/stratum/algos/quark.c +210 -0
  54. package/pto/yaamp/stratum/algos/quark.h +16 -0
  55. package/pto/yaamp/stratum/algos/qubit.c +44 -0
  56. package/pto/yaamp/stratum/algos/qubit.h +17 -0
  57. package/pto/yaamp/stratum/algos/scrypt.c +681 -0
  58. package/pto/yaamp/stratum/algos/scryptn.c +257 -0
  59. package/pto/yaamp/stratum/algos/scryptn.h +16 -0
  60. package/pto/yaamp/stratum/algos/sha256.c +287 -0
  61. package/pto/yaamp/stratum/algos/sha256.h +440 -0
  62. package/pto/yaamp/stratum/algos/skein.c +27 -0
  63. package/pto/yaamp/stratum/algos/skein.h +16 -0
  64. package/pto/yaamp/stratum/algos/whirlpoolx.c +44 -0
  65. package/pto/yaamp/stratum/algos/whirlpoolx.h +16 -0
  66. package/pto/yaamp/stratum/algos/x11.c +85 -0
  67. package/pto/yaamp/stratum/algos/x11.h +16 -0
  68. package/pto/yaamp/stratum/algos/x13.c +98 -0
  69. package/pto/yaamp/stratum/algos/x13.h +16 -0
  70. package/pto/yaamp/stratum/algos/x14.c +102 -0
  71. package/pto/yaamp/stratum/algos/x14.h +16 -0
  72. package/pto/yaamp/stratum/algos/x15.c +106 -0
  73. package/pto/yaamp/stratum/algos/x15.h +16 -0
  74. package/pto/yaamp/stratum/algos/zr5.c +104 -0
  75. package/pto/yaamp/stratum/algos/zr5.h +17 -0
  76. package/pto/yaamp/stratum/base58.cpp +99 -0
  77. package/pto/yaamp/stratum/client.cpp +432 -0
  78. package/pto/yaamp/stratum/client.h +142 -0
  79. package/pto/yaamp/stratum/client_core.cpp +312 -0
  80. package/pto/yaamp/stratum/client_difficulty.cpp +105 -0
  81. package/pto/yaamp/stratum/client_submit.cpp +304 -0
  82. package/pto/yaamp/stratum/coinbase.cpp +139 -0
  83. package/pto/yaamp/stratum/coind.cpp +188 -0
  84. package/pto/yaamp/stratum/coind.h +97 -0
  85. package/pto/yaamp/stratum/coind_aux.cpp +107 -0
  86. package/pto/yaamp/stratum/coind_submit.cpp +113 -0
  87. package/pto/yaamp/stratum/coind_template.cpp +309 -0
  88. package/pto/yaamp/stratum/db.cpp +418 -0
  89. package/pto/yaamp/stratum/db.h +32 -0
  90. package/pto/yaamp/stratum/iniparser/AUTHORS +6 -0
  91. package/pto/yaamp/stratum/iniparser/INSTALL +15 -0
  92. package/pto/yaamp/stratum/iniparser/LICENSE +21 -0
  93. package/pto/yaamp/stratum/iniparser/Makefile +72 -0
  94. package/pto/yaamp/stratum/iniparser/README +12 -0
  95. package/pto/yaamp/stratum/iniparser/doc/Makefile +16 -0
  96. package/pto/yaamp/stratum/iniparser/doc/iniparser.dox +81 -0
  97. package/pto/yaamp/stratum/iniparser/doc/iniparser.main +207 -0
  98. package/pto/yaamp/stratum/iniparser/html/doxygen.css +545 -0
  99. package/pto/yaamp/stratum/iniparser/html/doxygen.png +0 -0
  100. package/pto/yaamp/stratum/iniparser/html/globals_func.html +64 -0
  101. package/pto/yaamp/stratum/iniparser/html/index.html +101 -0
  102. package/pto/yaamp/stratum/iniparser/html/iniparser_8h.html +583 -0
  103. package/pto/yaamp/stratum/iniparser/html/iniparser_8main.html +19 -0
  104. package/pto/yaamp/stratum/iniparser/html/tab_b.gif +0 -0
  105. package/pto/yaamp/stratum/iniparser/html/tab_l.gif +0 -0
  106. package/pto/yaamp/stratum/iniparser/html/tab_r.gif +0 -0
  107. package/pto/yaamp/stratum/iniparser/html/tabs.css +105 -0
  108. package/pto/yaamp/stratum/iniparser/src/dictionary.c +402 -0
  109. package/pto/yaamp/stratum/iniparser/src/dictionary.h +185 -0
  110. package/pto/yaamp/stratum/iniparser/src/iniparser.c +904 -0
  111. package/pto/yaamp/stratum/iniparser/src/iniparser.h +315 -0
  112. package/pto/yaamp/stratum/iniparser/test/Makefile +27 -0
  113. package/pto/yaamp/stratum/iniparser/test/iniexample.c +100 -0
  114. package/pto/yaamp/stratum/iniparser/test/parse.c +24 -0
  115. package/pto/yaamp/stratum/iniparser/test/twisted-errors.ini +9 -0
  116. package/pto/yaamp/stratum/iniparser/test/twisted-genhuge.py +12 -0
  117. package/pto/yaamp/stratum/iniparser/test/twisted-ofkey.ini +66 -0
  118. package/pto/yaamp/stratum/iniparser/test/twisted-ofval.ini +56 -0
  119. package/pto/yaamp/stratum/iniparser/test/twisted.ini +131 -0
  120. package/pto/yaamp/stratum/job.cpp +324 -0
  121. package/pto/yaamp/stratum/job.h +120 -0
  122. package/pto/yaamp/stratum/job_core.cpp +132 -0
  123. package/pto/yaamp/stratum/job_send.cpp +162 -0
  124. package/pto/yaamp/stratum/json.cpp +980 -0
  125. package/pto/yaamp/stratum/json.h +271 -0
  126. package/pto/yaamp/stratum/list.cpp +165 -0
  127. package/pto/yaamp/stratum/makefile +53 -0
  128. package/pto/yaamp/stratum/merkle.cpp +86 -0
  129. package/pto/yaamp/stratum/object.cpp +73 -0
  130. package/pto/yaamp/stratum/object.h +25 -0
  131. package/pto/yaamp/stratum/remote.cpp +301 -0
  132. package/pto/yaamp/stratum/remote.h +96 -0
  133. package/pto/yaamp/stratum/remote_template.cpp +138 -0
  134. package/pto/yaamp/stratum/rpc.cpp +270 -0
  135. package/pto/yaamp/stratum/rpc.h +32 -0
  136. package/pto/yaamp/stratum/sha3/aes_helper.c +392 -0
  137. package/pto/yaamp/stratum/sha3/hamsi_helper.c +39648 -0
  138. package/pto/yaamp/stratum/sha3/libhash.a +0 -0
  139. package/pto/yaamp/stratum/sha3/makefile +34 -0
  140. package/pto/yaamp/stratum/sha3/md_helper.c +347 -0
  141. package/pto/yaamp/stratum/sha3/sph_blake.c +1127 -0
  142. package/pto/yaamp/stratum/sha3/sph_blake.h +327 -0
  143. package/pto/yaamp/stratum/sha3/sph_bmw.c +965 -0
  144. package/pto/yaamp/stratum/sha3/sph_bmw.h +328 -0
  145. package/pto/yaamp/stratum/sha3/sph_cubehash.c +723 -0
  146. package/pto/yaamp/stratum/sha3/sph_cubehash.h +292 -0
  147. package/pto/yaamp/stratum/sha3/sph_echo.c +1031 -0
  148. package/pto/yaamp/stratum/sha3/sph_echo.h +320 -0
  149. package/pto/yaamp/stratum/sha3/sph_fugue.c +1208 -0
  150. package/pto/yaamp/stratum/sha3/sph_fugue.h +81 -0
  151. package/pto/yaamp/stratum/sha3/sph_groestl.c +3119 -0
  152. package/pto/yaamp/stratum/sha3/sph_groestl.h +329 -0
  153. package/pto/yaamp/stratum/sha3/sph_hamsi.c +867 -0
  154. package/pto/yaamp/stratum/sha3/sph_hamsi.h +322 -0
  155. package/pto/yaamp/stratum/sha3/sph_hefty1.c +378 -0
  156. package/pto/yaamp/stratum/sha3/sph_hefty1.h +66 -0
  157. package/pto/yaamp/stratum/sha3/sph_jh.c +1116 -0
  158. package/pto/yaamp/stratum/sha3/sph_jh.h +298 -0
  159. package/pto/yaamp/stratum/sha3/sph_keccak.c +1824 -0
  160. package/pto/yaamp/stratum/sha3/sph_keccak.h +293 -0
  161. package/pto/yaamp/stratum/sha3/sph_luffa.c +1426 -0
  162. package/pto/yaamp/stratum/sha3/sph_luffa.h +296 -0
  163. package/pto/yaamp/stratum/sha3/sph_shabal.c +806 -0
  164. package/pto/yaamp/stratum/sha3/sph_shabal.h +344 -0
  165. package/pto/yaamp/stratum/sha3/sph_shavite.c +1764 -0
  166. package/pto/yaamp/stratum/sha3/sph_shavite.h +314 -0
  167. package/pto/yaamp/stratum/sha3/sph_simd.c +1799 -0
  168. package/pto/yaamp/stratum/sha3/sph_simd.h +309 -0
  169. package/pto/yaamp/stratum/sha3/sph_skein.c +1254 -0
  170. package/pto/yaamp/stratum/sha3/sph_skein.h +298 -0
  171. package/pto/yaamp/stratum/sha3/sph_types.h +1976 -0
  172. package/pto/yaamp/stratum/sha3/sph_whirlpool.c +3480 -0
  173. package/pto/yaamp/stratum/sha3/sph_whirlpool.h +209 -0
  174. package/pto/yaamp/stratum/share.cpp +279 -0
  175. package/pto/yaamp/stratum/share.h +106 -0
  176. package/pto/yaamp/stratum/socket.cpp +159 -0
  177. package/pto/yaamp/stratum/socket.h +28 -0
  178. package/pto/yaamp/stratum/stratum.cpp +321 -0
  179. package/pto/yaamp/stratum/stratum.h +141 -0
  180. package/pto/yaamp/stratum/user.cpp +104 -0
  181. package/pto/yaamp/stratum/util.cpp +666 -0
  182. package/pto/yaamp/stratum/util.h +127 -0
  183. package/pto/yaamp/web/.project +22 -0
  184. package/pto/yaamp/web/blocks.sh +10 -0
  185. package/pto/yaamp/web/extensions/jqplot/MIT-LICENSE.txt +21 -0
  186. package/pto/yaamp/web/extensions/jqplot/README.txt +77 -0
  187. package/pto/yaamp/web/extensions/jqplot/changes.txt +458 -0
  188. package/pto/yaamp/web/extensions/jqplot/copyright.txt +56 -0
  189. package/pto/yaamp/web/extensions/jqplot/excanvas.js +1438 -0
  190. package/pto/yaamp/web/extensions/jqplot/excanvas.min.js +3 -0
  191. package/pto/yaamp/web/extensions/jqplot/gpl-2.0.txt +280 -0
  192. package/pto/yaamp/web/extensions/jqplot/jqPlotCssStyling.txt +53 -0
  193. package/pto/yaamp/web/extensions/jqplot/jqPlotOptions.txt +391 -0
  194. package/pto/yaamp/web/extensions/jqplot/jquery.jqplot.css +259 -0
  195. package/pto/yaamp/web/extensions/jqplot/jquery.jqplot.js +11411 -0
  196. package/pto/yaamp/web/extensions/jqplot/jquery.jqplot.min.css +1 -0
  197. package/pto/yaamp/web/extensions/jqplot/jquery.jqplot.min.js +3 -0
  198. package/pto/yaamp/web/extensions/jqplot/optionsTutorial.txt +243 -0
  199. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.BezierCurveRenderer.js +314 -0
  200. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.BezierCurveRenderer.min.js +3 -0
  201. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.barRenderer.js +801 -0
  202. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.barRenderer.min.js +3 -0
  203. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.blockRenderer.js +235 -0
  204. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.blockRenderer.min.js +3 -0
  205. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.bubbleRenderer.js +759 -0
  206. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.bubbleRenderer.min.js +3 -0
  207. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.canvasAxisLabelRenderer.js +203 -0
  208. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.canvasAxisLabelRenderer.min.js +3 -0
  209. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.canvasAxisTickRenderer.js +253 -0
  210. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.canvasAxisTickRenderer.min.js +3 -0
  211. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.canvasOverlay.js +1021 -0
  212. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.canvasOverlay.min.js +3 -0
  213. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.canvasTextRenderer.js +449 -0
  214. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.canvasTextRenderer.min.js +3 -0
  215. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.categoryAxisRenderer.js +679 -0
  216. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.categoryAxisRenderer.min.js +3 -0
  217. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.ciParser.js +116 -0
  218. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.ciParser.min.js +3 -0
  219. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.cursor.js +1108 -0
  220. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.cursor.min.js +3 -0
  221. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.dateAxisRenderer.js +741 -0
  222. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.dateAxisRenderer.min.js +3 -0
  223. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.donutRenderer.js +805 -0
  224. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.donutRenderer.min.js +3 -0
  225. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.dragable.js +225 -0
  226. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.dragable.min.js +3 -0
  227. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.enhancedLegendRenderer.js +305 -0
  228. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.enhancedLegendRenderer.min.js +3 -0
  229. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.funnelRenderer.js +943 -0
  230. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.funnelRenderer.min.js +3 -0
  231. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.highlighter.js +465 -0
  232. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.highlighter.min.js +3 -0
  233. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.json2.js +475 -0
  234. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.json2.min.js +3 -0
  235. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.logAxisRenderer.js +534 -0
  236. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.logAxisRenderer.min.js +3 -0
  237. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.mekkoAxisRenderer.js +611 -0
  238. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.mekkoAxisRenderer.min.js +3 -0
  239. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.mekkoRenderer.js +437 -0
  240. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.mekkoRenderer.min.js +3 -0
  241. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.meterGaugeRenderer.js +1029 -0
  242. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.meterGaugeRenderer.min.js +3 -0
  243. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.mobile.js +45 -0
  244. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.mobile.min.js +3 -0
  245. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.ohlcRenderer.js +373 -0
  246. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.ohlcRenderer.min.js +3 -0
  247. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.pieRenderer.js +904 -0
  248. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.pieRenderer.min.js +3 -0
  249. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.pointLabels.js +377 -0
  250. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.pointLabels.min.js +3 -0
  251. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.pyramidAxisRenderer.js +728 -0
  252. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.pyramidAxisRenderer.min.js +3 -0
  253. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.pyramidGridRenderer.js +429 -0
  254. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.pyramidGridRenderer.min.js +3 -0
  255. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.pyramidRenderer.js +514 -0
  256. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.pyramidRenderer.min.js +3 -0
  257. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.trendline.js +223 -0
  258. package/pto/yaamp/web/extensions/jqplot/plugins/jqplot.trendline.min.js +3 -0
  259. package/pto/yaamp/web/extensions/jqplot/usage.txt +126 -0
  260. package/pto/yaamp/web/extensions/jquery/js/jquery-1.10.2.min.js +6 -0
  261. package/pto/yaamp/web/extensions/jquery/js/jquery-1.8.3-dev.js +9472 -0
  262. package/pto/yaamp/web/extensions/jquery/js/jquery-ui-1.10.3.custom.min.js +7 -0
  263. package/pto/yaamp/web/extensions/jquery/js/jquery-ui-1.9.1.custom.min.js +6 -0
  264. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/images/animated-overlay.gif +0 -0
  265. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  266. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  267. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  268. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  269. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  270. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  271. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  272. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  273. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  274. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  275. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  276. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
  277. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
  278. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
  279. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery-ui.css +1178 -0
  280. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.accordion.css +38 -0
  281. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.all.css +12 -0
  282. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.autocomplete.css +16 -0
  283. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.base.css +25 -0
  284. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.button.css +114 -0
  285. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.core.css +93 -0
  286. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.datepicker.css +178 -0
  287. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.dialog.css +69 -0
  288. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.menu.css +79 -0
  289. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.progressbar.css +28 -0
  290. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.resizable.css +78 -0
  291. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.selectable.css +15 -0
  292. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.slider.css +73 -0
  293. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.spinner.css +65 -0
  294. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.tabs.css +52 -0
  295. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.theme.css +406 -0
  296. package/pto/yaamp/web/extensions/jquery/themes/ui-lightness/jquery.ui.tooltip.css +19 -0
  297. package/pto/yaamp/web/favicon.ico +0 -0
  298. package/pto/yaamp/web/framework-1.0.8/.htaccess +1 -0
  299. package/pto/yaamp/web/framework-1.0.8/YiiBase.php +684 -0
  300. package/pto/yaamp/web/framework-1.0.8/base/CApplication.php +718 -0
  301. package/pto/yaamp/web/framework-1.0.8/base/CApplicationComponent.php +56 -0
  302. package/pto/yaamp/web/framework-1.0.8/base/CBehavior.php +87 -0
  303. package/pto/yaamp/web/framework-1.0.8/base/CComponent.php +599 -0
  304. package/pto/yaamp/web/framework-1.0.8/base/CErrorEvent.php +54 -0
  305. package/pto/yaamp/web/framework-1.0.8/base/CErrorHandler.php +336 -0
  306. package/pto/yaamp/web/framework-1.0.8/base/CException.php +22 -0
  307. package/pto/yaamp/web/framework-1.0.8/base/CExceptionEvent.php +36 -0
  308. package/pto/yaamp/web/framework-1.0.8/base/CHttpException.php +40 -0
  309. package/pto/yaamp/web/framework-1.0.8/base/CModel.php +634 -0
  310. package/pto/yaamp/web/framework-1.0.8/base/CModelBehavior.php +54 -0
  311. package/pto/yaamp/web/framework-1.0.8/base/CModelEvent.php +32 -0
  312. package/pto/yaamp/web/framework-1.0.8/base/CModule.php +465 -0
  313. package/pto/yaamp/web/framework-1.0.8/base/CSecurityManager.php +245 -0
  314. package/pto/yaamp/web/framework-1.0.8/base/CStatePersister.php +102 -0
  315. package/pto/yaamp/web/framework-1.0.8/base/interfaces.php +534 -0
  316. package/pto/yaamp/web/framework-1.0.8/caching/CApcCache.php +108 -0
  317. package/pto/yaamp/web/framework-1.0.8/caching/CCache.php +312 -0
  318. package/pto/yaamp/web/framework-1.0.8/caching/CDbCache.php +250 -0
  319. package/pto/yaamp/web/framework-1.0.8/caching/CDummyCache.php +145 -0
  320. package/pto/yaamp/web/framework-1.0.8/caching/CEAcceleratorCache.php +104 -0
  321. package/pto/yaamp/web/framework-1.0.8/caching/CFileCache.php +217 -0
  322. package/pto/yaamp/web/framework-1.0.8/caching/CMemCache.php +272 -0
  323. package/pto/yaamp/web/framework-1.0.8/caching/CXCache.php +97 -0
  324. package/pto/yaamp/web/framework-1.0.8/caching/CZendDataCache.php +98 -0
  325. package/pto/yaamp/web/framework-1.0.8/caching/dependencies/CCacheDependency.php +62 -0
  326. package/pto/yaamp/web/framework-1.0.8/caching/dependencies/CChainedCacheDependency.php +68 -0
  327. package/pto/yaamp/web/framework-1.0.8/caching/dependencies/CDbCacheDependency.php +87 -0
  328. package/pto/yaamp/web/framework-1.0.8/caching/dependencies/CDirectoryCacheDependency.php +134 -0
  329. package/pto/yaamp/web/framework-1.0.8/caching/dependencies/CExpressionDependency.php +49 -0
  330. package/pto/yaamp/web/framework-1.0.8/caching/dependencies/CFileCacheDependency.php +53 -0
  331. package/pto/yaamp/web/framework-1.0.8/caching/dependencies/CGlobalStateCacheDependency.php +54 -0
  332. package/pto/yaamp/web/framework-1.0.8/collections/CAttributeCollection.php +187 -0
  333. package/pto/yaamp/web/framework-1.0.8/collections/CConfiguration.php +121 -0
  334. package/pto/yaamp/web/framework-1.0.8/collections/CList.php +341 -0
  335. package/pto/yaamp/web/framework-1.0.8/collections/CListIterator.php +94 -0
  336. package/pto/yaamp/web/framework-1.0.8/collections/CMap.php +319 -0
  337. package/pto/yaamp/web/framework-1.0.8/collections/CMapIterator.php +93 -0
  338. package/pto/yaamp/web/framework-1.0.8/collections/CQueue.php +168 -0
  339. package/pto/yaamp/web/framework-1.0.8/collections/CQueueIterator.php +94 -0
  340. package/pto/yaamp/web/framework-1.0.8/collections/CStack.php +169 -0
  341. package/pto/yaamp/web/framework-1.0.8/collections/CStackIterator.php +94 -0
  342. package/pto/yaamp/web/framework-1.0.8/collections/CTypedList.php +52 -0
  343. package/pto/yaamp/web/framework-1.0.8/db/CDbCommand.php +326 -0
  344. package/pto/yaamp/web/framework-1.0.8/db/CDbConnection.php +645 -0
  345. package/pto/yaamp/web/framework-1.0.8/db/CDbDataReader.php +221 -0
  346. package/pto/yaamp/web/framework-1.0.8/db/CDbException.php +21 -0
  347. package/pto/yaamp/web/framework-1.0.8/db/CDbTransaction.php +108 -0
  348. package/pto/yaamp/web/framework-1.0.8/db/ar/CActiveFinder.php +1359 -0
  349. package/pto/yaamp/web/framework-1.0.8/db/ar/CActiveRecord.php +2212 -0
  350. package/pto/yaamp/web/framework-1.0.8/db/ar/CActiveRecordBehavior.php +96 -0
  351. package/pto/yaamp/web/framework-1.0.8/db/schema/CDbColumnSchema.php +143 -0
  352. package/pto/yaamp/web/framework-1.0.8/db/schema/CDbCommandBuilder.php +664 -0
  353. package/pto/yaamp/web/framework-1.0.8/db/schema/CDbCriteria.php +166 -0
  354. package/pto/yaamp/web/framework-1.0.8/db/schema/CDbExpression.php +49 -0
  355. package/pto/yaamp/web/framework-1.0.8/db/schema/CDbSchema.php +203 -0
  356. package/pto/yaamp/web/framework-1.0.8/db/schema/CDbTableSchema.php +76 -0
  357. package/pto/yaamp/web/framework-1.0.8/db/schema/mssql/CMssqlColumnSchema.php +55 -0
  358. package/pto/yaamp/web/framework-1.0.8/db/schema/mssql/CMssqlCommandBuilder.php +304 -0
  359. package/pto/yaamp/web/framework-1.0.8/db/schema/mssql/CMssqlPdoAdapter.php +74 -0
  360. package/pto/yaamp/web/framework-1.0.8/db/schema/mssql/CMssqlSchema.php +310 -0
  361. package/pto/yaamp/web/framework-1.0.8/db/schema/mssql/CMssqlTableSchema.php +33 -0
  362. package/pto/yaamp/web/framework-1.0.8/db/schema/mysql/CMysqlColumnSchema.php +46 -0
  363. package/pto/yaamp/web/framework-1.0.8/db/schema/mysql/CMysqlSchema.php +201 -0
  364. package/pto/yaamp/web/framework-1.0.8/db/schema/mysql/CMysqlTableSchema.php +26 -0
  365. package/pto/yaamp/web/framework-1.0.8/db/schema/oci/COciColumnSchema.php +54 -0
  366. package/pto/yaamp/web/framework-1.0.8/db/schema/oci/COciCommandBuilder.php +122 -0
  367. package/pto/yaamp/web/framework-1.0.8/db/schema/oci/COciSchema.php +276 -0
  368. package/pto/yaamp/web/framework-1.0.8/db/schema/oci/COciTableSchema.php +26 -0
  369. package/pto/yaamp/web/framework-1.0.8/db/schema/pgsql/CPgsqlColumnSchema.php +56 -0
  370. package/pto/yaamp/web/framework-1.0.8/db/schema/pgsql/CPgsqlSchema.php +282 -0
  371. package/pto/yaamp/web/framework-1.0.8/db/schema/pgsql/CPgsqlTableSchema.php +25 -0
  372. package/pto/yaamp/web/framework-1.0.8/db/schema/sqlite/CSqliteColumnSchema.php +33 -0
  373. package/pto/yaamp/web/framework-1.0.8/db/schema/sqlite/CSqliteCommandBuilder.php +41 -0
  374. package/pto/yaamp/web/framework-1.0.8/db/schema/sqlite/CSqliteSchema.php +129 -0
  375. package/pto/yaamp/web/framework-1.0.8/i18n/CChoiceFormat.php +77 -0
  376. package/pto/yaamp/web/framework-1.0.8/i18n/CDateFormatter.php +507 -0
  377. package/pto/yaamp/web/framework-1.0.8/i18n/CDbMessageSource.php +114 -0
  378. package/pto/yaamp/web/framework-1.0.8/i18n/CGettextMessageSource.php +111 -0
  379. package/pto/yaamp/web/framework-1.0.8/i18n/CLocale.php +243 -0
  380. package/pto/yaamp/web/framework-1.0.8/i18n/CMessageSource.php +157 -0
  381. package/pto/yaamp/web/framework-1.0.8/i18n/CNumberFormatter.php +280 -0
  382. package/pto/yaamp/web/framework-1.0.8/i18n/CPhpMessageSource.php +96 -0
  383. package/pto/yaamp/web/framework-1.0.8/i18n/gettext/CGettextFile.php +36 -0
  384. package/pto/yaamp/web/framework-1.0.8/i18n/gettext/CGettextMoFile.php +269 -0
  385. package/pto/yaamp/web/framework-1.0.8/i18n/gettext/CGettextPoFile.php +89 -0
  386. package/pto/yaamp/web/framework-1.0.8/logging/CDbLogRoute.php +168 -0
  387. package/pto/yaamp/web/framework-1.0.8/logging/CEmailLogRoute.php +122 -0
  388. package/pto/yaamp/web/framework-1.0.8/logging/CFileLogRoute.php +162 -0
  389. package/pto/yaamp/web/framework-1.0.8/logging/CLogFilter.php +103 -0
  390. package/pto/yaamp/web/framework-1.0.8/logging/CLogRoute.php +107 -0
  391. package/pto/yaamp/web/framework-1.0.8/logging/CLogRouter.php +107 -0
  392. package/pto/yaamp/web/framework-1.0.8/logging/CLogger.php +237 -0
  393. package/pto/yaamp/web/framework-1.0.8/logging/CProfileLogRoute.php +201 -0
  394. package/pto/yaamp/web/framework-1.0.8/logging/CWebLogRoute.php +57 -0
  395. package/pto/yaamp/web/framework-1.0.8/messages/bg/yii.php +213 -0
  396. package/pto/yaamp/web/framework-1.0.8/messages/config.php +19 -0
  397. package/pto/yaamp/web/framework-1.0.8/messages/de/yii.php +221 -0
  398. package/pto/yaamp/web/framework-1.0.8/messages/el/yii.php +222 -0
  399. package/pto/yaamp/web/framework-1.0.8/messages/es/yii.php +231 -0
  400. package/pto/yaamp/web/framework-1.0.8/messages/fr/yii.php +210 -0
  401. package/pto/yaamp/web/framework-1.0.8/messages/he/yii.php +206 -0
  402. package/pto/yaamp/web/framework-1.0.8/messages/hu/yii.php +213 -0
  403. package/pto/yaamp/web/framework-1.0.8/messages/id/yii.php +213 -0
  404. package/pto/yaamp/web/framework-1.0.8/messages/it/yii.php +208 -0
  405. package/pto/yaamp/web/framework-1.0.8/messages/ja/yii.php +230 -0
  406. package/pto/yaamp/web/framework-1.0.8/messages/nl/yii.php +206 -0
  407. package/pto/yaamp/web/framework-1.0.8/messages/no/yii.php +222 -0
  408. package/pto/yaamp/web/framework-1.0.8/messages/pl/yii.php +213 -0
  409. package/pto/yaamp/web/framework-1.0.8/messages/pt/yii.php +213 -0
  410. package/pto/yaamp/web/framework-1.0.8/messages/ro/yii.php +213 -0
  411. package/pto/yaamp/web/framework-1.0.8/messages/ru/yii.php +214 -0
  412. package/pto/yaamp/web/framework-1.0.8/messages/sr_sr/yii.php +205 -0
  413. package/pto/yaamp/web/framework-1.0.8/messages/sr_yu/yii.php +205 -0
  414. package/pto/yaamp/web/framework-1.0.8/messages/sv/yii.php +226 -0
  415. package/pto/yaamp/web/framework-1.0.8/messages/uk/yii.php +213 -0
  416. package/pto/yaamp/web/framework-1.0.8/messages/vi/yii.php +213 -0
  417. package/pto/yaamp/web/framework-1.0.8/messages/zh_cn/yii.php +213 -0
  418. package/pto/yaamp/web/framework-1.0.8/messages/zh_tw/yii.php +207 -0
  419. package/pto/yaamp/web/framework-1.0.8/utils/CDateTimeParser.php +230 -0
  420. package/pto/yaamp/web/framework-1.0.8/utils/CFileHelper.php +228 -0
  421. package/pto/yaamp/web/framework-1.0.8/utils/CMarkdownParser.php +179 -0
  422. package/pto/yaamp/web/framework-1.0.8/utils/CPropertyValue.php +158 -0
  423. package/pto/yaamp/web/framework-1.0.8/utils/CTimestamp.php +715 -0
  424. package/pto/yaamp/web/framework-1.0.8/utils/CVarDumper.php +142 -0
  425. package/pto/yaamp/web/framework-1.0.8/utils/mimeTypes.php +178 -0
  426. package/pto/yaamp/web/framework-1.0.8/validators/CCaptchaValidator.php +72 -0
  427. package/pto/yaamp/web/framework-1.0.8/validators/CCompareValidator.php +151 -0
  428. package/pto/yaamp/web/framework-1.0.8/validators/CDefaultValueValidator.php +51 -0
  429. package/pto/yaamp/web/framework-1.0.8/validators/CEmailValidator.php +80 -0
  430. package/pto/yaamp/web/framework-1.0.8/validators/CExistValidator.php +88 -0
  431. package/pto/yaamp/web/framework-1.0.8/validators/CFileValidator.php +159 -0
  432. package/pto/yaamp/web/framework-1.0.8/validators/CFilterValidator.php +49 -0
  433. package/pto/yaamp/web/framework-1.0.8/validators/CInlineValidator.php +41 -0
  434. package/pto/yaamp/web/framework-1.0.8/validators/CNumberValidator.php +86 -0
  435. package/pto/yaamp/web/framework-1.0.8/validators/CRangeValidator.php +53 -0
  436. package/pto/yaamp/web/framework-1.0.8/validators/CRegularExpressionValidator.php +51 -0
  437. package/pto/yaamp/web/framework-1.0.8/validators/CRequiredValidator.php +36 -0
  438. package/pto/yaamp/web/framework-1.0.8/validators/CStringValidator.php +78 -0
  439. package/pto/yaamp/web/framework-1.0.8/validators/CTypeValidator.php +99 -0
  440. package/pto/yaamp/web/framework-1.0.8/validators/CUniqueValidator.php +106 -0
  441. package/pto/yaamp/web/framework-1.0.8/validators/CUrlValidator.php +49 -0
  442. package/pto/yaamp/web/framework-1.0.8/validators/CValidator.php +194 -0
  443. package/pto/yaamp/web/framework-1.0.8/vendors/README.html +89 -0
  444. package/pto/yaamp/web/framework-1.0.8/vendors/adodb/LICENSE.txt +182 -0
  445. package/pto/yaamp/web/framework-1.0.8/vendors/cldr/LICENSE.txt +33 -0
  446. package/pto/yaamp/web/framework-1.0.8/vendors/gettext/LICENSE.txt +22 -0
  447. package/pto/yaamp/web/framework-1.0.8/vendors/json/LICENSE.txt +22 -0
  448. package/pto/yaamp/web/framework-1.0.8/vendors/markdown/LICENSE.txt +36 -0
  449. package/pto/yaamp/web/framework-1.0.8/vendors/markdown/markdown.php +2623 -0
  450. package/pto/yaamp/web/framework-1.0.8/views/de/error.php +38 -0
  451. package/pto/yaamp/web/framework-1.0.8/views/de/error400.php +34 -0
  452. package/pto/yaamp/web/framework-1.0.8/views/de/error403.php +33 -0
  453. package/pto/yaamp/web/framework-1.0.8/views/de/error404.php +34 -0
  454. package/pto/yaamp/web/framework-1.0.8/views/de/error500.php +35 -0
  455. package/pto/yaamp/web/framework-1.0.8/views/de/error503.php +31 -0
  456. package/pto/yaamp/web/framework-1.0.8/views/de/exception.php +74 -0
  457. package/pto/yaamp/web/framework-1.0.8/views/de/log-firebug.php +23 -0
  458. package/pto/yaamp/web/framework-1.0.8/views/de/log.php +32 -0
  459. package/pto/yaamp/web/framework-1.0.8/views/de/profile-callstack-firebug.php +19 -0
  460. package/pto/yaamp/web/framework-1.0.8/views/de/profile-callstack.php +30 -0
  461. package/pto/yaamp/web/framework-1.0.8/views/de/profile-summary-firebug.php +23 -0
  462. package/pto/yaamp/web/framework-1.0.8/views/de/profile-summary.php +41 -0
  463. package/pto/yaamp/web/framework-1.0.8/views/error.php +37 -0
  464. package/pto/yaamp/web/framework-1.0.8/views/error400.php +33 -0
  465. package/pto/yaamp/web/framework-1.0.8/views/error403.php +32 -0
  466. package/pto/yaamp/web/framework-1.0.8/views/error404.php +33 -0
  467. package/pto/yaamp/web/framework-1.0.8/views/error500.php +35 -0
  468. package/pto/yaamp/web/framework-1.0.8/views/error503.php +31 -0
  469. package/pto/yaamp/web/framework-1.0.8/views/es/error.php +37 -0
  470. package/pto/yaamp/web/framework-1.0.8/views/es/error400.php +33 -0
  471. package/pto/yaamp/web/framework-1.0.8/views/es/error403.php +32 -0
  472. package/pto/yaamp/web/framework-1.0.8/views/es/error404.php +33 -0
  473. package/pto/yaamp/web/framework-1.0.8/views/es/error500.php +35 -0
  474. package/pto/yaamp/web/framework-1.0.8/views/es/error503.php +31 -0
  475. package/pto/yaamp/web/framework-1.0.8/views/es/exception.php +74 -0
  476. package/pto/yaamp/web/framework-1.0.8/views/es/log-firebug.php +23 -0
  477. package/pto/yaamp/web/framework-1.0.8/views/es/log.php +32 -0
  478. package/pto/yaamp/web/framework-1.0.8/views/es/profile-callstack-firebug.php +19 -0
  479. package/pto/yaamp/web/framework-1.0.8/views/es/profile-callstack.php +30 -0
  480. package/pto/yaamp/web/framework-1.0.8/views/es/profile-summary-firebug.php +22 -0
  481. package/pto/yaamp/web/framework-1.0.8/views/es/profile-summary.php +41 -0
  482. package/pto/yaamp/web/framework-1.0.8/views/exception.php +74 -0
  483. package/pto/yaamp/web/framework-1.0.8/views/fr/error.php +37 -0
  484. package/pto/yaamp/web/framework-1.0.8/views/fr/error400.php +33 -0
  485. package/pto/yaamp/web/framework-1.0.8/views/fr/error403.php +32 -0
  486. package/pto/yaamp/web/framework-1.0.8/views/fr/error404.php +34 -0
  487. package/pto/yaamp/web/framework-1.0.8/views/fr/error500.php +35 -0
  488. package/pto/yaamp/web/framework-1.0.8/views/fr/error503.php +31 -0
  489. package/pto/yaamp/web/framework-1.0.8/views/fr/exception.php +74 -0
  490. package/pto/yaamp/web/framework-1.0.8/views/fr/log-firebug.php +23 -0
  491. package/pto/yaamp/web/framework-1.0.8/views/fr/log.php +32 -0
  492. package/pto/yaamp/web/framework-1.0.8/views/fr/profile-callstack-firebug.php +19 -0
  493. package/pto/yaamp/web/framework-1.0.8/views/fr/profile-callstack.php +30 -0
  494. package/pto/yaamp/web/framework-1.0.8/views/fr/profile-summary-firebug.php +22 -0
  495. package/pto/yaamp/web/framework-1.0.8/views/fr/profile-summary.php +41 -0
  496. package/pto/yaamp/web/framework-1.0.8/views/he/error.php +38 -0
  497. package/pto/yaamp/web/framework-1.0.8/views/he/error400.php +34 -0
  498. package/pto/yaamp/web/framework-1.0.8/views/he/error403.php +33 -0
  499. package/pto/yaamp/web/framework-1.0.8/views/he/error404.php +34 -0
  500. package/pto/yaamp/web/framework-1.0.8/views/he/error500.php +36 -0
  501. package/pto/yaamp/web/framework-1.0.8/views/he/error503.php +32 -0
  502. package/pto/yaamp/web/framework-1.0.8/views/he/exception.php +75 -0
  503. package/pto/yaamp/web/framework-1.0.8/views/he/log-firebug.php +23 -0
  504. package/pto/yaamp/web/framework-1.0.8/views/he/log.php +32 -0
  505. package/pto/yaamp/web/framework-1.0.8/views/he/profile-callstack-firebug.php +19 -0
  506. package/pto/yaamp/web/framework-1.0.8/views/he/profile-callstack.php +30 -0
  507. package/pto/yaamp/web/framework-1.0.8/views/he/profile-summary-firebug.php +22 -0
  508. package/pto/yaamp/web/framework-1.0.8/views/he/profile-summary.php +41 -0
  509. package/pto/yaamp/web/framework-1.0.8/views/id/error.php +37 -0
  510. package/pto/yaamp/web/framework-1.0.8/views/id/error400.php +33 -0
  511. package/pto/yaamp/web/framework-1.0.8/views/id/error403.php +32 -0
  512. package/pto/yaamp/web/framework-1.0.8/views/id/error404.php +33 -0
  513. package/pto/yaamp/web/framework-1.0.8/views/id/error500.php +35 -0
  514. package/pto/yaamp/web/framework-1.0.8/views/id/error503.php +31 -0
  515. package/pto/yaamp/web/framework-1.0.8/views/id/exception.php +74 -0
  516. package/pto/yaamp/web/framework-1.0.8/views/id/log-firebug.php +23 -0
  517. package/pto/yaamp/web/framework-1.0.8/views/id/log.php +32 -0
  518. package/pto/yaamp/web/framework-1.0.8/views/id/profile-callstack-firebug.php +19 -0
  519. package/pto/yaamp/web/framework-1.0.8/views/id/profile-callstack.php +30 -0
  520. package/pto/yaamp/web/framework-1.0.8/views/id/profile-summary-firebug.php +22 -0
  521. package/pto/yaamp/web/framework-1.0.8/views/id/profile-summary.php +41 -0
  522. package/pto/yaamp/web/framework-1.0.8/views/ja/error.php +37 -0
  523. package/pto/yaamp/web/framework-1.0.8/views/ja/error400.php +33 -0
  524. package/pto/yaamp/web/framework-1.0.8/views/ja/error403.php +32 -0
  525. package/pto/yaamp/web/framework-1.0.8/views/ja/error404.php +33 -0
  526. package/pto/yaamp/web/framework-1.0.8/views/ja/error500.php +35 -0
  527. package/pto/yaamp/web/framework-1.0.8/views/ja/error503.php +31 -0
  528. package/pto/yaamp/web/framework-1.0.8/views/ja/exception.php +74 -0
  529. package/pto/yaamp/web/framework-1.0.8/views/ja/log-firebug.php +23 -0
  530. package/pto/yaamp/web/framework-1.0.8/views/ja/log.php +32 -0
  531. package/pto/yaamp/web/framework-1.0.8/views/ja/profile-callstack-firebug.php +19 -0
  532. package/pto/yaamp/web/framework-1.0.8/views/ja/profile-callstack.php +30 -0
  533. package/pto/yaamp/web/framework-1.0.8/views/ja/profile-summary-firebug.php +22 -0
  534. package/pto/yaamp/web/framework-1.0.8/views/ja/profile-summary.php +41 -0
  535. package/pto/yaamp/web/framework-1.0.8/views/log-firebug.php +23 -0
  536. package/pto/yaamp/web/framework-1.0.8/views/log.php +32 -0
  537. package/pto/yaamp/web/framework-1.0.8/views/nl/error.php +25 -0
  538. package/pto/yaamp/web/framework-1.0.8/views/nl/error400.php +24 -0
  539. package/pto/yaamp/web/framework-1.0.8/views/nl/error403.php +24 -0
  540. package/pto/yaamp/web/framework-1.0.8/views/nl/error404.php +24 -0
  541. package/pto/yaamp/web/framework-1.0.8/views/nl/error500.php +24 -0
  542. package/pto/yaamp/web/framework-1.0.8/views/nl/error503.php +24 -0
  543. package/pto/yaamp/web/framework-1.0.8/views/nl/exception.php +62 -0
  544. package/pto/yaamp/web/framework-1.0.8/views/nl/log-firebug.php +22 -0
  545. package/pto/yaamp/web/framework-1.0.8/views/nl/log.php +29 -0
  546. package/pto/yaamp/web/framework-1.0.8/views/nl/profile-callstack-firebug.php +17 -0
  547. package/pto/yaamp/web/framework-1.0.8/views/nl/profile-callstack.php +29 -0
  548. package/pto/yaamp/web/framework-1.0.8/views/nl/profile-summary-firebug.php +20 -0
  549. package/pto/yaamp/web/framework-1.0.8/views/nl/profile-summary.php +41 -0
  550. package/pto/yaamp/web/framework-1.0.8/views/no/error.php +37 -0
  551. package/pto/yaamp/web/framework-1.0.8/views/no/error400.php +33 -0
  552. package/pto/yaamp/web/framework-1.0.8/views/no/error403.php +32 -0
  553. package/pto/yaamp/web/framework-1.0.8/views/no/error404.php +33 -0
  554. package/pto/yaamp/web/framework-1.0.8/views/no/error500.php +35 -0
  555. package/pto/yaamp/web/framework-1.0.8/views/no/error503.php +31 -0
  556. package/pto/yaamp/web/framework-1.0.8/views/no/exception.php +74 -0
  557. package/pto/yaamp/web/framework-1.0.8/views/no/log-firebug.php +23 -0
  558. package/pto/yaamp/web/framework-1.0.8/views/no/log.php +32 -0
  559. package/pto/yaamp/web/framework-1.0.8/views/no/profile-callstack-firebug.php +19 -0
  560. package/pto/yaamp/web/framework-1.0.8/views/no/profile-callstack.php +30 -0
  561. package/pto/yaamp/web/framework-1.0.8/views/no/profile-summary-firebug.php +22 -0
  562. package/pto/yaamp/web/framework-1.0.8/views/no/profile-summary.php +41 -0
  563. package/pto/yaamp/web/framework-1.0.8/views/profile-callstack-firebug.php +19 -0
  564. package/pto/yaamp/web/framework-1.0.8/views/profile-callstack.php +30 -0
  565. package/pto/yaamp/web/framework-1.0.8/views/profile-summary-firebug.php +22 -0
  566. package/pto/yaamp/web/framework-1.0.8/views/profile-summary.php +41 -0
  567. package/pto/yaamp/web/framework-1.0.8/views/pt/error.php +37 -0
  568. package/pto/yaamp/web/framework-1.0.8/views/pt/error400.php +33 -0
  569. package/pto/yaamp/web/framework-1.0.8/views/pt/error403.php +32 -0
  570. package/pto/yaamp/web/framework-1.0.8/views/pt/error404.php +33 -0
  571. package/pto/yaamp/web/framework-1.0.8/views/pt/error500.php +35 -0
  572. package/pto/yaamp/web/framework-1.0.8/views/pt/error503.php +31 -0
  573. package/pto/yaamp/web/framework-1.0.8/views/pt/exception.php +74 -0
  574. package/pto/yaamp/web/framework-1.0.8/views/pt/log-firebug.php +23 -0
  575. package/pto/yaamp/web/framework-1.0.8/views/pt/log.php +32 -0
  576. package/pto/yaamp/web/framework-1.0.8/views/pt/profile-callstack-firebug.php +19 -0
  577. package/pto/yaamp/web/framework-1.0.8/views/pt/profile-callstack.php +30 -0
  578. package/pto/yaamp/web/framework-1.0.8/views/pt/profile-summary-firebug.php +22 -0
  579. package/pto/yaamp/web/framework-1.0.8/views/pt/profile-summary.php +41 -0
  580. package/pto/yaamp/web/framework-1.0.8/views/ro/error.php +37 -0
  581. package/pto/yaamp/web/framework-1.0.8/views/ro/error400.php +33 -0
  582. package/pto/yaamp/web/framework-1.0.8/views/ro/error403.php +32 -0
  583. package/pto/yaamp/web/framework-1.0.8/views/ro/error404.php +33 -0
  584. package/pto/yaamp/web/framework-1.0.8/views/ro/error500.php +35 -0
  585. package/pto/yaamp/web/framework-1.0.8/views/ro/error503.php +31 -0
  586. package/pto/yaamp/web/framework-1.0.8/views/ro/exception.php +74 -0
  587. package/pto/yaamp/web/framework-1.0.8/views/ro/log-firebug.php +23 -0
  588. package/pto/yaamp/web/framework-1.0.8/views/ro/log.php +32 -0
  589. package/pto/yaamp/web/framework-1.0.8/views/ro/profile-callstack-firebug.php +19 -0
  590. package/pto/yaamp/web/framework-1.0.8/views/ro/profile-callstack.php +30 -0
  591. package/pto/yaamp/web/framework-1.0.8/views/ro/profile-summary-firebug.php +22 -0
  592. package/pto/yaamp/web/framework-1.0.8/views/ro/profile-summary.php +41 -0
  593. package/pto/yaamp/web/framework-1.0.8/views/ru/error.php +37 -0
  594. package/pto/yaamp/web/framework-1.0.8/views/ru/error400.php +33 -0
  595. package/pto/yaamp/web/framework-1.0.8/views/ru/error403.php +32 -0
  596. package/pto/yaamp/web/framework-1.0.8/views/ru/error404.php +33 -0
  597. package/pto/yaamp/web/framework-1.0.8/views/ru/error500.php +35 -0
  598. package/pto/yaamp/web/framework-1.0.8/views/ru/error503.php +31 -0
  599. package/pto/yaamp/web/framework-1.0.8/views/ru/exception.php +74 -0
  600. package/pto/yaamp/web/framework-1.0.8/views/ru/log-firebug.php +23 -0
  601. package/pto/yaamp/web/framework-1.0.8/views/ru/log.php +32 -0
  602. package/pto/yaamp/web/framework-1.0.8/views/ru/profile-callstack-firebug.php +19 -0
  603. package/pto/yaamp/web/framework-1.0.8/views/ru/profile-callstack.php +30 -0
  604. package/pto/yaamp/web/framework-1.0.8/views/ru/profile-summary-firebug.php +22 -0
  605. package/pto/yaamp/web/framework-1.0.8/views/ru/profile-summary.php +41 -0
  606. package/pto/yaamp/web/framework-1.0.8/views/sv/error.php +37 -0
  607. package/pto/yaamp/web/framework-1.0.8/views/sv/error400.php +33 -0
  608. package/pto/yaamp/web/framework-1.0.8/views/sv/error403.php +33 -0
  609. package/pto/yaamp/web/framework-1.0.8/views/sv/error404.php +33 -0
  610. package/pto/yaamp/web/framework-1.0.8/views/sv/error500.php +35 -0
  611. package/pto/yaamp/web/framework-1.0.8/views/sv/error503.php +31 -0
  612. package/pto/yaamp/web/framework-1.0.8/views/sv/exception.php +74 -0
  613. package/pto/yaamp/web/framework-1.0.8/views/sv/log-firebug.php +23 -0
  614. package/pto/yaamp/web/framework-1.0.8/views/sv/log.php +32 -0
  615. package/pto/yaamp/web/framework-1.0.8/views/sv/profile-callstack-firebug.php +19 -0
  616. package/pto/yaamp/web/framework-1.0.8/views/sv/profile-callstack.php +30 -0
  617. package/pto/yaamp/web/framework-1.0.8/views/sv/profile-summary-firebug.php +22 -0
  618. package/pto/yaamp/web/framework-1.0.8/views/sv/profile-summary.php +41 -0
  619. package/pto/yaamp/web/framework-1.0.8/views/zh_cn/error.php +37 -0
  620. package/pto/yaamp/web/framework-1.0.8/views/zh_cn/error400.php +33 -0
  621. package/pto/yaamp/web/framework-1.0.8/views/zh_cn/error403.php +32 -0
  622. package/pto/yaamp/web/framework-1.0.8/views/zh_cn/error404.php +33 -0
  623. package/pto/yaamp/web/framework-1.0.8/views/zh_cn/error500.php +35 -0
  624. package/pto/yaamp/web/framework-1.0.8/views/zh_cn/error503.php +31 -0
  625. package/pto/yaamp/web/framework-1.0.8/views/zh_cn/exception.php +74 -0
  626. package/pto/yaamp/web/framework-1.0.8/views/zh_cn/log-firebug.php +23 -0
  627. package/pto/yaamp/web/framework-1.0.8/views/zh_cn/log.php +32 -0
  628. package/pto/yaamp/web/framework-1.0.8/views/zh_cn/profile-callstack-firebug.php +19 -0
  629. package/pto/yaamp/web/framework-1.0.8/views/zh_cn/profile-callstack.php +28 -0
  630. package/pto/yaamp/web/framework-1.0.8/views/zh_cn/profile-summary-firebug.php +22 -0
  631. package/pto/yaamp/web/framework-1.0.8/views/zh_cn/profile-summary.php +41 -0
  632. package/pto/yaamp/web/framework-1.0.8/views/zh_tw/error.php +37 -0
  633. package/pto/yaamp/web/framework-1.0.8/views/zh_tw/error400.php +33 -0
  634. package/pto/yaamp/web/framework-1.0.8/views/zh_tw/error403.php +32 -0
  635. package/pto/yaamp/web/framework-1.0.8/views/zh_tw/error404.php +33 -0
  636. package/pto/yaamp/web/framework-1.0.8/views/zh_tw/error500.php +35 -0
  637. package/pto/yaamp/web/framework-1.0.8/views/zh_tw/error503.php +31 -0
  638. package/pto/yaamp/web/framework-1.0.8/views/zh_tw/exception.php +74 -0
  639. package/pto/yaamp/web/framework-1.0.8/views/zh_tw/log-firebug.php +23 -0
  640. package/pto/yaamp/web/framework-1.0.8/views/zh_tw/log.php +32 -0
  641. package/pto/yaamp/web/framework-1.0.8/views/zh_tw/profile-callstack-firebug.php +19 -0
  642. package/pto/yaamp/web/framework-1.0.8/views/zh_tw/profile-callstack.php +30 -0
  643. package/pto/yaamp/web/framework-1.0.8/views/zh_tw/profile-summary-firebug.php +22 -0
  644. package/pto/yaamp/web/framework-1.0.8/views/zh_tw/profile-summary.php +41 -0
  645. package/pto/yaamp/web/framework-1.0.8/web/CAssetManager.php +227 -0
  646. package/pto/yaamp/web/framework-1.0.8/web/CBaseController.php +283 -0
  647. package/pto/yaamp/web/framework-1.0.8/web/CCacheHttpSession.php +111 -0
  648. package/pto/yaamp/web/framework-1.0.8/web/CClientScript.php +562 -0
  649. package/pto/yaamp/web/framework-1.0.8/web/CController.php +1072 -0
  650. package/pto/yaamp/web/framework-1.0.8/web/CDbHttpSession.php +203 -0
  651. package/pto/yaamp/web/framework-1.0.8/web/CExtController.php +53 -0
  652. package/pto/yaamp/web/framework-1.0.8/web/CFormModel.php +113 -0
  653. package/pto/yaamp/web/framework-1.0.8/web/CHttpCookie.php +63 -0
  654. package/pto/yaamp/web/framework-1.0.8/web/CHttpRequest.php +763 -0
  655. package/pto/yaamp/web/framework-1.0.8/web/CHttpSession.php +522 -0
  656. package/pto/yaamp/web/framework-1.0.8/web/CHttpSessionIterator.php +92 -0
  657. package/pto/yaamp/web/framework-1.0.8/web/COutputEvent.php +38 -0
  658. package/pto/yaamp/web/framework-1.0.8/web/CPagination.php +161 -0
  659. package/pto/yaamp/web/framework-1.0.8/web/CSort.php +292 -0
  660. package/pto/yaamp/web/framework-1.0.8/web/CTheme.php +124 -0
  661. package/pto/yaamp/web/framework-1.0.8/web/CThemeManager.php +127 -0
  662. package/pto/yaamp/web/framework-1.0.8/web/CUploadedFile.php +210 -0
  663. package/pto/yaamp/web/framework-1.0.8/web/CUrlManager.php +613 -0
  664. package/pto/yaamp/web/framework-1.0.8/web/CWebApplication.php +608 -0
  665. package/pto/yaamp/web/framework-1.0.8/web/CWebModule.php +187 -0
  666. package/pto/yaamp/web/framework-1.0.8/web/actions/CAction.php +58 -0
  667. package/pto/yaamp/web/framework-1.0.8/web/actions/CInlineAction.php +34 -0
  668. package/pto/yaamp/web/framework-1.0.8/web/actions/CViewAction.php +165 -0
  669. package/pto/yaamp/web/framework-1.0.8/web/auth/CAccessControlFilter.php +295 -0
  670. package/pto/yaamp/web/framework-1.0.8/web/auth/CAuthAssignment.php +102 -0
  671. package/pto/yaamp/web/framework-1.0.8/web/auth/CAuthItem.php +269 -0
  672. package/pto/yaamp/web/framework-1.0.8/web/auth/CAuthManager.php +157 -0
  673. package/pto/yaamp/web/framework-1.0.8/web/auth/CBaseUserIdentity.php +116 -0
  674. package/pto/yaamp/web/framework-1.0.8/web/auth/CDbAuthManager.php +584 -0
  675. package/pto/yaamp/web/framework-1.0.8/web/auth/CPhpAuthManager.php +535 -0
  676. package/pto/yaamp/web/framework-1.0.8/web/auth/CUserIdentity.php +79 -0
  677. package/pto/yaamp/web/framework-1.0.8/web/auth/CWebUser.php +583 -0
  678. package/pto/yaamp/web/framework-1.0.8/web/auth/schema.sql +42 -0
  679. package/pto/yaamp/web/framework-1.0.8/web/filters/CFilter.php +64 -0
  680. package/pto/yaamp/web/framework-1.0.8/web/filters/CFilterChain.php +131 -0
  681. package/pto/yaamp/web/framework-1.0.8/web/filters/CInlineFilter.php +61 -0
  682. package/pto/yaamp/web/framework-1.0.8/web/helpers/CGoogleApi.php +72 -0
  683. package/pto/yaamp/web/framework-1.0.8/web/helpers/CHtml.php +1801 -0
  684. package/pto/yaamp/web/framework-1.0.8/web/helpers/CJSON.php +698 -0
  685. package/pto/yaamp/web/framework-1.0.8/web/helpers/CJavaScript.php +128 -0
  686. package/pto/yaamp/web/framework-1.0.8/web/renderers/CPradoViewRenderer.php +245 -0
  687. package/pto/yaamp/web/framework-1.0.8/web/renderers/CViewRenderer.php +93 -0
  688. package/pto/yaamp/web/framework-1.0.8/web/services/CWebService.php +271 -0
  689. package/pto/yaamp/web/framework-1.0.8/web/services/CWebServiceAction.php +130 -0
  690. package/pto/yaamp/web/framework-1.0.8/web/services/CWsdlGenerator.php +373 -0
  691. package/pto/yaamp/web/framework-1.0.8/web/widgets/CAutoComplete.php +285 -0
  692. package/pto/yaamp/web/framework-1.0.8/web/widgets/CClipWidget.php +55 -0
  693. package/pto/yaamp/web/framework-1.0.8/web/widgets/CContentDecorator.php +83 -0
  694. package/pto/yaamp/web/framework-1.0.8/web/widgets/CFilterWidget.php +74 -0
  695. package/pto/yaamp/web/framework-1.0.8/web/widgets/CFlexWidget.php +116 -0
  696. package/pto/yaamp/web/framework-1.0.8/web/widgets/CHtmlPurifier.php +64 -0
  697. package/pto/yaamp/web/framework-1.0.8/web/widgets/CInputWidget.php +80 -0
  698. package/pto/yaamp/web/framework-1.0.8/web/widgets/CMarkdown.php +119 -0
  699. package/pto/yaamp/web/framework-1.0.8/web/widgets/CMaskedTextField.php +106 -0
  700. package/pto/yaamp/web/framework-1.0.8/web/widgets/CMultiFileUpload.php +115 -0
  701. package/pto/yaamp/web/framework-1.0.8/web/widgets/COutputCache.php +336 -0
  702. package/pto/yaamp/web/framework-1.0.8/web/widgets/COutputProcessor.php +77 -0
  703. package/pto/yaamp/web/framework-1.0.8/web/widgets/CStarRating.php +207 -0
  704. package/pto/yaamp/web/framework-1.0.8/web/widgets/CTabView.php +201 -0
  705. package/pto/yaamp/web/framework-1.0.8/web/widgets/CTextHighlighter.php +127 -0
  706. package/pto/yaamp/web/framework-1.0.8/web/widgets/CTreeView.php +232 -0
  707. package/pto/yaamp/web/framework-1.0.8/web/widgets/CWidget.php +202 -0
  708. package/pto/yaamp/web/framework-1.0.8/web/widgets/captcha/CCaptcha.php +132 -0
  709. package/pto/yaamp/web/framework-1.0.8/web/widgets/captcha/CCaptchaAction.php +233 -0
  710. package/pto/yaamp/web/framework-1.0.8/web/widgets/captcha/Duality.ttf +0 -0
  711. package/pto/yaamp/web/framework-1.0.8/web/widgets/pagers/CBasePager.php +129 -0
  712. package/pto/yaamp/web/framework-1.0.8/web/widgets/pagers/CLinkPager.php +194 -0
  713. package/pto/yaamp/web/framework-1.0.8/web/widgets/pagers/CListPager.php +85 -0
  714. package/pto/yaamp/web/framework-1.0.8/web/widgets/pagers/pager.css +68 -0
  715. package/pto/yaamp/web/framework-1.0.8/web/widgets/views/flexWidget.php +98 -0
  716. package/pto/yaamp/web/framework-1.0.8/yii.php +29 -0
  717. package/pto/yaamp/web/images/41.png +0 -0
  718. package/pto/yaamp/web/images/amc.jpg +0 -0
  719. package/pto/yaamp/web/images/base/action_refresh_blue.gif +0 -0
  720. package/pto/yaamp/web/images/base/action_save.gif +0 -0
  721. package/pto/yaamp/web/images/base/delete.png +0 -0
  722. package/pto/yaamp/web/images/base/dot.png +0 -0
  723. package/pto/yaamp/web/images/base/download.png +0 -0
  724. package/pto/yaamp/web/images/base/edit.png +0 -0
  725. package/pto/yaamp/web/images/base/enroll.png +0 -0
  726. package/pto/yaamp/web/images/base/favorite.png +0 -0
  727. package/pto/yaamp/web/images/base/folder_new.png +0 -0
  728. package/pto/yaamp/web/images/base/new.png +0 -0
  729. package/pto/yaamp/web/images/base/newcomment.png +0 -0
  730. package/pto/yaamp/web/images/base/newfile.png +0 -0
  731. package/pto/yaamp/web/images/base/newfolder.png +0 -0
  732. package/pto/yaamp/web/images/base/newuser.png +0 -0
  733. package/pto/yaamp/web/images/base/pause.png +0 -0
  734. package/pto/yaamp/web/images/base/play.png +0 -0
  735. package/pto/yaamp/web/images/base/tools.png +0 -0
  736. package/pto/yaamp/web/images/base/top.png +0 -0
  737. package/pto/yaamp/web/images/base/top_header.png +0 -0
  738. package/pto/yaamp/web/images/base/top_header_selected.png +0 -0
  739. package/pto/yaamp/web/images/base/video_play.png +0 -0
  740. package/pto/yaamp/web/images/beta_corner_banner.png +0 -0
  741. package/pto/yaamp/web/images/beta_corner_banner2.png +0 -0
  742. package/pto/yaamp/web/images/btc.png +0 -0
  743. package/pto/yaamp/web/images/coin-154.png +0 -0
  744. package/pto/yaamp/web/images/coin-22.png +0 -0
  745. package/pto/yaamp/web/images/coin-251.png +0 -0
  746. package/pto/yaamp/web/images/coin-30.png +0 -0
  747. package/pto/yaamp/web/images/coin-316.png +0 -0
  748. package/pto/yaamp/web/images/coin-33.png +0 -0
  749. package/pto/yaamp/web/images/coin-6.png +0 -0
  750. package/pto/yaamp/web/images/coin-834.png +0 -0
  751. package/pto/yaamp/web/images/gears.png +0 -0
  752. package/pto/yaamp/web/images/minus2-78.png +0 -0
  753. package/pto/yaamp/web/images/next.png +0 -0
  754. package/pto/yaamp/web/images/pause.png +0 -0
  755. package/pto/yaamp/web/images/play.png +0 -0
  756. package/pto/yaamp/web/images/plus2-78.png +0 -0
  757. package/pto/yaamp/web/images/sign-in-with-twitter-gray.png +0 -0
  758. package/pto/yaamp/web/images/sign-in-with-twitter-link.png +0 -0
  759. package/pto/yaamp/web/images/start.png +0 -0
  760. package/pto/yaamp/web/images/t_mini-a.png +0 -0
  761. package/pto/yaamp/web/images/tweet.jpg +0 -0
  762. package/pto/yaamp/web/images/twitter.jpg +0 -0
  763. package/pto/yaamp/web/images/ui/16x16_2leftarrow.png +0 -0
  764. package/pto/yaamp/web/images/ui/16x16_2rightarrow.png +0 -0
  765. package/pto/yaamp/web/images/ui/16x16_bottom.png +0 -0
  766. package/pto/yaamp/web/images/ui/16x16_chat.png +0 -0
  767. package/pto/yaamp/web/images/ui/16x16_delete.png +0 -0
  768. package/pto/yaamp/web/images/ui/16x16_edit.png +0 -0
  769. package/pto/yaamp/web/images/ui/16x16_email.png +0 -0
  770. package/pto/yaamp/web/images/ui/16x16_fileclose.png +0 -0
  771. package/pto/yaamp/web/images/ui/16x16_kcontrol.png +0 -0
  772. package/pto/yaamp/web/images/ui/16x16_kuser.png +0 -0
  773. package/pto/yaamp/web/images/ui/16x16_ledgreen.png +0 -0
  774. package/pto/yaamp/web/images/ui/16x16_link.png +0 -0
  775. package/pto/yaamp/web/images/ui/16x16_misc.png +0 -0
  776. package/pto/yaamp/web/images/ui/16x16_package_edutainment.png +0 -0
  777. package/pto/yaamp/web/images/ui/16x16_window_list.png +0 -0
  778. package/pto/yaamp/web/images/ui/22x22_bottom.png +0 -0
  779. package/pto/yaamp/web/images/ui/24x24_link.png +0 -0
  780. package/pto/yaamp/web/images/ui/32x32_link.png +0 -0
  781. package/pto/yaamp/web/images/ui/48x48_link.png +0 -0
  782. package/pto/yaamp/web/images/ui/arrow-down.gif +0 -0
  783. package/pto/yaamp/web/images/ui/arrow-right.gif +0 -0
  784. package/pto/yaamp/web/images/ui/asc.gif +0 -0
  785. package/pto/yaamp/web/images/ui/away.gif +0 -0
  786. package/pto/yaamp/web/images/ui/bg.gif +0 -0
  787. package/pto/yaamp/web/images/ui/control_play_blue.png +0 -0
  788. package/pto/yaamp/web/images/ui/desc.gif +0 -0
  789. package/pto/yaamp/web/images/ui/down_arrow.png +0 -0
  790. package/pto/yaamp/web/images/ui/empty.png +0 -0
  791. package/pto/yaamp/web/images/ui/expand_down.png +0 -0
  792. package/pto/yaamp/web/images/ui/expand_up.png +0 -0
  793. package/pto/yaamp/web/images/ui/green-check.png +0 -0
  794. package/pto/yaamp/web/images/ui/icon-check.gif +0 -0
  795. package/pto/yaamp/web/images/ui/install-flash.jpg +0 -0
  796. package/pto/yaamp/web/images/ui/linkout.png +0 -0
  797. package/pto/yaamp/web/images/ui/loading.gif +0 -0
  798. package/pto/yaamp/web/images/ui/loading_white.gif +0 -0
  799. package/pto/yaamp/web/images/ui/menudot.png +0 -0
  800. package/pto/yaamp/web/images/ui/menuo_bg.gif +0 -0
  801. package/pto/yaamp/web/images/ui/offline.gif +0 -0
  802. package/pto/yaamp/web/images/ui/online.gif +0 -0
  803. package/pto/yaamp/web/images/ui/shade.gif +0 -0
  804. package/pto/yaamp/web/images/ui/shadeactive.gif +0 -0
  805. package/pto/yaamp/web/images/ui/showactivity.png +0 -0
  806. package/pto/yaamp/web/images/ui/showcourse.png +0 -0
  807. package/pto/yaamp/web/images/ui/showdetail.png +0 -0
  808. package/pto/yaamp/web/images/ui/showfile.png +0 -0
  809. package/pto/yaamp/web/images/ui/showfolder.png +0 -0
  810. package/pto/yaamp/web/images/ui/showgraph.png +0 -0
  811. package/pto/yaamp/web/images/ui/showlink.png +0 -0
  812. package/pto/yaamp/web/images/ui/showmedium.png +0 -0
  813. package/pto/yaamp/web/images/ui/showsmall.png +0 -0
  814. package/pto/yaamp/web/images/ui/tintblue.gif +0 -0
  815. package/pto/yaamp/web/images/ui/tintbluedark.gif +0 -0
  816. package/pto/yaamp/web/images/vn_embed.png +0 -0
  817. package/pto/yaamp/web/index.php +30 -0
  818. package/pto/yaamp/web/loop2.sh +9 -0
  819. package/pto/yaamp/web/main.sh +9 -0
  820. package/pto/yaamp/web/robots.txt +2 -0
  821. package/pto/yaamp/web/run.php +25 -0
  822. package/pto/yaamp/web/serverconfig.php +26 -0
  823. package/pto/yaamp/web/yaamp/components/CUFHtml.php +136 -0
  824. package/pto/yaamp/web/yaamp/components/UniForm.php +25 -0
  825. package/pto/yaamp/web/yaamp/components/UserIdentity.php +25 -0
  826. package/pto/yaamp/web/yaamp/config.php +68 -0
  827. package/pto/yaamp/web/yaamp/core/backend/backend.php +17 -0
  828. package/pto/yaamp/web/yaamp/core/backend/blocks.php +243 -0
  829. package/pto/yaamp/web/yaamp/core/backend/clear.php +47 -0
  830. package/pto/yaamp/web/yaamp/core/backend/coins.php +245 -0
  831. package/pto/yaamp/web/yaamp/core/backend/markets.php +505 -0
  832. package/pto/yaamp/web/yaamp/core/backend/payment.php +153 -0
  833. package/pto/yaamp/web/yaamp/core/backend/rawcoins.php +144 -0
  834. package/pto/yaamp/web/yaamp/core/backend/renting.php +271 -0
  835. package/pto/yaamp/web/yaamp/core/backend/sell.php +126 -0
  836. package/pto/yaamp/web/yaamp/core/backend/services.php +210 -0
  837. package/pto/yaamp/web/yaamp/core/backend/stats.php +347 -0
  838. package/pto/yaamp/web/yaamp/core/backend/system.php +253 -0
  839. package/pto/yaamp/web/yaamp/core/backend/users.php +95 -0
  840. package/pto/yaamp/web/yaamp/core/common/Shortcuts.php +77 -0
  841. package/pto/yaamp/web/yaamp/core/common/common.php +10 -0
  842. package/pto/yaamp/web/yaamp/core/common/libUtil.php +305 -0
  843. package/pto/yaamp/web/yaamp/core/common/libdbo.php +91 -0
  844. package/pto/yaamp/web/yaamp/core/common/system.php +135 -0
  845. package/pto/yaamp/web/yaamp/core/common/util.php +317 -0
  846. package/pto/yaamp/web/yaamp/core/common/utilConversion.php +296 -0
  847. package/pto/yaamp/web/yaamp/core/core.php +11 -0
  848. package/pto/yaamp/web/yaamp/core/exchange/bittrex.php +28 -0
  849. package/pto/yaamp/web/yaamp/core/exchange/bleutrade.php +28 -0
  850. package/pto/yaamp/web/yaamp/core/exchange/ccexapi.php +106 -0
  851. package/pto/yaamp/web/yaamp/core/exchange/cryptsy.php +63 -0
  852. package/pto/yaamp/web/yaamp/core/exchange/exchange.php +12 -0
  853. package/pto/yaamp/web/yaamp/core/exchange/jubi.php +20 -0
  854. package/pto/yaamp/web/yaamp/core/exchange/poloniex.php +242 -0
  855. package/pto/yaamp/web/yaamp/core/exchange/yobit.php +77 -0
  856. package/pto/yaamp/web/yaamp/core/exchange2/CExchange.php +198 -0
  857. package/pto/yaamp/web/yaamp/core/exchange2/CExchangeCoin.php +84 -0
  858. package/pto/yaamp/web/yaamp/core/exchange2/exchange.php +7 -0
  859. package/pto/yaamp/web/yaamp/core/functions/curloauth.php +50 -0
  860. package/pto/yaamp/web/yaamp/core/functions/easybitcoin.php +220 -0
  861. package/pto/yaamp/web/yaamp/core/functions/functions.php +11 -0
  862. package/pto/yaamp/web/yaamp/core/functions/memcache.php +85 -0
  863. package/pto/yaamp/web/yaamp/core/functions/url.php +79 -0
  864. package/pto/yaamp/web/yaamp/core/functions/yaamp.php +365 -0
  865. package/pto/yaamp/web/yaamp/core/trading/bittrex_trading.php +221 -0
  866. package/pto/yaamp/web/yaamp/core/trading/bleutrade_trading.php +218 -0
  867. package/pto/yaamp/web/yaamp/core/trading/c-cex_trading.php +192 -0
  868. package/pto/yaamp/web/yaamp/core/trading/cryptsy_trading.php +231 -0
  869. package/pto/yaamp/web/yaamp/core/trading/poloniex_trading.php +179 -0
  870. package/pto/yaamp/web/yaamp/core/trading/trading.php +11 -0
  871. package/pto/yaamp/web/yaamp/core/trading/yobit_trading.php +205 -0
  872. package/pto/yaamp/web/yaamp/include.php +11 -0
  873. package/pto/yaamp/web/yaamp/models/db_accountsModel.php +33 -0
  874. package/pto/yaamp/web/yaamp/models/db_algosModel.php +33 -0
  875. package/pto/yaamp/web/yaamp/models/db_balancesModel.php +33 -0
  876. package/pto/yaamp/web/yaamp/models/db_balanceuserModel.php +33 -0
  877. package/pto/yaamp/web/yaamp/models/db_blocksModel.php +33 -0
  878. package/pto/yaamp/web/yaamp/models/db_coinsModel.php +46 -0
  879. package/pto/yaamp/web/yaamp/models/db_connectionsModel.php +35 -0
  880. package/pto/yaamp/web/yaamp/models/db_earningsModel.php +33 -0
  881. package/pto/yaamp/web/yaamp/models/db_exchangeModel.php +33 -0
  882. package/pto/yaamp/web/yaamp/models/db_hashrateModel.php +33 -0
  883. package/pto/yaamp/web/yaamp/models/db_hashrenterModel.php +33 -0
  884. package/pto/yaamp/web/yaamp/models/db_hashstatsModel.php +33 -0
  885. package/pto/yaamp/web/yaamp/models/db_hashuserModel.php +33 -0
  886. package/pto/yaamp/web/yaamp/models/db_jobsModel.php +33 -0
  887. package/pto/yaamp/web/yaamp/models/db_jobsubmitsModel.php +33 -0
  888. package/pto/yaamp/web/yaamp/models/db_marketsModel.php +33 -0
  889. package/pto/yaamp/web/yaamp/models/db_miningModel.php +33 -0
  890. package/pto/yaamp/web/yaamp/models/db_nicehashModel.php +33 -0
  891. package/pto/yaamp/web/yaamp/models/db_ordersModel.php +33 -0
  892. package/pto/yaamp/web/yaamp/models/db_payoutsModel.php +33 -0
  893. package/pto/yaamp/web/yaamp/models/db_rawcoinsModel.php +36 -0
  894. package/pto/yaamp/web/yaamp/models/db_rentersModel.php +33 -0
  895. package/pto/yaamp/web/yaamp/models/db_rentertxsModel.php +33 -0
  896. package/pto/yaamp/web/yaamp/models/db_serversModel.php +33 -0
  897. package/pto/yaamp/web/yaamp/models/db_servicesModel.php +33 -0
  898. package/pto/yaamp/web/yaamp/models/db_sharesModel.php +33 -0
  899. package/pto/yaamp/web/yaamp/models/db_shares_vipModel.php +33 -0
  900. package/pto/yaamp/web/yaamp/models/db_statsModel.php +33 -0
  901. package/pto/yaamp/web/yaamp/models/db_stratumsModel.php +33 -0
  902. package/pto/yaamp/web/yaamp/models/db_withdrawsModel.php +33 -0
  903. package/pto/yaamp/web/yaamp/models/db_workersModel.php +33 -0
  904. package/pto/yaamp/web/yaamp/modules/api/ApiController.php +301 -0
  905. package/pto/yaamp/web/yaamp/modules/coin/CoinController.php +54 -0
  906. package/pto/yaamp/web/yaamp/modules/coin/_form.php +75 -0
  907. package/pto/yaamp/web/yaamp/modules/coin/index.php +134 -0
  908. package/pto/yaamp/web/yaamp/modules/common/CommonController.php +55 -0
  909. package/pto/yaamp/web/yaamp/modules/common/maintenance.php +25 -0
  910. package/pto/yaamp/web/yaamp/modules/common/yaamp.php +23 -0
  911. package/pto/yaamp/web/yaamp/modules/explorer/ExplorerController.php +56 -0
  912. package/pto/yaamp/web/yaamp/modules/explorer/block.php +122 -0
  913. package/pto/yaamp/web/yaamp/modules/explorer/coin.php +63 -0
  914. package/pto/yaamp/web/yaamp/modules/explorer/index.php +67 -0
  915. package/pto/yaamp/web/yaamp/modules/explorer/tx.php +73 -0
  916. package/pto/yaamp/web/yaamp/modules/explorer/util.php +146 -0
  917. package/pto/yaamp/web/yaamp/modules/market/MarketController.php +86 -0
  918. package/pto/yaamp/web/yaamp/modules/market/update.php +23 -0
  919. package/pto/yaamp/web/yaamp/modules/nicehash/NicehashController.php +55 -0
  920. package/pto/yaamp/web/yaamp/modules/nicehash/index.php +37 -0
  921. package/pto/yaamp/web/yaamp/modules/nicehash/index_results.php +78 -0
  922. package/pto/yaamp/web/yaamp/modules/renting/RentingController.php +469 -0
  923. package/pto/yaamp/web/yaamp/modules/renting/admin.php +148 -0
  924. package/pto/yaamp/web/yaamp/modules/renting/all_orders_results.php +95 -0
  925. package/pto/yaamp/web/yaamp/modules/renting/balance_results.php +115 -0
  926. package/pto/yaamp/web/yaamp/modules/renting/create.php +52 -0
  927. package/pto/yaamp/web/yaamp/modules/renting/graph_job_results.php +74 -0
  928. package/pto/yaamp/web/yaamp/modules/renting/graph_price_results.php +54 -0
  929. package/pto/yaamp/web/yaamp/modules/renting/index.php +318 -0
  930. package/pto/yaamp/web/yaamp/modules/renting/login.php +239 -0
  931. package/pto/yaamp/web/yaamp/modules/renting/orders_results.php +130 -0
  932. package/pto/yaamp/web/yaamp/modules/renting/settings.php +156 -0
  933. package/pto/yaamp/web/yaamp/modules/renting/status_results.php +103 -0
  934. package/pto/yaamp/web/yaamp/modules/renting/tx.php +74 -0
  935. package/pto/yaamp/web/yaamp/modules/site/SiteController.php +772 -0
  936. package/pto/yaamp/web/yaamp/modules/site/about.php +59 -0
  937. package/pto/yaamp/web/yaamp/modules/site/admin.php +90 -0
  938. package/pto/yaamp/web/yaamp/modules/site/admin_results.php +171 -0
  939. package/pto/yaamp/web/yaamp/modules/site/api.php +136 -0
  940. package/pto/yaamp/web/yaamp/modules/site/backup.php +33 -0
  941. package/pto/yaamp/web/yaamp/modules/site/block.php +46 -0
  942. package/pto/yaamp/web/yaamp/modules/site/block_results.php +85 -0
  943. package/pto/yaamp/web/yaamp/modules/site/coin.php +145 -0
  944. package/pto/yaamp/web/yaamp/modules/site/coin_form.php +229 -0
  945. package/pto/yaamp/web/yaamp/modules/site/coin_results.php +242 -0
  946. package/pto/yaamp/web/yaamp/modules/site/common.php +231 -0
  947. package/pto/yaamp/web/yaamp/modules/site/common_results.php +576 -0
  948. package/pto/yaamp/web/yaamp/modules/site/connections.php +57 -0
  949. package/pto/yaamp/web/yaamp/modules/site/connections_results.php +48 -0
  950. package/pto/yaamp/web/yaamp/modules/site/diff.php +36 -0
  951. package/pto/yaamp/web/yaamp/modules/site/earning.php +50 -0
  952. package/pto/yaamp/web/yaamp/modules/site/earning_results.php +74 -0
  953. package/pto/yaamp/web/yaamp/modules/site/emptymarkets.php +34 -0
  954. package/pto/yaamp/web/yaamp/modules/site/eval.php +22 -0
  955. package/pto/yaamp/web/yaamp/modules/site/exchange.php +50 -0
  956. package/pto/yaamp/web/yaamp/modules/site/exchange_results.php +183 -0
  957. package/pto/yaamp/web/yaamp/modules/site/index.php +154 -0
  958. package/pto/yaamp/web/yaamp/modules/site/memcached.php +56 -0
  959. package/pto/yaamp/web/yaamp/modules/site/miners.php +88 -0
  960. package/pto/yaamp/web/yaamp/modules/site/mining.php +235 -0
  961. package/pto/yaamp/web/yaamp/modules/site/monsters.php +129 -0
  962. package/pto/yaamp/web/yaamp/modules/site/multialgo.php +84 -0
  963. package/pto/yaamp/web/yaamp/modules/site/payments.php +50 -0
  964. package/pto/yaamp/web/yaamp/modules/site/payments_results.php +56 -0
  965. package/pto/yaamp/web/yaamp/modules/site/results/current_results.php +158 -0
  966. package/pto/yaamp/web/yaamp/modules/site/results/found_results.php +94 -0
  967. package/pto/yaamp/web/yaamp/modules/site/results/graph_assets_results.php +58 -0
  968. package/pto/yaamp/web/yaamp/modules/site/results/graph_earnings_results.php +47 -0
  969. package/pto/yaamp/web/yaamp/modules/site/results/graph_hashrate_results.php +68 -0
  970. package/pto/yaamp/web/yaamp/modules/site/results/graph_negative_results.php +36 -0
  971. package/pto/yaamp/web/yaamp/modules/site/results/graph_price_results.php +68 -0
  972. package/pto/yaamp/web/yaamp/modules/site/results/graph_profit_results.php +25 -0
  973. package/pto/yaamp/web/yaamp/modules/site/results/graph_user_results.php +81 -0
  974. package/pto/yaamp/web/yaamp/modules/site/results/history_results.php +156 -0
  975. package/pto/yaamp/web/yaamp/modules/site/results/miners_results.php +126 -0
  976. package/pto/yaamp/web/yaamp/modules/site/results/mining_results.php +216 -0
  977. package/pto/yaamp/web/yaamp/modules/site/results/user_earning_results.php +92 -0
  978. package/pto/yaamp/web/yaamp/modules/site/results/wallet_graphs_results.php +33 -0
  979. package/pto/yaamp/web/yaamp/modules/site/results/wallet_miners_results.php +117 -0
  980. package/pto/yaamp/web/yaamp/modules/site/results/wallet_results.php +263 -0
  981. package/pto/yaamp/web/yaamp/modules/site/terms.php +392 -0
  982. package/pto/yaamp/web/yaamp/modules/site/tx.php +64 -0
  983. package/pto/yaamp/web/yaamp/modules/site/user.php +80 -0
  984. package/pto/yaamp/web/yaamp/modules/site/user_results.php +136 -0
  985. package/pto/yaamp/web/yaamp/modules/site/version.php +50 -0
  986. package/pto/yaamp/web/yaamp/modules/site/version_results.php +48 -0
  987. package/pto/yaamp/web/yaamp/modules/site/wallet.php +390 -0
  988. package/pto/yaamp/web/yaamp/modules/site/worker.php +50 -0
  989. package/pto/yaamp/web/yaamp/modules/site/worker_results.php +55 -0
  990. package/pto/yaamp/web/yaamp/modules/stats/StatsController.php +65 -0
  991. package/pto/yaamp/web/yaamp/modules/stats/graph_results_1.php +20 -0
  992. package/pto/yaamp/web/yaamp/modules/stats/graph_results_2.php +19 -0
  993. package/pto/yaamp/web/yaamp/modules/stats/graph_results_3.php +20 -0
  994. package/pto/yaamp/web/yaamp/modules/stats/graph_results_4.php +34 -0
  995. package/pto/yaamp/web/yaamp/modules/stats/graph_results_5.php +33 -0
  996. package/pto/yaamp/web/yaamp/modules/stats/graph_results_6.php +40 -0
  997. package/pto/yaamp/web/yaamp/modules/stats/graph_results_7.php +34 -0
  998. package/pto/yaamp/web/yaamp/modules/stats/graph_results_8.php +33 -0
  999. package/pto/yaamp/web/yaamp/modules/stats/graph_results_9.php +44 -0
  1000. package/pto/yaamp/web/yaamp/modules/stats/index.php +502 -0
  1001. package/pto/yaamp/web/yaamp/modules/thread/CronjobController.php +196 -0
  1002. package/pto/yaamp/web/yaamp/modules/trading/TradingController.php +59 -0
  1003. package/pto/yaamp/web/yaamp/modules/trading/index.php +270 -0
  1004. package/pto/yaamp/web/yaamp/modules/trading/mining_results.php +245 -0
  1005. package/pto/yaamp/web/yaamp/ui/app.php +8 -0
  1006. package/pto/yaamp/web/yaamp/ui/css/editor.css +34 -0
  1007. package/pto/yaamp/web/yaamp/ui/css/indicator.gif +0 -0
  1008. package/pto/yaamp/web/yaamp/ui/css/jquery-ui-fixes.css +26 -0
  1009. package/pto/yaamp/web/yaamp/ui/css/list.css +78 -0
  1010. package/pto/yaamp/web/yaamp/ui/css/main.css +225 -0
  1011. package/pto/yaamp/web/yaamp/ui/css/news.css +82 -0
  1012. package/pto/yaamp/web/yaamp/ui/css/objectmenu.css +27 -0
  1013. package/pto/yaamp/web/yaamp/ui/css/poll.css +194 -0
  1014. package/pto/yaamp/web/yaamp/ui/css/table.css +124 -0
  1015. package/pto/yaamp/web/yaamp/ui/css/tags.css +97 -0
  1016. package/pto/yaamp/web/yaamp/ui/css/uni-form-generic.css +25 -0
  1017. package/pto/yaamp/web/yaamp/ui/css/uni-form.css +94 -0
  1018. package/pto/yaamp/web/yaamp/ui/js/auto_refresh.js +33 -0
  1019. package/pto/yaamp/web/yaamp/ui/js/cookies.js +45 -0
  1020. package/pto/yaamp/web/yaamp/ui/js/datetime.js +126 -0
  1021. package/pto/yaamp/web/yaamp/ui/js/jquery.bgiframe.js +44 -0
  1022. package/pto/yaamp/web/yaamp/ui/js/jquery.dialogextend.js +589 -0
  1023. package/pto/yaamp/web/yaamp/ui/js/jquery.tablesorter.js +1031 -0
  1024. package/pto/yaamp/web/yaamp/ui/js/jquery.yii.js +45 -0
  1025. package/pto/yaamp/web/yaamp/ui/js/swfobject.js +780 -0
  1026. package/pto/yaamp/web/yaamp/ui/js/texteditor.js +54 -0
  1027. package/pto/yaamp/web/yaamp/ui/js/uni-form.jquery.js +38 -0
  1028. package/pto/yaamp/web/yaamp/ui/js/util.js +108 -0
  1029. package/pto/yaamp/web/yaamp/ui/lib/lib.php +4 -0
  1030. package/pto/yaamp/web/yaamp/ui/lib/libview.php +59 -0
  1031. package/pto/yaamp/web/yaamp/ui/lib/pageheader.php +26 -0
  1032. package/pto/yaamp/web/yaamp/ui/main.php +131 -0
  1033. package/pto/yaamp/web/yaamp/ui/misc.php +41 -0
  1034. package/pto/yaamp/yaamp.sql +3098 -0
@@ -0,0 +1,1801 @@
1
+ <?php
2
+ /**
3
+ * CHtml class file.
4
+ *
5
+ * @author Qiang Xue <qiang.xue@gmail.com>
6
+ * @link http://www.yiiframework.com/
7
+ * @copyright Copyright &copy; 2008-2009 Yii Software LLC
8
+ * @license http://www.yiiframework.com/license/
9
+ */
10
+
11
+
12
+ /**
13
+ * CHtml is a static class that provides a collection of helper methods for creating HTML views.
14
+ *
15
+ * @author Qiang Xue <qiang.xue@gmail.com>
16
+ * @version $Id: CHtml.php 1306 2009-08-07 17:24:31Z qiang.xue $
17
+ * @package system.web.helpers
18
+ * @since 1.0
19
+ */
20
+ class CHtml
21
+ {
22
+ const ID_PREFIX='yt';
23
+ /**
24
+ * @var string the CSS class for displaying error summaries (see {@link errorSummary}).
25
+ */
26
+ public static $errorSummaryCss='errorSummary';
27
+ /**
28
+ * @var string the CSS class for displaying error messages (see {@link error}).
29
+ */
30
+ public static $errorMessageCss='errorMessage';
31
+ /**
32
+ * @var string the CSS class for highlighting error inputs. Form inputs will be appended
33
+ * with this CSS class if they have input errors.
34
+ */
35
+ public static $errorCss='error';
36
+ /**
37
+ * @var string the CSS class for required labels. Defaults to 'required'.
38
+ * @see label
39
+ */
40
+ public static $requiredCss='required';
41
+ /**
42
+ * @var string the HTML code to be prepended to the required label.
43
+ * @see label
44
+ */
45
+ public static $beforeRequiredLabel='';
46
+ /**
47
+ * @var string the HTML code to be appended to the required label.
48
+ * @see label
49
+ */
50
+ public static $afterRequiredLabel=' <span class="required">*</span>';
51
+ /**
52
+ * @var string the scenario used to determine whether a model attribute is required.
53
+ * @see activeLabelEx
54
+ */
55
+ public static $scenario='';
56
+ /**
57
+ * @var integer the counter for generating automatic input field names.
58
+ * @since 1.0.4
59
+ */
60
+ public static $count=0;
61
+
62
+ /**
63
+ * Encodes special characters into HTML entities.
64
+ * The {@link CApplication::charset application charset} will be used for encoding.
65
+ * @param string data to be encoded
66
+ * @return string the encoded data
67
+ * @see http://www.php.net/manual/en/function.htmlspecialchars.php
68
+ */
69
+ public static function encode($text)
70
+ {
71
+ $res = @htmlspecialchars($text, ENT_QUOTES,Yii::app()->charset);
72
+ if(!$res)
73
+ $res = htmlentities($text); //,Yii::app()->charset);
74
+
75
+ return $res;
76
+ }
77
+
78
+ /**
79
+ * Encodes special characters in an array of strings into HTML entities.
80
+ * Both the array keys and values will be encoded if needed.
81
+ * If a value is an array, this method will also encode it recursively.
82
+ * The {@link CApplication::charset application charset} will be used for encoding.
83
+ * @param array data to be encoded
84
+ * @return array the encoded data
85
+ * @see http://www.php.net/manual/en/function.htmlspecialchars.php
86
+ * @since 1.0.4
87
+ */
88
+ public static function encodeArray($data)
89
+ {
90
+ $d=array();
91
+ foreach($data as $key=>$value)
92
+ {
93
+ if(is_string($key))
94
+ $key=htmlspecialchars($key,ENT_QUOTES,Yii::app()->charset);
95
+ if(is_string($value))
96
+ $value=htmlspecialchars($value,ENT_QUOTES,Yii::app()->charset);
97
+ else if(is_array($value))
98
+ $value=self::encodeArray($value);
99
+ $d[$key]=$value;
100
+ }
101
+ return $d;
102
+ }
103
+
104
+ /**
105
+ * Generates an HTML element.
106
+ * @param string the tag name
107
+ * @param array the element attributes. The values will be HTML-encoded using {@link encode()}.
108
+ * Since version 1.0.5, if an 'encode' attribute is given and its value is false,
109
+ * the rest of the attribute values will NOT be HTML-encoded.
110
+ * @param mixed the content to be enclosed between open and close element tags. It will not be HTML-encoded.
111
+ * If false, it means there is no body content.
112
+ * @param boolean whether to generate the close tag.
113
+ * @return string the generated HTML element tag
114
+ */
115
+ public static function tag($tag,$htmlOptions=array(),$content=false,$closeTag=true)
116
+ {
117
+ $html='<' . $tag . self::renderAttributes($htmlOptions);
118
+ if($content===false)
119
+ return $closeTag ? $html.' />' : $html.'>';
120
+ else
121
+ return $closeTag ? $html.'>'.$content.'</'.$tag.'>' : $html.'>'.$content;
122
+ }
123
+
124
+ /**
125
+ * Generates an open HTML element.
126
+ * @param string the tag name
127
+ * @param array the element attributes. The values will be HTML-encoded using {@link encode()}.
128
+ * Since version 1.0.5, if an 'encode' attribute is given and its value is false,
129
+ * the rest of the attribute values will NOT be HTML-encoded.
130
+ * @return string the generated HTML element tag
131
+ */
132
+ public static function openTag($tag,$htmlOptions=array())
133
+ {
134
+ return '<' . $tag . self::renderAttributes($htmlOptions) . '>';
135
+ }
136
+
137
+ /**
138
+ * Generates a close HTML element.
139
+ * @param string the tag name
140
+ * @return string the generated HTML element tag
141
+ */
142
+ public static function closeTag($tag)
143
+ {
144
+ return '</'.$tag.'>';
145
+ }
146
+
147
+ /**
148
+ * Encloses the given string within a CDATA tag.
149
+ * @param string the string to be enclosed
150
+ * @return string the CDATA tag with the enclosed content.
151
+ */
152
+ public static function cdata($text)
153
+ {
154
+ return '<![CDATA[' . $text . ']]>';
155
+ }
156
+
157
+ /**
158
+ * Generates a meta tag that can be inserted in the head section of HTML page.
159
+ * @param string content attribute of the meta tag
160
+ * @param string name attribute of the meta tag. If null, the attribute will not be generated
161
+ * @param string http-equiv attribute of the meta tag. If null, the attribute will not be generated
162
+ * @param array other options in name-value pairs (e.g. 'scheme', 'lang')
163
+ * @return string the generated meta tag
164
+ * @since 1.0.1
165
+ */
166
+ public static function metaTag($content,$name=null,$httpEquiv=null,$options=array())
167
+ {
168
+ $options['content']=$content;
169
+ if($name!==null)
170
+ $options['name']=$name;
171
+ if($httpEquiv!==null)
172
+ $options['http-equiv']=$httpEquiv;
173
+ return self::tag('meta',$options);
174
+ }
175
+
176
+ /**
177
+ * Generates a link tag that can be inserted in the head section of HTML page.
178
+ * Do not confuse this method with {@link link()}. The latter generates a hyperlink.
179
+ * @param string rel attribute of the link tag. If null, the attribute will not be generated.
180
+ * @param string type attribute of the link tag. If null, the attribute will not be generated.
181
+ * @param string href attribute of the link tag. If null, the attribute will not be generated.
182
+ * @param string media attribute of the link tag. If null, the attribute will not be generated.
183
+ * @param array other options in name-value pairs
184
+ * @return string the generated link tag
185
+ * @since 1.0.1
186
+ */
187
+ public static function linkTag($relation=null,$type=null,$href=null,$media=null,$options=array())
188
+ {
189
+ if($relation!==null)
190
+ $options['rel']=$relation;
191
+ if($type!==null)
192
+ $options['type']=$type;
193
+ if($href!==null)
194
+ $options['href']=$href;
195
+ if($media!==null)
196
+ $options['media']=$media;
197
+ return self::tag('link',$options);
198
+ }
199
+
200
+ /**
201
+ * Encloses the given CSS content with a CSS tag.
202
+ * @param string the CSS content
203
+ * @param string the media that this CSS should apply to.
204
+ * @return string the CSS properly enclosed
205
+ */
206
+ public static function css($text,$media='')
207
+ {
208
+ if($media!=='')
209
+ $media=' media="'.$media.'"';
210
+ return "<style type=\"text/css\"{$media}>\n/*<![CDATA[*/\n{$text}\n/*]]>*/\n</style>";
211
+ }
212
+
213
+ /**
214
+ * Links to the specified CSS file.
215
+ * @param string the CSS URL
216
+ * @param string the media that this CSS should apply to.
217
+ * @return string the CSS link.
218
+ */
219
+ public static function cssFile($url,$media='')
220
+ {
221
+ if($media!=='')
222
+ $media=' media="'.$media.'"';
223
+ return '<link rel="stylesheet" type="text/css" href="'.self::encode($url).'"'.$media.' />';
224
+ }
225
+
226
+ /**
227
+ * Encloses the given JavaScript within a script tag.
228
+ * @param string the JavaScript to be enclosed
229
+ * @return string the enclosed JavaScript
230
+ */
231
+ public static function script($text)
232
+ {
233
+ return "<script type=\"text/javascript\">\n/*<![CDATA[*/\n{$text}\n/*]]>*/\n</script>";
234
+ }
235
+
236
+ /**
237
+ * Includes a JavaScript file.
238
+ * @param string URL for the JavaScript file
239
+ * @return string the JavaScript file tag
240
+ */
241
+ public static function scriptFile($url)
242
+ {
243
+ return '<script type="text/javascript" src="'.self::encode($url).'"></script>';
244
+ }
245
+
246
+ /**
247
+ * Generates an opening form tag.
248
+ * This is a shortcut to {@link beginForm}.
249
+ * @param mixed the form action URL (see {@link normalizeUrl} for details about this parameter.)
250
+ * @param string form method (e.g. post, get)
251
+ * @param array additional HTML attributes (see {@link tag}).
252
+ * @return string the generated form tag.
253
+ */
254
+ public static function form($action='',$method='post',$htmlOptions=array())
255
+ {
256
+ return self::beginForm($action,$method,$htmlOptions);
257
+ }
258
+
259
+ /**
260
+ * Generates an opening form tag.
261
+ * Note, only the open tag is generated. A close tag should be placed manually
262
+ * at the end of the form.
263
+ * @param mixed the form action URL (see {@link normalizeUrl} for details about this parameter.)
264
+ * @param string form method (e.g. post, get)
265
+ * @param array additional HTML attributes (see {@link tag}).
266
+ * @return string the generated form tag.
267
+ * @since 1.0.4
268
+ * @see endForm
269
+ */
270
+ public static function beginForm($action='',$method='post',$htmlOptions=array())
271
+ {
272
+ $htmlOptions['action']=self::normalizeUrl($action);
273
+ $htmlOptions['method']=$method;
274
+ $form=self::tag('form',$htmlOptions,false,false);
275
+ $request=Yii::app()->request;
276
+ if($request->enableCsrfValidation)
277
+ {
278
+ $token=self::hiddenField($request->csrfTokenName,$request->getCsrfToken(),array('id'=>false));
279
+ $form.="\n".$token;
280
+ }
281
+ return $form;
282
+ }
283
+
284
+ /**
285
+ * Generates a closing form tag.
286
+ * @return string the generated tag
287
+ * @since 1.0.4
288
+ * @see beginForm
289
+ */
290
+ public static function endForm()
291
+ {
292
+ return '</form>';
293
+ }
294
+
295
+ /**
296
+ * Generates a stateful form tag.
297
+ * A stateful form tag is similar to {@link form} except that it renders an additional
298
+ * hidden field for storing persistent page states. You should use this method to generate
299
+ * a form tag if you want to access persistent page states when the form is submitted.
300
+ * @param mixed the form action URL (see {@link normalizeUrl} for details about this parameter.)
301
+ * @param string form method (e.g. post, get)
302
+ * @param array additional HTML attributes (see {@link tag}).
303
+ * @return string the generated form tag.
304
+ */
305
+ public static function statefulForm($action='',$method='post',$htmlOptions=array())
306
+ {
307
+ return self::form($action,$method,$htmlOptions)."\n".
308
+ self::tag('div',array('style'=>'visibility:hidden'),self::pageStateField(''));
309
+ }
310
+
311
+ /**
312
+ * Generates a hidden field for storing persistent page states.
313
+ * This method is internally used by {@link statefulForm}.
314
+ * @param string the persistent page states in serialized format
315
+ * @return string the generated hidden field
316
+ */
317
+ public static function pageStateField($value)
318
+ {
319
+ return '<input type="hidden" name="'.CController::STATE_INPUT_NAME.'" value="'.$value.'" />';
320
+ }
321
+
322
+ /**
323
+ * Generates a hyperlink tag.
324
+ * @param string link body. It will NOT be HTML-encoded. Therefore you can pass in HTML code such as an image tag.
325
+ * @param mixed a URL or an action route that can be used to create a URL.
326
+ * See {@link normalizeUrl} for more details about how to specify this parameter.
327
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
328
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
329
+ * @return string the generated hyperlink
330
+ * @see normalizeUrl
331
+ * @see clientChange
332
+ */
333
+ public static function link($text,$url='#',$htmlOptions=array())
334
+ {
335
+ if($url!=='')
336
+ $htmlOptions['href']=self::normalizeUrl($url);
337
+ self::clientChange('click',$htmlOptions);
338
+ return self::tag('a',$htmlOptions,$text);
339
+ }
340
+
341
+ /**
342
+ * Generates a mailto link.
343
+ * @param string link body. It will NOT be HTML-encoded. Therefore you can pass in HTML code such as an image tag.
344
+ * @param string email address. If this is empty, the first parameter (link body) will be treated as the email address.
345
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
346
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
347
+ * @return string the generated mailto link
348
+ * @see clientChange
349
+ * @since 1.0.1
350
+ */
351
+ public static function mailto($text,$email='',$htmlOptions=array())
352
+ {
353
+ if($email==='')
354
+ $email=$text;
355
+ return self::link($text,'mailto:'.$email,$htmlOptions);
356
+ }
357
+
358
+ /**
359
+ * Generates an image tag.
360
+ * @param string the image URL
361
+ * @param string the alternative text display
362
+ * @param array additional HTML attributes (see {@link tag}).
363
+ * @return string the generated image tag
364
+ */
365
+ public static function image($src,$alt='',$htmlOptions=array())
366
+ {
367
+ $htmlOptions['src']=$src;
368
+ $htmlOptions['alt']=$alt;
369
+ return self::tag('img',$htmlOptions);
370
+ }
371
+
372
+ /**
373
+ * Generates a button.
374
+ * @param string the button label
375
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
376
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
377
+ * @return string the generated button tag
378
+ * @see clientChange
379
+ */
380
+ public static function button($label='button',$htmlOptions=array())
381
+ {
382
+ if(!isset($htmlOptions['name']))
383
+ $htmlOptions['name']=self::ID_PREFIX.self::$count++;
384
+ if(!isset($htmlOptions['type']))
385
+ $htmlOptions['type']='button';
386
+ if(!isset($htmlOptions['value']))
387
+ $htmlOptions['value']=$label;
388
+ self::clientChange('click',$htmlOptions);
389
+ return self::tag('input',$htmlOptions);
390
+ }
391
+
392
+ /**
393
+ * Generates a button using HTML button tag.
394
+ * This method is similar to {@link button} except that it generates a 'button'
395
+ * tag instead of 'input' tag.
396
+ * @param string the button label
397
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
398
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
399
+ * @return string the generated button tag
400
+ * @see clientChange
401
+ * @since 1.0.8
402
+ */
403
+ public static function htmlButton($label='button',$htmlOptions=array())
404
+ {
405
+ if(!isset($htmlOptions['name']))
406
+ $htmlOptions['name']=self::ID_PREFIX.self::$count++;
407
+ if(!isset($htmlOptions['type']))
408
+ $htmlOptions['type']='button';
409
+ if(!isset($htmlOptions['value']))
410
+ $htmlOptions['value']=$label;
411
+ self::clientChange('click',$htmlOptions);
412
+ return self::tag('button',$htmlOptions);
413
+ }
414
+
415
+ /**
416
+ * Generates a submit button.
417
+ * @param string the button label
418
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
419
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
420
+ * @return string the generated button tag
421
+ * @see clientChange
422
+ */
423
+ public static function submitButton($label='submit',$htmlOptions=array())
424
+ {
425
+ $htmlOptions['type']='submit';
426
+ return self::button($label,$htmlOptions);
427
+ }
428
+
429
+ /**
430
+ * Generates a reset button.
431
+ * @param string the button label
432
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
433
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
434
+ * @return string the generated button tag
435
+ * @see clientChange
436
+ */
437
+ public static function resetButton($label='reset',$htmlOptions=array())
438
+ {
439
+ $htmlOptions['type']='reset';
440
+ return self::button($label,$htmlOptions);
441
+ }
442
+
443
+ /**
444
+ * Generates an image submit button.
445
+ * @param string the button label
446
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
447
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
448
+ * @return string the generated button tag
449
+ * @see clientChange
450
+ */
451
+ public static function imageButton($src,$htmlOptions=array())
452
+ {
453
+ $htmlOptions['src']=$src;
454
+ $htmlOptions['type']='image';
455
+ return self::button('submit',$htmlOptions);
456
+ }
457
+
458
+ /**
459
+ * Generates a link submit button.
460
+ * @param string the button label
461
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
462
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
463
+ * @return string the generated button tag
464
+ * @see clientChange
465
+ */
466
+ public static function linkButton($label='submit',$htmlOptions=array())
467
+ {
468
+ if(!isset($htmlOptions['submit']))
469
+ $htmlOptions['submit']=isset($htmlOptions['href']) ? $htmlOptions['href'] : '';
470
+ return self::link($label,'#',$htmlOptions);
471
+ }
472
+
473
+ /**
474
+ * Generates a label tag.
475
+ * @param string label text. Note, you should HTML-encode the text if needed.
476
+ * @param string the ID of the HTML element that this label is associated with
477
+ * @param array additional HTML attributes.
478
+ * Starting from version 1.0.2, the following HTML option is recognized:
479
+ * <pre>
480
+ * <li>required: if this is set and is true, the label will be styled
481
+ * with CSS class 'required' (customizable with CHtml::$requiredCss),
482
+ * and be decorated with {@link CHtml::beforeRequiredLabel} and
483
+ * {@link CHtml::afterRequiredLabel}.</li>
484
+ * </pre>
485
+ * @return string the generated label tag
486
+ */
487
+ public static function label($label,$for,$htmlOptions=array())
488
+ {
489
+ $htmlOptions['for']=$for;
490
+ if(isset($htmlOptions['required']))
491
+ {
492
+ if($htmlOptions['required'])
493
+ {
494
+ if(isset($htmlOptions['class']))
495
+ $htmlOptions['class'].=' '.self::$requiredCss;
496
+ else
497
+ $htmlOptions['class']=self::$requiredCss;
498
+ $label=self::$beforeRequiredLabel.$label.self::$afterRequiredLabel;
499
+ }
500
+ unset($htmlOptions['required']);
501
+ }
502
+ return self::tag('label',$htmlOptions,$label);
503
+ }
504
+
505
+ /**
506
+ * Generates a text field input.
507
+ * @param string the input name
508
+ * @param string the input value
509
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
510
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
511
+ * @return string the generated input field
512
+ * @see clientChange
513
+ * @see inputField
514
+ */
515
+ public static function textField($name,$value='',$htmlOptions=array())
516
+ {
517
+ self::clientChange('change',$htmlOptions);
518
+ return self::inputField('text',$name,$value,$htmlOptions);
519
+ }
520
+
521
+ /**
522
+ * Generates a hidden input.
523
+ * @param string the input name
524
+ * @param string the input value
525
+ * @param array additional HTML attributes (see {@link tag}).
526
+ * @return string the generated input field
527
+ * @see inputField
528
+ */
529
+ public static function hiddenField($name,$value='',$htmlOptions=array())
530
+ {
531
+ return self::inputField('hidden',$name,$value,$htmlOptions);
532
+ }
533
+
534
+ /**
535
+ * Generates a password field input.
536
+ * @param string the input name
537
+ * @param string the input value
538
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
539
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
540
+ * @return string the generated input field
541
+ * @see clientChange
542
+ * @see inputField
543
+ */
544
+ public static function passwordField($name,$value='',$htmlOptions=array())
545
+ {
546
+ self::clientChange('change',$htmlOptions);
547
+ return self::inputField('password',$name,$value,$htmlOptions);
548
+ }
549
+
550
+ /**
551
+ * Generates a file input.
552
+ * Note, you have to set the enclosing form's 'enctype' attribute to be 'multipart/form-data'.
553
+ * After the form is submitted, the uploaded file information can be obtained via $_FILES[$name] (see
554
+ * PHP documentation).
555
+ * @param string the input name
556
+ * @param string the input value
557
+ * @param array additional HTML attributes (see {@link tag}).
558
+ * @return string the generated input field
559
+ * @see inputField
560
+ */
561
+ public static function fileField($name,$value='',$htmlOptions=array())
562
+ {
563
+ return self::inputField('file',$name,$value,$htmlOptions);
564
+ }
565
+
566
+ /**
567
+ * Generates a text area input.
568
+ * @param string the input name
569
+ * @param string the input value
570
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
571
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
572
+ * @return string the generated text area
573
+ * @see clientChange
574
+ * @see inputField
575
+ */
576
+ public static function textArea($name,$value='',$htmlOptions=array())
577
+ {
578
+ $htmlOptions['name']=$name;
579
+ if(!isset($htmlOptions['id']))
580
+ $htmlOptions['id']=self::getIdByName($name);
581
+ self::clientChange('change',$htmlOptions);
582
+ return self::tag('textarea',$htmlOptions,self::encode($value));
583
+ }
584
+
585
+ /**
586
+ * Generates a radio button.
587
+ * @param string the input name
588
+ * @param boolean whether the check box is checked
589
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
590
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
591
+ * @return string the generated radio button
592
+ * @see clientChange
593
+ * @see inputField
594
+ */
595
+ public static function radioButton($name,$checked=false,$htmlOptions=array())
596
+ {
597
+ if($checked)
598
+ $htmlOptions['checked']='checked';
599
+ else
600
+ unset($htmlOptions['checked']);
601
+ $value=isset($htmlOptions['value']) ? $htmlOptions['value'] : 1;
602
+ self::clientChange('click',$htmlOptions);
603
+ return self::inputField('radio',$name,$value,$htmlOptions);
604
+ }
605
+
606
+ /**
607
+ * Generates a check box.
608
+ * @param string the input name
609
+ * @param boolean whether the check box is checked
610
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
611
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
612
+ * @return string the generated check box
613
+ * @see clientChange
614
+ * @see inputField
615
+ */
616
+ public static function checkBox($name,$checked=false,$htmlOptions=array())
617
+ {
618
+ if($checked)
619
+ $htmlOptions['checked']='checked';
620
+ else
621
+ unset($htmlOptions['checked']);
622
+ $value=isset($htmlOptions['value']) ? $htmlOptions['value'] : 1;
623
+ self::clientChange('click',$htmlOptions);
624
+ return self::inputField('checkbox',$name,$value,$htmlOptions);
625
+ }
626
+
627
+ /**
628
+ * Generates a drop down list.
629
+ * @param string the input name
630
+ * @param string the selected value
631
+ * @param array data for generating the list options (value=>display).
632
+ * You may use {@link listData} to generate this data.
633
+ * Please refer to {@link listOptions} on how this data is used to generate the list options.
634
+ * Note, the values and labels will be automatically HTML-encoded by this method.
635
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
636
+ * attributes are recognized. See {@link clientChange} and {@link tag} for more details.
637
+ * In addition, the following options are also supported specifically for dropdown list:
638
+ * <ul>
639
+ * <li>prompt: string, specifies the prompt text shown as the first list option. Its value is empty.</li>
640
+ * <li>empty: string, specifies the text corresponding to empty selection. Its value is empty.</li>
641
+ * <li>options: array, specifies additional attributes for each OPTION tag.
642
+ * The array keys must be the option values, and the array values are the extra
643
+ * OPTION tag attributes in the name-value pairs. For example,
644
+ * <pre>
645
+ * array(
646
+ * 'value1'=>array('disabled'=>true, 'label'=>'value 1'),
647
+ * 'value2'=>array('label'=>'value 2'),
648
+ * );
649
+ * </pre>
650
+ * This option has been available since version 1.0.3.
651
+ * </li>
652
+ * </ul>
653
+ * @return string the generated drop down list
654
+ * @see clientChange
655
+ * @see inputField
656
+ * @see listData
657
+ */
658
+ public static function dropDownList($name,$select,$data,$htmlOptions=array())
659
+ {
660
+ $htmlOptions['name']=$name;
661
+
662
+ if(!isset($htmlOptions['id']))
663
+ $htmlOptions['id']=self::getIdByName($name);
664
+ self::clientChange('change',$htmlOptions);
665
+ $options="\n".self::listOptions($select,$data,$htmlOptions);
666
+ return self::tag('select',$htmlOptions,$options);
667
+ }
668
+
669
+ /**
670
+ * Generates a list box.
671
+ * @param string the input name
672
+ * @param mixed the selected value(s). This can be either a string for single selection or an array for multiple selections.
673
+ * @param array data for generating the list options (value=>display)
674
+ * You may use {@link listData} to generate this data.
675
+ * Please refer to {@link listOptions} on how this data is used to generate the list options.
676
+ * Note, the values and labels will be automatically HTML-encoded by this method.
677
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
678
+ * attributes are also recognized. See {@link clientChange} and {@link tag} for more details.
679
+ * In addition, the following options are also supported specifically for list box:
680
+ * <ul>
681
+ * <li>prompt: string, specifies the prompt text shown as the first list option. Its value is empty.</li>
682
+ * <li>empty: string, specifies the text corresponding to empty selection. Its value is empty.</li>
683
+ * <li>options: array, specifies additional attributes for each OPTION tag.
684
+ * The array keys must be the option values, and the array values are the extra
685
+ * OPTION tag attributes in the name-value pairs. For example,
686
+ * <pre>
687
+ * array(
688
+ * 'value1'=>array('disabled'=>true, 'label'=>'value 1'),
689
+ * 'value2'=>array('label'=>'value 2'),
690
+ * );
691
+ * </pre>
692
+ * This option has been available since version 1.0.3.
693
+ * </li>
694
+ * </ul>
695
+ * @return string the generated list box
696
+ * @see clientChange
697
+ * @see inputField
698
+ * @see listData
699
+ */
700
+ public static function listBox($name,$select,$data,$htmlOptions=array())
701
+ {
702
+ if(!isset($htmlOptions['size']))
703
+ $htmlOptions['size']=4;
704
+ if(isset($htmlOptions['multiple']))
705
+ {
706
+ if(substr($name,-2)!=='[]')
707
+ $name.='[]';
708
+ }
709
+ return self::dropDownList($name,$select,$data,$htmlOptions);
710
+ }
711
+
712
+ /**
713
+ * Generates a check box list.
714
+ * A check box list allows multiple selection, like {@link listBox}.
715
+ * As a result, the corresponding POST value is an array.
716
+ * @param string name of the check box list. You can use this name to retrieve
717
+ * the selected value(s) once the form is submitted.
718
+ * @param mixed selection of the check boxes. This can be either a string
719
+ * for single selection or an array for multiple selections.
720
+ * @param array value-label pairs used to generate the check box list.
721
+ * Note, the values will be automatically HTML-encoded, while the labels will not.
722
+ * @param array addtional HTML options. The options will be applied to
723
+ * each checkbox input. The following special options are recognized:
724
+ * <ul>
725
+ * <li>template: string, specifies how each checkbox is rendered. Defaults
726
+ * to "{input} {label}", where "{input}" will be replaced by the generated
727
+ * check box input tag while "{label}" be replaced by the corresponding check box label.</li>
728
+ * <li>separator: string, specifies the string that separates the generated check boxes.</li>
729
+ * <li>checkAll: string, specifies the label for the "check all" checkbox.
730
+ * If this option is specified, a 'check all' checkbox will be displayed. Clicking on
731
+ * this checkbox will cause all checkboxes checked or unchecked. This option has been
732
+ * available since version 1.0.4.</li>
733
+ * <li>checkAllLast: boolean, specifies whether the 'check all' checkbox should be
734
+ * displayed at the end of the checkbox list. If this option is not set (default)
735
+ * or is false, the 'check all' checkbox will be displayed at the beginning of
736
+ * the checkbox list. This option has been available since version 1.0.4.</li>
737
+ * </ul>
738
+ * @return string the generated check box list
739
+ */
740
+ public static function checkBoxList($name,$select,$data,$htmlOptions=array())
741
+ {
742
+ $template=isset($htmlOptions['template'])?$htmlOptions['template']:'{input} {label}';
743
+ $separator=isset($htmlOptions['separator'])?$htmlOptions['separator']:"<br/>\n";
744
+ unset($htmlOptions['template'],$htmlOptions['separator']);
745
+
746
+ if(substr($name,-2)!=='[]')
747
+ $name.='[]';
748
+
749
+ if(isset($htmlOptions['checkAll']))
750
+ {
751
+ $checkAllLabel=$htmlOptions['checkAll'];
752
+ $checkAllLast=isset($htmlOptions['checkAllLast']) && $htmlOptions['checkAllLast'];
753
+ }
754
+ unset($htmlOptions['checkAll'],$htmlOptions['checkAllLast']);
755
+
756
+ $items=array();
757
+ $baseID=self::getIdByName($name);
758
+ $id=0;
759
+ $checkAll=true;
760
+ foreach($data as $value=>$label)
761
+ {
762
+ $checked=!is_array($select) && !strcmp($value,$select) || is_array($select) && in_array($value,$select);
763
+ $checkAll=$checkAll && $checked;
764
+ $htmlOptions['value']=$value;
765
+ $htmlOptions['id']=$baseID.'_'.$id++;
766
+ $option=self::checkBox($name,$checked,$htmlOptions);
767
+ $label=self::label($label,$htmlOptions['id']);
768
+ $items[]=strtr($template,array('{input}'=>$option,'{label}'=>$label));
769
+ }
770
+
771
+ if(isset($checkAllLabel))
772
+ {
773
+ $htmlOptions['value']=1;
774
+ $htmlOptions['id']=$id=$baseID.'_all';
775
+ $option=self::checkBox($id,$checkAll,$htmlOptions);
776
+ $label=self::label($checkAllLabel,$id);
777
+ $item=strtr($template,array('{input}'=>$option,'{label}'=>$label));
778
+ if($checkAllLast)
779
+ $items[]=$item;
780
+ else
781
+ array_unshift($items,$item);
782
+ $name=strtr($name,array('['=>'\\[',']'=>'\\]'));
783
+ $js=<<<EOD
784
+ jQuery('#$id').click(function() {
785
+ var checked=this.checked;
786
+ jQuery("input[name='$name']").each(function() {
787
+ this.checked=checked;
788
+ });
789
+ });
790
+
791
+ jQuery("input[name='$name']").click(function() {
792
+ jQuery('#$id').attr('checked', jQuery("input[name='$name']").length==jQuery("input[name='$name'][checked=true]").length);
793
+ });
794
+ EOD;
795
+ $cs=Yii::app()->getClientScript();
796
+ $cs->registerCoreScript('jquery');
797
+ $cs->registerScript($id,$js);
798
+ }
799
+
800
+ return implode($separator,$items);
801
+ }
802
+
803
+ /**
804
+ * Generates a radio button list.
805
+ * A radio button list is like a {@link checkBoxList check box list}, except that
806
+ * it only allows single selection.
807
+ * @param string name of the radio button list. You can use this name to retrieve
808
+ * the selected value(s) once the form is submitted.
809
+ * @param mixed selection of the radio buttons. This can be either a string
810
+ * for single selection or an array for multiple selections.
811
+ * @param array value-label pairs used to generate the radio button list.
812
+ * Note, the values will be automatically HTML-encoded, while the labels will not.
813
+ * @param array addtional HTML options. The options will be applied to
814
+ * each checkbox input. The following special options are recognized:
815
+ * <ul>
816
+ * <li>template: string, specifies how each checkbox is rendered. Defaults
817
+ * to "{input} {label}", where "{input}" will be replaced by the generated
818
+ * radio button input tag while "{label}" be replaced by the corresponding radio button label.</li>
819
+ * <li>separator: string, specifies the string that separates the generated radio buttons.</li>
820
+ * </ul>
821
+ * @return string the generated radio button list
822
+ */
823
+ public static function radioButtonList($name,$select,$data,$htmlOptions=array())
824
+ {
825
+ $template=isset($htmlOptions['template'])?$htmlOptions['template']:'{input} {label}';
826
+ $separator=isset($htmlOptions['separator'])?$htmlOptions['separator']:"<br/>\n";
827
+ unset($htmlOptions['template'],$htmlOptions['separator']);
828
+
829
+ $items=array();
830
+ $baseID=self::getIdByName($name);
831
+ $id=0;
832
+ foreach($data as $value=>$label)
833
+ {
834
+ $checked=!strcmp($value,$select);
835
+ $htmlOptions['value']=$value;
836
+ $htmlOptions['id']=$baseID.'_'.$id++;
837
+ $option=self::radioButton($name,$checked,$htmlOptions);
838
+ $label=self::label($label,$htmlOptions['id']);
839
+ $items[]=strtr($template,array('{input}'=>$option,'{label}'=>$label));
840
+ }
841
+ return implode($separator,$items);
842
+ }
843
+
844
+ /**
845
+ * Generates a link that can initiate AJAX requests.
846
+ * @param string the link body (it will NOT be HTML-encoded.)
847
+ * @param mixed the URL for the AJAX request. If empty, it is assumed to be the current URL. See {@link normalizeUrl} for more details.
848
+ * @param array AJAX options (see {@link ajax})
849
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
850
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
851
+ * @return string the generated link
852
+ * @see normalizeUrl
853
+ * @see ajax
854
+ */
855
+ public static function ajaxLink($text,$url,$ajaxOptions=array(),$htmlOptions=array())
856
+ {
857
+ if(!isset($htmlOptions['href']))
858
+ $htmlOptions['href']='#';
859
+ $ajaxOptions['url']=$url;
860
+ $htmlOptions['ajax']=$ajaxOptions;
861
+ self::clientChange('click',$htmlOptions);
862
+ return self::tag('a',$htmlOptions,$text);
863
+ }
864
+
865
+ /**
866
+ * Generates a push button that can initiate AJAX requests.
867
+ * @param string the button label
868
+ * @param mixed the URL for the AJAX request. If empty, it is assumed to be the current URL. See {@link normalizeUrl} for more details.
869
+ * @param array AJAX options (see {@link ajax})
870
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
871
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
872
+ * @return string the generated button
873
+ */
874
+ public static function ajaxButton($label,$url,$ajaxOptions=array(),$htmlOptions=array())
875
+ {
876
+ $ajaxOptions['url']=$url;
877
+ $htmlOptions['ajax']=$ajaxOptions;
878
+ return self::button($label,$htmlOptions);
879
+ }
880
+
881
+ /**
882
+ * Generates a push button that can submit the current form in POST method.
883
+ * @param string the button label
884
+ * @param mixed the URL for the AJAX request. If empty, it is assumed to be the current URL. See {@link normalizeUrl} for more details.
885
+ * @param array AJAX options (see {@link ajax})
886
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
887
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
888
+ * @return string the generated button
889
+ */
890
+ public static function ajaxSubmitButton($label,$url,$ajaxOptions=array(),$htmlOptions=array())
891
+ {
892
+ $ajaxOptions['type']='POST';
893
+ return self::ajaxButton($label,$url,$ajaxOptions,$htmlOptions);
894
+ }
895
+
896
+ /**
897
+ * Generates the JavaScript that initiates an AJAX request.
898
+ * @param array AJAX options. The valid options are specified in the jQuery ajax documentation.
899
+ * The following special options are added for convenience:
900
+ * <ul>
901
+ * <li>update: string, specifies the selector whose HTML content should be replaced
902
+ * by the AJAX request result.</li>
903
+ * <li>replace: string, specifies the selector whose target should be replaced
904
+ * by the AJAX request result.</li>
905
+ * </ul>
906
+ * Note, if you specify the 'success' option, the above options will be ignored.
907
+ * @return string the generated JavaScript
908
+ * @see http://docs.jquery.com/Ajax/jQuery.ajax#options
909
+ */
910
+ public static function ajax($options)
911
+ {
912
+ Yii::app()->getClientScript()->registerCoreScript('jquery');
913
+ if(!isset($options['url']))
914
+ $options['url']='js:location.href';
915
+ else
916
+ $options['url']=self::normalizeUrl($options['url']);
917
+ if(!isset($options['cache']))
918
+ $options['cache']=false;
919
+ if(!isset($options['data']) && isset($options['type']))
920
+ $options['data']='js:jQuery(this).parents("form").serialize()';
921
+ foreach(array('beforeSend','complete','error','success') as $name)
922
+ {
923
+ if(isset($options[$name]) && strpos($options[$name],'js:')!==0)
924
+ $options[$name]='js:'.$options[$name];
925
+ }
926
+ if(isset($options['update']))
927
+ {
928
+ if(!isset($options['success']))
929
+ $options['success']='js:function(html){jQuery("'.$options['update'].'").html(html)}';
930
+ unset($options['update']);
931
+ }
932
+ if(isset($options['replace']))
933
+ {
934
+ if(!isset($options['success']))
935
+ $options['success']='js:function(html){jQuery("'.$options['replace'].'").replaceWith(html)}';
936
+ unset($options['replace']);
937
+ }
938
+ return 'jQuery.ajax('.CJavaScript::encode($options).');';
939
+ }
940
+
941
+ /**
942
+ * Generates the URL for the published assets.
943
+ * @param string the path of the asset to be published
944
+ * @param boolean whether the published directory should be named as the hashed basename.
945
+ * If false, the name will be the hashed dirname of the path being published.
946
+ * Defaults to false. Set true if the path being published is shared among
947
+ * different extensions.
948
+ * @return string the asset URL
949
+ */
950
+ public static function asset($path,$hashByName=false)
951
+ {
952
+ return Yii::app()->getAssetManager()->publish($path,$hashByName);
953
+ }
954
+
955
+ /**
956
+ * Generates a URL if the input specifies the route to a controller action.
957
+ * @param mixed the URL to be normalized. If a string, the URL is returned back;
958
+ * if an array, it is considered as a route to a controller action and will
959
+ * be used to generate a URL using {@link CController::createUrl}; if the URL is empty,
960
+ * the currently requested URL is returned.
961
+ * @param string the URL
962
+ */
963
+ public static function normalizeUrl($url)
964
+ {
965
+ if(is_array($url))
966
+ {
967
+ if(isset($url[0]))
968
+ {
969
+ if(($c=Yii::app()->getController())!==null)
970
+ $url=$c->createUrl($url[0],array_splice($url,1));
971
+ else
972
+ $url=Yii::app()->createUrl($url[0],array_splice($url,1));
973
+ }
974
+ else
975
+ $url='';
976
+ }
977
+ return $url==='' ? Yii::app()->getRequest()->getUrl() : $url;
978
+ }
979
+
980
+ /**
981
+ * Generates an input HTML tag.
982
+ * This method generates an input HTML tag based on the given input name and value.
983
+ * @param string the input type (e.g. 'text', 'radio')
984
+ * @param string the input name
985
+ * @param string the input value
986
+ * @param array additional HTML attributes for the HTML tag (see {@link tag}).
987
+ * @return string the generated input tag
988
+ */
989
+ protected static function inputField($type,$name,$value,$htmlOptions)
990
+ {
991
+ $htmlOptions['type']=$type;
992
+ $htmlOptions['value']=$value;
993
+ $htmlOptions['name']=$name;
994
+
995
+ // if($type != 'checkbox')
996
+ // $htmlOptions['class']=$htmlOptions['class'].' tweetnews-input';
997
+
998
+ if(!isset($htmlOptions['id']))
999
+ $htmlOptions['id']=self::getIdByName($name);
1000
+ else if($htmlOptions['id']===false)
1001
+ unset($htmlOptions['id']);
1002
+ return self::tag('input',$htmlOptions);
1003
+ }
1004
+
1005
+ /**
1006
+ * Generates a label tag for a model attribute.
1007
+ * The label text is the attribute label and the label is associated with
1008
+ * the input for the attribute (see {@link CModel::getAttributeLabel}.
1009
+ * If the attribute has input error, the label's CSS class will be appended with {@link errorCss}.
1010
+ * @param CModel the data model
1011
+ * @param string the attribute
1012
+ * @param array additional HTML attributes. A special option named
1013
+ * 'label' is recognized since version 1.0.4. If this option is specified, it will be used
1014
+ * as the label. Otherwise, the label will be determined
1015
+ * by calling {@link CModel::getAttributeLabel}.
1016
+ * @return string the generated label tag
1017
+ */
1018
+ public static function activeLabel($model,$attribute,$htmlOptions=array())
1019
+ {
1020
+ if(isset($htmlOptions['for']))
1021
+ {
1022
+ $for=$htmlOptions['for'];
1023
+ unset($htmlOptions['for']);
1024
+ }
1025
+ else
1026
+ $for=self::getIdByName(self::resolveName($model,$attribute));
1027
+ if(isset($htmlOptions['label']))
1028
+ {
1029
+ $label=$htmlOptions['label'];
1030
+ unset($htmlOptions['label']);
1031
+ }
1032
+ else
1033
+ $label=$model->getAttributeLabel($attribute);
1034
+ if($model->hasErrors($attribute))
1035
+ self::addErrorCss($htmlOptions);
1036
+ return self::label($label,$for,$htmlOptions);
1037
+ }
1038
+
1039
+ /**
1040
+ * Generates a label tag for a model attribute.
1041
+ * This is an enhanced version of {@link activeLabel}. It will render additional
1042
+ * CSS class and mark when the attribute is required.
1043
+ * In particular, it calls {@link CModel::isAttributeRequired} to determine
1044
+ * if the attribute is required under the scenario {@link CHtml::scenario}.
1045
+ * If so, it will add a CSS class {@link CHtml::requiredCss} to the label,
1046
+ * and decorate the label with {@link CHtml::beforeRequiredLabel} and
1047
+ * {@link CHtml::afterRequiredLabel}.
1048
+ * @param CModel the data model
1049
+ * @param string the attribute
1050
+ * @param array additional HTML attributes.
1051
+ * @return string the generated label tag
1052
+ * @since 1.0.2
1053
+ */
1054
+ public static function activeLabelEx($model,$attribute,$htmlOptions=array())
1055
+ {
1056
+ $realAttribute=$attribute;
1057
+ self::resolveName($model,$attribute); // strip off square brackets if any
1058
+ $htmlOptions['required']=$model->isAttributeRequired($attribute,self::$scenario);
1059
+ return self::activeLabel($model,$realAttribute,$htmlOptions);
1060
+ }
1061
+
1062
+ /**
1063
+ * Generates a text field input for a model attribute.
1064
+ * If the attribute has input error, the input field's CSS class will
1065
+ * be appended with {@link errorCss}.
1066
+ * @param CModel the data model
1067
+ * @param string the attribute
1068
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
1069
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
1070
+ * @return string the generated input field
1071
+ * @see clientChange
1072
+ * @see activeInputField
1073
+ */
1074
+ public static function activeTextField($model,$attribute,$htmlOptions=array())
1075
+ {
1076
+ self::resolveNameID($model,$attribute,$htmlOptions);
1077
+ self::clientChange('change',$htmlOptions);
1078
+ return self::activeInputField('text',$model,$attribute,$htmlOptions);
1079
+ }
1080
+
1081
+ /**
1082
+ * Generates a hidden input for a model attribute.
1083
+ * @param CModel the data model
1084
+ * @param string the attribute
1085
+ * @param array additional HTML attributes.
1086
+ * @return string the generated input field
1087
+ * @see activeInputField
1088
+ */
1089
+ public static function activeHiddenField($model,$attribute,$htmlOptions=array())
1090
+ {
1091
+ self::resolveNameID($model,$attribute,$htmlOptions);
1092
+ return self::activeInputField('hidden',$model,$attribute,$htmlOptions);
1093
+ }
1094
+
1095
+ /**
1096
+ * Generates a password field input for a model attribute.
1097
+ * If the attribute has input error, the input field's CSS class will
1098
+ * be appended with {@link errorCss}.
1099
+ * @param CModel the data model
1100
+ * @param string the attribute
1101
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
1102
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
1103
+ * @return string the generated input field
1104
+ * @see clientChange
1105
+ * @see activeInputField
1106
+ */
1107
+ public static function activePasswordField($model,$attribute,$htmlOptions=array())
1108
+ {
1109
+ self::resolveNameID($model,$attribute,$htmlOptions);
1110
+ self::clientChange('change',$htmlOptions);
1111
+ return self::activeInputField('password',$model,$attribute,$htmlOptions);
1112
+ }
1113
+
1114
+ /**
1115
+ * Generates a text area input for a model attribute.
1116
+ * If the attribute has input error, the input field's CSS class will
1117
+ * be appended with {@link errorCss}.
1118
+ * @param CModel the data model
1119
+ * @param string the attribute
1120
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
1121
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
1122
+ * @return string the generated text area
1123
+ * @see clientChange
1124
+ */
1125
+ public static function activeTextArea($model,$attribute,$htmlOptions=array())
1126
+ {
1127
+ self::resolveNameID($model,$attribute,$htmlOptions);
1128
+ self::clientChange('change',$htmlOptions);
1129
+ if($model->hasErrors($attribute))
1130
+ self::addErrorCss($htmlOptions);
1131
+ return self::tag('textarea',$htmlOptions,self::encode($model->$attribute));
1132
+ }
1133
+
1134
+ /**
1135
+ * Generates a file input for a model attribute.
1136
+ * Note, you have to set the enclosing form's 'enctype' attribute to be 'multipart/form-data'.
1137
+ * After the form is submitted, the uploaded file information can be obtained via $_FILES (see
1138
+ * PHP documentation).
1139
+ * @param CModel the data model
1140
+ * @param string the attribute
1141
+ * @param array additional HTML attributes (see {@link tag}).
1142
+ * @return string the generated input field
1143
+ * @see activeInputField
1144
+ */
1145
+ public static function activeFileField($model,$attribute,$htmlOptions=array())
1146
+ {
1147
+ self::resolveNameID($model,$attribute,$htmlOptions);
1148
+ // add a hidden field so that if a model only has a file field, we can
1149
+ // still use isset($_POST[$modelClass]) to detect if the input is submitted
1150
+ return self::hiddenField($htmlOptions['name'],'',array('id'=>self::ID_PREFIX.$htmlOptions['id']))
1151
+ . self::activeInputField('file',$model,$attribute,$htmlOptions);
1152
+ }
1153
+
1154
+ /**
1155
+ * Generates a radio button for a model attribute.
1156
+ * If the attribute has input error, the input field's CSS class will
1157
+ * be appended with {@link errorCss}.
1158
+ * @param CModel the data model
1159
+ * @param string the attribute
1160
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
1161
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
1162
+ * @return string the generated radio button
1163
+ * @see clientChange
1164
+ * @see activeInputField
1165
+ */
1166
+ public static function activeRadioButton($model,$attribute,$htmlOptions=array())
1167
+ {
1168
+ self::resolveNameID($model,$attribute,$htmlOptions);
1169
+ if(!isset($htmlOptions['value']))
1170
+ $htmlOptions['value']=1;
1171
+ if($model->$attribute)
1172
+ $htmlOptions['checked']='checked';
1173
+ self::clientChange('click',$htmlOptions);
1174
+ // add a hidden field so that if the radio button is not selected, it still submits a value
1175
+ return self::hiddenField($htmlOptions['name'],$htmlOptions['value']?0:-1,array('id'=>self::ID_PREFIX.$htmlOptions['id']))
1176
+ . self::activeInputField('radio',$model,$attribute,$htmlOptions);
1177
+ }
1178
+
1179
+ /**
1180
+ * Generates a check box for a model attribute.
1181
+ * The attribute is assumed to take either true or false value.
1182
+ * If the attribute has input error, the input field's CSS class will
1183
+ * be appended with {@link errorCss}.
1184
+ * @param CModel the data model
1185
+ * @param string the attribute
1186
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
1187
+ * attributes are also recognized (see {@link clientChange} and {@link tag} for more details.)
1188
+ * Since version 1.0.2, a special option named 'uncheckValue' is available that can be used to specify
1189
+ * the value returned when the checkbox is not checked. By default, this value is '0'.
1190
+ * @return string the generated check box
1191
+ * @see clientChange
1192
+ * @see activeInputField
1193
+ */
1194
+ public static function activeCheckBox($model,$attribute,$htmlOptions=array())
1195
+ {
1196
+ self::resolveNameID($model,$attribute,$htmlOptions);
1197
+ if(!isset($htmlOptions['value']))
1198
+ $htmlOptions['value']=1;
1199
+ if($model->$attribute)
1200
+ $htmlOptions['checked']='checked';
1201
+ self::clientChange('click',$htmlOptions);
1202
+
1203
+ if(isset($htmlOptions['uncheckValue']))
1204
+ {
1205
+ $uncheck=$htmlOptions['uncheckValue'];
1206
+ unset($htmlOptions['uncheckValue']);
1207
+ }
1208
+ else
1209
+ $uncheck='0';
1210
+
1211
+ return self::hiddenField($htmlOptions['name'],$uncheck,array('id'=>self::ID_PREFIX.$htmlOptions['id']))
1212
+ . self::activeInputField('checkbox',$model,$attribute,$htmlOptions);
1213
+ }
1214
+
1215
+ /**
1216
+ * Generates a drop down list for a model attribute.
1217
+ * If the attribute has input error, the input field's CSS class will
1218
+ * be appended with {@link errorCss}.
1219
+ * @param CModel the data model
1220
+ * @param string the attribute
1221
+ * @param array data for generating the list options (value=>display)
1222
+ * You may use {@link listData} to generate this data.
1223
+ * Please refer to {@link listOptions} on how this data is used to generate the list options.
1224
+ * Note, the values and labels will be automatically HTML-encoded by this method.
1225
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
1226
+ * attributes are recognized. See {@link clientChange} and {@link tag} for more details.
1227
+ * In addition, the following options are also supported:
1228
+ * <ul>
1229
+ * <li>prompt: string, specifies the prompt text shown as the first list option. Its value is empty.</li>
1230
+ * <li>empty: string, specifies the text corresponding to empty selection. Its value is empty.</li>
1231
+ * <li>options: array, specifies additional attributes for each OPTION tag.
1232
+ * The array keys must be the option values, and the array values are the extra
1233
+ * OPTION tag attributes in the name-value pairs. For example,
1234
+ * <pre>
1235
+ * array(
1236
+ * 'value1'=>array('disabled'=>true, 'label'=>'value 1'),
1237
+ * 'value2'=>array('label'=>'value 2'),
1238
+ * );
1239
+ * </pre>
1240
+ * This option has been available since version 1.0.3.
1241
+ * </li>
1242
+ * </ul>
1243
+ * @return string the generated drop down list
1244
+ * @see clientChange
1245
+ * @see listData
1246
+ */
1247
+ public static function activeDropDownList($model,$attribute,$data,$htmlOptions=array())
1248
+ {
1249
+ self::resolveNameID($model,$attribute,$htmlOptions);
1250
+ $selection=$model->$attribute;
1251
+ $options="\n".self::listOptions($selection,$data,$htmlOptions);
1252
+ self::clientChange('change',$htmlOptions);
1253
+ if($model->hasErrors($attribute))
1254
+ self::addErrorCss($htmlOptions);
1255
+ if(isset($htmlOptions['multiple']))
1256
+ {
1257
+ if(substr($htmlOptions['name'],-2)!=='[]')
1258
+ $htmlOptions['name'].='[]';
1259
+ }
1260
+
1261
+ return self::tag('select',$htmlOptions,$options);
1262
+ }
1263
+
1264
+ /**
1265
+ * Generates a list box for a model attribute.
1266
+ * The model attribute value is used as the selection.
1267
+ * If the attribute has input error, the input field's CSS class will
1268
+ * be appended with {@link errorCss}.
1269
+ * @param CModel the data model
1270
+ * @param string the attribute
1271
+ * @param array data for generating the list options (value=>display)
1272
+ * You may use {@link listData} to generate this data.
1273
+ * Please refer to {@link listOptions} on how this data is used to generate the list options.
1274
+ * Note, the values and labels will be automatically HTML-encoded by this method.
1275
+ * @param array additional HTML attributes. Besides normal HTML attributes, a few special
1276
+ * attributes are recognized. See {@link clientChange} and {@link tag} for more details.
1277
+ * In addition, the following options are also supported:
1278
+ * <ul>
1279
+ * <li>prompt: string, specifies the prompt text shown as the first list option. Its value is empty.</li>
1280
+ * <li>empty: string, specifies the text corresponding to empty selection. Its value is empty.</li>
1281
+ * <li>options: array, specifies additional attributes for each OPTION tag.
1282
+ * The array keys must be the option values, and the array values are the extra
1283
+ * OPTION tag attributes in the name-value pairs. For example,
1284
+ * <pre>
1285
+ * array(
1286
+ * 'value1'=>array('disabled'=>true, 'label'=>'value 1'),
1287
+ * 'value2'=>array('label'=>'value 2'),
1288
+ * );
1289
+ * </pre>
1290
+ * This option has been available since version 1.0.3.
1291
+ * </li>
1292
+ * </ul>
1293
+ * @return string the generated list box
1294
+ * @see clientChange
1295
+ * @see listData
1296
+ */
1297
+ public static function activeListBox($model,$attribute,$data,$htmlOptions=array())
1298
+ {
1299
+ if(!isset($htmlOptions['size']))
1300
+ $htmlOptions['size']=4;
1301
+ return self::activeDropDownList($model,$attribute,$data,$htmlOptions);
1302
+ }
1303
+
1304
+ /**
1305
+ * Generates a check box list for a model attribute.
1306
+ * The model attribute value is used as the selection.
1307
+ * If the attribute has input error, the input field's CSS class will
1308
+ * be appended with {@link errorCss}.
1309
+ * Note that a check box list allows multiple selection, like {@link listBox}.
1310
+ * As a result, the corresponding POST value is an array. In case no selection
1311
+ * is made, the corresponding POST value is an empty string.
1312
+ * @param CModel the data model
1313
+ * @param string the attribute
1314
+ * @param array value-label pairs used to generate the check box list.
1315
+ * Note, the values will be automatically HTML-encoded, while the labels will not.
1316
+ * @param array addtional HTML options. The options will be applied to
1317
+ * each checkbox input. The following special options are recognized:
1318
+ * <ul>
1319
+ * <li>template: string, specifies how each checkbox is rendered. Defaults
1320
+ * to "{input} {label}", where "{input}" will be replaced by the generated
1321
+ * check box input tag while "{label}" be replaced by the corresponding check box label.</li>
1322
+ * <li>separator: string, specifies the string that separates the generated check boxes.</li>
1323
+ * <li>checkAll: string, specifies the label for the "check all" checkbox.
1324
+ * If this option is specified, a 'check all' checkbox will be displayed. Clicking on
1325
+ * this checkbox will cause all checkboxes checked or unchecked. This option has been
1326
+ * available since version 1.0.4.</li>
1327
+ * <li>checkAllLast: boolean, specifies whether the 'check all' checkbox should be
1328
+ * displayed at the end of the checkbox list. If this option is not set (default)
1329
+ * or is false, the 'check all' checkbox will be displayed at the beginning of
1330
+ * the checkbox list. This option has been available since version 1.0.4.</li>
1331
+ * <li>encode: boolean, specifies whether to encode HTML-encode tag attributes and values. Defaults to true.
1332
+ * This option has been available since version 1.0.5.</li>
1333
+ * </ul>
1334
+ * @return string the generated check box list
1335
+ * @see checkBoxList
1336
+ */
1337
+ public static function activeCheckBoxList($model,$attribute,$data,$htmlOptions=array())
1338
+ {
1339
+ self::resolveNameID($model,$attribute,$htmlOptions);
1340
+ $selection=$model->$attribute;
1341
+ if($model->hasErrors($attribute))
1342
+ self::addErrorCss($htmlOptions);
1343
+ $name=$htmlOptions['name'];
1344
+ unset($htmlOptions['name']);
1345
+
1346
+ return self::hiddenField($name,'',array('id'=>self::ID_PREFIX.$htmlOptions['id']))
1347
+ . self::checkBoxList($name,$selection,$data,$htmlOptions);
1348
+ }
1349
+
1350
+ /**
1351
+ * Generates a radio button list for a model attribute.
1352
+ * The model attribute value is used as the selection.
1353
+ * If the attribute has input error, the input field's CSS class will
1354
+ * be appended with {@link errorCss}.
1355
+ * @param CModel the data model
1356
+ * @param string the attribute
1357
+ * @param array value-label pairs used to generate the radio button list.
1358
+ * Note, the values will be automatically HTML-encoded, while the labels will not.
1359
+ * @param array addtional HTML options. The options will be applied to
1360
+ * each checkbox input. The following special options are recognized:
1361
+ * <ul>
1362
+ * <li>template: string, specifies how each checkbox is rendered. Defaults
1363
+ * to "{input} {label}", where "{input}" will be replaced by the generated
1364
+ * radio button input tag while "{label}" be replaced by the corresponding radio button label.</li>
1365
+ * <li>separator: string, specifies the string that separates the generated radio buttons.</li>
1366
+ * <li>encode: boolean, specifies whether to encode HTML-encode tag attributes and values. Defaults to true.
1367
+ * This option has been available since version 1.0.5.</li>
1368
+ * </ul>
1369
+ * @return string the generated radio button list
1370
+ * @see radioButtonList
1371
+ */
1372
+ public static function activeRadioButtonList($model,$attribute,$data,$htmlOptions=array())
1373
+ {
1374
+ self::resolveNameID($model,$attribute,$htmlOptions);
1375
+ $selection=$model->$attribute;
1376
+ if($model->hasErrors($attribute))
1377
+ self::addErrorCss($htmlOptions);
1378
+ $name=$htmlOptions['name'];
1379
+ unset($htmlOptions['name']);
1380
+
1381
+ return self::hiddenField($name,'',array('id'=>self::ID_PREFIX.$htmlOptions['id']))
1382
+ . self::radioButtonList($name,$selection,$data,$htmlOptions);
1383
+ }
1384
+
1385
+ /**
1386
+ * Returns the element ID that is used by methods such as {@link activeTextField}.
1387
+ * This method has been deprecated since version 1.0.5. Please use {@link activeId} instead.
1388
+ * @param CModel the data model
1389
+ * @param string the attribute
1390
+ * @return string the element ID for the active field corresponding to the specified model and attribute.
1391
+ * @deprecated 1.0.5
1392
+ */
1393
+ public static function getActiveId($model,$attribute)
1394
+ {
1395
+ return self::activeId($model,$attribute);
1396
+ }
1397
+
1398
+ /**
1399
+ * Displays a summary of validation errors for one or several models.
1400
+ * @param mixed the models whose input errors are to be displayed. This can be either
1401
+ * a single model or an array of models.
1402
+ * @param string a piece of HTML code that appears in front of the errors
1403
+ * @param string a piece of HTML code that appears at the end of the errors
1404
+ * @param array additional HTML attributes to be rendered in the container div tag.
1405
+ * This parameter has been available since version 1.0.7.
1406
+ * @return string the error summary. Empty if no errors are found.
1407
+ * @see CModel::getErrors
1408
+ * @see errorSummaryCss
1409
+ */
1410
+ public static function errorSummary($model,$header=null,$footer=null,$htmlOptions=array())
1411
+ {
1412
+ $content='';
1413
+ if(!is_array($model))
1414
+ $model=array($model);
1415
+ foreach($model as $m)
1416
+ {
1417
+ foreach($m->getErrors() as $errors)
1418
+ {
1419
+ foreach($errors as $error)
1420
+ {
1421
+ if($error!='')
1422
+ $content.="<li>$error</li>\n";
1423
+ }
1424
+ }
1425
+ }
1426
+ if($content!=='')
1427
+ {
1428
+ if($header===null)
1429
+ $header='<p>'.Yii::t('yii','Please fix the following input errors:').'</p>';
1430
+ if(!isset($htmlOptions['class']))
1431
+ $htmlOptions['class']=self::$errorSummaryCss;
1432
+ return self::tag('div',$htmlOptions,$header."\n<ul>\n$content</ul>".$footer);
1433
+ }
1434
+ else
1435
+ return '';
1436
+ }
1437
+
1438
+ /**
1439
+ * Displays the first validation error for a model attribute.
1440
+ * @param CModel the data model
1441
+ * @param string the attribute name
1442
+ * @param array additional HTML attributes to be rendered in the container div tag.
1443
+ * This parameter has been available since version 1.0.7.
1444
+ * @return string the error display. Empty if no errors are found.
1445
+ * @see CModel::getErrors
1446
+ * @see errorMessageCss
1447
+ */
1448
+ public static function error($model,$attribute,$htmlOptions=array())
1449
+ {
1450
+ $error=$model->getError($attribute);
1451
+ if($error!='')
1452
+ {
1453
+ if(!isset($htmlOptions['class']))
1454
+ $htmlOptions['class']=self::$errorMessageCss;
1455
+ return self::tag('div',$htmlOptions,$error);
1456
+ }
1457
+ else
1458
+ return '';
1459
+ }
1460
+
1461
+ /**
1462
+ * Generates the data suitable for {@link dropDownList} and {@link listBox}.
1463
+ * Note, this method does not HTML-encode the generated data. You may call {@link encodeArray} to
1464
+ * encode it if needed.
1465
+ * Please refer to the {@link value} method on how to specify value field, text field and group field.
1466
+ * @param array a list of model objects. Starting from version 1.0.3, this parameter
1467
+ * can also be an array of associative arrays (e.g. results of {@link CDbCommand::queryAll}).
1468
+ * @param string the attribute name for list option values
1469
+ * @param string the attribute name for list option texts
1470
+ * @param string the attribute name for list option group names. If empty, no group will be generated.
1471
+ * @return array the list data that can be used in {@link dropDownList} and {@link listBox}
1472
+ */
1473
+ public static function listData($models,$valueField,$textField,$groupField='')
1474
+ {
1475
+ $listData=array();
1476
+ if($groupField==='')
1477
+ {
1478
+ foreach($models as $model)
1479
+ {
1480
+ $value=self::value($model,$valueField);
1481
+ $text=self::value($model,$textField);
1482
+ $listData[$value]=$text;
1483
+ }
1484
+ }
1485
+ else
1486
+ {
1487
+ foreach($models as $model)
1488
+ {
1489
+ $group=self::value($model,$groupField);
1490
+ $value=self::value($model,$valueField);
1491
+ $text=self::value($model,$textField);
1492
+ $listData[$group][$value]=$text;
1493
+ }
1494
+ }
1495
+ return $listData;
1496
+ }
1497
+
1498
+ /**
1499
+ * Evaluates the value of the specified attribute for the given model.
1500
+ * The attribute name can be given in a dot syntax. For example, if the attribute
1501
+ * is "author.firstName", this method will return the value of "$model->author->firstName".
1502
+ * A default value (passed as the last parameter) will be returned if the attribute does
1503
+ * not exist or is broken in the middle (e.g. $model->author is null).
1504
+ * The model can be either an object or an array. If the latter, the attribute is treated
1505
+ * as a key of the array. For the example of "author.firstName", if would mean the array value
1506
+ * "$model['author']['firstName']".
1507
+ * @param mixed the model. This can be either an object or an array.
1508
+ * @param string the attribute name (use dot to concatenate multiple attributes)
1509
+ * @param mixed the default value to return when the attribute does not exist
1510
+ * @return mixed the attribute value
1511
+ * @since 1.0.5
1512
+ */
1513
+ public static function value($model,$attribute,$defaultValue=null)
1514
+ {
1515
+ foreach(explode('.',$attribute) as $name)
1516
+ {
1517
+ if(is_object($model))
1518
+ $model=$model->$name;
1519
+ else if(is_array($model) && isset($model[$name]))
1520
+ $model=$model[$name];
1521
+ else
1522
+ return $defaultValue;
1523
+ }
1524
+ return $model;
1525
+ }
1526
+
1527
+ /**
1528
+ * Generates a valid HTML ID based the name.
1529
+ * @return string the ID generated based on name.
1530
+ */
1531
+ public static function getIdByName($name)
1532
+ {
1533
+ return str_replace(array('[]', '][', '[', ']'), array('', '_', '_', ''), $name);
1534
+ }
1535
+
1536
+ /**
1537
+ * Generates input field ID for a model attribute.
1538
+ * @param CModel the data model
1539
+ * @param string the attribute
1540
+ * @return string the generated input field ID
1541
+ * @since 1.0.1
1542
+ */
1543
+ public static function activeId($model,$attribute)
1544
+ {
1545
+ return self::getIdByName(self::activeName($model,$attribute));
1546
+ }
1547
+
1548
+ /**
1549
+ * Generates input field name for a model attribute.
1550
+ * @param CModel the data model
1551
+ * @param string the attribute
1552
+ * @return string the generated input field name
1553
+ * @since 1.0.1
1554
+ */
1555
+ public static function activeName($model,$attribute)
1556
+ {
1557
+ $a=$attribute; // because the attribute name may be changed by resolveName
1558
+ return self::resolveName($model,$a);
1559
+ }
1560
+
1561
+ /**
1562
+ * Generates an input HTML tag for a model attribute.
1563
+ * This method generates an input HTML tag based on the given data model and attribute.
1564
+ * If the attribute has input error, the input field's CSS class will
1565
+ * be appended with {@link errorCss}.
1566
+ * This enables highlighting the incorrect input.
1567
+ * @param string the input type (e.g. 'text', 'radio')
1568
+ * @param CModel the data model
1569
+ * @param string the attribute
1570
+ * @param array additional HTML attributes for the HTML tag
1571
+ * @return string the generated input tag
1572
+ */
1573
+ protected static function activeInputField($type,$model,$attribute,$htmlOptions)
1574
+ {
1575
+ $htmlOptions['type']=$type;
1576
+ if($type==='file')
1577
+ unset($htmlOptions['value']);
1578
+ else if(!isset($htmlOptions['value']))
1579
+ $htmlOptions['value']=$model->$attribute;
1580
+ if($model->hasErrors($attribute))
1581
+ self::addErrorCss($htmlOptions);
1582
+ return self::tag('input',$htmlOptions);
1583
+ }
1584
+
1585
+ /**
1586
+ * Generates the list options.
1587
+ * @param mixed the selected value(s). This can be either a string for single selection or an array for multiple selections.
1588
+ * @param array the option data (see {@link listData})
1589
+ * @param array additional HTML attributes. The following two special attributes are recognized:
1590
+ * <ul>
1591
+ * <li>encode: boolean, specifies whether to encode the values. Defaults to true. This option has been available since version 1.0.5.</li>
1592
+ * <li>prompt: string, specifies the prompt text shown as the first list option. Its value is empty.</li>
1593
+ * <li>empty: string, specifies the text corresponding to empty selection. Its value is empty.</li>
1594
+ * <li>options: array, specifies additional attributes for each OPTION tag.
1595
+ * The array keys must be the option values, and the array values are the extra
1596
+ * OPTION tag attributes in the name-value pairs. For example,
1597
+ * <pre>
1598
+ * array(
1599
+ * 'value1'=>array('disabled'=>true, 'label'=>'value 1'),
1600
+ * 'value2'=>array('label'=>'value 2'),
1601
+ * );
1602
+ * </pre>
1603
+ * This option has been available since version 1.0.3.
1604
+ * </li>
1605
+ * </ul>
1606
+ * @return string the generated list options
1607
+ */
1608
+ public static function listOptions($selection,$listData,&$htmlOptions)
1609
+ {
1610
+ $raw=isset($htmlOptions['encode']) && !$htmlOptions['encode'];
1611
+ $content='';
1612
+ if(isset($htmlOptions['prompt']))
1613
+ {
1614
+ $content.='<option value="">'.($raw?$htmlOptions['prompt'] : self::encode($htmlOptions['prompt']))."</option>";
1615
+ unset($htmlOptions['prompt']);
1616
+ }
1617
+ if(isset($htmlOptions['empty']))
1618
+ {
1619
+ $content.='<option value="">'.($raw?$htmlOptions['empty'] : self::encode($htmlOptions['empty']))."</option>";
1620
+ unset($htmlOptions['empty']);
1621
+ }
1622
+
1623
+ if(isset($htmlOptions['options']))
1624
+ {
1625
+ $options=$htmlOptions['options'];
1626
+ unset($htmlOptions['options']);
1627
+ }
1628
+ else
1629
+ $options=array();
1630
+
1631
+ foreach($listData as $key=>$value)
1632
+ {
1633
+ if(is_array($value))
1634
+ {
1635
+ $content.='<optgroup label="'.($raw?$key : self::encode($key))."\">\n";
1636
+ $dummy=array();
1637
+ $content.=self::listOptions($selection,$value,$dummy);
1638
+ $content.='</optgroup>'."\n";
1639
+ }
1640
+ else
1641
+ {
1642
+ $attributes=array('value'=>(string)$key, 'encode'=>!$raw);
1643
+ if(!is_array($selection) && !strcmp($key,$selection) ||
1644
+ is_array($selection) && in_array($key,$selection))
1645
+ $attributes['selected']='selected';
1646
+ if(isset($options[$key]))
1647
+ $attributes=array_merge($attributes,$options[$key]);
1648
+ $content.=self::tag('option',$attributes,$raw?(string)$value : self::encode((string)$value));
1649
+ }
1650
+ }
1651
+ return $content;
1652
+ }
1653
+
1654
+ /**
1655
+ * Generates the JavaScript with the specified client changes.
1656
+ * @param string event name (without 'on')
1657
+ * @param array HTML attributes which may contain the following special attributes
1658
+ * specifying the client change behaviors:
1659
+ * <ul>
1660
+ * <li>submit: string, specifies the URL that the button should submit to. If empty, the current requested URL will be used.</li>
1661
+ * <li>params: array, name-value pairs that should be submitted together with the form. This is only used when 'submit' option is specified.</li>
1662
+ * <li>csrf: boolean, whether a CSRF token should be submitted when {@link CHttpRequest::enableCsrfValidation} is true. Defaults to false.
1663
+ * This option has been available since version 1.0.7. You may want to set this to be true if there is no enclosing
1664
+ * form around this element. This option is meaningful only when 'submit' option is set.</li>
1665
+ * <li>return: boolean, the return value of the javascript. Defaults to false, meaning that the execution of
1666
+ * javascript would not cause the default behavior of the event. This option has been available since version 1.0.2.</li>
1667
+ * <li>confirm: string, specifies the message that should show in a pop-up confirmation dialog.</li>
1668
+ * <li>ajax: array, specifies the AJAX options (see {@link ajax}).</li>
1669
+ * </ul>
1670
+ */
1671
+ protected static function clientChange($event,&$htmlOptions)
1672
+ {
1673
+ if(!isset($htmlOptions['submit']) && !isset($htmlOptions['confirm']) && !isset($htmlOptions['ajax']))
1674
+ return;
1675
+
1676
+ if(isset($htmlOptions['return']) && $htmlOptions['return'])
1677
+ $return='return true';
1678
+ else
1679
+ $return='return false';
1680
+
1681
+ if(isset($htmlOptions['on'.$event]))
1682
+ {
1683
+ $handler=trim($htmlOptions['on'.$event],';').';';
1684
+ unset($htmlOptions['on'.$event]);
1685
+ }
1686
+ else
1687
+ $handler='';
1688
+
1689
+ if(isset($htmlOptions['id']))
1690
+ $id=$htmlOptions['id'];
1691
+ else
1692
+ $id=$htmlOptions['id']=isset($htmlOptions['name'])?$htmlOptions['name']:self::ID_PREFIX.self::$count++;
1693
+
1694
+ $cs=Yii::app()->getClientScript();
1695
+ $cs->registerCoreScript('jquery');
1696
+
1697
+ if(isset($htmlOptions['submit']))
1698
+ {
1699
+ $cs->registerCoreScript('yii');
1700
+ $request=Yii::app()->getRequest();
1701
+ if($request->enableCsrfValidation && isset($htmlOptions['csrf']) && $htmlOptions['csrf'])
1702
+ $htmlOptions['params'][$request->csrfTokenName]=$request->getCsrfToken();
1703
+ if(isset($htmlOptions['params']))
1704
+ $params=CJavaScript::encode($htmlOptions['params']);
1705
+ else
1706
+ $params='{}';
1707
+ if($htmlOptions['submit']!=='')
1708
+ $url=CJavaScript::quote(self::normalizeUrl($htmlOptions['submit']));
1709
+ else
1710
+ $url='';
1711
+ $handler.="jQuery.yii.submitForm(this,'$url',$params);{$return};";
1712
+ }
1713
+
1714
+ if(isset($htmlOptions['ajax']))
1715
+ $handler.=self::ajax($htmlOptions['ajax'])."{$return};";
1716
+
1717
+ if(isset($htmlOptions['confirm']))
1718
+ {
1719
+ $confirm='confirm(\''.CJavaScript::quote($htmlOptions['confirm']).'\')';
1720
+ if($handler!=='')
1721
+ $handler="if($confirm) {".$handler."} else return false;";
1722
+ else
1723
+ $handler="return $confirm;";
1724
+ }
1725
+
1726
+ $cs->registerScript('Yii.CHtml.#'.$id,"jQuery('#$id').$event(function(){{$handler}});");
1727
+ unset($htmlOptions['params'],$htmlOptions['submit'],$htmlOptions['ajax'],$htmlOptions['confirm'],$htmlOptions['return'],$htmlOptions['csrf']);
1728
+ }
1729
+
1730
+ /**
1731
+ * Generates input name and ID for a model attribute.
1732
+ * This method will update the HTML options by setting appropriate 'name' and 'id' attributes.
1733
+ * @param CModel the data model
1734
+ * @param string the attribute
1735
+ * @param array the HTML options
1736
+ */
1737
+ protected static function resolveNameID($model,&$attribute,&$htmlOptions)
1738
+ {
1739
+ if(!isset($htmlOptions['name']))
1740
+ $htmlOptions['name']=self::resolveName($model,$attribute);
1741
+ if(!isset($htmlOptions['id']))
1742
+ $htmlOptions['id']=self::getIdByName($htmlOptions['name']);
1743
+ }
1744
+
1745
+ /**
1746
+ * Generates input name for a model attribute.
1747
+ * @param CModel the data model
1748
+ * @param string the attribute
1749
+ * @return string the input name
1750
+ * @since 1.0.2
1751
+ */
1752
+ protected static function resolveName($model,&$attribute)
1753
+ {
1754
+ if(($pos=strpos($attribute,'['))!==false)
1755
+ {
1756
+ $sub=substr($attribute,$pos);
1757
+ $attribute=substr($attribute,0,$pos);
1758
+ return get_class($model).$sub.'['.$attribute.']';
1759
+ }
1760
+ else
1761
+ return get_class($model).'['.$attribute.']';
1762
+ }
1763
+
1764
+ /**
1765
+ * Appends {@link errorCss} to the 'class' attribute.
1766
+ * @param array HTML options to be modified
1767
+ */
1768
+ protected static function addErrorCss(&$htmlOptions)
1769
+ {
1770
+ if(isset($htmlOptions['class']))
1771
+ $htmlOptions['class'].=' '.self::$errorCss;
1772
+ else
1773
+ $htmlOptions['class']=self::$errorCss;
1774
+ }
1775
+
1776
+ /**
1777
+ * Renders the HTML tag attributes.
1778
+ * @param array attributes to be rendered
1779
+ * @return string the rendering result
1780
+ * @since 1.0.5
1781
+ */
1782
+ protected static function renderAttributes($htmlOptions)
1783
+ {
1784
+ if($htmlOptions===array())
1785
+ return '';
1786
+ $html='';
1787
+ $raw=isset($htmlOptions['encode']) && !$htmlOptions['encode'];
1788
+ unset($htmlOptions['encode']);
1789
+ if($raw)
1790
+ {
1791
+ foreach($htmlOptions as $name=>$value)
1792
+ $html .= ' ' . $name . '="' . $value . '"';
1793
+ }
1794
+ else
1795
+ {
1796
+ foreach($htmlOptions as $name=>$value)
1797
+ $html .= ' ' . $name . '="' . self::encode($value) . '"';
1798
+ }
1799
+ return $html;
1800
+ }
1801
+ }