From 55e0adfa17e79bef30a8c8a80f504605769672e5 Mon Sep 17 00:00:00 2001 From: 3err0 Date: Sat, 18 May 2019 13:46:03 +0800 Subject: [PATCH] message --- 404.php | 30 + control.php | 56 + download.php | 72 + favicon.ico | Bin 0 -> 3638 bytes index.php | 108 ++ language/Russian/adminpanel.lng | 1654 +++++++++++++++++ language/Russian/adminpanel_repa.lng | 158 ++ language/Russian/chat.lng | 52 + language/Russian/friends.lng | 16 + language/Russian/help.lng | 62 + language/Russian/img.lng | 21 + language/Russian/rating.lng | 39 + language/Russian/table.lng | 131 ++ language/Russian/website.lng | 623 +++++++ language/Russian/website_repa.lng | 38 + out.php | 44 + rating.php | 141 ++ robots.txt | 31 + schema.sql | 917 +++++++++ system/ajax/addcomments.php | 75 + system/ajax/bbcode.php | 134 ++ system/ajax/bbcodes.js | 340 ++++ system/ajax/categajax.php | 46 + system/ajax/chat.php | 58 + system/ajax/clean.php | 246 +++ system/ajax/commentdelete.php | 51 + system/ajax/editcomments.php | 146 ++ system/ajax/favorites.php | 53 + system/ajax/find_relates.php | 38 + system/ajax/keywords.php | 35 + system/ajax/newsletter.php | 196 ++ system/ajax/newslist.php | 95 + system/ajax/poll.php | 162 ++ system/ajax/rating.php | 73 + system/ajax/rebuild.php | 124 ++ system/ajax/registration.php | 73 + system/ajax/reputation.php | 135 ++ system/ajax/subscribe.php | 50 + system/ajax/torrent.php | 41 + system/ajax/upload.form.php | 31 + system/ajax/upload.php | 254 +++ system/ajax/voted.php | 32 + system/classes/JSON.php | 800 ++++++++ system/classes/cache.class.php | 147 ++ system/classes/captcha.class.php | 211 +++ system/classes/comments.class.php | 277 +++ system/classes/download.class.php | 69 + system/classes/flashplayer/audio.txt | 1 + system/classes/flashplayer/uppod.swf | Bin 0 -> 170827 bytes system/classes/flashplayer/video.txt | 1 + system/classes/flashplayer/youtube.txt | 1 + system/classes/google.class.php | 179 ++ system/classes/mail.class.php | 261 +++ system/classes/mysql.php | 215 +++ system/classes/navigation.class.php | 125 ++ system/classes/parse.class.php | 1028 ++++++++++ system/classes/rss.class.php | 240 +++ system/classes/sphinx.api.php | 1611 ++++++++++++++++ system/classes/swfupload/cancelbutton.gif | Bin 0 -> 1221 bytes system/classes/swfupload/fileprogress.js | 151 ++ system/classes/swfupload/handlers.js | 200 ++ system/classes/swfupload/swfupload.js | 840 +++++++++ system/classes/swfupload/swfupload.queue.js | 77 + system/classes/swfupload/swfupload.swf | Bin 0 -> 9917 bytes system/classes/swfupload/swfupload_f8.swf | Bin 0 -> 7835 bytes system/classes/swfupload/swfupload_f9.swf | Bin 0 -> 9506 bytes system/classes/templates.class.php | 225 +++ system/classes/thumb.class.php | 258 +++ system/classes/torrent.class.php | 537 ++++++ system/cron.php | 38 + system/engine.php | 464 +++++ system/file.php | 62 + system/forum/action/addpost.php | 252 +++ system/forum/action/addtopic.php | 325 ++++ system/forum/action/forum.php | 158 ++ system/forum/action/moderation.php | 520 ++++++ system/forum/action/post.php | 515 +++++ system/forum/action/topic.php | 352 ++++ system/forum/ajax/addpost.php | 59 + system/forum/ajax/dle_forum.js | 208 +++ system/forum/ajax/editpost.php | 104 ++ system/forum/ajax/init.php | 130 ++ system/forum/ajax/poll.php | 148 ++ system/forum/ajax/post.preview.php | 38 + system/forum/ajax/uploads.form.php | 34 + system/forum/images/post_icons/icon1.gif | Bin 0 -> 672 bytes system/forum/images/post_icons/icon10.gif | Bin 0 -> 672 bytes system/forum/images/post_icons/icon11.gif | Bin 0 -> 689 bytes system/forum/images/post_icons/icon12.gif | Bin 0 -> 1067 bytes system/forum/images/post_icons/icon13.gif | Bin 0 -> 1104 bytes system/forum/images/post_icons/icon14.gif | Bin 0 -> 1104 bytes system/forum/images/post_icons/icon2.gif | Bin 0 -> 676 bytes system/forum/images/post_icons/icon3.gif | Bin 0 -> 673 bytes system/forum/images/post_icons/icon4.gif | Bin 0 -> 671 bytes system/forum/images/post_icons/icon5.gif | Bin 0 -> 672 bytes system/forum/images/post_icons/icon6.gif | Bin 0 -> 666 bytes system/forum/images/post_icons/icon7.gif | Bin 0 -> 672 bytes system/forum/images/post_icons/icon8.gif | Bin 0 -> 677 bytes system/forum/images/post_icons/icon9.gif | Bin 0 -> 888 bytes system/forum/language/English/admin.lng | 377 ++++ system/forum/language/English/forum.lng | 117 ++ system/forum/language/Russian/admin.lng | 413 ++++ system/forum/language/Russian/forum.lng | 123 ++ system/forum/main.php | 197 ++ system/forum/sources/category.php | 142 ++ .../forum/sources/components/attachment.php | 48 + system/forum/sources/components/bbcode.php | 179 ++ .../forum/sources/components/edit_options.php | 104 ++ system/forum/sources/components/functions.php | 777 ++++++++ system/forum/sources/components/init.php | 471 +++++ system/forum/sources/components/licence.odf | 1 + .../forum/sources/components/navigation.php | 159 ++ system/forum/sources/components/poll.php | 159 ++ system/forum/sources/components/text_skin.php | 124 ++ system/forum/sources/modules/getnew.php | 96 + system/forum/sources/modules/search.php | 250 +++ system/forum/sources/modules/stats.php | 113 ++ system/forum/sources/modules/subscription.php | 154 ++ system/forum/sources/modules/uploads.php | 375 ++++ .../sources/shapeshifter/forum_posts.php | 154 ++ .../forum/sources/shapeshifter/forum_rss.php | 112 ++ .../sources/shapeshifter/showallposts.php | 259 +++ system/forum/sources/showforum.php | 328 ++++ system/forum/sources/showposts.php | 223 +++ system/forum/sources/showtopic.php | 397 ++++ system/forum/sources/showtopics.php | 82 + system/forum/textscreen.css | 178 ++ system/forum/textversion.php | 428 +++++ system/images.php | 59 + system/inc/addnews.php | 398 ++++ system/inc/blockip.php | 192 ++ system/inc/categories.php | 518 ++++++ system/inc/chat.php | 476 +++++ system/inc/clean.php | 101 + system/inc/editnews.php | 1292 +++++++++++++ system/inc/editusers.php | 1287 +++++++++++++ system/inc/email.php | 188 ++ system/inc/files.php | 1498 +++++++++++++++ system/inc/forum.php | 5 + system/inc/forum/email.php | 82 + system/inc/forum/form.php | 367 ++++ system/inc/forum/forum.php | 1380 ++++++++++++++ system/inc/forum/functions.php | 261 +++ system/inc/forum/ico/Usergroup.png | Bin 0 -> 10056 bytes system/inc/forum/ico/category.png | Bin 0 -> 11407 bytes system/inc/forum/ico/content.png | Bin 0 -> 11427 bytes system/inc/forum/ico/discuss.png | Bin 0 -> 9819 bytes system/inc/forum/ico/dle_forum.png | 39 + system/inc/forum/ico/filebrowser_action.gif | Bin 0 -> 1714 bytes system/inc/forum/ico/filebrowser_action2.gif | Bin 0 -> 1578 bytes system/inc/forum/ico/forum.png | Bin 0 -> 5219 bytes system/inc/forum/ico/global.png | Bin 0 -> 3278 bytes system/inc/forum/ico/help.png | Bin 0 -> 10565 bytes system/inc/forum/ico/index.html | 1 + system/inc/forum/ico/licence.png | Bin 0 -> 3710 bytes system/inc/forum/ico/modules.png | Bin 0 -> 7486 bytes system/inc/forum/ico/mset.png | Bin 0 -> 7580 bytes system/inc/forum/ico/news.png | Bin 0 -> 1492 bytes system/inc/forum/ico/preventions.png | Bin 0 -> 4394 bytes system/inc/forum/ico/rank.png | Bin 0 -> 11375 bytes system/inc/forum/ico/safety.png | Bin 0 -> 4246 bytes system/inc/forum/ico/service.png | Bin 0 -> 10509 bytes system/inc/forum/ico/show.png | Bin 0 -> 2680 bytes system/inc/forum/ico/speed.png | Bin 0 -> 4003 bytes system/inc/forum/ico/tools.png | Bin 0 -> 10567 bytes system/inc/forum/ico/uploads.png | Bin 0 -> 7798 bytes system/inc/forum/ico/usersgroup.png | Bin 0 -> 2916 bytes system/inc/forum/init.class.php | 19 + system/inc/forum/service.php | 123 ++ system/inc/forum/table.php | 208 +++ system/inc/forum/tools.php | 268 +++ system/inc/forum/usergroup.php | 162 ++ system/inc/googlemap.php | 150 ++ system/inc/include/functions.inc.php | 620 ++++++ system/inc/include/init.php | 192 ++ system/inc/include/inserttag.php | 445 +++++ system/inc/iptools.php | 354 ++++ system/inc/main.php | 232 +++ system/inc/mass_static_actions.php | 225 +++ system/inc/mass_user_actions.php | 398 ++++ system/inc/massactions.php | 468 +++++ system/inc/newsimg/addimg.php | 79 + system/inc/newsimg/doaddimg.php | 72 + system/inc/newsimg/doeditimg.php | 73 + system/inc/newsimg/editimg.php | 116 ++ system/inc/newsletter.php | 509 +++++ system/inc/options.php | 705 +++++++ system/inc/preview.php | 243 +++ system/inc/rebuild.php | 439 +++++ system/inc/repa.php | 106 ++ system/inc/repa/repa_control.php | 183 ++ system/inc/repa/repa_delete.php | 90 + system/inc/repa/repa_edit.php | 114 ++ system/inc/repa/repa_main.php | 217 +++ system/inc/repa/repa_options.php | 244 +++ system/inc/repa/repa_save.php | 74 + system/inc/repa/repa_vminus.php | 59 + system/inc/repa/repa_vplus.php | 59 + system/inc/static.php | 1013 ++++++++++ system/inc/table.php | 1209 ++++++++++++ system/inc/usergroup.php | 646 +++++++ system/inc/wordfilter.php | 394 ++++ system/init.php | 182 ++ system/js/highslide.js | 97 + system/js/jquery.js | 174 ++ system/js/main.js | 407 ++++ system/modules/addcomments.php | 189 ++ system/modules/addimg.php | 71 + system/modules/addnews.php | 219 +++ system/modules/antibot.php | 235 +++ system/modules/banned.php | 56 + system/modules/bbcode.php | 94 + system/modules/chat/addmess.php | 45 + system/modules/chat/ajax.js | 280 +++ system/modules/chat/block.php | 38 + system/modules/chat/chat.class.php | 65 + system/modules/chat/modules.php | 77 + system/modules/comments-last.php | 37 + system/modules/favorites.php | 75 + system/modules/feedback.php | 124 ++ system/modules/fonts/eva.png | Bin 0 -> 3062 bytes system/modules/forum/show.last.php | 61 + system/modules/functions.php | 708 +++++++ system/modules/gzip.php | 63 + system/modules/lastcomments.php | 38 + system/modules/lostpassword.php | 113 ++ system/modules/newsimg.php | 77 + system/modules/newslist.php | 110 ++ system/modules/online.php | 158 ++ system/modules/pm.php | 395 ++++ system/modules/pm_alert.php | 29 + system/modules/poll.php | 163 ++ system/modules/profile.php | 327 ++++ system/modules/register.php | 327 ++++ system/modules/reputation.php | 104 ++ system/modules/rss.php | 80 + system/modules/search.php | 930 +++++++++ system/modules/show.full.php | 275 +++ system/modules/show.short.php | 289 +++ system/modules/sitelogin.php | 139 ++ system/modules/static.php | 56 + system/modules/stats.php | 111 ++ system/modules/table.php | 310 +++ system/modules/toptables.php | 51 + system/modules/torrent/list.php | 36 + system/modules/torrent/upload.php | 64 + system/modules/users.php | 141 ++ system/offline.php | 17 + system/opensearch.php | 25 + system/preview.php | 238 +++ system/skins/bbcodes/color.html | 126 ++ system/skins/bbcodes/images/b.gif | Bin 0 -> 1662 bytes system/skins/bbcodes/images/bg.gif | Bin 0 -> 820 bytes system/skins/bbcodes/images/brkspace.gif | Bin 0 -> 135 bytes system/skins/bbcodes/images/c.gif | Bin 0 -> 263 bytes system/skins/bbcodes/images/close.gif | Bin 0 -> 1736 bytes system/skins/bbcodes/images/code.gif | Bin 0 -> 2287 bytes system/skins/bbcodes/images/color.gif | Bin 0 -> 1400 bytes system/skins/bbcodes/images/email.gif | Bin 0 -> 2243 bytes system/skins/bbcodes/images/emo.gif | Bin 0 -> 1163 bytes system/skins/bbcodes/images/fast_hide.gif | Bin 0 -> 1227 bytes system/skins/bbcodes/images/fast_hide1.gif | Bin 0 -> 1227 bytes system/skins/bbcodes/images/flash.gif | Bin 0 -> 1826 bytes system/skins/bbcodes/images/hide.gif | Bin 0 -> 270 bytes system/skins/bbcodes/images/i.gif | Bin 0 -> 1488 bytes system/skins/bbcodes/images/image.gif | Bin 0 -> 693 bytes system/skins/bbcodes/images/l.gif | Bin 0 -> 271 bytes system/skins/bbcodes/images/leech.gif | Bin 0 -> 672 bytes system/skins/bbcodes/images/link.gif | Bin 0 -> 1779 bytes system/skins/bbcodes/images/mp.gif | Bin 0 -> 640 bytes system/skins/bbcodes/images/mp3.gif | Bin 0 -> 653 bytes system/skins/bbcodes/images/page.gif | Bin 0 -> 436 bytes system/skins/bbcodes/images/quote.gif | Bin 0 -> 2217 bytes system/skins/bbcodes/images/r.gif | Bin 0 -> 264 bytes system/skins/bbcodes/images/rating.gif | Bin 0 -> 1536 bytes system/skins/bbcodes/images/s.gif | Bin 0 -> 1716 bytes system/skins/bbcodes/images/screens.gif | Bin 0 -> 273 bytes system/skins/bbcodes/images/spoiler.gif | Bin 0 -> 1026 bytes system/skins/bbcodes/images/translit.gif | Bin 0 -> 187 bytes system/skins/bbcodes/images/typograf.gif | Bin 0 -> 627 bytes system/skins/bbcodes/images/u.gif | Bin 0 -> 1509 bytes system/skins/bbcodes/images/upload.gif | Bin 0 -> 2215 bytes system/skins/bbcodes/images/youtube.gif | Bin 0 -> 1044 bytes system/skins/bbcodes/rating.gif | Bin 0 -> 1536 bytes system/skins/calendar-blue.css | 234 +++ system/skins/calendar.js | 85 + system/skins/default.js | 152 ++ system/skins/default.skin.php | 107 ++ system/skins/images/ads.png | Bin 0 -> 4680 bytes system/skins/images/allnews.png | Bin 0 -> 5934 bytes system/skins/images/allset.png | Bin 0 -> 2684 bytes system/skins/images/banusers.png | Bin 0 -> 5383 bytes system/skins/images/block_birth.jpg | Bin 0 -> 898 bytes system/skins/images/block_new.jpg | Bin 0 -> 707 bytes system/skins/images/blockip.png | Bin 0 -> 5341 bytes system/skins/images/browser_action.gif | Bin 0 -> 742 bytes system/skins/images/bttn.gif | Bin 0 -> 145 bytes system/skins/images/cats.png | Bin 0 -> 7009 bytes system/skins/images/ch_pass.png | Bin 0 -> 5794 bytes system/skins/images/clean.png | Bin 0 -> 3244 bytes system/skins/images/close-pm.png | Bin 0 -> 3175 bytes system/skins/images/comments.png | Bin 0 -> 2369 bytes system/skins/images/conf_images.png | Bin 0 -> 2303 bytes system/skins/images/db_opt.png | Bin 0 -> 2352 bytes system/skins/images/db_optimize.gif | Bin 0 -> 2361 bytes system/skins/images/db_repair.gif | Bin 0 -> 2411 bytes system/skins/images/db_save.gif | Bin 0 -> 2356 bytes system/skins/images/dbset.png | Bin 0 -> 5515 bytes system/skins/images/dle_forum.PNG | Bin 0 -> 14239 bytes system/skins/images/dle_smf.gif | Bin 0 -> 911 bytes system/skins/images/email.png | Bin 0 -> 2339 bytes system/skins/images/error.png | Bin 0 -> 4725 bytes system/skins/images/finish.png | Bin 0 -> 930 bytes system/skins/images/folder.png | Bin 0 -> 2189 bytes system/skins/images/fset.png | Bin 0 -> 4868 bytes system/skins/images/general.png | Bin 0 -> 2414 bytes system/skins/images/googlemap.png | Bin 0 -> 4293 bytes system/skins/images/hide_img.png | Bin 0 -> 3417 bytes system/skins/images/img.gif | Bin 0 -> 223 bytes system/skins/images/info.png | Bin 0 -> 936 bytes system/skins/images/iptools.png | Bin 0 -> 4654 bytes system/skins/images/iset.png | Bin 0 -> 4747 bytes system/skins/images/key.png | Bin 0 -> 5635 bytes system/skins/images/lbg.gif | Bin 0 -> 604 bytes system/skins/images/led_gray.gif | Bin 0 -> 394 bytes system/skins/images/led_green.gif | Bin 0 -> 408 bytes system/skins/images/line.gif | Bin 0 -> 92 bytes system/skins/images/line_bg.gif | Bin 0 -> 97 bytes system/skins/images/link.jpg | Bin 0 -> 839 bytes system/skins/images/links.png | Bin 0 -> 4567 bytes system/skins/images/mail.png | Bin 0 -> 6674 bytes system/skins/images/mchat.png | Bin 0 -> 4582 bytes system/skins/images/mline.gif | Bin 0 -> 43 bytes system/skins/images/mset.png | Bin 0 -> 4291 bytes system/skins/images/news.png | Bin 0 -> 1492 bytes system/skins/images/next.png | Bin 0 -> 5330 bytes system/skins/images/noavatar.png | Bin 0 -> 5678 bytes system/skins/images/now.png | Bin 0 -> 896 bytes system/skins/images/nset.png | Bin 0 -> 3955 bytes system/skins/images/ok.png | Bin 0 -> 958 bytes system/skins/images/p1.gif | Bin 0 -> 51 bytes system/skins/images/pingationmod.png | Bin 0 -> 6550 bytes system/skins/images/post_template.png | Bin 0 -> 7172 bytes system/skins/images/preview.png | Bin 0 -> 617 bytes system/skins/images/pset.png | Bin 0 -> 4653 bytes system/skins/images/rating.png | Bin 0 -> 2352 bytes system/skins/images/rating/about.png | Bin 0 -> 4453 bytes system/skins/images/rating/color.png | Bin 0 -> 1399 bytes system/skins/images/rating/num.png | Bin 0 -> 2352 bytes system/skins/images/rating/options.png | Bin 0 -> 4199 bytes system/skins/images/rating/other.png | Bin 0 -> 2414 bytes system/skins/images/rating/rating.png | Bin 0 -> 2352 bytes system/skins/images/rating/txt.png | Bin 0 -> 2369 bytes system/skins/images/referer.png | Bin 0 -> 6090 bytes system/skins/images/rep.png | Bin 0 -> 5448 bytes system/skins/images/repa_a_opts.png | Bin 0 -> 4384 bytes system/skins/images/repa_b_opts.png | Bin 0 -> 4591 bytes system/skins/images/repa_control.png | Bin 0 -> 8849 bytes system/skins/images/repa_ct_opts.png | Bin 0 -> 5523 bytes system/skins/images/repa_g_opts.png | Bin 0 -> 7310 bytes system/skins/images/repa_general.png | Bin 0 -> 9882 bytes system/skins/images/repa_h_opts.png | Bin 0 -> 6426 bytes system/skins/images/repa_info.png | Bin 0 -> 5300 bytes system/skins/images/repa_logs.png | Bin 0 -> 8206 bytes system/skins/images/repa_m_opts.png | Bin 0 -> 4678 bytes system/skins/images/repa_opt.png | Bin 0 -> 5802 bytes system/skins/images/repa_p_opts.png | Bin 0 -> 6482 bytes system/skins/images/rss.gif | Bin 0 -> 2276 bytes system/skins/images/rules.png | Bin 0 -> 5062 bytes system/skins/images/send.png | Bin 0 -> 697 bytes system/skins/images/settings.jpg | Bin 0 -> 932 bytes system/skins/images/shield.png | Bin 0 -> 5452 bytes system/skins/images/smartphone.jpg | Bin 0 -> 3825 bytes system/skins/images/spset.png | Bin 0 -> 6359 bytes system/skins/images/sred.png | Bin 0 -> 3316 bytes system/skins/images/stop.png | Bin 0 -> 1036 bytes system/skins/images/table/big_alert.png | Bin 0 -> 2023 bytes system/skins/images/table/big_arrow-down.png | Bin 0 -> 2233 bytes system/skins/images/table/big_ok.png | Bin 0 -> 2338 bytes system/skins/images/table/big_remove.png | Bin 0 -> 2262 bytes system/skins/images/table/options.png | Bin 0 -> 4199 bytes system/skins/images/table/other.png | Bin 0 -> 2414 bytes system/skins/images/table/small_alert.png | Bin 0 -> 787 bytes .../skins/images/table/small_arrow-down.png | Bin 0 -> 838 bytes system/skins/images/table/small_ok.png | Bin 0 -> 888 bytes system/skins/images/table/small_remove.png | Bin 0 -> 864 bytes system/skins/images/tb_lb.gif | Bin 0 -> 49 bytes system/skins/images/tb_left.gif | Bin 0 -> 49 bytes system/skins/images/tb_lt.gif | Bin 0 -> 42 bytes system/skins/images/tb_rb.gif | Bin 0 -> 49 bytes system/skins/images/tb_right.gif | Bin 0 -> 47 bytes system/skins/images/tb_rt.gif | Bin 0 -> 42 bytes system/skins/images/tb_tb.gif | Bin 0 -> 58 bytes system/skins/images/tb_top.gif | Bin 0 -> 58 bytes system/skins/images/tl_active.gif | Bin 0 -> 177 bytes system/skins/images/tl_inactive.gif | Bin 0 -> 241 bytes system/skins/images/tl_lb.gif | Bin 0 -> 50 bytes system/skins/images/tl_lo.gif | Bin 0 -> 68 bytes system/skins/images/tl_lu.gif | Bin 0 -> 99 bytes system/skins/images/tl_oo.gif | Bin 0 -> 42 bytes system/skins/images/tl_rb.gif | Bin 0 -> 63 bytes system/skins/images/tl_ro.gif | Bin 0 -> 72 bytes system/skins/images/tl_ru.gif | Bin 0 -> 108 bytes system/skins/images/tl_ub.gif | Bin 0 -> 63 bytes system/skins/images/tmpl.png | Bin 0 -> 3712 bytes system/skins/images/tools.png | Bin 0 -> 4051 bytes system/skins/images/top10news.png | Bin 0 -> 4497 bytes system/skins/images/tr_active.gif | Bin 0 -> 103 bytes system/skins/images/tr_inactive.gif | Bin 0 -> 124 bytes system/skins/images/user_edit.png | Bin 0 -> 493 bytes system/skins/images/users.png | Bin 0 -> 2425 bytes system/skins/images/usersgroup.png | Bin 0 -> 5330 bytes system/skins/images/uset.png | Bin 0 -> 4941 bytes system/skins/images/video.png | Bin 0 -> 9375 bytes system/skins/images/votes.png | Bin 0 -> 4543 bytes system/skins/style.css | 351 ++++ system/skins/tabs.js | 148 ++ templates/banned.tpl | 60 + templates/default/addnews.tpl | 27 + templates/default/bbcodes/b.gif | Bin 0 -> 1662 bytes templates/default/bbcodes/bg.gif | Bin 0 -> 820 bytes templates/default/bbcodes/brkspace.gif | Bin 0 -> 135 bytes templates/default/bbcodes/c.gif | Bin 0 -> 263 bytes templates/default/bbcodes/close.gif | Bin 0 -> 1736 bytes templates/default/bbcodes/code.gif | Bin 0 -> 2287 bytes templates/default/bbcodes/color.gif | Bin 0 -> 1400 bytes templates/default/bbcodes/color.html | 116 ++ templates/default/bbcodes/email.gif | Bin 0 -> 2243 bytes templates/default/bbcodes/emo.gif | Bin 0 -> 1163 bytes templates/default/bbcodes/flash.gif | Bin 0 -> 1826 bytes templates/default/bbcodes/hide.gif | Bin 0 -> 270 bytes templates/default/bbcodes/hide1.gif | Bin 0 -> 1227 bytes templates/default/bbcodes/hidetext.gif | Bin 0 -> 270 bytes templates/default/bbcodes/i.gif | Bin 0 -> 1488 bytes templates/default/bbcodes/image.gif | Bin 0 -> 693 bytes templates/default/bbcodes/l.gif | Bin 0 -> 271 bytes templates/default/bbcodes/leech.gif | Bin 0 -> 1794 bytes templates/default/bbcodes/link.gif | Bin 0 -> 1779 bytes templates/default/bbcodes/mp.gif | Bin 0 -> 640 bytes templates/default/bbcodes/mp3.gif | Bin 0 -> 653 bytes templates/default/bbcodes/page.gif | Bin 0 -> 2277 bytes templates/default/bbcodes/pbreak.gif | Bin 0 -> 2253 bytes templates/default/bbcodes/quote.gif | Bin 0 -> 2217 bytes templates/default/bbcodes/r.gif | Bin 0 -> 264 bytes templates/default/bbcodes/rating.gif | Bin 0 -> 1536 bytes templates/default/bbcodes/s.gif | Bin 0 -> 1716 bytes templates/default/bbcodes/screens.gif | Bin 0 -> 273 bytes templates/default/bbcodes/spoiler.gif | Bin 0 -> 1026 bytes templates/default/bbcodes/tor.gif | Bin 0 -> 1096 bytes templates/default/bbcodes/translit.gif | Bin 0 -> 187 bytes templates/default/bbcodes/u.gif | Bin 0 -> 1509 bytes templates/default/bbcodes/upload.gif | Bin 0 -> 2215 bytes templates/default/bbcodes/youtube.gif | Bin 0 -> 1044 bytes templates/default/chat/block.tpl | 16 + templates/default/chat/message.tpl | 20 + templates/default/comments/addcomments.tpl | 4 + templates/default/comments/comments.tpl | 13 + templates/default/comments/info.tpl | 1 + templates/default/comments/main.tpl | 8 + templates/default/css/forum.css | 115 ++ templates/default/css/style.css | 241 +++ templates/default/fav/favorites.tpl | 10 + templates/default/fav/news.tpl | 8 + templates/default/feedback.tpl | 41 + templates/default/forum/addpost.tpl | 52 + templates/default/forum/addtopic.tpl | 125 ++ templates/default/forum/ajax_addpost.tpl | 46 + templates/default/forum/category.tpl | 16 + templates/default/forum/edittopic.tpl | 72 + templates/default/forum/forum.tpl | 73 + templates/default/forum/forums.tpl | 7 + templates/default/forum/images/Thumbs.db | Bin 0 -> 116224 bytes templates/default/forum/images/b_forum.gif | Bin 0 -> 323 bytes templates/default/forum/images/closed.gif | Bin 0 -> 1873 bytes .../default/forum/images/closed_topic.gif | Bin 0 -> 91 bytes .../default/forum/images/dlet_action_down.gif | Bin 0 -> 100 bytes .../default/forum/images/dlet_closed.gif | Bin 0 -> 91 bytes .../default/forum/images/dlet_delete.gif | Bin 0 -> 1781 bytes templates/default/forum/images/dlet_edit.gif | Bin 0 -> 1813 bytes .../default/forum/images/dlet_headerback.gif | Bin 0 -> 312 bytes templates/default/forum/images/dlet_hot.gif | Bin 0 -> 169 bytes .../default/forum/images/dlet_hot_no.gif | Bin 0 -> 169 bytes templates/default/forum/images/dlet_logo.gif | Bin 0 -> 4864 bytes .../default/forum/images/dlet_mq_add.gif | Bin 0 -> 1683 bytes templates/default/forum/images/dlet_norm.gif | Bin 0 -> 169 bytes .../default/forum/images/dlet_norm_no.gif | Bin 0 -> 169 bytes templates/default/forum/images/dlet_poll.gif | Bin 0 -> 169 bytes .../default/forum/images/dlet_poll_no.gif | Bin 0 -> 169 bytes templates/default/forum/images/dlet_quote.gif | Bin 0 -> 1734 bytes .../default/forum/images/dlet_report.gif | Bin 0 -> 1681 bytes templates/default/forum/images/dlet_stats.gif | Bin 0 -> 478 bytes templates/default/forum/images/dlet_sub.gif | Bin 0 -> 1581 bytes .../default/forum/images/dlet_tile_cat.gif | Bin 0 -> 2760 bytes templates/default/forum/images/dlet_up.gif | Bin 0 -> 695 bytes templates/default/forum/images/f_new.gif | Bin 0 -> 492 bytes templates/default/forum/images/f_nonew.gif | Bin 0 -> 489 bytes templates/default/forum/images/fc_new.gif | Bin 0 -> 508 bytes templates/default/forum/images/fc_nonew.gif | Bin 0 -> 547 bytes templates/default/forum/images/hidden.gif | Bin 0 -> 61 bytes templates/default/forum/images/hot_topic.gif | Bin 0 -> 169 bytes .../default/forum/images/hot_topic_no.gif | Bin 0 -> 169 bytes templates/default/forum/images/k.JPG | Bin 0 -> 1056 bytes templates/default/forum/images/lastpost.gif | Bin 0 -> 61 bytes templates/default/forum/images/logo.jpg | Bin 0 -> 23699 bytes templates/default/forum/images/nav.gif | Bin 0 -> 113 bytes templates/default/forum/images/nav_m.gif | Bin 0 -> 53 bytes templates/default/forum/images/new_topic.gif | Bin 0 -> 169 bytes templates/default/forum/images/options.gif | Bin 0 -> 1567 bytes templates/default/forum/images/p_delete.gif | Bin 0 -> 1781 bytes templates/default/forum/images/p_edit.gif | Bin 0 -> 1813 bytes templates/default/forum/images/p_mq_add.gif | Bin 0 -> 1683 bytes templates/default/forum/images/q.JPG | Bin 0 -> 1138 bytes templates/default/forum/images/rating.gif | Bin 0 -> 1134 bytes templates/default/forum/images/rep_m.gif | Bin 0 -> 136 bytes templates/default/forum/images/rep_minus.gif | Bin 0 -> 122 bytes templates/default/forum/images/rep_p.gif | Bin 0 -> 140 bytes templates/default/forum/images/rep_plus.gif | Bin 0 -> 143 bytes templates/default/forum/images/reply.gif | Bin 0 -> 1936 bytes templates/default/forum/images/s_reply.gif | Bin 0 -> 2318 bytes templates/default/forum/images/spacer.gif | Bin 0 -> 43 bytes templates/default/forum/images/stats.gif | Bin 0 -> 478 bytes templates/default/forum/images/t_new.gif | Bin 0 -> 2248 bytes templates/default/forum/images/t_pinned.gif | Bin 0 -> 85 bytes .../default/forum/images/to_post_off.gif | Bin 0 -> 64 bytes templates/default/forum/images/topic.gif | Bin 0 -> 169 bytes .../default/forum/images/topic_title.gif | Bin 0 -> 817 bytes templates/default/forum/images/warn0.gif | Bin 0 -> 213 bytes templates/default/forum/images/warn1.gif | Bin 0 -> 301 bytes templates/default/forum/images/warn2.gif | Bin 0 -> 315 bytes templates/default/forum/images/warn3.gif | Bin 0 -> 314 bytes templates/default/forum/images/warn4.gif | Bin 0 -> 302 bytes templates/default/forum/images/warn5.gif | Bin 0 -> 213 bytes templates/default/forum/images/warn_add.gif | Bin 0 -> 120 bytes templates/default/forum/images/warn_m.gif | Bin 0 -> 64 bytes templates/default/forum/images/warn_minus.gif | Bin 0 -> 121 bytes templates/default/forum/images/warn_p.gif | Bin 0 -> 72 bytes templates/default/forum/index.tpl | 42 + templates/default/forum/info.tpl | 1 + templates/default/forum/login.tpl | 93 + templates/default/forum/main.tpl | 22 + templates/default/forum/moveposts.tpl | 29 + templates/default/forum/movetopic.tpl | 29 + templates/default/forum/msg.tpl | 18 + templates/default/forum/navigation.tpl | 1 + templates/default/forum/poll.tpl | 34 + templates/default/forum/post.tpl | 24 + templates/default/forum/print/post.tpl | 1 + templates/default/forum/print/topic.tpl | 91 + templates/default/forum/report.tpl | 36 + templates/default/forum/search.tpl | 39 + templates/default/forum/send_frend.tpl | 48 + templates/default/forum/stats.tpl | 22 + templates/default/forum/topic.tpl | 50 + templates/default/forum/topics.tpl | 9 + templates/default/forum_last.tpl | 13 + templates/default/forum_last_list.tpl | 6 + templates/default/fullstory.tpl | 18 + templates/default/images/add_fav.png | Bin 0 -> 406 bytes templates/default/images/ajax-loader.gif | Bin 0 -> 723 bytes templates/default/images/asc.gif | Bin 0 -> 76 bytes templates/default/images/banner.gif | Bin 0 -> 10159 bytes templates/default/images/bg.jpg | Bin 0 -> 9740 bytes templates/default/images/bg_foot.gif | Bin 0 -> 423 bytes templates/default/images/bg_footer.gif | Bin 0 -> 262 bytes templates/default/images/bg_mb - .gif | Bin 0 -> 154 bytes templates/default/images/bg_mb.gif | Bin 0 -> 154 bytes templates/default/images/button_out.png | Bin 0 -> 1358 bytes templates/default/images/comm_down.gif | Bin 0 -> 197 bytes templates/default/images/comm_down_off.gif | Bin 0 -> 894 bytes templates/default/images/comm_up.gif | Bin 0 -> 139 bytes templates/default/images/comm_up_off.gif | Bin 0 -> 887 bytes templates/default/images/del_fav.png | Bin 0 -> 251 bytes templates/default/images/desc.gif | Bin 0 -> 76 bytes templates/default/images/dialog-icons.png | Bin 0 -> 3217 bytes templates/default/images/dialog-icons_h.png | Bin 0 -> 3217 bytes templates/default/images/dots.png | Bin 0 -> 3576 bytes templates/default/images/dow.gif | Bin 0 -> 811 bytes templates/default/images/down.gif | Bin 0 -> 836 bytes templates/default/images/down.png | Bin 0 -> 772 bytes templates/default/images/down_off.png | Bin 0 -> 1096 bytes templates/default/images/editstore.png | Bin 0 -> 543 bytes templates/default/images/fullexpand.gif | Bin 0 -> 1312 bytes templates/default/images/key.png | Bin 0 -> 3543 bytes templates/default/images/loader.big.black.gif | Bin 0 -> 4015 bytes templates/default/images/logo.png | Bin 0 -> 79896 bytes templates/default/images/logo_year.gif | Bin 0 -> 326875 bytes templates/default/images/newslist_minus.gif | Bin 0 -> 842 bytes templates/default/images/newslist_plus.gif | Bin 0 -> 843 bytes templates/default/images/noavatar.png | Bin 0 -> 10983 bytes templates/default/images/nophoto.png | Bin 0 -> 9479 bytes templates/default/images/outlines/beveled.png | Bin 0 -> 1898 bytes .../default/images/outlines/drop-shadow.png | Bin 0 -> 2022 bytes .../default/images/outlines/outer-glow.png | Bin 0 -> 5887 bytes .../default/images/outlines/rounded-black.png | Bin 0 -> 5764 bytes .../default/images/outlines/rounded-white.png | Bin 0 -> 2012 bytes templates/default/images/partner.gif | Bin 0 -> 287 bytes templates/default/images/poll1.gif | Bin 0 -> 809 bytes templates/default/images/poll2.gif | Bin 0 -> 809 bytes templates/default/images/poll3.gif | Bin 0 -> 809 bytes templates/default/images/poll4.gif | Bin 0 -> 809 bytes templates/default/images/poll5.gif | Bin 0 -> 809 bytes templates/default/images/read.gif | Bin 0 -> 555 bytes templates/default/images/repa_adm.png | Bin 0 -> 827 bytes templates/default/images/repa_adm_p.png | Bin 0 -> 774 bytes templates/default/images/repa_dn.gif | Bin 0 -> 136 bytes templates/default/images/repa_up.gif | Bin 0 -> 140 bytes templates/default/images/resize.gif | Bin 0 -> 70 bytes templates/default/images/rss_icon.gif | Bin 0 -> 401 bytes templates/default/images/send.gif | Bin 0 -> 590 bytes templates/default/images/send.png | Bin 0 -> 570 bytes templates/default/images/sload.gif | Bin 0 -> 1849 bytes templates/default/images/spoiler-minus.gif | Bin 0 -> 61 bytes templates/default/images/spoiler-plus.gif | Bin 0 -> 62 bytes templates/default/images/stripe.gif | Bin 0 -> 46 bytes templates/default/images/submit.png | Bin 0 -> 570 bytes templates/default/images/title_bg.gif | Bin 0 -> 154 bytes templates/default/images/topmenu_bgg.png | Bin 0 -> 167 bytes templates/default/images/topmenu_over_bgg.png | Bin 0 -> 169 bytes templates/default/images/torrow.gif | Bin 0 -> 532 bytes templates/default/images/unread.gif | Bin 0 -> 339 bytes templates/default/images/up.gif | Bin 0 -> 836 bytes templates/default/images/up.png | Bin 0 -> 750 bytes templates/default/images/up_off.png | Bin 0 -> 1090 bytes templates/default/images/watermark.png | Bin 0 -> 23166 bytes templates/default/info.tpl | 2 + templates/default/login.tpl | 47 + templates/default/lostpassword.tpl | 21 + templates/default/main.tpl | 76 + templates/default/navigation.tpl | 3 + templates/default/newslist/main.tpl | 20 + templates/default/newslist/newslist.tpl | 17 + templates/default/online.tpl | 6 + templates/default/pm.tpl | 37 + templates/default/poll.tpl | 20 + templates/default/preview.css | 401 ++++ templates/default/registration.tpl | 82 + templates/default/reputation.tpl | 6 + templates/default/search.tpl | 13 + templates/default/searchresult.tpl | 63 + templates/default/shortstory.tpl | 24 + templates/default/static.tpl | 4 + templates/default/stats.tpl | 41 + templates/default/table.tpl | 30 + templates/default/tableshow.tpl | 3 + templates/default/tableview.tpl | 4 + templates/default/torrent.tpl | 11 + templates/default/tracker.tpl | 16 + templates/default/userinfo.tpl | 57 + templates/default/users.tpl | 22 + templates/info.tpl | 7 + templates/login.tpl | 36 + templates/offline.tpl | 23 + templates/opensearch.tpl | 19 + templates/redirect.tpl | 20 + templates/smartphone/addcomments.tpl | 34 + templates/smartphone/addnews.tpl | 0 templates/smartphone/chat/block.tpl | 41 + templates/smartphone/chat/mchatblock.tpl | 48 + templates/smartphone/chat/message.tpl | 20 + templates/smartphone/comments.tpl | 10 + templates/smartphone/css/engine.css | 334 ++++ templates/smartphone/css/header.png | Bin 0 -> 171 bytes templates/smartphone/css/panel.png | Bin 0 -> 117 bytes templates/smartphone/css/rss_icon.gif | Bin 0 -> 401 bytes templates/smartphone/css/style.css | 139 ++ templates/smartphone/feedback.tpl | 42 + templates/smartphone/forum_last.tpl | 9 + templates/smartphone/forum_last_list.tpl | 6 + templates/smartphone/fullstory.tpl | 15 + templates/smartphone/images/asc.gif | Bin 0 -> 76 bytes templates/smartphone/images/desc.gif | Bin 0 -> 76 bytes templates/smartphone/images/fullexpand.gif | Bin 0 -> 209 bytes templates/smartphone/images/minus_fav.gif | Bin 0 -> 122 bytes templates/smartphone/images/no-icon.gif | Bin 0 -> 2040 bytes templates/smartphone/images/plus_fav.gif | Bin 0 -> 143 bytes templates/smartphone/images/poll1.gif | Bin 0 -> 809 bytes templates/smartphone/images/poll2.gif | Bin 0 -> 809 bytes templates/smartphone/images/poll3.gif | Bin 0 -> 809 bytes templates/smartphone/images/poll4.gif | Bin 0 -> 809 bytes templates/smartphone/images/poll5.gif | Bin 0 -> 809 bytes templates/smartphone/images/read.gif | Bin 0 -> 555 bytes templates/smartphone/images/resize.gif | Bin 0 -> 70 bytes templates/smartphone/images/send.gif | Bin 0 -> 590 bytes templates/smartphone/images/spacer.gif | Bin 0 -> 43 bytes templates/smartphone/images/unread.gif | Bin 0 -> 339 bytes templates/smartphone/info.tpl | 5 + templates/smartphone/login.tpl | 24 + templates/smartphone/lostpassword.tpl | 15 + templates/smartphone/main.tpl | 36 + templates/smartphone/navigation.tpl | 1 + templates/smartphone/online.tpl | 12 + templates/smartphone/pm.tpl | 62 + templates/smartphone/poll.tpl | 10 + templates/smartphone/registration.tpl | 75 + templates/smartphone/search.tpl | 9 + templates/smartphone/searchresult.tpl | 14 + templates/smartphone/shortstory.tpl | 10 + templates/smartphone/static.tpl | 5 + templates/smartphone/stats.tpl | 120 ++ templates/smartphone/tagscloud.tpl | 0 templates/smartphone/torrent.tpl | 11 + templates/smartphone/userinfo.tpl | 106 ++ templates/smartphone/vote.tpl | 0 uploads/rating/game.png | Bin 0 -> 4392 bytes uploads/rating/kinopoisk.png | Bin 0 -> 2016 bytes uploads/rating/rating.png | Bin 0 -> 5430 bytes uploads/rating/star.png | Bin 0 -> 2960 bytes 707 files changed, 55878 insertions(+) create mode 100644 404.php create mode 100644 control.php create mode 100644 download.php create mode 100644 favicon.ico create mode 100644 index.php create mode 100644 language/Russian/adminpanel.lng create mode 100644 language/Russian/adminpanel_repa.lng create mode 100644 language/Russian/chat.lng create mode 100644 language/Russian/friends.lng create mode 100644 language/Russian/help.lng create mode 100644 language/Russian/img.lng create mode 100644 language/Russian/rating.lng create mode 100644 language/Russian/table.lng create mode 100644 language/Russian/website.lng create mode 100644 language/Russian/website_repa.lng create mode 100644 out.php create mode 100644 rating.php create mode 100644 robots.txt create mode 100644 schema.sql create mode 100644 system/ajax/addcomments.php create mode 100644 system/ajax/bbcode.php create mode 100644 system/ajax/bbcodes.js create mode 100644 system/ajax/categajax.php create mode 100644 system/ajax/chat.php create mode 100644 system/ajax/clean.php create mode 100644 system/ajax/commentdelete.php create mode 100644 system/ajax/editcomments.php create mode 100644 system/ajax/favorites.php create mode 100644 system/ajax/find_relates.php create mode 100644 system/ajax/keywords.php create mode 100644 system/ajax/newsletter.php create mode 100644 system/ajax/newslist.php create mode 100644 system/ajax/poll.php create mode 100644 system/ajax/rating.php create mode 100644 system/ajax/rebuild.php create mode 100644 system/ajax/registration.php create mode 100644 system/ajax/reputation.php create mode 100644 system/ajax/subscribe.php create mode 100644 system/ajax/torrent.php create mode 100644 system/ajax/upload.form.php create mode 100644 system/ajax/upload.php create mode 100644 system/ajax/voted.php create mode 100644 system/classes/JSON.php create mode 100644 system/classes/cache.class.php create mode 100644 system/classes/captcha.class.php create mode 100644 system/classes/comments.class.php create mode 100644 system/classes/download.class.php create mode 100644 system/classes/flashplayer/audio.txt create mode 100644 system/classes/flashplayer/uppod.swf create mode 100644 system/classes/flashplayer/video.txt create mode 100644 system/classes/flashplayer/youtube.txt create mode 100644 system/classes/google.class.php create mode 100644 system/classes/mail.class.php create mode 100644 system/classes/mysql.php create mode 100644 system/classes/navigation.class.php create mode 100644 system/classes/parse.class.php create mode 100644 system/classes/rss.class.php create mode 100644 system/classes/sphinx.api.php create mode 100644 system/classes/swfupload/cancelbutton.gif create mode 100644 system/classes/swfupload/fileprogress.js create mode 100644 system/classes/swfupload/handlers.js create mode 100644 system/classes/swfupload/swfupload.js create mode 100644 system/classes/swfupload/swfupload.queue.js create mode 100644 system/classes/swfupload/swfupload.swf create mode 100644 system/classes/swfupload/swfupload_f8.swf create mode 100644 system/classes/swfupload/swfupload_f9.swf create mode 100644 system/classes/templates.class.php create mode 100644 system/classes/thumb.class.php create mode 100644 system/classes/torrent.class.php create mode 100644 system/cron.php create mode 100644 system/engine.php create mode 100644 system/file.php create mode 100644 system/forum/action/addpost.php create mode 100644 system/forum/action/addtopic.php create mode 100644 system/forum/action/forum.php create mode 100644 system/forum/action/moderation.php create mode 100644 system/forum/action/post.php create mode 100644 system/forum/action/topic.php create mode 100644 system/forum/ajax/addpost.php create mode 100644 system/forum/ajax/dle_forum.js create mode 100644 system/forum/ajax/editpost.php create mode 100644 system/forum/ajax/init.php create mode 100644 system/forum/ajax/poll.php create mode 100644 system/forum/ajax/post.preview.php create mode 100644 system/forum/ajax/uploads.form.php create mode 100644 system/forum/images/post_icons/icon1.gif create mode 100644 system/forum/images/post_icons/icon10.gif create mode 100644 system/forum/images/post_icons/icon11.gif create mode 100644 system/forum/images/post_icons/icon12.gif create mode 100644 system/forum/images/post_icons/icon13.gif create mode 100644 system/forum/images/post_icons/icon14.gif create mode 100644 system/forum/images/post_icons/icon2.gif create mode 100644 system/forum/images/post_icons/icon3.gif create mode 100644 system/forum/images/post_icons/icon4.gif create mode 100644 system/forum/images/post_icons/icon5.gif create mode 100644 system/forum/images/post_icons/icon6.gif create mode 100644 system/forum/images/post_icons/icon7.gif create mode 100644 system/forum/images/post_icons/icon8.gif create mode 100644 system/forum/images/post_icons/icon9.gif create mode 100644 system/forum/language/English/admin.lng create mode 100644 system/forum/language/English/forum.lng create mode 100644 system/forum/language/Russian/admin.lng create mode 100644 system/forum/language/Russian/forum.lng create mode 100644 system/forum/main.php create mode 100644 system/forum/sources/category.php create mode 100644 system/forum/sources/components/attachment.php create mode 100644 system/forum/sources/components/bbcode.php create mode 100644 system/forum/sources/components/edit_options.php create mode 100644 system/forum/sources/components/functions.php create mode 100644 system/forum/sources/components/init.php create mode 100644 system/forum/sources/components/licence.odf create mode 100644 system/forum/sources/components/navigation.php create mode 100644 system/forum/sources/components/poll.php create mode 100644 system/forum/sources/components/text_skin.php create mode 100644 system/forum/sources/modules/getnew.php create mode 100644 system/forum/sources/modules/search.php create mode 100644 system/forum/sources/modules/stats.php create mode 100644 system/forum/sources/modules/subscription.php create mode 100644 system/forum/sources/modules/uploads.php create mode 100644 system/forum/sources/shapeshifter/forum_posts.php create mode 100644 system/forum/sources/shapeshifter/forum_rss.php create mode 100644 system/forum/sources/shapeshifter/showallposts.php create mode 100644 system/forum/sources/showforum.php create mode 100644 system/forum/sources/showposts.php create mode 100644 system/forum/sources/showtopic.php create mode 100644 system/forum/sources/showtopics.php create mode 100644 system/forum/textscreen.css create mode 100644 system/forum/textversion.php create mode 100644 system/images.php create mode 100644 system/inc/addnews.php create mode 100644 system/inc/blockip.php create mode 100644 system/inc/categories.php create mode 100644 system/inc/chat.php create mode 100644 system/inc/clean.php create mode 100644 system/inc/editnews.php create mode 100644 system/inc/editusers.php create mode 100644 system/inc/email.php create mode 100644 system/inc/files.php create mode 100644 system/inc/forum.php create mode 100644 system/inc/forum/email.php create mode 100644 system/inc/forum/form.php create mode 100644 system/inc/forum/forum.php create mode 100644 system/inc/forum/functions.php create mode 100644 system/inc/forum/ico/Usergroup.png create mode 100644 system/inc/forum/ico/category.png create mode 100644 system/inc/forum/ico/content.png create mode 100644 system/inc/forum/ico/discuss.png create mode 100644 system/inc/forum/ico/dle_forum.png create mode 100644 system/inc/forum/ico/filebrowser_action.gif create mode 100644 system/inc/forum/ico/filebrowser_action2.gif create mode 100644 system/inc/forum/ico/forum.png create mode 100644 system/inc/forum/ico/global.png create mode 100644 system/inc/forum/ico/help.png create mode 100644 system/inc/forum/ico/index.html create mode 100644 system/inc/forum/ico/licence.png create mode 100644 system/inc/forum/ico/modules.png create mode 100644 system/inc/forum/ico/mset.png create mode 100644 system/inc/forum/ico/news.png create mode 100644 system/inc/forum/ico/preventions.png create mode 100644 system/inc/forum/ico/rank.png create mode 100644 system/inc/forum/ico/safety.png create mode 100644 system/inc/forum/ico/service.png create mode 100644 system/inc/forum/ico/show.png create mode 100644 system/inc/forum/ico/speed.png create mode 100644 system/inc/forum/ico/tools.png create mode 100644 system/inc/forum/ico/uploads.png create mode 100644 system/inc/forum/ico/usersgroup.png create mode 100644 system/inc/forum/init.class.php create mode 100644 system/inc/forum/service.php create mode 100644 system/inc/forum/table.php create mode 100644 system/inc/forum/tools.php create mode 100644 system/inc/forum/usergroup.php create mode 100644 system/inc/googlemap.php create mode 100644 system/inc/include/functions.inc.php create mode 100644 system/inc/include/init.php create mode 100644 system/inc/include/inserttag.php create mode 100644 system/inc/iptools.php create mode 100644 system/inc/main.php create mode 100644 system/inc/mass_static_actions.php create mode 100644 system/inc/mass_user_actions.php create mode 100644 system/inc/massactions.php create mode 100644 system/inc/newsimg/addimg.php create mode 100644 system/inc/newsimg/doaddimg.php create mode 100644 system/inc/newsimg/doeditimg.php create mode 100644 system/inc/newsimg/editimg.php create mode 100644 system/inc/newsletter.php create mode 100644 system/inc/options.php create mode 100644 system/inc/preview.php create mode 100644 system/inc/rebuild.php create mode 100644 system/inc/repa.php create mode 100644 system/inc/repa/repa_control.php create mode 100644 system/inc/repa/repa_delete.php create mode 100644 system/inc/repa/repa_edit.php create mode 100644 system/inc/repa/repa_main.php create mode 100644 system/inc/repa/repa_options.php create mode 100644 system/inc/repa/repa_save.php create mode 100644 system/inc/repa/repa_vminus.php create mode 100644 system/inc/repa/repa_vplus.php create mode 100644 system/inc/static.php create mode 100644 system/inc/table.php create mode 100644 system/inc/usergroup.php create mode 100644 system/inc/wordfilter.php create mode 100644 system/init.php create mode 100644 system/js/highslide.js create mode 100644 system/js/jquery.js create mode 100644 system/js/main.js create mode 100644 system/modules/addcomments.php create mode 100644 system/modules/addimg.php create mode 100644 system/modules/addnews.php create mode 100644 system/modules/antibot.php create mode 100644 system/modules/banned.php create mode 100644 system/modules/bbcode.php create mode 100644 system/modules/chat/addmess.php create mode 100644 system/modules/chat/ajax.js create mode 100644 system/modules/chat/block.php create mode 100644 system/modules/chat/chat.class.php create mode 100644 system/modules/chat/modules.php create mode 100644 system/modules/comments-last.php create mode 100644 system/modules/favorites.php create mode 100644 system/modules/feedback.php create mode 100644 system/modules/fonts/eva.png create mode 100644 system/modules/forum/show.last.php create mode 100644 system/modules/functions.php create mode 100644 system/modules/gzip.php create mode 100644 system/modules/lastcomments.php create mode 100644 system/modules/lostpassword.php create mode 100644 system/modules/newsimg.php create mode 100644 system/modules/newslist.php create mode 100644 system/modules/online.php create mode 100644 system/modules/pm.php create mode 100644 system/modules/pm_alert.php create mode 100644 system/modules/poll.php create mode 100644 system/modules/profile.php create mode 100644 system/modules/register.php create mode 100644 system/modules/reputation.php create mode 100644 system/modules/rss.php create mode 100644 system/modules/search.php create mode 100644 system/modules/show.full.php create mode 100644 system/modules/show.short.php create mode 100644 system/modules/sitelogin.php create mode 100644 system/modules/static.php create mode 100644 system/modules/stats.php create mode 100644 system/modules/table.php create mode 100644 system/modules/toptables.php create mode 100644 system/modules/torrent/list.php create mode 100644 system/modules/torrent/upload.php create mode 100644 system/modules/users.php create mode 100644 system/offline.php create mode 100644 system/opensearch.php create mode 100644 system/preview.php create mode 100644 system/skins/bbcodes/color.html create mode 100644 system/skins/bbcodes/images/b.gif create mode 100644 system/skins/bbcodes/images/bg.gif create mode 100644 system/skins/bbcodes/images/brkspace.gif create mode 100644 system/skins/bbcodes/images/c.gif create mode 100644 system/skins/bbcodes/images/close.gif create mode 100644 system/skins/bbcodes/images/code.gif create mode 100644 system/skins/bbcodes/images/color.gif create mode 100644 system/skins/bbcodes/images/email.gif create mode 100644 system/skins/bbcodes/images/emo.gif create mode 100644 system/skins/bbcodes/images/fast_hide.gif create mode 100644 system/skins/bbcodes/images/fast_hide1.gif create mode 100644 system/skins/bbcodes/images/flash.gif create mode 100644 system/skins/bbcodes/images/hide.gif create mode 100644 system/skins/bbcodes/images/i.gif create mode 100644 system/skins/bbcodes/images/image.gif create mode 100644 system/skins/bbcodes/images/l.gif create mode 100644 system/skins/bbcodes/images/leech.gif create mode 100644 system/skins/bbcodes/images/link.gif create mode 100644 system/skins/bbcodes/images/mp.gif create mode 100644 system/skins/bbcodes/images/mp3.gif create mode 100644 system/skins/bbcodes/images/page.gif create mode 100644 system/skins/bbcodes/images/quote.gif create mode 100644 system/skins/bbcodes/images/r.gif create mode 100644 system/skins/bbcodes/images/rating.gif create mode 100644 system/skins/bbcodes/images/s.gif create mode 100644 system/skins/bbcodes/images/screens.gif create mode 100644 system/skins/bbcodes/images/spoiler.gif create mode 100644 system/skins/bbcodes/images/translit.gif create mode 100644 system/skins/bbcodes/images/typograf.gif create mode 100644 system/skins/bbcodes/images/u.gif create mode 100644 system/skins/bbcodes/images/upload.gif create mode 100644 system/skins/bbcodes/images/youtube.gif create mode 100644 system/skins/bbcodes/rating.gif create mode 100644 system/skins/calendar-blue.css create mode 100644 system/skins/calendar.js create mode 100644 system/skins/default.js create mode 100644 system/skins/default.skin.php create mode 100644 system/skins/images/ads.png create mode 100644 system/skins/images/allnews.png create mode 100644 system/skins/images/allset.png create mode 100644 system/skins/images/banusers.png create mode 100644 system/skins/images/block_birth.jpg create mode 100644 system/skins/images/block_new.jpg create mode 100644 system/skins/images/blockip.png create mode 100644 system/skins/images/browser_action.gif create mode 100644 system/skins/images/bttn.gif create mode 100644 system/skins/images/cats.png create mode 100644 system/skins/images/ch_pass.png create mode 100644 system/skins/images/clean.png create mode 100644 system/skins/images/close-pm.png create mode 100644 system/skins/images/comments.png create mode 100644 system/skins/images/conf_images.png create mode 100644 system/skins/images/db_opt.png create mode 100644 system/skins/images/db_optimize.gif create mode 100644 system/skins/images/db_repair.gif create mode 100644 system/skins/images/db_save.gif create mode 100644 system/skins/images/dbset.png create mode 100644 system/skins/images/dle_forum.PNG create mode 100644 system/skins/images/dle_smf.gif create mode 100644 system/skins/images/email.png create mode 100644 system/skins/images/error.png create mode 100644 system/skins/images/finish.png create mode 100644 system/skins/images/folder.png create mode 100644 system/skins/images/fset.png create mode 100644 system/skins/images/general.png create mode 100644 system/skins/images/googlemap.png create mode 100644 system/skins/images/hide_img.png create mode 100644 system/skins/images/img.gif create mode 100644 system/skins/images/info.png create mode 100644 system/skins/images/iptools.png create mode 100644 system/skins/images/iset.png create mode 100644 system/skins/images/key.png create mode 100644 system/skins/images/lbg.gif create mode 100644 system/skins/images/led_gray.gif create mode 100644 system/skins/images/led_green.gif create mode 100644 system/skins/images/line.gif create mode 100644 system/skins/images/line_bg.gif create mode 100644 system/skins/images/link.jpg create mode 100644 system/skins/images/links.png create mode 100644 system/skins/images/mail.png create mode 100644 system/skins/images/mchat.png create mode 100644 system/skins/images/mline.gif create mode 100644 system/skins/images/mset.png create mode 100644 system/skins/images/news.png create mode 100644 system/skins/images/next.png create mode 100644 system/skins/images/noavatar.png create mode 100644 system/skins/images/now.png create mode 100644 system/skins/images/nset.png create mode 100644 system/skins/images/ok.png create mode 100644 system/skins/images/p1.gif create mode 100644 system/skins/images/pingationmod.png create mode 100644 system/skins/images/post_template.png create mode 100644 system/skins/images/preview.png create mode 100644 system/skins/images/pset.png create mode 100644 system/skins/images/rating.png create mode 100644 system/skins/images/rating/about.png create mode 100644 system/skins/images/rating/color.png create mode 100644 system/skins/images/rating/num.png create mode 100644 system/skins/images/rating/options.png create mode 100644 system/skins/images/rating/other.png create mode 100644 system/skins/images/rating/rating.png create mode 100644 system/skins/images/rating/txt.png create mode 100644 system/skins/images/referer.png create mode 100644 system/skins/images/rep.png create mode 100644 system/skins/images/repa_a_opts.png create mode 100644 system/skins/images/repa_b_opts.png create mode 100644 system/skins/images/repa_control.png create mode 100644 system/skins/images/repa_ct_opts.png create mode 100644 system/skins/images/repa_g_opts.png create mode 100644 system/skins/images/repa_general.png create mode 100644 system/skins/images/repa_h_opts.png create mode 100644 system/skins/images/repa_info.png create mode 100644 system/skins/images/repa_logs.png create mode 100644 system/skins/images/repa_m_opts.png create mode 100644 system/skins/images/repa_opt.png create mode 100644 system/skins/images/repa_p_opts.png create mode 100644 system/skins/images/rss.gif create mode 100644 system/skins/images/rules.png create mode 100644 system/skins/images/send.png create mode 100644 system/skins/images/settings.jpg create mode 100644 system/skins/images/shield.png create mode 100644 system/skins/images/smartphone.jpg create mode 100644 system/skins/images/spset.png create mode 100644 system/skins/images/sred.png create mode 100644 system/skins/images/stop.png create mode 100644 system/skins/images/table/big_alert.png create mode 100644 system/skins/images/table/big_arrow-down.png create mode 100644 system/skins/images/table/big_ok.png create mode 100644 system/skins/images/table/big_remove.png create mode 100644 system/skins/images/table/options.png create mode 100644 system/skins/images/table/other.png create mode 100644 system/skins/images/table/small_alert.png create mode 100644 system/skins/images/table/small_arrow-down.png create mode 100644 system/skins/images/table/small_ok.png create mode 100644 system/skins/images/table/small_remove.png create mode 100644 system/skins/images/tb_lb.gif create mode 100644 system/skins/images/tb_left.gif create mode 100644 system/skins/images/tb_lt.gif create mode 100644 system/skins/images/tb_rb.gif create mode 100644 system/skins/images/tb_right.gif create mode 100644 system/skins/images/tb_rt.gif create mode 100644 system/skins/images/tb_tb.gif create mode 100644 system/skins/images/tb_top.gif create mode 100644 system/skins/images/tl_active.gif create mode 100644 system/skins/images/tl_inactive.gif create mode 100644 system/skins/images/tl_lb.gif create mode 100644 system/skins/images/tl_lo.gif create mode 100644 system/skins/images/tl_lu.gif create mode 100644 system/skins/images/tl_oo.gif create mode 100644 system/skins/images/tl_rb.gif create mode 100644 system/skins/images/tl_ro.gif create mode 100644 system/skins/images/tl_ru.gif create mode 100644 system/skins/images/tl_ub.gif create mode 100644 system/skins/images/tmpl.png create mode 100644 system/skins/images/tools.png create mode 100644 system/skins/images/top10news.png create mode 100644 system/skins/images/tr_active.gif create mode 100644 system/skins/images/tr_inactive.gif create mode 100644 system/skins/images/user_edit.png create mode 100644 system/skins/images/users.png create mode 100644 system/skins/images/usersgroup.png create mode 100644 system/skins/images/uset.png create mode 100644 system/skins/images/video.png create mode 100644 system/skins/images/votes.png create mode 100644 system/skins/style.css create mode 100644 system/skins/tabs.js create mode 100644 templates/banned.tpl create mode 100644 templates/default/addnews.tpl create mode 100644 templates/default/bbcodes/b.gif create mode 100644 templates/default/bbcodes/bg.gif create mode 100644 templates/default/bbcodes/brkspace.gif create mode 100644 templates/default/bbcodes/c.gif create mode 100644 templates/default/bbcodes/close.gif create mode 100644 templates/default/bbcodes/code.gif create mode 100644 templates/default/bbcodes/color.gif create mode 100644 templates/default/bbcodes/color.html create mode 100644 templates/default/bbcodes/email.gif create mode 100644 templates/default/bbcodes/emo.gif create mode 100644 templates/default/bbcodes/flash.gif create mode 100644 templates/default/bbcodes/hide.gif create mode 100644 templates/default/bbcodes/hide1.gif create mode 100644 templates/default/bbcodes/hidetext.gif create mode 100644 templates/default/bbcodes/i.gif create mode 100644 templates/default/bbcodes/image.gif create mode 100644 templates/default/bbcodes/l.gif create mode 100644 templates/default/bbcodes/leech.gif create mode 100644 templates/default/bbcodes/link.gif create mode 100644 templates/default/bbcodes/mp.gif create mode 100644 templates/default/bbcodes/mp3.gif create mode 100644 templates/default/bbcodes/page.gif create mode 100644 templates/default/bbcodes/pbreak.gif create mode 100644 templates/default/bbcodes/quote.gif create mode 100644 templates/default/bbcodes/r.gif create mode 100644 templates/default/bbcodes/rating.gif create mode 100644 templates/default/bbcodes/s.gif create mode 100644 templates/default/bbcodes/screens.gif create mode 100644 templates/default/bbcodes/spoiler.gif create mode 100644 templates/default/bbcodes/tor.gif create mode 100644 templates/default/bbcodes/translit.gif create mode 100644 templates/default/bbcodes/u.gif create mode 100644 templates/default/bbcodes/upload.gif create mode 100644 templates/default/bbcodes/youtube.gif create mode 100644 templates/default/chat/block.tpl create mode 100644 templates/default/chat/message.tpl create mode 100644 templates/default/comments/addcomments.tpl create mode 100644 templates/default/comments/comments.tpl create mode 100644 templates/default/comments/info.tpl create mode 100644 templates/default/comments/main.tpl create mode 100644 templates/default/css/forum.css create mode 100644 templates/default/css/style.css create mode 100644 templates/default/fav/favorites.tpl create mode 100644 templates/default/fav/news.tpl create mode 100644 templates/default/feedback.tpl create mode 100644 templates/default/forum/addpost.tpl create mode 100644 templates/default/forum/addtopic.tpl create mode 100644 templates/default/forum/ajax_addpost.tpl create mode 100644 templates/default/forum/category.tpl create mode 100644 templates/default/forum/edittopic.tpl create mode 100644 templates/default/forum/forum.tpl create mode 100644 templates/default/forum/forums.tpl create mode 100644 templates/default/forum/images/Thumbs.db create mode 100644 templates/default/forum/images/b_forum.gif create mode 100644 templates/default/forum/images/closed.gif create mode 100644 templates/default/forum/images/closed_topic.gif create mode 100644 templates/default/forum/images/dlet_action_down.gif create mode 100644 templates/default/forum/images/dlet_closed.gif create mode 100644 templates/default/forum/images/dlet_delete.gif create mode 100644 templates/default/forum/images/dlet_edit.gif create mode 100644 templates/default/forum/images/dlet_headerback.gif create mode 100644 templates/default/forum/images/dlet_hot.gif create mode 100644 templates/default/forum/images/dlet_hot_no.gif create mode 100644 templates/default/forum/images/dlet_logo.gif create mode 100644 templates/default/forum/images/dlet_mq_add.gif create mode 100644 templates/default/forum/images/dlet_norm.gif create mode 100644 templates/default/forum/images/dlet_norm_no.gif create mode 100644 templates/default/forum/images/dlet_poll.gif create mode 100644 templates/default/forum/images/dlet_poll_no.gif create mode 100644 templates/default/forum/images/dlet_quote.gif create mode 100644 templates/default/forum/images/dlet_report.gif create mode 100644 templates/default/forum/images/dlet_stats.gif create mode 100644 templates/default/forum/images/dlet_sub.gif create mode 100644 templates/default/forum/images/dlet_tile_cat.gif create mode 100644 templates/default/forum/images/dlet_up.gif create mode 100644 templates/default/forum/images/f_new.gif create mode 100644 templates/default/forum/images/f_nonew.gif create mode 100644 templates/default/forum/images/fc_new.gif create mode 100644 templates/default/forum/images/fc_nonew.gif create mode 100644 templates/default/forum/images/hidden.gif create mode 100644 templates/default/forum/images/hot_topic.gif create mode 100644 templates/default/forum/images/hot_topic_no.gif create mode 100644 templates/default/forum/images/k.JPG create mode 100644 templates/default/forum/images/lastpost.gif create mode 100644 templates/default/forum/images/logo.jpg create mode 100644 templates/default/forum/images/nav.gif create mode 100644 templates/default/forum/images/nav_m.gif create mode 100644 templates/default/forum/images/new_topic.gif create mode 100644 templates/default/forum/images/options.gif create mode 100644 templates/default/forum/images/p_delete.gif create mode 100644 templates/default/forum/images/p_edit.gif create mode 100644 templates/default/forum/images/p_mq_add.gif create mode 100644 templates/default/forum/images/q.JPG create mode 100644 templates/default/forum/images/rating.gif create mode 100644 templates/default/forum/images/rep_m.gif create mode 100644 templates/default/forum/images/rep_minus.gif create mode 100644 templates/default/forum/images/rep_p.gif create mode 100644 templates/default/forum/images/rep_plus.gif create mode 100644 templates/default/forum/images/reply.gif create mode 100644 templates/default/forum/images/s_reply.gif create mode 100644 templates/default/forum/images/spacer.gif create mode 100644 templates/default/forum/images/stats.gif create mode 100644 templates/default/forum/images/t_new.gif create mode 100644 templates/default/forum/images/t_pinned.gif create mode 100644 templates/default/forum/images/to_post_off.gif create mode 100644 templates/default/forum/images/topic.gif create mode 100644 templates/default/forum/images/topic_title.gif create mode 100644 templates/default/forum/images/warn0.gif create mode 100644 templates/default/forum/images/warn1.gif create mode 100644 templates/default/forum/images/warn2.gif create mode 100644 templates/default/forum/images/warn3.gif create mode 100644 templates/default/forum/images/warn4.gif create mode 100644 templates/default/forum/images/warn5.gif create mode 100644 templates/default/forum/images/warn_add.gif create mode 100644 templates/default/forum/images/warn_m.gif create mode 100644 templates/default/forum/images/warn_minus.gif create mode 100644 templates/default/forum/images/warn_p.gif create mode 100644 templates/default/forum/index.tpl create mode 100644 templates/default/forum/info.tpl create mode 100644 templates/default/forum/login.tpl create mode 100644 templates/default/forum/main.tpl create mode 100644 templates/default/forum/moveposts.tpl create mode 100644 templates/default/forum/movetopic.tpl create mode 100644 templates/default/forum/msg.tpl create mode 100644 templates/default/forum/navigation.tpl create mode 100644 templates/default/forum/poll.tpl create mode 100644 templates/default/forum/post.tpl create mode 100644 templates/default/forum/print/post.tpl create mode 100644 templates/default/forum/print/topic.tpl create mode 100644 templates/default/forum/report.tpl create mode 100644 templates/default/forum/search.tpl create mode 100644 templates/default/forum/send_frend.tpl create mode 100644 templates/default/forum/stats.tpl create mode 100644 templates/default/forum/topic.tpl create mode 100644 templates/default/forum/topics.tpl create mode 100644 templates/default/forum_last.tpl create mode 100644 templates/default/forum_last_list.tpl create mode 100644 templates/default/fullstory.tpl create mode 100644 templates/default/images/add_fav.png create mode 100644 templates/default/images/ajax-loader.gif create mode 100644 templates/default/images/asc.gif create mode 100644 templates/default/images/banner.gif create mode 100644 templates/default/images/bg.jpg create mode 100644 templates/default/images/bg_foot.gif create mode 100644 templates/default/images/bg_footer.gif create mode 100644 templates/default/images/bg_mb - .gif create mode 100644 templates/default/images/bg_mb.gif create mode 100644 templates/default/images/button_out.png create mode 100644 templates/default/images/comm_down.gif create mode 100644 templates/default/images/comm_down_off.gif create mode 100644 templates/default/images/comm_up.gif create mode 100644 templates/default/images/comm_up_off.gif create mode 100644 templates/default/images/del_fav.png create mode 100644 templates/default/images/desc.gif create mode 100644 templates/default/images/dialog-icons.png create mode 100644 templates/default/images/dialog-icons_h.png create mode 100644 templates/default/images/dots.png create mode 100644 templates/default/images/dow.gif create mode 100644 templates/default/images/down.gif create mode 100644 templates/default/images/down.png create mode 100644 templates/default/images/down_off.png create mode 100644 templates/default/images/editstore.png create mode 100644 templates/default/images/fullexpand.gif create mode 100644 templates/default/images/key.png create mode 100644 templates/default/images/loader.big.black.gif create mode 100644 templates/default/images/logo.png create mode 100644 templates/default/images/logo_year.gif create mode 100644 templates/default/images/newslist_minus.gif create mode 100644 templates/default/images/newslist_plus.gif create mode 100644 templates/default/images/noavatar.png create mode 100644 templates/default/images/nophoto.png create mode 100644 templates/default/images/outlines/beveled.png create mode 100644 templates/default/images/outlines/drop-shadow.png create mode 100644 templates/default/images/outlines/outer-glow.png create mode 100644 templates/default/images/outlines/rounded-black.png create mode 100644 templates/default/images/outlines/rounded-white.png create mode 100644 templates/default/images/partner.gif create mode 100644 templates/default/images/poll1.gif create mode 100644 templates/default/images/poll2.gif create mode 100644 templates/default/images/poll3.gif create mode 100644 templates/default/images/poll4.gif create mode 100644 templates/default/images/poll5.gif create mode 100644 templates/default/images/read.gif create mode 100644 templates/default/images/repa_adm.png create mode 100644 templates/default/images/repa_adm_p.png create mode 100644 templates/default/images/repa_dn.gif create mode 100644 templates/default/images/repa_up.gif create mode 100644 templates/default/images/resize.gif create mode 100644 templates/default/images/rss_icon.gif create mode 100644 templates/default/images/send.gif create mode 100644 templates/default/images/send.png create mode 100644 templates/default/images/sload.gif create mode 100644 templates/default/images/spoiler-minus.gif create mode 100644 templates/default/images/spoiler-plus.gif create mode 100644 templates/default/images/stripe.gif create mode 100644 templates/default/images/submit.png create mode 100644 templates/default/images/title_bg.gif create mode 100644 templates/default/images/topmenu_bgg.png create mode 100644 templates/default/images/topmenu_over_bgg.png create mode 100644 templates/default/images/torrow.gif create mode 100644 templates/default/images/unread.gif create mode 100644 templates/default/images/up.gif create mode 100644 templates/default/images/up.png create mode 100644 templates/default/images/up_off.png create mode 100644 templates/default/images/watermark.png create mode 100644 templates/default/info.tpl create mode 100644 templates/default/login.tpl create mode 100644 templates/default/lostpassword.tpl create mode 100644 templates/default/main.tpl create mode 100644 templates/default/navigation.tpl create mode 100644 templates/default/newslist/main.tpl create mode 100644 templates/default/newslist/newslist.tpl create mode 100644 templates/default/online.tpl create mode 100644 templates/default/pm.tpl create mode 100644 templates/default/poll.tpl create mode 100644 templates/default/preview.css create mode 100644 templates/default/registration.tpl create mode 100644 templates/default/reputation.tpl create mode 100644 templates/default/search.tpl create mode 100644 templates/default/searchresult.tpl create mode 100644 templates/default/shortstory.tpl create mode 100644 templates/default/static.tpl create mode 100644 templates/default/stats.tpl create mode 100644 templates/default/table.tpl create mode 100644 templates/default/tableshow.tpl create mode 100644 templates/default/tableview.tpl create mode 100644 templates/default/torrent.tpl create mode 100644 templates/default/tracker.tpl create mode 100644 templates/default/userinfo.tpl create mode 100644 templates/default/users.tpl create mode 100644 templates/info.tpl create mode 100644 templates/login.tpl create mode 100644 templates/offline.tpl create mode 100644 templates/opensearch.tpl create mode 100644 templates/redirect.tpl create mode 100644 templates/smartphone/addcomments.tpl create mode 100644 templates/smartphone/addnews.tpl create mode 100644 templates/smartphone/chat/block.tpl create mode 100644 templates/smartphone/chat/mchatblock.tpl create mode 100644 templates/smartphone/chat/message.tpl create mode 100644 templates/smartphone/comments.tpl create mode 100644 templates/smartphone/css/engine.css create mode 100644 templates/smartphone/css/header.png create mode 100644 templates/smartphone/css/panel.png create mode 100644 templates/smartphone/css/rss_icon.gif create mode 100644 templates/smartphone/css/style.css create mode 100644 templates/smartphone/feedback.tpl create mode 100644 templates/smartphone/forum_last.tpl create mode 100644 templates/smartphone/forum_last_list.tpl create mode 100644 templates/smartphone/fullstory.tpl create mode 100644 templates/smartphone/images/asc.gif create mode 100644 templates/smartphone/images/desc.gif create mode 100644 templates/smartphone/images/fullexpand.gif create mode 100644 templates/smartphone/images/minus_fav.gif create mode 100644 templates/smartphone/images/no-icon.gif create mode 100644 templates/smartphone/images/plus_fav.gif create mode 100644 templates/smartphone/images/poll1.gif create mode 100644 templates/smartphone/images/poll2.gif create mode 100644 templates/smartphone/images/poll3.gif create mode 100644 templates/smartphone/images/poll4.gif create mode 100644 templates/smartphone/images/poll5.gif create mode 100644 templates/smartphone/images/read.gif create mode 100644 templates/smartphone/images/resize.gif create mode 100644 templates/smartphone/images/send.gif create mode 100644 templates/smartphone/images/spacer.gif create mode 100644 templates/smartphone/images/unread.gif create mode 100644 templates/smartphone/info.tpl create mode 100644 templates/smartphone/login.tpl create mode 100644 templates/smartphone/lostpassword.tpl create mode 100644 templates/smartphone/main.tpl create mode 100644 templates/smartphone/navigation.tpl create mode 100644 templates/smartphone/online.tpl create mode 100644 templates/smartphone/pm.tpl create mode 100644 templates/smartphone/poll.tpl create mode 100644 templates/smartphone/registration.tpl create mode 100644 templates/smartphone/search.tpl create mode 100644 templates/smartphone/searchresult.tpl create mode 100644 templates/smartphone/shortstory.tpl create mode 100644 templates/smartphone/static.tpl create mode 100644 templates/smartphone/stats.tpl create mode 100644 templates/smartphone/tagscloud.tpl create mode 100644 templates/smartphone/torrent.tpl create mode 100644 templates/smartphone/userinfo.tpl create mode 100644 templates/smartphone/vote.tpl create mode 100644 uploads/rating/game.png create mode 100644 uploads/rating/kinopoisk.png create mode 100644 uploads/rating/rating.png create mode 100644 uploads/rating/star.png diff --git a/404.php b/404.php new file mode 100644 index 0000000..8153121 --- /dev/null +++ b/404.php @@ -0,0 +1,30 @@ + +404 » {$config['home_title']} + + + + + + +
+

Óïñ...

+

Çàïðàøèâàåìàÿ ñòðàíèöà íå íàéäåíà +

Ê ñîæàëåíèþ, òàêîé ñòðàíèöû íå ñóùåñòâóåò.
Âåðîÿòíî, îíà áûëà óäàëåíà ñ ñåðâåðà, ëèáî åå çäåñü íèêîãäà íå áûëî.
+Âïðî÷åì, åñëè âû óâåðåíû, ÷òî ñòðàíèöà äîëæíà áûòü, ñîîáùèòå íàì îá ýòîì, ìû ðàçáåð¸ìñÿ.

Íà ãëàâíóþ

+
+ +HTML; + +?> \ No newline at end of file diff --git a/control.php b/control.php new file mode 100644 index 0000000..9bd39e5 --- /dev/null +++ b/control.php @@ -0,0 +1,56 @@ +close (); + msg ( "error", $lang['index_denied'], $lang['mod_not_found'] ); + } +} + +$db->close (); + +GzipOut (); +?> \ No newline at end of file diff --git a/download.php b/download.php new file mode 100644 index 0000000..4789e98 --- /dev/null +++ b/download.php @@ -0,0 +1,72 @@ +get ( "usergroup" ); +if (! $user_group) { + $user_group = array (); + $db->query ( "SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC" ); + while ( $row = $db->get_row () ) { + $user_group[$row['id']] = array (); + foreach ( $row as $key => $value ) { + $user_group[$row['id']][$key] = $value; + }} + $cache->set ( "usergroup", $user_group ); + $db->free (); +} + +if (! $is_logged) {$member_id['user_group'] = 5;} +if (! $user_group[$member_id['user_group']]['allow_files']) die ( "Access denied" ); + + $_SERVER['HTTP_REFERER'] = clean_url ( $_SERVER['HTTP_REFERER'] ); + $_SERVER['HTTP_HOST'] = clean_url ( $_SERVER['HTTP_HOST'] ); + if ($_SERVER['HTTP_HOST'] != $_SERVER['HTTP_REFERER']) { + @header ( 'Location: ' . $config['http_home_url'] ); + die ( "Access denied!!!

Please visit {$config['http_home_url']}" ); + } + +$id = intval ( $_REQUEST['id'] ); + +$d_time = time() + ($config['date_adjust'] * 60); +$row = $db->super_query ( "SELECT name, onserver, info_hash FROM " . PREFIX . "_torrents WHERE id ='$id'" ); + +if (! $row) die ( "Access denied" ); + +if(substr($row['name'], -8) == ".torrent") { + require_once( SYSTEM_DIR."/classes/torrent.class.php" ); + $tr_file = TORRENT_DIR.$row['onserver']; + $torrent = new Torrent($tr_file); + if($error = $torrent->errors()){ + } + else + { + $torrent->comment("http://".$_SERVER['HTTP_HOST']."/"); + + if (! $is_logged) { + $torrent->announce("http://".$_SERVER['HTTP_HOST'].":2710/announce"); //Äîáàâëÿåì äîïîëíèòåëüíûå àíîíñåðû, îñòàâëÿÿ óæå äîáàâëåííûå +} else { + $tpv = $member_id['torrent_pass_version']; + $tppk = $db->super_query("SELECT value FROM xbt_config WHERE name='torrent_pass_private_key'" ); + $site_key = $tppk['value']; + $passkey = sprintf('%08x%s', $member_id['user_id'], substr(sha1(sprintf('%s %d %d %s', $site_key, $tpv, $member_id['user_id'], $row['info_hash'])), 0, 24)); + $torrent->announce("http://".$_SERVER['HTTP_HOST'].":2710/{$passkey}/announce"); //Äîáàâëÿåì äîïîëíèòåëüíûå àíîíñåðû, îñòàâëÿÿ óæå äîáàâëåííûå + } + }} else die ( "Access denied" ); + +if ($config['files_count'] == "yes" and ! $file->range) $db->query ( "UPDATE " . PREFIX . "_torrents SET dcount=dcount+1 WHERE id ='$id'" ); + +$db->close (); + +$torrent->send($row['name']); +?> \ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f08a128e49a52fc524b4529665a728a740544657 GIT binary patch literal 3638 zcmeHId0bOh7XCm)DVCx|t=0usR8$a`)@oZV1+{K%ajCU4t;Jm{L3FCtg|VX@m!e`? zXT~}fS0aiVi%UT(GJ@=32?rA!wpZR0vkKW(!zW2`k&b{~h z&b{v(zzy#3^##{fcLs*jm%o39o!AwKqp=ZWvM%hf8)%T)G&k<`)T6z<9qUJEacg@R zQsSE-%RGgIIe;|JjzdeEkas*9dU-KY&Y!@=Wdm?(ivj6rH;{e727QAIrAc3*K0h7S zMiq*0wIKV*r`SA6i&m=%Dv1M$OM2kgDg#8<;_<_G78sQh*qYn0Vt^XS`^?xEp+`lQ z9kr#cxO>`)=pZf9u3tloQHPTAyHTEe5UYo1;B0L}bCU}NsVxvJ?S&12TG(xEIIu{M zdXWQH4w@k=Y(;uXDsJzbft7 z^&_>2rhQaZ4%AmVuz#VR;$wX(*1r$@9)bU-2>3kN+1)FF6sZXQ+bDoX$AmdjW zn`hTip1ra@80XHO!}l>p6x`M$>zlQZWnJQOuAxqZJ@Xi(f7^`W;v$p?_CQzTz|CE= zk(qG^ANe*wB2;rZOjUB1@)867GCl4KEcjw71C>$@(RDr)Ldv_l^|%;07!rw?%bTJH zEs&Mxch7v7ZLHr*}is(1;(;Qtc8lNZe(@_E0TuZVyKa--wnLJFI3W z8s$RdUN^&Hu|OoM1aF)MwY4=!_}qX}p%7UDBMchyYh<9PR-nE(1IzlV5fjAL5f|#~ z>rhx&fVEUR3e#;^-dBT-K@2ucWMFAF!OXb0TF~0sN_EKzo7F~fF+#0YW2L_a7PAfa zlgv0ZuM?tzb=Wjci51?fnuj;oi^AsTENPuj*4KZgT$dn>F~D@;Zcj79^R znwp^3H-cdpx(hmJG;~hY)sV5AWm3qbQi#Qs6z2+*m6btQQi7twLKGAffJfSS#4VcM z8-p3r!^VN-*$yYgqLuct+wG*K1vb)Sv)O2G3u&;B2D)pc!(?K4u$|7#!1B=(A3dEN zaia5MD3&_nrXy}TEqkx16Gx3k4RwPW%6cX0>+0zIYbho*P$(3{Uk*9(mq}$5cPXl> zs_5U5Kq3~C7K(8tt4D+i(o{}oQc+It@^X}uzS2@5^->7w41{!-ii?X;TvYTp3j}(2 z1U|EI*s~p2ql`j7hg}Dvl@05)KQs2fJpevt`fQ@ae9<2C2p;x|>NZjwWjF_UF^w*%i1SuyrYFSdNk^I!h= zbg#wI<7*bhT*}G${AdsF;N__-KIcECPnEnfF+AsJ5=`++><=sS6}4+W50I{KR}QzIGTN* ze|Yx06)e6t=KOLmG$2#+=_Uc`FA~BzQbpfpfT?l3K*h-_&_kkpCl? z4HY@$73_%ozO+JANU+CasN;imxSUT8kqPAm9`t)YfpaTdW?4oiload_template('forum/index.tpl'); +else $tpl->load_template('main.tpl'); + +$tpl->set('{toporders}', $toporders); +$tpl->set ( '{login}', $tpl->result['login_panel'] ); +$tpl->set ( '{info}', "
" . $tpl->result['info'] . "
" ); +$tpl->set('{online}', $tpl->result['online']); +$tpl->set ( '{minichat}', $tpl->result['minichat'] ); +$tpl->set('{forum}', $tpl->result['forum_table']); +$tpl->set ( '{comments-last}', $commentslast ); +$tpl->set('{category_menu}', $cat_menu); + +if ($allow_active_news AND $do != "userinfo") {$tpl->set ( '[sort]', "" );$tpl->set ( '{sort}', news_sort ( $do ) );$tpl->set ( '[/sort]', "" );} else {$tpl->set_block ( "'\\[sort\\](.*?)\\[/sort\\]'si", "" );} +if ($dle_module == "showfull" ) {if (is_array($cat_list) AND count($cat_list) > 1 ) $category_id = implode(",", $cat_list);} + +if (strpos ( $tpl->copy_template, "[category=" ) !== false) {$tpl->copy_template = preg_replace ( "#\\[category=(.+?)\\](.*?)\\[/category\\]#ies", "check_category('\\1', '\\2', '{$category_id}')", $tpl->copy_template );} +if (strpos ( $tpl->copy_template, "[not-category=" ) !== false) {$tpl->copy_template = preg_replace ( "#\\[not-category=(.+?)\\](.*?)\\[/not-category\\]#ies", "check_category('\\1', '\\2', '{$category_id}', false)", $tpl->copy_template );} + +$config['http_home_url'] = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) ); +$config['http_home_url'] = reset ( $config['http_home_url'] ); + +if (! $user_group[$member_id['user_group']]['allow_admin']) $config['admin_path'] = ""; + +$ajax .= << + + + + + +HTML; + +if (strpos ( $tpl->result['content'], "hs.expand" ) !== false or strpos ( $tpl->copy_template, "hs.expand" ) !== false or $pm_alert != "") { +$ajax .= << + +{$pm_alert} +HTML; +} +$tpl->set ( '{AJAX}', $ajax ); + +if(isset($_GET['category'])){ + $tpl->set('[newslist]',''); + $tpl->set('{newslist}', "/newslist/".$_GET['category']."/"); + $tpl->set('{news_pol}', $_GET['category']."/"); + $tpl->set('[/newslist]',''); +} else{$tpl->set_block("'\[newslist\](.*?)\[/newslist\]'si",""); $tpl->set('{news_pol}', "");} + +$tpl->set ( '{headers}', $metatags ); +$tpl->set ( '{content}', "
" . $tpl->result['content'] . "
" ); + +$tpl->compile ( 'main' ); +$tpl->result['main'] = str_replace ( '{THEME}', $config['http_home_url'] . 'templates/' . $config['skin'], $tpl->result['main'] ); +if ($replace_url) $tpl->result['main'] = str_replace ( $replace_url[0]."/", $replace_url[1]."/", $tpl->result['main'] ); +$tpl->result['main'] = str_replace("%username%", $is_logged?$member_id['name']:'Юзер', $tpl->result['main']); + +echo $tpl->result['main']; +$tpl->global_clear (); +$db->close (); + +GzipOut (); +?> diff --git a/language/Russian/adminpanel.lng b/language/Russian/adminpanel.lng new file mode 100644 index 0000000..ba2f03c --- /dev/null +++ b/language/Russian/adminpanel.lng @@ -0,0 +1,1654 @@ + "windows-1251", +'admin_logo' => "engine/skins/images/nav.jpg", +'wysiwyg_language' => "ru", +'opt_sys_regloginza' => "Ïîìåùàòü ïîëüçîâàòåëåé àâòîðèçóþùèõñÿ ÷åðåç Loginza â ãðóïïå:", +'opt_sys_regloginzad' => "Âûáåðèòå ãðóïïó â êîòîðóþ áóäóò ïîìåùåíû ïîëüçîâàòåëè àâòîðèçèðóþùèåñÿ ÷åðåç Loginza", +// 8.3 +'opt_sys_comb' => "Ðàçðåøèòü îáúåäèíåíèå êîììåíòàðèåâ", +'opt_sys_combd' => "Âêëþ÷åíèå èëè îòêëþ÷åíèå îáúåäèíåíèÿ êîììåíòàðèåâ, äîáàâëÿåìûõ äðóã çà äðóãîì îò îäíîãî ïîñåòèòåëÿ. Åñëè äàííàÿ íàñòðîéêà âêëþ÷åíà, òî âñå êîììåíòàðèè, êîòîðûå äîáàâëÿåò ïîñåòèòåëü â òå÷åíèè ñóòîê ê îäíîé íîâîñòè, áóäóò îáúåäèíåíû â îäèí êîììåíòàðèé, ïðè óñëîâèè ÷òî êîììåíòàðèè äîáàâëÿþòñÿ ïîäðÿä è ìåæäó íèìè íåò êîììåíòàðèåâ äðóãèõ ïîëüçîâàòåëåé.", +'cat_in_none' => "- Áåç êàòåãîðèè -", +'group_adds_html' => "Ðàçðåøèòü èñïîëüçîâàíèå HTML ïðè äîáàâëåíèè íîâîñòåé c ñàéòà", +'hint_gaadhtml' => "Äàííàÿ îïöèÿ ðàçðåøàåò èñïîëüçîâàíèå HTML ïðè äîáàâëåíèè ñ ñàéòà. Âíèìàíèå, åñëè âû äàííóþ îïöèþ îòêëþ÷èòå, à â íàñòðîéêàõ ñêðèïòà âêëþ÷åí WYSIWYG ðåäàêòîð, òî äëÿ äàííîé ãðóïïû ðåäàêòîð áóäåò àâòîìàòè÷åñêè ïåðåêëþ÷åí â BB ðåäàêòîð.", +'group_pref' => "Ïðåôèêñ èìåíè ãðóïïû", +'hint_gpref' => "Ïðè îòîáðàæåíèè ïîëüçîâàòåëÿ èç ýòîé ãðóïïû, ïåðåä èìåíåì, áóäåò äîáàâëåíà ýòà ñòðî÷êà. Âû ìîæåòå èñïîëüçîâàòü ýòó îïöèþ äëÿ ðàñêðàñêè èìåí ãðóïï ïîëüçîâàòåëåé, íàïðèìåð: <span style='color:red'>", +'group_suf' => "Ñóôôèêñ èìåíè ãðóïïû", +'hint_gsuf' => "Ïðè îòîáðàæåíèè ïîëüçîâàòåëÿ èç ýòîé ãðóïïû, ïîñëå èìåíè, áóäåò äîáàâëåíà ýòà ñòðî÷êà. Íàïðèìåð: </span>", +'opt_sys_subs' => "Ðàçðåøèòü ïîëüçîâàòåëÿì ïîäïèñûâàòüñÿ íà êîììåíòàðèè íîâîñòè", +'opt_sys_subsd' => "Âêëþ÷åíèå èëè îòêëþ÷åíèå ïîäïèñêè íà êîììåíòàðèè.  ñëó÷àå åñëè äàííàÿ îïöèÿ âêëþ÷åíà, òî ïîëüçîâàòåëü ïðè äîáàâëåíèè êîììåíòàðèÿ ñìîæåò ïîäïèñûâàòüñÿ íà êîììåíòàðèè ê ýòîé íîâîñòè, è â ñëó÷àå ïîÿâëåíèÿ íîâûõ êîììåíòàðèåâ ê äàííîé íîâîñòè, îí áóäåò óâåäîìëåí íà E-mail îá ýòîì.", +'modul_offline_1' => "Âíèìàíèå: äàííûé ìîäóëü áûë îòêëþ÷åí â íàñòðîéêàõ ñêðèïòà, äëÿ åãî ïîëíîöåííîãî ôóíêöèîíèðîâàíèÿ íåîáõîäèìî âêëþ÷èòü äàííûé ìîäóëü â íàñòðîéêàõ ñêðèïòà, â ðàçäåëå íàñòðîåê êîììåíòàðèåâ.", +'btn_clearsubscribe' => "Îòïèñàòü âñåõ ïîëüçîâàòåëåé îò êîììåíòàðèåâ", +'static_err_2' => "Ñòðàíèöà ñ äàííûì èìåíåì óæå ñóùåñòâóåò.", +'filter_action' => "Äåéñòâèå", +'filter_action_0' => "Ïðîèçâåñòè çàìåíó ñëîâà", +'filter_action_1' => "Îòêëîíèòü äîáàâëåíèå òåêñòà", +'news_err_39' => "Âàøà íîâîñòü ñîäåðæèò íåäîïóñòèìûé ê ïóáëèêàöèè òåêñò.", +'google_map_send' => "óâåäîìèòü ïîèñêîâóþ ñèñòåìó Google, î íàëè÷èè íîâîé âåðñèè êàðòû ñàéòà", +'confirm_action' => "Âû óâåðåíû, ÷òî õîòèòå âûïîëíèòü äàííîå äåéñòâèå? Îòìåíèòü åãî áóäåò íåâîçìîæíî.", +// 8.3 + +'opt_srebuild' => "Ïåðåñòðîåíèå ïóáëèêàöèé", +'opt_srebuildc' => "Ïåðåñîõðàíèå ïóáëèêàöèé íà ñàéòå, äëÿ âñòóïëåíèÿ â ñèëó, äëÿ ñòàðûõ ïóáëèêàöèé, íåêîòîðûõ íàñòðîåê ñêðèïòà, à òàêæå èçìåíåíèé â ïàðñåðå ñêðèïòà.", +'rebuild_info' => "Äàííàÿ óòèëèòà ïðîèçâîäèò ïåðåñòðîåíèå âñåõ íîâîñòåé íà ñàéòå. Äàííîå äåéñòâèå íåîáõîäèìî âûïîëíÿòü åñëè âû âíåñëè èçìåíåíèÿ â íàñòðîéêè ñêðèïòà, êîòîðûå äëÿ âñòóïëåíèÿ â ñèëó òðåáóþò ïåðåñîõðàíåíèÿ íîâîñòè, ÷òîáû îíè òàêæå áûëè âèäíû è â ñòàðûõ íîâîñòÿõ. Ëèáî ïðè ñîáñòâåííûõ èçìåíåíèÿõ â ïàðñåðå ñêðèïòà, íàïðèìåð èçìåíåíèÿ â ÁÁ òåãàõ. Ëèáî äëÿ âñòóïëåíèÿ â ñèëó íîâûõ âîçìîæíîñòåé ñêðèïòà, äîáàâëåííûõ â íîâûõ âåðñèÿõ ñêðèïòà.

Âíèìàíèå: Ïåðåä íà÷àëîì íå çàáóäüòå ñîçäàòü ðåçåðâíóþ êîïèþ áàçû äàííûõ, ò.ê. äàííîå äåéñòâèå â ñëó÷àå íåêîððåêòíîé èëè íå ñîâñåì îæèäàåìîé ðàáîòû, íåâîçìîæíî áóäåò îòìåíèòü.", +'rebuild_count' => "îáðàáîòàíî:", +'rebuild_start' => "Íà÷àòü ïåðåñòðîåíèå", +'rebuild_status' => "èäåò îáðàáîòêà, æäèòå...", +'rebuild_status_ok' => "îáðàáîòêà óñïåøíî çàâåðøåíà", +'rebuild_forw' => "Ïðîäîëæèòü ïåðåñòðîåíèå", +'opt_statrebuild' => "Ïåðåñòðîåíèå ñòàòè÷åñêèõ ñòðàíèö", +'rebuild_stat_info' => "Äàííàÿ óòèëèòà ïðîèçâîäèò ïåðåñòðîåíèå âñåõ ñòàòè÷åñêèõ ñòðàíèö íà ñàéòå. Äàííîå äåéñòâèå íåîáõîäèìî âûïîëíÿòü, åñëè âû âíåñëè èçìåíåíèÿ â íàñòðîéêè ñêðèïòà, êîòîðûå äëÿ âñòóïëåíèÿ â ñèëó òðåáóþò ïåðåñîõðàíåíèÿ ñòàòè÷åñêîé ñòðàíèöû. Ëèáî ïðè ñîáñòâåííûõ èçìåíåíèÿõ â ïàðñåðå ñêðèïòà, íàïðèìåð èçìåíåíèÿ â ÁÁ òåãàõ. Ëèáî äëÿ âñòóïëåíèÿ â ñèëó íîâûõ âîçìîæíîñòåé ñêðèïòà, äîáàâëåííûõ â íîâûõ âåðñèÿõ ñêðèïòà.

Âíèìàíèå: Ïåðåä íà÷àëîì íå çàáóäüòå ñîçäàòü ðåçåðâíóþ êîïèþ áàçû äàííûõ, ò.ê. äàííîå äåéñòâèå â ñëó÷àå íåêîððåêòíîé èëè íå ñîâñåì îæèäàåìîé ðàáîòû, íåâîçìîæíî áóäåò îòìåíèòü.", +'stat_allstaic' => "Îáùåå êîëè÷åñòâî ñòàòè÷åñêèõ ñòðàíèö:", +'stat_secfault_4' => "Âíèìàíèå îøèáêà áåçîïàñíîñòè:
Ôàéë {file} äîñòóïåí äëÿ çàïèñè, ÷òî ïðîòèâîðå÷èò ïîëèòèêå áåçîïàñíîñòè ñêðèïòà. Óñòàíîâèòå äëÿ äàííîãî ôàéëà CHMOD 444.", +'opt_relrebuild' => "Ïåðåñòðîåíèå êåøà ïîõîæèõ íîâîñòåé", +'rebuild_rel_info' => "Äàííàÿ óòèëèòà ïðîèçâîäèò ïåðåñòðîåíèå êåøà ïîõîæèõ íîâîñòåé íà ñàéòå. Ïîèñê ïîõîæèõ íîâîñòåé íà ñàéòå îñóùåñòâëÿåòñÿ òîëüêî âî âðåìÿ ïåðâîãî ïîêàçà ïóáëèêàöèè íà ñàéòå, ïîñëå ÷åãî èñïîëüçóåòñÿ êåø èç íàéäåííûõ ïóáëèêàöèé. Åñëè ïî ìåðå íàïîëíåíèÿ ñàéòà äðóãîé èíôîðìàöèåé è åñëè âû õîòèòå ÷òîáû íîâûå íîâîñòè òàêæå îòîáðàæàëèñü â ñïèñêå ïîõîæèõ íîâîñòåé, âû ìîæåòå ñáðîñèòü êåø è áóäåò ïðîâåäåí ïîâòîðíûé ïîèñê ïîõîæèõ ïóáëèêàöèé ïî áàçå äàííûõ.

Âíèìàíèå: Ïåðåä íà÷àëîì íå çàáóäüòå ñîçäàòü ðåçåðâíóþ êîïèþ áàçû äàííûõ, ò.ê. äàííîå äåéñòâèå â ñëó÷àå íåêîððåêòíîé èëè íå ñîâñåì îæèäàåìîé ðàáîòû, íåâîçìîæíî áóäåò îòìåíèòü.", + +// 8.2 +'bb_t_t' => "Òèïîãðàô", +'stat_not_min' => "Âíèìàíèå!
Âàø ñåðâåð íå îòâå÷àåò ìèíèìàëüíûì òðåáîâàíèÿì ñêðèïòà, íà ñåðâåðå íå óñòàíîâëåíà áèáëèîòåêà:", +'opt_sys_dimm' => "Àâòîìàòè÷åñêîå çàòåìíåíèå ñàéòà ïðè ïîêàçå îðèãèíàëüíîãî èçîáðàæåíèÿ", +'opt_sys_dimmd' => "Åñëè 'Äà', òî ïðè óâåëè÷åíèè óìåíüøåííîãî èçîáðàæåíèÿ äî îðèãèíàëüíîãî, îáùèé ôîí ñàéòà áóäåò çàòåìíÿòñÿ.", +'opt_sys_gall' => "Ðåæèì ãàëëåðåè ïðè ïðîñìîòðå óìåíüøåííûõ èçîáðàæåíèé", +'opt_sys_galld' => "Åñëè 'Äà', òî ïðè ïðîñìîòðå îðèãèíàëüíûõ èçîáðàæåíèé èç óìåíüøåííûõ êîïèé, íà èçîáðàæåíèÿõ áóäåò âûâîäèòñÿ íàâèãàöèÿ äëÿ ïîêàçà ñëåäóþùåé êàðòèíêè, çàïóñêà ñëàéäøîó è ò.ä.", +'nl_info_1' => " ñâîåì ñîîáùåíèè âû ìîæåòå èñïîëüçîâàòü òåã {%user%}, êîòîðûé áóäåò çàìåíåí íà ëîãèí ïîëó÷àòåëÿ â ñîîáùåíèè, èëè íà ïîëíîå èìÿ, åñëè ïîëüçîâàòåëü åãî óêàçûâàë â ñâîåì ïðîôèëå. Åñëè â íàñòðîéêàõ ñêðèïòà âêëþ÷åíî èñïîëüçîâàíèå ïîëÿ BCC äëÿ ðàññûëêè, òî òåã áóäåò çàìåíåí íà ñëîâî:", +'nl_info_2' => "Ïîëüçîâàòåëü", +'filter_search' => "Îáëàñòü ïîèñêà", +'filter_search_0' => "Âåçäå", +'filter_search_1' => "Íîâîñòè, ñòàòè÷åñêèå ñòðàíèöû", +'filter_search_2' => "Êîììåíòàðèè, ïðîôèëü ïîëüçîâàòåëÿ", +'upload_error_0' => "Íåâîçìîæíî ñîçäàòü äèðåêòîðèþ", +'upload_error_1' => "Ïàïêà", +'upload_error_2' => "íåäîñòóïíà äëÿ çàïèñè.
Íàçíà÷üòå íåîáõîäèìûå ïðàâà äîñòóïà äëÿ ïàïêè (CHMOD 777)", +'opt_sys_mcommd' => "Àâòîìàòè÷åêèé çàïðåò êîììåíòèðîâàíèÿ íîâîñòè ïî èñòå÷åíèè óêàçàííîãî ñðîêà", +'opt_sys_mcommdd' => "Âû ìîæåòå âêëþ÷èòü àâòîìàòè÷åñêîå çàêðûòèå íîâîñòè äëÿ êîììåíòèðîâàíèÿ ïî èñòå÷åíèè îïðåäåëåííîãî ñðîêà ïîñëå ïóáëèêàöèè íîâîñòè. Äëÿ ýòîãî óêàæèòå êîëè÷åñòâî äíåé, â òå÷åíèè êîòîðûõ ïîñëå ïóáëèêàöèè íîâîñòè, åå ðàçðåøåíî êîììåíòèðîâàòü. Åñëè âû íå õîòèòå óñòàíàâëèâàòü îãðàíè÷åíèÿ, óñòàíîâèòå 0.", +'edit_search_static' => "Ïîèñê ïî ñòàòè÷åñêèì ñòðàíèöàì:", +'edit_static_act' => "Ðåäàêòèðîâàòü äàííóþ ñòàòè÷åñêóþ ñòðàíèöó", +'edit_nostatic' => "- Íå íàéäåíî ñòàòè÷åñêèõ ñòðàíèö -", +'static_order' => "Ïîðÿäîê ñîðòèðîâêè ñòàòè÷åñêèõ ñòðàíèö", +'static_advanced_search'=> "Ðàñøèðåííûé ïîèñê ñòàòè÷åñêèõ ñòðàíèö", +'mass_static_edit_date_tl' => "Èçìåíåíèå äàòû", +'mass_static_edit_date_fr1' => "Âû óâåðåíû, ÷òî õîòèòå èçìåíèòü äàòó ñòàòè÷åñêîé ñòðàíèöû íà òåêóùóþ äàòó, âûáðàíî", +'mass_static_confirm_2' => "ñòàòè÷åñêèõ ñòðàíèö?", +'mass_static_confirm_3' => "ñòðàíèöû?", +'mass_static_delete' => "Óäàëåíèå ñòàòè÷åñêèõ ñòðàíèö", +'static_per_page' => "Êîëè÷åñòâî ñòàòåé íà ñòðàíèöó:", +'templates_help' => "Îïèñàíèå òåãîâ èñïîëüçóåìûõ â äàííîì øàáëîíå, âû ìîæåòå ïîñìîòðåòü â îíëàéí äîêóìåíòàöèè:", +'mod_not_found' => "Ôàéë âûáðàííîãî ðàçäåëà àäìèíïàíåëè íå íàéäåí", +'admin_other_section' => "Ñòîðîííèå ìîäóëè", +'static_br_html_1' => "Ôèëüòðîâàííûé òåêñò áåç àâòîìàòè÷åñêîãî ïåðåíîñà ñòðîê", +'static_br_html_2' => "Èñõîäíûé òåêñò HTML áåç ôèëüòðàöèè è èçìåíåíèé", +'static_type' => "Òèï òåêñòà:", +'static_not_allowed' => "Äàííàÿ ñòðàíèöà áûëà îïóáëèêîâàíà ñ îïöèÿìè äîñòóïíûìè òîëüêî àäìèíèñòðàòîðàì, âû íå ìîæåòå ðåäàêòèðîâàòü äàííóþ ñòðàíèöó", +// 8.2 + +// 8.0 +'group_a_addnews' => "Ðàçðåøèòü äîáàâëåíèå íîâîñòåé â àäìèíïàíåëè", +'group_h_addnews' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, äîáàâëÿòü íîâîñòè â àäìèíïàíåëè. Ìû íàñòîÿòåëüíî ðåêîìåíäóåì äàâàòü äîñòóï òîëüêî ïîëüçîâàòåëÿì âûçûâàþùèì ó âàñ äîâåðèå, ò.ê. äîáàâëåíèå íîâîñòåé â àäìèíïàíåëè ïîçâîëÿåò áîëåå òîíêî íàñòðàèâàòü íîâîñòè.", +'group_a_editnews' => "Ðàçðåøèòü ðåäàêòèðîâàíèå íîâîñòåé â àäìèíïàíåëè", +'group_h_editnews' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, ðåäàêòèðîâàòü è óäàëÿòü íîâîñòè â àäìèíïàíåëè. Ìû íàñòîÿòåëüíî ðåêîìåíäóåì äàâàòü äîñòóï òîëüêî ïîëüçîâàòåëÿì âûçûâàþùèì ó âàñ äîâåðèå, ò.ê. äîáàâëåíèå íîâîñòåé â àäìèíïàíåëè ïîçâîëÿåò áîëåå òîíêî íàñòðàèâàòü íîâîñòè.", +'group_a_comments' => "Ðàçðåøèòü ðåäàêòèðîâàíèå êîììåíòàðèåâ â àäìèíïàíåëè", +'group_h_comments' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, ðåäàêòèðîâàòü è óäàëÿòü êîììåíòàðèè â àäìèíïàíåëè.", +'group_a_categories' => "Ðàçðåøèòü óïðàâëåíèå êàòåãîðèÿìè â àäìèíïàíåëè", +'group_h_categories' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, ñîçäàâàòü, ðåäàêòèðîâàòü è óäàëÿòü êàòåãîðèè â àäìèíïàíåëè.", +'group_a_editusers' => "Ðàçðåøèòü óïðàâëåíèå ïîëüçîâàòåëÿìè â àäìèíïàíåëè", +'group_h_editusers' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, óïðàâëÿòü ïîëüçîâàòåëÿìè â àäìèíïàíåëè.", +'edit_not_admin' => "Âû íå ìîæåòå ðåäàêòèðîâàòü ïîëüçîâàòåëåé íàõîäÿùèõñÿ â ãðóïïå àäìèíèñòðàòîðîâ.", +'admin_not_access' => "Âû íå ìîæåòå íàçíà÷èòü ïîëüçîâàòåëÿ àäìèíèñòðàòîðîì ñàéòà.", +'group_a_wordfilter' => "Ðàçðåøèòü óïðàâëåíèå ôèëüòðîì ñëîâ â àäìèíïàíåëè", +'group_h_wordfilter' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, óïðàâëÿòü ôèëüòðîì ñëîâ â àäìèíïàíåëè.", +'group_a_userfields' => "Ðàçðåøèòü óïðàâëåíèå äîïîëíèòåëüíûìè ïîëÿìè ïðîôèëÿ ïîëüçîâàòåëåé â àäìèíïàíåëè", +'group_h_userfields' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, óïðàâëÿòü äîïîëíèòåëüíûìè ïîëÿìè ïðîôèëÿ ïîëüçîâàòåëåé â àäìèíïàíåëè.", +'group_a_static' => "Ðàçðåøèòü óïðàâëåíèå ñòàòè÷åñêèìè ñòðàíèöàìè â àäìèíïàíåëè", +'group_h_static' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, ñîçäàâàòü, ðåäàêòèðîâàòü è óäàëÿòü ñòàòè÷åñêèå ñòðàíèöû â àäìèíïàíåëè.", +'group_a_editvote' => "Ðàçðåøèòü óïðàâëåíèå îïðîñàìè ñàéòà â àäìèíïàíåëè", +'group_h_editvote' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, ñîçäàâàòü, ðåäàêòèðîâàòü è óäàëÿòü îïðîñû äëÿ ñàéòà â àäìèíïàíåëè.", +'group_a_newsletter' => "Ðàçðåøèòü äîñòóï ê ìàññîâîé ðàññûëêè ñîîáùåíèé â àäìèíïàíåëè", +'group_h_newsletter' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, îñóùåñòâëÿòü ìàññîâûå ðàññûëêè ñîîáùåíèé ïîëüçîâàòåëÿì.", +'group_a_blockip' => "Ðàçðåøèòü óïðàâëåíèå ôèëüòðàìè áëîêèðîâêè ïî IP, ëîãèíó èëè E-Mail â àäìèíïàíåëè", +'group_h_blockip' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, ñîçäàâàòü, ðåäàêòèðîâàòü è óäàëÿòü ôèëüòðû áëîêèðîâêè ïî IP, ëîãèíó èëè E-Mail.", +'group_a_banners' => "Ðàçðåøèòü óïðàâëåíèå ðåêëàìíûìè ìàòåðèàëàìè â àäìèíïàíåëè", +'group_h_banners' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, ñîçäàâàòü, ðåäàêòèðîâàòü è óäàëÿòü ðåêëàìíûå ìàòåðèàëû ñàéòà.", +'group_a_rss' => "Ðàçðåøèòü óïðàâëåíèå RSS èìïîðòîì íîâîñòåé â àäìèíïàíåëè", +'group_h_rss' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, îñóùåñòâëÿòü óïðàâëåíèå RSS èìïîðòîì íîâîñòåé â àäìèíïàíåëè.", +'group_a_iptools' => "Ðàçðåøèòü äîñòóï ê IP óòèëèòàì â àäìèíïàíåëè", +'group_h_iptools' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, îñóùåñòâëÿòü ïîèñê çàðåãèñòðèðîâàííûõ ïîëüçîâàòåëåé ïî îïðåäåëåííîìó IP àäðåñó èëè ïî ïîäñåòè â àäìèíïàíåëè.", +'group_a_rssinform' => "Ðàçðåøèòü óïðàâëåíèå RSS èíôîðìåðàìè â àäìèíïàíåëè", +'group_h_rssinform' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, îñóùåñòâëÿòü óïðàâëåíèå RSS èíôîðìåðàìè ñàéòà â àäìèíïàíåëè.", +'group_a_googlemap' => "Ðàçðåøèòü ñîçäàíèå êàðòû ñàéòà äëÿ ïîèñêîâîé ñèñòåìû Google â àäìèíïàíåëè", +'group_h_googlemap' => "Äàííàÿ îïöèÿ ïîçâîëèò ïîëüçîâàòåëÿì, èìåþùèì äîñòóï â àäìèíïàíåëü, îñóùåñòâëÿòü ñîçäàíèå êàðòû ñàéòà äëÿ ïîèñêîâîé ñèñòåìû Google â àäìèíïàíåëè.", +'opt_all_rublik' => "Ñïèñîê âñåõ ðàçäåëîâ", +'opt_all_rublikc' => "Ïðîñìîòð ñïèñêà âñåõ ðàçäåëîâ äîñòóïíûõ äëÿ âàñ â ïàíåëè óïðàâëåíèÿ.", +'ip_error_1' => "Äàííîå ïðàâèëî óæå ñóùåñòâóåò â ôèëüòðå.", +'filter_register' => "Ñ ó÷åòîì ðåãèñòðà", +'mass_clear_count' => "Î÷èñòèòü êîëè÷åñòâî ïðîñìîòðîâ", +'mass_clear_count_1' => "Âû óâåðåíû, ÷òî õîòèòå î÷èñòèòü ñ÷åò÷èê ïðîñìîòðîâ ó âûáðàííûõ", +'mass_clear_count_2' => "Î÷èñòêà ñ÷åò÷èêà ïðîñìîòðîâ íîâîñòåé", +'mass_clear_rating' => "Î÷èñòèòü ðåéòèíã íîâîñòè", +'mass_clear_rating_1' => "Âû óâåðåíû, ÷òî õîòèòå î÷èñòèòü ðåéòèíã ó âûáðàííûõ", +'mass_clear_rating_2' => "Î÷èñòêà ðåéòèíãà íîâîñòåé", +'rss_clear' => "Î÷èñòèòü ñïèñîê", +'opt_sys_sm_iv' => "Âêëþ÷èòü àóäèî è âèäåî â íîâîñòÿõ ïðè ïðîñìîòðå ìîáèëüíîé âåðñèè", +'opt_sys_sm_ivd' => "Åñëè 'Äà', òî íîâîñòü áóäåò îòîáðàæàòüñÿ áåç èçìåíåíèé, åñëè 'Íåò', òî ïðè ïðîñìîòðå ìîáèëüíîé âåðñèè ñàéòà èç íîâîñòåé â öåëÿõ ýêîíîìèè òðàôèêà áóäóò óáðàíû âñå àóäèî è âèäåî ìàòåðèàëû.", +'opt_sys_asp' => "Ðàçðåøèòü èíäåêñàöèþ ïîèñêîâûìè ñèñòåìàìè ññûëîê íà âåðñèþ äëÿ ïå÷àòè", +'opt_sys_aspd' => "Åñëè 'Íåò', òî äëÿ ïîèñêîâûõ ñèñòåì áóäåò çàïðåùåíî ïðîõîäèòü ïî ññûëêàì íà âåðñèþ äëÿ ïå÷àòè è ýòè ñòðàíèöû íå áóäóò ïðîèíäåêñèðîâàíû ïîèñêîâûìè ñèñòåìàìè.", +'opt_sys_asc' => "Ðàçðåøèòü èíäåêñàöèþ ïîèñêîâûìè ñèñòåìàìè ññûëîê îïóáëèêîâàííûõ â êîììåíòàðèÿõ", +'opt_sys_ascd' => "Åñëè 'Íåò', òî äëÿ ïîèñêîâûõ ñèñòåì áóäåò çàïðåùåíî ïðîõîäèòü ïî ññûëêàì êîòîðûå âàøè ïîëüçîâàòåëè áóäóò ïóáëèêîâàòü â êîììåíòàðèÿõ.", +'addnews_option' => "Îïöèè íîâîñòè:", +'massusers_group' => "Èçìåíèòü ãðóïïó", +'massusers_comments' => "Óäàëèòü êîììåíòàðèè", +'massusers_banned' => "Çàáàíèòü ïîëüçîâàòåëåé", +'massusers_delete' => "Óäàëèòü ïîëüçîâàòåëåé", +'massusers_denied' => "Âû äîëæíû âûáðàòü ïîëüçîâàòåëåé äëÿ âûïîëíåíèÿ ìàññîâûõ äåéñòâèé.", +'massusers_head' => "Óäàëåíèå ïîëüçîâàòåëåé", +'massusers_confirm' => "Âû óâåðåíû, ÷òî õîòèòå óäàëèòü âûáðàííûõ", +'massusers_confirm_1' => "ïîëüçîâàòåëåé", +'massusers_confirm_2' => "ïîëüçîâàòåëåé óäàëåíû", +'massusers_delok' => "Âñå âûáðàííûå Âàìè ïîëüçîâàòåëè óñïåøíî óäàëåíû!", +'massusers_head_1' => "Óäàëåíèå êîììåíòàðèåâ ïîëüçîâàòåëåé", +'massusers_confirm_3' => "Âû óâåðåíû, ÷òî õîòèòå óäàëèòü âñå êîììåíòàðèè ó âûáðàííûõ", +'massusers_comok' => "Âñå êîììåíòàðèè ó âûáðàííûõ Âàìè ïîëüçîâàòåëåé óñïåøíî óäàëåíû.", +'massusers_head_2' => "Èçìåíåíèå ãðóïïû ïîëüçîâàòåëåé", +'massusers_confirm_4' => "Âûáåðåòå íîâóþ ãðóïïó äëÿ âûáðàííûõ", +'massusers_groupok' => "Âñå ïîëüçîâàòåëè áûëè ïåðåíåñåíû â ãðóïïó:", +'massusers_head_3' => "Áàí ïîëüçîâàòåëåé", +'massusers_confirm_5' => "Áëîêèðîâàíèå âûáðàííûõ", +'massusers_banok' => "Âñå âûáðàííûå ïîëüçîâàòåëè áûëè çàáëîêèðîâàíû", +'bb_flash' => "Ââåäèòå ðàçìåðû ôëåø ðîëèêà (øèðèíà, âûñîòà)", +'bb_flash_url' => "Ââåäèòå ññûëêó íà ôëåø ðîëèê", +'inset_flash_link' => "âñòàâèòü ôëåø", +'meta_title' => "Ìåòàòåã title:", +'opt_sys_sm_fm' => "Âêëþ÷èòü ôîðìàòèðîâàíèå òåêñòà ïðè ïðîñìîòðå ìîáèëüíîé âåðñèè", +'opt_sys_sm_fmd' => "Åñëè 'Äà', òî íîâîñòü áóäåò îòîáðàæàòüñÿ áåç èçìåíåíèé, åñëè 'Íåò', òî ïðè ïðîñìîòðå ìîáèëüíîé âåðñèè ñàéòà èç òåêñòà íîâîñòåé áóäåò óáðàíî âñå ôîðìàòèðîâàíèå òåêñòà çà èñêëþ÷åíèåì ññûëîê è ïåðåíîñîâ ñòðîê.", +'bb_t_yvideo' => "Âñòàâêà Youtube èëè Rutube âèäåî", +// 8.0 + +// 7.5 +'preview_short' => "Êðàòêîå ñîäåðæàíèå:", +'preview_full' => "Ïîäðîáíîå ñîäåðæàíèå:", +'preview_static' => "Ïðîñìîòð ñòàòè÷åñêîé ñòðàíèöû:", +'group_max_signature' => "Ìàêñèìàëüíîå êîëè÷åñòâî ñèìâîëîâ â ïîäïèñè", +'hint_max_signature' => "Ââåäèòå ìàêñèìàëüíîå êîëè÷åñòâî äîïóñòèìûõ ñèìâîëîâ â ïîäïèñè ïîëüçîâàòåëÿ, åñëè âû õîòèòå ñíÿòü îãðàíè÷åíèå íà êîëè÷åñòâî ñèìâîëîâ, òî ââåäèòå 0.", +'group_max_info' => "Ìàêñèìàëüíîå êîëè÷åñòâî ñèìâîëîâ â êðàòêîé èíôîðìàöèè î ñåáå", +'hint_max_info' => "Ââåäèòå ìàêñèìàëüíîå êîëè÷åñòâî äîïóñòèìûõ ñèìâîëîâ â êðàòêîé èíôîðìàöèè î ñåáå ïîëüçîâàòåëÿ, åñëè âû õîòèòå ñíÿòü îãðàíè÷åíèå íà êîëè÷åñòâî ñèìâîëîâ, òî ââåäèòå 0.", +'get_offline_key' => "

Òàêæå íå èñêëþ÷åíî, ÷òî íà âàøåì ñåðâåðå îòêëþ÷åíû èëè çàïðåùåíû èñõîäÿùèå ñîåäèíåíèÿ, ïîýòîìó âû ìîæåòå àêòèâèðîâàòü ñêðèïò â ðó÷íîì ðåæèìå. Äëÿ ýòîãî âàì íåîáõîäèìî ïðîñëåäîâàòü ïî ññûëêå:", +'get_key' => "Ïîëó÷èòü êîä ñàéòà.", +'key_activation' => "Ïîñëå òîãî êàê âû ïîëó÷èòå íà ñàéòå dle-news.ru ñïåöèàëüíûé êîä ñàéòà, âåðíèòåñü â ñâîþ àäìèíïàíåëü è ââåäèòå ïîëó÷åííûé êîä âìåñòî âàøåãî êëþ÷à.", +'trial_act5' => "Ââåäåííûé êîä ñàéòà íå ïðèìåíèì äëÿ äàííîé âåðñèè ñêðèïòà, âàì íåîáõîäèìî ââåñòè âàø ëèöåíçèîííûé êëþ÷ äëÿ àêòèâàöèè âàøåãî ñêðèïòà èëè ãåíåðàöèè íîâîãî êîäà ñàéòà.", +'find_rtags' => "â îáëàêå òåãîâ", +'opt_smartphone' => "Íàñòðîéêà ïîääåðæêè è ðàáîòû ñ ñìàðòôîíàìè", +'opt_sys_smart' => "Âêëþ÷èòü àâòîìàòè÷åñêóþ ïîääåðæêó ñìàðòôîíîâ", +'opt_sys_smartd' => "Ïðè âêëþ÷åíèè äàííîé ïîääåðæêè äëÿ ïîëüçîâàòåëåé çàõîäÿùèõ íà âàø ñàéò ñ ìîáèëüíûõ ñìàðòôîíîâ, áóäåò èñïîëüçîâàí ñïåöèàëüíûé îáëåã÷åííûé äèçàéí âàøåãî ñàéòà. Ïåðåä âêëþ÷åíèåì äàííîé îïöèè óáåäèòåñü ÷òî â âàøåé ïàïêå øàáëîíîâ /templates/ ïðèñóòñòâóåò ïàïêà ñ èìåíåì øàáëîíà smartphone.", +'opt_sys_sm_im' => "Âêëþ÷èòü èçîáðàæåíèÿ â íîâîñòÿõ ïðè ïðîñìîòðå ìîáèëüíîé âåðñèè", +'opt_sys_sm_imd' => "Åñëè 'Äà', òî íîâîñòü áóäåò îòîáðàæàòüñÿ áåç èçìåíåíèé, åñëè 'Íåò', òî ïðè ïðîñìîòðå ìîáèëüíîé âåðñèè ñàéòà èç íîâîñòåé â öåëÿõ ýêîíîìèè òðàôèêà áóäóò óáðàíû âñå èçîáðàæåíèÿ.", +// 7.5 + +// 7.3 +'opt_sys_flvwd' => "Åñëè 'Äà', òî ïðè ïðîèãðûâàíèè âèäåîôàéëîâ âî ôëåø ïëååðå, ñïðàâà ñâåðõó áóäåò ïîêàçûâàòüñÿ âàø ëîãîòèï. Ñàì ëîãîòèï ïðè ýòîì äîëæåí íàõîäèòñÿ â ïàïêå øàáëîíà /øàáëîí/images/flv_watermark.png", +'opt_sys_adt' => "Ðàçðåøèòü äîáàâëåíèå êëþ÷åâûõ ñëîâ â îáëàêî òåãîâ ïðè äîáàâëåíèè íîâîñòåé ñ ñàéòà", +'opt_sys_adtd' => "Åñëè 'Äà', òî ïîëüçîâàòåëÿì ïðè äîáàâëåíèè íîâîñòåé ñ ñàéòà áóäåò ðàçðåøåíî äîáàâëåíèå êëþ÷åâûõ ñëîâ â îáëàêî òåãîâ", +'filter_type' => "Òèï çàìåíû", +'filter_type_1' => "Ëþáîå âõîæäåíèå", +'filter_type_2' => "Òî÷íîå ñîâïàäåíèå ñëîâà", +'opt_sys_afix' => "Âêëþ÷èòü ïîääåðæêó ôèêñàöèè íîâîñòåé íà ñàéòå:", +'opt_sys_afixd' => "Îòêëþ÷åíèå äàííîé ôóíêöèè ïîçâîëÿåò èñïîëüçîâàòü ñîêðàùåííûå çàïðîñû ê áàçå äàííûõ MySQL, òåì ñàìûì ñíèæàåòñÿ íàãðóçêà íà ÁÄ", +'spoiler_title' => "Ïîêàçàòü / Ñêðûòü òåêñò", +'upload_standart' => "Ñòàíäàðòíàÿ", +'upload_mass' => "Ìàññîâàÿ", +'upload_queue' => "Ñïèñîê çàãðóæàåìûõ ôàéëîâ", +'upload_cancel' => "Îòìåíèòü âñå çàãðóçêè", +'upload_waehlen' => "Âûáðàòü ôàéëû", +'upload_mass_info' => "Âûáåðåòå ôàéëû íà âàøåì êîìïüþòåðå, êîòîðûå âû õîòèòå çàãðóçèòü íà ñåðâåð. Äëÿ îäíîâðåìåííîãî âûáîðà ñðàçó íåñêîëüêèõ ôàéëîâ èç äèðåêòîðèè èñïîëüçóéòå âûäåëåíèå ìûøêîé èëè óäåðæèâàéòå êëàâèøó Ctrl.", +'opt_sys_maxfile' => "Ìàêñèìàëüíûé ðàçìåð ôàéëà äîïóñòèìûé ê çàãðóçêå íà ñåðâåð (â êèëîáàéòàõ)", +'opt_sys_maxfiled' => "Ââåäèòå ìàêñèìàëüíûé ðàçìåð ôàéëîâ êîòîðûå äîïóñòèìî çàãðóæàòü íà ñåðâåð. Äàííûé ðàçìåð óêàçûâàåòñÿ â êèëîáàéòàõ, íàïðèìåð äëÿ îãðàíè÷åíèÿ ðàçìåðà ôàéëà â 2 ìåãàáàéòà, â íàñòðîéêàõ óêàçûâàåòñÿ 2048. Åñëè âû õîòèòå ñíÿòü îãðàíè÷åíèå, òî óêàæèòå â íàñòðîéêàõ 0.", +'opt_sys_maxfilec' => "Ìàêñèìàëüíîå êîëè÷åñòâî ôàéëîâ ïðè ìàññîâîé çàãðóçêå", +'opt_sys_maxfilecd' => "Ââåäèòå ìàêñèìàëüíîå êîëè÷åñòâî ôàéëîâ, êîòîðîå âîçìîæíî îäíîâðåìåííî âûáðàòü è ïîñòàâèòü â î÷åðåäü íà çàãðóçêó íà ñåðâåð. Äëÿ òîãî ÷òîáû ñíÿòü îãðàíè÷åíèå íà êîëè÷åñòâî ôàéëîâ, ïîñòàâüòå 0.", +'files_too_big' => "Ñëèøêîì áîëüøîé ðàçìåð ôàéëà", +'files_max_info' => "Ìàêñèìàëüíûé ðàçìåð ôàéëà çàãðóæàåìîãî íà ñåðâåð ñîñòàâëÿåò", +'files_max_info_1' => "Ìàêñèìàëüíûé ðàçìåð èçîáðàæåíèÿ çàãðóæàåìîãî íà ñåðâåð ñîñòàâëÿåò", +'files_max_info_2' => "Ìàêñèìàëüíûé ðàçìåð ôàéëà çàãðóæàåìîãî íà ñåðâåð ñêðèïòîì íåîãðàíè÷åí", +// 7.3 + +// 7.2 +'opt_sys_wdq' => "Âêëþ÷èòü WYSIWYG ðåäàêòîð ïðè áûñòðîì ðåäàêòèðîâàíèè íîâîñòåé íà ñòàéòå:", +'opt_sys_addsec' => "Âêëþ÷èòü àâòîìàòè÷åñêîå áëîêèðîâàíèå ñïàì ïðîãðàìì", +'opt_sys_addsecd' => "Äàííàÿ îïöèÿ ïîçâîëÿåò âêëþ÷èòü àâòîìàòè÷åñêóþ çàùèòó îò ïðîãðàìì, îñóùåñòâëÿþùèõ ñïàì ðàññûëêè íîâîñòåé íà ñàéòû.", +'hint_scode' => "Âû ìîæåòå âêëþ÷èòü îòîáðàæåíèå êîäà áåçîïàñíîñòè ïðè äîáàâëåíèè íîâîñòåé âàøèìè ïîñåòèòåëÿìè ñ ñàéòà, âêëþ÷åíèå äàííîé ôóíêöèè ïîçâîëÿåò çàáëîêèðîâàòü àâòîïîñòèíã ñ èñïîëüçîâàíèåì ðàçëè÷íûõ ñïàìáîòîâ", +'group_image' => "Ðàçðåøèòü èñïîëüçîâàíèå èçîáðàæåíèé", +'hint_group_image' => "Âû ìîæåòå ðàçðåøèòü èëè çàïðåòèòü ïîëüçîâàòåëÿì èñïîëüçîâàíèå èçîáðàæåíèé â êîììåíòàðèÿõ èëè â ïîäïèñè.", +'restricted' => "Çàïðåò íà ïóáëèêàöèþ:", +'restricted_none' => "Îòñóòñòâóåò", +'restricted_news' => "Íîâîñòåé", +'restricted_comm' => "Êîììåíòàðèåâ", +'restricted_all' => "Íîâîñòåé è êîììåíòàðèåâ", +'restricted_date' => "Ñðîêîì íà:", +'hint_restricted' => "Óêàæèòå êîëè÷åñòâî äíåé, â òå÷åíèè êîòîðûõ ïîëüçîâàòåëþ áóäåò çàïðåùåíà ïóáëèêàöèÿ íîâîñòåé èëè êîììåíòàðèåâ. Îñòàâüòå 0, åñëè ñðîê áëîêèðîâêè íåîãðàíè÷åí ïî âðåìåíè", +'restricted_clear' => "Ñíÿòü çàïðåò", +'mail_info_6' => "Íàñòðîéêà E-Mail ñîîáùåíèÿ, êîòîðîå îòñûëàåòñÿ ïðè ïîëó÷åíèè íîâîãî ïåðñîíàëüíîãî ñîîáùåíèÿ", +'mail_pm_info' => "Ïðè íàïèñàíèè øàáëîíà äëÿ äàííîãî ñîîáùåíèÿ âû ìîæåòå èñïîëüçîâàòü ñëåäóþùèå òåãè:
{%username%} - ïîëüçîâàòåëü, ïîëó÷èâøèé ïåðñîíàëüíîå ñîîáùåíèå
{%date%} - äàòà ïîëó÷åíèÿ ñîîáùåíèÿ
{%fromusername%} - ëîãèí îòïðàâèòåëÿ
{%title%} - çàãîëîâîê ñîîáùåíèÿ
{%text%} - òåêñò ñîîáùåíèÿ", +'opt_sys_pmail' => "Îòñûëàòü E-Mail óâåäîìëåíèå ïðè ïîëó÷åíèè ïîëüçîâàòåëåì íîâîãî ïåðñîíàëüíîãî ñîîáùåíèÿ", +'opt_sys_pmaild' => "Åñëè 'Äà', ïðè ïîëó÷åíèè íîâîãî ïåðñîíàëüíîãî ñîîáùåíèÿ, íà E-Mail óêàçàííûé â ïðîôèëå ïîëüçîâàòåëÿ áóäåò îòïðàâëåíî ñîîòâåòñòâóþùåå óâåäîìëåíèå.", +'opt_sys_change_s' => "Ðàçðåøèòü ïîëüçîâàòåëÿì ìåíÿòü ïîðÿäîê ñîðòèðîâêè íîâîñòåé íà ñàéòå", +'opt_sys_change_sd' => "Åñëè 'Äà', òî ïðè ñìåíå ïîðÿäêà ñîðòèðîâêè, îòêëþ÷àåòñÿ àâòîìàòè÷åñêîå êåøèðîâàíèå íîâîñòåé íà ñàéòå äëÿ êðàòêèõ íîâîñòåé, ÷òî óâåëè÷èâàåò íàãðóçêó íà ñàéò.", +'edit_no_author' => "Âû èçìåíèëè àâòîðà ïóáëèêàöèè, íî íîâûé àâòîð íåîáíàðóæåí â áàçå äàííûõ. Ââåäèòå êîððåêòíîå èìÿ íîâîãî àâòîðà ïóáëèêàöèè. Âñå äðóãèå èçìåíåíèÿ â íîâîñòü óñïåøíî âíåñåíû.", +'opt_rules' => "Ïðàâèëà íà ñàéòå", +'opt_rulesc' => "Ðåäàêòèðîâàíèå ïðàâèë ïîâåäåíèÿ íà ñàéòå äëÿ ïîëüçîâàòåëåé. Ïðàâèëà ìîæíî âûâîäèòü ïðè ðåãèñòðàöèè ïîëüçîâàòåëåé, à òàêæå îòäåëüíîé ñòðàíèöåé http://site.ru/rules.html", +'rules_edit' => "Îáùèå ïðàâèëà íà ñàéòå", +'rules_descr' => "Äëÿ âûâîäà êíîïîê 'Ïðèíÿòü' è 'Îòêëîíèòü' ïðè ðåãèñòðàöèè ïîëüçîâàòåëåé èñïîëüçóéòå òåã {ACCEPT-DECLINE} ïðè íàïèñàíèè ïðàâèë.", +'rules_ok' => "Ïðàâèëà óñïåøíî ñîõðàíåíû.", +'rules_check' => "Åñëè âû õîòèòå âûâîäèòü äàííûå ïðàâèëà ïðè ðåãèñòðàöèè ïîñåòèòåëåé íà ñàéòå, òî âàì íåîáõîäèìî âêëþ÷èòü âûâîä ïðàâèë â íàñòðîéêàõ ñêðèïòà.", +'opt_sys_rules' => "Âûâîäèòü ïðàâèëà ñàéòà ïðè ðåãèñòðàöèè", +'opt_sys_rulesd' => "Åñëè 'Äà', òî ïðè ðåãèñòðàöèè ïîëüçîâàòåëÿ åìó áóäóò âûâîäèòñÿ ïðàâèëà ñàéòà, êîòîðûå îí äîëæåí áóäåò ïðèíÿòü.", +'ip_type' => "IP, Ëîãèí èëè E-mail:", +'user_edit_found' => "Íîâûé ëîãèí íå ìîæåò áûòü íàçíà÷åí ïîëüçîâàòåëþ, ò.ê. ââåäåííûé ëîãèí óæå çàðåãèñòðèðîâàí.", +'news_edit_date' => "Ðàíåå ðåäàêòèðîâàë", +'news_edit_reason' => "Ïðè÷èíà ðåäàêòèðîâàíèÿ:", +'allow_view_edit' => "Âûâîäèòü èíôîðìàöèþ î òîì ÷òî íîâîñòü îòðåäàêòèðîâàíà", +'addnews_tags' => "Îáëàêî òåãîâ:", +'hint_tags' => "Ââåäèòå ÷åðåç çàïÿòóþ êëþ÷åâûå òåãè íîâîñòè. Äàííûå òåãè áóäóò èñïîëüçîâàíû ïðè ôîðìèðîâàíèè îáëàêà òåãîâ íà ñàéòå. Âû ìîæåòå ââîäèòü òîëüêî îáû÷íûå ñëîâà, íå ñîäåðæàùèå ñïåöèàëüíûå ñèìâîëû", +'opt_sys_tags' => "Âêëþ÷èòü ïîääåðæêó ìîäóëÿ \"Îáëàêî òåãîâ\"", +'opt_sys_tagsd' => "Åñëè âû íå èñïîëüçóåòå íà ñâîåì ñàéòå \"Îáëàêî òåãîâ\", òî äàííûé ìîäóëü ðåêîìåíäóåòñÿ îòêëþ÷èòü.", +'opt_sm_cl_1' => "Îáëàêî òåãîâ", +'opt_sm_cl_3' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä îáëàêà òåãîâ, ïðè ïðîñìîòðå âñåõ òåãîâ íà ñàéòå", +// 7.2 + +// 7.0 +'tabs_gr_all' => "Îáùèå íàñòðîéêè", +'tabs_gr_news' => "Íîâîñòè", +'tabs_gr_comments' => "Êîììåíòàðèè", +'tabs_gr_admin' => "Àäìèíïàíåëü", +'stat_medit_link' => "Ðåäàêòèðîâàíèå îæèäàþùèõ ìîäåðàöèè íîâîñòåé", +'group_signature' => "Ðàçðåøèòü èñïîëüçîâàíèå ïîäïèñè â êîììåíòàðèÿõ", +'hint_signature' => "Âû ìîæåòå ðàçðåøèòü èëè çàïðåòèòü ïîëüçîâàòåëÿì èñïîëüçîâàíèå ïîäïèñè, êîòîðàÿ áóäåò âèäíà ïðè íàïèñàíèè ïîëüçîâàòåëåì êîììåíòàðèÿ.", +'group_url' => "Ðàçðåøèòü èñïîëüçîâàíèå êëèêàáåëüíûõ ññûëîê", +'hint_group_url' => "Âû ìîæåòå ðàçðåøèòü èëè çàïðåòèòü ïîëüçîâàòåëÿì èñïîëüçîâàíèå êëèêàáåëüíûõ ññûëîê â êîììåíòàðèÿõ, ïðîôèëå èëè â ïåðñîíàëüíûõ ñîîáùåíèÿõ.", +'images_all_insert' => "Âñòàâèòü âûáðàííîå", +'opt_sys_catsort' => "Êðèòåðèé ñîðòèðîâêè ïðè ïðîñìîòðå êàòàëîãà", +'opt_sys_catsortd' => "Âûáåðèòå êðèòåðèé äëÿ ñîðòèðîâêè íîâîñòåé ïðè ïðîñìîòðå êàòàëîãà", +'opt_sys_catmsort' => "Ïîðÿäîê ñîðòèðîâêè ïðè ïðîñìîòðå êàòàëîãà", +'opt_sys_catmsortd' => "Âûáåðèòå ïîðÿäîê ñîðòèðîâêè íîâîñòåé ïðè ïðîñìîòðå êàòàëîãà", +'opt_sys_related_num' => "Êîëè÷åñòâî ïîõîæèõ íîâîñòåé", +'opt_sys_related_numd' => "Ââåäèòå êîëè÷åñòâî ïîõîæèõ íîâîñòåé, êîòîðûå áóäóò âûâîäèòñÿ ïðè ïðîñìîòðå ïîëíûõ íîâîñòåé", +'opt_sys_seotype' => "Òèï ×ÏÓ:", +'opt_sys_seotyped' => "Òèï 1 - ññûëêè íà ïîëíóþ íîâîñòü áóäóò èìåòü âèä http://site.ru/id-èìÿ íîâîñòè.html

Òèï 2 - ññûëêè íà ïîëíóþ íîâîñòü áóäóò èìåòü âèä http://site.ru/êàòåãîðèÿ/ïîäêàòåãîðèÿ/id-èìÿ íîâîñòè.html

Òèï 3 - ññûëêè íà ïîëíóþ íîâîñòü áóäóò èìåòü âèä http://site.ru/2008/04/02/èìÿ íîâîñòè.html, âíèìàíèå äàííûé òèï íåñåò ïîâûøåííóþ íàãðóçêó íà ñåðâåð", +'opt_sys_seo_1' => "Òèï 1", +'opt_sys_seo_2' => "Òèï 2", +'opt_sys_seo_3' => "Òèï 3", +'b_find_related' => "Íàéòè ïîõîæèå íîâîñòè", +'mass_edit_date' => "Óñòàíîâèòü òåêóùóþ äàòó", +'mass_edit_date_tl' => "Èçìåíåíèå äàòû íîâîñòåé", +'mass_edit_date_fr1' => "Âû óâåðåíû, ÷òî õîòèòå èçìåíèòü äàòó íîâîñòè íà òåêóùóþ äàòó, âûáðàíî", +'stat_os' => "Îïåðàöèîííàÿ ñèñòåìà:", +'opt_sys_max_mod' => "Ìàêñèìàëüíîå êîëè÷åñòâî íîâîñòåé, äîïóñòèìûõ ê îæèäàíèþ íà ìîäåðàöèþ", +'opt_sys_max_modd' => "Ââåäèòå ìàêñèìàëüíîå êîëè÷åñòâî íîâîñòåé, êîòîðîå äîïóñòèìî ïðè äîáàâëåíèè ñ ñàéòà ïîëüçîâàòåëÿìè íà îæèäàíèå ìîäåðàöèè, ïîñòàâüòå 0 åñëè íå õîòèòå óñòàíàâëèâàòü îãðàíè÷åíèé.", +// 7.0 + + +// 6.7 +'nl_startfrom' => "Íà÷àòü ðàññûëêó ñ:", +'nl_user' => "ïîëüçîâàòåëÿ (ââåäèòå 0, åñëè õîòèòå íà÷àòü ðàññûëêó ñ ñàìîãî íà÷àëà)", +'nl_n_mail' => "Êîëè÷åñòâî ïèñåì çà îäèí ïðîõîä:", +'nl_interval' => "Èíòåðâàë â ñåêóíäàõ ìåæäó îòïðàâêîé ïèñåì:", +'opt_sys_maxc' => "Ìàêñèìàëüíîå êîëè÷åñòâî ñèìâîëîâ â êîììåíòàðèÿõ", +'opt_sys_maxcd' => "Óêàæèòå ìàêñèìàëüíîå êîëè÷åñòâî ñèìâîëîâ, êîòîðîå ìîæåò èñïîëüçîâàòü ïîëüçâàòåëü ïðè íàïèñàíèè êîììåíòàðèåâ íà ñàéòå", +'opt_sys_reason' => "Ïðè÷èíà îòêëþ÷åíèÿ ñàéòà:", +'opt_sys_reasond' => "Ñîîáùåíèå äëÿ îòîáðàæåíèÿ â ðåæèìå îòêëþ÷åííîãî ñàéòà", +'google_cat_priority' => "Ïðèîðèòåò êàòåãîðèé:", +'google_stat_priority' => "Ïðèîðèòåò ñòàòè÷åñêèõ ñòðàíèö:", +'search_by_author' => "Ïîèñê ïî àâòîðó:", +'search_by_date' => "Äàòà ïóáëèêàöèè:", +'search_by_status' => "Ñòàòóñ íîâîñòåé:", +'news_status_all' => "Âñå íîâîñòè", +'news_status_mod' => "Îæèäàþùèå ìîäåðàöèè íîâîñòè", +'news_status_approve' => "Îïóáëèêîâàííûå íîâîñòè", +'news_order' => "Ïîðÿäîê ñîðòèðîâêè íîâîñòåé", +'news_order_fixed' => "Çàôèêñèðîâàííûå", +'news_advanced_search' => "Ðàñøèðåííûé ïîèñê íîâîñòåé", +'inset_video_link' => "âñòàâèòü âèäåî", +'inset_audio_link' => "âñòàâèòü àóäèî", +// 6.7 + +// 6.5 +'opt_rsssys' => "Íàñòðîéêà RSS ýêñïîðòà íîâîñòåé", +'opt_sys_arss' => "Âêëþ÷èòü RSS ýêñïîðò íîâîñòåé", +'opt_sys_arssd' => "Âû ìîæåòå ðàçðåøèòü èëè çàïðåòèòü RSS ýêñïîðò âàøèõ íîâîñòåé íà ñàéòå.", +'opt_sys_nrss' => "Êîëè÷åñòâî ýêñïîðòèðóåìûõ íîâîñòåé", +'opt_sys_nrssd' => "Óêàæèòå êîëè÷åñòâî ýêñïîðòèðóåìûõ íîâîñòåé â RSS ïîòîê.", +'opt_sys_crss' => "Êîëè÷åñòâî ýêñïîðòèðóåìûõ êîììåíòàðèåâ", +'opt_sys_crssd' => "Óêàæèòå êîëè÷åñòâî ýêñïîðòèðóåìûõ êîììåíòàðèåâ â RSS ïîòîê.", +'opt_sys_frss' => "Êîëè÷åñòâî ýêñïîðòèðóåìûõ òîððåíòîâ", +'opt_sys_frssd' => "Óêàæèòå êîëè÷åñòâî ýêñïîðòèðóåìûõ òîððåíòîâ â RSS ïîòîê.", + +'opt_sys_trss' => "Òèï ýêñïîðòà îñíîâíîãî RSS ïîòîêà", +'opt_sys_trssd' => "Âûáåðèòå òèï âûâîäà îñíîâíîãî RSS ïîòîêà ïðè îáðàùåíèè ïî àäðåñó http://dle-news.ru/rss.xml.", +'opt_sys_rss_type_0' => "Âñå íîâîñòè", +'opt_sys_rss_type_1' => "Òîëüêî îïóáëèêîâàííûå íà ãëàâíîé", +'opt_sys_rss_type_2' => "Ïðîñòîé", +'opt_sys_rss_type_3' => "Ïîëíûé", +'opt_sys_rss_type_4' => "ßíäåêñ íîâîñòè", +'img_orig_ins' => "îðèãèíàë", +'opt_sys_short_name' => "Êðàòêîå íàçâàíèå ñàéòà:", +'opt_sys_short_named' => "Óêàæèòå êðàòêîå íàçâàíèå ñàéòà, êîòîðîå áóäåò ïóáëèêîâàòñÿ â ìîäóëå 'speedbar', ïðè ïóáëèêàöèè ññûëêè íà ãëàâíóþ ñòðàíèöó ñàéòà", +'static_skin' => "Ïàïêà øàáëîíà:", +'hint_static_skin' => "Âû ìîæåòå óñòàíîâèòü äëÿ äàííîé ñòàòè÷åñêîé ñòðàíèöû ïîëíîñòüþ îòäåëüíûé øàáëîí, îòëè÷íûé îò èñïîëüçóåìîãî ïî óìîë÷àíèþ.", +'xf_not_notig' => "íåîáÿçàòåëüíî", +// 6.5 + +// 6.3 +'opt_sys_multiple' => "Âêëþ÷èòü ïîääåðæêó ìóëüòèêàòåãîðèé íà ñàéòå", +'opt_sys_multipled' => "Âêëþ÷åíèå äàííîé âîçìîæíîñòè ïîçâîëÿåò ïóáëèêîâàòü îäíó íîâîñòü â íåñêîëüêî êàòåãîðèé îäíîâðåìåííî, îòêëþ÷åíèå äàííîé âîçìîæíîñòè áóäåò ïîçâîëÿòü äîáàâëÿòü íîâîñòü òîëüêî â îäíó êàòåãîðèþ, îäíàêî ïîçâîëÿåò ñóùåñòâåííî ñîêðàòèòü íàãðóçêó íà ñåðâåð.", +'user_del_comments' => "Óäàëèòü âñå êîììåíòàðèè?", +'catalog_url' => "Ñèìâîëüíûé êîä:", +'catalog_hint_url' => "Ñèìâîëüíûé êîä ïðåäíàçíà÷åí äëÿ îáúåäèíåíèÿ ãðóïïû íîâîñòåé â êàòàëîãè, íàïðèìåð, åñëè çàäàòü ãðóïïå íîâîñòåé îäèí ñèìâîëüíûé êîä a, òî ýòà ãðóïïà íîâîñòåé íîâîñòåé áóäåò äîñòóïíà ïî àäðåñó: http:/site.ru/catalog/a/. Äîïóñêàåòñÿ ìàêñèìàëüíî èñïîëüçîâàòü òîëüêî òðè ñèìâîëà", +'edit_go_page' => "Ïåðåéòè íà ñòðàíèöó:", +'main_notice' => "Áëîêíîò", +'main_no_notice' => "Çäåñü âû ìîæåòå ñîõðàíÿòü ñîáñòâåííûå çàìåòêè è ïàìÿòêè.", +'rss_no_rss' => "Ñ ìîìåíòà ïîñëåäíåãî ïîëó÷åíèÿ íîâîñòåé, íîâûõ íîâîñòåé â äàííîì ïîòîêå íå ïîÿâèëîñü.", +'group_offline' => "Ðàçðåøèòü ïðîñìîòð îòêëþ÷åííîãî ñàéòà", +'hint_goffline' => "Âû ìîæåòå ðàçðåøèòü èëè çàïðåòèòü äàííîé ãðóïïå ïðîñìîòð îòêëþ÷åííîãî ñàéòà.", +'google_nnum' => "Êîëè÷åñòâî íîâîñòåé:", +'hint_g_num' => "Âû ìîæåòå óêàçàòü êîëè÷åñòâî íîâîñòåé, êîòîðîå áóäåò ýêñïîðòèðîâàíî â ôàéë Google Sitemap. Åñëè âû îñòàâèòå äàííîå ïîëå ïóñòûì, òî áóäóò ýêñïîðòèðîâàíû âñå íîâîñòè.", +'google_priority' => "Ïðèîðèòåò íîâîñòåé:", +'hint_g_priority' => "Ïðèîðèòåò ýêñïîðòèðóåìûõ URL îòíîñèòåëüíî äðóãèõ URL íà Âàøåì ñàéòå. Äîïóñòèìûé äèàïàçîí çíà÷åíèé — îò 0.0 äî 1.0. Ýòî çíà÷åíèå íå âëèÿåò íà ñðàâíåíèå Âàøèõ ñòðàíèö ñî ñòðàíèöàìè íà äðóãèõ ñàéòàõ.", +'rssinform_del' => "Âû äåéñòâèòåëüíî õîòèòå óäàëèòü RSS èíôîðìåð?", +// 6.3 + +// 6.2 +'opt_sys_asrate' => "Ðàçðåøèòü âûñòàâëåíèå ðåéòèíãà â êðàòêèõ íîâîñòÿõ", +'opt_sys_asrated' => "Âû ìîæåòå ðàçðåøèòü èëè çàïðåòèòü ïîëüçîâàòåëÿì âûñòàâëÿòü ðåéòèíã äëÿ íîâîñòè ïðè ïðîñìîòðå êðàòêèõ íîâîñòåé. Åñëè 'Íåò', òî âûñòàâèòü ðåéòèíã äëÿ íîâîñòè, ìîæíî áóäåò òîëüêî ïðè ïðîñìîòðå ïîëíîé íîâîñòè", +'opt_sys_search' => "Âûáåðèòå òèï ïîèñêà èñïîëüçóåìîãî íà ñàéòå", +'opt_sys_searchd' => "Ðàñøèðåííûé òèï ïîèñêà îñóùåñòâëÿåò ïîëíîòåêñòîâûé ïîèñê è äàåò áîëåå òî÷íûå ðåçóëüòàòû ïîèñêà, îäíàêî íà áîëüøèõ áàçàõ äàííûõ ïðîöåññ ïîèñêà ìîæåò çàíèìàòü ïðîäîëæèòåëüíîå âðåìÿ è âûçûâàòü ïîâûøåííóþ íàãðóçêó.", +'opt_sys_simple' => "Ïðîñòîé", +'opt_sys_advance' => "Ïîëíîòåêñòîâûé", +'a_rating' => "Ðàçðåøèòü âûñòàâëåíèå ðåéòèíãà íîâîñòåé", +'hint_garating' => "Âû ìîæåòå ðàçðåøèòü èëè çàïðåòèòü äàííîé ãðóïïå âûñòàâëÿòü ðåéòèíã äëÿ íîâîñòåé, åñëè çàïðåòèòü, òî ïîëüçîâàòåëè ñìîãóò òîëüêî âèäåòü ðåçóëüòàòû ðåéòèíãà", +'opt_google' => "Êàðòà ñàéòà äëÿ Google è Yandex", +'opt_googlec' => "Äàííûé ìîäóëü ïðåäíàçíà÷åí äëÿ ñîçäàíèÿ êàðò ñàéòà äëÿ ïîèñêîâûõ ñèñòåì Google è Yandex.", +'google_info' => "1. Íåîáõîäèìî çàðåãèñòðèðîâàòüñÿ â Google Sitemaps ñ èñïîëüçîâàíèåì âàøåé ó÷åòíîé çàïèñè Google.

2. Ïåðåéäèòå ïî ññûëêå \"Äîáàâüòå ïåðâóþ êàðòó ñàéòà\".

3. Ââåäèòå â ïîëå \"URL\" àäðåñ âàøåãî ôàéëà èíäåêñà Sitemap è íàæìèòå êíîïêó \"Ïåðåäàòü URL\".

4. Áîëåå ïîäðîáíóþ ñïðàâêó âû ìîæåòå íàéòè íà ñàéòå Google.", +'google_main' => "Êðàòêîå îïèñàíèå ñåðâèñà Google Sitemaps", +'google_map' => "Ôàéë êàðòû ñàéòà (Google Sitemap)", +'google_create' => "Ñîçäàòü / Îáíîâèòü ôàéë êàðòû ñàéòà", +'no_google_map' => "Ôàéë èíäåêñà äëÿ Google Sitemap ðàíåå åùå íå ñîçäàâàëñÿ.", +'google_map_info' => "ôàéë èíäåêñà äëÿ Google Sitemap áûë ñîçäàí è äîñòóïåí ïî àäðåñó:", +'opt_sys_news_c' => "Âêëþ÷èòü êîä áåçîïàñíîñòè (CAPTCHA) ïðè äîáàâëåíèè íîâîñòåé ñ ñàéòà", +'opt_sys_news_cd' => "Âû ìîæåòå âêëþ÷èòü îòîáðàæåíèå êîäà áåçîïàñíîñòè ïðè äîáàâëåíèè íîâîñòåé âàøèìè ïîñåòèòåëÿìè ñ ñàéòà, âêëþ÷åíèå äàííîé ôóíêöèè ïîçâîëÿåò çàáëîêèðîâàòü àâòîïîñòèíã ñ èñïîëüçîâàíèåì ðàçëè÷íûõ ñïàìáîòîâ", +'cat_noparentid' => "Êàòåãîðèÿ íå ìîæåò áûòü ñîáñòâåííîé ïîäêàòåãîðèåé!", +'opt_iptoolsname' => "Ïîèñê âñåõ IP àäðåñîâ, êîòîðûå áûëè ó îïðåäåëåííîãî ïîëüçîâàòåëÿ", +'opt_iptoollast' => "Ïîñëåäíèé ðàç èñïîëüçîâàë IP àäðåñ:", +'opt_iptoolcall' => "Ïðè íàïèñàíèè êîììåíòàðèåâ èñïîëüçîâàëèñü IP àäðåñà:", +// 6.2 + +// 6.0 +'opt_sys_path' => "Ôàéë àäìèíïàíåëè", +'opt_sys_pathd' => "Âû ìîæåòå èçìåíèòü èìÿ ôàéëà àäìèíïàíåëè. Ïî óìîë÷àíèþ ýòî admin.php,åñëè âû óêàçûâàåòå íîâûé ôàéë, òî íåçàáóäüòå ïåðåèìåíîâàòü åãî íà ñåðâåðå, óêàçûâàåòñÿ òîëüêî èìÿ ôàéëà, áåç óêàçàíèÿ ïóòè ê íåìó.", +'opt_rssinform' => "RSS èíôîðìåð íà ñàéòå", +'opt_rssinformc' => "Äàííûé ìîäóëü ïðåäíàçíà÷åí äëÿ ãèáêîãî äîáàâëåíèÿ ðàçëè÷íûõ RSS èíôîðìåðîâ ñ äðóãèõ ñàéòîâ.", +'rssinform_title' => "Óïðàâëåíèå RSS èíôîðìåðàìè íà ñàéòå", +'rssinform_ein' => "Âêëþ÷èòü èíôîðìåð", +'rssinform_on' => "Ïîêàç èíôîðìåðà âêëþ÷åí", +'rssinform_off' => "Ïîêàç èíôîðìåðà âûêëþ÷åí", +'rssinform_create' => "Äîáàâèòü èíôîðìåð", +'rssinform_xname' => "Íàçâàíèå RSS èíôîðìåðà", +'rssinform_xdescr' => "Îïèñàíèå RSS èíôîðìåðà", +'rssinform_url' => "URL äëÿ RSS èíôîðìåðà", +'rssinform_template' => "Øàáëîí äëÿ èíôîðìåðà", +'rssinform_max' => "Êîëè÷åñòâî íîâîñòåé â áëîêå", +'rssinform_tmax' => "Êîëè÷åñòâî ñèìâîëîâ â çàãîëîâêå", +'rssinform_dmax' => "Êîëè÷åñòâî ñèìâîëîâ â òåêñòå íîâîñòè", +'hint_ri_max' => "Óêàæèòå êîëè÷åñòâî íîâîñòåé êîòîðûå âû õîòèòå ïîëó÷àòü èç äàííîãî ïîòîêà", +'hint_ri_tmax' => "Óêàæèòå ìàêñèìàëüíîå êîëè÷åñòâî ñèìâîëîâ â çàãîëîâêå, ïðè ïðåâûøåíèè äàííîãî çíà÷åíèÿ çàãîëîâîê áóäåò àâòîìàòè÷åñêè îáðåçàí, âû ìîæåòå óêàçàòü 0, òîãäà çàãîëîâîê áóäåò îïóáëèêîâàí ïîëíîñòüþ ëþáîé äëèíû", +'hint_ri_dmax' => "Óêàæèòå ìàêñèìàëüíîå êîëè÷åñòâî ñèìâîëîâ â íîâîñòè, ïðè ïðåâûøåíèè äàííîãî çíà÷åíèÿ íîâîñòü áóäåò àâòîìàòè÷åñêè óìåíüøåíà, âû ìîæåòå óêàçàòü 0, òîãäà íîâîñòü áóäåò îïóáëèêîâàíà ïîëíîñòüþ ëþáîé äëèíû", +'opt_sys_inform' => "Âêëþ÷èòü èñïîëüçîâàíèå RSS èíôîðìåðîâ", +'opt_sys_informd' => "Åñëè âû íå èñïîëüçóåòå íà ñâîåì ñàéòå RSS èíôîðìåðû, òî äàííûé ìîäóëü ðåêîìåíäóåòñÿ îòêëþ÷èòü.", +'modul_offline' => "Âíèìàíèå: äàííûé ìîäóëü áûë îòêëþ÷åí â íàñòðîéêàõ ñêðèïòà, äëÿ åãî ïîëíîöåííîãî ôóíêöèîíèðîâàíèÿ íåîáõîäèìî âêëþ÷èòü äàííûé ìîäóëü â íàñòðîéêàõ ñêðèïòà, â ðàçäåëå îïòèìèçàöèè.", +'opt_sys_cmod' => "Âêëþ÷èòü ïîääåðæêó ïðåäìîäåðàöèè êîììåíòàðèåâ", +'opt_sys_cmodd' => "Åñëè âû õîòèòå â äàëüíåéøåì ìîäåðèðîâàòü êîììåíòàðèè ó íåêîòîðûõ ãðóïï ïîëüçîâàòåëåé, ïðåæäå ÷åì îíè áóäóò îïóáëèêîâàíû íà ñàéòå, òî âàì íåîáõîäèìî âêëþ÷èòü ýòó ïîääåðæêó. Îòêëþ÷åíèå äàííîé ïîääåðæêè ïîçâîëÿåò ýêîíîìèòü ðåñóðñû MySQL ñåðâåðà.", +'group_modc' => "Îòïðàâëÿòü êîììåíòàðèè íà ìîäåðàöèþ", +'hint_modc' => "Êîììåíòàðèé ïîëüçîâàòåëÿ áóäåò îïóáëèêîâàí íà ñàéòå, òîëüêî ïîñëå ïðåäâàðèòåëüíîé ìîäåðàöèè êîììåíòàðèÿ àäìèíèñòðàòîðîì èëè ìîäåðàòîðîì.", +'stat_cmod' => "Êîììåíòàðèè îæèäàþùèå ïðîâåðêè:", +'stat_cmod_link' => "ïðîâåðêà îæèäàþùèõ ìîäåðàöèè êîììåíòàðèåâ", +'bb_b_approve' => "Îïóáëèêîâàòü", +'cmod_n_title' => "Íîâîñòü:", +'mass_acomm' => "Âû íå âûáðàëè êîììåíòàðèè, êîòîðûå íåîáõîäèìî îïóáëèêîâàòü", +'mass_approve_ok' => "Âñå âûáðàííûå Âàìè êîììåíòàðèè óñïåøíî îïóáëèêîâàíû íà ñàéòå!", +'st_views' => "Ïðîñìîòðîâ", +'upload_t_size' => "Ðàçìåð óìåíüøåííîé êîïèè êàðòèíêè:", +'upload_t_seite_1' => "Ïî íàèáîëüøåé ñòîðîíå", +'upload_t_seite_2' => "Ïî øèðèíå", +'upload_t_seite_3' => "Ïî âûñîòå", +'bb_t_font' => "Øðèôò", +'bb_t_size' => "Ðàçìåð", +'opt_sys_maxside' => "Ìàêñèìàëüíî äîïóñòèìûå ðàçìåðû èçîáðàæåíèÿ", +'opt_sys_maxsided' => "Ñóùåñòâóåò äâå âîçìîæíîñòè èñïîëüçîâàíèÿ äàííîé íàñòðîéêè:

Ïåðâàÿ: Âû ââîäèòå äîïóñòèìûå ðàçìåðû â ïèêñåëÿõ ëþáîé èç ñòîðîí îðèãèíàëüíîãî èçîáðàæåíèÿ. Íàïðèìåð: 800.

Âòîðàÿ: Âû çàäàåòå øèðèíó è âûñîòó îðèãèíàëüíîãî èçîáðàæåíèÿ â ôîðìàòå øèðèíà x âûñîòà. Íàïðèìåð: 800x600

Åñëè ðàçìåð áóäåò áîëüøå, òî îðèãèíàëüíîå èçîáðàæåíèå áóäåò àâòîìàòè÷åñêè óìåíüøåíî äî óêàçàííîãî ðàçìåðà, èíà÷å èçîáðàæåíèå áóäåò ïåðåñæàòî áåç èçìåíåíèÿ ðàçìåðà. Âû ìîæåòå óêàçàòü 0, åñëè õîòèòå ÷òîáû èçîáðàæåíèå îñòàâàëîñü îðèãèíàëüíûì.", +'mass_edit_app' => "Îïóáëèêîâàòü íîâîñòè", +'mass_edit_notapp' => "Îòïðàâèòü íà ìîäåðàöèþ", +'mass_edit_app_tl' => "Âûáîð ïóáëèêàöèè íîâîñòåé", +'mass_edit_app_fr1' => "Âû óâåðåíû, ÷òî õîòèòå îïóáëèêîâàòü âûáðàííûå", +'mass_edit_app_fr2' => "Âû óâåðåíû, ÷òî õîòèòå îòïðàâèòü íà ìîäåðàöèþ âûáðàííûå", +'mass_edit_comm' => "Ðàçðåøèòü êîììåíòàðèè", +'mass_edit_notcomm' => "Çàïðåòèòü êîììåíòàðèè", +'mass_edit_comm_fr1' => "Âû óâåðåíû, ÷òî õîòèòå ðàçðåøèòü êîììåíòàðèè äëÿ âûáðàííûõ", +'mass_edit_comm_fr2' => "Âû óâåðåíû, ÷òî õîòèòå çàïðåòèòü êîììåíòàðèè äëÿ âûáðàííûõ", +'mass_edit_com_tl' => "Íàñòðîéêà êîììåíòàðèåâ äëÿ íîâîñòåé", +'mass_edit_rate' => "Ðàçðåøèòü ðåéòèíã", +'mass_edit_notrate' => "Çàïðåòèòü ðåéòèíã", +'mass_edit_rate_tl' => "Íàñòðîéêà ðåéòèíãà äëÿ íîâîñòåé", +'mass_edit_rate_fr1' => "Âû óâåðåíû, ÷òî õîòèòå ðàçðåøèòü ðåéòèíã äëÿ âûáðàííûõ", +'mass_edit_rate_fr2' => "Âû óâåðåíû, ÷òî õîòèòå çàïðåòèòü ðåéòèíã äëÿ âûáðàííûõ", +'mass_edit_main' => "Îïóáëèêîâàòü íà ãëàâíîé", +'mass_edit_notmain' => "Ñíÿòü ïóáëèêàöèþ íà ãëàâíîé", +'mass_edit_main_tl' => "Ïóáëèêàöèÿ íîâîñòåé íà ãëàâíîé", +'mass_edit_main_fr1' => "Âû óâåðåíû, ÷òî õîòèòå îïóáëèêîâàòü íà ãëàâíîé âûáðàííûå", +'mass_edit_main_fr2' => "Âû óâåðåíû, ÷òî õîòèòå ñíÿòü ñ ãëàâíîé âûáðàííûå", +'mass_edit_fix' => "Çàôèêñèðîâàòü íîâîñòè", +'mass_edit_notfix' => "Ñíÿòü ôèêñàöèþ", +'mass_edit_fix_tl' => "Ôèêñàöèÿ íîâîñòåé íà ñàéòå", +'mass_edit_fix_fr1' => "Âû óâåðåíû, ÷òî õîòèòå çàôèêñèðîâàòü âûáðàííûå", +'mass_edit_fix_fr2' => "Âû óâåðåíû, ÷òî õîòèòå îïóñòèòü âûáðàííûå", +'mass_confirm_2' => "íîâîñòåé?", +'opt_sys_file4' => "Âêëþ÷èòü ïîääåðæêó äîêà÷èâàíèÿ ôàéëîâ ïðè ñêà÷èâàíèè", +'opt_sys_file4d' => "Âû ìîæåòå ðàçðåøèòü èëè çàïðåòèòü èñïîëüçîâàíèå äîêà÷êè ôàéëîâ äëÿ âàøèõ ïîëüçîâàòåëåé, ñêà÷èâàþùèõ ôàéë ñ ñàéòà, åñëè ïðîèçîøåë ðàçðûâ ñîåäèíåíèÿ ïðè ñêà÷èâàíèè.", +'opt_sys_file5' => "Ìàêñèìàëüíàÿ ñêîðîñòü ñêà÷èâàíèÿ (kb/s)", +'opt_sys_file5d' => "Âû ìîæåòå îãðàíè÷èòü ìàêñèìàëüíóþ ñêîðîñòü ñêà÷èâàíèÿ ôàéëà. Ìàêñèìàëüíàÿ ñêîðîñòü óêàçûâàåòñÿ â kb/s. Åñëè âû íå õîòèòå ñòàâèòü îãðàíè÷åíèé íà ñêîðîñòü ñêà÷èâàíèÿ ôàéëîâ, òî ïîñòàâüòå 0", +// 6.0 + +// 5.7 +'user_avatar' => "Çàãðóçêà àâàòàðà:", +'user_del_avatar' => "Óäàëèòü àâàòàð?", +'opt_sfind' => "Ïîèñê è Çàìåíà", +'opt_sfindc' => "Áûñòðûé ïîèñê è çàìåíà îïðåäåëåííîãî òåêñòà ïî âñåé áàçå äàííûõ", +'find_main' => "Áûñòðàÿ çàìåíà òåêñòà â áàçå äàííûõ ñêðèïòà", +'find_info' => "Äàííàÿ óòèëèòà ïðîèçâîäèò çàìåíó òåêñòà â âàøåé áàçå. Íàïðèìåð ó âàñ èçìåíèëñÿ äîìåí è âû õîòèòå åãî èçìåíèòü â âàøèõ íîâîñòÿõ, ñòàòè÷åñêèõ ñòðàíèöàõ, êîììåíòàðèÿõ è ò.ä.

Âíèìàíèå: Ïåðåä çàìåíîé íå çàáóäüòå ñîçäàòü ðåçåðâíóþ êîïèþ áàçû äàííûõ, ò.ê. äàííîå äåéñòâèå â ñëó÷àå íåêîððåêòíîé èëè íå ñîâñåì îæèäàåìîé çàìåíû, íåâîçìîæíî áóäåò îòìåíèòü. Ìû íàñòðîÿòåëüíî íå ðåêîìåíäóåì ïðîèçâîäèòü çàìåíó êîðîòêèõ ñëîâ èëè ïðåäëîãîâ, ò.ê. îíè ìîãóò âñòðå÷àòüñÿ â ñîñòàâå äðóãèõ ñëîâ.", +'find_ftable' => "Âûáåðåòå òàáëèöó äëÿ çàìåíû:", +'find_ftext' => "Ââåäèòå ñòàðûé òåêñò:", +'find_rtext' => "Ââåäèòå íîâûé òåêñò:", +'find_rstart' => "Ïðîèçâåñòè çàìåíó", +'find_rnews' => "â íîâîñòÿõ", +'find_rcomms' => "â êîììåíòàðèÿõ", +'find_rpm' => "â ïåðñîíàëüíûõ ñîîáùåíèÿõ", +'find_rstatic' => "â ñòàòè÷åñêèõ ñòðàíèöàõ", +'find_done_h' => "Çàìåíà çàâåðøåíà", +'find_done' => "Òåêñò â áàçå äàííûõ áûë óñïåøíî çàìåíåí.", +'mail_info_3' => "Íàñòðîéêà E-Mail ñîîáùåíèÿ, êîòîðîå îòñûëàåòñÿ ïðè äîáàâëåíèè íîâîé íîâîñòè íà ñàéòå", +'mail_news_info' => "Ïðè íàïèñàíèè øàáëîíà äëÿ äàííîãî ñîîáùåíèÿ âû ìîæåòå èñïîëüçîâàòü ñëåäóþùèå òåãè:
{%title%} - çàãîëîâîê íîâîñòè
{%username%} - ïîëüçîâàòåëü, äîáàâèâøèé íîâîñòü
{%date%} - äàòà äîáàâëåíèÿ íîâîñòè
{%category%} - êàòåãîðèÿ, â êîòîðóþ äîáàâëåíà íîâîñòü", +'mail_info_4' => "Íàñòðîéêà E-Mail ñîîáùåíèÿ, êîòîðîå îòñûëàåòñÿ ïðè äîáàâëåíèè íîâîãî êîììåíòàðèÿ íà ñàéòå", +'mail_comm_info' => "Ïðè íàïèñàíèè øàáëîíà äëÿ äàííîãî ñîîáùåíèÿ âû ìîæåòå èñïîëüçîâàòü ñëåäóþùèå òåãè:
{%link%} - ññûëêà íà íîâîñòü
{%username%} - ïîëüçîâàòåëü, äîáàâèâøèé êîììåíòàðèé
{%date%} - äàòà äîáàâëåíèÿ êîììåíòàðèÿ
{%ip%} - IP ïîëüçîâàòåëÿ
{%text%} - òåêñò êîììåíòàðèÿ
{%unsubscribe%} - ññûëêà ïî êîòîðîé ïîëüçîâàòåëü ìîæåò îòïèñàòüñÿ îò êîììåíòàðèåâ ê íîâîñòè", +'opt_sys_nmail' => "Îòñûëàòü E-Mail óâåäîìëåíèå ïðè ïîëó÷åíèè íîâûõ íîâîñòåé", +'opt_sys_cmaild' => "Åñëè 'Äà', ïðè äîáàâëåíèè êîììåíòàðèÿ íà ñàéòå, íà E-Mail óêàçàííûé â íàñòðîéêàõ áóäåò îòïðàâëåíî ñîîòâåòñòâóþùåå óâåäîìëåíèå.", +'bb_t_leech' => "Âñòàâêà çàùèùåííîé ññûëêè", +'opt_sys_nmaild' => "Åñëè 'Äà', ïðè äîáàâëåíèè íîâîñòè ñ ñàéòà, êîòîðîå îæèäàåò ìîäåðàöèè, íà E-Mail óêàçàííûé â íàñòðîéêàõ áóäåò îòïðàâëåíî ñîîòâåòñòâóþùåå óâåäîìëåíèå.", +'opt_sys_cmail' => "Îòñûëàòü E-Mail óâåäîìëåíèå àäìèíèñòðàòîðó ïðè äîáàâëåíèè êîììåíòàðèåâ", +'group_icon' => "Èêîíêà ãðóïïû", +'hint_gicon' => "Âû ìîæåòå çàäàòü ïóòü ê êàðòèíêå, êîòîðàÿ áóäåò íàçíà÷åíà äëÿ ýòîé ãðóïïû. Âû ìîæåòå èñïîëüçîâàòü òåã {THEME} äëÿ äèíàìè÷åñêîé çàãðóçêè êàðòèíêè èç ïàïêè øàáëîíà", +// 5.7 + +// 5.5 +'opt_sys_related' => "Îòîáðàæåíèå ïîõîæèõ íîâîñòåé", +'opt_sys_relatedd' => "Äàííûé ìîäóëü ïðîèçâîäèò êîíòåêñòîâûé ïîèñê ïîõîæèõ íîâîñòåé, ïðè ïðîñìîòðå ïîëíîé íîâîñòè. Îòêëþ÷åíèå äàííîãî ìîäóëÿ ïîçâîëèò ñíèçèòü íàãðóçêó íà MySQL ñåðâåð", +'anti_snap' => "Ñäåëàòü ñíèìîê", +'anti_snapalert' => "Âû óâåðåíû ÷òî ñïèñîê îáíàðóæåííûõ ôàéëîâ áåçîïàñåí, è âû õîòèòå ñäåëàòü íîâûé ñíèìîê ôàéëîâ.", +'anti_modified' => "íå ñîîòâåòñòâóåò ñäåëàííîìó ñíèìêó", +'anti_not' => "íåèçâåñòåí äèñòðèáóòèâó", +'anti_snap' => "Ñäåëàòü ñíèìîê", +'anti_creates' => "Ñíèìîê ñèñòåìíûõ ôàéëîâ ñêðèïòà è øàáëîíîâ óñïåøíî ñäåëàí", +'ip_found_comments' => "Ñïèñîê ïîëüçîâàòåëåé èñïîëüçîâàâøèõ äàííûé IP àäðåñ ïðè íàïèñàíèè êîììåíòàðèåâ", +'static_tpl' => "Èñïîëüçîâàòü øàáëîí", +'hint_stpl' => "Óêàæèòå íàçâàíèå øàáëîíà, êîòîðûé õîòèòå èñïîëüçîâàòü äëÿ äàííîé ñòàòè÷åñêîé ñòðàíèöû, âû ìîæåòå îñòàâèòü ýòî ïîëå ïóñòûì, òîãäà áóäåò èñïîëüçîâàí ñòàíäàðòíûé øàáëîí static.tpl", +'opt_sys_nodate' => "Ïîääåðæêà ïóáëèêàöèè íîâîñòåé íà åùå íå íàñòóïèâøóþ äàòó", +'opt_sys_nodated' => "Ïðè âêëþ÷åíèè äàííîé îïöèè ñêðèïò áóäåò ïîçâîëÿòü óñòàíàâëèâàòü äëÿ íîâîñòè åùå íå íàñòóïèâøóþ äàòó, è ïðè íàñòóïëåíèè äàííîé äàòû íîâîñòü áóäåò îïóáëèêîâàíà íà ñàéòå àâòîìàòè÷åñêè. Ïðè îòêëþ÷åíèè äàííîé îïöèè ñêðèïò áóäåò èñïîëüçîâàòü ñîêðàùåííûå çàïðîñû ê áàçå äàííûõ, ÷òî ñóùåñòâåííî ïîâûøàåò áûñòðîäåéñòâèå ñêðèïòà è ñíèæàåò íàãðóçêó íà ñåðâåð ïðè î÷åíü áîëüøèõ áàçàõ äàííûõ.", +'cat_s_tpl' => "Øàáëîí êîðîòêîé íîâîñòè", +'cat_s_tpl_hit' => "Ïîìèìî íàçíà÷åíèÿ îòäåëüíîãî øàáëîíà äëÿ äàííîé êàòåãîðèè, âû ìîæåòå óêàçàòü òîëüêî îòäåëüíûé ôàéë øàáëîíà äëÿ âûâîäà êðàòêèõ íîâîñòåé. Âû ìîæåòå îñòàâèòü ýòî ïîëå ïóñòûì, òîãäà áóäåò çàãðóæàòüñÿ ñòàíäàðòíûé ôàéë øàáëîíà shortstory.tpl", +'cat_f_tpl' => "Øàáëîí ïîëíîé íîâîñòè", +'cat_f_tpl_hit' => "Ïîìèìî íàçíà÷åíèÿ îòäåëüíîãî øàáëîíà äëÿ äàííîé êàòåãîðèè, âû ìîæåòå óêàçàòü òîëüêî îòäåëüíûé ôàéë øàáëîíà äëÿ âûâîäà ïîëíûõ íîâîñòåé. Âû ìîæåòå îñòàâèòü ýòî ïîëå ïóñòûì, òîãäà áóäåò çàãðóæàòüñÿ ñòàíäàðòíûé ôàéë øàáëîíà fullstory.tpl", +// 5.5 + +// 5.3 +'bb_t_emo' => "Âñòàâêà ñìàéëèêîâ", +'bb_t_up' => "Çàãðóçêà ôàéëîâ íà ñåðâåð", +'opt_sys_logextra' => "Ìåòîä àâòîðèçàöèè â àäìèíïàíåëè", +'opt_sys_logextrad' => "Ïðè âêëþ÷åíèè ðàñøèðåííîãî ìåòîäà àâòîðèçàöèè â àäìèíïàíåëè, êàæäàÿ íîâàÿ ñåññèÿ â àäìèíïàíåëè áóäåò òðåáîâàòü ïîâòîðíîãî ââîäà ïàðîëÿ, ÷òî ãàðàíòèðóåò íåâîçìîæíîñòü âõîäà â àäìèíïàíåëü, â ñëó÷àå êðàæè âàøèõ Cookies.
Âíèìàíèå äàííûé ìåòîä àâòîðèçàöèè áóäåò ðàáîòàòü, åñëè âàø PHP óñòàíîâëåí êàê ìîäóëü Apache, ïîýòîìó ïåðåä âêëþ÷åíèåì ðåêîìåíäóåì âàì óòî÷íèòü ðåæèì ðàáîòû PHP ó âàøåãî õîñòåðà", +'opt_sys_stdm' => "Ñòàíäàðòíûé ìåòîä", +'opt_sys_extram' => "Ðàñøèðåííûé ìåòîä", +'btn_clearcache' => "Î÷èñòèòü êåø", +'rss_info' => "Èñòî÷íèê:", +'stat_cache' => "Âíèìàíèå!
Îòñóòñòâóåò äîñòóï äëÿ çàïèñè â ïàïêè engine/cache/ è engine/cache/system/. Óñòàíîâèòå äëÿ ýòèõ ïàïîê CHMOD 777, à äëÿ âñåõ ôàéëîâ âíóòðè íèõ CHMOD 666!", +'nl_amail' => "Íå îòñûëàòü ïèñüìà òåì,
êòî íå õî÷åò ïîëó÷àòü ïèñåì ñ ñàéòà", +'opt_sys_align' => "Âûðàâíèâàíèå êàðòèíîê ïî óìîë÷àíèþ", +'opt_sys_alignd' => "Âûáåðèòå òèï âûðàâíèâàíèÿ äîáàâëÿåìûõ â íîâîñòü êàðòèíîê. Äàííûé òèï áóäåò ïðåäëàãàòüñÿ ïî óìîë÷àíèþ â âûïàäàþùèõ ìåíþ.", +'opt_sys_left' => "Ïî ëåâîìó êðàþ", +'opt_sys_center' => "Ïî öåíòðó", +'opt_sys_right' => "Ïî ïðàâîìó êðàþ", +'opt_sys_none' => "Áåç âûðàâíèâàíèÿ", +'opt_sys_ip' => "Êîíòðîëü èçìåíåíèÿ IP àäðåñà", +'opt_sys_ipd' => "Ñðåäíèé óðîâåíü - ïðîèñõîäèò àâòîìàòè÷åñêèé ñáðîñ àâòîðèçàöèè íà ñàéòå ïðè èçìåíåíèè IP àäðåñà ó âñåõ ïîëüçîâàòåëåé èìåþùèõ äîñòóï â àäìèíöåíòð

Âûñîêèé óðîâåíü - ïðîèñõîäèò àâòîìàòè÷åñêèé ñáðîñ àâòîðèçàöèè íà ñàéòå ïðè èçìåíåíèè IP àäðåñà ó âñåõ ïîñåòèòåëåé ñàéòà", +'opt_sys_ipn' => "Îòñóòñòâóåò", +'opt_sys_ipm' => "Ñðåäíèé óðîâåíü", +'opt_sys_iph' => "Âûñîêèé óðîâåíü", +'opt_iptools' => "IP Óòèëèòû", +'opt_iptoolsc' => "Ïîèñê çàðåãèñòðèðîâàííûõ ïîëüçîâàòåëåé ïî îïðåäåëåííîìó IP àäðåñó èëè ïî ïîäñåòè, à òàêæå ïîèñê âñåõ IP àäðåñîâ ó ïîëüçîâàòåëÿ", +'opt_ipfe' => "Âû ìîæåòå èñïîëüçîâàòü êàê ïîëíûé àäðåñ: 192.48.25.71, òàê è ñîêðàùåííûé: 129.42", +'ip_found_users' => "Ñïèñîê ïîëüçîâàòåëåé èñïîëüçîâàâøèõ äàííûé IP àäðåñ ïðè ðåãèñòðàöèè èëè àâòîðèçàöèè", +'user_ban' => "Çàáàíåí", +'banned_info' => "Íåîãðàíè÷åííî", +'cache_c' => "Êåøèðîâàòü ñ÷åò÷èê ïðîñìîòðîâ íîâîñòåé", +'cache_cd' => "Åñëè 'Íåò', òî ñ÷åò÷èê ïðîñìîòðîâ íîâîñòåé áóäåò îáíîâëÿòüñÿ ñ êàæäûì ïðîñìîòðîì. Åñëè 'Äà', êîëè÷åñòâî ïðîñìîòðîâ áóäåò çàïèñûâàòüñÿ â äðóãóþ òàáëèöó è îáíîâëÿòüñÿ êàæäûå 4 ÷àñà. Âêëþ÷åíèå äàííîé îïöèè ïîçâîëÿåò ñýêîíîìèòü ïðîöåññîðíîå âðåìÿ äëÿ áîëüøèõ ñàéòîâ.", +// 5.3 + +// 5.2 +'static_br_html' => "Ôèëüòðîâàííûé òåêñò ñ àâòîìàòè÷åñêèì ïåðåíîñîì ñòðîê", +'opt_rss' => "RSS èìïîðò íîâîñòåé", +'opt_rssc' => "Èìïîðòèðîâàíèå íîâîñòåé â ñîáñòâåííóþ áàçó äàííûõ ñ äðóãèõ ñàéòîâ, èñïîëüçóÿ RSS êàíàëû ýòèõ ñàéòîâ", +'rss_list' => "Ñïèñîê RSS êàíàëîâ", +'rss_url' => "URL RSS êàíàëà", +'rss_descr' => "Êðàòêîå îïèñàíèå", +'rss_new' => "Äîáàâèòü íîâûé êàíàë", +'rss_news' => "Ïîëó÷èòü íîâîñòè", +'rss_edit' => "Íàñòðîéêà êàíàëà", +'rss_del' => "Óäàëèòü êàíàë", +'rss_hurl' => "Ââåäèòå àäðåñ RSS êàíàëà èç êîòîðîãî áóäóò ïîëó÷àòüñÿ íîâîñòè. Íàïðèìåð http://dle-news.ru/rss.xml", +'rss_hdescr' => "Êðàòêîå îïèñàíèå RSS êàíàëà, íå áîëåå 255 ñèìâîëîâ", +'rss_full' => "Ïîëó÷àòü ïîëíûå íîâîñòè", +'rss_hfull' => "Åñëè \'Äà\', òî ïàðñåð òàêæå áóäåò çàãðóæàòü ïîëíûå ñòðàíèöû ñàéòà ïî ññûëêàì â RSS è ïîëó÷àòü òåêñò ïîëíîé íîâîñòè íà ñàéòå. Ïîìíèòå ýòî î÷åíü ðåñóðñîåìêèé ïðîöåññ.", +'rss_date' => "Äàòà íîâîñòåé", +'rss_date_1' => "Óñòàíîâèòü òåêóùóþ", +'rss_date_2' => "Èñïîëüçîâàòü èç êàíàëà", +'rss_main' => "Ïóáëèêîâàòü íà ãëàâíîé", +'rss_rating' => "Ðàçðåøèòü ðåéòèíã", +'rss_comm' => "Ðàçðåøèòü êîììåíòàðèè", +'rss_text_type' => "Êîíâåðòèðîâàíèå íîâîñòåé", +'rss_search' => "Ìàñêà äëÿ ïîèñêà", +'rss_hsearch' => "Ìàñêà ïîèñêà ïðèìåíÿåòñÿ äëÿ èìïîðòèðîâàíèÿ ïîëíûõ ñòàòåé ñ ñàéòîâ Ýòî ðåãóëÿðíîå âûðàæåíèå, êîòîðîå èñïîëüçóåò ñëåäóþùèå òåãè:
{skip} - ïðîïóñêàåò ëþáûå ñèìâîëû
{get} - ïîëó÷àåò òåêñò äëÿ íîâîñòè", +'rss_maxnews' => "Êîëè÷åñòâî íîâîñòåé", +'rss_hmaxnews' => "Èìïîðòèðîâàíèå íîâîñòåé äîñòàòî÷íî òÿæåëûé ïðîöåññ, íå ðåêîìåíäóåòñÿ óñòàíàâëèâàòü áîëüøèå çíà÷åíèÿ", +'rss_cookie' => "Cookies ñàéòà", +'rss_hcookie' => "Èíîãäà äëÿ ïîëó÷åíèÿ ïîëíîé èíôîðìàöèè ñ ñàéòà íåîáõîäèìà àâòîðèçàöèÿ íà ñàéòå. Âû ìîæåòå çàäàòü cookies êîòîðûå èñïîëüçóåò ñàéò äëÿ àâòîðèçàöèè, íàïðèìåð äëÿ ñàéòîâ íà DataLife Engine íåîáõîäèìî ââåñòè

dle_user_id=id
dle_password=71820d7c524

Íà êàæäîé íîâîé ñòðîêå çàäàåòñÿ íîâîå çíà÷åíèå cookies.", +'rss_password' => "Ïàðîëü", +'rss_ok1' => "Íîâûé RSS êàíàë óñïåøíî äîáàâëåí", +'rss_ok2' => "RSS êàíàë óñïåøíî îòðåäàêòèðîâàí", +'rss_err1' => "URL ÿâëÿåòñÿ îáÿçàòåëüíûì ïîëåì", +'rss_dofull' => "Ïîëó÷èòü ïîëíóþ íîâîñòü", +'rss_error' => "Íå óäàëîñü ïîëó÷èòü ïîëíóþ íîâîñòü, âîçìîæíî, íåâåðíî ñîñòàâëåí øàáëîí äëÿ ïîèñêà íîâîñòè", +'rss_addnews' => "Äîáàâèòü íîâîñòè â áàçó äàííûõ", +'rss_added' => "Âñå íîâîñòè óñïåøíî äîáàâëåíû â áàçó äàííûõ", +'rss_notadded' => "Íåò íîâîñòåé äëÿ äîáàâëåíèÿ â áàçó äàííûõ", +'opt_sys_sub' => "Âûâîäèòü íîâîñòè îïóáëèêîâàííûå â ñóáêàòåãîðèÿõ", +'opt_sys_subd' => "Åñëè 'Äà', òî íîâîñòè îïóáëèêîâàííûå â ñóáêàòåãîðèÿõ áóäóò ïîêàçûâàòüñÿ òàêæå ïðè ïðîñìîòðå îñíîâíîé êàòåãîðèè.  ïðîòèâíîì ñëó÷àå âàì íåîáõîäèìî áóäåò óêàçûâàòü íåñêîëüêî êàòåãîðèé ïðè ïóáëèêàöèè íîâîñòè.", +'btn_descr' => "Ñãåíåðèðîâàòü îïèñàíèå", +'btn_keyword' => "Ñãåíåðèðîâàòü êëþ÷åâûå ñëîâà", +'clean_pm' => "

4. Î÷èñòêà ïåðñîíàëüíûõ ñîîáùåíèé ïîëüçîâàòåëåé

Âû ìîæåòå î÷èñòèòü âñå ïåðñîíàëüíûå ñîîáùåíèÿ âàøèõ ïîëüçîâàòåëåé. Ýòî ïîçâîëèò âàì óìåíüøèòü ðàçìåðû âàøåé áàçû äàííûõ, îäíàêî âàøè ïîñåòèòåëè ïîòåðÿþò âñå ñîîáùåíèÿ, êîòîðûå îíè õðàíÿò â ñâîåì ÿùèêå, âîçìîæíî íåêîòîðûå ñîîáùåíèÿ âàæíûå. Ìû ðåêîìåíäóåì âàì çàðàíåå óâåäîìëÿòü âàøèõ ïîñåòèòåëåé î òîì ÷òî áóäåò ïðîèçâåäåíà î÷èñòêà ïåðñîíàëüíûõ ñîîáùåíèé ñ öåëüþ óìåíüøåíèÿ áàçû äàííûõ.", +'bb_t_hide' => "Âñòàâêà ñêðûòîãî òåêñòà", +'bb_t_video' => "Âñòàâêà âèäåî", +// 5.2 + +'opt_sys_sbar' => "Âêëþ÷èòü ìîäóëü 'speedbar'", +'opt_sys_sbard' => "Äàííûé ìîäóëü ïîêàçûâàåò òåêóùåå ìåñòîíàõîæäåíèå ïîñåòèòåëÿ íà ñàéòå, âêëþ÷àÿ êàòåãîðèè, ïîäêàòåãîðèè è ò.ä.", +'opt_sm_speed' => "Ìîäóëü 'speedbar'", +'opt_sm_speedd' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä ìîäóëÿ êîòîðûé ïîêàçûâàåò òåêóùåå ìåñòîíàõîæäåíèå ïîñåòèòåëÿ íà ñàéòå, âêëþ÷àÿ êàòåãîðèè, ïîäêàòåãîðèè è ò.ä.", +'opt_secrsys' => "Íàñòðîéêè áåçîïàñíîñòè ñêðèïòà", +'opt_sys_sxfield' => "Áåçîïàñíûé ðåæèì äëÿ äîïîëíèòåëüíûõ ïîëåé", +'opt_sys_sxfieldd' => "Åñëè âû âûáåðåòå 'Äà' òî ïðè äîáàâëåíèè èíôîðìàöèè â äîïîëíèòåëüíûå ïîëÿ íîâîñòåé áóäåò èñïîëüçîâàòüñÿ áåçîïàñíûé ðåæèì è èñïîëüçîâàíèå HTML â äàííûõ ïîëÿõ áóäåò çàïðåùåíî.", +'add_metatags' => "Ðó÷íîå äîáàâëåíèå ìåòàòåãîâ äëÿ ñòàòüè", +'xf_lat' => "Ëàòèíñêèìè áóêâàìè", +'static_new' => "Ñîçäàòü íîâóþ ñòðàíèöó", +'poll_new' => "Íîâûé îïðîñ", +'opt_sys_mail' => "Íàñòðîéêè E-Mail", +'opt_sys_mm' => "Ìåòîä îòïðàâêè ïî÷òû", +'opt_sys_mmd' => "Åñëè ôóíêöèÿ PHP mail() íåäîñòóïíà, âûáåðèòå ìåòîä SMTP", +'opt_sys_smtph' => "SMTP õîñò", +'opt_sys_smtphd' => "Îáû÷íî — localhost", +'opt_sys_smtpp' => "SMTP Ïîðò", +'opt_sys_smtppd' => "Îáû÷íî — 25", +'opt_sys_smtup' => "SMTP Èìÿ ïîëüçîâàòåëÿ", +'opt_sys_smtpud' => "Íå òðåáóåòñÿ â áîëüøèíñòâå ñëó÷àåâ, êîãäà èñïîëüçóåòñÿ 'localhost'", +'opt_sys_smtupp' => "SMTP Ïàðîëü", +'opt_sys_smtpupd' => "Íå òðåáóåòñÿ â áîëüøèíñòâå ñëó÷àåâ, êîãäà èñïîëüçóåòñÿ 'localhost'", +'opt_sys_mbcc' => "Èñïîëüçîâàòü ïîëå BCC äëÿ ðàññûëêè", +'opt_sys_mbccd' => "Åñëè âû âûáåðåòå 'Äà' òî ïðè ðàññûëêå ñîîáùåíèé â êà÷åñòâå ïîëó÷àòåëåé áóäåò óêàçàíî íåñêîëüêî àäðåñàòîâ, ÷òî ïîçâîëÿåò ñîêðàòèòü îáùåå âðåìÿ îòïðàâêè ñîîáùåíèé è êîëè÷åñòâî îòïðàâëåííûõ ñîîáùåíèé.", + +'b_select' => "Íàçíà÷èòü", +'opt_sys_loghash' => "Ñáðàñûâàòü êëþ÷ àâòîðèçàöèè ïðè êàæäîì âõîäå?", +'opt_sys_loghashd' => "Åñëè 'Äà', êàæäàÿ óñïåøíàÿ àâòîðèçàöèÿ ïîëüçîâàòåëÿ íà ñàéòå áóäåò ñáðàñûâàòü åãî êëþ÷ àâòîðèçàöèè. Ýòî ñäåëàåò íåâîçìîæíûì âîéòè ïîä îäíèì èìåíåì ïîëüçîâàòåëÿ áîëåå, ÷åì ñ îäíîãî êîìïüþòåðà.", +'opt_sys_codeñd' => "Îòîáðàæåíèå êîäà áåçîïàñíîñòè ïðè íàïèñàíèè êîììåíòàðèåâ èëè ïðè îòïðàâêå ïåðñîíàëüíûõ ñîîáùåíèé, äëÿ çàùèòû îò ñïàì áîòîâ íà ñàéòå", +'opt_sys_imw' => "Àâòîìàòè÷åñêîå èçìåíåíèå ðàçìåðà äëÿ óäàëåííûõ èçîáðàæåíèé", +'opt_sys_imwd' => "Óêàæèòå ìàêñèìàëüíóþ øèðèíó êàðòèíêè äëÿ òåãà [img] [/img], ïîñëå êîòîðîé èçîáðàæåíèå áóäåò ïðîïîðöèîíàëüíî óìåíüøåíî, äî óêàçàííîãî ðàçìåðà. Äëÿ îòêëþ÷åíèÿ àâòîìàòè÷åñêîãî óìåíüøåíèÿ ââåäèòå 0.", + +'group_main' => "Ðàçðåøèòü ïóáëèêîâàòü íà ãëàâíîé", +'group_main_hint' => "Âû ìîæåòå ðàçðåøèòü èëè çàïðåòèòü äàííîé ãðóïïå ïóáëèêîâàòü íîâîñòè íà ãëàâíîé ñòðàíèöå ñàéòà", +'clean_title' => "Ìàñòåð îïòèìèçàöèè áàçû äàííûõ", +'clean_all' => "Äîáðî ïîæàëîâàòü â Ìàñòåð îïòèìèçàöèè áàçû äàííûõ DataLife Engine. Ìû ïðåäëàãàåì âàì øàã çà øàãîì î÷èñòèòü âàøó áàçó äàííûõ îò óñòàðåâøåé èíôîðìàöèè, ïðîâåñòè îïòèìèçàöèþ è ñèíõðîíèçàöèþ âàøåé áàçû äàííûõ. Îáðàòèòå âíèìàíèå íà òî, ÷òî åñëè âû íå õîòèòå âûïîëíÿòü òî èëè èíîå äåéñòâèå, òî ïðîñòî âûáåðèòå \"ïðîïóñòèòü øàã\". Îáùèé ðàçìåð âàøåé áàçû äàííûõ, íà äàííûé ìîìåíò äî îïòèìèçàöèè ñîñòàâëÿåò: {datenbank}.", +'clean_skip' => "Ïðîïóñòèòü øàã", +'clean_news' => "

1. Óäàëåíèå óñòàðåâøèõ íîâîñòåé

Âû ìîæåòå óäàëèòü íîâîñòè, êîòîðûå óæå ïåðåñòàëè áûòü àêòóàëüíûìè è íå íóæíû âàì áîëüøå. Ââåäèòå äàòó äëÿ óäàëåíèÿ âñåõ íîâîñòåé, êîòîðûå áûëè äîáàâëåíû â áàçó äàííûõ ðàíåå âûáðàííîé äàòû. Ýòî äîñòàòî÷íî ðåñóðñîåìêàÿ îïåðàöèÿ, ïîýòîìó ìîæåò çàíÿòü äîâîëüíî ïðîäîëæèòåëüíîå âðåìÿ.", +'clean_comments' => "

2. Óäàëåíèå óñòàðåâøèõ êîììåíòàðèåâ

Ââåäèòå äàòó äëÿ óäàëåíèÿ âñåõ êîììåíòàðèåâ âàøèõ ïîñåòèòåëåé, êîòîðûå áûëè äîáàâëåíû â áàçó äàííûõ ðàíåå âûáðàííîé äàòû. Ýòî äîñòàòî÷íî ðåñóðñîåìêàÿ îïåðàöèÿ, ïîýòîìó ìîæåò çàíÿòü äîâîëüíî ïðîäîëæèòåëüíîå âðåìÿ.", +'clean_users' => "

3. Ïåðåñ÷åò ñòàòèñòèêè

Èíîãäà â ñëåäñòâèè ÷àñòîãî óäàëåíèÿ, èëè ýêñïîðòà ïîëüçîâàòåëåé, êîëè÷åñòâî íîâîñòåé è êîììåíòàðèåâ, çàêðåïëåííûõ çà ïîñåòèòåëÿìè, ìîæåò íå ñîîòâåòñòâîâàòü äåéñòâèòåëüíîñòè, ïîýòîìó âû ìîæåòå ïðîèçâåñòè ïåðåñ÷åò ñòàòèñòèêè ñàéòà. Ýòî äîñòàòî÷íî ðåñóðñîåìêàÿ îïåðàöèÿ, ïîýòîìó ìîæåò çàíÿòü äîâîëüíî ïðîäîëæèòåëüíîå âðåìÿ.", +'clean_logs' => "

5. Î÷èñòêà ëîãîâ ñêðèïòà

Âû ìîæåòå î÷èñòèòü âñå ëîãè ñêðèïòà. Ýòî ïîçâîëèò âàì óìåíüøèòü ðàçìåðû âàøåé áàçû äàííûõ, îäíàêî âàøè ïîñåòèòåëè ñìîãóò ïîâòîðíî ó÷àñòâîâàòü â îïðîñàõ â íîâîñòÿõ, à òàêæå â âûñòàâëåíèè ðåéòèíãà íîâîñòåé.", +'clean_finish' => "

Ðåçóëüòàòû îïòèìèçàöèè

Îïòèìèçàöèÿ âàøåé áàçû äàííûõ óñïåøíî çàâåðøåíà. Ðàçìåð âàøåé áàçû äàííûõ äî îïòèìèçàöèè ñîñòàâëÿë: {db-alt}, ïîñëå îïòèìèçàöèè ñîñòàâëÿåò: {db-new}.  èòîãå âû î÷èñòèëè áàçó äàííûõ íà: {db-compare}.", +'opt_sys_ajax' => "Èñïîëüçîâàíèå òåõíîëîãèè AJAX äëÿ íàâèãàöèè ïî ñàéòó", +'opt_sys_ajaxd' => "Âêëþ÷åíèå èëè îòêëþ÷åíèå ïåðåõîäà ïî ñòðàíèöàìè, ïðè ïîìîùè AJAX. Íå èñïîëüçóéòå äàííûé ìåòîä, åñëè èñïîëüçóåòå ïîêàç ðåêëàìû ìåæäó íîâîñòÿìè.", +'opt_sys_ban' => "Âêëþ÷èòü ïîääåðæêó óïðàâëåíèÿ ðåêëàìîé", +'opt_sys_band' => "Âêëþ÷åíèå èëè îòêëþ÷åíèÿ ìîäóëÿ óïðàâëåíèÿ ðåêëàìíûìè ìàòåðèàëàìè", +'opt_clean' => "Ìàñòåð îïòèìèçàöèè", +'opt_cleanc' => "Ìàñòåð îïòèìèçàöèè è î÷èñòêè áàçû äàííûõ, ïîçâîëÿþùèé ñóùåñòâåííî óâåëè÷èòü ñêîðîñòü ðàáîòû ñàéòà", +'opt_banner' => "Ðåêëàìíûå ìàòåðèàëû", +'opt_bannerc' => "Äîáàâëåíèå è óïðàâëåíèå ðåêëàìíûìè ìàòåðèàëàìè, êîòîðûå ïóáëèêóþòñÿ íà ñàéòå", +'opt_s_acc' => "Óïðàâëåíèå ïîëüçîâàòåëÿìè", +'opt_s_tem' => "Óïðàâëåíèå øàáëîíàìè", +'opt_s_fil' => "Óòèëèòû", +'opt_s_oth' => "Äðóãèå ðàçäåëû", + +'led_status' => "Ñòàòóñ", +'vote_aus' => "Ïðèîñòàíîâèòü", +'vote_ein' => "Âêëþ÷èòü îïðîñ", +'led_on_title' => "Îïðîñ âêëþ÷åí è äîñòóïåí äëÿ ãîëîñîâàíèÿ", +'led_off_title' => "Îïðîñ âðåìåííî ïðèîñòàíîâëåí", +'group_poll' => "Ðàçðåøèòü ãîëîñîâàòü â îïðîñàõ, îïóáëèêîâàííûõ â íîâîñòÿõ", +'group_poll_hint' => "Âû ìîæåòå ðàçðåøèòü èëè çàïðåòèòü äàííîé ãðóïïå ó÷àñòâîâàòü â îïðîñàõ, êîòîðûå äîáàâëÿþòñÿ â íîâîñòè", +'templ_poll' => "Îïðîñ â íîâîñòÿõ", +'templ_poll_i' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä îïðîñà â íîâîñòÿõ.", +'btn_send' => "Îòïðàâèòü", +'btn_preview' => "Ïðîñìîòð", +'tabs_news' => "Íîâîñòü", +'tabs_vote' => "Îïðîñ", +'tabs_extra' => "Äîïîëíèòåëüíî", +'tabs_perm' => "Äîñòóï", +'date_expires' => "Ñðîê äåéñòâèÿ äî:", +'hint_expires' => "Âàøà íîâîñòü áóäåò àâòîìàòè÷åñêè óäàëåíà èëè îòïðàâëåíà íà ìîäåðàöèþ, ïðè íàñòóïëåíèè óêàçàííîãî âðåìåíè. Îñòàâüòå äàííîå ïîëå ïóñòûì, åñëè õîòèòå ÷òîáû íîâîñòü èìåëà íåîãðàíè÷åííûé ñðîê äåéñòâèÿ.", +'hint_ftitle' => "Óêàæèòå çàãîëîâîê âàøåãî îïðîñà.", +'v_ftitle' => "Çàãîëîâîê Îïðîñà", +'v_multi' => "Ðàçðåøèòü âûáîð íåñêîëüêèõ âàðèàíòîâ", +'v_info' => "Äîáàâëåíèå îïðîñà ê íîâîñòè ÿâëÿåòñÿ íåîáÿçàòåëüíûì ïàðàìåòðîì, ïîýòîìó åñëè âû íå õîòèòå äîáàâëÿòü îïðîñ ê äàííîé íîâîñòè, òî ïðîñòî îñòàâüòå âñå ïîëÿ ïóñòûìè.", +'tabs_g_info' => "Âíèìàíèå:  äàííîì ðàçäåëå íàñòðàèâàþòñÿ, äîïîëíèòåëüíûå ïàðàìåòðû äîñòóïà ê íîâîñòè äëÿ ðàçëè÷íûõ ãðóïï, äàííûå ïàðàìåòðû äåéñòâèòåëüíû òîëüêî äëÿ ïðîñìîòðà ïîëíîé íîâîñòè.", +'tabs_not' => "Ó âàñ íåäîñòàòî÷íî ïðàâ, äëÿ èñïîëüçîâàíèÿ äàííîé âêëàäêè", + +'ng_group' => "Íàñòðîéêè ãðóïïû", +'ng_read' => "Òîëüêî ïðîñìîòð", +'ng_all' => "Ïðîñìîòð è êîììåíòèðîâàíèå", +'ng_denied' => "Çàïðåòèòü ïðîñìîòð", + +'a_feed' => "Èñïîëüçîâàíèå îáðàòíîé ñâÿçè", +'a_search' => "Èñïîëüçîâàíèå ïîèñêà ïî ñàéòó", +'hint_gasearch' => "Ðàçðåøåíèå ïîëüçîâàòåëþ íà èñïîëüçîâàíèå ïîèñêà ïî ñàéòó", +'hint_gafeed' => "Ðàçðåøåíèå ïîëüçîâàòåëþ íà èñïîëüçîâàíèå îáðàòíîé ñâÿçè íà ñàéòå, äëÿ îòïðàâêè e-mail çàðåãèñòðèðîâàííûì ïîñåòèòåëÿì ñàéòà.  ñëó÷àå çàïðåòà, îí ñìîæåò îòñûëàòü ïèñüìà òîëüêî àäìèíèñòðàöèè ñàéòà.", +'site_status' => "Ðåæèì ðàáîòû ñàéòà:", +'comm_view' => "Ïðîñìîòðåòü", +'comm_del' => "Óäàëèòü âñå", +'comm_alldel' => "Âñå êîììåíòàðèè äàííîãî ïîëüçîâàòåëÿ óäàëåíû", +'comm_alldelconfirm' => "Âû óâåðåíû, ÷òî õîòèòå óäàëèòü âñå êîììåíòàðèè äàííîãî ïîëüçîâàòåëÿ?", +'comm_einfo' => "Óïðàâëåíèå êîììåíòàðèÿìè", +'comm_ctext' => "Òåêñò êîììåíòàðèÿ", +'bb_b_apply' => "Ïðèíÿòü", +'ajax_info' => "Ïîæàëóéñòà, ïîäîæäèòå...", +'mass_dcomm' => "Âû íå âûáðàëè êîììåíòàðèè, êîòîðûå íåîáõîäèìî óäàëèòü", +'mass_delokc' => "Âñå âûáðàííûå Âàìè êîììåíòàðèè óñïåøíî óäàëåíû!", +'mod_anti' => "Àíòèâèðóñ", +'anti_descr' => "Ïðîâåðêà ïàïîê è ôàéëîâ ñêðèïòà íà íàëè÷èå ïîäîçðèòåëüíûõ ôàéëîâ, à òàêæå îòñëåæèâàíèå íåñàíêöèîíèðîâàííûõ èçìåíåíèé â ôàéëàõ", +'anti_title' => "Ïðîâåðêà ôàéëîâ ñêðèïòà ...", +'anti_box' => "Ïîäîæäèòå, èäåò ïðîâåðêà ôàéëîâ ñêðèïòà ...", +'anti_file' => "Èìÿ ôàéëà:", +'anti_path' => "Ïóòü ê ôàéëó:", +'anti_size' => "Ðàçìåð:", +'anti_global' => "Ïðîâåñòè òùàòåëüíîå ñêàíèðîâàíèå", +'anti_result' => "Îáíàðóæåíû ñëåäóþùèå ïîäîçðèòåëüíûå ôàéëû:", +'anti_notfound' => "Ïðè ñêàíèðîâàíèè äèñêà ïîäîçðèòåëüíûõ ôàéëîâ íå îáíàðóæåíî.", +'comm_move' => "Ïåðåìåñòèòü âñå íîâîñòè èç äàííîé êàòåãîðèè â", +'dle_version' => "Âåðñèÿ DataLife Engine:", +'dle_udate' => "Ïðîâåðèòü íàëè÷èå îáíîâëåíèé", +'dle_updatebox' => "Ïîäîæäèòå èäåò ïîäêëþ÷åíèå ê óäàëåííîìó ñåðâåðó ...", +'no_update' => "Íå óäàëîñü ïîäêëþ÷èòñÿ ê óäàëåííîìó ñåðâåðó, âîçìîæíî âàø ñåðâåð íå ïîääåðæèâàåò óäàëåííûå ñîåäèíåíèÿ, ëèáî ïðîèçîøåë ñáîé â ðàáîòå íàøèõ ñåðâåðîâ. Ïîâòîðèòå ïîïûòêó íåìíîãî ïîçäíåå ...", +'stat_allow' => "Ðàçðåøèòü ïðîñìîòð
äëÿ ñëåäóþùèõ ãðóïï:", + +'licence_info' => "Òèï ëèöåíçèè ñêðèïòà:", +'licence_trial' => "Íåàêòèâèðîâàííàÿ êîïèÿ", +'licence_full' => "Ëèöåíçèÿ àêòèâèðîâàíà", +'trial_info' => "Âíèìàíèå!
Âû èñïîëüçóåòå íåàêòèâèðîâàííóþ âåðñèþ ñêðèïòà. Äëÿ ñíÿòèÿ óñòàíîâëåííûõ îãðàíè÷åíèé âàì íåîáõîäèìî ââåñòè êëþ÷ àêòèâàöèè. Åñëè âû èñïîëüçóåòå ñêðèïò íà òåñòîâîì ñàéòå, òî íå àêòèâèðóéòå ñâîþ êîïèþ ñêðèïòà. Àêòèâàöèÿ ñêðèïòà ïðîõîäèò íà íàøåì ñåðâåðå http://dle-news.ru/, ïîýòîìó óáåäèòåñü, ÷òî èìååòñÿ èíòåðíåò ñîåäèíåíèå.", +'trial_login' => "Ëîãèí:", +'trial_key' => "Ââåäèòå êëþ÷ äëÿ àêòèâàöèè ëèöåíçèè:", +'trial_act' => "Àêòèâèðîâàòü", +'trial_limit' => "Áûëè ïðåâûøåíû ëèìèòû áåñïëàòíîé âåðñèè ñêðèïòà. Äàëüíåéøàÿ ðàáîòà íåâîçìîæíà.", +'trial_act1' => "Àêòèâàöèÿ DataLife Engine íå áûëà ïðîèçâåäåíà, íå óäàëîñü óñòàíîâèòü ïîäêëþ÷åíèå ê óäàëåííîìó ñåðâåðó. Ïîïðîáóéòå ïîâòîðèòü àêòèâàöèþ íåìíîãî ïîçäíåå.", +'trial_act2' => "Àêòèâàöèÿ DataLife Engine íå áûëà ïðîèçâåäåíà, ââåäåííûå äàííûå íå ñîîòâåòñòâóþò íåîáõîäèìûì, ëèáî äàííàÿ êîïèÿ áûëà óæå àêòèâèðîâàíà íà äðóãîì ñåðâåðå.", +'trial_act3' => "Áëàãîäàðèì âàñ çà ïîêóïêó íàøåãî ñêðèïòà. Íàäååìñÿ, ÷òî ðàáîòà ñ íèì äîñòàâèò Âàì òîëüêî óäîâîëüñòâèå!!!  ñëó÷àå îáíàðóæåíèÿ êàêèõ ëèáî îøèáîê â äèñòðèáóòèâå, ñîîáùèòå íàì îá ýòîì íà E-Mail: support@dle-news.ru", +'trial_act4' => "Âíèìàíèå â ñâÿçè ñî ñáîÿìè â ðàáîòå íàøåãî ñåðâåðà àêòèâàöèÿ ñêðèïòà íå ìîæåò áûòü ïðîèçâåäåíà. Ïîâòîðèòå ïîïûòêó ïîçäíåå.", + +'sys_global' => "Ãëîáàëüíûå íàñòðîéêè", +'hint_news_number' => "Êîëè÷åñòâî íîâîñòåé íà îäíó ñòðàíèöó â äàííîé êàòåãîðèè, îñòàâüòå ïóñòûì èëè ïîñòàâüòå 0, åñëè õîòèòå èñïîëüçîâàòü ãëîáàëüíûå íàñòðîéêè ñêðèïòà.", +'opt_xprof' => "Íàñòðîéêà ïðîôèëÿ", +'opt_xprofd' => " äàííîì ðàçäåëå ïðîâîäèòñÿ íàñòðîéêà äîïîëíèòåëüíûõ ïîëåé ïðîôèëÿ ïîëüçîâàòåëåé", + +'ip_block' => "Âíèìàíèå, Âû âêëþ÷èëè àâòîìàòè÷åñêóþ áëîêèðîâêó ïî IP âàøåãî àêêàóíòà, äîñòóï ê âàøåìó àêêàóíòó ñ äàííîé ïîäñåòè çàïðåùåí.", +'xp_reg' => "Äîáàâèòü íà ñòðàíèöó ðåãèñòðàöèè?", +'xp_privat' => "Ñäåëàòü ýòî ïîëå ëè÷íûì?", +'xp_edit' => "Ïîëå ìîæåò áûòü èçìåíåíî ïîëüçîâàòåëåì?", +'xp_descr' => "Îïèñàíèå ïîëÿ", +'xp_edith' => "Ðåäàêòèðîâàíèå", +'xp_privath' => "Ëè÷íîå", +'xp_regh' => "Ïðè ðåãèñòðàöèè", +'xp_xlist' => "Ñïèñîê äîïîëíèòåëüíûõ ïîëåé ïðîôèëÿ ïîëüçîâàòåëåé", +'hint_metas' => "Ìåòàòåãè äëÿ äàííîé ñòàòüè ìîãóò áûòü äîáàâëåíû âðó÷íóþ ëèáî ñãåíåðèðîâàíû àâòîìàòè÷åñêè. Îñòàâüòå ïîëÿ ïóñòûìè è ìåòàòåãè áóäóò ñôîðìèðîâàíû àâòîìàòè÷åñêè.", + +'xp_reg_hint' => "Ïðè âûáîðå \'Äà\', ýòî äîïîëíèòåëüíîå ïîëå áóäåò ïðåäëîæåíî çàïîëíèòü ïðè ðåãèñòðàöèè.", +'xp_privat_hint' => "Ïðè âûáîðå \'Äà\', ïîëå áóäåò âèäèìûì òîëüêî äëÿ ñàìîãî ïîëüçîâàòåëÿ, è àäìèíèñòðàòîðîâ. Ïðè âûáîðå \'Íåò\', îñòàëüíûå ïîëüçîâàòåëè ñìîãóò âèäåòü ýòî ïîëå.", +'xp_edit_hint' => "Ïðè âûáîðå \'Íåò\', ïîëüçîâàòåëü íå ñìîæåò ðåäàêòèðîâàòü ýòî ïîëå, íî ñìîãóò àäìèíèñòðàòîðû.", + +'mass_ddenied' => "Ó âàñ íåò ïðàâ äîñòóïà äëÿ âûïîëíåíèÿ ìàññîâûõ äåéñòâèé", +'skin_name' => "Âû âîøëè êàê:", +'opt_sys_reggroup' => "Ðåãèñòðèðîâàòü íîâûõ ïîëüçîâàòåëåé â ãðóïïå:", +'opt_sys_reggroupd' => "Âûáåðèòå ãðóïïó â êîòîðóþ áóäóò ïîìåùåíû íîâûå ïîëüçîâàòåëè ïîñëå ðåãèñòðàöèè", +'user_gtlimit' => " ãðóïïå äî:", +'opt_sys_file3' => "Áëîêèðîâàòü ñêà÷èâàíèå ôàéëîâ ñ äðóãèõ ñåðâåðîâ", +'opt_sys_file3d' => "Âêëþ÷åíèå áëîêèðîâêè ñêà÷èâàíèÿ çàãðóæåííûõ ôàéëîâ ñ äðóãèõ ñåðâåðîâ, êðîìå âàøåãî", +'group_notdel' => "Óäàëåíèå äàííîé ãðóïïû ïîëüçîâàòåëåé íåâîçìîæíî", +'group_move' => "Ïåðåìåñòèòü âñåõ ïîëüçîâàòåëåé äàííîé ãðóïïû â", +'group_err1' => "Íå çàäàíî èìÿ ãðóïïû ïîëüçîâàòåëåé", +'group_ok1' => "Íîâàÿ ãðóïïà ïîëüçîâàòåëåé óñïåøíî äîáàâëåíà", +'group_ok2' => "Èçìåíåíèÿ â ãðóïïó óñïåøíî âíåñåíû", +'group_new' => "Ñîçäàòü ãðóïïó", +'group_new1' => "Äîáàâëåíèå íîâîé ãðóïïû ïîëüçîâàòåëåé", +'group_edit' => "Îòðåäàêòèðîâàòü ãðóïïó", +'group_edit1' => "Ðåäàêòèðîâàíèå ãðóïïû: ", +'group_name' => "Íàçâàíèå ãðóïïû", +'group_ct' => "Äîñòóïíûå ðàçäåëû", +'group_alct' => "Äîâåðèòåëüíûå ðàçäåëû", +'group_aadm' => "Ðàçðåøèòü äîñòóï â àäìèíïàíåëü", +'group_shid' => "Ñêðûâàòü òîëüêî ïîëíóþ íîâîñòü èç íåäîñòóïíûõ ðàçäåëîâ", +'group_adds' => "Ðàçðåøèòü äîáàâëÿòü íîâîñòè c ñàéòà", +'group_moder' => "Ïóáëèêîâàòü íîâîñòè áåç ïðîâåðêè", +'group_edit2' => "Ðåäàêòèðîâàíèå ñîáñòâåííûõ íîâîñòåé", +'group_edit3' => "Ðåäàêòèðîâàíèå âñåõ íîâîñòåé", +'group_addc' => "Ðàçðåøèòü äîáàâëåíèå êîììåíòàðèåâ", +'group_editc' => "Èçìåíåíèå ñâîèõ êîììåíòàðèåâ", +'group_delc' => "Óäàëåíèå ñâîèõ êîììåíòàðèåâ", +'group_allc' => "Èçìåíåíèå âñåõ êîììåíòàðèåâ", +'group_dllc' => "Óäàëåíèå âñåõ êîììåíòàðèåâ", +'group_hic' => "Ïðîñìîòð ñêðûòîãî òåêñòà", +'group_apm' => "Ðàçðåøèòü èñïîëüçîâàíèå PM", +'group_afil' => "Ðàçðåøèòü ñêà÷èâàíèå ôàéëîâ", +'group_tlim' => "Âðåìåííîå ðàçìåùåíèå â ãðóïïå", +'group_rlim' => "Îñíîâíàÿ ãðóïïà ïî îêîí÷àíèè ëèìèòà", +'group_mpm' => "Ìàêñèìàëüíîå êîëè÷åñòâî PM", +'group_mfot' => "Ìàêñèìàëüíûé ðàçìåð àâàòàðà", +'group_sel1' => "Ðåäàêòèðîâàòü", +'group_sel2' => "Óäàëèòü", +'group_sel3' => "Óäàëèòü íåâîçìîæíî", +'group_sel4' => "Ïîëüçîâàòåëåé", +'group_sel5' => "Íîâàÿ ãðóïïà", +'group_fixed' => "Ðàçðåøèòü ôèêñèðîâàòü íîâîñòè", + + +'group_del' => "Âûáðàííàÿ ãðóïïà áûëà óñïåøíà óäàëåíà", +'group_list' => "Ñïèñîê ãðóïï ïîëüçîâàòåëåé", +'hint_gtitle' => "Êðàòêîå íàçâàíèå ãðóïïû íå áîëåå 20 ñèìâîëîâ.", +'hint_gmod' => "Åñëè äà, òî ïîëüçîâàòåëü ñìîæåò ïóáëèêîâàòü íîâîñòè â äîâåðèòåëüíûå ðàçäåëû áåç ïðîâåðêè àäìèíèñòðàòîðîì.", +'hint_gned' => "Ðàçðåøåíèå íà ðåäàêòèðîâàíèå ñîáñòâåííûõ ïóáëèêàöèé äàæå ïîñëå îïóáëèêîâàíèÿ íà ñàéòå.", +'hint_gnaed' => "Ðàçðåøåíèå íà ðåäàêòèðîâàíèå ëþáûõ ïóáëèêàöèé íà ñàéòå èç äîâåðèòåëüíûõ ðàçäåëîâ.", +'hint_gañ' => "Ðàçðåøåíèå ïîëüçîâàòåëþ äîáàâëÿòü êîììåíòàðèè íà ñàéòå.", +'hint_geñ' => "Ðàçðåøåíèå ïîëüçîâàòåëþ ðåäàêòèðîâàòü ñîáñòâåííûå êîììåíòàðèè.", +'hint_gdñ' => "Ðàçðåøèòü ïîëüçîâàòåëþ óäàëåíèå ñîáñòâåííûõ êîììåíòàðèåâ.", +'hint_gaeñ' => "Ðàçðåøåíèå ïîëüçîâàòåëþ ðåäàêòèðîâàòü ëþáûå êîììåíòàðèè.", +'hint_gadñ' => "Ðàçðåøèòü ïîëüçîâàòåëþ óäàëåíèå ëþáûõ êîììåíòàðèåâ.", +'hint_gvhide' => "Ðàçðåøèòü ïîëüçîâàòåëþ ïðîñìîòð òåêñòà ìåæäó òåãàìè [HIDE] [/HIDE].", +'hint_gapm' => "Ðàçðåøèòü ïîëüçîâàòåëþ èñïîëüçîâàòü ïåðñîíàëüíûå ñîîáùåíèÿ íà ñàéòå.", +'hint_gafile' => "Ðàçðåøèòü ïîëüçîâàòåëþ ñêà÷èâàòü ïðèêðåïëåííûå ê íîâîñòè ôàéëû.", +'hint_gmpm' => "Ìàêñèìàëüíîå êîëè÷åñòâî ïåðñîíàëüíûõ ñîîáùåíèé, êîòîðîå ìîæåò ïîëó÷àòü è õðàíèòü ïîëüçîâàòåëü.", +'hint_gmphoto' => "Ñóùåñòâóåò äâå âîçìîæíîñòè èñïîëüçîâàíèÿ äàííîé íàñòðîéêè:

Ïåðâàÿ: Âû çàäàåòå ìàêñèìàëüíûé ðàçìåð â ïèêñåëÿõ ëþáîé èç ñòîðîí çàãðóæåííîãî àâàòàðà. Íàïðèìåð: 100

Âòîðàÿ: Âû çàäàåòå øèðèíó è âûñîòó çàãðóæàåìîãî àâàòàðà â ôîðìàòå øèðèíà x âûñîòà. Íàïðèìåð: 100x100

Äëÿ çàïðåòà çàãðóçêè àâàòàðîâ íà ñåðâåð ïîñòàâüòå 0.", +'hint_gadmin' => "Äàííàÿ îïöèÿ íå ïðåäîñòàâëÿåò ïîëíîãî äîñòóïà êî âñåì ðàçäåëàì àäìèíïàíåëè, à òîëüêî ðàçðåøàåò äîáàâëåíèå èëè ðåäàêòèðîâàíèå íîâîñòåé â àäìèíïàíåëè.", +'hint_gaad' => "Ðàçðåøåíèå ïîëüçîâàòåëÿì äîáàâëåíèå íîâîñòåé íà ñàéò.", +'hint_gadc' => " ñëó÷àå åñëè ïîëüçîâàòåëþ ðàçðåøåíî äîáàâëÿòü íîâîñòè áåç ïðîâåðêè, èëè ïîëüçîâàòåëþ ðàçðåøåíî ðåäàêòèðîâàòü íîâîñòè ïîëüçîâàòåëåé, âû ìîæåòå óêàçàòü â êàêèå ðàçäåëû îí ìîæåò äîáàâëÿòü íîâîñòè áåç ìîäåðàöèè, à òàêæå â êàêèõ ðàçäåëàõ ðåäàêòèðîâàòü íîâîñòè äðóãèõ ïîëüçîâàòåëåé.", +'hint_gasr' => "Ïðè âêëþ÷åíèè äàííîé îïöèè áóäåò áëîêèðîâàòüñÿ òîëüêî ïðîñìîòð ïîëíûõ íîâîñòåé èç íåäîñòóïíûõ ðàçäåëîâ, êðàòêèå íîâîñòè áóäóò ïîêàçûâàòüñÿ. Äàííàÿ îïöèÿ ïîçâîëÿåò óìåíüøèòü êðèòåðèè âûáîðêè íîâîñòåé, òåì ñàìûì óìåíüøèòü íàãðóçêó íà ñåðâåð", +'hint_glimit' => "Ðàçðåøåíèå íà âðåìåííîå ðàçìåùåíèå â äàííîé ãðóïïå, ïðè ïåðåíîñå ïîëüçîâàòåëÿ â äàííóþ ãðóïïó âû äîëæíû áóäåòå óêàçàòü êîëè÷åñòâî äíåé íà êîòîðîå îí òàì áóäåò ðàçìåùåí, ïîñëå ÷åãî ïîëüçîâàòåëü áóäåò àâòîìàòè÷åñêè ïåðåìåùåí â íèæå óêàçàííóþ ãðóïïó", +'hint_grid' => "Óêàæèòå ãðóïïó â êîòîðóþ áóäåò ïåðåìåùåí ïîëüçîâàòåëü ïî îêîí÷àíèè ñðîêà íàõîæäåíèÿ âî âðåìåííîé ãðóïïå", +'hint_glhel' => "Óêàæèòå äàòó äî êîòîðîé äàííûé ïîëüçîâàòåëü áóäåò íàõîäèòüñÿ â âûáðàííîé ãðóïïå. Ïðè óñëîâèè ÷òî ãðóïïà îòìå÷åíà êàê âðåìåííàÿ", +'hint_gfixed' => "Ðàçðåøèòü ïîëüçîâàòåëÿì ôèêñèðîâàòü íîâîñòè íà ñàéòå", + +'opt_group' => "Íàñòðîéêà ãðóïï ïîëüçîâàòåëåé", +'opt_groupc' => "Ñîçäàíèå è óïðàâëåíèå ðàçëè÷íûìè ãðóïïàìè ïîëüçîâàòåëåé íà ñàéòå, íàçíà÷åíèå ïðàâ äîñòóïà äëÿ ýòèõ ãðóïï", +'opt_sys_alc' => "Ðàçðåøèòü êîììåíòèðîâàòü íîâîñòè", +'opt_sys_alcd' => "Âêëþ÷åíèå èëè îòêëþ÷åíèå êîììåíòàðèåâ äëÿ âñåõ íîâîñòåé", +'meta_descr' => "Îïèñàíèå äëÿ ñòàòüè", +'meta_descr_cat' => "Îïèñàíèå äëÿ êàòåãîðèè", +'meta_descr_max' => "íå áîëåå 200 ñèìâîëîâ", +'meta_keys' => "Êëþ÷åâûå ñëîâà", + +'opt_sys_descr' => "Îïèñàíèå (Description) ñàéòà:", +'opt_sys_descrd' => "Êðàòêîå îïèñàíèå, íå áîëåå 200 ñèìâîëîâ", +'opt_sys_key' => "Êëþ÷åâûå ñëîâà (Keywords) äëÿ ñàéòà:", +'opt_sys_keyd' => "Ââåäèòå ÷åðåç çàïÿòóþ îñíîâíûå êëþ÷åâûå ñëîâà äëÿ âàøåãî ñàéòà", + +'opt_ipban' => "Ôèëüòð ïî: IP, Ëîãèíó èëè E-Mail", +'opt_ipbanc' => "Áëîêèðîâêà äîñòóïà íà ñàéò äëÿ îïðåäåëåííûõ IP, ëîãèíîâ èëè E-Mail àäðåñîâ ïðè ðåãèñòðàöèè íà ñàéòå", +'ip_add' => "Äîáàâëåíèå â ôèëüòð IP àäðåñà, Ëîãèíà èëè E-Mail", +'ip_example' => "Âû ìîæåòå âîñïîëüçîâàòüñÿ äàííûì ðàçäåëîì, ÷òîáû çàáëîêèðîâàòü îïðåäåëåííûå IP àäðåñà, èëè çàáëîêèðîâàòü îïðåäåëåííûå ýëåêòðîííûå àäðåñà, èìåíà ïîëüçîâàòåëåé ïðè ðåãèñòðàöèè. Ïðè ââîäå IP àäðåñà, òî äîñòóï íà ñàéò äàííîìó IP èëè ïîäñåòè çàêðûâàåòñÿ ïîëíîñòüþ, à íå òîëüêî äëÿ ðåãèñòðàöèè.

Ïðèìå÷àíèå: âû ìîæåòå âîñïîëüçîâàòüñÿ â ôèëüòðå ñèìâîëîì çâåçäî÷êè * äëÿ ïîäñòàíîâêè â èìÿ ïîëüçîâàòåëÿ, IP àäðåñ èëè ýëåêòðîííûé àäðåñ (íàïðèìåð: 127.0.*.*, *@mail.ru, username*).", +'ip_list' => "Ñïèñîê çàáëîêèðîâàííûõ IP àäðåñîâ, Ëîãèíîâ, E-Mail àäðåñîâ", +'ip_empty' => "Ñïèñîê ïóñò", +'ip_error' => "IP àäðåñ íå ìîæåò áûòü ïóñòûì", +'ip_unblock' => "Ðàçáëîêèðîâàòü", +'opt_sys_wdst' => "Âêëþ÷èòü WYSIWYG ðåäàêòîð ïðè ðåäàêòèðîâàíèè ñòàòè÷åñêèõ ñòðàíèö:", +'st_al_templ' => "Çàãðóæàòü øàáëîí äëÿ äàííîé ñòàòè÷åñêîé ñòðàíèöû", +'opt_sm_static' => "Ñòàòè÷åñêèå ñòðàíèöû", +'opt_sm_statd' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä ñòàòè÷åñêèõ ñòðàíèö", +'opt_filesys' => "Íàñòðîéêà çàãðóçêè ôàéëîâ íà ñåðâåð", +'opt_sys_file' => "Ðàçðåøèòü çàãðóçêó ôàéëîâ íà ñåðâåð", +'opt_sys_filed' => "Áóäåò ðàçðåøåíà çàãðóçêà íå òîëüêî êàðòèíîê íà ñåðâåð, íî è äðóãèõ ôàéëîâ", +'opt_sys_file1' => "Ðàñøèðåíèå ôàéëîâ, äîïóñòèìûõ ê çàãðóçêå", +'opt_sys_file1d' => "Óêàæèòå ÷åðåç çàïÿòóþ ðàñøèðåíèÿ ôàéëîâ, êîòîðûå ðàçðåøåíî çàêà÷èâàòü. Âíèìàíèå íå óêàçûâàéòå ðàñøèðåíèÿ äëÿ êàðòèíîê, îíè îïðåäåëÿþòñÿ ñêðèïòîì àâòîìàòè÷åñêè. Åñëè âû óêàæèòå ðàñøèðåíèÿ êàðòèíîê, òî îíè áóäóò ïðåäëàãàòüñÿ ñêðèïòîì ê ñêà÷èâàíèþ, à íå ê ïîêàçó.", +'opt_sys_file2' => "Âêëþ÷èòü ñ÷åò÷èê ñêà÷èâàíèé ôàéëà", +'opt_sys_file2d' => "Âêëþ÷åíèå ñ÷åò÷èêà óâåëè÷èâàåò íàãðóçêó íà ñåðâåð", +'files_upok' => "Ôàéë çàãðóæåí íà ñåðâåð", +'stat_install' => "Âíèìàíèå!
Ïîñëå óñòàíîâêè ñêðèïòà íà ñåðâåð Âû íå óäàëèëè ôàéë install.php - ýòî äåëàåò Âàø ñàéò óÿçâèìûì. Ïðåæäå ÷åì ïðîäîëæèòü ðàáîòó, óäàëèòå äàííûé ôàéë ñ Âàøåãî ñåðâåðà!", + +'opt_notcompress' => "Áåç ñæàòèÿ", +'b_method' => "Âûáåðåòå ìåòîä ñæàòèÿ áàçû äàííûõ:", +'b_save' => "Ñîõðàíèòü áàçó äàííûõ", +'b_restore' => "Âûáåðèòå ðåçåðâíóþ êîïèþ áàçû äàííûõ:", +'b_load' => "Âîññòàíîâèòü áàçó äàííûõ", + + +'edit_regdate' => "Äàòà ðåãèñòðàöèè:", +'edit_fdate' => "Îò", +'edit_tdate' => "Äî", +'edit_entedate' => "Äàòà ïîñëåäíåãî ïîñåùåíèÿ:", +'edit_newsnum' => "Êîëè÷åñòâî ñîîáùåíèé:", +'hint_newsnum' => "Ââåäèòå êîëè÷åñòâî íîâîñòåé äëÿ ïîèñêà.", +'hint_comsnum' => "Ââåäèòå êîëè÷åñòâî êîììåíòàðèåâ äëÿ ïîèñêà.", +'edit_comsnum' => "Êîëè÷åñòâî êîììåíòàðèåâ:", +'user_breset' => "Î÷èñòèòü", +'user_brestore' => "Âåðíóòü", +'user_coms' => "Êîììåíòàðèåâ:", +'user_order' => "Ïîðÿäîê ñîðòèðîâêè ïîëüçîâàòåëåé", +'user_order_no' => "----", +'user_order_minus' => "Ïî óáûâàíèþ", +'user_order_plus' => "Ïî âîçðàñòàíèþ", +'ban_date' => "Ñðîê îêîí÷àíèÿ áàíà:", +'ban_edate' => "Çàáàíåí äî:", +'ban_descr' => "Ïðè÷èíà áàíà:", +'hint_bandescr' => "Óêàæèòå êîëè÷åñòâî äíåé, â òå÷åíèè êîòîðûõ ïîëüçîâàòåëþ áóäåò çàïðåùåí äîñòóï íà ñàéò. Îñòàâüòå 0, åñëè ñðîê áëîêèðîâêè íåîãðàíè÷åí ïî âðåìåíè", + + +'allow_br' => "Àâòîìàòè÷åñêèé ïåðåíîñ ñòðîê", +'stat_banned' => "Èç íèõ áûëî çàáàíåíî:", +'cache_size' => "Îáùèé ðàçìåð êåøà:", +'free_size' => "Ðàçìåð ñâîáîäíîãî ìåñòà íà äèñêå:", +'cat_posi' => "Îòñîðòèðîâàòü êàòåãîðèè", + +'main_quick' => "Áûñòðûé äîñòóï ê ðàçäåëàì ñàéòà", +'main_newsl' => "Ðàññûëêà ñîîáùåíèé", +'main_newslc' => "Ñîçäàíèå è ìàññîâàÿ îòïðàâêà E-Mail èëè ïåðñîíàëüíûõ ñîîáùåíèé, äëÿ çàðåãèñòðèðîâàííûõ ïîëüçîâàòåëåé", +'news_list' => "Ñïèñîê ñòàòåé íà ñàéòå", +'b_start' => "Âûïîëíèòü", +'vote_new' => "Äîáàâèòü", +'vote_edit' => "Îòðåäàêòèðîâàòü", +'b_find' => "Íàéòè", +'b_create' => "Äîáàâèòü ïîëå", +'m_login' => "Àâòîðèçàöèÿ íà ñàéòå", +'b_login' => "Âîéòè", +'nl_main' => "Ïîäãîòîâêà ê îòïðàâêå ñîîáùåíèé", +'nl_empf' => "Ïîëó÷àòåëè:", +'nl_type' => "Òèï ñîîáùåíèÿ:", +'nl_pm' => "ÏÌ", +'nl_editor' => "Ðåäàêòîð ñîîáùåíèé:", +'nl_message' => "Òåêñò ñîîáùåíèÿ", +'nl_seng' => "Îòïðàâêà ñîîáùåíèÿ", +'nl_info' => "Âíèìàíèå èäåò îòñûëêà ñîîáùåíèé ïîëüçîâàòåëÿì, íå çàêðûâàéòå äàííîå îêíî äî òåõ ïîð, ïîêà íå áóäóò îòîñëàíû âñå ïèñüìà", +'nl_sendet' => "Îòïðàâëåíî ñîîáùåíèé:", +'nl_status' => "Ñòàòóñ:", +'nl_start' => "Íà÷àòü îòïðàâêó", +'nl_sinfo' => "îòïðàâêà ...", +'nl_error' => "îøèáêà îòïðàâêè", +'nl_finish' => "îòïðàâêà çàâåðøåíà", +'nl_mailerror' => "ñáîé ôóíêöèè mail", +'news_clearcomments' => "Óäàëèòü âñå êîììåíòàðèè", +'db_confirmclear' => "Âû óâåðåíû, ÷òî õîòèòå óäàëèòü âñå êîììåíòàðèè ê íîâîñòÿì?", +'extra_signature' => "Ïîäïèñü", + +'opt_sys_chars' => "Èñïîëüçóåìàÿ êîäèðîâêà íà ñàéòå:", +'opt_sys_charsd' => "Óêàæèòå êîäèðîâêó, êîòîðóþ èñïîëüçóåò âàø ñàéò", + +'hint_title' => "Çàãîëîâîê ñòàòüè îáÿçàòåëåí ê çàïîëíåíèþ è ìîæåò ñîäåðæàòü íå áîëåå 200 ñèìâîëîâ.", +'hint_url' => "×ÏÓ URL ñòàòüè ññûëêà äëÿ ïðîñìîòðà ñòàòüè â áðàóçåðå. Íåîáÿçàòåëüíûé ïàðàìåòð. Äîïóñòèìû òîëüêî ëàòèíñêèå ñèìâîëû.", +'hint_calendar' => "Äàòà ïóáëèêàöèè íîâîñòè. Åñëè óñòàíîâëåííàÿ äàòà åùå íå íàñòóïèëà, íîâîñòü áóäåò îïóáëèêîâàíà àâòîìàòè÷åñêè, â óêàçàííîå âðåìÿ.", +'hint_pass' => "Çàïîëíåíèå äàííîãî ïîëÿ íåîáõîäèìî òîëüêî â ñëó÷àå åñëè âû õîòèòå ñìåíèòü ñâîé òåêóùèé ïàðîëü.", +'hint_vtitle' => "Óêàæèòå âîïðîñ âàøåãî ãîëîñîâàíèÿ.", +'hint_vcat' => "Êàòåãîðèÿ â êîòîðîé áóäåò ïîêàçûâàòüñÿ âàø îïðîñ.", +'hint_stitle' => "Íàçâàíèå ñòàòè÷åñêîé ñòðàíèöû. Äîïóñòèìî èñïîëüçîâàíèå òîëüêî ëàòèíñêèõ ñèìâîëîâ áåç ïðîáåëîâ", +'hint_sdesc' => "Êðàòêîå îïèñàíèå ñòàòè÷åñêîé ñòðàíèöû.", +'hint_user' => "Ïî óìîë÷àíèþ â ñïèñêå ïîëüçîâàòåëåé âûâîäÿòñÿ òîëüêî ïîëüçîâàòåëè ñî ñòàòóñîì íå ìåíåå æóðíàëèñòà. Äëÿ ïðîñìîòðà ñïèñêà âñåõ ó÷àñòíèêîâ îñòàâüòå ïîëå äëÿ ïîèñêà ïóñòûì.", +'hint_banned' => "Îòìåòüòå äàííîå ïîëå, äëÿ òîãî ÷òîáû çàïðåòèòü ïîëüçîâàòåëþ äîñòóï íà ñàéò.", +'hint_catname' => "Èìÿ âàøåé íîâîé êàòåãîðèè. Äàííîå ïîëå îáÿçàòåëüíî ê çàïîëíåíèþ.", +'hint_cataltname' => "Èñïîëüçóåòñÿ äëÿ ïðîñìîòðà âñåõ ñòàòåé â äàííîé êàòåãîðèè. Äàííîå ïîëå îáÿçàòåëüíî ê çàïîëíåíèþ. Äîïóñòèìî èñïîëüçîâàíèå òîëüêî ëàòèíñêèõ ñèìâîëîâ", +'hint_caticon' => "Ññûëêà íà èêîíêó äëÿ äàííîé êàòåãîðèè, âûâîä íàñòðàèâàåòñÿ â øàáëîíàõ.", +'hint_cattempl' => "Âû ìîæåòå óñòàíîâèòü äëÿ äàííîé êàòåãîðèè îòäåëüíûé øàáëîí, îòëè÷íûé îò èñïîëüçóåìîãî ïî óìîë÷àíèþ.", +'hint_mail' => "Ââåäèòå E-Mail ó÷àñòíèêà äëÿ ïîèñêà.", + + +// add v.2.7 +'opt_sys_cpm' => "Êîëè÷åñòâî êîììåíòàðèåâ íà ñòðàíèöó", +'opt_sys_cpmd' => "Óêàæèòå ñêîëüêî êîììåíòàðèåâ âûâîäèòü íà îäíó ñòðàíèöó", +'opt_sys_csort' => "Ïîðÿäîê ñîðòèðîâêè êîììåíòàðèåâ", +'opt_sys_csortd' => "Âûáåðèòå ïîðÿäîê ñîðòèðîâêè êîììåíòàðèåâ", +// add v.2.6 + +'opt_sys_sort' => "Êðèòåðèé ñîðòèðîâêè íîâîñòåé", +'opt_sys_sortd' => "Âûáåðèòå êðèòåðèé äëÿ ñîðòèðîâêè íîâîñòåé", +'opt_sys_sdate' => "Ïî äàòå ïóáëèêàöèè", +'opt_sys_srate' => "Ïî ðåéòèíãó", +'opt_sys_sview' => "Ïî ïðîñìîòðàì", +'opt_sys_salph' => "Ïî àëôàâèòó", +'opt_sys_msort' => "Ïîðÿäîê ñîðòèðîâêè íîâîñòåé", +'opt_sys_msortd' => "Âûáåðèòå ïîðÿäîê ñîðòèðîâêè íîâîñòåé", +'opt_sys_mminus' => "Ïî óáûâàíèþ", +'opt_sys_mplus' => "Ïî âîçðàñòàíèþ", +'opt_sys_code' => "Êîä áåçîïàñíîñòè", +'opt_sys_coded' => "Îòîáðàæåíèå êîäà áåçîïàñíîñòè ïðè ðåãèñòðàöèè äëÿ çàùèòû îò àâòîìàòè÷åñêîé ðåãèñòðàöèè", +'edit_fix' => "Âàæíî:", +'edit_search_news' => "Ïîèñê ïî íîâîñòÿì:", +'addnews_allow_rate' => "Ðàçðåøèòü ðåéòèíã ñòàòüè", +'opt_newssys' => "Íàñòðîéêè âûâîäà íîâîñòåé", +'opt_sys_offline' => "Âûêëþ÷èòü ñàéò:", +'opt_sys_offlined' => "Ïåðåâåñòè ñàéò â ñîñòîÿíèå offline, äëÿ ïðîâåäåíèÿ òåõíè÷åñêèõ ðàáîò", +'opt_sm_offline' => "Âðåìåííî îòêëþ÷åííûé ñàéò", +'opt_sm_offd' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä ñòðàíèöû ïðè âðåìåííîì îòêëþ÷åíèè ñàéòà", +'extra_info' => "Äîïîëíèòåëüíàÿ èíôîðìàöèÿ", +'extra_minfo' => "Î ñåáå:", + + +// end 2.6 + +'undefined' => "Íåîïðåäåëåíî", + +'opt_ss_m' => "Îáùèé ìàêåò ñòðàíèöû", +'opt_ss_m1' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä îáùåãî ìàêåòà ñòðàíèöû", +'opt_cr_err' => "Íå óäàëîñü ñîçäàòü øàáëîí ñ âûáðàííûì èìåíåì", + + +'images_add_tl' => "Äîáàâèòü åùå îäíî ïîëå äëÿ çàãðóçêè êàðòèíêè", +'images_rem_tl' => "Óäàëèòü ïîñëåäíåå ïîëå äëÿ çàãðóçêè êàðòèíêè", +'images_align' => "Âûðàâíèâàíèå", +'images_left' => "Ïî ëåâîìó êðàþ", +'images_right' => "Ïî ïðàâîìó êðàþ", +'images_center' => "Ïî öåíòðó", +'images_water' => "Íàëîæèòü âîäÿíîé çíàê íà êàðòèíêó", +'images_big' => "Ñëèøêîì áîëüøîå èçîáðàæåíèå", + +'cat_parent' => "Îñíîâíàÿ êàòåãîðèÿ:", +'cat_skin' => "Óñòàíîâèòü äðóãîé øàáëîí äëÿ êàòåãîðèè:", +'cat_skin_sel' => "Øàáëîí ïî óìîë÷àíèþ", +'cat_skin_t' => "Øàáëîí", + +'opt_sys_sc' => "Ðàçðåøèòü ïîñåòèòåëÿì ñìåíó ñêèíà íà ñàéòå", +'opt_sys_scd' => "Åñëè Âû èñïîëüçóåòå íåñêîëüêî ñêèíîâ íà ñàéòå, òî âû ìîæåòå ðàçðåøèòü ïîñåòèòåëÿì ñìåíó ñêèíà", +'opt_r_v' => "Ãîëîñîâàíèå íà ñàéòå", +'opt_r_vd' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ ìîäóëü ãîëîñîâàíèé íà ñàéòå", + +'opt_sys_voc' => "Âêëþ÷èòü ãîëîñîâàíèÿ íà ñàéòå", +'opt_sys_vocd' => "Âêëþ÷åíèå èëè îòêëþ÷åíèÿ ìîäóëÿ îáùåãî ãîëîñîâàíèÿ íà ñàéòå", +'opt_sys_toc' => "Âêëþ÷èòü âûâîä ñàìûõ ðåéòèíãîâûõ ñòàòåé íà ñàéòå", +'opt_sys_tocd' => "Îòêëþ÷åíèå äàííîãî ìîäóëÿ ïîçâîëÿåò ñýêîíîìèòü 1 çàïðîñ ê áàçå äàííûõ", +'opt_sys_newc' => "Êîëè÷åñòâî íîâîñòåé íà ñòðàíèöó", +'opt_sys_newd' => "Êîëè÷åñòâî êðàòêèõ íîâîñòåé, êîòîðîå áóäåò âûâîäèòüñÿ íà ñòðàíèöó", + +'opt_general_sys' => "Íàñòðîéêà ïàðàìåòðîâ ñêðèïòà (èñïîëüçóéòå íàâèãàöèþ äëÿ äîñòóïà ê ðàçäåëàì)", +'opt_allsys' => "Îáùèå íàñòðîéêè ñêðèïòà", +'opt_commsys' => "Íàñòðîéêà êîììåíòàðèåâ", +'opt_dbsys' => "Îïòèìèçàöèÿ çàïðîñîâ ê áàçå äàííûõ", +'opt_usersys' => "Íàñòðîéêè äëÿ ïîëüçîâàòåëåé", +'opt_imagesys' => "Íàñòðîéêà ðàáîòû ñ èçîáðàæåíèÿìè", +'opt_sys_rn' => "Âêëþ÷èòü ñ÷åò÷èê ïðîñìîòðîâ íîâîñòåé", +'opt_sys_rnd' => "Îòêëþ÷åíèå ñ÷åò÷èêà ýêîíîìèò îäèí çàïðîñ", +'opt_sys_wda' => "Âêëþ÷èòü WYSIWYG ðåäàêòîð â àäìèíïàíåëè:", +'opt_sys_wdad' => "Åñëè 'Äà', òî áóäåò âêëþ÷åí WYSIWYG ðåäàêòîð, åñëè 'Íåò', òî áóäóò èñïîëüçîâàòüñÿ BBCODES", +'opt_sys_wds' => "Âêëþ÷èòü WYSIWYG ðåäàêòîð ïðè äîáàâëåíèè íîâîñòåé ñ ñàéòà", +'opt_sys_wdsd' => "Åñëè 'Äà', òî áóäåò âêëþ÷åí WYSIWYG ðåäàêòîð, åñëè 'Íåò', òî áóäóò èñïîëüçîâàòüñÿ BBCODES", +'opt_sys_wdcom' => "Âêëþ÷èòü WYSIWYG ðåäàêòîð äëÿ êîììåíòàðèåâ è ïåðñîíàëüíûõ ñîîáùåíèé", +'opt_sys_ncom' => "Íåãàòèâíûé êîììåíòàðèé", +'opt_sys_ncomd' => "Ðåéòèíã êîììåíòàðèÿ, ïðè êîòîðîì îí ñ÷èòàåòñÿ íåãàòèâíûì", +'opt_sys_npro' => "Êàê ïîñòóïàòü ñ íåãàòèâíûìè", +'opt_sys_nprod' => "Êàê ïîñòóïàòü ñ êîììåíòàðèåì åñëè îí ñòàíîâèòñÿ íåãàòèâíûì", +'opt_sys_npro_del' => "Óäàëèòü", +'opt_sys_npro_hid' => "Ñïðÿòàòü", +'opt_sys_wdscomd' => "Åñëè Äà òî áóäåò âêëþ÷åí WYSIWYG ðåäàêòîð, åñëè íåò òî áóäóò èñïîëüçîâàòüñÿ BBCODES", +'opt_sys_wdcom' => "Âêëþ÷èòü WYSIWYG ðåäàêòîð äëÿ êîììåíòàðèåâ è ïåðñîíàëüíûõ ñîîáùåíèé", +'opt_sys_aiu' => "Ðàçðåøèòü ïîëüçîâàòåëÿì çàãðóæàòü êàðòèíêè", +'opt_sys_aiud' => "Âû ìîæåòå ðàçðåøèòü èëè çàïðåòèòü ïîëüçîâàòåëÿì çàãðóæàòü èçîáðàæåíèÿ íà ñåðâåð ïðè äîáàâëåíèè íîâîñòè ñ ñàéòà", +'err_noupload' => "Àäìèíèñòðàòîðîì áûëà îòêëþ÷åíà âîçìîæíîñòü çàãðóçêè èçîáðàæåíèé íà ñåðâåð.", +'err_notlogged' => "Âû íå àâòîðèçèðîâàíû íà ñàéòå", +'opt_sys_cac' => "Âêëþ÷èòü êåøèðîâàíèå íà ñàéòå", +'opt_sys_cad' => "Êåøèðîâàíèå ñóùåñòâåííî ñîêðàùàåò íàãðóçêó íà ñåðâåð, ñâîäÿ êîëè÷åñòâî çàïðîñîâ ê ìèíèìóìó", +'opt_sys_dim' => "Àâòîìàòè÷åñêîå óäàëåíèå èçîáðàæåíèé", +'opt_sys_dimd' => "Ââåäèòå êîëè÷åñòâî äíåé ÷åðåç êîòîðîå áóäóò óäàëåíû êàðòèíêè êîòîðûå áûëè çàãðóæåíû íà ñåðâåð íî íå äîáàâëåíû â íîâîñòü", +'opt_sys_maxsize' => "Ìàêñèìàëüíî äîïóñòèìûé îáú¸ì èçîáðàæåíèÿ", +'opt_sys_maxsized' => "Ââåäèòå ìàêñèìàëüíûé îáú¸ì çàãðóæàåìîãî èçîáðàæåíèÿ (â êèëîáàéòàõ)", +'opt_vote' => "Óïðàâëåíèå ãîëîñîâàíèÿìè", +'opt_votec' => "Ñîçäàíèå è ðåäàêòèðîâàíèå ðàçëè÷íûõ îïðîñîâ èëè ãîëîñîâàíèé íà âàøåì ñàéòå", +'vote_nodata' => "Íà äàííûé ìîìåíò åùå íåáûëî ñîçäàíî îïðîñîâ íà ñàéòå", +'vote_count' => "Ãîëîñîâ", +'vote_action' => "Äåéñòâèå", +'vote_confirm' => "Âû äåéñòâèòåëüíî æåëàåòå óäàëèòü âûáðàííûé îïðîñ", +'vote_title' => "Âîïðîñ", +'vote_body' => "Âàðèàíòû îòâåòîâ", +'vote_str_1' => "Êàæäàÿ íîâàÿ ñòðîêà
ÿâëÿåòñÿ íîâûì âàðèàíòîì
îòâåòà", +'vote_str_2' => "Îïðîñ áûë óñïåøíî óäàëåí", +'vote_str_3' => "Îïðîñ áûë óñïåøíî äîáàâëåí", +'vote_str_4' => "Îïðîñ áûë óñïåøíî îáíîâëåí", +'vote_clear' => "Âû äåéñòâèòåëüíî æåëàåòå îáíóëèòü äàííûé îïðîñ", +'vote_clear1' => "Îáíóëèòü ðåçóëüòàòû ãîëîñîâàíèÿ", +'vote_clear2' => "î÷èñòèòü", +'vote_clear3' => "Ðåçóëüòàòû ãîëîñîâàíèÿ áûëè óñïåøíî î÷èùåíû", +'vote_alert' => "Âñå ïîëÿ îáÿçàòåëüíû ê çàïîëíåíèþ", + +'last_comm' => "ïîñëåäíèå êîììåíòàðèè", + +'skin_title' => "Ïàíåëü óïðàâëåíèÿ", +'skin_main' => "Ãëàâíàÿ", +'skin_view' => "Ïðîñìîòð ñàéòà", +'skin_help' => "Ïîìîùü", +'skin_logout' => "Âûõîä", +'skin_addnews' => "Äîáàâèòü íîâîñòü", +'skin_editnews' => "Ðåäàêòèðîâàòü íîâîñòü", +'skin_option' => "Íàñòðîéêè", + +'xfield_title' => "Äîáàâëåíèå íîâîãî äîïîëíèòåëüíîãî ïîëÿ", +'xfield_xname' => "Íàçâàíèå ïîëÿ", +'xfield_xdescr' => "Îïèñàíèå ïîëÿ", +'xfield_xcat' => "Êàòåãîðèÿ", +'xfield_xall' => "Âñå", +'xfield_xtype' => "Òèï ïîëÿ", +'xfield_xstr' => "Îäíà ñòðîêà", +'xfield_xarea' => "Íåñêîëüêî ñòðîê", +'xfield_xsel' => "Ñïèñîê", +'xfield_xfaul' => "Çíà÷åíèå ïî óìîë÷àíèþ", +'xfield_xw' => "Èñïîëüçîâàòü ïðè æåëàíèè (ìîæíî îñòàâèòü ïîëå ïócòûì)", +'xfield_xlist' => "Ñïèñîê äîïîëíèòåëüíûõ ïîëåé", +'xfield_xwt' => "Ïðè æåëàíèè", +'xfield_xnof' => "Äîïîëíèòåëüíûõ ïîëåé íåò!", +'xfield_xact' => "Âûáåðèòå äåéñòâèå", +'xfield_xedit' => "Ðåäàêòèðîâàòü", +'xfield_xdel' => "Óäàëèòü", +'xfield_xo' => "Ñäâèíóòü ââåðõ", +'xfield_xu' => "Ñäâèíóòü âíèç", +'xfield_xhelp' => "×òî òàêîå äîïîëíèòåëüíûå ïîëÿ?", +'xfield_xerr1' => "Âû äîëæíû çàïîëíèòü âñå íåîáõîäèìûå ïîëÿ.", +'xfield_xerr2' => "Íåäåéñòâèòåëüíûé çàïðîñ, âîçìîæíî îøèáêà â ìîäóëå", + +'safe_mode_on' => "Âêëþ÷åí", +'safe_mode_off' => "Âûêëþ÷åí", + +'time_0' => "Äîáðîå óòðî,", +'time_1' => "Äîáðûé äåíü,", +'time_2' => "Äîáðûé âå÷åð,", +'time_3' => "Äîáðîé íî÷è,", + +'stat_all' => "Îáùàÿ ñòàòèñòèêà ñàéòà:", +'stat_allnews' => "Îáùåå êîëè÷åñòâî íîâîñòåé:", +'stat_comments' => "Âñåãî êîììåíòàðèåâ:", +'stat_users' => "Çàðåãèñòðèðîâàíî ïîëüçîâàòåëåé:", +'stat_mod' => "Íîâîñòè îæèäàþùèå ïðîâåðêè:", +'stat_auto' => "Àâòîïðîâåðêà ñèñòåìû:", +'stat_php' => "Âåðñèÿ PHP:", +'stat_mysql' => "Âåðñèÿ MySQL:", +'stat_gd' => "Âåðñèÿ GD:", +'stat_safemode' => "Áåçîïàñíûé ðåæèì:", +'stat_maxmem' => "Âûäåëåíî îïåðàòèâíîé ïàìÿòè:", +'stat_func' => "Îòêëþ÷åííûå ôóíêöèè:", +'stat_bd' => "Ðàçìåð áàçû äàííûõ:", +'stat_maxfile' => "Ìàêñèìàëüíûé ðàçìåð çàãðóæàåìîãî ôàéëà:", +'stat_bild' => "Ðàçìåð ïàïêè Uploads:", + +'stat_phperror' => "Âíèìàíèå!
Âåðñèÿ php-èíòåðïðåòàòîðà, óñòàíîâëåííàÿ íà ñåðâåðå, ñëèøêîì ñòàðàÿ. Âîçìîæíà íåêîððåêòíàÿ ðàáîòà ñêðèïòà ñ ýòîé âåðñèåé, ïîýòîìó ìû ðåêîìåíäóåì ñâÿçàòüñÿ ñ àäìèíèñòðàöèåé õîñòèíãà äëÿ îáíîâëåíèÿ âåðñèè php! Ñêà÷àòü ïîñëåäíþþ âåðñèþ ìîæíî íà îôèöèàëüíîì ñàéòå.", +'stat_safeskin' => "Âíèìàíèå!
Íåâîçìîæíî çàãðóçèòü âûáðàííûé â íàñòðîéêàõ ñêèí. Àâòîìàòè÷åñêè çàãðóæåí ñêèí ïî óìîë÷àíèþ!
Ïðîâåðüòå íàëè÷èå ôàéëîâ ñêèíà íà ñåðâåðå!", +'stat_nofree' => "Âíèìàíèå!
Ñèñòåìîé îáíàðóæåíî, ÷òî íà ñåðâåðå ìàëî ñâîáîäíîãî ìåñòà. Âàì íåîáõîäèìî ïðåäïðèíÿòü ìåðû ïî óâåëè÷åíèþ äèñêîâîãî ïðîñòðàíñòâà äëÿ íîðìàëüíîé ðàáîòû ñêðèïòà. Òàêæå íåîáõîäèìî ñäåëàòü ðåçåðâíóþ êîïèþ áàçû íîâîñòåé!", + +'addnews' => "Äîáàâèòü íîâîñòü", +'addnews_denied' => "Äîñòóï çàïðåùåí", +'addnews_perm' => "Âû íå ìîæåòå äîáàâëÿòü íîâîñòè", +'addnews_alert' => "Ó âàøåé ñòàòüè äîëæåí áûòü õîòÿ áû çàãîëîâîê è êðàòêàÿ âåðñèÿ", +'addnews_news' => "Äîáàâëåíèå íîâîñòè â áàçó äàííûõ", +'addnews_title' => "Çàãîëîâîê ñòàòüè:", +'addnews_url' => "×ÏÓ URL ñòàòüè:", +'addnews_date' => "Äàòà:", +'addnews_cat' => "Êàòåãîðèÿ:", +'addnews_short' => "Êðàòêîå îïèñàíèå:", +'addnews_bild' => "çàãðóçèòü ôàéëû", +'addnews_full' => "Ïîëíîå îïèñàíèå:", +'addnews_alt' => "íåîáÿçàòåëüíî", +'addnews_comm' => "Ðàçðåøèòü êîììåíòàðèè", +'addnews_main' => "Ïóáëèêîâàòü íà ãëàâíîé", +'addnews_mod' => "Îïóáëèêîâàòü íîâîñòü íà ñàéòå", +'addnews_fix' => "Çàôèêñèðîâàòü íîâîñòü", +'addnews_error' => "Îøèáêà !!!", +'addnews_erdate' => "Íåäîïóñòèìûé ôîðìàò äàòû.", +'addnews_ertitle' => "Çàãîëîâîê íå ìîæåò áûòü ïóñòûì.", +'addnews_erstory' => "Ïîëÿ íå ìîãóò áûòü ïóñòûìè.", +'addnews_ermax' => "Ñëèøêîì äëèííûé çàãîëîâîê.", +'addnews_ok' => "Íîâîñòü äîáàâëåíà", +'addnews_ok_1' => "Íîâîñòü", +'addnews_ok_2' => "áûëà óñïåøíî äîáàâëåíà!", + +'cat_perm' => "Âû íå ìîæåòå ðåäàêòèðîâàòü êàòåãîðèè", +'cat_error' => "Îøèáêà !!!", +'cat_ername' => "Ââåäèòå èìÿ êàòåãîðèè!", +'cat_erurl' => "Ââåäèòå àëüòåðíàòèâíîå èìÿ êàòåãîðèè!", +'cat_icon' => "(ïðè æåëàíèè)", +'cat_eradd' => "Êàòåãîðèÿ ñ òàêèì èìåíåì óæå ñóùåñòâóåò!", +'cat_addok' => "Êàòåãîðèÿ äîáàâëåíà", +'cat_addok_1' => "Êàòåãîðèÿ áûëà óñïåøíî äîáàâëåíà!", +'cat_noid' => "Íåò ID êàòåãîðèè!", +'cat_delok' => "Êàòåãîðèÿ óäàëåíà", +'cat_delok_1' => "Êàòåãîðèÿ áûëà óñïåøíî óäàëåíà!", +'cat_head' => "Êàòåãîðèè", +'cat_edit' => "Ðåäàêòèðîâàíèå êàòåãîðèè", +'cat_name' => "Èìÿ:", +'cat_url' => "Àëüòåðíàòèâíîå èìÿ:", +'cat_addicon' => "Èêîíêà:", +'cat_noname' => "Ââåäèòå íàçâàíèå êàòåãîðèè!", +'cat_editok' => "Èçìåíåíèÿ ñîõðàíåíû", +'cat_editok_1' => "Èçìåíåíèÿ áûëè óñïåøíî ñîõðàíåíû", +'cat_add' => "Äîáàâëåíèå íîâîé êàòåãîðèè", +'cat_info' => "×òî òàêîå êàòåãîðèè? Êàê èõ èñïîëüçîâàòü?", +'cat_ed' => "ïðàâêà", +'cat_del' => "óäàëèòü", +'cat_nocat' => "Êàòåãîðèé íåò
Êàòåãîðèè ñîçäàþòñÿ ïðè æåëàíèè, âû ìîæåòå ïðåêðàñíî îáîéòèñü è áåç íèõ", +'cat_list' => "Ñïèñîê êàòåãîðèé", +'cat_cat' => "Êàòåãîðèÿ:", +'cat_action' => "Äåéñòâèå:", + +'db_denied' => "Âû íå èìååòå äîñòóïà â äàííûé ðàçäåë", +'db_ok' => "Äeéñòâèå âûïîëíåíî", +'db_ok_1' => "Âûáðàííîå äåéñòâèå óñïåøíî âûïîëíåíî", +'db_prev' => "Âåðíóòüñÿ íàçàä", +'db_err' => "Îøèáêà âûïîëíåíèÿ", +'db_err_1' => "Âûáðàííîå äåéñòâèå íå óäàëîñü âûïîëíèòü", +'db_err_2' => "Ðàñøèðåíèå ó çàãðóæàåìîãî ôàéëà äîëæíî áûòü *.sql", +'db_err_3' => "Îøèáêà çàãðóçêè ôàéëà, âîññòàíîâëåíèå áàçû äàííûõ îñòàíîâëåíî", +'db_ok_2' => "Âîññòàíîâëåíèå áàçû äàííûõ óñïåøíî çàâåðøåíî", +'db_ok_3' => "Áûëî âûïîëíåíî", +'db_ok_4' => "óñïåøíûõ çàïðîñîâ", +'db_ok_5' => "Íå óäàëîñü âûïîëíèòü", +'db_ok_6' => "çàïðîñîâ", +'db_info' => "Íàñòðîéêà è îïòèìèçàöèÿ áàçû äàííûõ", +'db_action' => "Âûïîëíèòü äåéñòâèå", +'db_opt' => "Îïòèìèçàöèÿ áàçû äàííûõ", +'db_opt_i' => "Âû ìîæåòå ïðîèçâåñòè îïòèìèçàöèþ áàçû äàííûõ, òåì ñàìûì áóäåò ñýêîíîìëåíî íåìíîãî ìåñòà íà äèñêå, à òàêæå óñêîðåíà ðàáîòà áàçû äàííûõ. Ðåêîìåíäóåòñÿ èñïîëüçîâàòü äàííóþ ôóíêöèþ ìèíèìóì îäèí ðàç â íåäåëþ.", +'db_re' => "Ðåìîíò áàçû äàííûõ", +'db_re_i' => "ïðè íåîæèäàííîé îñòàíîâêå MySQL ñåðâåðà, âî âðåìÿ âûïîëíåíèÿ êàêèõ-ëèáî äåéñòâèé, ìîæåò ïðîèçîéòè ïîâðåæäåíèå ñòðóêòóðû òàáëèö, èñïîëüçîâàíèå ýòîé ôóíêöèè ïîìîæåò ðåøèòü âàì ýòó ïðîáëåìó.", +'db_back' => "Ñîõðàíåíèå ðåçåðâíîé êîïèè", +'db_load' => "Çàãðóçêà ðåçåðâíîé êîïèè ñ äèñêà", +'db_load_a' => "Çàãðóçèòü", + +'edit_denied' => "Ó âàñ íåò ïðàâ äëÿ ðåäàêòèðîâàíèÿ äàííîé ñòàòüè", +'edit_head' => "Ðåäàêòèðîâàíèå íîâîñòåé", +'edit_act' => "Ðåäàêòèðîâàòü äàííóþ íîâîñòü", +'edit_yes' => "äà", +'edit_no' => "íåò", +'edit_stat' => "Ïîêàçàíî ñòàòåé:", +'edit_stat_1' => "Âñåãî íàéäåíî ñòàòåé â áàçå äàííûõ:", +'edit_cat' => "Êàòåãîðèÿ:", +'edit_opt' => "íàñòðîéêè", +'edit_all' => "- Âñå -", +'edit_au' => "Àâòîð:", +'edit_page' => "Íîâîñòåé íà ñòðàíèöó:", +'edit_act_1' => "Ïîêàçàòü", +'edit_nonews' => "- Íå íàéäåíî ñòàòåé -", +'edit_title' => "Çàãîëîâîê", +'edit_com' => "Êîììåíòàðèè", +'edit_approve' => " Ìîäåðàöèÿ ", +'edit_cl' => "Êàòåãîðèÿ", +'edit_autor' => "Àâòîð", +'edit_selall' => "Âûáðàòü âñå", +'edit_prev' => "Ïðåä.", +'edit_next' => "Äàëåå", +'edit_selact' => "-- Äåéñòâèå --", +'edit_seldel' => "Óäàëèòü", +'edit_selcat' => "Èçìåíèòü êàòåãîðèþ", +'edit_nonews' => "Âûáðàííàÿ âàìè ñòàòüÿ íå íàéäåíà!", +'edit_cdel' => "Âû äåéñòâèòåëüíî õîòèòå óäàëèòü ýòó ñòàòüþ?", +'edit_etitle' => "Ðåäàêòèðîâàíèå íîâîñòè", +'edit_info' => "Èíôîðìàöèÿ:", +'edit_eau' => "îïóáëèêîâàë:", +'edit_et' => "Çàãîëîâîê:", +'edit_alturl' => "×ÏÓ URL ñòàòüè:", +'edit_edate' => "Äàòà:", +'edit_ecal' => "Âûáîð äàòû ñ ïîìîùüþ êàëåíäàðÿ", +'edit_ndate' => "Íå èçìåíÿòü äàòó", +'edit_jdate' => "òåêóùàÿ äàòà è âðåìÿ", +'edit_ac' => "Ðàçðåøèòü êîììåíòàðèè", +'edit_amain' => "Ïóáëèêîâàòü íà ãëàâíîé", +'edit_allow' => "Îïóáëèêîâàòü íîâîñòü íà ñàéòå", +'edit_afix' => "Çàôèêñèðîâàòü íîâîñòü", +'edit_dnews' => "Óäàëèòü", +'edit_delok' => "Íîâîñòü óäàëåíà", +'edit_delok_1' => "Ñòàòüÿ áûëà óñïåøíî óäàëåíà.
Åñëè ê ýòîé ñòàòüå áûëè êîììåíòàðèè, òî îíè óäàëåíû òîæå", +'edit_delok_2' => "Ñòàòüÿ áûëà óñïåøíî óäàëåíà.
Íåëüçÿ óäàëèòü êîììåíòàðèè ê ýòîé ñòàòüå!!!", +'edit_alleok' => "Èçìåíåíèÿ ñîõðàíåíû", +'edit_alleok_1' => "Èçìåíåíèÿ áûëè óñïåøíî ñîõðàíåíû", +'edit_allerr' => "Ñòàòüÿ íå ìîæåò áûòü îáíàðóæåíà, èëè âîçíèêëà êàêàÿ-òî ïðîáëåìà ñ áàçîé äàííûõ", + +'user_denied' => "Âû íå ìîæåòå ðåäàêòèðîâàòü ïîëüçîâàòåëåé", +'user_head' => "Ïîëüçîâàòåëè", +'user_auser' => "Äîáàâèòü ïîëüçîâàòåëÿ", +'user_newlogin' => "Íîâûé ëîãèí:", +'user_deluser' => "Âû óâåðåíû, ÷òî õîòèòå óäàëèòü ýòîãî ïîëüçîâàòåëÿ?", +'user_name' => "Èìÿ:", +'user_pass' => "Ïàðîëü:", +'user_mail' => "E-mail:", +'user_acc' => "Ãðóïïà:", +'user_se' => "Ïîèñê ïîëüçîâàòåëÿ", +'user_list' => "Ñïèñîê ïîëüçîâàòåëåé", +'user_reg' => "Äàòà ðåãèñòðàöèè:", +'user_news' => "Ïóáëèêàöèé:", +'user_action' => "Äåéñòâèå:", +'user_last' => "Äàòà ïîñåùåíèÿ:", +'user_edit' => "èçìåíèòü", +'user_del' => "óäàëèòü", +'user_err' => "Îøèáêà !!!", +'user_err_1' => "Íåîáõîäèìî çàïîëíèòü âñå ïîëÿ", +'user_err_2' => "Çàïîëíèòå ïîëå 'Ïàðîëü'!", +'user_err_3' => "Ïîëüçîâàòåëü ñ òàêèì èìåíåì óæå åñòü !", +'user_err_4' => "Äàííûé E-Mail óæå çàðåãèñòðèðîâàí íà äðóãîãî ïîëüçîâàòåëÿ!", +'user_addok' => "Ïîëüçîâàòåëü äîáàâëåí", +'user_ok' => "Ïîëüçîâàòåëü", +'user_ok_1' => "áûë óñïåøíî çàðåãèñòðèðîâàí â ãðóïïå", +'user_edhead' => "Ðåäàêòèðîâàíèå ïîëüçîâàòåëÿ", +'user_newpass' => "Íîâûé ïàðîëü:", +'user_banned' => "Çàáàíåí:", +'user_save' => "Ñîõðàíèòü", +'user_can' => "Îòìåíà", +'user_nouser' => "Äàííûé ïîëüçîâàòåëü íå íàéäåí.", +'user_editok' => "Èçìåíåíèÿ ñîõðàíåíû", +'user_undel' => "Ýòîãî ïîëüçîâàòåëÿ íåâîçìîæíî óäàëèòü!", +'user_delok' => "Ïîëüçîâàòåëü óäàëåí", +'user_delok_1' => "áûë óñïåøíî óäàëåí.", + +'images_head' => "Óïðàâëåíèå êàðòèíêàìè", +'images_renok' => "Ôàéë óñïåøíî ïåðåèìåíîâàí", +'images_renerr' => "Ïåðåèìåíîâàòü íå óäàëîñü", +'images_renerr_1' => "Íåâåðíîå ðàñøèðåíèå", +'images_uperr' => "Óêàæèòå çàãðóæàåìóþ êàðòèíêó!!!", +'images_uperr_1' => "Òàêàÿ êàðòèíêà óæå åñòü!!!", +'images_uperr_2' => "Çàãðóçêà òàêèõ òèïîâ ôàéëîâ çàïðåùåíà!!!", +'images_uperr_3' => "Íåâîçìîæíî çàãðóçèòü ôàéë íà ñåðâåð", +'images_upok' => "Êàðòèíêà çàãðóæåíà", +'images_thok' => "Óìåíüøåííàÿ êîïèÿ êàðòèíêè ñîçäàíà", +'images_uptitle' => "Çàãðóçêà ôàéëîâ íà ñåðâåð", +'images_uphard' => "Ñ æåñòêîãî äèñêà:", +'images_upurl' => "Ñ ñåðâåðà (URL):", +'images_aren' => "Ïåðåçàïèñàòü, åñëè óæå åñòü?", +'images_nogd' => "Óìåíüøåíèå êàðòèíêè íåâîçìîæíî!
Íå çàãðóæåí ìîäóëü GD2", +'images_ath' => "Àâòîìàòè÷åñêè óìåíüøàòü êàðòèíêè", +'images_iln' => "Ôàéëû çàãðóæåííûå äëÿ äàííîé íîâîñòè", +'images_view' => "ïðîñìîòð", +'images_lgem' => "Ôàéëû çàãðóæåííûå íà ñåðâåð (îáùàÿ ïàïêà)", +'images_thn' => "óìåíüøåííàÿ êîïèÿ", +'images_rename' => "ïåðåèìåíîâàòü", +'images_del' => "Óäàëèòü ôàéëû", +'images_size' => "Îáùèé ðàçìåð âñåõ ôàéëîâ:", +'images_listdir' => "Âûáåðèòå äèðåêòîðèþ:", +'images_foto' => "Çàãðóæåííûå àâàòàðû", +'images_thumb' => "Óìåíüøåííûå êàðòèíêè", +'images_news' => "Êàðòèíêè ê íîâîñòÿì", +'images_delerr' => "Íåâîçìîæíî óäàëèòü êàðòèíêó!", +'images_delerr_1' => "Âûáåðèòå êàðòèíêè, êîòîðûå íóæíî óäàëèòü!", +'images_delok' => "Óäàëåíèå çàâåðøåíî!", +'images_delok_1' => "Êàðòèíêà áûëà óñïåøíî óäàëåíà.", + +'bb_url' => "Ââåäèòå ïîëíûé URL ññûëêè", +'bb_page' => "Ââåäèòå íîìåð ñòðàíèöû", +'bb_url_name' => "Ââåäèòå íàçâàíèå ñàéòà", +'bb_page_name' => "Ââåäèòå îïèñàíèå ññûëêè", +'bb_image' => "Ââåäèòå ïîëíûé URL èçîáðàæåíèÿ", +'bb_email' => "Ââåäèòå e-mail àäðåñ", +'bb_code' => "Èñïîëüçîâàíèå: [CODE] Çäåñü Âàø êîä.. [/CODE]", +'bb_quote' => "Èñïîëüçîâàíèå: [QUOTE] Çäåñü Âàøà Öèòàòà.. [/QUOTE]", +'bb_no_url' => "Âû äîëæíû ââåñòè URL", +'bb_no_title' => "Âû äîëæíû ââåñòè íàçâàíèå", +'bb_no_email' => "Âû äîëæíû ââåñòè e-mail àäðåñ", +'bb_prompt_start' => "Ââåäèòå òåêñò äëÿ ôîðìàòèðîâàíèÿ", +'bb_img_title' => "Ââåäèòå ïî êàêîìó êðàþ âûðàâíèâàòü êàðòèíêó (left, center, right)", +'bb_email_title' => "Ââåäèòå îïèñàíèå ññûëêè (íåîáÿçàòåëüíî)", +'bb_b_center' => "Ïî öåíòðó", +'bb_b_quote' => " Öèòàòà ", +'bb_b_left' => "Ñëåâà", +'bb_b_right' => "Ñïðàâà", +'bb_bb_page' => "Ñòðàíèöà", +'bb_b_color' => "ÖÂÅÒ", +'bb_b_blue' => "Ñèíèé", +'bb_b_red' => "Êðàñíûé", +'bb_b_purple' => "Ïóðïóðíûé", +'bb_b_orange' => "Îðàíæåâûé", +'bb_b_yellow' => "Ƹëòûé", +'bb_b_gray' => "Ñåðûé", +'bb_b_green' => "Çåë¸íûé", +'bb_b_seagreen' => "Ìîðñêîé âîëíû", +'bb_b_lime' => "Ëàéì", +'bb_b_brown' => "Êîðè÷íåâûé", +'bb_b_pink' => "Ðîçîâûé", +'bb_b_tomato' => "Òîìàòíûé", +'bb_b_magenta' => "Ôèîëåòîâûé", +'bb_b_slategray' => "Òåìíî-ñåðûé", +'bb_b_navy' => "Òåìíî-ñèíèé", +'bb_b_deepskyblue' => "Ãîëóáîé", +'bb_b_close' => "Çàêðûòü òýãè", +'bb_b_url' => "Ññûëêà", +'bb_b_img' => "Êàðòèíêà", +'bb_b_mail' => "E-Mail", +'bb_b_break' => "Ðàçðûâ", +'bb_b_page' => "Ññûëêà íà ñòðàíèöó", +'bb_t_b' => "Ïîëóæèðíûé", +'bb_t_i' => "Íàêëîííûé òåêñò", +'bb_t_h' => "Ñêðûâàåò òåêcò îò íåçàðåãèñòðèðîâàííûõ ïîñåòèòåëåé", +'bb_t_u' => "Ïîä÷åðêíóòûé òåêñò", +'bb_t_s' => "Çà÷åðêíóòûé òåêñò", +'bb_t_l' => "Âûðàâíèâàíèå ïî ëåâîìó êðàþ", +'bb_t_c' => "Ïî öåíòðó", +'bb_t_r' => "Âûðàâíèâàíèå ïî ïðàâîìó êðàþ", +'bb_t_cl' => "Çàêðûòü âñå îòêðûòûå òåãè", +'bb_t_url' => "Âñòàâêà ññûëêè", +'bb_t_img' => "Âñòàâêà êàðòèíêè", +'bb_t_quote' => "Âñòàâêà öèòàòû", +'bb_t_code' => "Âñòàâêà èñõîäíîãî êîäà", +'bb_t_m' => "Âñòàâêà email", +'bb_t_br' => "Âñòàâêà ðàçðûâà ìåæäó ñòðàíèöàìè", +'bb_t_p' => "Âñòàâêà ññûëêè íà ñòðàíèöó", + +'mass_error' => "Îøèáêà!!!", +'mass_denied' => "Âûáåðèòå ñòàòüè", +'mass_head' => "Óäàëåíèå íîâîñòåé", +'mass_confirm' => "Âû óâåðåíû, ÷òî õîòèòå óäàëèòü âûáðàííûå", +'mass_confirm_1' => "íîâîñòè?", +'mass_no' => "Íåò", +'mass_yes' => "Äà", +'mass_sel' => "Âûáåðèòå ñòàòüè", +'mass_delok' => "Âñå âûáðàííûå Âàìè ñòàòüè óñïåøíî óäàëåíû!", +'mass_notok' => "Óäàëåíèå íîâîñòåé (íàéäåíû îøèáêè!!!)", +'mass_i' => "èç", +'mass_notok_1' => "íîâîñòåé óäàëåíû", +'mass_cat' => "Èçìåíåíèå êàòåãîðèé ñòàòåé", +'mass_cat_1' => "Èçìåíåíèå êàòåãîðèè", +'mass_cat_2' => "Èçìåíèòü êàòåãîðèþ äëÿ âûáðàííûõ ñòàòåé", +'mass_cat_3' => "íà:", +'mass_cat_ok' => "Êàòåãîðèÿ èçìåíåíà", +'mass_cat_ok_1' => "Êàòåãîðèÿ äëÿ âûáðàííûõ Âàìè ñòàòåé èçìåíåíà", +'mass_cat_notok' => "Êàòåãîðèÿ èçìåíåíà (ñ îøèáêàìè)", +'mass_cat_notok_1' => "Íå óäàëîñü èçìåíèòü êàòåãîðèþ ó âñåõ âûáðàííûõ ñòàòåé", +'mass_noact' => "Âûáåðèòå äåéñòâèå", +'mass_noact_1' => "Âûáåðèòå äåéñòâèå èç âûïàäàþùåãî ìåíþ", + +'opt_head' => "Íàñòðîéêè", +'opt_priv' => "Ëè÷íûå íàñòðîéêè", +'opt_privc' => "Óïðàâëåíèå è íàñòðîéêà âàøåãî ëè÷íîãî ïðîôèëÿ ïîëüçîâàòåëÿ.", +'opt_all' => "Íàñòðîéêà ñèñòåìû", +'opt_allc' => "Íàñòðîéêà îáùèõ ïàðàìåòðîâ ñêðèïòà, à òàêæå íàñòðîéêà âûâîäà íîâîñòåé è êîììåíòàðèåâ, íàñòðîéêà ñèñòåìû áåçîïàñíîñòè ñêðèïòà", +'opt_static' => "Ñòàòè÷åñêèå ñòðàíèöû", +'opt_staticd' => "Ñîçäàíèå è ðåäàêòèðîâàíèå ñòðàíèö, êîòîðûå êàê ïðàâèëî ðåäêî èçìåíÿþòñÿ è èìåþò ïîñòîÿííûé àäðåñ", +'opt_t' => "Øàáëîíû ñàéòà", +'opt_tc' => "Ñîçäàíèå è ðåäàêòèðîâàíèå øàáëîíîâ, êîòîðûå èñïîëüçóþòñÿ íà âàøåì ñàéòå, à òàêæå íàçíà÷åíèå ðàçëè÷íûõ ÿçûêîâ ýòèì øàáëîíàì", +'opt_user' => "Ðåäàêòèðîâàíèå ïîëüçîâàòåëåé", +'opt_userc' => "Óïðàâëåíèå çàðåãèñòðèðîâàííûìè íà ñàéòå ïîëüçîâàòåëÿìè, ðåäàêòèðîâàíèå èõ ïðîôèëåé è áëîêèðîâêà àêêàóíòà", +'opt_img' => "Óïðàâëåíèå êàðòèíêàìè", +'opt_imgc' => "Çàãðóçêà èçîáðàæåíèé è óïðàâëåíèå óæå çàãðóæåííûìè êàðòèíêàìè íà ñåðâåðå", +'opt_cat' => "Êàòåãîðèè", +'opt_catc' => "Ñîçäàíèå è óïðàâëåíèå êàòåãîðèÿìè â íîâîñòÿõ, íàçíà÷åíèå øàáëîíîâ è ïîðÿäîê ñîðòèðîâêè äëÿ êàòåãîðèé", +'opt_fil' => "Ôèëüòð ñëîâ", +'opt_filc' => "Íàñòðîéêà ôèëüòðà ñëîâ, êîòîðûé áóäåò óäàëÿòü èëè çàìåíÿòü óêàçàííûå ñëîâà ïðè äîáàâëåíèè íîâîñòåé èëè êîììåíòàðèåâ", +'opt_email' => "Øàáëîíû E-Mail ñîîáùåíèé", +'opt_emailc' => "Íàñòðîéêà øàáëîíîâ E-Mail ñîîáùåíèé, êîòîðûå îòñûëàåò ñêðèïò ñ ñàéòà ïðè ðåãèñòðàöèè ïîëüçîâàòåëÿ, âîññòàíîâëåíèè ïàðîëÿ è ò.ä.", +'opt_xfil' => "Äîïîëíèòåëüíûå ïîëÿ íîâîñòåé", +'opt_xfilc' => "Ñîçäàíèå äîïîëíèòåëüíûõ ïîëåé äëÿ íîâîñòåé, êîòîðûå ïðåäíàçíà÷åíû äëÿ áîëåå óäîáíîãî äîáàâëåíèÿ íîâîñòåé íà ñàéòå", +'opt_db' => "Óïðàâëåíèå áàçîé äàííûõ", +'opt_dbc' => "Íàñòðîéêà è îïòèìèçàöèÿ áàçû äàííûõ, à òàêæå ðåçåðâíîå êîïèðîâàíèå è âîññòàíîâëåíèå áàçû äàííûõ", +'opt_hopt' => "Íàñòðîéêè ñêðèïòà", +'opt_hprv' => "Ðåäàêòèðîâàíèå ñîáñòâåííîãî ïðîôèëÿ", +'opt_fullname' => "Ïîëíîå èìÿ:", +'opt_land' => "Ìåñòî æèòåëüñòâà:", +'opt_icq' => "Íîìåð ICQ:", +'opt_altpassw' => "Ñòàðûé ïàðîëü:", +'opt_hmail' => "Íå ïîëó÷àòü ïèñåì îò äðóãèõ ïîñåòèòåëåé", +'opt_peok' => "Âàøà ïåðñîíàëüíàÿ èíôîðìàöèÿ áûëà óñïåøíî ñîõðàíåíà", +'opt_errpass' => "Ââåäåí íåâåðíûé ñòàðûé ïàðîëü", +'opt_denied' => "Äîñòóï îòêëîíåí", +'opt_errfo' => "Íåâîçìîæíî îòêðûòü ïàïêó /data/templates/", +'opt_newtemp' => "Ñîçäàíèå íîâîãî øàáëîíà", +'opt_newtemp_1' => "Ñîçäàòü íîâûé øàáëîí íà áàçå:", +'opt_msgnew' => "ñ íàçâàíèåì", +'opt_error' => "Îøèáêà!!!", +'opt_error_1' => "Íàçâàíèå øàáëîíà äîëæíî ñîñòîÿòü òîëüêî èç áóêâ è öèôð!", +'opt_error_2' => "Øàáëîí ñ òàêèì èìåíåì óæå ñóùåñòâóåò!", +'opt_error_3' => "Íåâîçìîæíî ñêîïèðîâàòü áàçîâûé ôàéë øàáëîíà", +'opt_error_4' => "Âû íå ìîæåòå óäàëèòü øàáëîí, èñïîëüçóåìûé ïî óìîë÷àíèþ!", +'opt_error_5' => "Íåâîçìîæíî óäàëèòü øàáëîí", +'opt_info' => "Øàáëîí ñîçäàí!", +'opt_info_1' => "Íîâûé øàáëîí áûë óñïåøíî ñîçäàí", +'opt_info_2' => "Âû äåéñòâèòåëüíî õîòèòå óäàëèòü øàáëîí", +'opt_info_3' => "Óäàëåíèå øàáëîíà", +'opt_info_4' => "Âûáðàííûé øàáëîí áûë óñïåøíî óäàëåí", +'opt_yes' => "Äà, óäàëèòü øàáëîí", +'opt_no' => "Îòìåíà", +'opt_dellink' => "óäàëèòü øàáëîí", +'opt_theads' => "Øàáëîí:", +'opt_edit_head' => "Óïðàâëåíèå øàáëîíàìè", +'opt_newtepled' => "Âûáðàòü äðóãîé:", +'opt_temphelp' => "×òî òàêîå øàáëîíû?", +'opt_enewtepl' => "ñîçäàòü íîâûé", +'opt_edteil' => "Ðåäàêòèðîâàíèå ðàçäåëîâ øàáëîíà:", +'opt_ss_h' => "Êðàòêîå ñîäåðæàíèå", +'opt_ss_d' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä êîðîòêèõ íîâîñòåé", +'opt_fs_h' => "Ñòàòüÿ öåëèêîì", +'opt_fs_d' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä ïîëíîé íîâîñòè", +'opt_an_h' => "Äîáàâëåíèå íîâîñòè", +'opt_an_d' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ ôîðìà, êîòîðàÿ âûâîäèòñÿ ïîñåòèòåëÿì ïðè äîáàâëåíèè íîâîñòåé", +'opt_c_h' => "Êîììåíòàðèè", +'opt_c_d' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä êîììåíòàðèåâ", +'opt_fc_h' => "Ôîðìà äîáàâëåíèÿ ëèáî èçìåíåíèÿ êîììåíòàðèÿ", +'opt_fc_d' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä ôîðìû äëÿ äîáàâëåíèÿ ëèáî èçìåíåíèÿ êîììåíòàðèÿ
(íå ðåêîìåíäóåòñÿ èçìåíÿòü ïîëüçîâàòåëÿì ïëîõî âëàäåþùèì HTML)", +'opt_n_h' => "Ïðåäûäóùàÿ è ñëåäóþùàÿ ñòðàíèöû äëÿ íîâîñòåé", +'opt_n_d' => "Â äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä íàâèãàöèè äëÿ íîâîñòåé", +'opt_u_h' => "Èíôîðìàöèÿ î ïîñåòèòåëå", +'opt_u_d' => "Â äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä ïðîôèëÿ ïîñåòèòåëÿ
(íå ðåêîìåíäóåòñÿ èçìåíÿòü ïîëüçîâàòåëÿì ïëîõî âëàäåþùèì HTML)", +'opt_se_hf' => "Ôîðìà ïîèñêà", +'opt_se_df' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä ôîðìû äëÿ ïîèñêà ïî ñàéòó", +'opt_se_h' => "Ðåçóëüòàòû ïîèñêà", +'opt_se_d' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä ðåçóëüòàòîâ ïîèñêà ïî ñàéòó", +'opt_se_h' => "Ðåçóëüòàòû ïîèñêà", +'opt_st_h' => "Ñòàòèñòèêà ñàéòà", +'opt_st_d' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä îáùåé ñòàòèñòèêè ñàéòà", +'opt_er_h' => "Âûâîä èíôîðìàöèè è îøèáîê", +'opt_er_d' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä ôîðìû â ñëó÷àå âîçíèêíîâåíèÿ îøèáîê", +'opt_r_h' => "Ðåãèñòðàöèÿ ïîñåòèòåëÿ íà ñàéòå", +'opt_r_d' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä ðåãèñòðàöèè íà ñàéòå
(íå ðåêîìåíäóåòñÿ èçìåíÿòü ïîëüçîâàòåëÿì ïëîõî âëàäåþùèì HTML)", +'opt_pa_h' => "Ôîðìà äëÿ çàïðîñà çàáûòîãî ïàðîëÿ", +'opt_pa_d' => "Â äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä ôîðìû äëÿ âîññòàíîâëåíèÿ çàáûòîãî ïàðîëÿ", +'opt_pa_d_1' => "
", +'opt_sm_h' => "Ôîðìà äëÿ îòïðàâêè E-Mail ïèñåì ïîëüçîâàòåëÿì è àäìèíèñòðàöèè", +'opt_sm_d' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä ôîðìû äëÿ îòïðàâêè E-Mail ïèñåì ïîëüçîâàòåëÿì è àäìèíèñòðàöèè", +'opt_pm_h' => "Ïåðñîíàëüíûå ñîîáùåíèÿ", +'opt_pm_d' => " äàííîì ðàçäåëå íàñòðàèâàåòñÿ âûâîä ïåðñîíàëüíûõ ñîîáùåíèé", + +'opt_editok' => "Èçìåíåíèÿ ñîõðàíåíû", +'opt_editok_1' => "Øàáëîí óñïåøíî ñîõðàíåí", +'opt_sysok' => "Íàñòðîéêè ñîõðàíåíû", +'opt_sysok_1' => "Íàñòðîéêè áûëè óñïåøíî ñîõðàíåíû", + +'opt_sys_hth' => "Íàñòðîéêà ïóòåé ê ñêðèïòó", +'opt_sys_ht' => "Íàçâàíèå ñàéòà:", +'opt_sys_htd' => "íàïðèìåð: \"Ìîÿ äîìàøíÿÿ ñòðàíèöà\"", +'opt_sys_hu' => "Äîìàøíÿÿ ñòðàíèöà ñàéòà:", +'opt_sys_hud' => "Óêàæèòå èìÿ îñíîâíîãî äîìåíà íà êîòîðîì ðàñïîëàãàåòñÿ âàø ñàéò. Íàïðèìåð: http://yoursite.com/ Âíèìàíèå, íàëè÷èå ñëåøà íà êîíöå â èìåíè äîìåíà îáÿçàòåëüíî.", +'opt_sys_sd' => "Ïîëíûé ïóòü ê äèðåêòîðèè ñêðèïòà:", +'opt_sys_sdd' => "íàïðèìåð: http://yoursite.com/news/", +'opt_sys_hp' => "Âåðñèÿ äëÿ ïå÷àòè:", +'opt_sys_hpd' => "íàïðèìåð: http://yoursite.com/print1.php", +'opt_sys_all' => "Îáùèå íàñòðîéêè", + +'opt_sys_amail' => "E-Mail àäðåñ àäìèíèñòðàòîðà:", +'opt_sys_amaild' => "Ââåäèòå E-Mail àäðåñ àäìèíèñòðàòîðà ñàéòà", + +'opt_sys_al' => "Èñïîëüçóåìûé ÿçûê:", +'opt_sys_ald' => "Âûáåðèòå ÿçûê, êîòîðûé áóäåò èñïîëüçîâàòüñÿ ïðè ðàáîòå ñ ñèñòåìîé", +'opt_sys_as' => "Øàáëîí ñàéòà ïî óìîë÷àíèþ:", +'opt_sys_asd' => "Âûáåðèòå øàáëîí, êîòîðûé áóäåò èñïîëüçîâàòüñÿ íà ñàéòå", +'opt_sys_aw' => "Àâòîìàòè÷åñêàÿ ðàçáèâêà äëèííûõ ñëîâ:", +'opt_sys_awd' => "â ñëó÷àå ïðåâûøåíèÿ çàäàííîãî ÷èñëà ñèìâîëîâ", +'opt_sys_af' => "Çàùèòà îò ôëóäà:", +'opt_sys_afd' => "óêàçûâàåòñÿ â ñåêóíäàõ; 0 = çàùèòû íåò", +'opt_sys_am' => "Ñìàéëèêè:", +'opt_sys_amd' => "ðàçäåëÿþòñÿ çàïÿòûìè (,)", +'opt_sys_at' => "Êîððåêöèÿ âðåìåííûõ çîí:", +'opt_sys_atd' => "â ìèíóòàõ; ò.å.: 180=+3 ÷àñà; -120=-2 ÷àñà. Òåêóùåå âðåìÿ ñåðâåðà ñ ó÷åòîì êîððåêöèè:", +'opt_sys_an' => "Ôîðìàò âðåìåíè äëÿ íîâîñòåé:", +'opt_sys_and' => "ïîìîùü ïî ðàáîòå ôóíêöèè", +'opt_sys_ag' => "Âêëþ÷èòü gzip ñæàòèå:", +'opt_sys_agd' => "Äàííàÿ îïöèÿ ïîçâîëÿåò ñóùåñòâåííî ñæàòü âûõîä ñãåíåðèðîâàííîãî êîäà, è òåì ñàìûì ñýêîíîìèòü íà òðàôôèêå", +'opt_sys_ad' => "Ñêðûâàòü ññûëêó íà ïîëíóþ íîâîñòü:", +'opt_sys_add' => "Ñêðûâàåò ññûëêó íà ïîëíóþ íîâîñòü, åñëè îòñóòñòâóåò ïîëíîå îïèñàíèå", +'opt_sys_cch' => "Íàñòðîéêè êîììåíòàðèåâ", +'opt_sys_ct' => "Ôîðìàò âðåìåíè äëÿ êîììåíòàðèåâ:", +'opt_sys_dch' => "Îïòèìèçàöèÿ çàïðîñîâ ê áàçå äàííûõ", +'opt_sys_dc' => "Âêëþ÷èòü ×ÏÓ:", +'opt_sys_dcd' => "Eñëè 'Äà', òî ññûëêè íà ñàéòå áóäóò ôîðñèðîâàòüñÿ â âèäå ïñåâäî URL, êîòîðûå óëó÷øàþò âèçóàëüíîå âîñïðèÿòèå ññûëêè. Íàïðèìåð http://site.ru/èìÿ ñòðàíèöû.html", +'opt_sys_df' => "Ðàçðåøèòü ôèêñàöèþ íîâîñòåé:", +'opt_sys_dfd' => "Äà - ïðè äîáàâëåíèè, ðåäàêòèðîâàíèè íîâîñòè åå ìîæíî ôèêñèðîâàòü", +'opt_sys_dk' => "Âêëþ÷èòü êàëåíäàðü:", +'opt_sys_dkd' => "Äà - äîáàâëÿåò îäèí çàïðîñ ê áàçå
Íåò - îòêëþ÷àåò âûâîä êàëåíäàðÿ", +'opt_sys_da' => "Âêëþ÷èòü âûâîä àðõèâîâ:", +'opt_sys_dad' => "Äà - äîáàâëÿåò îäèí çàïðîñ ê áàçå
Íåò - îòêëþ÷àåò âûâîä àðõèâîâ", +'opt_sys_uch' => "Íàñòðîéêè ïîëüçîâàòåëåé", +'opt_sys_ur' => "Âêëþ÷èòü ïîääåðæêó ðåãèñòðàöèè è àâòîðèçàöèè íà ñàéòå:", +'opt_sys_urd' => "Îòêëþ÷åíèå ðåãèñòðàöèè ïîçâîëÿåò ñýêîíîìèòü äâà çàïðîñà ê áàçå äàííûõ", +'opt_sys_ut' => "Ñïîñîá ðåãèñòðàöèè íà ñàéòå:", +'opt_sys_utd' => "Ïðè âêëþ÷åíèè óïðîùåííîé ñèñòåìû ðåãèñòðàöèè íå áóäåò îòñûëàòüñÿ ïèñüìî ñ àêòèâàöèåé àêêàóíòà", +'opt_sys_um' => "Ìàêñèìàëüíîå êîëè÷åñòâî çàðåãèñòðèðîâàííûõ ïîëüçîâàòåëåé:", +'opt_sys_umd' => "0 åñëè îãðàíè÷åíèé íåò", +'opt_sys_ud' => "Àâòîìàòè÷åñêîå óäàëåíèå çàðåãèñòðèðîâàííûõ ïîëüçîâàòåëåé:", +'opt_sys_udd' => "Êîëè÷åñòâî äíåé, ÷åðåç êîòîðîå óäàëÿòü ïîëüçîâàòåëÿ åñëè îí íå ïîñåùàë ñàéò 0 = îãðàíè÷åíèé íåò", +'opt_sys_ich' => "Íàñòðîéêà ðàáîòû ñ èçîáðàæåíèÿìè", +'opt_sys_iw' => "Ðàçðåøèòü íàëîæåíèå âîäÿíûõ çíàêîâ:", +'opt_sys_iwd' => "Ïðè çàãðóçêå èëè êîïèðîâàíèè êàðòèíêè íà ñåðâåð, íà íåå áóäåò íàëîæåí âîäÿíîé çíàê", +'opt_sys_im' => "Ìèíèìàëüíûé ðàçìåð äëÿ íàêëàäûâàíèÿ âîäÿíîãî çíàêà:", +'opt_sys_imd' => "Ìèíèìàëüíûé ðàçìåð ëþáîé èç ñòîðîí èçîáðàæåíèÿ, äî êîòîðîãî âîäÿíîé çíàê íàêëàäûâàòüñÿ íå áóäåò", +'opt_sys_ia' => "Ðàçìåð óìåíüøåííîé êîïèè çàãðóæåííîãî èçîáðàæåíèÿ:", +'opt_sys_iad' => "Ñóùåñòâóåò äâå âîçìîæíîñòè èñïîëüçîâàíèÿ äàííîé íàñòðîéêè:

Ïåðâàÿ: Âû çàäàåòå ìàêñèìàëüíûé ðàçìåð â ïèêñåëÿõ ëþáîé èç ñòîðîí çàãðóæàåìîé êàðòèíêè ïðè ïðåâûøåíèè êîòîðîãî áóäåò ñîçäàâàòüñÿ óìåíüøåííàÿ êîïèÿ. Íàïðèìåð: 400

Âòîðàÿ: Âû çàäàåòå øèðèíó è âûñîòó óìåíüøåííîé êîïèè èçîáðàæåíèÿ â ôîðìàòå øèðèíà x âûñîòà. Íàïðèìåð: 100x100", +'opt_sys_ij' => "Êà÷åñòâî ñæàòèÿ .jpg èçîáðàæåíèÿ:", +'opt_sys_ijd' => "Êà÷åñòâî ñæàòèÿ JPEG êàðòèíêè ïðè êîïèðîâàíèè íà ñåðâåð", + +'opt_sys_yes' => "Äà", +'opt_sys_no' => "Íåò", +'opt_sys_reg' => "Óïðîùåííûé", +'opt_sys_reg_1' => "Ðàñøèðåííûé", + +'word_head' => "Ôèëüòð ñëîâ", +'word_error' => "Îøèáêà !!!", +'word_word' => "Ââåäèòå ñëîâî", +'word_del' => "óäàëèòü", +'word_ar' => "Ôèëüòð äëÿ äàííîãî ñëîâà óæå íàçíà÷åí!!!", +'word_nof' => "Ôèëüòð íå íàçíà÷åí", +'word_rep' => "çàìåíèòü íà", +'word_blank' => "Çàìåíÿåìîå ñëîâî íå ìîæåò áûòü ïóñòûì", +'word_new' => "Äîáàâëåíèå íîâîãî ñëîâà â ôèëüòð", +'word_help' => "Ââåäèòå ñëîâî èëè ôðàçó, êîòîðóþ íåîáõîäèìî çàìåíèòü èëè óäàëèòü.", +'word_help_1' => "Ââåäèòå ñëîâî èëè ôðàçó íà êîòîðóþ íåîáõîäèìî çàìåíèòü. Eñëè îñòàâèòü ïîëå ïóñòûì, òî ñëîâî áóäåò óäàëåíî", +'word_red' => "ðåä.", +'word_empty' => "Ñïèñîê ñëîâ äëÿ ôèëüòðàöèè ïóñò", +'word_worte' => "Ñëîâà", +'word_lred' => "Çàìåíèòü íà", +'word_ledit' => "Ðåäàêòèðîâàòü", +'word_ldel' => "Óäàëèòü", +'word_help_2' => "Åñëè Âû õîòèòå, ÷òîáû ñëîâî óäàëÿëîñü îñòàâüòå ïîëå \"çàìåíèòü\" ïóñòûì. Âû òàêæå ìîæåòå èñïîëüçîâàòü â ïîëå \"çàìåíèòü\" HTML êîä, èëè BB êîäû.", + +'mail_info' => "Íàñòðîéêà E-Mail ñîîáùåíèÿ, êîòîðîå îòñûëàåòñÿ äëÿ àêòèâàöèè àêêàóíòà", +'mail_reg_info' => "Ïðè íàïèñàíèè øàáëîíà äëÿ äàííîãî ñîîáùåíèÿ âû ìîæåòå èñïîëüçîâàòü ñëåäóþùèå òåãè:
{%username%} - èìÿ ïîëüçîâàòåëÿ æåëàþùåãî çàðåãèñòðèðîâàòüñÿ
{%validationlink%} - ññûëêà íà àêòèâàöèþ àêêàóíòà
{%password%} - ïàðîëü ïîëüçîâàòåëÿ, ââåäåííûé ïðè ðåãèñòðàöèè", +'mail_info_1' => "Íàñòðîéêà E-Mail ñîîáùåíèÿ, êîòîðîå îòñûëàåòñÿ ÷åðåç ôîðìó îáðàòíîé ñâÿçè", +'mail_feed_info' => "Ïðè íàïèñàíèè øàáëîíà äëÿ äàííîãî ñîîáùåíèÿ âû ìîæåòå èñïîëüçîâàòü ñëåäóþùèå òåãè:
{%username_to%} - èìÿ ïîëó÷àòåëÿ
{%username_from%} - èìÿ îòïðàâèòåëÿ
{%text%} - òåêñò ñîîáùåíèÿ îò ïîëüçîâàòåëÿ
{%ip%} - IP àäðåñ îòïðàâèòåëÿ", +'mail_info_2' => "Íàñòðîéêà E-Mail ñîîáùåíèÿ, êîòîðîå îòñûëàåòñÿ äëÿ âîññòàíîâëåíèÿ çàáûòîãî ïàðîëÿ", +'mail_lost_info' => "Ïðè íàïèñàíèè øàáëîíà äëÿ äàííîãî ñîîáùåíèÿ âû ìîæåòå èñïîëüçîâàòü ñëåäóþùèå òåãè:
{%username%} - èìÿ ïîëüçîâàòåëÿ
{%lostlink%} - ññûëêà íà ãåíåðàöèþ ïàðîëÿ è ññûëêà íà ñáðîñ áëîêèðîâêè ïî IP
{%ip%} - IP àäðåñ îòïðàâèòåëÿ", +'mail_addok' => "Îáíîâëåíèå øàáëîíîâ çàâåðøåíî", +'mail_addok_1' => "Øàáëîíû äëÿ ïèñåì óñïåøíî îáíîâëåíû", + +'static_head' => "Ñïèñîê ñòàòè÷åñêèõ ñòðàíèö", +'static_title' => "Íàçâàíèå:", +'static_descr' => "Îïèñàíèå:", +'static_view' => "Ïðîñìîòðåòü ñòðàíèöó íà ñàéòå", +'static_templ' => "Òåêñò:", +'static_edit' => "Ðåäàêòèðîâàíèå ñòðàíèöû", +'static_addok' => "Îáíîâëåíèå ñòðàíèöû çàâåðøåíî", +'static_addok_1' => "Ñòàòè÷åñêàÿ ñòðàíèöà óñïåøíî ñîõðàíåíà", +'static_a' => "Ñîçäàíèå íîâîé ñòðàíèöû", +'static_err' => "Îøèáêà", +'static_err_1' => "Âñå ïîëÿ îáÿçàòåëüíû ê çàïîëíåíèþ", +'static_del' => "Ñòðàíèöà óäàëåíà", +'static_del_1' => "Âûáðàííàÿ ñòðàíèöà áûëà óñïåøíî óäàëåíà", +'static_confirm' => "Âû óâåðåíû ÷òî õîòèòå óäàëèòü ýòó ñòðàíèöó", + +'xfield_error' => "Îøèáêà ìîäóëÿ", +'xfield_err_1' => "Íåâîçìîæíî ñîõðàíèòü ôàéë", +'xfield_err_2' => "ïðîâåðüòå ñóùåñòâîâàíèå ôàéëà è âûñòàâëåííûå íà íåãî ïðàâà.", +'xfield_err_3' => "Íåâîçìîæíî çàãðóçèòü ôàéë", +'xfield_err_4' => "Ïðîâåðüòå ñóùåñòâîâàíèå ôàéëà è âûñòàâëåííûå íà íåãî ïðàâà íà ÷òåíèå.", +'xfield_err_5' => "Âûáåðèòå ïîëå, êîòîðîå õîòèòå óäàëèòü!", +'xfield_err_6' => "Âû äåéñòâèòåëüíî õîòèòå óäàëèòü âûáðàííîå ïîëå?", +'xfield_err_7' => "Âûáåðèòå ïîëå, êîòîðîå õîòèòå ñäâèíóòü!", +'xfield_err_8' => "Âûáåðèòå ïîëå, êîòîðîå õîòèòå ðåäàêòèðîâàòü!", +'xfield_err_9' => "Ïîëe ñ òàêèì íàçâàíèåì óæå ñóùåñòâóåò!", +'xfield_err_10' => "Åñëè Âû âûáèðàåòå ñïèñîê, òî Âû äîëæíû âïèñàòü äâà èëè áîëåå ïóíêòà ñ ðàçëè÷íûì çíà÷åíèåì!", +'xfield_err_11' => "Ââåäèòå íàçâàíèå è îïèñàíèå ïîëÿ!", +'xfield_addh' => "Äîáàâèòü íîâîå", +'xfield_edith' => "Ðåäàêòèðîâàòü", +'xfield_fih' => "ïîëå", +'xfield_afield' => "Äîáàâëåíèå íîâîãî äîïîëíèòåëüíîãî ïîëÿ", + +'index_msge' => "Âûõîä", +'index_exit' => "Âû óñïåøíî âûøëè èç ñèñòåìû, âîéòè ñíîâà", +'index_errpass' => "Äîñòóï îòêëîíåí!", +'index_inf' => "Äëÿ âõîäà â àäìèíèñòðàòèâíóþ ïàíåëü Âàì íåîáõîäèìî ââåñòè Âàøå èìÿ è ïàðîëü.", +'index_denied' => "Ó âàñ íåò äîñòóïà äëÿ äàííîãî ðàçäåëà ïàíåëè óïðàâëåíèÿ", + +'func_msg' => "Âåðíóòüñÿ íàçàä", + +); + + +//////////// +// Ëîêàëèçàöèÿ äëÿ äàòû +$langdate = array ( +'January' => "ÿíâàðÿ", +'February' => "ôåâðàëÿ", +'March' => "ìàðòà", +'April' => "àïðåëÿ", +'May' => "ìàÿ", +'June' => "èþíÿ", +'July' => "èþëÿ", +'August' => "àâãóñòà", +'September' => "ñåíòÿáðÿ", +'October' => "îêòÿáðÿ", +'November' => "íîÿáðÿ", +'December' => "äåêàáðÿ", +'Jan' => "ÿíâ", +'Feb' => "ôåâ", +'Mar' => "ìàð", +'Apr' => "àïð", +'Jun' => "èþí", +'Jul' => "èþë", +'Aug' => "àâã", +'Sep' => "ñåí", +'Oct' => "îêò", +'Nov' => "íîÿ", +'Dec' => "äåê", + +'Sunday' => "Âîñêðåñåíüå", +'Monday' => "Ïîíåäåëüíèê", +'Tuesday' => "Âòîðíèê", +'Wednesday' => "Ñðåäà", +'Thursday' => "×åòâåðã", +'Friday' => "Ïÿòíèöà", +'Saturday' => "Ñóááîòà", + +'Sun' => "Âñ", +'Mon' => "Ïí", +'Tue' => "Âò", +'Wed' => "Ñð", +'Thu' => "×ò", +'Fri' => "Ïò", +'Sat' => "Ñá", + +); + +@setlocale(LC_ALL, array("ru_RU.CP1251", "ru_SU.CP1251", "ru_RU.KOI8-r", "ru_RU", "russian", "ru_SU", "ru")); +?> \ No newline at end of file diff --git a/language/Russian/adminpanel_repa.lng b/language/Russian/adminpanel_repa.lng new file mode 100644 index 0000000..b938084 --- /dev/null +++ b/language/Russian/adminpanel_repa.lng @@ -0,0 +1,158 @@ + "Àäìèíèñòðàòèâíîå ïîâûøåíèå:", +'repa_st_tot_p' => "Àäìèíèñòðàòèâíîå ïîíèæåíèå:", +'repa_st_repa_off' => "Îòêëþ÷åííà ðåïóòàöèÿ:", +'repa_st_freeze' => "Çàìîðîæåííî:", +'repa_adm_msg_lc' => "Àäìèíèñòðàòèâíîå èçìåíåíèå", +'repa_adm_plus' => "Àäìèíèñòðàòèâíîå ïîâûøåíèå", +'repa_adm_plus_sub' => "Ïîâûøåíèå (îáíóëåíèå åñëè ñòîèò íîëü) ðåïóòàöèè ïîëüçîâàòåëþ àäìèíèñòðàòîðîì, âûñòàâüòå ÷èñëî íà ñêîëüêî áóäåò ïîâûøåíà ðåïóòàöèÿ ïðè íàæàòèè êíîïêè \"Àâòîðà â ïëþñ..\"", +'repa_adm_sub' => "Ïîíèæåíèå (îáíóëåíèå åñëè ñòîèò íîëü) ðåïóòàöèè ïîëüçîâàòåëþ àäìèíèñòðàòîðîì, âûñòàâüòå ÷èñëî íà ñêîëüêî áóäåò ïîíèæåíà ðåïóòàöèÿ ïðè íàæàòèè êíîïêè \"Àâòîðà â ìèíóñ..\"", +'repa_robo_sub' => "Èìÿ âûâîäèìîå â òàáëèöå èñòîðèè ðåïóòàöèè ïîëüçîâàòåëÿ ïðè ïîíèæåíèè èëè ïîâûøåíèè ðåïóòàöèè (íàïðèìåð \"Ðîáîò\")", +'avt_plus' => "Àâòîðà â ïëþñ", +'repa_adm_msg' => "Ñîîáùåíèå ê ïîíèæåíèþ", +'repa_adm_plus_msg' => "Ñîîáùåíèå ê ïîâûøåíèþ", +'repa_adm_plus_com' => "Âûâîäèìûé êîììåíòàðèé ê ïîâûøåíèþ â òàáëèöå èñòîðèè ðåïóòàöèè ïîëüçîâàòåëÿ", +'repa_msgs_adm_st' => "Âêëþ÷åíèå ñîîáùåíèé îá àäìèíèñòðàòèâíîì èçìåíåíèè:", +'repa_msgs_adm_su' => "Åñëè äà - ïðè àäìèíèñòðàòèâíîì ïîâûøåíèè èëè ïîíèæåíèè ðåïóòàöèè ïîëüçîâàòåëþ áóäåò ïðèõîäèòü ËÑ ñ èíôîðìàöèåé î èçìåíåíèè", +'repa_msg_adm_tpl' => "Øàáëîí ñîîáùåíèÿ", +'repa_msg_adm_tsu' => "Øàáëîí ïîëó÷àåìîãî ËÑ
{%text%} - Êîììåíòàðèé ê óäàë¸ííîìó èçìåíåíèþ", +'repa_stop_change_min' => "Çàïðåòèòü èçìåíåíèå, åñëè ðåïóòàöèÿ ìåíüøå", +'repa_stop_change_min_sub' => "Äàííàÿ îïöèÿ ïîçâîëèò çàáëîêèðîâàòü èçìåíåíèå ïîëüçîâàòåëÿ, ó êîòîðîãî ðåïóòàöèÿ íèæå íóëÿ.
Åñëè âû õîòèòå îòêëþ÷èòü äàííóþ îïöèþ, òî ââåäèòå â ïîëå 0", +'repa_stop_change_sub' => "Âðåìÿ (äíè) ÷åðåç êîòîðîå ïîëüçîâàòåëü ñìîæåò ñíîâà èçìåíèòü ðåïóòàöèþ òîìó æå ïîëüçîâàòåëþ.
Òàê æå â ïðîìåæóòêå ýòîãî âðåìåíè ïîëüçîâàòü ñìîæåò îòðåäàêòèðâîàòü ñâî¸ èçìåíåíèå ïîëüçîâàòåëþ (èçìåíèòü êîììåíòàðèé èëè îòíîøåíèå)", +'repa_msg_top' => "Ñîîáùåíèå", +'repa_ban_desc' => "Øàáëîí ñîîáùåíèÿ î áëîêèðîâêå", +'repa_ban_desc_sub' => "Äàííûé òåêñò áóäåò âûâîäèòñÿ çàáëîêèðîâàííîìó ïîëüçîâàòåëþ êàê ïðè÷èíà áëîêèðîâêè íà ñàéòå", +'repa_msg_changed' => "Âàì èçìåíèëè ðåïóòàöèþ", +'repa_type0' => "Ñòàíäàðòíûé", +'repa_type1' => "Ðàñøèðåííûé", +'repa_type2' => "Ïîäðîáíûé", +'opt_type_repa' => "Âûáèðèòå òèï âûâîäà ðåïóòàöèè", +'opt_type_repa_sub' => "Äàííàÿ îïöèÿ ïîçâîëèò èçìåíèòü âèä âûâîäà ðåïóòàöèè ó ïîëüçîâàòåëåé.
Ñòàíäàðòíûé - âûâîä ðåïóòàöèè âèäà: - 10 +
Ðàñøèðåííûé - âûâîä ðåïóòàöèè âèäà: - (13|3) +
Ïîäðîáíûé - âûâîä ðåïóòàöèè âèäà: - (13|10|3) +", +'repa_msgs_del_st' => "Âêëþ÷åíèå ñîîáùåíèé îá óäàëåíèè ðåïóòàöèè:", +'repa_msgs_del_su' => "Åñëè äà - ïðè óäàëåíèè ðåïóòàöèè ïîëüçîâàòåëþ ïðèä¸ò ËÑ ñ èíôîðìàöèåé î óäàëåíèè", +'repa_msg_del_tpl' => "Øàáëîí ñîîáùåíèÿ", +'repa_msg_del_tsu' => "Øàáëîí ïîëó÷àåìîãî ËÑ
{%kto%} - Àâòîð
{%ot_kogo%} - ×ü¸ èçìåíåíèå áûëî óäàëåíî
{%text%} - Êîììåíòàðèé ê óäàë¸ííîìó èçìåíåíèþ", +'repa_logs' => "Ëîãè óäàëåíèÿ", +'repa_logs_sub' => "Ëîãè óäàëåíèÿ ðåïóòàöèè ó ïîëüçîâàòåëåé", +'repa_skins' => "Âûêëþ÷èòü AJAX â äàííîì øàáëîíå? Ïðè îòêëþ÷åíèè - èçìåíÿòü ðåïóòàöèþ ìîæíî áóäåò íà îòäåëüíîé ñòðàíèöå, à íå íà òîé æå.", +'repa_skins_opt' => "Ïîääåðæêà AJAX â øàáëîíàõ", +'repa_ban' => "Áëîêèðîâêà ïîëüçîâàòåëåé", +'repa_ban_sub' => "Ïðè äîñòèæåíèè X ðåïóòàöèè ïîëüçîâàòåëü áóäåò çàáàíåí íà X äíåé", +'repa_ban_num' => "Ðåïóòàöèÿ", +'repa_ban_num_sub' => "Âûáèðèòå ïðè äîñòèæåíèè êàêîé ðåïóòàöèè ïîëüçîâàòåëü áóäåò çàáëîêèðîâàí", +'repa_ban_days' => "Êîë-âî äíåé", +'repa_ban_days_sub' => "Âûáèðèòå íà ñêîëüêî äíåé áóäåò çàáëîêèðîâàí ïîëüçîâàòåëü", +'opt_repa_news' => "Âûâîä â íîâîñòÿõ", +'opt_repa_news_sub' => "Âûâîä ðåïóòàöèè àâòîðà ñòàòüè/íîâîñòè â êîðîòêîé è ïîëíîé âåðñèè íîâîñòè", +'opt_repa' => "Ðåïóòàöèÿ", +'opt_repa_sub' => "Óïðàâëåíèå ìîäóëåì
© Inrus & ShapeShifter", +'repa_value' => "Ðåïóòàöèÿ:", +'repa_on' => "Âêëþ÷åíà", +'repa_off' => "Âûêëþ÷åíà", +'repa_stats' => "Ñòàòèñòèêà ìîäóëÿ", +'repa_st_on' => "Âêëþ÷åí", +'repa_st_off' => "Âûêëþ÷åí", +'repa_st_vr' => "Âåðñèÿ ìîäóëÿ:", +'repa_st_st' => "Ñòàòóñ ìîäóëÿ:", +'repa_st_ca' => "Èçìåíåíèé ðåïóòàöèè:", +'repa_st_in' => "Ïîëîæèòåëüíûõ:", +'repa_st_es' => "Îòðèöàòåëüíûõ:", +'repa_options' => "Îïöèè", +'repa_m_opts' => "Íàñòðîéêè ñèñòåìû ðåïóòàöèè", +'repa_m_sub' => "Êîíôèãóðàöèÿ ñèñòåìû", +'repa_control' => "Èñòîðèÿ èçìåíåíèé", +'repa_con_sub' => "Êîíòðîëü çà èçìåíåíèÿìè ðåïóòàöèè", +'repa_info' => "Èíôîðìàöèÿ", +'repa_i_sb' => "Èíôîðìàöèÿ î ìîäóëå", +'repa_opts' => "Îñíîâíûå íàñòðîéêè", +'repa_h_op' => "Íàñòðîéêè âûâîäà", +'repa_cts' => "Íàñòðîéêà êîíòðîëÿ", +'repa_mop' => "Íàñòðîéêà ñîîáùåíèé", +'repa_grs' => "Íàñòðîéêà ãðóïï", +'repa_blp' => "×åðíûé ïåðèîä", +'repa_stop_change' => "Çàïðåò íà ïîâòîðîå èçìåíåíèå", +'repa_stp' => "Íàñòðîéêà ñòðàíèöû ñòàòèñòèêè", +'opt_general_repa' => "Íàñòðîéêà ïàðàìåòðîâ ìîäóëÿ (èñïîëüçóéòå íàâèãàöèþ äëÿ äîñòóïà ê ðàçäåëàì)", +'opt_gen_st' => "Ñòàòóñ ñèñòåìû:", +'opt_gen_st_sub' => "Âêëþ÷åíèå/Âûêëþ÷åíèå ñèñòåìû ðåéòèíãà ïîëüçîâàòåëåé íà ñàéòå", +'opt_gen_min_sub' => "Óñòàíîâêà ìèíèìàëüíîãî çíà÷åíèÿ ðåïóòàöèè", +'opt_gen_max_sub' => "Óñòàíîâêà ìàêñèìàëüíîãî çíà÷åíèÿ ðåïóòàöèè", +'opt_gen_comms' => "Êîììåíòàðèè", +'opt_gen_symb' => "Ìàêñèìàëüíîå êîëè÷åñòâî ñèìâîëîâ â êîììåíòàðèÿõ", +'opt_gen_symb_min' => "Ìèíèìàëüíîå êîëè÷åñòâî ñèìâîëîâ â êîììåíòàðèÿõ", +'opt_gen_page' => "Âûâîä ññûëêè íà ñòðàíèöó ñ èçìåíåíèåì", +'opt_gen_page_sub' => "Äîáàâëåíèÿ ññûëêè ê êîììåíòàðèþ ñ êàêîé ñòðàíèöû áûëî èçìåíåíèå", +'opt_gen_break' => "Àâòîìàòè÷åñêàÿ ðàçáèâêà äëèííûõ ñëîâ:", +'opt_site_res' => "Êîëè÷åñòâî âûâîäèìûõ ðåçóëüòàòîâ íà ñàéòå:", +'opt_cp_res' => "Êîëè÷åñòâî âûâîäèìûõ ðåçóëüòàòîâ â ÊÏ:", +'opt_gen_c_sub' => "Âêëþ÷åíèå/Âûêëþ÷åíèå êîììåíòàðèåâ ê èçìåíåíèþ ðåïóòàöèè ïîëüçîâàòåëÿ", +'opt_gen_symb_sub' => "Óêàæèòå ìàêñèìàëüíîå êîëè÷åñòâî ñèìâîëîâ, êîòîðîå ìîæåò èñïîëüçîâàòü ïîëüçâàòåëü ïðè íàïèñàíèè êîììåíòàðèåâ", +'opt_gen_symb_sub_min' => "Óêàæèòå ìèíèìàëüíîå êîëè÷åñòâî ñèìâîëîâ, êîòîðîå ìîæåò èñïîëüçîâàòü ïîëüçâàòåëü ïðè íàïèñàíèè êîììåíòàðèåâ", +'opt_gen_break_sub' => " ñëó÷àå ïðåâûøåíèÿ çàäàííîãî ÷èñëà ñèìâîëîâ", +'opt_comm_st_on' => "Âêëþ÷åíû", +'opt_comm_st_off' => "Âûêëþ÷åíû", +'opt_site_sub' => "Êîëè÷åñòâî âûâîäèìûõ íà îäíó ñòðàíèöó ðåçóëüòàòîâ èñòîðèè ðåïóòàöèè íà ñàéòå", +'opt_cp_sub' => "Êîëè÷åñòâî âûâîäèìûõ íà îäíó ñòðàíèöó ðåçóëüòàòîâ èñòîðèè ðåïóòàöèè â àäìèíêå", +'repa_adm' => "Àäìèíèñòðàòèâíîå ïîíèæåíèå", +'repa_robot' => "Èìÿ ðîáîòà", +'repa_replace' => "Çàìåíà êîììåíòàðèÿ", +'repa_adm_com' => "Âûâîäèìûé êîììåíòàðèé ê ïîíèæåíèþ â òàáëèöå èñòîðèè ðåïóòàöèè ïîëüçîâàòåëÿ", +'repa_adm_rpm' => "Åñëè áóäåò óäàëåíî òîëüêî ñîîáùåíèå èç ñòðîêè ñòàòèñòèêàè èçìåíåíèé, òî êîììåíòàðèé áóäåò çàìåíåí ýòèì ñîîáùåíèåì", +'repa_msgs_st' => "Âêëþ÷åíèå ñîîáùåíèé:", +'repa_msgs_su' => "Åñëè äà - ïðè èçìåíåíèè ðåïóòàöèè ïîëüçîâàòåëþ áóäåò ïðèõîäèòü ËÑ ñ èíôîðìàöèåé î èçìåíåíèè", +'repa_msg_tpl' => "Øàáëîí ñîîáùåíèÿ", +'repa_msg_tsu' => "Øàáëîí ïîëó÷àåìîãî ËÑ
{%kto%} - Àâòîð
{%what%} - ïîâûñèë/ïîíèçèë
{%text%} - êîììåíòàðèé ê èçìåíåíèþ", +'repa_rules' => "Âûâîä ïðàâèë ïðè èçìåíåíèè", +'repa_rules_su' => "Íà ñòðàíèöå ñ ôîðìîé èçìåíåíèé ðåïóòàöèè áóäóò âûâîäèòñÿ ïðàâèëà", +'repa_rules_tpl' => "Ïðàâèëà", +'repa_rules_tpl_su' => "Ââåäèòå ñïèñîê ïðàâèë.
 ôîðìå ìîæíî èñïîëüçîâàòü bbcode.", +'repa_yes' => "Äà", +'repa_no' => "Íåò", +'repa_gr_fr' => "Êîëè÷åñòâî äîïóñòèìûõ èçìåíåíèé ðåïóòàöèè ñîâåðøàåìûõ ãðóïïîé ", +'repa_gr_sc' => "Âîçìîæíîñòü ìîäåðèðîâàòü ðåïóòàöèþ ñ ñàéòà äðóãèì ïîëüçîâàòåëÿì", +'bl_period' => "×åðíûé ïåðèîä", +'bl_per_su' => "Êîëè÷ñòâî äíåé, êîòîðîå ïîëüçîâàòåëü íå ñìîæåò èçìåíÿòü äðóãèì ðåïóòàöèþ, íà÷èíàÿ ñ ïåðâîé ñåêóíäû åãî ðåãèñòðàöèè", +'repa_st_page' => "Âêëþ÷åíèå ñòðàöíèöû:", +'repa_st_p_sub' => "Åñëè äà - áóäåò âêëþ÷åíà ñòðàíèöà ñî ñïèñêîì ïîëüçîâàòåëåé ñ íàèâûñøåé ðåïóòàöèåé
Ñòðàíèöà áóäåò äîñòóïíà ïî ýòèì ññûëêàì:
", +'repa_page_kol' => "Êîëè÷åñòâî ðåçóëüòàòîâ", +'page_kolvo' => "Êîëè÷åñòâî ïîëüçîâàòåëåé, êîòîðîå íóæíî âûâîäèòü íà ñòðàíèöó", +'off_alt' => "Åñëè ñòðàíèöà âûêëþ÷åíà, áóäåò âûâåäåíî ýòî ñîîáùåíèå", +'repa_save' => "Ñîõðàíèòü", +'repa_msg_chd' => "Êîììåíòàðèé èçìåíåí", +'repa_go_back' => "Âåðíóòüñÿ íàçàä", +'repa_cntrl' => "Êîíòðîëü íàä èçìåíåíèÿìè ðåïóòàöèè", +'repa_comm_ed' => "Ðåäàêòèðîâàíèå êîììåíòàðèÿ:", +'repa_done' => "Ãîòîâî", +'repa_done_minus_1' => "Èçìåíåíèå ðåïóòàöèè ïîëüçîâàòåëÿ", +'repa_done_minus_2' => "óñïåøíî èçìåíåíî! Åãî ðåïóòàöèÿ óøëà äî", +'repa_done_minus_2' => "óñïåøíî èçìåíåíî!", +'delcom' => "Óäàëåíèå êîììåíòàðèÿ", +'deleted' => "Êîììåíòàðèé óñïåøíî óäàëåí", +'opt_saved' => "Íàñòðîéêè óñïåøíî ñîõðàíåíû!", +'avt_minus' => "Àâòîðà â ìèíóñ", +'full_del' => "Óäàëèòü ïîëíîñòüþ", +'delcom_done' => "Óäàëèòü êîììåíòàðèé", +'edit_this' => "Èçìåíèòü êîììåíòàðèé", +'del_quest' => "Âû äåéñòâèòåëüíî õîòèòå óäàëèòü ýòî èçìåíåíèå?", +'repa_nothing' => "Èçìåíåíèé ðåïóòàöèè íå áûëî.", +'repa_pages' => "Ñòðàíèöû:", +'repa_first_p' => "ê íà÷àëüíîé ñòðàíèöå", +'repa_last_p' => "ê ïîñëåäíåé ñòðàíèöå", +'repa_how_pl' => "Ïîëîæèòåëüíî", +'repa_how_mn' => "Îòðèöàòåëüíî", +'repa_how_tm' => "Àäìèíèñòðàòèâíîå íàêàçàíèå", +'repa_who' => "Êòî (Àâòîð)", +'repa_to' => "Êîìó (Àäðåñàò)", +'repa_supp' => "Îòíîøåíèå", +'repa_commst' => "Êîììåíòàðèé", +'r_mod_name' => "Ðåïóòàöèÿ ïîëüçîâàòåëåé", +'r_total' => "Âñåãî èçìåíåíèé:", +'repa_do_freeze' => "Çàìîðîçèòü ðåïóòàöèþ", +'freeze_info' => "Åñëè ñòîèò ãàëî÷êà, ó ýòîãî ïîëüçîâàòåëÿ íå áóäåò ïðàâà ìåíÿòü ðåïóòàöèþ äðóãèì", + +); + +?> \ No newline at end of file diff --git a/language/Russian/chat.lng b/language/Russian/chat.lng new file mode 100644 index 0000000..28458cc --- /dev/null +++ b/language/Russian/chat.lng @@ -0,0 +1,52 @@ + "windows-1251", + +'mchat' => "DLE mChat", +'mchatc' => "Óïðàâëåíèå è íàñòðîéêà Ìèíè-÷àòà.", +'mc_conf' => "Íàñòðîéêà Ìèíè-÷àòà", +'mc_trunñ' => "×èñòêà Ìèíè-÷àòà", +'mc_smiles' => "Ñìàéëèêè", +'mc_colornik' => "Ïîäñâåòêà íèêà", +'mc_colornikc' => "Âêëþ÷èòü ïîäñâåòêó íèêà àäìèíèñòðàòîð, ðåäàêòîðà, æóðíàëèñòà
(íàñòðîéêà öâåòà âî âêëàäêå \"Color Nik\")", +'mc_showdate' => "Ïîêàçûâàòü äàòó", +'mc_showdatec' => "Ïîêàçûâàòü äàòó â îêíå ÷àòà", +'mc_limit' => "Êîëè÷åñòâî ñîîáùåíèé â èñòîðèè ñîîáùåíèé", +'mc_limitc' => "Óêàæèòå ñêîëüêî ñîîáùåíèé âûâîäèòü â èñòîðèè ñîîáùåíèé", +'mc_limitb' => "Êîëè÷åñòâî ñîîáùåíèé â áëîêå", +'mc_limitbc' => "Óêàæèòå ñêîëüêî ñîîáùåíèé âûâîäèòü â îêíå ÷àòà", +'mc_guest' => "Ðàçðåøèò ãîñòþ äîáàâëÿòü ñîîáùåíèÿ", +'mc_guestc' => "Åñëè 'Íåò', òî ãîñòè íå ñìîãóò äîáàâëÿòü ñîîáùåíèÿ. Åñëè 'Äà', òîãäà ãîñòè ñìîãóò äîáàâëÿòü ñîîáùåíèÿ.", +'mc_timestamp' => "Ôîðìàò âðåìåíè", +'mc_timestampa' => "Ôîðìàò âðåìåíè â àäìèíêå", +'mc_refresh' => "Àâòî îáíîâëåíèå îêíà", +'mc_refreshc' => "â ñåêóíäàõ, 0 - íå ñòàâèòü", +'mc_dbrows' => "Àâòîìàòè÷åñêàÿ ÷èñòêà ÁÄ mÑhat", +'mc_dbrowsc' => "êîëè÷åñòâî çàïèñåé õðàíèìûõ â ÁÄ, 0 = õðàíèòü âñå çàïèñè", +'mc_spam' => "Çàùèòà îò ôëóäà", +'mc_spamc' => "óêàçûâàåòñÿ â ñåêóíäàõ; 0 = çàùèòû íåò", +'mc_sc' => "Êîëè÷åñòâî êîëîíîê ñî ñìàéëèêàìè", +'mc_scc' => "Óêàæèòå êîëè÷åñòâî êîëîíîê ñî ñìàéëèêàìè", +'mc_trun' => "Âû óâåðåíû, ÷òî õîòèòå î÷èñòèòü ÷àò (âñå ñîîáùåíèÿ áóäóò óäàëåíû)", +'mc_addmssa' => "Äîáàâèòü ñîîáùåíèÿ îò àäìèíà", +'mc_addmssok' => "Ñîîáùåíèå óñïåøíî äîáàâëåíî", +'mc_main' => "Ñïèñîê ñîîáùåíèé", +'mc_mess_page' => "Cîîáùåíèé íà ñòðàíèöó:", +'mc_stat' => "Ïîêàçàíî ñîîáùåíèé:", +'mc_stat1' => "Âñåãî ñîîáùåíèé â áàçå äàííûõ:", +'mc_mess_delok' => "Âñå âûáðàííûå Âàìè ñîîáùåíèÿ óñïåøíî óäàëåíû!", +'mc_mess_notok' => "Óäàëåíèå ñîîáùåíèé (íàéäåíû îøèáêè!!!)", +'mc_mess_notok_1' => "ñîîáùåíèé óäàëåíû", +'mc_color1' => "Äëÿ Àäìèíèñòðàòîðîâ", +'mc_color2' => "Äëÿ Ãëàâíûåõ ðåäàêòîðîâ", +'mc_color3' => "Äëÿ Æóðíàëèñòîâ", +'mc_version' => "Ìèíè-÷àòà âåðñèÿ", +'mc_ver_you' => "Âàøà òåêóùàÿ âåðñèÿ:", +'mc_ver_full' => "Ïîñëåäíÿÿ âåðñèÿ:", +'mc_load_verfull' => "Cêà÷àòü ïîñëåäíèþ âåðñèþ!", +'mc_smail' => "Ïóòü ê ñìàéëàì", +'mc_smailb' => "Ïóòü ê ñìàéëàì ïî óìîë÷àíèþ ýòî ïàïêà 'engine/modules/mchat/smiles'", +); +?> diff --git a/language/Russian/friends.lng b/language/Russian/friends.lng new file mode 100644 index 0000000..e00070a --- /dev/null +++ b/language/Russian/friends.lng @@ -0,0 +1,16 @@ + "Âû íå ìîæåòå ïðåäëîæèòü ýòîìó ïîëüçîâàòåëþ äðóæáó", +'invite' => "Ïðåäëîæåíèå äðóæáû", +'is_friend' => "Ïîëüçîâàòåëü êîòîðîìó âû ïðåäëàãàåòå äðóæáó, ïðèñóòñòâóåò â ñïèñêå âàøèõ äðóçåé", +'friend_send' => "Ïðåäëîæåíèå äðóæáû îòïðàâëåíî", +'friend_subj' => "Ïðåäëîæåíèå äðóæáû", +'friend_act' => "Äåéñòâèÿ óñïåøíî âûïîëíåíî", +'err_act' => "Íå âîçìîæíî âûïîëíèòü äåéñòâèå", + +); + + +?> \ No newline at end of file diff --git a/language/Russian/help.lng b/language/Russian/help.lng new file mode 100644 index 0000000..444b4a8 --- /dev/null +++ b/language/Russian/help.lng @@ -0,0 +1,62 @@ + + + + + +
+Øàáëîíû èñïîëüçóþòñÿ äëÿ ëåãêîãî èçìåíåíèÿ îòîáðàæåíèÿ íîâîñòåé. Âû ìîæåòå èçìåíÿòü ðàçëè÷íûå ÷àñòè øàáëîíà, êîòîðûå èñïîëüçóþòñÿ äëÿ ðàçëè÷íûõ ÷àñòåé îòîáðàæåíèÿ íîâîñòåé. Íàïðèìåð, ÷àñòü øàáëîíà "Êðàòêîå ñîäåðæàíèå" èñïîëüçóåòñÿ, ÷òîáû èçìåíèòü âèä àêòèâíûõ íîâîñòåé, "Ñòàòüÿ öåëèêîì", ÷òîáû èçìåíèòü âèä ïîëíîé ñòàòüè, "Êîììåíòàðèé", ÷òîáû èçìåíèòü âèä êîììåíòàðèåâ è ò.ä.

+Ïðè ðåäàêòèðîâàíèè ÷àñòåé øàáëîíà Âû ìîæåòå èñïîëüçîâàòü HTML, ÷òîáû èçìåíèòü ðàçëè÷íûå ñòðóêòóðû è ò.ä. Òàêæå Âû áóäåòå äîëæíû äîáàâèòü íåêîòîðûå ñïåöèàëüíûå îáîçíà÷åíèÿ â âàøèõ øàáëîíàõ, ÷òîáû îïðåäåëèòü ìåñòî, ãäå áóäåò ïîêàçàíî íàçâàíèå íîâîñòè, èìÿ àâòîðà, äàòà è ò.ä. Êàæäîé ÷àñòè øàáëîíà ñîîòâåòñòâóåò îïðåäåëåííîå îáîçíà÷åíèå.
+Çíà÷åíèÿ ïåðåìåííûõ ìîæíî ïîñìîòðåòü íà ñòðàíèöå ðåäàêòèðîâàíèÿ øàáëîíîâ ïðè ùåë÷êå íà íàçâàíèè ÷àñòè øàáëîíà. Íàïðèìåð {title} áóäåò âûâîäèòü íàçâàíèå ñòàòüè, à {author} àâòîðà ñòàòüè è ò.ä.

+Âû ìîæåòå èñïîëüçîâàòü íåñêîëüêî ðàçëè÷íûõ øàáëîíîâ. +HTML; + +$help_sections['date'] = << + + + + +
+Â ñòðîêå ôîðìàòà ðàñïîçíàþòñÿ ñëåäóþùèå ñèìâîëû: +
    +
  • a - "am" èëè "pm" +
  • A - "AM" èëè "PM" +
  • B - âðåìÿ Swatch Internet +
  • d - äåíü (÷èñëî) ìåñÿöà, 2 öèôðû ñ âåäóùèì íóë¸ì, åñëè íåîáõîäèìî; ò. å. îò "01" äî "31" +
  • D - äåíü íåäåëè, áóêâåííûé, 3 áóêâû; íàïðèìåð, "Fri" +
  • F - ìåñÿö, áóêâåííûé, long; íàïðèìåð, "January" +
  • g - ÷àñ, 12-÷àñîâîé ôîðìàò áåç âåäóùèõ íóëåé; ò.å. îò "1" äî "12" +
  • G - ÷àñ, 24-÷àñîâîé ôîðìàò áåç âåäóùèõ íóëåé; ò.å. îò "0" äî "23" +
  • h - ÷àñ, 12-÷àñîâîé ôîðìàò; ò.å. îò "01" äî "12" +
  • H - ÷àñ, 24-÷àñîâîé ôîðìàò; ò.å. îò "00" äî "23" +
  • i - ìèíóòû; ò.å. îò "00" äî "59" +
  • I (çàãëàâíàÿ i) - "1", åñëè Daylight Savings Time, "0" - â ïðîòèâíîì ñëó÷àå. +
  • j - äåíü (÷èñëî) ìåñÿöà áåç âåäóùèõ íóëåé; ò.å. îò "1" äî "31" +
  • l ('L' â íèæíåì ðåãèñòðå) - äåíü íåäåëè, áóêâåííûé, long; íàïðèìåð, "Friday" +
  • L - boolean, óêàçûâàþùåå, âèñîêîñíûé ëè ãîä; ò.å. "0" èëè "1" +
  • m - ìåñÿö; ò.å. îò "01" äî "12" +
  • M - ìåñÿö, áóêâåííûé, 3 áóêâû; íàïðèìåð, "Jan" +
  • n - ìåñÿö áåç âåäóùèõ íóëåé; ò.å. îò "1" äî "12" +
  • O - Ðàçíèöà ñ âðåìåíåì ïî Ãðèíâè÷ó, â ÷àñàõ; íàïðèìåð, "+0200" +
  • r - RFC 822 ôîðìàò äàòû; íàïðèìåð, "Thu, 21 Dec 2000 16:01:07 +0200" (ââåä¸í â PHP 4.0.4) +
  • s - ñåêóíäû; ò.å. îò "00" äî "59" +
  • S - ïðîñòîé àíãëèéñêèé ñóôôèêñ äëÿ äíÿ (÷èñëà) ìåñÿöà, 2 ñèìâîëà; ò.å. "st", "nd", "rd" èëè "th" +
  • t - êîëè÷åñòâî äíåé â äàííîì ìåñÿöå; ò.å. îò "28" äî "31" +
  • T - óñòàíîâêà Timezone/×àñîâîé ïîÿñ íà äàííîé ìàøèíå; íàïðèìåð, "EST" èëè +"MDT" +
  • U - ñåêóíäû ýïîõè Unix Epoch (íà÷èíàÿ ñ January 1 1970 00:00:00 GMT) +
  • w - äåíü íåäåëè, ÷èñëîâîé, ò.å. îò "0" (Sunday) äî "6" (Saturday) +
  • W - ISO-8601 íîìåð íåäåëè â ãîäó, íåäåëè íà÷èíàþòñÿ ñ ïîíåäåëüíèêà/Monday +(ââåäåíî â PHP 4.1.0) +
  • Y - ãîä, 4 öèôðû; íàïðèìåð, "1999" +
  • y - ãîä, 2 öèôðû; íàïðèìåð, "99" +
  • z - äåíü ãîäà; ò.å. îò "0" äî "365" +
  • Z - ñìåùåíèå ÷àñîâîãî ïîÿñà, â ñåêóíäàõ (ò.å. îò "-43200" äî "43200"). +Ñìåùåíèå ÷àñîâûõ ïîÿñîâ ê çàïàäó îò UTC âñåãäà îòðèöàòåëüíîå, à äëÿ ïîÿñîâ ê +âîñòîêó îò UTC - âñåãäà ïîëîæèòåëüíîå.
+HTML; + +?> \ No newline at end of file diff --git a/language/Russian/img.lng b/language/Russian/img.lng new file mode 100644 index 0000000..df3475f --- /dev/null +++ b/language/Russian/img.lng @@ -0,0 +1,21 @@ + "windows-1251", + +'img_heading' => "Íàñòðîéêè êàðòèíêè", + +'img_off' => "Ìîäóëü âûêëþ÷åí", +'img_gallery' => "Ðåæèì ãàëåðåè âêëþ÷åí", +'img_server' => "Ðàçðåøèòü çàãðóçêó ñ ñåðâåðà", +'img_width' => "Øèðèíà êàðòèíêè", +'img_taglimit' => "Êîëè÷åñòâî âûâîäèìûõ òåãàìè êàðòèíîê â íîâîñòè", +'img_doeditcfg' => "Ñîõðàíèòü íàñòðîéêè", +'opt_conok' => "Íàñòðîéêè ñîõðàíåíû", +'opt_conok_1' => "Íàñòðîéêè ñîõðàíåíû óñïåøíî", + +'db_prev' => "Âåðíóòüñÿ íàçàä", +'func_msg' => "Âåðíóòüñÿ íàçàä", +); +?> diff --git a/language/Russian/rating.lng b/language/Russian/rating.lng new file mode 100644 index 0000000..025196c --- /dev/null +++ b/language/Russian/rating.lng @@ -0,0 +1,39 @@ + "windows-1251", +'options_p' => "Íàñòðîéêà ìîäóëÿ", +'opt_denied' => "Äîñòóï îòêëîíåí", +'info' => "Èíôîðìàöèÿ", +'desc_about_p' => "Ïîäðîáíàÿ èíôîðìàöèÿ î ìîäóëå", +'desc_options_p'=> "Óïðàâëåíèå îáùèìè ôóíêöèÿìè ìîäóëÿ", +'navig' => "Íàâèãàöèÿ àäìèíöåíòðà ìîäóëÿ ïîäñêàçîê", + +'about' => "Èíôîðìàöèÿ î ìîäóëå", +'name_mod' => "Íàçâàíèå", +'ver_mod' => "Âåðñèÿ ìîäóëÿ", +'autor' => "Ìîäèôèöèðîâàë", +'site' => "Ñàéò", +'admin' => "Íå ó÷èòûâàòü ñòàòóñ Àäìèíèñòðàòîðà è Ãë.ðåäàêòîðà", +'admin_i' => "Åñëè âêëþ÷åíî, òî ðåéòèíã Àäìèíèñòðàòîðà è Ãë.Ðåäàêòîðà ñ÷èòàåòñÿ êàê ó îáû÷íûõ ïîëüçîâàòåëåé, èíà÷å ìàêñèìàëåí(íà îäíó ñòóïåíü íèæå ó Ãë.Ðåäàêòîðà).", +'txt' => "Âêëþ÷èòü òåêñòîâûå ñòàòóñû", +'txt_i' => "Åñëè äà, òî áóäóò îòîáðàæàòüñÿ òåêñòîâûå ñòàòóñû, èíà÷å òîëüêî ñòàòóñ-êàðòèíêè.", +'yes' => "Äà", +'no' => "Íåò", +'suc_save_1' => "Íàñòðîéêè ñèñòåìû áûëè óñïåøíî ñîõðàíåíû", +'suc_save' => "Íàñòðîéêè ñîõðàíåíû", +'save' => "Ñîõðàíèòü", +'func_msg' => "Âåðíóòüñÿ íàçàä", +'save_conf' => "Íàñòðîéêè óñïåøíî ñîõðàíåíû!", + +'upd_01' => "âû èñïîëüçóåòå óñòàðåâøóþ âåðñèþ ìîäóëÿ, ðåêîìåíäóåòñÿ âûïîëíèòü îáíîâëåíèå", +'upd_02' => "âû èñïîëüçóåòå àêòóàëüíóþ âåðñèþ ìîäóëÿ, ñëåäèòå çà îáíîâëåíèÿìè", +'upd_03' => "íå óäàëîñü ïîäêëþ÷èòñÿ ê óäàëåííîìó ñåðâåðó, ïîâòîðèòå ïîïûòêó íåìíîãî ïîçäíåå", +'upd_04' => "âû èñïîëüçóåòå íåîïðåäåëåííóþ âåðñèþ ìîäóëÿ, óñòàíîâèòå ïîñëåäíþþ âåðñèþ", + +'last_ver' => "Ïîñëåäíÿÿ âåðñèÿ", +'error_upd' => "Ïðîèçîøëà îøèáêà ïîäêëþ÷åíèÿ ê íàøåìó ñåðâåðó. Ïðèíîñèì ñâîè èçâèíåíèÿ, ïîïðîáóéòå ïîæàëóéñòà ïîçæå.", + +); +?> \ No newline at end of file diff --git a/language/Russian/table.lng b/language/Russian/table.lng new file mode 100644 index 0000000..4176bf9 --- /dev/null +++ b/language/Russian/table.lng @@ -0,0 +1,131 @@ + 'Ãëàâíîå ìåíþ', +'main_control' => 'Ðåäàêòèðîâàòü çàêàçû', +'main_control_descr' => 'Óïðàâëåíèå çàêàçàìè íà ñàéòå', +'main_options' => 'Íàñòðîéêà ìîäóëÿ', +'main_options_descr' => 'Íàñòðîéêà îñíîâíûõ ïàðàìåòðîâ ìîäóëÿ', + +'etitle' => 'Ðåäàêòèðîâàíèå çàêàçà', +'edit_head' => 'Ðåäàêòèðîâàíèå çàêàçîâ', +'orders_list' => 'Ñïèñîê çàêàçîâ íà ñàéòå', +'orders_advanced_search' => 'Ðàñøèðåííûé ïîèñê çàêàçîâ', +'edit_stat' => 'Ïîêàçàíî çàêàçîâ:', +'edit_stat_1' => 'Âñåãî íàéäåíî çàêàçîâ â áàçå äàííûõ:', +'edit_search_orderss' => 'Ïîèñê ïî çàêàçàì:', +'edit_page' => 'Çàêàçîâ íà ñòðàíèöó:', +'search_by_date' => 'Äàòà çàêàçà:', +'search_by_status' => 'Ñòàòóñ çàêàçîâ:', +'orders_order' => 'Ïîðÿäîê ñîðòèðîâêè çàêàçîâ', +'edit_noorders' => 'Âûáðàííûé âàìè çàêàç íå íàéäåí!', +'edit_act' => 'Ðåäàêòèðîâàòü äàííûé çàêàç', +'edit_date' => 'Äàòà', +'edit_author' => 'Àâòîð', +'edit_title' => 'Çàãîëîâîê', +'edit_status' => 'Ñòàòóñ', +'edit_status1' => 'Ñòàòóñ:', +'edit_cat' => 'Êàòåãîðèÿ', +'cat_in_none' => '- Áåç êàòåãîðèè -', +'orders_status_all' => 'Âñå çàêàçû', +'edit_status_0' => 'Îæèäàåòñÿ', +'edit_status_1' => 'Ïðèíÿòî', +'edit_status_2' => 'Îòêëîíåíî', +'edit_status_3' => 'Âûïîëíåíî', +'edit_runame' => 'Íàçâàíèå (Ðóñ.):', +'edit_enname' => 'Îðèãèíàëüíîå íàçâàíèå:', +'edit_category' => 'Òèï ôàéëà:', +'edit_fileyear' => 'Ãîä èçäàíèÿ:', +'edit_link' => 'Ñîîáùåíèå:', +'edit_answer' => 'Ïðèìå÷àíèå:
Ïðè÷èíà îøèáêè çàêàçà.
*Êàæäóþ ññûëêó, ñ íîâîé ñòðî÷êè!', +'edit_cdel' => 'Âû äåéñòâèòåëüíî õîòèòå óäàëèòü âûáðàííûé çàêàç?', +'edit_delok' => 'Çàêàç óäàëåí', +'edit_delok_1' => 'Çàêàç áûë óñïåøíî óäàëåí.', +'edit_allerr' => 'Çàêàç íå ìîæåò áûòü îáíàðóæåí, èëè âîçíèêëà êàêàÿ-òî ïðîáëåìà ñ áàçîé äàííûõ', +'addorders_alert' => 'Ó âàøåãî çàêàçà äîëæåí áûòü õîòÿ áû çàãîëîâîê', +'btn_save' => 'Ñîõðàíèòü', +'go_page_orders' => ' ñòîë çàêàçîâ', +'mass_head' => "Óäàëåíèå çàêàçîâ", +'mass_confirm' => "Âû óâåðåíû, ÷òî õîòèòå óäàëèòü âûáðàííûå", +'mass_confirm_1' => "çàêàçû?", +'mass_denied' => "Âûáåðèòå çàêàçû", +'mass_error' => "Îøèáêà!!!", +'mass_no' => "Íåò", +'mass_yes' => "Äà", +'mass_sel' => "Âûáåðèòå çàêàçû", +'mass_delok' => "Âñå âûáðàííûå Âàìè çàêàçû óñïåøíî óäàëåíû!", +'mass_notok' => "Óäàëåíèå çàêàçîâ (íàéäåíû îøèáêè!!!)", +'mass_i' => "èç", +'mass_notok_1' => "çàêàçîâ óäàëåíû", + +'opt_list' => 'Îáùàÿ êîíôèãóðàöèÿ', +'opt_tab_offline' => 'Âûêëþ÷èòü ìîäóëü "Ñòîë Çàêàçîâ:"', +'opt_tab_offlined' => 'Ïåðåâåñòè "Ñòîë Çàêàçîâ" â ñîñòîÿíèå offline, äëÿ ïðîâåäåíèÿ òåõíè÷åñêèõ ðàáîò', +'opt_tab_category' => 'Êàòåãîðèè', +'opt_tab_categoryd' => 'ðàçäåëÿþòñÿ çàïÿòûìè (,)', +'opt_tab_timeweek' => 'Ïåðèîä, ÷åðåç êîòîðûé ðàçðåøåíî äîáàâëÿòü ñëåäóþùèé çàêàç', +'opt_tab_timeweekd' => 'óêàçûâàåòñÿ â äíÿõ; 0 = çàùèòû íåò', +'opt_tab_auto_wrap' => 'Àâòîìàòè÷åñêàÿ ðàçáèâêà äëèííûõ ñëîâ â ñîîáùåíèè:', +'opt_tab_auto_wrapd' => 'â ñëó÷àå ïðåâûøåíèÿ çàäàííîãî ÷èñëà ñèìâîëîâ', +'opt_tab_orders_number' => 'Êîëè÷åñòâî çàêàçîâ íà ñòðàíèöó:', +'opt_tab_orders_numberd' => 'Êîëè÷åñòâî çàêàçîâ, êîòîðîå áóäåò âûâîäèòüñÿ íà ñòðàíèöó', +'opt_tab_msgs' => 'Îòñûëàòü â ÏÑ/E-Mail óâåäîìëåíèå î äîáàâëåíèè çàêàçà:', +'opt_tab_msgsd' => 'Åñëè "Äà", ïðè äîáàâëåíèè çàêàçà íà ñàéòå, â ÏÑ/E-Mail óêàçàííûõ â íàñòðîéêàõ áóäåò îòïðàâëåíî ñîîòâåòñòâóþùåå óâåäîìëåíèå.', +'opt_tab_msgs1' => 'Îòñûëàòü â ÏÑ/E-Mail óâåäîìëåíèå î ñîñòîÿíèè çàêàçà:', +'opt_tab_msgsd1' => 'Åñëè "Äà", ïðè èçìåíåíèè ñîñòîÿíèÿ çàêàçà íà ñàéòå, íà ÏÑ/E-Mail óêàçàííûé â ïðîôèëå ïîëüçîâàòåëÿ áóäåò îòïðàâëåíî ñîîòâåòñòâóþùåå óâåäîìëåíèå î ñîñòîÿíèè çàêàçà.', +'opt_tab_msgs_type' => 'Ìåòîä îòïðàâêè óâåäîìëåíèé:', +'opt_tab_msgs_typed' => 'Åñëè "ÏÑ íà ñàéòå", ïðè äîáàâëåíèè çàêàçà èëè åãî ñìåíå ñîñòîÿíèÿ, íà ËÑ áóäåò îòïðàâëåíî ñîîòâåòñòâóþùåå óâåäîìëåíèå, â ïðîòèâíîì ñëó÷àå ñîîáùåíèå áóäåò îòïðàâëåíî íà E-Mail óêàçàííûé â ïðîôèëå ïîëüçîâàòåëÿ.', +'opt_tab_msgs_type1' => 'ÏÑ íà ñàéòå', +'opt_tab_msgs_type2' => 'E-mail', +'opt_tab_an' => 'Ôîðìàò âðåìåíè äëÿ çàêàçîâ:', +'opt_tab_msort' => 'Ïîðÿäîê ñîðòèðîâêè çàêàçîâ', +'opt_tab_msortd' => 'Âûáåðèòå ïîðÿäîê ñîðòèðîâêè çàêàçîâ', +'opt_tab_toc' => 'Âêëþ÷èòü âûâîä ñàìûõ ïîñëåäíèõ çàêàçîâ íà ñàéòå', +'opt_tab_tocd' => 'Îòêëþ÷åíèå äàííîãî ìîäóëÿ ïîçâîëÿåò ñýêîíîìèòü 1 çàïðîñ ê áàçå äàííûõ', +'opt_tab_toporders_number' => 'Êîëè÷åñòâî çàêàçîâ â ÒÎÏ, íà ñòðàíèöó:', +'opt_tab_toporders_numberd' => 'Óêàæèòå ñêîëüêî çàêàçîâ âûâîäèòü â ÒÎÏ:', +'opt_tab_grouplevel' => 'Îòïðàâëÿòü óâåäîìëåíèå î äîáàâëåíèè çàêàçà, ïîëüçîâàòåëÿì ñëåäóþùåé ãðóïïû:', +'opt_tab_groupleveld' => 'Âûáåðèòå ãðóïïó ïîëüçîâàòåëåé, êîòîðûì õîòèòå, ÷òî á ïðèõîäèëî óâåäîìëåíèå î äîáàâëåíèè çàêàçà íà ñàéòå.', +'opt_tab_mail_info1' => 'Øàáëîí ÏÑ/E-Mail ñîîáùåíèÿ', +'opt_tab_mail_info2' => 'Íàñòðîéêà øàáëîíà ÏÑ/E-Mail ñîîáùåíèÿ, êîòîðîå îòñûëàåòñÿ ïðè äîáàâëåíèè íîâîãî çàêàçà íà ñàéòå', +'opt_tab_mail_info3' => 'Íàñòðîéêà øàáëîíà ÏÑ/E-Mail ñîîáùåíèÿ, êîòîðîå îòñûëàåòñÿ ïðè ñìåíå ñîñòîÿíèÿ çàêàçà íà ñàéòå', +'mail_pm_info1' => 'Ïðè íàïèñàíèè øàáëîíà äëÿ äàííîãî ñîîáùåíèÿ âû ìîæåòå èñïîëüçîâàòü ñëåäóþùèå òåãè:
{%username_from%} - èìÿ ïîëüçîâàòåëÿ äîáàâèâøèé çàêàç
{%category%} - êàòåãîðèÿ, â êîòîðóþ äîáàâëåí çàêàç
{%text%} - êðàòêàÿ èíôîðìàöèÿ î çàêàçå
{%date%} - äàòà äîáàâëåíèÿ çàêàçà
{%ip%} - IP àäðåñ îòïðàâèòåëÿ', +'mail_pm_info2' => 'Ïðè íàïèñàíèè øàáëîíà äëÿ äàííîãî ñîîáùåíèÿ âû ìîæåòå èñïîëüçîâàòü ñëåäóþùèå òåãè:
{%username%} - èìÿ ïîëó÷àòåëÿ
{%username_editor%} - èìÿ ïîëüçîâàòåëÿ, îáðàáîòàâøåãî çàêàç
{%date%} - äàòà ïîëó÷åíèÿ ñîîáùåíèÿ
{%status%} - ñòàòóñ çàêàçà', +'key_info' => 'Êîä ñêðèïòà:', +'key_info1' => 'Âíèìàíèå! Çäåñü ââåäèòå êîä, ïîëó÷åííûé ïðè ïîêóïêå ñêðèïòà.  ïðîòèâíîì ñëó÷àå âîçìîæíû ïðîáëåìû ïðè îáðàùåíèè â òåõ.ïîääåðæêó.', +'key_trial' => 'Íåâåðíûé ôîðìàò ëèöåíçèîííîãî êîäà. Äàëüíåéøàÿ ðàáîòà íåâîçìîæíà.', +'edit_denied' => 'Ó âàñ íåò ïðàâ äëÿ ðåäàêòèðîâàíèÿ äàííîãî çàêàçà', +'trial_limit' => 'Áûëè ïðåâûøåíû ëèìèòû ìîäóëÿ. Äàëüíåéøàÿ ðàáîòà íåâîçìîæíà.', +'not_user_id' => 'Äëÿ îòïðàâêè ÏÑ ïîëüçîâàòåëþ íà ñàéòå, user id íå íàéäåí', +'opt_btn_save' => 'Ñîõðàíèòü íàñòðîéêè', + +'offline' => 'Ñòîë Çàêàçîâ âðåìåííî çàêðûò.', +'description' => 'Ñòîë çàêàçîâ', +'description2' => 'Äîáàâëåíèå çàêàçà', +'not_orders' => 'Íà äàííûé ìîìåíò çàêàçîâ íåò.', +'edit' => '[Ðåäàêòèðîâàòü]', +'download' => '[Ñêà÷àòü]', +'err_name' => '
  • Âû íå óêàçàëè òðåáóåìîå íàçâàíèå çàêàçà
  • ', +'err_category' => '
  • Âû íå óêàçàëè êàòåãîðèþ
  • ', +'err_year' => '
  • Âû íå óêàçàëè "Ãîä èçäàíèÿ"
  • ', +'err_year_type' => '
  • "Ãîä èçäàíèÿ " äîëæåí áûòü òîëüêî èç öèôð
  • ', +'err_link' => '
  • Âû íå óêàçàëè "Ññûëêó íà ñêà÷èâàíèå"
  • ', +'orders_err_name' => 'Ñëèøêîì äëèííîå "Íàçâàíèå (Ðóñ.)",', +'orders_err_enname' => 'Ñëèøêîì äëèííîå "Îðèãèíàëüíîå íàçâàíèå (Eng.)",', +'orders_err_category' => 'Ñëèøêîì äëèííàÿ êàòåãîðèÿ,', +'orders_err_year' => 'Ñëèøêîì äëèííûé "Ãîä èçäàíèÿ",', +'orders_err_year_type' => '"Ãîä èçäàíèÿ" äîëæåí áûòü òîëüêî èç öèôð', +'not_logged' => 'Óâàæàåìûé ïîñåòèòåëü, Âû çàøëè íà ñàéò êàê íåçàðåãèñòðèðîâàííûé ïîëüçîâàòåëü. Ìû ðåêîìåíäóåì Âàì çàðåãèñòðèðîâàòüñÿ ëèáî çàéòè íà ñàéò ïîä ñâîèì èìåíåì.', +'one_orders' => 'Óâàæàåìûé ïîñåòèòåëü, Âû óæå ñäåëàëè îäèí çàêàç!
    Æäèòå âûïîëíåíèÿ çàêàçà, ëèáî ìîæåòå çàêàçàòü íà ñëåäóþùèé äåíü.
    Âåðíóòüñÿ íàçàä', +'cause0' => '

    Ïðè÷èíà: ', +'cause1' => '

    Ïðè÷èíà: íå óêàçàíà.', +'downloadd' => '

    Download:
    ', + +'msgs_subject' => 'Íîâûé çàêàç', +'msgs_subject_usr' => 'Ñìåíà ñîñòîÿíèÿ çàêàçà', +'msg_user_from' => 'Ñòîë-Çàêàçîâ', + +); + +?> \ No newline at end of file diff --git a/language/Russian/website.lng b/language/Russian/website.lng new file mode 100644 index 0000000..1dc25d5 --- /dev/null +++ b/language/Russian/website.lng @@ -0,0 +1,623 @@ + "windows-1251", +'dle_spam_agree' => "Âû äåéñòâèòåëüíî ñ÷èòàåòå âûáðàííîå ñîîáùåíèå ñïàìîì?", +'pm_spamok' => "Ñîîáùåíèå î ÑÏÀÌå îòïðàâëåíî àäìèíèñòðàöèè. ", +'pm_err_spam' => "Óâåäîìëåíèå î ÑÏÀÌå íå áûëî îòîñëàíî àäìèíèñòðàöèè. ", +'online_notusers' => "Îòñóòñòâóþò.", 'online_notbots' => "Îòñóòñòâóþò.", +'online_notlusers' => "Îòñóòñòâóþò.", +'online_notlbots' => "Îòñóòñòâóþò.", +'online_was' => "Áûë: ", +'online_back' => "íàçàä", +'online_os' => "ÎÑ: ", +'online_browser' => "Áðàóçåð: ", +'online_country' => "Ñòðàíà: ", +'online_city' => "Ãîðîä: ", +'online_group' => " ãðóïïå: ", +'online_paddcomments' => "Äîáàâëÿåò êîììåíòàðèé â: ", +'online_preadnews' => "×èòàåò íîâîñòü: ", +'online_pincategory' => "Íàõîäèòñÿ â ðàçäåëå: ", +'online_pposin' => "Íàõîäèòñÿ â: ", +'online_pmainpage' => "Íàõîäèòñÿ íà ãëàâíîé ñòðàíèöå.", +'online_lpaddcomments' => "Äîáàâëÿë êîììåíòàðèé â: ", +'online_lpreadnews' => "×èòàë íîâîñòü: ", +'online_lpincategory' => "Íàõîäèëñÿ â ðàçäåëå: ", +'online_lpposin' => "Íàõîäèëñÿ â: ", 'online_lpmainpage' => "Íàõîäèëñÿ íà ãëàâíîé ñòðàíèöå.", +'online_robots' => " Ðîáîòû", +'online_stamp01' => "ñåêóíäó", +'online_stamp02' => "ñåêóíäû", +'online_stamp03' => "ñåêóíä", +'online_stamp11' => "ìèíóòó", +'online_stamp12' => "ìèíóòû", +'online_stamp13' => "ìèíóò", +'online_stamp21' => "÷àñ", +'online_stamp22' => "÷àñà", +'online_stamp23' => "÷àñîâ", +'online_stamp31' => "äåíü", +'online_stamp32' => "äíÿ", +'online_stamp33' => "äíåé", +'online_stamp41' => "íåäåëþ", +'online_stamp42' => "íåäåëè", +'online_stamp43' => "íåäåëü", +'online_stamp51' => "ìåñÿö", +'online_stamp52' => "ìåñÿöà", +'online_stamp53' => "ìåñÿöåâ", +'online_stamp61' => "ãîä", +'online_stamp62' => "ãîäà", +'online_stamp63' => "ëåò", +'online_stamp71' => "âåê", +'online_stamp72' => "âåêà", +'online_stamp73' => "âåêîâ", +'wysiwyg_language' => "ru", +'loginza_err1' => "Ïðîèçîøëà îøèáêà ïðè ïîäêëþ÷åíèè ê Loginza", +'loginza_err2' => "Íåò èäåíòèôèêàòîðà ïîëüçîâàòåëÿ.", +'loginza_err3' => "Âû óæå çàðåãèñòðèðîâàíû ñ ïî÷òîâûì ÿùèêîì óêàçàííûì â ïðîôèëå OpenID.", +'comr_self' => "Çà ñåáÿ íåëüçÿ", +'comr_del' => "Áóäåò óäàëåíî", +'comr_hidden' => "Êîììåíòàðèé ñêðûò â ñâÿçè ñ íèçêèì ðåéòèíãîì", +'comr_hide' => "Áóäåò ñêðûòî", +'comr_already' => "Âû óæå ïðîãîëîñîâàëè", +'comr_login' => "Àâòîðèçóéòåñü", + +'add_ok_ok' => "Íîâîñòü îòðåäàêòèðîâàíà", +'add_ok_1_1' => "Âàøà íîâîñòü óñïåøíî îòðåäàêòèðîâàíà.", +'add_ok_2_1' => "Âàøà íîâîñòü áûëà óñïåøíî îòðåäàêòèðîâàíà. Ïîñëå ïðîâåðêè àäìèíèñòðàòîðîì îíà áóäåò îïóáëèêîâàíà íà ñàéòå.", +'add_ok_3_1' => "Âàøà íîâîñòü áûëà óñïåøíî îòðåäàêòèðîâàíà. Îäíàêî, â ñâÿçè ñ òåì, ÷òî Âû ìîæåòå ïóáëèêîâàòü íîâîñòè áåç ìîäåðàöèè íå âî âñå ðàçäåëû, Âàøà íîâîñòü áóäåò îïóáëèêîâàíà òîëüêî ïîñëå ïðîâåðêè àäìèíèñòðàòîðîì ñàéòà.", + +// 8.3 +'lost_password' => "Äëÿ âîññòàíîâëåíèÿ ïàðîëÿ íà ñàéòå ïðîñëåäóéòå ïî ññûëêå:", +'lost_ip' => "Äëÿ ñáðîñà áëîêèðîâêè ïî IP íà ñàéòå ïðîñëåäóéòå ïî ññûëêå:", +'lost_clear_ip' => "Áëîêèðîâêà ïî IP ñíÿòà", +'lost_clear_ip_1' => "Ñ ïîëüçîâàòåëÿ {username} áëîêèðîâêà ïî IP óñïåøíî ñíÿòà.", +'lost_mfg' => "Ñ óâàæåíèåì,\nÀäìèíèñòðàöèÿ ñàéòà", +'c_subscribe' => "Ïîäïèñàòüñÿ íà êîììåíòàðèè", +'admin' => "Àäìèíèñòðàòîð", +'news_err_37' => "Ñîîáùåíèå ñîäåðæèò íåäîïóñòèìûé ê ïóáëèêàöèè òåêñò.", +'news_err_38' => "Èíôîðìàöèÿ î ñåáå èëè âàøà ïîäïèñü ñîäåðæèò íåäîïóñòèìûé ê ïóáëèêàöèè òåêñò.", +'news_err_39' => "Âàøà íîâîñòü ñîäåðæèò íåäîïóñòèìûé ê ïóáëèêàöèè òåêñò.", +'unsubscribe_ok' => "Âû áûëè óñïåøíî îòïèñàíû îò êîììåíòàðèåâ âûáðàííîé íîâîñòè.", +'unsubscribe_err' => "Âû íå ïîäïèñàíû íà êîììåíòàðèè äàííîé íîâîñòè.", +'nav_trennen' => "...", +// 8.3 + +// 8.2 +'thumb_playtitle' => "Ïðîñìîòð ñëàéäøîó (ïðîáåë)", +'thumb_pausetitle' => "Ïàóçà", +'thumb_previoustitle' => "Ïðåäûäóùåå èçîáðàæåíèå", +'thumb_nexttitle' => "Ñëåäóþùåå èçîáðàæåíèå", +'thumb_movetitle' => "Ïåðåìåñòèòü", +'thumb_closetitle' => "Çàêðûòü (Esc)", +'nl_info_2' => "Ïîëüçîâàòåëü", +'news_info_6' => "Êîììåíòèðîâàòü íîâîñòè íà ñàéòå âîçìîæíî òîëüêî â òå÷åíèè {days} äíåé ñî äíÿ ïóáëèêàöèè.", +'search_s_go' => "ïåðåéòè íà ñòðàíèöó", +// 8.2 + +// 8.0 +'feed_err_8' => "

  • Âû íå ìîæåòå îòïðàâëÿòü äàííîìó ïîëüçîâàòåëþ E-Mail ñîîáùåíèé.
  • ", +'bb_flash' => "Ââåäèòå ðàçìåðû ôëåø ðîëèêà (øèðèíà, âûñîòà)", +'bb_flash_url' => "Ââåäèòå ññûëêó íà ôëåø ðîëèê", +'inset_flash_link' => "âñòàâèòü ôëåø", +// 8.0 + +// 7.5 +'news_err_32' => "
  • Àäìèíèñòðàòîðîì ñàéòà áûëà çàïðåùåíà çàãðóçêà àâàòàðîâ äëÿ âàøåé ãðóïïû.
  • ", +'not_allowed_sig' => "
  • Ñëèøêîì äëèííàÿ ïîäïèñü!
  • ", +'news_err_33' => "Ñîîáùåíèå ñîäåðæèò íåäîïóñòèìûå ê ïóáëèêàöèè òåãè.", +'news_err_34' => "Èíôîðìàöèÿ î ñåáå èëè âàøà ïîäïèñü ñîäåðæèò íåäîïóñòèìûå ê ïóáëèêàöèè òåãè.", +'tags_count' => "Íàéäåíî íîâîñòåé:", +'news_err_35' => "
  • Ïîëíîå èìÿ ñîäåðæèò íåäîïóñòèìûå ê ïóáëèêàöèè ñèìâîëû!
  • ", +'news_err_36' => "
  • Ìåñòî æèòåëüñòâà ñîäåðæèò íåäîïóñòèìûå ê ïóáëèêàöèè ñèìâîëû!
  • ", +// 7.5 + +// 7.3 +'reg_err_30' => "Èìÿ ïîëüçîâàòåëÿ íå ìîæåò áûòü ïóñòûì!", +'reg_err_31' => "Äëèíà ïàðîëÿ äîëæíà áûòü íå ìåíåå 6 ñèìâîëîâ!", +'reg_err_32' => "Îáà ââåäåííûõ ïàðîëÿ äîëæíû áûòü èäåíòè÷íû!", +'reg_err_33' => "Ââåäåí íåâåðíûé E-Mail àäðåñ!", +'rss_user' => "Îòñëåæèâàíèå âñåõ íîâîñòåé ïîëüçîâàòåëÿ ïî RSS", +'show_archive' => "Ïîêàçàòü âåñü àðõèâ", +'no_message' => "Íà äàííûé ìîìåíò ó âàñ íåò ïåðñîíàëüíûõ ñîîáùåíèé", +'spoiler_title' => "Ïîêàçàòü / Ñêðûòü òåêñò", +// 7.3 + +// 7.2 +'news_info_2' => "Àäìèíèñòðàòîðîì ñàéòà âàì áûëî çàïðåùåíî îñòàâëÿòü êîììåíòàðèè íà äàííîì ñàéòå äî {date}. Ýòî ïîëíîñòüþ àâòîìàòè÷åñêèé ïðîöåññ áëîêèðîâêè è îò âàñ íå òðåáóåòñÿ íè÷åãî äåëàòü äëÿ åãî óñêîðåíèÿ èëè ïðåêðàùåíèÿ.", +'news_info_3' => "Àäìèíèñòðàòîðîì ñàéòà âàì áûëî çàïðåùåíî îñòàâëÿòü êîììåíòàðèè íà äàííîì ñàéòå.", +'news_info_4' => "Àäìèíèñòðàòîðîì ñàéòà âàì áûëî çàïðåùåíî äîáàâëÿòü íîâîñòè íà äàííîì ñàéòå äî {date}. Ýòî ïîëíîñòüþ àâòîìàòè÷åñêèé ïðîöåññ áëîêèðîâêè è îò âàñ íå òðåáóåòñÿ íè÷åãî äåëàòü äëÿ åãî óñêîðåíèÿ èëè ïðåêðàùåíèÿ.", +'news_info_5' => "Àäìèíèñòðàòîðîì ñàéòà âàì áûëî çàïðåùåíî äîáàâëÿòü íîâîñòè íà äàííîì ñàéòå.", +'loading' => "Çàãðóçêà...", +'mail_pm' => "Íîâîå ïåðñîíàëüíîå ñîîáùåíèå", +'sort_main' => "Ñîðòèðîâàòü íîâîñòè ïî:", +'sort_by_date' => "äàòà", +'sort_by_rating' => "ðåéòèíã", +'sort_by_read' => "ïðîñìîòðû", +'sort_by_title' => "àëôàâèò", +'sort_by_comm' => "êîììåíòàðèè", +'rules_accept' => "Ïðèíèìàþ", +'rules_decline' => "Íå ïðèíèìàþ", +'reg_err_21' => "
  • Àäìèíèñòðàòîðîì áûëî çàïðåùåíî èñïîëüçîâàòü äàííûé ëîãèí äëÿ ðåãèñòðàöèè{descr}
  • ", +'reg_err_22' => ", ïî ïðè÷èíå: {descr}", +'reg_err_23' => "
  • Àäìèíèñòðàòîðîì áûëî çàïðåùåíî èñïîëüçîâàòü äàííûé E-Mail äëÿ ðåãèñòðàöèè{descr}
  • ", +'reason' => "Óêàçàòü ïðè÷èíó ðåäàêòèðîâàíèÿ:", +'tag_cloud' => "Îáëàêî òåãîâ", +'last_news' => "Ïîñëåäíèå íîâîñòè", +'all_tags' => "Ïîêàçàòü âñå òåãè", +// 7.2 + +// 7.0 +'sig_not_allowed' => "Íå çàïîëíÿéòå äàííîå ïîëå, ò.ê. äëÿ âàøåé ãðóïïû çàïðåùåíî èñïîëüçîâàíèå ïîäïèñè â êîììåíòàðèÿõ.", +'related_not_found' => "Ïîõîæèõ íîâîñòåé íå íàéäåíî.", +'add_err_9' => "Àäìèíèñòðàòîðîì ñàéòà áûë óñòàíîâëåí ëèìèò íà ìàêñèìàëüíîå êîëè÷åñòâî íîâîñòåé, äîïóñòèìûõ ê îæèäàíèþ íà ìîäåðàöèþ. Íà äàííûé ìîìåíò íà ñàéò äîáàâëåíî ìàêñèìàëüíîå êîëè÷åñòâî íîâîñòåé, êîòîðûå îæèäàþò ïðîâåðêè àäìèíèñòðàòîðîì. Ïîïðîáóéòå äîáàâèòü âàøó íîâîñòü íåìíîãî ïîçäíåå.", +// 7.0 + +// 6.7 +'news_delnews' => "Óäàëèòü íîâîñòü", +'news_del_ok' => "Âûáðàííàÿ Âàìè íîâîñòü áûëà óñïåøíî óäàëåíà.", +// 6.7 + +// 6.5 +'time_heute' => "Ñåãîäíÿ", +'time_gestern' => "Â÷åðà", +'thumb_expandtitle' => "Ðàçâåðíóòü äî ïîëíîãî ðàçìåðà", +'thumb_restore' => "Êëèêíèòå äëÿ çàêðûòèÿ êàðòèíêè, íàæìèòå è óäåðæèâàéòå äëÿ ïåðåìåùåíèÿ", +'thumb_focustitle' => "Ñôîêóñèðîâàòü", +'thumb_cancel' => "Íàæìèòå äëÿ îòìåíû", +'all_user_news' => "Ïðîñìîòðåòü âñå ïóáëèêàöèè", +'show_user_news' => "Âñå ïóáëèêàöèè ïîëüçîâàòåëÿ", +'menu_fnews' => "Íàéòè âñå ïóáëèêàöèè", +'reg_next' => "Ïðîäîëæèòü ðåãèñòðàöèþ íà ñàéòå", +'xf_not_notig' => "íåîáÿçàòåëüíî", +// 6.5 + +// 6.3 +'no_limit' => "íåîãðàíè÷åííî", +'title_catalog' => "Êàòàëîã", +// 6.3 + +// 6.2 +'s_fsrelate' => "Íàèáîëåå ïîäõîäÿùèå", +// 6.2 + +// 6.0 +'reload_code' => "îáíîâèòü, åñëè íå âèäåí êîä", +'news_err_31' => "Âàø êîììåíòàðèé äîáàâëåí â áàçó. Ïîñëå ïðîâåðêè êîììåíòàðèÿ àäìèíèñòðàòîðîì, îí áóäåò îïóáëèêîâàí íà ñàéòå.", +'bb_t_font' => "Øðèôò", +'bb_t_size' => "Ðàçìåð", +// 6.0 + +// 5.7 +'mail_news' => "Íîâàÿ íîâîñòü íà ìîäåðàöèè", +'mail_comments' => "Íîâûé êîììåíòàðèé íà ñàéòå", +'bb_t_leech' => "Âñòàâêà çàùèùåííîé ññûëêè", +// 5.7 + +// 5.5 +'s_ffullstart' => "Ðàñøèðåííûé ïîèñê", +'user_logged' => "Âû óñïåøíî àâòîðèçîâàíû íà ñàéòå.", +// 5.5 + +// 5.3 +'bb_t_emo' => "Âñòàâêà ñìàéëèêîâ", +'pm_to' => "Ïîëó÷àòåëü", +'approve' => "(Îæèäàåò ïðîâåðêè àäìèíèñòðàòîðîì)", +'ip_info' => "Èíôîðìàöèÿ î IP àäðåñå", +'ip_tools' => "Ïîèñê äðóãèõ ïîëüçîâàòåëåé", +'ip_ban' => "Çàáàíèòü àäðåñ", +// 5.3 + +// 5.2 +'bb_t_code' => "Âñòàâêà èñõîäíîãî êîäà", +'title_last' => "Êîììåíòàðèè", +'title_lost' => "Âîññòàíîâëåíèå ïàðîëÿ", +'title_search' => "Ïîèñê ïî ñàéòó", +'bb_t_video' => "Âñòàâêà âèäåî", +'menu_profile' => "Ïðîñìîòð ïðîôèëÿ", +'menu_fcomments' => "Íàéòè âñå êîììåíòàðèè", +'menu_send' => "Îòïðàâèòü ñîîáùåíèå", +'menu_uedit' => "Àäìèíöåíòð", +// 5.2 + +'fav_notfound' => "Âû íè÷åãî íå âíîñèëè â ñâîè çàêëàäêè", +'news_err_30' => "Ââåäåí íåâåðíûé êîä áåçîïàñíîñòè", +'confirm_ok' => "Âàø E-Mail: {email} ïîäòâåðæäåí è äîïóùåí ê ðåãèñòðàöèè íà ñàéòå. Âàø ëîãèí íà ñàéòå: {login}. Âû ìîæåòå ïðîäîëæèòü ðåãèñòðàöèþ íà ñàéòå, ïðîéäÿ ïî óêàçàííîé ññûëêå.", +'s_allcat' => "- Èñêàòü âî âñåõ ðàçäåëàõ -", +'s_con' => "Ïîèñê ïî ñîäåðæàíèþ", +'s_word' => "Ñëîâà äëÿ ïîèñêà:", +'s_whint' => "Äëÿ ïîèñêà ïî íåñêîëüêèì
    àëüòåðíàòèâíûì ñòðîêàì
    èñïîëüçóéòå âûðàæåíèå
    ñòðîêà1 OR ñòðîêà2 OR ...", +'s_ncom1' => "Èñêàòü â êîììåíòàðèÿõ", +'s_ncall' => "Èñêàòü â ñòàòüÿõ è êîììåíòàðèÿõ", +'s_ncom' => "Èñêàòü â ñòàòüÿõ", +'s_tnews' => "Èñêàòü â çàãîëîâêàõ ñòàòåé", +'s_nid' => "Èñêàòü ïî íîìåðó ñòàòüè", +'s_static' => "Èñêàòü â ñòàòè÷åñêèõ ñòðàíèöàõ", +'s_mname' => "Ïîèñê ïî èìåíè ïîëüçîâàòåëÿ", +'s_fall' => "Íàéòè ñòàòüè èëè êîììåíòàðèè", +'s_fname' => "Èìÿ ïîëüçîâàòåëÿ:", +'s_fgname' => "Òî÷íîå èìÿ", +'s_fart' => "Íàéòè ñòàòüè ñ", +'s_fmin' => "Íå ìåíåå ÷åì", +'s_fmax' => "Íå áîëåå ÷åì", +'s_wcomm' => "êîììåíòàðèÿìè", +'s_fdaten' => "Âðåìåííîé ïåðèîä", +'s_tall' => "Çà âñå âðåìÿ", +'s_tlast' => "Ñ ïîñëåäíåãî âèçèòà", +'s_tday' => "Çà ñóòêè íàçàä", +'s_tweek' => "Çà íåäåëþ íàçàä", +'s_ttweek' => "Çà 2 íåäåëè íàçàä", +'s_tmoth' => "Çà ìåñÿö íàçàä", +'s_tfmoth' => "Çà 3 ìåñÿöà íàçàä", +'s_tsmoth' => "Çà 6 ìåñÿöåâ íàçàä", +'s_tyear' => "Çà ãîä íàçàä", +'s_fnew' => "è íîâåå", +'s_falt' => "è ñòàðåå", +'s_fsoft' => "Ñîðòèðîâêà ðåçóëüòàòà ïîèñêà", +'s_fsdate' => "Äàòà ñòàòüè èëè êîììåíòàðèÿ", +'s_fstitle' => "Çàãîëîâîê ñòàòüè", +'s_fscnum' => "Êîëè÷åñòâî êîììåíòàðèåâ", +'s_fsnnum' => "Êîëè÷åñòâî ïðîñìîòðîâ", +'s_fsaut' => "Èìÿ àâòîðà", +'s_fscat' => "Ðàçäåë", +'s_fsrate' => "Ðåéòèíã ñòàòüè", +'s_fsdesc' => "Ïî óáûâàíèþ", +'s_fsasc' => "Ïî âîçðàñòàíèþ", +'s_vlegend' => "Ïîêàçûâàòü ðåçóëüòàò ïîèñêà êàê", +'s_vnum' => "Ðåçóëüòàòîâ íà ñòðàíèöó:", +'s_vwie' => "Ðåçóëüòàòû ïîèñêà êàê", +'s_vjump' => "Ïîêàçàòü ðåçóëüòàò ¹:", +'s_vnews' => "Ñòàòüè", +'s_vtitle' => "Çàãîëîâêè", +'s_fcats' => "Ïîèñê ïî ðàçäåëàì", +'s_fstart' => "Íà÷àòü ïîèñê", +'s_fstop' => "Ñáðîñèòü", +'s_freset' => "Âåðíóòü", +'static_denied' => "Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ ïðîñìîòðà âûáðàííîé ñòðàíèöû.", +'i_quote' => "Öèòàòà:", +'feed_error' => "Ïîñåòèòåëè, íàõîäÿùèåñÿ â ãðóïïå \"{group}\", ìîãóò èñïîëüçîâàòü îáðàòíóþ ñâÿçü íà ñàéòå òîëüêî äëÿ ñâÿçè ñ àäìèíèñòðàöèåé ñàéòà.", +'search_denied' => "Ïîñåòèòåëè, íàõîäÿùèåñÿ â ãðóïïå \"{group}\", íå ìîãóò èñïîëüçîâàòü ïîèñê ïî ñàéòó.", +'news_err_id' => "Íå çàäàí èäåíòèôèêàòîð íîâîñòè.", +'comm_req_f' => "Çàïîëíèòå âñå íåîáõîäèìûå ïîëÿ", +'ip_block_login' => "Âíèìàíèå, Âû âêëþ÷èëè àâòîìàòè÷åñêóþ áëîêèðîâêó ïî IP âàøåãî àêêàóíòà, äîñòóï ê âàøåìó àêêàóíòó ñ äàííîé ïîäñåòè çàïðåùåí.", +'mod_list_f' => "Âàøèõ íîâîñòåé, îæèäàþùèõ ìîäåðàöèè, íåò", +'ip_block' => "Âàø IP àäðåñ èëè ïîäñåòü áûëè çàáëîêèðîâàíû àäìèíèñòðàòîðîì", +'pm_alert' => "Óâàæàåìûé {user} ñ ìîìåíòà âàøåãî îòñóòñòâèÿ íà ñàéòå âàì áûëî ïðèñëàíî {num} íîâûõ ïåðñîíàëüíûõ ñîîáùåíèé.", +'pm_asub' => "Òåìà:", +'pm_atitle' => "Ïîëó÷åíû ïåðñîíàëüíûå ñîîáùåíèÿ", +'pm_mtitle' => "Íàæìèòå è óäåðæèâàéòå, äëÿ ïåðåìåùåíèÿ îêíà", +'pm_aread' => "Ïðî÷èòàòü ñîîáùåíèÿ", +'pm_close' => "Çàêðûòü îêíî", +'att_dcount' => "cêà÷èâàíèé:", +'att_denied' => "Âû íå ìîæåòå ñêà÷èâàòü ôàéëû ñ íàøåãî ñåðâåðà", + +'banned_info' => "Íåîãðàíè÷åííî.", +'fav_error' => "Äàííûé ðàçäåë äîñòóïåí òîëüêî çàðåãèñòðèðîâàííûì ïîëüçîâàòåëÿì", + +'aj_allowbr' => "Àâòîïåðåíîñ ñòðîê", +'pm_selall' => "Âûáðàòü âñå", +'b_del' => "Óäàëèòü âûáðàííîå", +'last_comm' => "Ïîñëåäíèå êîììåíòàðèè", +'err_last' => "Êîììåíòàðèè îòñóòñòâóþò", + +'top_name' => "Èìÿ", +'top_status' => "Ãðóïïà", +'top_reg' => "Ðåãèñòðàöèÿ", +'top_last' => "Ïîñëåäíåå ïîñåùåíèå", +'top_nnum' => "Ïóáëèêàöèé", +'top_cnum' => "Êîììåíòàðèåâ", +'top_pm' => "ÏÑ", + +'use_ajax_edit' => "Âû óâåðåíû, ÷òî õîòèòå îòðåäàêòèðîâàòü íîâîñòü?", +'ajax_comm_edit' => "Âû óâåðåíû, ÷òî õîòèòå îòðåäàêòèðîâàòü êîììåíòàðèé?", +'ajax_info' => "Çàãðóçêà. Ïîæàëóéñòà, ïîäîæäèòå...", +'menu_short' => "Áûñòðîå ðåäàêòèðîâàíèå", +'menu_full' => "Ïîëíîå ðåäàêòèðîâàíèå", + + +'addnews_allow_rate' => "Ðàçðåøèòü ðåéòèíã ñòàòüè", +'sec_image' => "Âêëþ÷èòå ýòó êàðòèíêó äëÿ îòîáðàæåíèÿ êîäà áåçîïàñíîñòè", +'reg_err_19' => "
  • Êîä áåçîïàñíîñòè íå ñîîòâåòñòâóåò îòîáðàæ¸ííîìó
  • ", +'reg_err_20' => "
  • Äàííîå èìÿ óæå çàðåãèñòðèðîâàíî
  • ", +'reg_ok_ajax' => "Âû ìîæåòå èñïîëüçîâàòü äàííîå èìÿ äëÿ ðåãèñòðàöèè", + +'news_page_err' => "Ê ñîæàëåíèþ, äàííàÿ ñòðàíèöà äëÿ Âàñ íå äîñòóïíà: âîçìîæíî, áûë èçìåíåí åå àäðåñ èëè îíà áûëà óäàëåíà. Ïîæàëóéñòà, âîñïîëüçóéòåñü ïîèñêîì.", +'bb_t_up' => "Çàãðóçêà ôàéëîâ è èçîáðàæåíèé íà ñåðâåð", +'bb_b_up' => "Çàãðóçêà", +'next_moth' => "Ñëåäóþùèé ìåñÿö", +'prev_moth' => "Ïðåäûäóùèé ìåñÿö", +'cal_post' => "Âñå ïîñòû çà", +'title_users' => "Ïîëüçîâàòåëè", +'title_new' => "Íåïðî÷èòàííîå", +'title_date' => "Ìàòåðèàëû çà", +'title_stats' => "Ñòàòèñòèêà ñàéòà", +'title_addnews' => "Äîáàâëåíèå íîâîñòè", +'title_register' => "Ðåãèñòðàöèÿ ïîñåòèòåëÿ", +'title_fav' => "Ìîè çàêëàäêè", +'title_pm' => "Ïåðñîíàëüíûå ñîîáùåíèÿ", +'title_feed' => "Îáðàòíàÿ ñâÿçü", +'title_year' => "ãîä", +'title_year1' => "ãîäà", +'vote_set' => "Ãîëîñîâàòü", +'vote_result' => "Ðåçóëüòàòû", +'poll_failed' => "Âû äîëæíû âûáðàòü ìèíèìóì îäèí èç âàðèàíòîâ îïðîñà", + +'excellent' => "Îòëè÷íî", +'good' => "Õîðîøî", +'fair' => "Ñðåäíå", +'poor' => "Ïðèåìëåìî", +'useless' => "Ïëîõî", +'rated' => "Ðåéòèíã ñòàòüè:", +'voten' => "ãîëîñîâ:", +'yrate' => "Âàøà îöåíêà:", +'entrat' => "Îöåíèòü", +'unorat' => "åùå íåò ðåéòèíãà", +'urated' => "Ðåéòèíã ïîëüçîâàòåëÿ", + +'templ_err_1' => "Øàáëîí", +'templ_err_2' => "íå ñóùåñòâóåò! Ïðîâåðüòå ïðàâèëüíîñòü íàïèñàíèÿ!", + +'all_info' => "Èíôîðìàöèÿ", +'all_prev' => "Âåðíóòüñÿ íàçàä", +'all_err' => "Âàø áðàóçåð íå ïîääåðæèâàåò Javascript. Ìû ðåêîìåíäóåì âêëþ÷èòü Âàì ýòó ïîääåðæêó.", +'all_err_1' => "Âíèìàíèå, îáíàðóæåíà îøèáêà", + +'reg_err_1' => "
  • Îáà ââåäåííûõ ïàðîëÿ äîëæíû áûòü èäåíòè÷íû!
  • ", +'reg_err_2' => "
  • Äëèíà ïàðîëÿ äîëæíà áûòü íå ìåíåå 6 ñèìâîëîâ è íå áîëåå 16!
  • ", +'reg_err_3' => "
  • Äëèíà èìåíè íå ìîæåò ïðåâûøàòü 20 ñèìâîëîâ!
  • ", +'reg_err_4' => "
  • Âû èñïîëüçóåòå íåäîïóñòèìîå äëÿ ðåãèñòðàöèè èìÿ!
  • ", +'reg_err_5' => "
  • Âû èñïîëüçóåòå íåäîïóñòèìûé ïàðîëü!
  • ", +'reg_err_6' => "
  • Ââåäåí íåâåðíûé E-Mail àäðåñ!
  • ", +'reg_err_7' => "
  • Èìÿ ïîëüçîâàòåëÿ íå ìîæåò áûòü ïóñòûì!
  • ", +'reg_err_8' => "
  • Ïîëüçîâàòåëü ñ òàêèì èìåíåì èëè E-Mail àäðåñîì óæå çàðåãèñòðèðîâàí!
  • ", +'reg_err_9' => "Àäìèíèñòðàòîðîì ñàéòà áûëà îòêëþ÷åíà ïîääåðæêà ðåãèñòðàöèè íà ñàéòå.", +'reg_err_10' => "Íà ñàéòå óæå çàðåãèñòðèðîâàíî ìàêñèìàëüíî äîïóñòèìîå êîëè÷åñòâî ïîëüçîâàòåëåé. Ïîïðîáóéòå çàðåãèñòðèðîâàòüñÿ ïîçæå.", +'reg_err_11' => "Îøèáêà ðåãèñòðàöèè", +'reg_err_12' => "
  • Ïðîèçîøëà îøèáêà ïðè çàãðóçêå àâàòàðà.
  • ", +'reg_err_13' => "
  • Ê çàãðóçêå ðàçðåøåíû òîëüêî ôàéëû ñ ðàñøèðåíèåì JPG èëè PNG.
  • ", +'reg_err_14' => "
  • Ñëèøêîì äëèííàÿ èíôîðìàöèÿ î ñåáå!
  • ", +'reg_err_15' => "
  • Ââåäåíî ñëèøêîì äëèííîå èìÿ!
  • ", +'reg_err_16' => "
  • Ñòðàíû ñ òàêèì äëèííûì íàçâàíèåì íå áûâàåò!
  • ", +'reg_err_17' => "
  • Ââåäåí ñëèøêîì äëèííûé íîìåð ICQ!
  • ", +'reg_err_18' => "Âíèìàíèå, îáíàðóæåíà îøèáêà", +'reg_ok' => "Ðåãèñòðàöèÿ óñïåøíî çàâåðøåíà", +'reg_ok_1' => "Áëàãîäàðèì Âàñ çà ðåãèñòðàöèþ íà íàøåì ñàéòå! Òåïåðü Âû ìîæåòå âîéòè íà ñàéò, èñïîëüçóÿ Âàø ëîãèí è ïàðîëü.", + +'reg_subj' => "Àêòèâàöèÿ àêêàóíòà", +'reg_vhead' => "Îòïðàâëåí çàïðîñ íà àêòèâàöèþ", +'reg_vtext' => "Çàïðîñ íà ðåãèñòðàöèþ ïðèíÿò.

    Àäìèíèñòðàöèÿ ñàéòà òðåáóåò ðåàëüíîñòè âñåõ ââîäèìûõ E-mail àäðåñîâ. ×åðåç 10 ìèíóò (âîçìîæíî è ðàíüøå) Âû ïîëó÷èòå ïèñüìî ñ èíñòðóêöèÿìè ñëåäóþùåãî øàãà. Åùå íåìíîãî, è Âû áóäåòå çàðåãèñòðèðîâàíû íà ñàéòå. Åñëè â òå÷åíèè ýòîãî âðåìåíè Âû íå ïîëó÷èëè ïèñüìà ñ ïîäòâåðæäåíèåì, òî ïîâòîðèòå ïîïûòêó èñïîëüçóÿ äðóãîé E-Mail àäðåñ èëè îáðàòèòåñü ê àäìèíèñòðàòîðó ñàéòà.
    Âíèìàíèå! Âîçìîæíû ïðîáëåìû ñ äîñòàâêîé íà E-mail àäðåñà áåñïëàòíûõ ïî÷òîâûõ ñåðâåðîâ.", + +'add_err_1' => "
  • Çàãîëîâîê íå ìîæåò áûòü ïóñòûì
  • ", +'add_err_2' => "
  • Ââåäåí ñëèøêîì äëèííûé çàãîëîâîê
  • ", +'xfield_xerr1' => "
  • Âû äîëæíû çàïîëíèòü âñå íåîáõîäèìûå ïîëÿ.
  • ", +'add_err_5' => "
  • Íåîáõîäèìî çàïîëíèòü ïîëå ñ êðàòêîé íîâîñòüþ
  • ", +'add_err_6' => "Âíèìàíèå, îáíàðóæåíà îøèáêà", +'add_err_7' => "Ó âàøåé ñòàòüè äîëæåí áûòü õîòÿ áû çàãîëîâîê è êðàòêàÿ âåðñèÿ", +'add_err_8' => "Ê ñîæàëåíèþ ó âàñ íåò ïðàâ äëÿ ïóáëèêàöèè íîâîñòåé íà ñàéòå.
    Unfortunately you do not have the right to publish news on the site.

    Ïîëó÷èòü ïðàâî äîáàâëÿòü íîâîñòè
    Obtain the right to add news
    ", +'add_err_9' => "Òàêàÿ íîâîñòü óæå åñòü Èçâèíèòå íî ìû íå ìîæåì Äîáàâëÿòü ïîâòîðíûå íîâîñòè!", +'add_ok' => "Íîâîñòü äîáàâëåíà", +'add_ok_1' => "Âàøà íîâîñòü áûëà óñïåøíî äîáàâëåíà â áàçó äàííûõ.", +'add_ok_2' => "Âàøà íîâîñòü áûëà óñïåøíî äîáàâëåíà â áàçó äàííûõ. Ïîñëå ïðîâåðêè àäìèíèñòðàòîðîì îíà áóäåò îïóáëèêîâàíà íà ñàéòå.", +'add_ok_3' => "Âàøà íîâîñòü áûëà óñïåøíî äîáàâëåíà â áàçó äàííûõ. Îäíàêî, â ñâÿçè ñ òåì, ÷òî Âû ìîæåòå ïóáëèêîâàòü íîâîñòè áåç ìîäåðàöèè íå âî âñå ðàçäåëû, Âàøà íîâîñòü áóäåò îïóáëèêîâàíà òîëüêî ïîñëå ïðîâåðêè àäìèíèñòðàòîðîì ñàéòà.", +'add_noch' => "Äîáàâèòü åùå", +'add_or' => "èëè", +'add_al_com' => "Ðàçðåøèòü êîììåíòàðèè", +'add_al_m' => "Ïóáëèêîâàòü íà ãëàâíîé", +'add_al_ap' => "Îïóáëèêîâàòü íîâîñòü íà ñàéòå", +'add_al_fix' => "Çàôèêñèðîâàòü íîâîñòü", + +'bb_url' => "Ââåäèòå ïîëíûé URL ññûëêè", +'bb_page' => "Ââåäèòå íîìåð ñòðàíèöû", +'bb_url_name' => "Ââåäèòå íàçâàíèå ñàéòà", +'bb_page_name' => "Ââåäèòå îïèñàíèå ññûëêè", +'bb_image' => "Ââåäèòå ïîëíûé URL èçîáðàæåíèÿ", +'bb_email' => "Ââåäèòå e-mail àäðåñ", +'bb_code' => "Èñïîëüçîâàíèå: [CODE] Çäåñü Âàø êîä.. [/CODE]", +'bb_quote' => "Èñïîëüçîâàíèå: [QUOTE] Çäåñü Âàøà Öèòàòà.. [/QUOTE]", +'bb_no_url' => "Âû äîëæíû ââåñòè URL", +'bb_no_title' => "Âû äîëæíû ââåñòè íàçâàíèå", +'bb_no_email' => "Âû äîëæíû ââåñòè e-mail àäðåñ", +'bb_prompt_start' => "Ââåäèòå òåêñò äëÿ ôîðìàòèðîâàíèÿ", +'bb_img_title' => "Ââåäèòå ïî êàêîìó êðàþ âûðàâíèâàòü êàðòèíêó (left, center, right)", +'bb_email_title' => "Ââåäèòå îïèñàíèå ññûëêè (íåîáÿçàòåëüíî)", +'bb_b_quote' => " Öèòàòà ", +'bb_bb_page' => "Ñòðàíèöà", +'bb_b_close' => "Çàêðûòü âñ¸", +'bb_b_url' => "Ññûëêà", +'bb_b_img' => "Êàðòèíêà", +'bb_b_mail' => "E-Mail", +'bb_b_break' => "Ðàçðûâ", +'bb_b_page' => "Ññûëêà íà ñòðàíèöó", +'bb_t_b' => "Ïîëóæèðíûé", +'bb_t_i' => "Íàêëîííûé òåêñò", +'bb_t_u' => "Ïîä÷åðêíóòûé òåêñò", +'bb_t_s' => "Çà÷åðêíóòûé òåêñò", +'bb_t_l' => "Âûðàâíèâàíèå ïî ëåâîìó êðàþ", +'bb_t_c' => "Ïî öåíòðó", +'bb_t_r' => "Âûðàâíèâàíèå ïî ïðàâîìó êðàþ", +'bb_t_cl' => "Çàêðûòü âñå îòêðûòûå òåãè", +'bb_t_url' => "Âñòàâêà ññûëêè", +'bb_t_img' => "Âñòàâêà êàðòèíêè", +'bb_t_hide' => "Ñêðûòûé òåêñò", +'bb_t_quote' => "Âñòàâêà öèòàòû", +'bb_t_translit' => "Ïðåîáðàçîâàòü âûáðàííûé òåêñò èç òðàíñëèòåðàöèè â êèðèëëèöó", +'bb_t_m' => "Âñòàâêà E-Mail", +'bb_t_br' => "Âñòàâêà ðàçðûâà ìåæäó ñòðàíèöàìè", +'bb_t_p' => "Âñòàâêà ññûëêè íà ñòðàíèöó", +'bb_b_cancel' => "Îòìåíèòü", +'bb_t_cancel' => "Îòìåíèòü ðåäàêòèðîâàíèå è âåðíóòü âñå â èñõîäíîå ñîñòîÿíèå", +'bb_b_apply' => "Ïðèíÿòü èñïðàâëåíèÿ", +'bb_t_apply' => "Îòïðàâèòü èñïðàâëåíèÿ íà ñåðâåð", + +'comm_err_1' => "Ðàáîòà ñ êîììåíòàðèÿìè äîñòóïíà òîëüêî çàðåãèñòðèðîâàííûì ïîëüçîâàòåëÿì", +'comm_err_2' => "Âíèìàíèå, îáíàðóæåíà îøèáêà", +'comm_err_3' => "Ó Âàñ íåò ïðàâ äëÿ ðåäàêòèðîâàíèÿ âûáðàííîãî êîììåíòàðèÿ.", +'comm_err_4' => "Ó Âàñ íåò ïðàâ äëÿ óäàëåíèÿ âûáðàííîãî êîììåíòàðèÿ.", +'comm_err_5' => "Äåéñòâèå íå îïðåäåëåíî èëè íå âûáðàí êîììåíòàðèé.", + +'comm_ok' => "Äåéñòâèå óñïåøíî âûïîëíåíî", +'comm_ok_1' => "Òåêñò êîììåíòàðèÿ áûë óñïåøíî èçìåíåí", +'comm_ok_2' => "Êîììåíòàðèé áûë óñïåøíî óäàëåí.", +'comm_title' => "Ðåäàêòèðîâàíèå êîììåíòàðèÿ", + +'login_err' => "Îøèáêà àâòîðèçàöèè", +'login_err_1' => "Âíèìàíèå, âõîä íà ñàéò íå áûë ïðîèçâåäåí. Âîçìîæíî, Âû ââåëè íåâåðíîå èìÿ ïîëüçîâàòåëÿ èëè ïàðîëü.", + +'search_err_2' => "Ê ñîæàëåíèþ, ïîèñê ïî ñàéòó íå äàë íèêàêèõ ðåçóëüòàòîâ. Ïîïðîáóéòå èçìåíèòü èëè ñîêðàòèòü Âàø çàïðîñ.", +'search_err_3' => "Ââåäåíî ïóñòîå ïîëå äëÿ ïîèñêà èëè ñòðîêà ïîèñêà ñîäåðæèò ìåíåå 4 ñèìâîëîâ, â ñâÿçè ñ ÷åì ïîèñê áûë ïðèîñòàíîâëåí.", +'search_ok' => "Ïî Âàøåìó çàïðîñó íàéäåíî", +'search_ok_1' => "îòâåòîâ", +'search_ok_2' => "Ðåçóëüòàòû çàïðîñà", +'search_title' => "Ïîèñê ïî ñàéòó", + +'lost_npass' => "Óâàæàåìûé ïîñåòèòåëü! Ñîãëàñíî Âàøåìó çàïðîñó äëÿ Âàñ áûë ñãåíåðèðîâàí íîâûé ïàðîëü. Äëÿ âõîäà íà ñàéò èñïîëüçóéòå ñëåäóþùèå äàííûå:", +'lost_login' => "Ëîãèí:", +'lost_pass' => "Ïàðîëü:", +'lost_info' => "Ïîñëå àâòîðèçàöèè íà ñàéòå âû ñìîæåòå èçìåíèòü äàííûé ïàðîëü íà ëþáîé äðóãîé.", +'lost_gen' => "Íîâûé ïàðîëü ñãåíåðèðîâàí", +'lost_err' => "Ïîëüçîâàòåëü ñ òàêèì èìåíåì íå çàïðàøèâàë âîññòàíîâëåíèå ïàðîëÿ, ëèáî äàííàÿ ññûëêà óæå óñòàðåëà. Äîïóñêàåòñÿ òîëüêî îäíà ïîïûòêà âîññòàíîâëåíèÿ ïàðîëÿ ïî îòïðàâëåííîé âàì íà e-mail ññûëêå. Ïîñëå ÷åãî âû äîëæíû ïîâòîðíî çàïðàøèâàòü âîññòàíîâëåíèå ïàðîëÿ íà e-mail", +'lost_subj' => "Âîññòàíîâëåíèå çàáûòîãî ïàðîëÿ", +'lost_ms' => "Óâåäîìëåíèå îòïðàâëåíî", +'lost_ms_1' => "Óâàæàåìûé ïîñåòèòåëü!  ñâÿçè ñ òåì ÷òî â öåëÿõ áåçîïàñíîñòè âñå ïàðîëè õðàíÿòñÿ â çàøèôðîâàííîì âèäå, ìû íå ìîæåì âîññòàíîâèòü Âàø ñòàðûé ïàðîëü. Íà âàø E-Mail àäðåñ, óêàçàííûé ïðè ðåãèñòðàöèè, áûëî îòïðàâëåíî óâåäîìëåíèå äëÿ ãåíåðàöèè íîâîãî ïàðîëÿ äëÿ Âàñ.", +'lost_err_1' => "Ïîëüçîâàòåëü ñ òàêèì èìåíåì èëè E-Mail íå íàéäåí â áàçå äàííûõ", +'news_err_url' => "URL àäðåñà ñàéòîâ, â ïîëå \"Î ñåáå\" ïóáëèêîâàòü ÇÀÏÐÅÙÅÍÎ!", +'news_err_0' => "Âû ââåëè ñëèøêîì êîðîòêèé êîììåíòàðèé.", +'news_err_1' => "Âû ââåëè ñëèøêîì äëèííîå èìÿ.", +'news_err_2' => "Âû ââåëè ñëèøêîì äëèííûé E-Mail àäðåñ.", +'news_err_3' => "Âû ââåëè ñëèøêîì äëèííûé êîììåíòàðèé.", +'news_err_4' => "Âêëþ÷åíà çàùèòà îò ôëóäà.", +'news_err_5' => "Âû ñìîæåòå äîáàâèòü ïîâòîðíî êîììåíòàðèé äëÿ äàííîé ñòàòüè òîëüêî ÷åðåç", +'news_err_6' => "ñåêóíä", +'news_err_7' => "Èçâèíèòå, íî Âû ââåëè èìÿ çàðåãèñòðèðîâàííîãî ïîëüçîâàòåëÿ. Åñëè Âû è åñòü ýòîò ïîëüçîâàòåëü, òî Âàì íåîáõîäèìî àâòîðèçèðîâàòüñÿ â ïàíåëè óïðàâëåíèÿ.", +'news_err_9' => "Ïîëå \"Èìÿ\" ÿâëÿåòñÿ îáÿçàòåëüíûì è íå ìîæåò áûòü ïóñòûì.", +'news_err_10' => "Èçâèíèòå, íî Âû ââåëè íåâåðíûé E-Mail àäðåñ.", +'news_err_11' => "Ïîëå \"Êîììåíòàðèé\" ÿâëÿåòñÿ îáÿçàòåëüíûì è íå ìîæåò áûòü ïóñòûì.", +'news_err_12' => "Ê ñîæàëåíèþ, äàííàÿ ñòðàíèöà äëÿ Âàñ íå äîñòóïíà, âîçìîæíî áûë èçìåíåí åå àäðåñ èëè îíà áûëà óäàëåíà. Ïîæàëóéñòà, âîñïîëüçóéòåñü ïîèñêîì.", +'news_err_13' => "
  • Ó âàñ íåò ïðàâ äëÿ ðåäàêòèðîâàíèÿ ýòîãî ïðîôèëÿ!
  • ", +'news_err_14' => "
  • Ïðîèçîøëà îøèáêà ïðè çàãðóçêè ôîòîãðàôèè.
  • ", +'news_err_15' => "
  • Ê çàãðóçêå ðàçðåøåíû òîëüêî ôàéëû ñ ðàñøèðåíèåì JPG èëè GIF.
  • ", +'news_err_16' => "
  • Ìàêñèìàëüíûé ðàçìåð çàãðóæàåìîé êàðòèíêè íå äîëæåí ïðåâûøàòü 100 Kb.
  • ", +'news_err_17' => "
  • Ââåäåí íåâåðíûé ñòàðûé ïàðîëü!
  • ", +'news_err_18' => "
  • Îáà ââåäåííûõ ïàðîëÿ äîëæíû áûòü èäåíòè÷íû!
  • ", +'news_err_19' => "
  • Äëèíà ïàðîëÿ äîëæíà áûòü íå ìåíåå 6 ñèìâîëîâ è íå áîëåå 16!
  • ", +'news_err_20' => "
  • Âû èñïîëüçóåòå íåäîïóñòèìûé ïàðîëü!
  • ", +'news_err_21' => "
  • Ââåäåí íåâåðíûé E-Mail àäðåñ!
  • ", +'news_err_22' => "
  • Ñëèøêîì äëèííàÿ èíôîðìàöèÿ î ñåáå!
  • ", +'news_err_23' => "
  • Ââåäåíî ñëèøêîì äëèííîå èìÿ!
  • ", +'news_err_24' => "
  • Ñòðàíû ñ òàêèì äëèííûì íàçâàíèåì íå áûâàåò!
  • ", +'news_err_25' => "
  • Ââåäåí ñëèøêîì äëèííûé íîìåð ICQ!
  • ", +'news_err_26' => "Ïîëüçîâàòåëü ñ òàêèì èìåíåì íå íàéäåí.", +'news_err_27' => "Ïî äàííîìó êðèòåðèþ íîâîñòè íå íàéäåíû, ëèáî ó âàñ íåò äîñòóïà äëÿ ïðîñìîòðà ýòèõ íîâîñòåé", +'news_err_28' => "íå èìåþò äîñòóïà äëÿ ïðîñìîòðà ñòàòåé èç äàííîãî ðàçäåëà.", +'news_err_29' => "Êîììåíòèðîâàíèå íîâîñòè îòêëþ÷åíî Àäìèíèñòðàöèåé ïîðòàëà...", + +'feed_err_1' => "
  • Âû íå óêàçàëè ñâî¸ èìÿ.
  • ", +'feed_err_2' => "
  • Âû íå óêàçàëè ñâîé E-mail.
  • ", +'feed_err_3' => "
  • Íåâåðíî óêàçàí E-mail.
  • ", +'feed_err_4' => "
  • Âû íå óêàçàëè çàãîëîâîê ñîîáùåíèÿ.
  • ", +'feed_err_5' => "
  • Âû íå óêàçàëè òåêñò ñîîáùåíèÿ.
  • ", +'feed_err_6' => "Íåâîçìîæíî îòïðàâèòü Âàøå ñîîáùåíèå.", +'feed_err_7' => "Äàííûé ïîëüçîâàòåëü íå íàéäåí â áàçå äàííûõ, ëèáî îí íå õî÷åò ïîëó÷àòü ïèñüìà îò äðóãèõ ïîëüçîâàòåëåé", + +'feed_ok_1' => "Ñîîáùåíèå óñïåøíî îòïðàâëåíî", +'feed_ok_2' => "Âàøå ñîîáùåíèå äëÿ", +'feed_ok_3' => "óñïåøíî îòïðàâëåíî.", +'feed_ok_4' => "Âåðíóòüñÿ íà ãëàâíóþ.", + +'user_mem' => "Ïîñåòèòåëü", +'user_ed' => "Æóðíàëèñò", +'user_re' => "Ðåäàêòîð", +'user_adm' => "Àäìèíèñòðàòîð", +'user_ban' => "Çàáàíåí", + +'news_next' => "Ñëåäóþùàÿ ñòðàíèöà", +'news_prev' => "Ïðåäûäóùàÿ ñòðàíèöà", +'news_site' => "Ñòðàíèöà", +'news_iz' => " èç ", +'news_delcom' => "Âû äåéñòâèòåëüíî õîòèòå óäàëèòü? Äàííîå äåéñòâèå íåâîçìîæíî áóäåò îòìåíèòü", +'news_regus' => "
    Âíèìàíèå! Ó âàñ íåò ïðàâ äëÿ ïðîñìîòðà ñêðûòîãî òåêñòà.
    Äëÿ òîãî ÷òîáû âèäåòü ñêðûòûé òåêñò Âàì íåîáõîäèìî çàðåãèñòðèðîâàòüñÿ.

    Attention! You can view this text.
    To see the hidden text you must register.
    ", +'news_info_1' => "Òîëüêî Çàðåãèñòðèðîâàííûå ïîëüçîâàòåëè ìîãóò îñòàâëÿòü êîììåíòàðèè.", +'news_mail' => "îòïðàâèòü E-Mail", +'news_nomail' => "ñêðûò îò ïðîñìîòðà", +'news_noamail' => "Íå ïîëó÷àòü ïèñüìà îò äðóãèõ", +'news_option' => "ðåäàêòèðîâàòü ïðîôèëü", +'news_addfav' => "Äîáàâèòü íîâîñòü â çàêëàäêè", +'news_minfav' => "Óäàëèòü íîâîñòü èç çàêëàäîê", +'news_addcom' => "Äîáàâëåíèå êîììåíòàðèÿ", +'news_pmnew' => "íàïèñàòü ÏÑ", + +'pm_err_1' => "Ê ñîæàëåíèþ, Âû íå ìîæåòå èñïîëüçîâàòü ïåðñîíàëüíûå ñîîáùåíèÿ íà ñàéòå", +'pm_err_2' => "
  • Âñå ïîëÿ îáÿçàòåëüíû ê çàïîëíåíèþ
  • ", +'pm_err_3' => "
  • Ñëèøêîì äëèííûé çàãîëîâîê ïèñüìà
  • ", +'pm_err_4' => "
  • Ïîëó÷àòåëü ñ òàêèì èìåíåì íå íàéäåí
  • ", +'pm_err_8' => "
  • Êîëè÷åñòâî ïåðñîíàëüíûõ ñîîáùåíèé ïîëó÷àòåëÿ äîñòèãëî ìàêñèìàëüíîãî çíà÷åíèÿ, â ñâÿçè ñ ÷åì îí íå ìîæåò áîëüøå ïîëó÷àòü ïåðñîíàëüíûå ñîîáùåíèÿ.
  • ", +'pm_err_5' => "Óäàëåíèå ïåðñîíàëüíûõ ñîîáùåíèé íå áûëî ïðîèçâåäåíî. Ëèáî Âû íè÷åãî íå âûáðàëè, ëèáî ó Âàñ íåò íà ýòî ïðàâ.", +'pm_err_6' => "Ñîîáùåíèå ñ òàêèì íîìåðîì íå íàéäåíî", +'pm_err_7' => "Ó Âàñ íåò ïðàâ ïðîñìàòðèâàòü ÷óæèå ïåðñîíàëüíûå ñîîáùåíèÿ", +'pm_err_9' => "Âàø ÿùèê äîñòèã ìàêñèìàëüíîãî êîëè÷åñòâà ïîëó÷åííûõ ñîîáùåíèé. Âû íå ñìîæåòå áîëüøå ïîëó÷àòü ïåðñîíàëüíûå ñîîáùåíèÿ äî òåõ ïîð, ïîêà íå óäàëèòå ëèøíèå ñîîáùåíèÿ.", + 'pm_err_10' => "Âû ïûòàåòåñü îòïðàâèòü ïåðñîíàëüíîå ñîîáùåíèå ñàìîìó ñåáå!", +'pm_sendok' => "Âàøå ñîîáùåíèå áûëî óñïåøíî îòïðàâëåíî.", +'pm_confirm' => "Âû äåéñòâèòåëüíî æåëàåòå óäàëèòü äàííîå ñîîáùåíèå", +'pm_noch' => "Îòïðàâèòü åùå", +'pm_main' => "âåðíóòüñÿ íà ãëàâíóþ ñòðàíèöó", +'pm_or' => "èëè", +'pm_delok' => "Âûáðàííûå ñîîáùåíèÿ áûëè óñïåøíî óäàëåíû.", +'pm_subj' => "Òåìà ñîîáùåíèÿ", +'pm_from' => "Îòïðàâèòåëü", +'pm_date' => "Äàòà", +'pm_action' => "Äåéñòâèå?", +'pm_del' => "óäàëèòü", + +); + +//////////// +// Ëîêàëèçàöèÿ äëÿ äàòû +$langdate = array ( +'January' => "ÿíâàðÿ", +'February' => "ôåâðàëÿ", +'March' => "ìàðòà", +'April' => "àïðåëÿ", +'May' => "ìàÿ", +'June' => "èþíÿ", +'July' => "èþëÿ", +'August' => "àâãóñòà", +'September' => "ñåíòÿáðÿ", +'October' => "îêòÿáðÿ", +'November' => "íîÿáðÿ", +'December' => "äåêàáðÿ", +'Jan' => "ÿíâ", +'Feb' => "ôåâ", +'Mar' => "ìàð", +'Apr' => "àïð", +'Jun' => "èþí", +'Jul' => "èþë", +'Aug' => "àâã", +'Sep' => "ñåí", +'Oct' => "îêò", +'Nov' => "íîÿ", +'Dec' => "äåê", + +'Sunday' => "Âîñêðåñåíüå", +'Monday' => "Ïîíåäåëüíèê", +'Tuesday' => "Âòîðíèê", +'Wednesday' => "Ñðåäà", +'Thursday' => "×åòâåðã", +'Friday' => "Ïÿòíèöà", +'Saturday' => "Ñóááîòà", + +'Sun' => "Âñ", +'Mon' => "Ïí", +'Tue' => "Âò", +'Wed' => "Ñð", +'Thu' => "×ò", +'Fri' => "Ïò", +'Sat' => "Ñá", + +); + +# Äëÿ àðõèâà è êàëåíäàðÿ +$f = array('ÿíâàðÿ', 'ôåâðàëÿ', 'ìàðòà', 'àïðåëÿ', 'ìàÿ', 'èþíÿ', 'èþëÿ', 'àâãóñòà', 'ñåíòÿáðÿ', 'îêòÿáðÿ', 'íîÿáðÿ', 'äåêàáðÿ'); +$r = array('ßíâàðü', 'Ôåâðàëü', 'Ìàðò', 'Àïðåëü', 'Ìàé', 'Èþíü', 'Èþëü', 'Àâãóñò', 'Ñåíòÿáðü', 'Îêòÿáðü', 'Íîÿáðü', 'Äåêàáðü'); +$langdateshortweekdays = array("Âñ","Ïí","Âò","Ñð","×ò","Ïò","Ñá"); + +@setlocale(LC_ALL, array("ru_RU.CP1251", "ru_SU.CP1251", "ru_RU.KOI8-r", "ru_RU", "russian", "ru_SU", "ru")); +?> \ No newline at end of file diff --git a/language/Russian/website_repa.lng b/language/Russian/website_repa.lng new file mode 100644 index 0000000..b5aca6e --- /dev/null +++ b/language/Russian/website_repa.lng @@ -0,0 +1,38 @@ + "Âû íå ìîæåòå èçìåíÿòüñÿ ðåïóòàöèþ ñàìîìó ñåáå.", +'repa_off' => "Ïîëüçîâàòåëü îòêëþ÷èë ðåïóòàöèþ â ñâîèõ íàñòðîéêàõ. Âû íå ìîæåòå èçìåíÿòü åìó ðåïóòàöèþ.", +'repa_user_not_found' => "Ïîëüçîâàòåëü íå íàéäåí.", +'repa_error_act' => "Íå âûáðàíî äåéñòâèå.", +'repa_no_com' => "Âû íå ââåëè êîììåíòàðèé ê èçìåíåíèþ ðåïóòàöèè.", +'repa_min_com' => "Âû ââåëè ñëèøêîì ìàëåíüêèé êîììåíòàðèé.", +'repa_stop_otr' => "Äëÿ èçìåíåíèÿ ðåïóòàöèè äðóãèì ïîëüçîâàòåëÿì âàøà ðåïóòàöèÿ äîëæíà áûòü ðàâíà èëè áîëüøå 0.", +'repa_edit_error' => "Âû íå ìîæåòå ñàìîìó ñåáå ðåäàêòèðîâàòü ðåïóòàöèþ. Åñëè âû ñ÷èòàåòå, ÷òî âàì íå ïî çàñëóãàì ïîñòàâèëè + èëè -, òî ñîîáùèòå îá ýòîì äðóãîìó ìîäåðàòîðó èëè ñòîÿùåìó âûøå ïî ðàíãó ïîëüçîâàòåëþ äëÿ óäàëåíèÿ èçìåí¸ííîé ðåïóòàöèè.", +'repa_history' => " áàçå äàííûõ íåò òàêîãî ïîëüçîâàòåëÿ ëèáî ïîëüçîâàòåëü åù¸ íèêîìó íå ìåíÿë ðåïóòàöèþ.", +'repa_not_logged' => "Âû íå àâòîðèçîâàíû íà ñàéòå. Çàðåãèñòðèðóéòåñü èëè àâòîðèçóéòåñü.", +'repa_not_selected' => "Íå âûáðàííàÿ ðåïóòàöèÿ äëÿ èçåìåííèÿ.", +'repa_selected_not_found' => " áàçå äàííûõ íå îáíàðóæåíà çàïðàøèâàåìàÿ çàïèñü.", +'repa_access_no' => "Âû íå èìååòå ïðàâ äëÿ ðåäàêòèðîâàíèÿ äàííîãî èçìåíåíèÿ ðåïóòàöèè.", +'gen_status_off' => "Ýòîò ìîäóëü îòêëþ÷åí àäìèíèñòðàòîðîì", +'title_repa' => "Ðåïóòàöèÿ ïîëüçîâàòåëÿ", +'title_repa_top' => "Ëó÷øèå ïîëüçîâàòåëè", +'repa_nothing' => "Èçìåíåíèé íåáûëî.", +'repa_first_p' => "ê íà÷àëüíîé ñòðàíèöå", +'repa_last_pa' => "ê ïîñëåäíåé ñòðàíèöå", +'repa_up' => "Ïîëîæèòåëüíî", +'repa_down' => "Îòðèöàòåëüíî", +'repa_adm' => "Àäìèíèñòðàòèâíî", +'change_quest' => "Èçìåíèòü ðåïóòàöèþ ïîëüçîâàòåëþ", +'repa_already' => "Âû óæå èçìåíÿëè ðåïóòàöèþ ïîëüçîâàòåëþ", +'repa_group_stop' => "Ïîëüçîâàòåëÿì èç Âàøåé ãðóïïû íåëüçÿ ìåíÿòü ðåïóòàöèþ äðóãèì.", +'repa_user_stop' => "Âû íå ìîæåòå âîçäåéñòâîâàòü íà ðåïóòàöèþ äðóãèõ. Àäìèíèñòðàòîð çàáëîêèðîâàë ýòî äåéñòâèå äëÿ Âàñ", +'repa_bl_msg' => "Äî ïîëó÷åíÿ ïðàâà èçìåíÿòü ðåïóòàöèþ äðóãèì Âû äîëæíû áûòü çàðåãèñòðèðîâàíû íå ìåíåå", +'repa_days' => " äíåé", +'repa_limit' => "Ðåïóòàöèÿ äîøëà äî ëèìèòà", +'repa_too_long' => "Ñëèøêîì äëèííûé òåêñò êîììåíòàðèÿ!", +'repa_msg_changed' => "Âàì èçìåíèëè ðåïóòàöèþ", + +); +?> \ No newline at end of file diff --git a/out.php b/out.php new file mode 100644 index 0000000..baae1d2 --- /dev/null +++ b/out.php @@ -0,0 +1,44 @@ +
    Please visit {$_SERVER['HTTP_HOST']}" ); +} + +$tpl = new dle_template; +$tpl->dir = ( ROOT_DIR.'/templates/'); + +$tpl->load_template('redirect.tpl'); +$tpl->set('{title}', $config['short_title']); +$tpl->set('{home_url}', $config['http_home_url']); +$tpl->set( '{url}', $url ); +$tpl->compile( 'redirect' ); +$tpl->clear(); + +echo $tpl->result['redirect']; +die(); + +//@header ( 'Location: ' . $url ); + +//die ( "Link Redirect:

    Please click here." ); +?> \ No newline at end of file diff --git a/rating.php b/rating.php new file mode 100644 index 0000000..7cfa4cc --- /dev/null +++ b/rating.php @@ -0,0 +1,141 @@ + 6) show_error_image("The request can have maximum 6 characters"); + +if($query == 'game'){ + function get_xml($url) + { + $ch = curl_init($url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_HEADER, 0); + curl_setopt($ch, CURLOPT_ENCODING, ""); + curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8"); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); + curl_setopt($ch, CURLOPT_TIMEOUT, 120); + + $content = curl_exec($ch); + curl_close($ch); + preg_match("!(.*?)!si", $content, $contens); + $content = $contens[1]; + return $content; + } + + $content = get_xml("http://www.igropoisk.com/rating/{$id}.xml"); + + $pic = imagecreatefrompng(RATING_DIR."game.png"); + $color = ImageColorAllocate($pic, 255, 255, 255); + imagealphablending($pic, true); + + imagestring($pic, 3, 6, 19, $content, $color); + +} elseif ($query == 'film'){ + function subX($dbl){ + switch ($dbl) { + case 1: + return 9; + break; + case 2: + return 8; + break; + case 3: + return 7; + break; + case 4: + return 6; + break; + case 5: + return 5; + break; + case 6: + return 4; + break; + case 7: + return 4; + break; + case 8: + return 3; + break; + case 9: + return 2; + break; + } + } + + $rating = file_get_contents("http://rating.kinopoisk.ru/{$id}.xml"); + + preg_match("/kp_rating num_vote=['\"](.+)['\"]>(.+)(.+) 0) ? imagecreatefrompng(RATING_DIR."rating.png") : imagecreatefrompng(RATING_DIR."kinopoisk.png"); + $star = imagecreatefrompng(RATING_DIR."star.png"); + $color = ImageColorAllocate($pic, 0, 0, 0); + $colorDown = ImageColorAllocate($pic, 120, 120, 120); + imagealphablending($pic, true); + + ($kino_rating > 10) ? $kino_rating = 10 : ""; + imagestring($pic, 3, 5, 19, $kino_rating, $color); + imagestring($pic, 1, 5+(strlen($kino_rating)+1)*6, 23, $kino_votes, $colorDown); + + if($imdb_rating > 0) { + ($imdb_rating > 10) ? $imdb_rating = 10 : ""; + imagestring($pic, 3, 191 - (strlen($imdb_rating)-1) * 7, 1, $imdb_rating, $color); + imagestring($pic, 1, 188 - (strlen($imdb_votes)-2) * 5, 17, $imdb_votes, $colorDown); + + for ($i = 0, $next = 0; $i != (int)$imdb_rating; $i++, $next = $next + 10) { + imagecopy($pic, $star, 109 + $next, 26, 0, 0, imagesx($star), imagesy($star)); + } + $imdb_rating = explode(".", $imdb_rating); + if(is_array($imdb_rating) and $imdb_rating[1] != 0) { + $dbl = (int)$imdb_rating[1]; + imagecopy($pic, $star, 109 + $next, 26, 0, 0, imagesx($star) - subX($dbl), imagesy($star)); + } + } +} + +imagesavealpha($pic, true); +imagepng($pic); +imagedestroy($pic); +$cache = ob_get_contents(); +ob_end_clean(); +echo $cache; +$fp = @fopen ($file, "w"); +@fwrite($fp, $cache); +@fclose($fp); +?> \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..7d74417 --- /dev/null +++ b/robots.txt @@ -0,0 +1,31 @@ +User-agent: * +Allow: /$ +Allow: /index.php$ +Allow: /sitemap* +Allow: /rss* +Allow: /*.html +Allow: /news/* +Allow: /films/* +Allow: /video/* +Allow: /music/* +Allow: /games/* +Allow: /soft/* +Allow: /library/* +Allow: /wallpapers/* +Allow: /forum/$ +Allow: /forum/forum_ +Allow: /forum/topic_ +Disallow: / +Crawl-delay: 0.5 +Host: files-sib.net +Sitemap: http://files-sib.net/sitemap.xml + +User-agent: Adsbot-Google +User-agent: Googlebot-Image +User-agent: Googlebot-Mobile +User-agent: Mediapartners-Google +User-agent: msnbot +User-agent: msnbot-media +User-agent: Slurp +User-agent: Yahoo-MMCrawler +Disallow: / \ No newline at end of file diff --git a/schema.sql b/schema.sql new file mode 100644 index 0000000..8523571 --- /dev/null +++ b/schema.sql @@ -0,0 +1,917 @@ +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES cp1251 */; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_banned` +-- + +CREATE TABLE IF NOT EXISTS `cms_banned` ( + `id` smallint(5) NOT NULL AUTO_INCREMENT, + `users_id` mediumint(8) NOT NULL DEFAULT '0', + `descr` text NOT NULL, + `date` varchar(15) NOT NULL DEFAULT '', + `days` smallint(4) NOT NULL DEFAULT '0', + `ip` varchar(50) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `user_id` (`users_id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_category` +-- + +CREATE TABLE IF NOT EXISTS `cms_category` ( + `id` smallint(5) NOT NULL AUTO_INCREMENT, + `parentid` smallint(5) NOT NULL DEFAULT '0', + `posi` smallint(5) NOT NULL DEFAULT '1', + `name` varchar(50) NOT NULL DEFAULT '', + `alt_name` varchar(50) NOT NULL DEFAULT '', + `descr` varchar(200) NOT NULL DEFAULT '', + `keywords` text NOT NULL, + `news_sort` varchar(10) NOT NULL DEFAULT '', + `news_msort` varchar(4) NOT NULL DEFAULT '', + `news_number` smallint(5) NOT NULL DEFAULT '0', + `metatitle` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_chat` +-- + +CREATE TABLE IF NOT EXISTS `cms_chat` ( + `id` int(5) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL DEFAULT '', + `message` text NOT NULL, + `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `ip` varchar(16) NOT NULL DEFAULT '', + `user_id` mediumint(8) NOT NULL DEFAULT '0', + `mgroup` tinyint(2) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_comments` +-- + +CREATE TABLE IF NOT EXISTS `cms_comments` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `post_id` int(11) NOT NULL DEFAULT '0', + `user_id` mediumint(8) NOT NULL DEFAULT '0', + `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `autor` varchar(40) NOT NULL DEFAULT '', + `email` varchar(40) NOT NULL DEFAULT '', + `text` text NOT NULL, + `ip` varchar(16) NOT NULL DEFAULT '', + `is_register` tinyint(1) NOT NULL DEFAULT '0', + `rating` smallint(5) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`), + FULLTEXT KEY `text` (`text`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_covers` +-- + +CREATE TABLE IF NOT EXISTS `cms_covers` ( + `id` int(10) NOT NULL AUTO_INCREMENT, + `newsid` int(10) NOT NULL, + `link` varchar(1000) NOT NULL, + `thumb` varchar(1000) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_email` +-- + +CREATE TABLE IF NOT EXISTS `cms_email` ( + `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(10) NOT NULL DEFAULT '', + `template` text NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_files` +-- + +CREATE TABLE IF NOT EXISTS `cms_files` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `news_id` int(10) NOT NULL DEFAULT '0', + `name` varchar(250) NOT NULL DEFAULT '', + `onserver` varchar(250) NOT NULL DEFAULT '', + `author` varchar(40) NOT NULL DEFAULT '', + `date` varchar(15) NOT NULL DEFAULT '', + `dcount` smallint(5) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `news_id` (`news_id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_forum_category` +-- + +CREATE TABLE IF NOT EXISTS `cms_forum_category` ( + `sid` int(11) NOT NULL AUTO_INCREMENT, + `cat_name` varchar(128) NOT NULL DEFAULT '', + `posi` tinyint(3) NOT NULL DEFAULT '0', + KEY `sid` (`sid`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_forum_email` +-- + +CREATE TABLE IF NOT EXISTS `cms_forum_email` ( + `id` int(11) NOT NULL DEFAULT '0', + `name` varchar(40) NOT NULL DEFAULT '', + `template` text NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_forum_files` +-- + +CREATE TABLE IF NOT EXISTS `cms_forum_files` ( + `file_id` int(11) NOT NULL AUTO_INCREMENT, + `file_type` varchar(10) NOT NULL DEFAULT '', + `forum_id` int(11) NOT NULL DEFAULT '0', + `topic_id` int(11) NOT NULL DEFAULT '0', + `post_id` int(11) NOT NULL DEFAULT '0', + `file_attach` tinyint(1) NOT NULL DEFAULT '0', + `file_name` varchar(250) NOT NULL DEFAULT '', + `onserver` varchar(250) NOT NULL DEFAULT '', + `file_author` varchar(40) NOT NULL DEFAULT '', + `file_date` int(10) NOT NULL DEFAULT '0', + `file_size` int(11) NOT NULL DEFAULT '0', + `dcount` int(11) NOT NULL DEFAULT '0', + PRIMARY KEY (`file_id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_forum_forums` +-- + +CREATE TABLE IF NOT EXISTS `cms_forum_forums` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `parentid` int(11) NOT NULL DEFAULT '0', + `main_id` int(11) NOT NULL DEFAULT '0', + `topics` mediumint(6) NOT NULL DEFAULT '0', + `posts` mediumint(6) NOT NULL DEFAULT '0', + `name` varchar(128) NOT NULL DEFAULT '', + `description` text NOT NULL, + `position` tinyint(3) NOT NULL DEFAULT '0', + `status` tinyint(1) NOT NULL DEFAULT '1', + `access_read` varchar(150) NOT NULL DEFAULT '', + `access_write` varchar(150) NOT NULL DEFAULT '', + `access_mod` varchar(150) NOT NULL DEFAULT '', + `access_topic` varchar(150) NOT NULL DEFAULT '', + `access_upload` varchar(150) NOT NULL DEFAULT '', + `access_download` varchar(150) NOT NULL DEFAULT '', + `f_last_tid` smallint(5) NOT NULL DEFAULT '0', + `f_last_title` varchar(70) NOT NULL DEFAULT '', + `f_last_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `f_last_poster_name` varchar(40) NOT NULL DEFAULT '', + `password` varchar(32) NOT NULL DEFAULT '', + `rules_title` varchar(128) NOT NULL DEFAULT '', + `rules` text NOT NULL, + `icon` varchar(40) NOT NULL DEFAULT '', + `moderators` varchar(150) NOT NULL DEFAULT '', + `postcount` tinyint(1) NOT NULL DEFAULT '1', + `fixpost` tinyint(1) NOT NULL DEFAULT '0', + `last_post_id` int(11) NOT NULL DEFAULT '0', + `banner` text NOT NULL, + `q_reply` tinyint(1) NOT NULL DEFAULT '1', + `i_edit` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_forum_moderators` +-- + +CREATE TABLE IF NOT EXISTS `cms_forum_moderators` ( + `mid` mediumint(8) NOT NULL AUTO_INCREMENT, + `forum_id` int(11) NOT NULL DEFAULT '0', + `member_name` varchar(32) NOT NULL DEFAULT '', + `member_id` mediumint(8) NOT NULL DEFAULT '0', + `edit_post` tinyint(1) DEFAULT NULL, + `edit_topic` tinyint(1) DEFAULT NULL, + `delete_post` tinyint(1) DEFAULT NULL, + `delete_topic` tinyint(1) DEFAULT NULL, + `open_topic` tinyint(1) NOT NULL DEFAULT '0', + `close_topic` tinyint(1) DEFAULT NULL, + `mass_prune` tinyint(1) DEFAULT NULL, + `move_topic` tinyint(1) DEFAULT NULL, + `pin_topic` tinyint(1) DEFAULT NULL, + `unpin_topic` tinyint(1) DEFAULT NULL, + `is_group` tinyint(1) DEFAULT '0', + `group_id` smallint(3) DEFAULT NULL, + `combining_post` tinyint(1) NOT NULL DEFAULT '0', + `move_post` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`mid`), + KEY `forum_id` (`forum_id`), + KEY `group_id` (`group_id`), + KEY `member_id` (`member_id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_forum_poll_log` +-- + +CREATE TABLE IF NOT EXISTS `cms_forum_poll_log` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `topic_id` int(10) unsigned NOT NULL DEFAULT '0', + `member` varchar(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `news_id` (`topic_id`,`member`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_forum_posts` +-- + +CREATE TABLE IF NOT EXISTS `cms_forum_posts` ( + `pid` int(11) NOT NULL AUTO_INCREMENT, + `topic_id` int(11) NOT NULL DEFAULT '0', + `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_author` varchar(40) NOT NULL DEFAULT '', + `post_text` text NOT NULL, + `post_ip` varchar(16) NOT NULL DEFAULT '', + `is_register` tinyint(1) NOT NULL DEFAULT '0', + `e_mail` varchar(40) NOT NULL DEFAULT '', + `edit_user` varchar(40) NOT NULL DEFAULT '0', + `edit_time` int(10) NOT NULL DEFAULT '0', + `hidden` tinyint(1) NOT NULL DEFAULT '0', + `is_count` tinyint(1) NOT NULL DEFAULT '1', + PRIMARY KEY (`pid`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_forum_sessions` +-- + +CREATE TABLE IF NOT EXISTS `cms_forum_sessions` ( + `id` varchar(60) NOT NULL DEFAULT '0', + `member_name` varchar(64) NOT NULL DEFAULT '', + `user_group` int(11) NOT NULL DEFAULT '5', + `member_id` mediumint(8) NOT NULL DEFAULT '0', + `ip` varchar(16) NOT NULL DEFAULT '', + `browser` varchar(200) NOT NULL DEFAULT '', + `running_time` int(10) NOT NULL DEFAULT '0', + `location` varchar(40) NOT NULL DEFAULT '', + `act_index` int(10) NOT NULL DEFAULT '0', + `act_forum` int(10) NOT NULL DEFAULT '0', + `act_topic` int(10) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `act_topic` (`act_topic`), + KEY `act_forum` (`act_forum`), + KEY `act_index` (`act_index`), + KEY `running_time` (`running_time`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_forum_subscription` +-- + +CREATE TABLE IF NOT EXISTS `cms_forum_subscription` ( + `sid` int(11) NOT NULL AUTO_INCREMENT, + `user_id` mediumint(8) NOT NULL DEFAULT '0', + `topic_id` int(10) NOT NULL DEFAULT '0', + PRIMARY KEY (`sid`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_forum_titles` +-- + +CREATE TABLE IF NOT EXISTS `cms_forum_titles` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `posts` int(11) NOT NULL DEFAULT '0', + `title` varchar(128) NOT NULL DEFAULT '', + `pips` varchar(128) NOT NULL DEFAULT '', + KEY `id` (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_forum_topics` +-- + +CREATE TABLE IF NOT EXISTS `cms_forum_topics` ( + `tid` int(11) NOT NULL AUTO_INCREMENT, + `forum_id` int(11) NOT NULL DEFAULT '0', + `title` varchar(70) NOT NULL DEFAULT '', + `topic_descr` varchar(70) NOT NULL DEFAULT '', + `post` int(11) NOT NULL DEFAULT '0', + `views` int(11) NOT NULL DEFAULT '0', + `author_topic` varchar(40) NOT NULL DEFAULT '', + `start_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `last_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `last_poster_name` varchar(40) NOT NULL DEFAULT '', + `topic_status` int(1) NOT NULL DEFAULT '0', + `hidden` int(1) NOT NULL DEFAULT '0', + `fixed` int(1) NOT NULL DEFAULT '1', + `poll_title` varchar(200) NOT NULL DEFAULT '', + `frage` varchar(200) NOT NULL DEFAULT '', + `poll_body` text NOT NULL, + `poll_count` mediumint(8) NOT NULL DEFAULT '0', + `answer` varchar(150) NOT NULL DEFAULT '', + `multiple` tinyint(1) NOT NULL DEFAULT '0', + `meta_descr` varchar(200) DEFAULT NULL, + `meta_keywords` text, + `first_post` int(11) NOT NULL DEFAULT '0', + `last_post_id` int(11) NOT NULL DEFAULT '0', + PRIMARY KEY (`tid`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_forum_views` +-- + +CREATE TABLE IF NOT EXISTS `cms_forum_views` ( + `topic_id` int(11) NOT NULL DEFAULT '0', + `forum_id` int(11) NOT NULL DEFAULT '0', + `user_id` mediumint(8) NOT NULL DEFAULT '0', + `time` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=cp1251; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_images` +-- + +CREATE TABLE IF NOT EXISTS `cms_images` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `images` text NOT NULL, + `news_id` int(10) NOT NULL DEFAULT '0', + `author` varchar(40) NOT NULL DEFAULT '', + `date` varchar(15) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `author` (`author`), + KEY `news_id` (`news_id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_lostdb` +-- + +CREATE TABLE IF NOT EXISTS `cms_lostdb` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `lostname` mediumint(8) NOT NULL DEFAULT '0', + `lostid` varchar(40) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `lostid` (`lostid`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_online` +-- + +CREATE TABLE IF NOT EXISTS `cms_online` ( + `uid` int(10) unsigned NOT NULL DEFAULT '0', + `session` char(32) NOT NULL, + `lastdate` int(10) unsigned NOT NULL DEFAULT '0', + `useragent` char(255) NOT NULL, + `ip` char(15) DEFAULT NULL, + PRIMARY KEY (`session`), + KEY `idx` (`uid`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_pm` +-- + +CREATE TABLE IF NOT EXISTS `cms_pm` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `subj` varchar(255) NOT NULL DEFAULT '', + `text` text NOT NULL, + `user` mediumint(8) NOT NULL DEFAULT '0', + `user_from` varchar(50) NOT NULL DEFAULT '', + `date` varchar(15) NOT NULL DEFAULT '', + `pm_read` char(3) NOT NULL DEFAULT '', + `folder` varchar(10) NOT NULL DEFAULT '', + `reply` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `folder` (`folder`), + KEY `user` (`user`), + KEY `user_from` (`user_from`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_poll` +-- + +CREATE TABLE IF NOT EXISTS `cms_poll` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `news_id` int(10) unsigned NOT NULL DEFAULT '0', + `title` varchar(200) NOT NULL DEFAULT '', + `frage` varchar(200) NOT NULL DEFAULT '', + `body` text NOT NULL, + `votes` mediumint(8) NOT NULL DEFAULT '0', + `multiple` tinyint(1) NOT NULL DEFAULT '0', + `answer` varchar(150) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `news_id` (`news_id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_poll_log` +-- + +CREATE TABLE IF NOT EXISTS `cms_poll_log` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `news_id` int(10) unsigned NOT NULL DEFAULT '0', + `member` varchar(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `news_id` (`news_id`,`member`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_post` +-- + +CREATE TABLE IF NOT EXISTS `cms_post` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `autor` varchar(40) NOT NULL DEFAULT '', + `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `short_story` text NOT NULL, + `full_story` text NOT NULL, + `title` varchar(255) NOT NULL DEFAULT '', + `descr` varchar(200) NOT NULL DEFAULT '', + `keywords` text NOT NULL, + `category` varchar(200) NOT NULL DEFAULT '0', + `alt_name` varchar(200) NOT NULL DEFAULT '', + `comm_num` mediumint(8) unsigned NOT NULL DEFAULT '0', + `allow_comm` tinyint(1) NOT NULL DEFAULT '1', + `allow_main` tinyint(1) unsigned NOT NULL DEFAULT '1', + `allow_rate` tinyint(1) unsigned NOT NULL DEFAULT '1', + `approve` tinyint(1) NOT NULL DEFAULT '0', + `fixed` tinyint(1) NOT NULL DEFAULT '0', + `rating` smallint(5) NOT NULL DEFAULT '0', + `news_read` mediumint(8) unsigned NOT NULL DEFAULT '0', + `votes` tinyint(1) NOT NULL DEFAULT '0', + `access` varchar(150) NOT NULL DEFAULT '', + `remote_addr` varchar(255) NOT NULL, + `editdate` varchar(15) NOT NULL DEFAULT '', + `tags` varchar(255) NOT NULL DEFAULT '', + `metatitle` varchar(255) NOT NULL DEFAULT '', + `news_tid` smallint(5) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `autor` (`autor`), + KEY `alt_name` (`alt_name`), + KEY `category` (`category`), + KEY `approve` (`approve`), + KEY `allow_main` (`allow_main`), + KEY `date` (`date`), + KEY `comm_num` (`comm_num`), + KEY `tags` (`tags`), + FULLTEXT KEY `short_story` (`short_story`,`title`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_rate` +-- + +CREATE TABLE IF NOT EXISTS `cms_rate` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `type_id` int(10) NOT NULL DEFAULT '0', + `member` varchar(40) NOT NULL DEFAULT '', + `rating` int(1) NOT NULL DEFAULT '0', + `type` int(1) NOT NULL DEFAULT '1', + `date` varchar(15) NOT NULL, + `ip` varchar(16) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `news_id` (`type_id`), + KEY `member` (`member`), + KEY `ip` (`ip`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_reputation` +-- + +CREATE TABLE IF NOT EXISTS `cms_reputation` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `how` tinytext NOT NULL, + `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `author` varchar(40) NOT NULL DEFAULT '', + `komu` varchar(40) NOT NULL DEFAULT '', + `text` text NOT NULL, + `url_page` text NOT NULL, + PRIMARY KEY (`id`), + FULLTEXT KEY `text` (`text`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_static` +-- + +CREATE TABLE IF NOT EXISTS `cms_static` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL DEFAULT '', + `descr` varchar(255) NOT NULL DEFAULT '', + `template` text NOT NULL, + `allow_br` tinyint(1) NOT NULL DEFAULT '0', + `grouplevel` varchar(100) NOT NULL DEFAULT 'all', + `metadescr` varchar(200) NOT NULL DEFAULT '', + `metakeys` text NOT NULL, + `views` mediumint(8) NOT NULL DEFAULT '0', + `date` varchar(15) NOT NULL DEFAULT '', + `metatitle` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `name` (`name`), + FULLTEXT KEY `template` (`template`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_static_files` +-- + +CREATE TABLE IF NOT EXISTS `cms_static_files` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `static_id` mediumint(8) NOT NULL DEFAULT '0', + `author` varchar(40) NOT NULL DEFAULT '', + `date` varchar(50) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `onserver` varchar(255) NOT NULL DEFAULT '', + `dcount` smallint(5) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `static_id` (`static_id`), + KEY `onserver` (`onserver`), + KEY `author` (`author`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_subscribe` +-- + +CREATE TABLE IF NOT EXISTS `cms_subscribe` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL DEFAULT '0', + `name` varchar(40) NOT NULL DEFAULT '', + `email` varchar(50) NOT NULL DEFAULT '', + `news_id` int(11) NOT NULL DEFAULT '0', + `hash` varchar(32) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `news_id` (`news_id`), + KEY `user_id` (`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_table` +-- + +CREATE TABLE IF NOT EXISTS `cms_table` ( + `id` int(6) NOT NULL AUTO_INCREMENT, + `date` varchar(15) NOT NULL DEFAULT '', + `autor` varchar(40) NOT NULL DEFAULT '', + `runame` varchar(40) NOT NULL DEFAULT '', + `enname` varchar(40) NOT NULL DEFAULT '', + `fileyear` varchar(4) NOT NULL DEFAULT '0000', + `category` varchar(20) NOT NULL DEFAULT '', + `answer` text, + `status` tinyint(1) NOT NULL DEFAULT '0', + `editor` varchar(40) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `id` (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_tags` +-- + +CREATE TABLE IF NOT EXISTS `cms_tags` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `news_id` int(11) NOT NULL DEFAULT '0', + `tag` varchar(100) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `news_id` (`news_id`), + KEY `tag` (`tag`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_torrents` +-- + +CREATE TABLE IF NOT EXISTS `cms_torrents` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `news_id` int(10) NOT NULL DEFAULT '0', + `name` varchar(250) NOT NULL DEFAULT '', + `onserver` varchar(250) NOT NULL DEFAULT '', + `author` varchar(40) NOT NULL DEFAULT '', + `dcount` smallint(5) NOT NULL, + `info_hash` blob NOT NULL, + `size` bigint(20) NOT NULL, + `gold` tinyint(4) NOT NULL DEFAULT '0', + `leechers` int(11) NOT NULL DEFAULT '0', + `seeders` int(11) NOT NULL DEFAULT '0', + `completed` int(11) NOT NULL DEFAULT '0', + `flags` int(11) NOT NULL DEFAULT '0', + `mtime` int(11) NOT NULL, + `ctime` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `news_id` (`news_id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_usergroups` +-- + +CREATE TABLE IF NOT EXISTS `cms_usergroups` ( + `id` smallint(5) NOT NULL AUTO_INCREMENT, + `group_name` varchar(32) NOT NULL DEFAULT '', + `colour` varchar(40) NOT NULL, + `allow_cats` text NOT NULL, + `allow_adds` tinyint(1) NOT NULL DEFAULT '1', + `cat_add` text NOT NULL, + `allow_admin` tinyint(1) NOT NULL DEFAULT '0', + `allow_addc` tinyint(1) NOT NULL DEFAULT '0', + `allow_editc` tinyint(1) NOT NULL DEFAULT '0', + `allow_delc` tinyint(1) NOT NULL DEFAULT '0', + `edit_allc` tinyint(1) NOT NULL DEFAULT '0', + `del_allc` tinyint(1) NOT NULL DEFAULT '0', + `moderation` tinyint(1) NOT NULL DEFAULT '0', + `allow_all_edit` tinyint(1) NOT NULL DEFAULT '0', + `allow_edit` tinyint(1) NOT NULL DEFAULT '0', + `allow_pm` tinyint(1) NOT NULL DEFAULT '0', + `max_foto` varchar(10) NOT NULL DEFAULT '', + `allow_files` tinyint(1) NOT NULL DEFAULT '1', + `allow_hide` tinyint(1) NOT NULL DEFAULT '1', + `allow_short` tinyint(1) NOT NULL DEFAULT '0', + `allow_fixed` tinyint(1) NOT NULL DEFAULT '0', + `allow_feed` tinyint(1) NOT NULL DEFAULT '1', + `allow_search` tinyint(1) NOT NULL DEFAULT '1', + `allow_poll` tinyint(1) NOT NULL DEFAULT '1', + `allow_main` tinyint(1) NOT NULL DEFAULT '1', + `allow_rating` tinyint(1) NOT NULL DEFAULT '1', + `allow_offline` tinyint(1) NOT NULL DEFAULT '0', + `allow_image_upload` tinyint(1) NOT NULL DEFAULT '0', + `allow_file_upload` tinyint(1) NOT NULL DEFAULT '0', + `allow_tor_upload` tinyint(1) NOT NULL DEFAULT '0', + `allow_signature` tinyint(1) NOT NULL DEFAULT '0', + `allow_url` tinyint(1) NOT NULL DEFAULT '1', + `allow_image` tinyint(1) NOT NULL DEFAULT '0', + `max_signature` smallint(6) NOT NULL DEFAULT '0', + `max_info` smallint(6) NOT NULL DEFAULT '0', + `forum_post_edit` tinyint(1) NOT NULL DEFAULT '0', + `forum_post_del` tinyint(1) NOT NULL DEFAULT '0', + `forum_topic_set` tinyint(1) NOT NULL DEFAULT '0', + `forum_topic_edit` tinyint(1) NOT NULL DEFAULT '0', + `forum_topic_del` tinyint(1) NOT NULL DEFAULT '0', + `admin_addnews` tinyint(1) NOT NULL DEFAULT '0', + `admin_editnews` tinyint(1) NOT NULL DEFAULT '0', + `admin_categories` tinyint(1) NOT NULL DEFAULT '0', + `admin_editusers` tinyint(1) NOT NULL DEFAULT '0', + `admin_wordfilter` tinyint(1) NOT NULL DEFAULT '0', + `admin_static` tinyint(1) NOT NULL DEFAULT '0', + `admin_blockip` tinyint(1) NOT NULL DEFAULT '0', + `admin_iptools` tinyint(1) NOT NULL DEFAULT '0', + `admin_googlemap` tinyint(1) NOT NULL DEFAULT '0', + `admin_table` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_users` +-- + +CREATE TABLE IF NOT EXISTS `cms_users` ( + `email` varchar(50) NOT NULL DEFAULT '', + `password` varchar(32) NOT NULL DEFAULT '', + `name` varchar(40) NOT NULL DEFAULT '', + `user_id` mediumint(8) NOT NULL AUTO_INCREMENT, + `time_zone` int(11) NOT NULL DEFAULT '0', + `news_num` smallint(6) NOT NULL DEFAULT '0', + `comm_num` mediumint(8) NOT NULL DEFAULT '0', + `user_group` smallint(5) NOT NULL DEFAULT '4', + `status` varchar(50) NOT NULL, + `lastdate` varchar(20) DEFAULT NULL, + `reg_date` varchar(20) DEFAULT NULL, + `banned` varchar(5) NOT NULL DEFAULT '', + `allow_mail` tinyint(1) NOT NULL DEFAULT '1', + `info` text NOT NULL, + `signature` text NOT NULL, + `foto` varchar(30) NOT NULL DEFAULT '', + `fullname` varchar(100) NOT NULL DEFAULT '', + `land` varchar(100) NOT NULL DEFAULT '', + `icq` varchar(20) NOT NULL DEFAULT '', + `skype` varchar(32) NOT NULL, + `favorites` text NOT NULL, + `pm_all` smallint(5) NOT NULL DEFAULT '0', + `pm_unread` smallint(5) NOT NULL DEFAULT '0', + `allowed_ip` varchar(255) NOT NULL DEFAULT '', + `hash` varchar(32) NOT NULL DEFAULT '', + `logged_ip` varchar(16) NOT NULL DEFAULT '', + `restricted` tinyint(1) NOT NULL DEFAULT '0', + `restricted_days` smallint(4) NOT NULL DEFAULT '0', + `restricted_date` varchar(15) NOT NULL DEFAULT '', + `mail_lc` tinyint(1) NOT NULL DEFAULT '1', + `birthday` text NOT NULL, + `sex` int(1) NOT NULL, + `repa` mediumint(8) DEFAULT '0', + `repa_mod` varchar(20) NOT NULL DEFAULT '0|0', + `repa_off` tinyint(1) DEFAULT '0', + `r_freeze` varchar(5) NOT NULL, + `photo` varchar(30) NOT NULL, + `can_leech` tinyint(4) NOT NULL DEFAULT '1', + `wait_time` int(11) NOT NULL DEFAULT '0', + `torrent_pass_version` int(11) NOT NULL, + `downloaded` bigint(20) unsigned NOT NULL DEFAULT '0', + `uploaded` bigint(20) unsigned NOT NULL DEFAULT '0', + `forum_post` smallint(5) NOT NULL DEFAULT '0', + `forum_update` varchar(20) NOT NULL DEFAULT '0', + `forum_rank` varchar(40) NOT NULL DEFAULT '0', + `forum_pips` smallint(2) NOT NULL DEFAULT '0', + `forum_last` varchar(20) NOT NULL DEFAULT '0', + `forum_time` varchar(20) NOT NULL DEFAULT '0', + PRIMARY KEY (`user_id`), + UNIQUE KEY `name` (`name`), + UNIQUE KEY `email` (`email`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `cms_users_friends` +-- + +CREATE TABLE IF NOT EXISTS `cms_users_friends` ( + `user_id` mediumint(9) NOT NULL DEFAULT '0', + `friend_id` mediumint(9) NOT NULL DEFAULT '0', + `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `approve` tinyint(1) NOT NULL DEFAULT '0', + `porder` mediumint(2) NOT NULL DEFAULT '0', + KEY `approve` (`approve`), + KEY `user_id` (`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `xbt_config` +-- + +CREATE TABLE IF NOT EXISTS `xbt_config` ( + `name` varchar(255) NOT NULL, + `value` varchar(255) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=cp1251; + +-- +-- Äàìï äàííûõ òàáëèöû `xbt_config` +-- + +INSERT INTO `xbt_config` (`name`, `value`) VALUES +('announce_interval', '1800'), +('anonymous_announce', '1'), +('vip_group', '6'), +('anonymous_scrape', '0'), +('auto_register', '0'), +('clean_up_interval', '300'), +('column_files_completed', 'completed'), +('column_files_fid', 'id'), +('column_files_leechers', 'leechers'), +('column_files_seeders', 'seeders'), +('column_users_uid', 'user_id'), +('daemon', '1'), +('debug', '0'), +('full_scrape', '0'), +('freeday', '0'), +('gzip_scrape', '1'), +('listen_port', '2710'), +('log_access', '0'), +('log_announce', '0'), +('log_scrape', '0'), +('offline_message', ''), +('pid_file', '/var/run/xbt.pid'), +('query_log', ''), +('read_config_interval', '60'), +('read_db_interval', '60'), +('redirect_url', 'http://files-sib.net'), +('scrape_interval', '0'), +('table_files', 'cms_torrents'), +('table_users', 'cms_users'), +('write_db_interval', '15'), +('table_announce_log', 'xbt_announce_log'), +('cheaters', '0'), +('cheater_speed', '8388608'), +('freedaystart', '0'), +('freedaystop', '0'), +('torrent_pass_private_key', ''); + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `xbt_deny_from_hosts` +-- + +CREATE TABLE IF NOT EXISTS `xbt_deny_from_hosts` ( + `begin` int(10) unsigned NOT NULL, + `end` int(10) unsigned NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=cp1251; + +-- -------------------------------------------------------- + +-- +-- Ñòðóêòóðà òàáëèöû `xbt_files_users` +-- + +CREATE TABLE IF NOT EXISTS `xbt_files_users` ( + `fid` int(11) NOT NULL, + `uid` int(11) NOT NULL, + `active` tinyint(4) NOT NULL, + `announced` int(11) NOT NULL, + `completed` int(11) NOT NULL, + `downloaded` bigint(20) unsigned NOT NULL, + `left` bigint(20) unsigned NOT NULL, + `uploaded` bigint(20) unsigned NOT NULL, + `mtime` int(11) NOT NULL, + `timespent` int(11) NOT NULL, + `down_speed` int(11) NOT NULL, + `up_speed` int(11) NOT NULL, + `ipa` varchar(255) NOT NULL, + `port` int(11) NOT NULL, + `downloadedz` bigint(11) unsigned NOT NULL, + `uploadedz` bigint(11) unsigned NOT NULL, + UNIQUE KEY `fid` (`fid`,`uid`), + KEY `uid` (`uid`) +) ENGINE=MyISAM DEFAULT CHARSET=cp1251; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/system/ajax/addcomments.php b/system/ajax/addcomments.php new file mode 100644 index 0000000..892fa6f --- /dev/null +++ b/system/ajax/addcomments.php @@ -0,0 +1,75 @@ +get( "usergroup" ); +if( ! $user_group ) { + $user_group = array (); + $db->query( "SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC" ); + while ( $row = $db->get_row() ) {$user_group[$row['id']] = array (); + foreach ( $row as $key => $value ) {$user_group[$row['id']][$key] = stripslashes($value);} + } + $cache->set( "usergroup", $user_group ); + $db->free(); +} + +@include_once ROOT_DIR . '/language/' . $config['langs'] . '/website.lng'; +$config['charset'] = ($lang['charset'] != '') ? $lang['charset'] : $config['charset']; + +require_once SYSTEM_DIR . '/modules/sitelogin.php'; + +$tpl = new dle_template( ); +$tpl->dir = ROOT_DIR . '/templates/' . $_REQUEST['skin']; +define( 'TEMPLATE_DIR', $tpl->dir ); +$ajax_adds = true; + +$_POST['name'] = convert_unicode( $_POST['name'], $config['charset'] ); +$_POST['mail'] = convert_unicode( $_POST['mail'], $config['charset'] ); +$_POST['comments'] = convert_unicode( $_POST['comments'], $config['charset'] ); + +require_once SYSTEM_DIR . '/modules/addcomments.php'; + +if( $CN_HALT != TRUE ) { + include_once SYSTEM_DIR . '/classes/comments.class.php'; + $comments = new Comments( $db, 1, 1 ); + $comments->query = "SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.user_id, date, autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, rating, " . USERPREFIX . "_users.email, news_num, comm_num, user_group, signature, foto, repa, repa_mod, repa_off FROM " . PREFIX . "_comments LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_comments.user_id=" . USERPREFIX . "_users.user_id WHERE " . PREFIX . "_comments.post_id = '$post_id' order by id DESC"; + $comments->build_comments('ajax'); +} $clear_value = "form.comments.value = '';"; + +if( $CN_HALT ) { + $stop = implode( '

    ', $stop ); + $tpl->result['content'] = ""; +} else { + $tpl->result['content'] = "
    ".$tpl->result['content']."
    "; + $tpl->result['content'] .= << + var timeval = new Date().getTime(); + var form = document.getElementById('dle-comments-form'); + {$clear_value} + +HTML; +} + +$tpl->result['content'] = str_replace( '{THEME}', $config['http_home_url'] . 'templates/' . $_REQUEST['skin'], $tpl->result['content'] ); +@header( "Content-type: text/html; charset=" . $config['charset'] ); +echo $tpl->result['content']; +?> \ No newline at end of file diff --git a/system/ajax/bbcode.php b/system/ajax/bbcode.php new file mode 100644 index 0000000..5f5b3ad --- /dev/null +++ b/system/ajax/bbcode.php @@ -0,0 +1,134 @@ + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
     
    +
    +
    +
    + +HTML; + +} +else { + + $addform = "document.ajaxcomments".$id; + $startform = "dleeditcomments".$id; + + if ($user_group[$member_id['user_group']]['allow_url']) + { + $url_link = "
    "; + } + else {$url_link = "";} + + if ($user_group[$member_id['user_group']]['allow_image']) + { + $image_link = "
    "; + } + else $image_link = ""; + +$code = << +
    +
    +
    +
    +
    +
    +
    +
    +
    +{$url_link} +{$image_link} +
    +
    +
    +
    +
    +
    +
    + + +HTML; +} + + +$script_code = @file_get_contents(SYSTEM_DIR."/ajax/bbcodes.js"); +$script_code .= << + +HTML; + + +$bb_code = << +C2%YvAszFo=l`25N<*%bNSe@#t314y$uqT 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 = $config['http_home_url'];} + + function build_map() { + $map = "\n\n"; + $map .= $this->get_static(); + $map .= $this->get_categories(); + $map .= $this->get_news(); + $map .= $this->get_forum(); + $map .= ""; + return $map; + } + + function build_index( $count ) { + $map = "\n\n"; + $lastmod = date( "Y-m-d" ); + $map .= "\n{$this->home}uploads/sitemap1.xml\n{$lastmod}\n\n"; + for ($i =0; $i < $count; $i++) { + $t = $i+2; + $map .= "\n{$this->home}uploads/sitemap{$t}.xml\n{$lastmod}\n\n"; + } + $map .= ""; + return $map; + } + + function build_stat() { + $map = "\n\n"; + $map .= $this->get_static(); + $map .= $this->get_categories(); + $map .= ""; + return $map; + } + + function build_map_news( $n ) { + $map = "\n\n"; + $map .= $this->get_news( $n ); + $map .= ""; + return $map; + } + + function get_categories() { + global $db, $cache; + $cat_info = $cache->get( "category" ); + $this->priority = $this->cat_priority; + if( ! is_array( $cat_info ) ) { + $cat_info = array (); + $db->query( "SELECT * FROM " . PREFIX . "_category ORDER BY posi ASC" ); + while ( $row = $db->get_row() ) { + $cat_info[$row['id']] = array (); + foreach ( $row as $key => $value ) { + $cat_info[$row['id']][$key] = $value; + } + } + $cache->set( "category", $cat_info ); + $db->free(); + } + + $xml = ""; + $lastmod = date( "Y-m-d" ); + + foreach ( $cat_info as $cats ) { + $loc = $this->home . $this->get_url( $cats[id], $cat_info ) . "/"; + $xml .= $this->get_xml( $loc, $lastmod ); + } + return $xml; + } + + function get_news($page = false) { + global $db, $config; + + $xml = ""; + $this->priority = $this->news_priority; + + if ( $page ) { + $page = $page - 1; + $page = $page * 40000; + $this->limit = " LIMIT {$page},40000"; + } else { + if( $this->limit < 1 ) $this->limit = false; + if( $this->limit ) { + $this->limit = " LIMIT 0," . $this->limit; + } else { + $this->limit = ""; + } + } + + $thisdate = date( "Y-m-d H:i:s", (time() + ($config['date_adjust'] * 60)) ); + if( $config['no_date'] ) $where_date = " AND date < '" . $thisdate . "'"; + else $where_date = ""; + + $result = $db->query( "SELECT id, date, alt_name, editdate FROM " . PREFIX . "_post WHERE approve=1" . $where_date . " ORDER BY date DESC" . $this->limit ); + + while ( $row = $db->get_row( $result ) ) { + if ( $row['editdate'] ){$row['date'] = $row['editdate']; + } else {$row['date'] = strtotime($row['date']);} + $loc = $this->home . $row['id'] . "-" . $row['alt_name'] . ".html"; + $xml .= $this->get_xml( $loc, date( "Y-m-d", $row['date'] ) ); + } + return $xml; + } + + function get_static() { + global $db; + + $xml = ""; + $lastmod = date( "Y-m-d" ); + + $this->priority = $this->stat_priority; + + $result = $db->query( "SELECT name FROM " . PREFIX . "_static" ); + while ( $row = $db->get_row( $result ) ) { + if( $row['name'] == "dle-rules-page" ) continue; + $loc = $this->home . $row['name'] . ".html"; + $xml .= $this->get_xml( $loc, $lastmod ); + } + return $xml; + } + + function get_url($id, $cat_info) { + + if( ! $id ) return; + + $parent_id = $cat_info[$id]['parentid']; + + $url = $cat_info[$id]['alt_name']; + + while ( $parent_id ) { + + $url = $cat_info[$parent_id]['alt_name'] . "/" . $url; + + $parent_id = $cat_info[$parent_id]['parentid']; + + if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break; + + } + + return $url; + } + + function get_forum() { + global $db; + + $xml = ""; + $lastmod=date("Y-m-d"); + + $this->priority = $this->stat_priority; + $result = $db->query("SELECT tid FROM " . PREFIX . "_forum_topics"); + while($row = $db->get_row($result)) { + $loc = $this->home."forum/topic_".$row['tid']; + $xml .= $this->get_xml($loc, $lastmod); + } + return $xml; + } + + function get_xml($loc, $lastmod) { + + $loc = htmlspecialchars( $loc ); + + $xml = "\t\n"; + $xml .= "\t\t$loc\n"; + $xml .= "\t\t$lastmod\n"; + $xml .= "\t\t" . $this->priority . "\n"; + $xml .= "\t\n"; + + return $xml; + } + +} + +?> \ No newline at end of file diff --git a/system/classes/mail.class.php b/system/classes/mail.class.php new file mode 100644 index 0000000..9f76ef8 --- /dev/null +++ b/system/classes/mail.class.php @@ -0,0 +1,261 @@ +mail_method = $config['mail_metod']; + + $this->from = $config['admin_mail']; + $this->charset = $config['charset']; + $this->site_name = $config['short_title']; + + $this->smtp_host = $config['smtp_host']; + $this->smtp_port = intval( $config['smtp_port'] ); + $this->smtp_user = $config['smtp_user']; + $this->smtp_pass = $config['smtp_pass']; + + $this->html_mail = $is_html; + } + + function compile_headers() { + + $this->subject = "=?" . $this->charset . "?b?" . base64_encode( $this->subject ) . "?="; + $from = "=?" . $this->charset . "?b?" . base64_encode( $this->site_name ) . "?="; + + if( $this->html_mail ) { + $this->mail_headers .= "MIME-Version: 1.0" . $this->eol; + $this->mail_headers .= "Content-type: text/html; charset=\"" . $this->charset . "\"" . $this->eol; + } else { + $this->mail_headers .= "MIME-Version: 1.0" . $this->eol; + $this->mail_headers .= "Content-type: text/plain; charset=\"" . $this->charset . "\"" . $this->eol; + } + + if( $this->mail_method != 'smtp' ) { + + if( count( $this->bcc ) ) { + $this->mail_headers .= "Bcc: " . implode( ",", $this->bcc ) . $this->eol; + } + + } else { + + $this->mail_headers .= "Subject: " . $this->subject . $this->eol; + + if( $this->to ) { + + $this->mail_headers .= "To: " . $this->to . $this->eol; + } + + } + + $this->mail_headers .= "From: \"" . $from . "\" <" . $this->from . ">" . $this->eol; + + $this->mail_headers .= "Return-Path: <" . $this->from . ">" . $this->eol; + $this->mail_headers .= "X-Priority: 3" . $this->eol; + $this->mail_headers .= "X-Mailer: Files-Sib PHP" . $this->eol; + + } + + function send($to, $subject, $message) { + $this->to = preg_replace( "/[ \t]+/", "", $to ); + $this->from = preg_replace( "/[ \t]+/", "", $this->from ); + + $this->to = preg_replace( "/,,/", ",", $this->to ); + $this->from = preg_replace( "/,,/", ",", $this->from ); + + if( $this->mail_method != 'smtp' ) + $this->to = preg_replace( "#\#\[\]'\"\(\):;/\$!£%\^&\*\{\}#", "", $this->to ); + else + $this->to = '<' . preg_replace( "#\#\[\]'\"\(\):;/\$!£%\^&\*\{\}#", "", $this->to ) . '>'; + + + $this->from = preg_replace( "#\#\[\]'\"\(\):;/\$!£%\^&\*\{\}#", "", $this->from ); + + $this->subject = $subject; + $this->message = $message; + + $this->message = str_replace( "\r", "", $this->message ); + + $this->compile_headers(); + + if( ($this->to) and ($this->from) and ($this->subject) ) { + if( $this->mail_method != 'smtp' ) { + if( ! @mail( $this->to, $this->subject, $this->message, $this->mail_headers ) ) { + $this->smtp_msg = "PHP Mail Error."; + $this->send_error = true; + } + + } else { + $this->smtp_send(); + } + + } + + $this->mail_headers = ""; + + } + + function smtp_get_line() { + $this->smtp_msg = ""; + + while ( $line = fgets( $this->smtp_fp, 515 ) ) { + $this->smtp_msg .= $line; + + if( substr( $line, 3, 1 ) == " " ) { + break; + } + } + } + + function smtp_send() { + $this->smtp_fp = @fsockopen( $this->smtp_host, intval( $this->smtp_port ), $errno, $errstr, 30 ); + + if( ! $this->smtp_fp ) { + $this->smtp_error( "Could not open a socket to the SMTP server" ); + return; + } + + $this->smtp_get_line(); + + $this->smtp_code = substr( $this->smtp_msg, 0, 3 ); + + if( $this->smtp_code == 220 ) { + $data = $this->smtp_crlf_encode( $this->mail_headers . "\n" . $this->message ); + + $this->smtp_send_cmd( "HELO " . $this->smtp_host ); + + if( $this->smtp_code != 250 ) { + $this->smtp_error( "HELO" ); + return; + } + + if( $this->smtp_user and $this->smtp_pass ) { + $this->smtp_send_cmd( "AUTH LOGIN" ); + + if( $this->smtp_code == 334 ) { + $this->smtp_send_cmd( base64_encode( $this->smtp_user ) ); + + if( $this->smtp_code != 334 ) { + $this->smtp_error( "Username not accepted from the server" ); + return; + } + + $this->smtp_send_cmd( base64_encode( $this->smtp_pass ) ); + + if( $this->smtp_code != 235 ) { + $this->smtp_error( "Password not accepted from the SMTP server" ); + return; + } + } else { + $this->smtp_error( "This SMTP server does not support authorisation" ); + return; + } + } + + $this->smtp_send_cmd( "MAIL FROM:" . $this->from ); + + if( $this->smtp_code != 250 ) { + $this->smtp_error( "Incorrect FROM address: $this->from" ); + return; + } + + $to_arry = array ($this->to ); + + if( count( $this->bcc ) ) { + foreach ( $this->bcc as $bcc ) { + if( preg_match( "/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)$/", str_replace( " ", "", $bcc ) ) ) { + $to_arry[] = $bcc; + } + } + } + + foreach ( $to_arry as $to_email ) { + $this->smtp_send_cmd( "RCPT TO:" . $to_email ); + + if( $this->smtp_code != 250 ) { + $this->smtp_error( "Incorrect email address: $to_email" ); + return; + break; + } + } + + $this->smtp_send_cmd( "DATA" ); + + if( $this->smtp_code == 354 ) { + fputs( $this->smtp_fp, $data . "\r\n" ); + } else { + $this->smtp_error( "Error on write to SMTP server" ); + return; + } + + $this->smtp_send_cmd( "." ); + + if( $this->smtp_code != 250 ) { + $this->smtp_error(); + return; + } + + $this->smtp_send_cmd( "quit" ); + + if( $this->smtp_code != 221 ) { + $this->smtp_error(); + return; + } + + @fclose( $this->smtp_fp ); + } else { + $this->smtp_error( "SMTP service unaviable" ); + return; + } + } + + function smtp_send_cmd($cmd) { + $this->smtp_msg = ""; + $this->smtp_code = ""; + + fputs( $this->smtp_fp, $cmd . "\r\n" ); + + $this->smtp_get_line(); + + $this->smtp_code = substr( $this->smtp_msg, 0, 3 ); + + return $this->smtp_code == "" ? FALSE : TRUE; + } + + function smtp_error($err = "") { + $this->smtp_msg = $err; + $this->send_error = true; + return; + } + + function smtp_crlf_encode($data) { + $data .= "\n"; + $data = str_replace( "\n", "\r\n", str_replace( "\r", "", $data ) ); + $data = str_replace( "\n.\r\n", "\n. \r\n", $data ); + + return $data; + } +} +?> \ No newline at end of file diff --git a/system/classes/mysql.php b/system/classes/mysql.php new file mode 100644 index 0000000..73bed7c --- /dev/null +++ b/system/classes/mysql.php @@ -0,0 +1,215 @@ +mysqli = true; + } + + function connect($db_user, $db_pass, $db_name, $db_location = 'localhost'){ + if ($this->mysqli) $this->db_id = @mysqli_connect ($db_location, $db_user, $db_pass, $db_name); + else $this->db_id = @mysql_connect ($db_location, $db_user, $db_pass); + + if (!$this->mysqli and !@mysql_select_db ($db_name, $this->db_id)) { + $this->display_error (mysql_error (), mysql_errno ()); + } + + if(!$this->db_id) { + if ($this->mysqli) $this->display_error (mysqli_connect_error (), 1); + else $this->display_error (mysql_error (), mysql_errno ()); + } + + if ($this->mysqli) $this->mysql_version = mysqli_get_server_info ($this->db_id); + else $this->mysql_version = mysql_get_server_info (); + + if(!defined('COLLATE')){define ("COLLATE", "cp1251");} + + if($this->mysqli) mysqli_query($this->db_id, "SET NAMES '" . COLLATE . "'"); + elseif (version_compare ($this->mysql_version, '4.1', '>=')) mysql_query("/*!40101 SET NAMES '" . COLLATE . "' */"); + + return true; + } + + function query($query) + { + $time_before = $this->get_real_time(); + + if(!$this->db_id) $this->connect(DBUSER, DBPASS, DBNAME, DBHOST); + + if($this->mysqli) $this->query_id = mysqli_query ($this->db_id, $query); + else $this->query_id = mysql_query ($query, $this->db_id); + + $this->query_num++; + + if (!$this->query_id) { + $this->mysql_error = mysqli_error ($this->db_id); + $this->mysql_error_num = mysqli_errno ($this->db_id); + $this->display_error ($this->mysql_error, $this->mysql_error_num, $query); + } + + $this->MySQL_time_taken += $this->get_real_time() - $time_before; + + return $this->query_id; + } + + function get_row($query_id = false) + { + if (!$query_id) $query_id = $this->query_id; + + if ($this->mysqli) $output = mysqli_fetch_assoc ($query_id); + else $output = mysql_fetch_assoc ($query_id); + + return $output; + } + + function get_affected_rows() + { + if($this->mysqli) return mysqli_affected_rows($this->db_id); + else return mysql_affected_rows($this->db_id); + } + + function get_array($query_id = false) + { + if (!$query_id) $query_id = $this->query_id; + + if($this->mysqli) return mysqli_fetch_array($query_id); + else return mysql_fetch_array($query_id); + } + + function super_query($query, $multi = false) + { + if(!$multi) { + $this->query($query); + $data = $this->get_row(); + $this->free(); + return $data; + } else { + $this->query($query); + $rows = array(); + while($row = $this->get_row()) {$rows[] = $row;} + $this->free(); + return $rows; + }} + + function num_rows($query_id = false) + { + if (!$query_id) $query_id = $this->query_id; + + if($this->mysqli) return mysqli_num_rows($query_id); + else return mysql_num_rows($query_id); + } + + function insert_id() + { + if($this->mysqli) return mysqli_insert_id($this->db_id); + else return mysql_insert_id($this->db_id); + } + + function get_result_fields($query_id = false) { + + if (!$query_id) $query_id = $this->query_id; + + if ($this->mysqli) { + while ($field = mysqli_fetch_field ($query_id)) + $fields[] = $field; + } else { + while ($field = mysql_fetch_field ($query_id)) + $fields[] = $field; + } + + return $fields; + } + + function safesql( $source ) + { + if(!$this->db_id) $this->connect(DBUSER, DBPASS, DBNAME, DBHOST); + + if ($this->mysqli and $this->db_id) $source = mysqli_real_escape_string ($this->db_id, $source); + elseif (!$this->mysqli and $this->db_id) $source = mysql_real_escape_string ($source, $this->db_id); + else $source = addslashes($source); + + return $source; + } + + function free( $query_id = false ) + { + if (!$query_id) $query_id = $this->query_id; + + if($this->mysqli)@mysqli_free_result($query_id); + else @mysql_free_result($query_id); + } + + function close() + { + if ($this->mysqli) @mysqli_close ($this->db_id); + else @mysql_close ($this->db_id); + } + + function get_real_time() + { + list($seconds, $microSeconds) = explode(' ', microtime()); + return ((float)$seconds + (float)$microSeconds); + } + + function display_error($error, $error_num, $query = false){ + if($this->show_error){ + if(!$query) { + // Safify query + $query = preg_replace("/([0-9a-f]){32}/", "********************************", $query); // Hides all hashes + $query_str = "$query"; + } + + echo ' + + + + MySQL Fatal Error + + + + + MySQL Error! +
    ------------------------
    +
    + + The Error returned was: +
    + '.$error.' + +

    + Error Number: +
    + '.$error_num.' +
    +
    + +
    + + + '; + + exit(); + } else return false; + } + +} +?> \ No newline at end of file diff --git a/system/classes/navigation.class.php b/system/classes/navigation.class.php new file mode 100644 index 0000000..a93320d --- /dev/null +++ b/system/classes/navigation.class.php @@ -0,0 +1,125 @@ +URL ); + if( $return == "url" ) return $link; + if( $title ) $page = $title; + return "{$page} "; + } + + // Ãåíåðèðóåò ëèñò ññûëîê + function LPage( $start, $end ){ + + while( $start < $end ) + { + if( $start == $this->Page ) + $navigation .= "".$start."\n"; + else + $navigation .= $this->CNPage( $start ); + $start++; + } + + return $navigation; + } + + // Ôîðìèðîâàíèå íàâèãàöèè ïðîèñõîäèò â ýòîé ôóíêöèè + function BuildNavigation(){ + global $tpl; + + // Åñëè íîëü ñòðàíèö, òî íàâèãàöèþ íå ôîðìèðóåì + if( $this->Total < 2 ) return; + + // Îò÷èùàåì ñòàðóþ ñãåíåðèðîâàííóþ íàâèãàöèþ + //$tpl->result[ $this->Compile ] = ""; + + // ×òîáû íå áûëî íåäîðàçóìåíèé + if( $this->Page < 1 ) $this->Page = 1; + if( $this->Page > $this->Total ) $this->Page = $this->Total; + + $first = $this->Page - 4; // Ñêîëüêî ñòðàíèö âûâîäèòñÿ ñëåâà îò àêòèâíîé + $last = $this->Page + 5; // Ñêîëüêî ñòðàíèö âûâîäèòñÿ ñïðàâà îò àêòèâíîé + $PPage = $this->CNPage( $this->Page - 1 , "", "url" ); // Ïðåäûäóùàÿ ñòðàíèöà + $NPage = $this->CNPage( $this->Page + 1 , "", "url" ); // Ñëåäóþùàÿ ñòðàíèöà + $PageMin = 8; // Ìèíèìàëüíî çíà÷åíèå äëÿ íà÷àëà ïàãèíàöèè + $PageMax = $this->Total - 8; // Ìàêñèìàëüíî çíà÷åíèå äëÿ íà÷àëà ïàãèíàöèè + $divider = "... "; // Íà ÷òî çàìåíÿåì ïðîáåëû + + // Ïîäãðóçêà øàáëîíà + $tpl->load_template( $this->Tpl ); + + // Ïðåäûäóùàÿ ñòðàíèöà + if( $this->Page > 1 ) + $tpl->set_block( "'\[prev-link\](.*?)\[/prev-link\]'si", "\\1" ); + else + $tpl->set_block( "'\[prev-link\](.*?)\[/prev-link\]'si", "\\1" ); + + // Ñëóäåþùàÿ ñòðàíèöà + if( $this->Page < $this->Total ) + $tpl->set_block( "'\[next-link\](.*?)\[/next-link\]'si", "\\1" ); + else + $tpl->set_block( "'\[next-link\](.*?)\[/next-link\]'si", "\\1" ); + + // Åñëè ñòðàíèö ìåíüøå ÷åì 10 + if( $this->Total < 10 ) + { + $navigation = $this->LPage( 1, $this->Total + 1 ); + $navigation = $navigation; + } + else + { + // Ïî ñåðåäèíå + if( ( $this->Page >= $PageMin - 2 ) and ( $this->Page <= $PageMax + 2 ) ) + { + $navigation = $this->LPage( $first, $last ); + $navigation = $this->CNPage( "1" ).$divider.$navigation.$divider.$this->CNPage( $this->Total ); + } + // Åñëè ñòðàíèöà íå áîëüøå 8 - îé + elseif( $this->Page < $PageMin ) + { + $navigation = $this->LPage( 1, $PageMin + 1 ); + $navigation = $navigation.$divider.$this->CNPage( $this->Total ); + } + // Åñëè ñòðàíèöà áîëüøå ïðåä 8 - ìè ïîñëåäíåé + elseif( $this->Page > $PageMax ) + { + $navigation = $this->LPage( $PageMax, $this->Total + 1 ); + $navigation = $this->CNPage( "1" ).$divider.$navigation; + } + } + + // Íàçíà÷åíèå òåãîâ äëÿ øàáëîíà + $tpl->set( "{pages}", $navigation ); + $tpl->set( "{page}", $this->Page ); + $tpl->set( "{count_page}", $this->Total ); + + if( $this->Total < 2 ) + { + $tpl->set_block( "'\[page\](.*?)\[/page\]'si", "" ); + } + else + { + $tpl->set( "[page]", "" ); + $tpl->set( "[/page]", "" ); + } + + // Ôîðìèðîâàíèå øàáëîíà + $tpl->compile( $this->Compile ); + + // Î÷èñòêà êëàññà øàáëîíîâ îò íàâèãàöèè + $tpl->clear(); + + // Î÷èñòêà íàâèãàöèè + unset( $navigation ); + } +} + +?> \ No newline at end of file diff --git a/system/classes/parse.class.php b/system/classes/parse.class.php new file mode 100644 index 0000000..9d0d337 --- /dev/null +++ b/system/classes/parse.class.php @@ -0,0 +1,1028 @@ + '8', 2 => '10', 3 => '12', 4 => '14', 5 => '18', 6 => '24', 7 => '36' ); + + function ParseFilter($tagsArray = array(), $attrArray = array(), $tagsMethod = 0, $attrMethod = 0, $xssAuto = 1) { + for($i = 0; $i < count( $tagsArray ); $i ++) + $tagsArray[$i] = strtolower( $tagsArray[$i] ); + for($i = 0; $i < count( $attrArray ); $i ++) + $attrArray[$i] = strtolower( $attrArray[$i] ); + $this->tagsArray = ( array ) $tagsArray; + $this->attrArray = ( array ) $attrArray; + $this->tagsMethod = $tagsMethod; + $this->attrMethod = $attrMethod; + $this->xssAuto = $xssAuto; + } + + function process($source) { + if( function_exists( "get_magic_quotes_gpc" ) && get_magic_quotes_gpc() ) $source = stripslashes( $source ); + $source = $this->remove( $this->decode( $source ) ); + if( $this->code_count ) { + foreach ( $this->code_text as $key_find => $key_replace ) { + $find[] = $key_find; + $replace[] = $key_replace; + } + $source = str_replace( $find, $replace, $source ); + } + + $this->code_count = 0; + $this->code_text = array (); + $source = preg_replace( "#\{include#i", "{include", $source ); + + $source = preg_replace( "#", "?>", $source ); + + $source = addslashes( $source ); + return $source; + + } + + function remove($source) { + $loopCounter = 0; + while ( $source != $this->filterTags( $source ) ) { + $source = $this->filterTags( $source ); + $loopCounter ++; + } + return $source; + } + + function filterTags($source) { + $preTag = NULL; + $postTag = $source; + $tagOpen_start = strpos( $source, '<' ); + while ( $tagOpen_start !== FALSE ) { + $preTag .= substr( $postTag, 0, $tagOpen_start ); + $postTag = substr( $postTag, $tagOpen_start ); + $fromTagOpen = substr( $postTag, 1 ); + $tagOpen_end = strpos( $fromTagOpen, '>' ); + if( $tagOpen_end === false ) break; + $tagOpen_nested = strpos( $fromTagOpen, '<' ); + if( ($tagOpen_nested !== false) && ($tagOpen_nested < $tagOpen_end) ) { + $preTag .= substr( $postTag, 0, ($tagOpen_nested + 1) ); + $postTag = substr( $postTag, ($tagOpen_nested + 1) ); + $tagOpen_start = strpos( $postTag, '<' ); + continue; + } + $tagOpen_nested = (strpos( $fromTagOpen, '<' ) + $tagOpen_start + 1); + $currentTag = substr( $fromTagOpen, 0, $tagOpen_end ); + $tagLength = strlen( $currentTag ); + if( ! $tagOpen_end ) { + $preTag .= $postTag; + $tagOpen_start = strpos( $postTag, '<' ); + } + $tagLeft = $currentTag; + $attrSet = array (); + $currentSpace = strpos( $tagLeft, ' ' ); + if( substr( $currentTag, 0, 1 ) == "/" ) { + $isCloseTag = TRUE; + list ( $tagName ) = explode( ' ', $currentTag ); + $tagName = substr( $tagName, 1 ); + } else { + $isCloseTag = FALSE; + list ( $tagName ) = explode( ' ', $currentTag ); + } + if( (! preg_match( "/^[a-z][a-z0-9]*$/i", $tagName )) || (! $tagName) || ((in_array( strtolower( $tagName ), $this->tagBlacklist )) && ($this->xssAuto)) ) { + $postTag = substr( $postTag, ($tagLength + 2) ); + $tagOpen_start = strpos( $postTag, '<' ); + continue; + } + while ( $currentSpace !== FALSE ) { + $fromSpace = substr( $tagLeft, ($currentSpace + 1) ); + $nextSpace = strpos( $fromSpace, ' ' ); + $openQuotes = strpos( $fromSpace, '"' ); + $closeQuotes = strpos( substr( $fromSpace, ($openQuotes + 1) ), '"' ) + $openQuotes + 1; + if( strpos( $fromSpace, '=' ) !== FALSE ) { + if( ($openQuotes !== FALSE) && (strpos( substr( $fromSpace, ($openQuotes + 1) ), '"' ) !== FALSE) ) $attr = substr( $fromSpace, 0, ($closeQuotes + 1) ); + else $attr = substr( $fromSpace, 0, $nextSpace ); + } else + $attr = substr( $fromSpace, 0, $nextSpace ); + if( ! $attr ) $attr = $fromSpace; + $attrSet[] = $attr; + $tagLeft = substr( $fromSpace, strlen( $attr ) ); + $currentSpace = strpos( $tagLeft, ' ' ); + } + $tagFound = in_array( strtolower( $tagName ), $this->tagsArray ); + if( (! $tagFound && $this->tagsMethod) || ($tagFound && ! $this->tagsMethod) ) { + if( ! $isCloseTag ) { + $attrSet = $this->filterAttr( $attrSet, strtolower( $tagName ) ); + $preTag .= '<' . $tagName; + for($i = 0; $i < count( $attrSet ); $i ++) + $preTag .= ' ' . $attrSet[$i]; + if( strpos( $fromTagOpen, "'; + else $preTag .= ' />'; + } else + $preTag .= ''; + } + $postTag = substr( $postTag, ($tagLength + 2) ); + $tagOpen_start = strpos( $postTag, '<' ); + } + $preTag .= $postTag; + return $preTag; + } + + function filterAttr($attrSet, $tagName) { + + global $config; + + $newSet = array (); + for($i = 0; $i < count( $attrSet ); $i ++) { + if( ! $attrSet[$i] ) continue; + + $attrSet[$i] = trim( $attrSet[$i] ); + + $exp = strpos( $attrSet[$i], '=' ); + if( $exp === false ) $attrSubSet = Array ($attrSet[$i] ); + else { + $attrSubSet = Array (); + $attrSubSet[] = substr( $attrSet[$i], 0, $exp ); + $attrSubSet[] = substr( $attrSet[$i], $exp + 1 ); + } + $attrSubSet[1] = stripslashes( $attrSubSet[1] ); + + list ( $attrSubSet[0] ) = explode( ' ', $attrSubSet[0] ); + + $attrSubSet[0] = strtolower( $attrSubSet[0] ); + + if( (! preg_match( "/^[a-z]*$/i", $attrSubSet[0] )) || (($this->xssAuto) && ((in_array( $attrSubSet[0], $this->attrBlacklist )) || (substr( $attrSubSet[0], 0, 2 ) == 'on'))) ) continue; + if( $attrSubSet[1] ) { + $attrSubSet[1] = str_replace( '&#', '', $attrSubSet[1] ); + $attrSubSet[1] = preg_replace( '/\s+/', ' ', $attrSubSet[1] ); + $attrSubSet[1] = str_replace( '"', '', $attrSubSet[1] ); + if( (substr( $attrSubSet[1], 0, 1 ) == "'") && (substr( $attrSubSet[1], (strlen( $attrSubSet[1] ) - 1), 1 ) == "'") ) $attrSubSet[1] = substr( $attrSubSet[1], 1, (strlen( $attrSubSet[1] ) - 2) ); + } + + if( ((strpos( strtolower( $attrSubSet[1] ), 'expression' ) !== false) && ($attrSubSet[0] == 'style')) || (strpos( strtolower( $attrSubSet[1] ), 'javascript:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'behaviour:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'vbscript:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'mocha:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'data:' ) !== false and $attrSubSet[0] == "href") || (strpos( strtolower( $attrSubSet[1] ), 'data:' ) !== false and $attrSubSet[0] == "src") || ($attrSubSet[0] == "href" and strpos( strtolower( $attrSubSet[1] ), $config['admin_path'] ) !== false and preg_match( "/[?&%<\[\]]/", $attrSubSet[1] )) || (strpos( strtolower( $attrSubSet[1] ), 'livescript:' ) !== false) ) continue; + + $attrFound = in_array( $attrSubSet[0], $this->attrArray ); + if( (! $attrFound && $this->attrMethod) || ($attrFound && ! $this->attrMethod) ) { + if( $attrSubSet[1] ) $newSet[] = $attrSubSet[0] . '="' . $attrSubSet[1] . '"'; + elseif( $attrSubSet[1] == "0" ) $newSet[] = $attrSubSet[0] . '="0"'; + else $newSet[] = $attrSubSet[0] . '=""'; + } + } + ; + return $newSet; + } + + function decode($source) { + global $config; + + if( $this->allow_code ) + $source = preg_replace_callback( "#\[code\](.+?)\[/code\]#is", array( &$this, 'code_tag'), $source ); + + if( $this->safe_mode AND !$this->wysiwyg ) { + + $source = htmlspecialchars( $source, ENT_QUOTES, $config['charset'] ); + $source = str_replace( '&', '&', $source ); + + } else { + + $source = str_replace( "<>", "<>", str_replace( ">>", ">>", str_replace( "<<", "<<", $source ) ) ); + $source = str_replace( "\"$smile\""; + } + + $source = preg_replace( $find, $replace, $source ); + $source = preg_replace( "#allow_php ) { + $source = str_replace( "", "?>", $source ); + } + + //if ($config['parse_links']) { + // $source = preg_replace("#(^|\s|>)((http|https|ftp)://\w+[^\s\[\]\<]+)#i", '\\1[leech]\\2[/leech]', $source); + //} + + $count_start = substr_count ($source, "[quote"); + $count_end = substr_count ($source, "[/quote]"); + if ($count_start AND $count_start == $count_end) { + $source = preg_replace( "#\[quote\]#i", "
    ", $source ); + $source = preg_replace( "#\[quote=(.+?)\]#i", "
    {$lang['i_quote']} \\1
    ", $source ); + $source = preg_replace( "#\[/quote\]#i", "
    ", $source ); + } + + $count_start = substr_count ($source, "[screens"); + $count_end = substr_count ($source, "[/screens]"); + if ($count_start AND $count_start == $count_end) { + $source = preg_replace( "#\[screens\]#i", "
    ", $source ); + $source = preg_replace( "#\[/screens\]#i", "
    ", $source ); + } + + $count_start = substr_count ($source, "[spoiler"); + $count_end = substr_count ($source, "[/spoiler]"); + if ($count_start AND $count_start == $count_end) { + $source = preg_replace( "#\[spoiler\]#ie", "\$this->build_spoiler('')", $source ); + $source = preg_replace( "#\[spoiler=(.+?)\]#ie", "\$this->build_spoiler('\\1')", $source ); + $source = preg_replace( "#\[/spoiler\]#i", "
    ", $source ); + } + + $source = preg_replace( "#\[code\](.+?)\[/code\]#is", "
    \\1
    ", $source ); + $source = preg_replace( "#\[(left|right|center)\](.+?)\[/\\1\]#is", "
    \\2
    ", $source ); + + $source = preg_replace( "#\[b\](.+?)\[/b\]#is", "\\1", $source ); + $source = preg_replace( "#\[i\](.+?)\[/i\]#is", "\\1", $source ); + $source = preg_replace( "#\[u\](.+?)\[/u\]#is", "\\1", $source ); + $source = preg_replace( "#\[s\](.+?)\[/s\]#is", "\\1", $source ); + + $source = preg_replace( "#\[kp=(.+?)\]#is", "", $source ); + $source = preg_replace( "#\[game=(.+?)\]#is", "", $source ); + + if( $this->allow_url ) { + $source = preg_replace( "#\[url\](\S.+?)\[/url\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\1'))", $source ); + $source = preg_replace( "#\[url\s*=\s*\"\;\s*(\S+?)\s*\"\;\s*\](.*?)\[\/url\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2'))", $source ); + $source = preg_replace( "#\[url\s*=\s*(\S.+?)\s*\](.*?)\[\/url\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2'))", $source ); + $source = preg_replace( "#\[leech\](\S.+?)\[/leech\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\1', 'leech' => '1'))", $source ); + $source = preg_replace( "#\[leech\s*=\s*\"\;\s*(\S+?)\s*\"\;\s*\](.*?)\[\/leech\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2', 'leech' => '1'))", $source ); + $source = preg_replace( "#\[leech\s*=\s*(\S.+?)\s*\](.*?)\[\/leech\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2', 'leech' => '1'))", $source ); + } else { + if( stristr( $source, "[url" ) !== false ) $this->not_allowed_tags = true; + if( stristr( $source, "[leech" ) !== false ) $this->not_allowed_tags = true; + if( stristr( $source, "<a" ) !== false ) $this->not_allowed_tags = true; + } + + if( $this->allow_image ) { + $source = preg_replace( "#\[img\](.+?)\[/img\]#ie", "\$this->build_image('\\1')", $source ); + $source = preg_replace( "#\[img=(.+?)\](.+?)\[/img\]#ie", "\$this->build_image('\\2', '\\1')", $source ); + } else { + if( stristr( $source, "[img" ) !== false ) $this->not_allowed_tags = true; + if( stristr( $source, "<img" ) !== false ) $this->not_allowed_tags = true; + } + + $source = preg_replace( "#\[email\s*=\s*\"\;([\.\w\-]+\@[\.\w\-]+\.[\.\w\-]+)\s*\"\;\s*\](.*?)\[\/email\]#ie", "\$this->build_email(array('html' => '\\1', 'show' => '\\2'))", $source ); + $source = preg_replace( "#\[email\s*=\s*([\.\w\-]+\@[\.\w\-]+\.[\w\-]+)\s*\](.*?)\[\/email\]#ie", "\$this->build_email(array('html' => '\\1', 'show' => '\\2'))", $source ); + + if( ! $this->safe_mode ) { + $source = preg_replace( "'\[thumb\]([^\[]*)([/\\\\])(.*?)\[/thumb\]'ie", "\$this->build_thumb('\$1\$2\$3', '\$1\$2thumbs\$2\$3')", $source ); + $source = preg_replace( "'\[thumb=(.*?)\]([^\[]*)([/\\\\])(.*?)\[/thumb\]'ie", "\$this->build_thumb('\$2\$3\$4', '\$2\$3thumbs\$3\$4', '\$1')", $source ); + $source = preg_replace( "#\[video\s*=\s*(\S.+?)\s*\]#ie", "\$this->build_video('\\1')", $source ); + $source = preg_replace( "#\[audio\s*=\s*(\S.+?)\s*\]#ie", "\$this->build_audio('\\1')", $source ); + $source = preg_replace( "#\[flash=([^\]]+)\](.+?)\[/flash\]#ies", "\$this->build_flash('\\1', '\\2')", $source ); + $source = preg_replace( "#\[media=([^\]]+)\]#ies", "\$this->build_media('\\1')", $source ); + + $source = preg_replace( "#\[size=([^\]]+)\]#ie", "\$this->font_change(array('tag'=>'size','1'=>'\\1'))", $source ); + $source = preg_replace( "#\[font=([^\]]+)\]#ie", "\$this->font_change(array('tag'=>'font','1'=>'\\1'))", $source ); + $source = str_replace("[/size]", "", $source); + $source = str_replace("[/font]", "", $source); + } + + $source = preg_replace( "#\[color=([^\]]+)\]#ie", "\$this->font_change(array('tag'=>'color','1'=>'\\1'))", $source ); + $source = str_replace("[/color]", "", $source); + + $source = str_replace( "__CODENR__", "\r", $source ); + $source = str_replace( "__CODENN__", "\n", $source ); + + if( $this->filter_mode ) $source = $this->word_filter( $source ); + + return trim( $source ); + + } + + function decodeBBCodes($txt, $use_html = TRUE, $wysiwig = "no") { + global $config; + + $find = array (); + $result = array (); + $txt = stripslashes( $txt ); + if( $this->filter_mode ) $txt = $this->word_filter( $txt, false ); + + $txt = preg_replace( "#(.+?)#ie", "\$this->decode_thumb('\\1')", $txt ); + $txt = preg_replace( "#(.+?)#ie", "\$this->decode_newthumb('\\1')", $txt ); + + $txt = preg_replace( "#(.+?)#", '[screens]', $txt ); + $txt = preg_replace( "#(.+?)#", '[/screens]', $txt ); + + $txt = preg_replace( "#(.+?)#", '[quote]', $txt ); + $txt = preg_replace( "#(.+?)#", "[quote=\\1]", $txt ); + $txt = preg_replace( "#(.+?)#", '[/quote]', $txt ); + $txt = preg_replace( "#(.+?)#", '[code]', $txt ); + $txt = preg_replace( "#(.+?)#", '[/code]', $txt ); + $txt = preg_replace( "#(.+?)#ie", "\$this->decode_leech('\\1\\2', '\\3')", $txt ); + $txt = preg_replace( "#(.+?)src=\"(.+?)\"(.+?)#is", '[video=\\2]', $txt ); + $txt = preg_replace( "#(.+?)#is", '[video=\\1]', $txt ); + $txt = preg_replace( "#(.+?)#is", '[audio=\\1]', $txt ); + $txt = preg_replace( "#(.+?)#ies", "\$this->decode_dle_img('\\1')", $txt ); + $txt = preg_replace( "#(.+?)#is", '[media=\\1]', $txt ); + $txt = preg_replace( "#(.+?)#is", '[media=\\1]', $txt ); + $txt = preg_replace( "#(.+?)#ies", "\$this->decode_flash('\\1')", $txt ); + $txt = preg_replace( "#(.+?)#is", '[spoiler]', $txt ); + $txt = preg_replace( "#(.+?)#is", '[spoiler=\\1]', $txt ); + $txt = str_replace( "", '[/spoiler]', $txt ); + + $txt = preg_replace( "#(.+?)#is", "[kp=\\1]", $txt ); + $txt = preg_replace( "#(.+?)#is", "[game=\\1]", $txt ); + $txt = preg_replace( "#(.+?)#is", "[i]\\1[/i]", $txt ); + $txt = preg_replace( "#(.+?)#is", "[b]\\1[/b]", $txt ); + $txt = preg_replace( "#(.+?)#is", "[s]\\1[/s]", $txt ); + $txt = preg_replace( "#(.+?)#is", "[u]\\1[/u]", $txt ); + $txt = preg_replace( "#
    (.+?)
    #is", "[center]\\1[/center]", $txt ); + $txt = preg_replace( "##ie", "\$this->decode_img('\\1', '\\2')", $txt ); + + $txt = preg_replace( "#(.+?)#", "[email=\\1]\\2[/email]", $txt ); + $txt = preg_replace( "#(.+?)#ie", "\$this->decode_url('\\1\\2', '\\3')", $txt ); + $txt = preg_replace( "#(.+?)#ie", "\$this->decode_url('\\1\\2', '\\3')", $txt ); + + $txt = preg_replace( "#(.+?)#", "[size=\\1]", $txt ); + $txt = preg_replace( "#(.+?)#", "[color=\\1]", $txt ); + $txt = preg_replace( "#(.+?)#", "[font=\\1]", $txt ); + + $txt = str_replace( "", "[/size]", $txt ); + $txt = str_replace( "", "[/color]", $txt ); + $txt = str_replace( "", "[/font]", $txt ); + + while ( preg_match( "#
    (.+?)
    #is", $txt ) ) { + $txt = preg_replace( "#
    (.+?)
    #is", "[left]\\1[/left]", $txt ); + } + while ( preg_match( "#
    (.+?)
    #is", $txt ) ) { + $txt = preg_replace( "#
    (.+?)
    #is", "[right]\\1[/right]", $txt ); + } + while ( preg_match( "#
    (.+?)
    #is", $txt ) ) { + $txt = preg_replace( "#
    (.+?)
    #is", "[center]\\1[/center]", $txt ); + } + + $txt = preg_replace( "#(.+?)#is", ':\\1:', $txt ); + $smilies_arr = explode( ",", $config['smilies'] ); + foreach ( $smilies_arr as $smile ) { + $smile = trim( $smile ); + $replace[] = ":$smile:"; + $find[] = "#['\"]"#is"; + } + $txt = preg_replace( $find, $replace, $txt ); + + if( ! $use_html ) { + $txt = str_ireplace( "
    ", "\n", $txt ); + $txt = str_ireplace( "
    ", "\n", $txt ); + } + + if (!$this->safe_mode) $txt = htmlspecialchars( $txt, ENT_QUOTES ); + $txt = preg_replace( "#\[code\](.+?)\[/code\]#ies", "\$this->decode_code('\\1', '{$use_html}')", $txt ); + + return trim( $txt ); + } + + function font_change($tags) { + if( ! is_array( $tags ) ) {return;} + $style = $tags['1']; + $type = $tags['tag']; + $style = str_replace( '"', '', $style ); + $style = preg_replace( "/[&\(\)\.\%\[\]<>\'\"]/", "", preg_replace( "#^(.+?)(?:;|$)#", "\\1", $style ) ); + if( $type == 'size' ) { + $style = intval( $style ); + if( $this->font_sizes[$style] ) { + $real = $this->font_sizes[$style]; + } else {$real = 12;} + return ""; + } + if( $type == 'font' ) { + $style = preg_replace( "/[^\d\w\#\-\_\s]/s", "", $style ); + return ""; + } + $style = preg_replace( "/[^\d\w\#\s]/s", "", $style ); + return ""; + } + + function build_email($url = array()) { + $url['html'] = $this->clear_url( $url['html'] ); + $url['show'] = stripslashes( $url['show'] ); + return "{$url['show']}"; + } + + function build_flash($size, $url) { + $size = explode(",", $size); + $width = trim(intval($size[0])); + $height = trim(intval($size[1])); + if (!$width OR !$height) return "[flash=".implode(",",$size)."]".$url."[/flash]"; + $url = $this->clear_url( urldecode( $url ) ); + if( $url == "" ) return; + $type = explode( ".", $url ); + $type = strtolower( end( $type ) ); + if ( strtolower($type) != "swf" ){return "[flash=".implode(",",$size)."]".$url."[/flash]";} + return ""; + } + + function decode_flash($url) + { + $url = explode( "||", $url ); + return '[flash='.$url[0].','.$url[1].']'.$url[2].'[/flash]'; + } + + function build_media($url) { + $url = $this->clear_url( urldecode( $url ) ); + $url = str_replace("&","&", $url ); + + if( $url == "" ) return; + $source = @parse_url ( $url ); + + $source['host'] = str_replace( "www.", "", strtolower($source['host']) ); + + if ($source['host'] != "youtube.com" AND $source['host'] != "vk.com") return "[media=".$url."]"; + + if ($source['host'] == "youtube.com") { + $a = explode('&', $source['query']); + $i = 0; + + while ($i < count($a)) { + $b = explode('=', $a[$i]); + if ($b[0] == "v") $video_link = $b[1]; + $i++; + } + + return ''; + } + elseif ($source['host'] == "vk.com") { + return ''; + } + } + + function build_url($url = array()) { + global $config; + + $skip_it = 0; + + if( preg_match( "/([\.,\?]|!)$/", $url['show'], $match ) ) { + $url['end'] .= $match[1]; + $url['show'] = preg_replace( "/([\.,\?]|!)$/", "", $url['show'] ); + } + + $url['html'] = $this->clear_url( $url['html'] ); + $url['show'] = stripslashes( $url['show'] ); + + if( $this->safe_mode ) { + $url['show'] = str_replace( " ", " ", $url['show'] ); + if (strlen(trim($url['show'])) < 3 ) + return "[url=" . $url['html'] . "]" . $url['show'] . "[/url]"; + } + + if( strpos( $url['html'], $config['http_home_url'] ) !== false AND strpos( $url['html'], $config['admin_path'] ) !== false ) { + return "[url=" . $url['html'] . "]" . $url['show'] . "[/url]"; + } + + if( ! preg_match( "#^(http|news|https|ed2k|ftp|aim|mms)://|(magnet:?)#", $url['html'] ) AND $url['html'][0] != "/" AND $url['html'][0] != "#") { + $url['html'] = 'http://' . $url['html']; + } + + if ($url['html'] == 'http://' ) return "[url=" . $url['html'] . "]" . $url['show'] . "[/url]"; + + $url['show'] = str_replace( "&amp;", "&", $url['show'] ); + $url['show'] = preg_replace( "/javascript:/i", "javascript: ", $url['show'] ); + + if( preg_match( "/^check_home( $url['html'] ) OR $url['html'][0] == "/" OR $url['html'][0] == "#"){ + return "" . $show . "" . $url['end']; + }else{ + $url['html'] = $config['http_home_url'] . "out.php?url=" . rawurlencode( base64_encode( $url['html'] ) ); + return "" . $show . "" . $url['end']; + } + } + + function code_tag($txt = "") { + if( $txt == "" ) { + return; + } + $this->code_count ++; + $txt = str_replace( "&", "&", $txt ); + $txt = str_replace( "<", "<", $txt ); + $txt = str_replace( "'", "'", $txt ); + $txt = str_replace( ">", ">", $txt ); + $txt = str_replace( "<", "<", $txt ); + $txt = str_replace( ">", ">", $txt ); + $txt = str_replace( """, """, $txt ); + $txt = str_replace( "\\\"", """, $txt ); + $txt = str_replace( ":", ":", $txt ); + $txt = str_replace( "[", "[", $txt ); + $txt = str_replace( "]", "]", $txt ); + $txt = str_replace( ")", ")", $txt ); + $txt = str_replace( "(", "(", $txt ); + $txt = str_replace( "\r", "", $txt ); + $txt = str_replace( "\n", "
    ", $txt ); + $txt = preg_replace( "#\s{1};#", ";", $txt ); + $txt = preg_replace( "#\t#", "    ", $txt ); + $txt = preg_replace( "#\s{2}#", "  ", $txt ); + + $p = "[code]{" . $this->code_count . "}[/code]"; + + $this->code_text[$p] = "[code]{$txt}[/code]"; + + return $p; + } + + function decode_code($txt = "", $use_html) { + +// $txt = stripslashes( $txt ); + $txt = str_replace( "&", "&", $txt ); + + if( $use_html ) { + $txt = str_replace( "<br />", "\n", $txt ); + } + + return "[code]".$txt."[/code]"; + } + + function build_video($url) { + global $config; + + $option = explode( "|", trim( $url ) ); + + $url = $this->clear_url( urldecode( $option[0] ) ); + + $type = explode( ".", $url ); + $type = strtolower( end( $type ) ); + + if( preg_match( "/[?&;%<\[\]]/", $url ) ) { + + return "[video=" . $url . "]"; + + } + + if( $option[1] != "" ) { + + $option[1] = htmlspecialchars( strip_tags( stripslashes( $option[1] ) ), ENT_QUOTES ); + $decode_url = $url . "|" . $option[1]; + + } else + $decode_url = $url; + + if( $type == "flv" or $type == "f4v" or $type == "mp4" or $type == "mov" or $type == "m4a" or $type == "mp4v" or $type == "3gp" or $type == "3g2" ) { + $url = array (); + $url = implode( ", ", $url ); + return "
    "; + } elseif( $type == "avi" or $type == "divx" ) { + + return "video_config['width']}\" height=\"{$this->video_config['height']}\" codebase=\"http://go.divx.com/plugin/DivXBrowserPlugin.cab\"> + + + video_config['play']}\" /> + + + video_config['width']}\" height=\"{$this->video_config['height']}\" mode=\"zero\" autoPlay=\"{$this->video_config['play']}\" previewImage=\"{$option[1]}\" pluginspage=\"http://go.divx.com/plugin/download/\"> + + "; + + } else { + + return "video_config['width']}\" height=\"{$this->video_config['height']}\" classid=\"CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6\" standby=\"Loading Microsoft Windows Media Player components...\" type=\"application/x-oleobject\"> + + video_config['play']}\" /> + + + + + video_config['width']}\" height=\"{$this->video_config['height']}\" type=\"application/x-mplayer2\" autorewind=\"1\" showstatusbar=\"1\" showcontrols=\"1\" autostart=\"{$this->video_config['play']}\" allowchangedisplaysize=\"1\" volume=\"70\" stretchtofit=\"1\"> + "; + } + + } + + function build_audio($url) { + global $config; + + if( $url == "" ) return; + + if( preg_match( "/[?&;%<\[\]]/", $url ) ) { + + return "[audio=" . $url . "]"; + } + + $url = $this->clear_url( urldecode( $url ) ); + + $list = explode( ",", $url ); + $url = urlencode(trim($list[0])); + + $list = implode( ",", $list ); + $id_player = md5( microtime() ); + $color = array (); + + return ""; + } + + function build_image($url = "", $align = "") { + global $config; + + $url = trim( $url ); + $url = urldecode( $url ); + $option = explode( "|", trim( $align ) ); + $align = $option[0]; + + if( $align != "left" and $align != "right" ) $align = ''; + + if( preg_match( "/[?&;%<\[\]]/", $url ) ) { + if( $align != "" ) return "[img=" . $align . "]" . $url . "[/img]"; + else return "[img]" . $url . "[/img]"; + } + + $url = $this->clear_url( urldecode( $url ) ); + $info = $url; + $info = $info."|".$align; + if( $url == "" ) return; + + if( $option[1] != "" ) { + $alt = htmlspecialchars( strip_tags( stripslashes( $option[1] ) ), ENT_QUOTES ); + $info = $info."|".$alt; + $caption = "" . $alt . ""; + $alt = "alt=\"" . $alt . "\" title=\"" . $alt . "\" "; + } else { + $alt = htmlspecialchars( strip_tags( stripslashes( $_POST['title'] ) ), ENT_QUOTES ); + $caption = ""; + $alt = "alt=\"" . $alt . "\" title=\"" . $alt . "\" "; + } + + if( intval( $config['tag_img_width'] ) ) { + if (clean_url( $config['http_home_url'] ) != clean_url ( $url ) ) { + $img_info = @getimagesize( $url ); + if( $img_info[0] > $config['tag_img_width'] ) { + $out_heigh = ($img_info[1] / 100) * ($config['tag_img_width'] / ($img_info[0] / 100)); + $out_heigh = floor( $out_heigh ); + if( $align == '' ) return "{$caption}"; + else return "{$caption}"; + } + } + } + + + if( $align == '' ) return ""; + else return ""; + } + + function decode_dle_img($txt) { + $txt = stripslashes( $txt ); + $txt = explode("|", $txt ); + $url = $txt[0]; + $align = $txt[1]; + $alt = $txt[2]; + $extra = ""; + + if( ! $align and ! $alt ) return "[img]" . $url . "[/img]"; + + if( $align ) $extra = $align; + if( $alt ) { + + $alt = str_replace("'", "'", $alt); + $alt = str_replace(""", '"', $alt); + $alt = str_replace("&", '&', $alt); + $extra .= "|" . $alt; + } + return "[img=" . $extra . "]" . $url . "[/img]"; + } + + function build_thumb($gurl = "", $url = "", $align = "") { + $url = trim( $url ); + $gurl = trim( $gurl ); + $option = explode( "|", trim( $align ) ); + + $align = $option[0]; + + if( $align != "left" and $align != "right" ) $align = ''; + + if( preg_match( "/[?&;%<\[\]]/", $gurl ) ) { + if( $align != "" ) return "[thumb=" . $align . "]" . $gurl . "[/thumb]"; + else return "[thumb]" . $gurl . "[/thumb]"; + } + + $url = $this->clear_url( urldecode( $url ) ); + $gurl = $this->clear_url( urldecode( $gurl ) ); + + if( $gurl == "" or $url == "" ) return; + + if( $option[1] != "" ) { + $alt = htmlspecialchars( strip_tags( stripslashes( $option[1] ) ), ENT_QUOTES ); + $caption = "" . $alt . ""; + $alt = "alt=\"" . $alt . "\" title=\"" . $alt . "\" "; + } else { + $alt = htmlspecialchars( strip_tags( stripslashes( $_POST['title'] ) ), ENT_QUOTES ); + $alt = "alt='" . $alt . "' title='" . $alt . "' "; + $caption = ""; + } + + if( $align == '' ) return "{$caption}"; + else return "{$caption}"; + } + + function build_spoiler($title = "") { + global $lang; + + $title = trim( $title ); + + $title = stripslashes( $title ); + $title = str_replace( "&amp;", "&", $title ); + $title = preg_replace( "/javascript:/i", "javascript: ", $title ); + + $id_spoiler = "sp".md5( microtime() ); + + if( ! $title ) {return "
    \"\" " . $lang['spoiler_title'] . "
    "; + } else {return "
    \"\" " . $title . "
    ";} + } + + function clear_url($url) { + + $url = strip_tags( trim( stripslashes( $url ) ) ); + + $url = str_replace( '\"', '"', $url ); + $url = str_replace( "'", "", $url ); + $url = str_replace( '"', "", $url ); + + if( ! $this->safe_mode or $this->wysiwyg ) {$url = htmlspecialchars( $url, ENT_QUOTES );} + + $url = str_ireplace( "document.cookie", "document.cookie", $url ); + $url = str_replace( " ", "%20", $url ); + $url = str_replace( "<", "<", $url ); + $url = str_replace( ">", ">", $url ); + $url = preg_replace( "/javascript:/i", "javascript:", $url ); + $url = preg_replace( "/data:/i", "data:", $url ); + + return $url; + } + + function decode_leech($url = "", $show = "") { + + $show = stripslashes( $show ); + + if( $this->leech_mode ) return "[url=" . $url . "]" . $show . "[/url]"; + + $url = explode( "url=", $url ); + $url = end( $url ); + $url = rawurldecode( $url ); + $url = base64_decode( $url ); + $url = str_replace("&","&", $url ); + + return "[url=" . $url . "]" . $show . "[/url]"; + } + + function decode_url($url = "", $show = "") { + + $show = stripslashes( $show ); + + $url = str_replace("&","&", $url ); + + return "[url=" . $url . "]" . $show . "[/url]"; + } + + function decode_thumb($txt) { + $align = false; + $alt = false; + $extra = ""; + $txt = stripslashes( $txt ); + + $url = str_replace( "safe_mode ) $allow_find = false; + if ( $word_arr[5] == 2 AND !$this->safe_mode ) $allow_find = false; + + if ( $allow_find ) { + + if( $word_arr[3] ) { + + $find_text = "#(^|\b|\s|\
    )" . preg_quote( $word_arr[1], "#" ) . "(\b|!|\?|\.|,|$)#".$register; + + if( $word_arr[2] == "" ) $replace_text = "\\1"; + else $replace_text = "\\1" . $word_arr[2] . ""; + + } else { + + $find_text = "#(" . preg_quote( $word_arr[1], "#" ) . ")#".$register; + + if( $word_arr[2] == "" ) $replace_text = ""; + else $replace_text = "" . $word_arr[2] . ""; + + } + + if ( $word_arr[6] ) { + + if ( preg_match($find_text, $source) ) { + + $this->not_allowed_text = true; + return $source; + + } + + } else { + + $find[] = $find_text; + $replace[] = $replace_text; + } + + } + + } + + if( !count( $find ) ) return $source; + + $source = preg_split( '((>)|(<))', $source, - 1, PREG_SPLIT_DELIM_CAPTURE ); + $count = count( $source ); + + for($i = 0; $i < $count; $i ++) { + if( $source[$i] == "<" or $source[$i] == "[" ) { + $i ++; + continue; + } + + if( $source[$i] != "" ) $source[$i] = preg_replace( $find, $replace, $source[$i] ); + } + + $source = join( "", $source ); + + } else { + + $source = preg_replace( "#(.+?)#", "\\1", $source ); + + } + + return $source; + } + +} +?> \ No newline at end of file diff --git a/system/classes/rss.class.php b/system/classes/rss.class.php new file mode 100644 index 0000000..d265534 --- /dev/null +++ b/system/classes/rss.class.php @@ -0,0 +1,240 @@ +max_news = $max; + + $this->xml_parser = xml_parser_create(); + xml_set_object( $this->xml_parser, $this ); + xml_set_element_handler( $this->xml_parser, "startElement", "endElement" ); + xml_set_character_data_handler( $this->xml_parser, 'elementContent' ); + $this->rss_option = xml_parser_get_option( $this->xml_parser, XML_OPTION_TARGET_ENCODING ); + + if( ! ($data = $this->_get_contents( $file )) ) { + $this->content[0]['title'] = "Fatal Error"; + $this->content[0]['description'] = "Fatal Error: could not open XML input (" . $file . ")"; + $this->content[0]['link'] = "#"; + $this->content[0]['date'] = time(); + } + + preg_replace( "#encoding=\"(.+?)\"#ie", "\$this->get_charset('\\1')", $data ); + + if( ! xml_parse( $this->xml_parser, $data ) ) { + + $error_code = xml_get_error_code( $this->xml_parser ); + $error_line = xml_get_current_line_number( $this->xml_parser ); + + if( $error_code == 4 ) { + + $this->content = array (); + $this->index = 0; + $this->tag_open = false; + $this->tagname = ""; + + $this->xml_parser = xml_parser_create(); + xml_set_object( $this->xml_parser, $this ); + xml_set_element_handler( $this->xml_parser, "startElement", "endElement" ); + xml_set_character_data_handler( $this->xml_parser, 'elementContent' ); + $this->rss_option = xml_parser_get_option( $this->xml_parser, XML_OPTION_TARGET_ENCODING ); + + $data = iconv( $this->rss_charset, "utf-8", $data ); + + if( ! xml_parse( $this->xml_parser, $data ) ) { + + $this->content[0]['title'] = "XML error in File: " . $file; + $this->content[0]['description'] = sprintf( "XML error: %s at line %d", xml_error_string( xml_get_error_code( $this->xml_parser ) ), xml_get_current_line_number( $this->xml_parser ) ); + $this->content[0]['link'] = "#"; + $this->content[0]['date'] = time(); + + } + + } else { + + $this->content[0]['title'] = "XML error in File: " . $file; + $this->content[0]['description'] = sprintf( "XML error: %s at line %d", xml_error_string( $error_code ), $error_line ); + $this->content[0]['link'] = "#"; + $this->content[0]['date'] = time(); + + } + + } + + xml_parser_free( $this->xml_parser ); + } + + function _get_contents($file) { + + $data = false; + + if( function_exists( 'curl_init' ) ) { + + $ch = curl_init(); + curl_setopt( $ch, CURLOPT_URL, $file ); + curl_setopt( $ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT'] ); + @curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 ); + curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); + curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 10 ); + + $data = curl_exec( $ch ); + curl_close( $ch ); + + } + + if( $data ) { + + return $data; + + } else { + + $data = @file_get_contents( $file ); + + if( $data ) return $data; + else return false; + + } + + } + + function pre_parse($date) { + + global $config; + + $i = 0; + + foreach ( $this->content as $content ) { + + $content_date = strtotime( $content['date'] ); + + if( $date ) { + $this->content[$i]['date'] = time() + ($config['date_adjust'] * 60); + } else { + $this->content[$i]['date'] = $content_date; + } + + if( ! $i ) $this->lastdate = $content_date; + + if( $i and $content_date > $this->lastdate ) $this->lastdate = $content_date; + + if( $this->pre_lastdate != "" and $this->pre_lastdate >= $content_date ) { + unset( $this->content[$i] ); + $i ++; + continue; + } + + $this->content[$i]['description'] = rtrim( $this->content[$i]['description'] ); + $this->content[$i]['content'] = rtrim( $this->content[$i]['content'] ); + + if( $this->content[$i]['content'] != '' ) { + $this->content[$i]['description'] = $this->content[$i]['content']; + } + unset( $this->content[$i]['content'] ); + + if( preg_match_all( "#
    #si", $this->content[$i]['description'], $out ) ) { + + $this->content[$i]['description'] = preg_replace( "#
    #si", "", $this->content[$i]['description'] ); + $this->content[$i]['description'] = substr( $this->content[$i]['description'], 0, - 6 ); + + } + + $i ++; + } + + } + + function startElement($parser, $name, $attrs) { + + if( $name == "ITEM" ) { + $this->tag_open = true; + } + + $this->tagname = $name; + } + + function endElement($parser, $name) { + + if( $name == "ITEM" ) { + $this->index ++; + $this->tag_open = false; + } + } + + function elementContent($parser, $data) { + + if( $this->tag_open and $this->index < $this->max_news ) { + + switch ($this->tagname) { + case 'TITLE' : + $this->content[$this->index]['title'] .= $data; + break; + case 'DESCRIPTION' : + $this->content[$this->index]['description'] .= $data; + break; + case 'CONTENT:ENCODED' : + $this->content[$this->index]['content'] .= $data; + break; + case 'LINK' : + $this->content[$this->index]['link'] .= $data; + break; + case 'PUBDATE' : + $this->content[$this->index]['date'] .= $data; + break; + case 'CATEGORY' : + $this->content[$this->index]['category'] .= $data; + break; + case 'DC:CREATOR' : + $this->content[$this->index]['author'] .= $data; + break; + + } + } + + } + + function get_charset($charset) { + + if( $this->rss_charset == '' ) $this->rss_charset = strtolower( $charset ); + + } + + function convert($from, $to) { + + if( $from == '' ) return; + + if( function_exists( 'iconv' ) ) { + $i = 0; + + foreach ( $this->content as $content ) { + + if( @iconv( $from, $to . "//IGNORE", $this->content[$i]['title'] ) ) $this->content[$i]['title'] = @iconv( $from, $to . "//IGNORE", $this->content[$i]['title'] ); + + if( @iconv( $from, $to . "//IGNORE", $this->content[$i]['description'] ) ) $this->content[$i]['description'] = @iconv( $from, $to . "//IGNORE", $this->content[$i]['description'] ); + + if( $this->content[$i]['content'] and @iconv( $from, $to . "//IGNORE", $this->content[$i]['content'] ) ) $this->content[$i]['content'] = @iconv( $from, $to . "//IGNORE", $this->content[$i]['content'] ); + + if( $this->content[$i]['category'] and @iconv( $from, $to . "//IGNORE", $this->content[$i]['category'] ) ) $this->content[$i]['category'] = @iconv( $from, $to . "//IGNORE", $this->content[$i]['category'] ); + + if( $this->content[$i]['author'] and @iconv( $from, $to . "//IGNORE", $this->content[$i]['author'] ) ) $this->content[$i]['author'] = @iconv( $from, $to . "//IGNORE", $this->content[$i]['author'] ); + + $i ++; + + } + } + } +} + +?> \ No newline at end of file diff --git a/system/classes/sphinx.api.php b/system/classes/sphinx.api.php new file mode 100644 index 0000000..e8ec772 --- /dev/null +++ b/system/classes/sphinx.api.php @@ -0,0 +1,1611 @@ +=8 ) + { + $v = (int)$v; + return pack ( "NN", $v>>32, $v&0xFFFFFFFF ); + } + + // x32, int + if ( is_int($v) ) + return pack ( "NN", $v < 0 ? -1 : 0, $v ); + + // x32, bcmath + if ( function_exists("bcmul") ) + { + if ( bccomp ( $v, 0 ) == -1 ) + $v = bcadd ( "18446744073709551616", $v ); + $h = bcdiv ( $v, "4294967296", 0 ); + $l = bcmod ( $v, "4294967296" ); + return pack ( "NN", (float)$h, (float)$l ); // conversion to float is intentional; int would lose 31st bit + } + + // x32, no-bcmath + $p = max(0, strlen($v) - 13); + $lo = abs((float)substr($v, $p)); + $hi = abs((float)substr($v, 0, $p)); + + $m = $lo + $hi*1316134912.0; // (10 ^ 13) % (1 << 32) = 1316134912 + $q = floor($m/4294967296.0); + $l = $m - ($q*4294967296.0); + $h = $hi*2328.0 + $q; // (10 ^ 13) / (1 << 32) = 2328 + + if ( $v<0 ) + { + if ( $l==0 ) + $h = 4294967296.0 - $h; + else + { + $h = 4294967295.0 - $h; + $l = 4294967296.0 - $l; + } + } + return pack ( "NN", $h, $l ); +} + +/// pack 64-bit unsigned +function sphPackU64 ( $v ) +{ + assert ( is_numeric($v) ); + + // x64 + if ( PHP_INT_SIZE>=8 ) + { + assert ( $v>=0 ); + + // x64, int + if ( is_int($v) ) + return pack ( "NN", $v>>32, $v&0xFFFFFFFF ); + + // x64, bcmath + if ( function_exists("bcmul") ) + { + $h = bcdiv ( $v, 4294967296, 0 ); + $l = bcmod ( $v, 4294967296 ); + return pack ( "NN", $h, $l ); + } + + // x64, no-bcmath + $p = max ( 0, strlen($v) - 13 ); + $lo = (int)substr ( $v, $p ); + $hi = (int)substr ( $v, 0, $p ); + + $m = $lo + $hi*1316134912; + $l = $m % 4294967296; + $h = $hi*2328 + (int)($m/4294967296); + + return pack ( "NN", $h, $l ); + } + + // x32, int + if ( is_int($v) ) + return pack ( "NN", 0, $v ); + + // x32, bcmath + if ( function_exists("bcmul") ) + { + $h = bcdiv ( $v, "4294967296", 0 ); + $l = bcmod ( $v, "4294967296" ); + return pack ( "NN", (float)$h, (float)$l ); // conversion to float is intentional; int would lose 31st bit + } + + // x32, no-bcmath + $p = max(0, strlen($v) - 13); + $lo = (float)substr($v, $p); + $hi = (float)substr($v, 0, $p); + + $m = $lo + $hi*1316134912.0; + $q = floor($m / 4294967296.0); + $l = $m - ($q * 4294967296.0); + $h = $hi*2328.0 + $q; + + return pack ( "NN", $h, $l ); +} + +// unpack 64-bit unsigned +function sphUnpackU64 ( $v ) +{ + list ( $hi, $lo ) = array_values ( unpack ( "N*N*", $v ) ); + + if ( PHP_INT_SIZE>=8 ) + { + if ( $hi<0 ) $hi += (1<<32); // because php 5.2.2 to 5.2.5 is totally fucked up again + if ( $lo<0 ) $lo += (1<<32); + + // x64, int + if ( $hi<=2147483647 ) + return ($hi<<32) + $lo; + + // x64, bcmath + if ( function_exists("bcmul") ) + return bcadd ( $lo, bcmul ( $hi, "4294967296" ) ); + + // x64, no-bcmath + $C = 100000; + $h = ((int)($hi / $C) << 32) + (int)($lo / $C); + $l = (($hi % $C) << 32) + ($lo % $C); + if ( $l>$C ) + { + $h += (int)($l / $C); + $l = $l % $C; + } + + if ( $h==0 ) + return $l; + return sprintf ( "%d%05d", $h, $l ); + } + + // x32, int + if ( $hi==0 ) + { + if ( $lo>0 ) + return $lo; + return sprintf ( "%u", $lo ); + } + + $hi = sprintf ( "%u", $hi ); + $lo = sprintf ( "%u", $lo ); + + // x32, bcmath + if ( function_exists("bcmul") ) + return bcadd ( $lo, bcmul ( $hi, "4294967296" ) ); + + // x32, no-bcmath + $hi = (float)$hi; + $lo = (float)$lo; + + $q = floor($hi/10000000.0); + $r = $hi - $q*10000000.0; + $m = $lo + $r*4967296.0; + $mq = floor($m/10000000.0); + $l = $m - $mq*10000000.0; + $h = $q*4294967296.0 + $r*429.0 + $mq; + + $h = sprintf ( "%.0f", $h ); + $l = sprintf ( "%07.0f", $l ); + if ( $h=="0" ) + return sprintf( "%.0f", (float)$l ); + return $h . $l; +} + +// unpack 64-bit signed +function sphUnpackI64 ( $v ) +{ + list ( $hi, $lo ) = array_values ( unpack ( "N*N*", $v ) ); + + // x64 + if ( PHP_INT_SIZE>=8 ) + { + if ( $hi<0 ) $hi += (1<<32); // because php 5.2.2 to 5.2.5 is totally fucked up again + if ( $lo<0 ) $lo += (1<<32); + + return ($hi<<32) + $lo; + } + + // x32, int + if ( $hi==0 ) + { + if ( $lo>0 ) + return $lo; + return sprintf ( "%u", $lo ); + } + // x32, int + elseif ( $hi==-1 ) + { + if ( $lo<0 ) + return $lo; + return sprintf ( "%.0f", $lo - 4294967296.0 ); + } + + $neg = ""; + $c = 0; + if ( $hi<0 ) + { + $hi = ~$hi; + $lo = ~$lo; + $c = 1; + $neg = "-"; + } + + $hi = sprintf ( "%u", $hi ); + $lo = sprintf ( "%u", $lo ); + + // x32, bcmath + if ( function_exists("bcmul") ) + return $neg . bcadd ( bcadd ( $lo, bcmul ( $hi, "4294967296" ) ), $c ); + + // x32, no-bcmath + $hi = (float)$hi; + $lo = (float)$lo; + + $q = floor($hi/10000000.0); + $r = $hi - $q*10000000.0; + $m = $lo + $r*4967296.0; + $mq = floor($m/10000000.0); + $l = $m - $mq*10000000.0 + $c; + $h = $q*4294967296.0 + $r*429.0 + $mq; + + $h = sprintf ( "%.0f", $h ); + $l = sprintf ( "%07.0f", $l ); + if ( $h=="0" ) + return $neg . sprintf( "%.0f", (float)$l ); + return $neg . $h . $l; +} + + +/// sphinx searchd client class +class SphinxClient +{ + var $_host; ///< searchd host (default is "localhost") + var $_port; ///< searchd port (default is 3312) + var $_offset; ///< how many records to seek from result-set start (default is 0) + var $_limit; ///< how many records to return from result-set starting at offset (default is 20) + var $_mode; ///< query matching mode (default is SPH_MATCH_ALL) + var $_weights; ///< per-field weights (default is 1 for all fields) + var $_sort; ///< match sorting mode (default is SPH_SORT_RELEVANCE) + var $_sortby; ///< attribute to sort by (defualt is "") + var $_min_id; ///< min ID to match (default is 0, which means no limit) + var $_max_id; ///< max ID to match (default is 0, which means no limit) + var $_filters; ///< search filters + var $_groupby; ///< group-by attribute name + var $_groupfunc; ///< group-by function (to pre-process group-by attribute value with) + var $_groupsort; ///< group-by sorting clause (to sort groups in result set with) + var $_groupdistinct;///< group-by count-distinct attribute + var $_maxmatches; ///< max matches to retrieve + var $_cutoff; ///< cutoff to stop searching at (default is 0) + var $_retrycount; ///< distributed retries count + var $_retrydelay; ///< distributed retries delay + var $_anchor; ///< geographical anchor point + var $_indexweights; ///< per-index weights + var $_ranker; ///< ranking mode (default is SPH_RANK_PROXIMITY_BM25) + var $_maxquerytime; ///< max query time, milliseconds (default is 0, do not limit) + var $_fieldweights; ///< per-field-name weights + var $_overrides; ///< per-query attribute values overrides + var $_select; ///< select-list (attributes or expressions, with optional aliases) + + var $_error; ///< last error message + var $_warning; ///< last warning message + var $_connerror; ///< connection error vs remote error flag + + var $_reqs; ///< requests array for multi-query + var $_mbenc; ///< stored mbstring encoding + var $_arrayresult; ///< whether $result["matches"] should be a hash or an array + var $_timeout; ///< connect timeout + + ///////////////////////////////////////////////////////////////////////////// + // common stuff + ///////////////////////////////////////////////////////////////////////////// + + /// create a new client object and fill defaults + function SphinxClient () + { + // per-client-object settings + $this->_host = "localhost"; + $this->_port = 3312; + $this->_path = false; + $this->_socket = false; + + // per-query settings + $this->_offset = 0; + $this->_limit = 20; + $this->_mode = SPH_MATCH_ALL; + $this->_weights = array (); + $this->_sort = SPH_SORT_RELEVANCE; + $this->_sortby = ""; + $this->_min_id = 0; + $this->_max_id = 0; + $this->_filters = array (); + $this->_groupby = ""; + $this->_groupfunc = SPH_GROUPBY_DAY; + $this->_groupsort = "@group desc"; + $this->_groupdistinct= ""; + $this->_maxmatches = 1000; + $this->_cutoff = 0; + $this->_retrycount = 0; + $this->_retrydelay = 0; + $this->_anchor = array (); + $this->_indexweights= array (); + $this->_ranker = SPH_RANK_PROXIMITY_BM25; + $this->_maxquerytime= 0; + $this->_fieldweights= array(); + $this->_overrides = array(); + $this->_select = "*"; + + $this->_error = ""; // per-reply fields (for single-query case) + $this->_warning = ""; + $this->_connerror = false; + + $this->_reqs = array (); // requests storage (for multi-query case) + $this->_mbenc = ""; + $this->_arrayresult = false; + $this->_timeout = 0; + } + + function __destruct() + { + if ( $this->_socket !== false ) + fclose ( $this->_socket ); + } + + /// get last error message (string) + function GetLastError () + { + return $this->_error; + } + + /// get last warning message (string) + function GetLastWarning () + { + return $this->_warning; + } + + /// get last error flag (to tell network connection errors from searchd errors or broken responses) + function IsConnectError() + { + return $this->_connerror; + } + + /// set searchd host name (string) and port (integer) + function SetServer ( $host, $port = 0 ) + { + assert ( is_string($host) ); + if ( $host[0] == '/') + { + $this->_path = 'unix://' . $host; + return; + } + if ( substr ( $host, 0, 7 )=="unix://" ) + { + $this->_path = $host; + return; + } + + assert ( is_int($port) ); + $this->_host = $host; + $this->_port = $port; + $this->_path = ''; + + } + + /// set server connection timeout (0 to remove) + function SetConnectTimeout ( $timeout ) + { + assert ( is_numeric($timeout) ); + $this->_timeout = $timeout; + } + + + function _Send ( $handle, $data, $length ) + { + if ( feof($handle) || fwrite ( $handle, $data, $length ) !== $length ) + { + $this->_error = 'connection unexpectedly closed (timed out?)'; + $this->_connerror = true; + return false; + } + return true; + } + + ///////////////////////////////////////////////////////////////////////////// + + /// enter mbstring workaround mode + function _MBPush () + { + $this->_mbenc = ""; + if ( ini_get ( "mbstring.func_overload" ) & 2 ) + { + $this->_mbenc = mb_internal_encoding(); + mb_internal_encoding ( "latin1" ); + } + } + + /// leave mbstring workaround mode + function _MBPop () + { + if ( $this->_mbenc ) + mb_internal_encoding ( $this->_mbenc ); + } + + /// connect to searchd server + function _Connect () + { + if ( $this->_socket !== false ) + return $this->_socket; + + $errno = 0; + $errstr = ""; + $this->_connerror = false; + + if ( $this->_path ) + { + $host = $this->_path; + $port = 0; + } + else + { + $host = $this->_host; + $port = $this->_port; + } + + if ( $this->_timeout<=0 ) + $fp = @fsockopen ( $host, $port, $errno, $errstr ); + else + $fp = @fsockopen ( $host, $port, $errno, $errstr, $this->_timeout ); + + if ( !$fp ) + { + if ( $this->_path ) + $location = $this->_path; + else + $location = "{$this->_host}:{$this->_port}"; + + $errstr = trim ( $errstr ); + $this->_error = "connection to $location failed (errno=$errno, msg=$errstr)"; + $this->_connerror = true; + return false; + } + + // send my version + // this is a subtle part. we must do it before (!) reading back from searchd. + // because otherwise under some conditions (reported on FreeBSD for instance) + // TCP stack could throttle write-write-read pattern because of Nagle. + if ( !$this->_Send ( $fp, pack ( "N", 1 ), 4 ) ) + { + fclose ( $fp ); + $this->_error = "failed to send client protocol version"; + return false; + } + + // check version + list(,$v) = unpack ( "N*", fread ( $fp, 4 ) ); + $v = (int)$v; + if ( $v<1 ) + { + fclose ( $fp ); + $this->_error = "expected searchd protocol version 1+, got version '$v'"; + return false; + } + + return $fp; + } + + /// get and check response packet from searchd server + function _GetResponse ( $fp, $client_ver ) + { + $response = ""; + $len = 0; + + $header = fread ( $fp, 8 ); + if ( strlen($header)==8 ) + { + list ( $status, $ver, $len ) = array_values ( unpack ( "n2a/Nb", $header ) ); + $left = $len; + while ( $left>0 && !feof($fp) ) + { + $chunk = fread ( $fp, $left ); + if ( $chunk ) + { + $response .= $chunk; + $left -= strlen($chunk); + } + } + } + if ( $this->_socket === false ) + fclose ( $fp ); + + // check response + $read = strlen ( $response ); + if ( !$response || $read!=$len ) + { + $this->_error = $len + ? "failed to read searchd response (status=$status, ver=$ver, len=$len, read=$read)" + : "received zero-sized searchd response"; + return false; + } + + // check status + if ( $status==SEARCHD_WARNING ) + { + list(,$wlen) = unpack ( "N*", substr ( $response, 0, 4 ) ); + $this->_warning = substr ( $response, 4, $wlen ); + return substr ( $response, 4+$wlen ); + } + if ( $status==SEARCHD_ERROR ) + { + $this->_error = "searchd error: " . substr ( $response, 4 ); + return false; + } + if ( $status==SEARCHD_RETRY ) + { + $this->_error = "temporary searchd error: " . substr ( $response, 4 ); + return false; + } + if ( $status!=SEARCHD_OK ) + { + $this->_error = "unknown status code '$status'"; + return false; + } + + // check version + if ( $ver<$client_ver ) + { + $this->_warning = sprintf ( "searchd command v.%d.%d older than client's v.%d.%d, some options might not work", + $ver>>8, $ver&0xff, $client_ver>>8, $client_ver&0xff ); + } + + return $response; + } + + ///////////////////////////////////////////////////////////////////////////// + // searching + ///////////////////////////////////////////////////////////////////////////// + + /// set offset and count into result set, + /// and optionally set max-matches and cutoff limits + function SetLimits ( $offset, $limit, $max=0, $cutoff=0 ) + { + assert ( is_int($offset) ); + assert ( is_int($limit) ); + assert ( $offset>=0 ); + assert ( $limit>0 ); + assert ( $max>=0 ); + $this->_offset = $offset; + $this->_limit = $limit; + if ( $max>0 ) + $this->_maxmatches = $max; + if ( $cutoff>0 ) + $this->_cutoff = $cutoff; + } + + /// set maximum query time, in milliseconds, per-index + /// integer, 0 means "do not limit" + function SetMaxQueryTime ( $max ) + { + assert ( is_int($max) ); + assert ( $max>=0 ); + $this->_maxquerytime = $max; + } + + /// set matching mode + function SetMatchMode ( $mode ) + { + assert ( $mode==SPH_MATCH_ALL + || $mode==SPH_MATCH_ANY + || $mode==SPH_MATCH_PHRASE + || $mode==SPH_MATCH_BOOLEAN + || $mode==SPH_MATCH_EXTENDED + || $mode==SPH_MATCH_FULLSCAN + || $mode==SPH_MATCH_EXTENDED2 ); + $this->_mode = $mode; + } + + /// set ranking mode + function SetRankingMode ( $ranker ) + { + assert ( $ranker>=0 && $ranker_ranker = $ranker; + } + + /// set matches sorting mode + function SetSortMode ( $mode, $sortby="" ) + { + assert ( + $mode==SPH_SORT_RELEVANCE || + $mode==SPH_SORT_ATTR_DESC || + $mode==SPH_SORT_ATTR_ASC || + $mode==SPH_SORT_TIME_SEGMENTS || + $mode==SPH_SORT_EXTENDED || + $mode==SPH_SORT_EXPR ); + assert ( is_string($sortby) ); + assert ( $mode==SPH_SORT_RELEVANCE || strlen($sortby)>0 ); + + $this->_sort = $mode; + $this->_sortby = $sortby; + } + + /// bind per-field weights by order + /// DEPRECATED; use SetFieldWeights() instead + function SetWeights ( $weights ) + { + assert ( is_array($weights) ); + foreach ( $weights as $weight ) + assert ( is_int($weight) ); + + $this->_weights = $weights; + } + + /// bind per-field weights by name + function SetFieldWeights ( $weights ) + { + assert ( is_array($weights) ); + foreach ( $weights as $name=>$weight ) + { + assert ( is_string($name) ); + assert ( is_int($weight) ); + } + $this->_fieldweights = $weights; + } + + /// bind per-index weights by name + function SetIndexWeights ( $weights ) + { + assert ( is_array($weights) ); + foreach ( $weights as $index=>$weight ) + { + assert ( is_string($index) ); + assert ( is_int($weight) ); + } + $this->_indexweights = $weights; + } + + /// set IDs range to match + /// only match records if document ID is beetwen $min and $max (inclusive) + function SetIDRange ( $min, $max ) + { + assert ( is_numeric($min) ); + assert ( is_numeric($max) ); + assert ( $min<=$max ); + $this->_min_id = $min; + $this->_max_id = $max; + } + + /// set values set filter + /// only match records where $attribute value is in given set + function SetFilter ( $attribute, $values, $exclude=false ) + { + assert ( is_string($attribute) ); + assert ( is_array($values) ); + assert ( count($values) ); + + if ( is_array($values) && count($values) ) + { + foreach ( $values as $value ) + assert ( is_numeric($value) ); + + $this->_filters[] = array ( "type"=>SPH_FILTER_VALUES, "attr"=>$attribute, "exclude"=>$exclude, "values"=>$values ); + } + } + + /// set range filter + /// only match records if $attribute value is beetwen $min and $max (inclusive) + function SetFilterRange ( $attribute, $min, $max, $exclude=false ) + { + assert ( is_string($attribute) ); + assert ( is_numeric($min) ); + assert ( is_numeric($max) ); + assert ( $min<=$max ); + + $this->_filters[] = array ( "type"=>SPH_FILTER_RANGE, "attr"=>$attribute, "exclude"=>$exclude, "min"=>$min, "max"=>$max ); + } + + /// set float range filter + /// only match records if $attribute value is beetwen $min and $max (inclusive) + function SetFilterFloatRange ( $attribute, $min, $max, $exclude=false ) + { + assert ( is_string($attribute) ); + assert ( is_float($min) ); + assert ( is_float($max) ); + assert ( $min<=$max ); + + $this->_filters[] = array ( "type"=>SPH_FILTER_FLOATRANGE, "attr"=>$attribute, "exclude"=>$exclude, "min"=>$min, "max"=>$max ); + } + + /// setup anchor point for geosphere distance calculations + /// required to use @geodist in filters and sorting + /// latitude and longitude must be in radians + function SetGeoAnchor ( $attrlat, $attrlong, $lat, $long ) + { + assert ( is_string($attrlat) ); + assert ( is_string($attrlong) ); + assert ( is_float($lat) ); + assert ( is_float($long) ); + + $this->_anchor = array ( "attrlat"=>$attrlat, "attrlong"=>$attrlong, "lat"=>$lat, "long"=>$long ); + } + + /// set grouping attribute and function + function SetGroupBy ( $attribute, $func, $groupsort="@group desc" ) + { + assert ( is_string($attribute) ); + assert ( is_string($groupsort) ); + assert ( $func==SPH_GROUPBY_DAY + || $func==SPH_GROUPBY_WEEK + || $func==SPH_GROUPBY_MONTH + || $func==SPH_GROUPBY_YEAR + || $func==SPH_GROUPBY_ATTR + || $func==SPH_GROUPBY_ATTRPAIR ); + + $this->_groupby = $attribute; + $this->_groupfunc = $func; + $this->_groupsort = $groupsort; + } + + /// set count-distinct attribute for group-by queries + function SetGroupDistinct ( $attribute ) + { + assert ( is_string($attribute) ); + $this->_groupdistinct = $attribute; + } + + /// set distributed retries count and delay + function SetRetries ( $count, $delay=0 ) + { + assert ( is_int($count) && $count>=0 ); + assert ( is_int($delay) && $delay>=0 ); + $this->_retrycount = $count; + $this->_retrydelay = $delay; + } + + /// set result set format (hash or array; hash by default) + /// PHP specific; needed for group-by-MVA result sets that may contain duplicate IDs + function SetArrayResult ( $arrayresult ) + { + assert ( is_bool($arrayresult) ); + $this->_arrayresult = $arrayresult; + } + + /// set attribute values override + /// there can be only one override per attribute + /// $values must be a hash that maps document IDs to attribute values + function SetOverride ( $attrname, $attrtype, $values ) + { + assert ( is_string ( $attrname ) ); + assert ( in_array ( $attrtype, array ( SPH_ATTR_INTEGER, SPH_ATTR_TIMESTAMP, SPH_ATTR_BOOL, SPH_ATTR_FLOAT, SPH_ATTR_BIGINT ) ) ); + assert ( is_array ( $values ) ); + + $this->_overrides[$attrname] = array ( "attr"=>$attrname, "type"=>$attrtype, "values"=>$values ); + } + + /// set select-list (attributes or expressions), SQL-like syntax + function SetSelect ( $select ) + { + assert ( is_string ( $select ) ); + $this->_select = $select; + } + + ////////////////////////////////////////////////////////////////////////////// + + /// clear all filters (for multi-queries) + function ResetFilters () + { + $this->_filters = array(); + $this->_anchor = array(); + } + + /// clear groupby settings (for multi-queries) + function ResetGroupBy () + { + $this->_groupby = ""; + $this->_groupfunc = SPH_GROUPBY_DAY; + $this->_groupsort = "@group desc"; + $this->_groupdistinct= ""; + } + + /// clear all attribute value overrides (for multi-queries) + function ResetOverrides () + { + $this->_overrides = array (); + } + + ////////////////////////////////////////////////////////////////////////////// + + /// connect to searchd server, run given search query through given indexes, + /// and return the search results + function Query ( $query, $index="*", $comment="" ) + { + assert ( empty($this->_reqs) ); + + $this->AddQuery ( $query, $index, $comment ); + $results = $this->RunQueries (); + $this->_reqs = array (); // just in case it failed too early + + if ( !is_array($results) ) + return false; // probably network error; error message should be already filled + + $this->_error = $results[0]["error"]; + $this->_warning = $results[0]["warning"]; + if ( $results[0]["status"]==SEARCHD_ERROR ) + return false; + else + return $results[0]; + } + + /// helper to pack floats in network byte order + function _PackFloat ( $f ) + { + $t1 = pack ( "f", $f ); // machine order + list(,$t2) = unpack ( "L*", $t1 ); // int in machine order + return pack ( "N", $t2 ); + } + + /// add query to multi-query batch + /// returns index into results array from RunQueries() call + function AddQuery ( $query, $index="*", $comment="" ) + { + // mbstring workaround + $this->_MBPush (); + + // build request + $req = pack ( "NNNNN", $this->_offset, $this->_limit, $this->_mode, $this->_ranker, $this->_sort ); // mode and limits + $req .= pack ( "N", strlen($this->_sortby) ) . $this->_sortby; + $req .= pack ( "N", strlen($query) ) . $query; // query itself + $req .= pack ( "N", count($this->_weights) ); // weights + foreach ( $this->_weights as $weight ) + $req .= pack ( "N", (int)$weight ); + $req .= pack ( "N", strlen($index) ) . $index; // indexes + $req .= pack ( "N", 1 ); // id64 range marker + $req .= sphPackU64 ( $this->_min_id ) . sphPackU64 ( $this->_max_id ); // id64 range + + // filters + $req .= pack ( "N", count($this->_filters) ); + foreach ( $this->_filters as $filter ) + { + $req .= pack ( "N", strlen($filter["attr"]) ) . $filter["attr"]; + $req .= pack ( "N", $filter["type"] ); + switch ( $filter["type"] ) + { + case SPH_FILTER_VALUES: + $req .= pack ( "N", count($filter["values"]) ); + foreach ( $filter["values"] as $value ) + $req .= sphPackI64 ( $value ); + break; + + case SPH_FILTER_RANGE: + $req .= sphPackI64 ( $filter["min"] ) . sphPackI64 ( $filter["max"] ); + break; + + case SPH_FILTER_FLOATRANGE: + $req .= $this->_PackFloat ( $filter["min"] ) . $this->_PackFloat ( $filter["max"] ); + break; + + default: + assert ( 0 && "internal error: unhandled filter type" ); + } + $req .= pack ( "N", $filter["exclude"] ); + } + + // group-by clause, max-matches count, group-sort clause, cutoff count + $req .= pack ( "NN", $this->_groupfunc, strlen($this->_groupby) ) . $this->_groupby; + $req .= pack ( "N", $this->_maxmatches ); + $req .= pack ( "N", strlen($this->_groupsort) ) . $this->_groupsort; + $req .= pack ( "NNN", $this->_cutoff, $this->_retrycount, $this->_retrydelay ); + $req .= pack ( "N", strlen($this->_groupdistinct) ) . $this->_groupdistinct; + + // anchor point + if ( empty($this->_anchor) ) + { + $req .= pack ( "N", 0 ); + } else + { + $a =& $this->_anchor; + $req .= pack ( "N", 1 ); + $req .= pack ( "N", strlen($a["attrlat"]) ) . $a["attrlat"]; + $req .= pack ( "N", strlen($a["attrlong"]) ) . $a["attrlong"]; + $req .= $this->_PackFloat ( $a["lat"] ) . $this->_PackFloat ( $a["long"] ); + } + + // per-index weights + $req .= pack ( "N", count($this->_indexweights) ); + foreach ( $this->_indexweights as $idx=>$weight ) + $req .= pack ( "N", strlen($idx) ) . $idx . pack ( "N", $weight ); + + // max query time + $req .= pack ( "N", $this->_maxquerytime ); + + // per-field weights + $req .= pack ( "N", count($this->_fieldweights) ); + foreach ( $this->_fieldweights as $field=>$weight ) + $req .= pack ( "N", strlen($field) ) . $field . pack ( "N", $weight ); + + // comment + $req .= pack ( "N", strlen($comment) ) . $comment; + + // attribute overrides + $req .= pack ( "N", count($this->_overrides) ); + foreach ( $this->_overrides as $key => $entry ) + { + $req .= pack ( "N", strlen($entry["attr"]) ) . $entry["attr"]; + $req .= pack ( "NN", $entry["type"], count($entry["values"]) ); + foreach ( $entry["values"] as $id=>$val ) + { + assert ( is_numeric($id) ); + assert ( is_numeric($val) ); + + $req .= sphPackU64 ( $id ); + switch ( $entry["type"] ) + { + case SPH_ATTR_FLOAT: $req .= $this->_PackFloat ( $val ); break; + case SPH_ATTR_BIGINT: $req .= sphPackI64 ( $val ); break; + default: $req .= pack ( "N", $val ); break; + } + } + } + + // select-list + $req .= pack ( "N", strlen($this->_select) ) . $this->_select; + + // mbstring workaround + $this->_MBPop (); + + // store request to requests array + $this->_reqs[] = $req; + return count($this->_reqs)-1; + } + + /// connect to searchd, run queries batch, and return an array of result sets + function RunQueries () + { + if ( empty($this->_reqs) ) + { + $this->_error = "no queries defined, issue AddQuery() first"; + return false; + } + + // mbstring workaround + $this->_MBPush (); + + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop (); + return false; + } + + // send query, get response + $nreqs = count($this->_reqs); + $req = join ( "", $this->_reqs ); + $len = 4+strlen($req); + $req = pack ( "nnNN", SEARCHD_COMMAND_SEARCH, VER_COMMAND_SEARCH, $len, $nreqs ) . $req; // add header + + if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_SEARCH ) ) ) + { + $this->_MBPop (); + return false; + } + + // query sent ok; we can reset reqs now + $this->_reqs = array (); + + // parse and return response + return $this->_ParseSearchResponse ( $response, $nreqs ); + } + + /// parse and return search query (or queries) response + function _ParseSearchResponse ( $response, $nreqs ) + { + $p = 0; // current position + $max = strlen($response); // max position for checks, to protect against broken responses + + $results = array (); + for ( $ires=0; $ires<$nreqs && $p<$max; $ires++ ) + { + $results[] = array(); + $result =& $results[$ires]; + + $result["error"] = ""; + $result["warning"] = ""; + + // extract status + list(,$status) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $result["status"] = $status; + if ( $status!=SEARCHD_OK ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $message = substr ( $response, $p, $len ); $p += $len; + + if ( $status==SEARCHD_WARNING ) + { + $result["warning"] = $message; + } else + { + $result["error"] = $message; + continue; + } + } + + // read schema + $fields = array (); + $attrs = array (); + + list(,$nfields) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + while ( $nfields-->0 && $p<$max ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $fields[] = substr ( $response, $p, $len ); $p += $len; + } + $result["fields"] = $fields; + + list(,$nattrs) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + while ( $nattrs-->0 && $p<$max ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $attr = substr ( $response, $p, $len ); $p += $len; + list(,$type) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $attrs[$attr] = $type; + } + $result["attrs"] = $attrs; + + // read match count + list(,$count) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + list(,$id64) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + + // read matches + $idx = -1; + while ( $count-->0 && $p<$max ) + { + // index into result array + $idx++; + + // parse document id and weight + if ( $id64 ) + { + $doc = sphUnpackU64 ( substr ( $response, $p, 8 ) ); $p += 8; + list(,$weight) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + } + else + { + list ( $doc, $weight ) = array_values ( unpack ( "N*N*", + substr ( $response, $p, 8 ) ) ); + $p += 8; + + if ( PHP_INT_SIZE>=8 ) + { + // x64 route, workaround broken unpack() in 5.2.2+ + if ( $doc<0 ) $doc += (1<<32); + } else + { + // x32 route, workaround php signed/unsigned braindamage + $doc = sprintf ( "%u", $doc ); + } + } + $weight = sprintf ( "%u", $weight ); + + // create match entry + if ( $this->_arrayresult ) + $result["matches"][$idx] = array ( "id"=>$doc, "weight"=>$weight ); + else + $result["matches"][$doc]["weight"] = $weight; + + // parse and create attributes + $attrvals = array (); + foreach ( $attrs as $attr=>$type ) + { + // handle 64bit ints + if ( $type==SPH_ATTR_BIGINT ) + { + $attrvals[$attr] = sphUnpackI64 ( substr ( $response, $p, 8 ) ); $p += 8; + continue; + } + + // handle floats + if ( $type==SPH_ATTR_FLOAT ) + { + list(,$uval) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + list(,$fval) = unpack ( "f*", pack ( "L", $uval ) ); + $attrvals[$attr] = $fval; + continue; + } + + // handle everything else as unsigned ints + list(,$val) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + if ( $type & SPH_ATTR_MULTI ) + { + $attrvals[$attr] = array (); + $nvalues = $val; + while ( $nvalues-->0 && $p<$max ) + { + list(,$val) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $attrvals[$attr][] = sprintf ( "%u", $val ); + } + } else if ( $type==SPH_ATTR_STRING ) + { + $attrvals[$attr] = substr ( $response, $p, $val ); + $p += $val; + } else + { + $attrvals[$attr] = sprintf ( "%u", $val ); + } + } + + if ( $this->_arrayresult ) + $result["matches"][$idx]["attrs"] = $attrvals; + else + $result["matches"][$doc]["attrs"] = $attrvals; + } + + list ( $total, $total_found, $msecs, $words ) = + array_values ( unpack ( "N*N*N*N*", substr ( $response, $p, 16 ) ) ); + $result["total"] = sprintf ( "%u", $total ); + $result["total_found"] = sprintf ( "%u", $total_found ); + $result["time"] = sprintf ( "%.3f", $msecs/1000 ); + $p += 16; + + while ( $words-->0 && $p<$max ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $word = substr ( $response, $p, $len ); $p += $len; + list ( $docs, $hits ) = array_values ( unpack ( "N*N*", substr ( $response, $p, 8 ) ) ); $p += 8; + $result["words"][$word] = array ( + "docs"=>sprintf ( "%u", $docs ), + "hits"=>sprintf ( "%u", $hits ) ); + } + } + + $this->_MBPop (); + return $results; + } + + ///////////////////////////////////////////////////////////////////////////// + // excerpts generation + ///////////////////////////////////////////////////////////////////////////// + + /// connect to searchd server, and generate exceprts (snippets) + /// of given documents for given query. returns false on failure, + /// an array of snippets on success + function BuildExcerpts ( $docs, $index, $words, $opts=array() ) + { + assert ( is_array($docs) ); + assert ( is_string($index) ); + assert ( is_string($words) ); + assert ( is_array($opts) ); + + $this->_MBPush (); + + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return false; + } + + ///////////////// + // fixup options + ///////////////// + + if ( !isset($opts["before_match"]) ) $opts["before_match"] = ""; + if ( !isset($opts["after_match"]) ) $opts["after_match"] = ""; + if ( !isset($opts["chunk_separator"]) ) $opts["chunk_separator"] = " ... "; + if ( !isset($opts["limit"]) ) $opts["limit"] = 256; + if ( !isset($opts["around"]) ) $opts["around"] = 5; + if ( !isset($opts["exact_phrase"]) ) $opts["exact_phrase"] = false; + if ( !isset($opts["single_passage"]) ) $opts["single_passage"] = false; + if ( !isset($opts["use_boundaries"]) ) $opts["use_boundaries"] = false; + if ( !isset($opts["weight_order"]) ) $opts["weight_order"] = false; + if ( !isset($opts["query_mode"]) ) $opts["query_mode"] = false; + + ///////////////// + // build request + ///////////////// + + // v.1.0 req + $flags = 1; // remove spaces + if ( $opts["exact_phrase"] ) $flags |= 2; + if ( $opts["single_passage"] ) $flags |= 4; + if ( $opts["use_boundaries"] ) $flags |= 8; + if ( $opts["weight_order"] ) $flags |= 16; + if ( $opts["query_mode"] ) $flags |= 32; + $req = pack ( "NN", 0, $flags ); // mode=0, flags=$flags + $req .= pack ( "N", strlen($index) ) . $index; // req index + $req .= pack ( "N", strlen($words) ) . $words; // req words + + // options + $req .= pack ( "N", strlen($opts["before_match"]) ) . $opts["before_match"]; + $req .= pack ( "N", strlen($opts["after_match"]) ) . $opts["after_match"]; + $req .= pack ( "N", strlen($opts["chunk_separator"]) ) . $opts["chunk_separator"]; + $req .= pack ( "N", (int)$opts["limit"] ); + $req .= pack ( "N", (int)$opts["around"] ); + + // documents + $req .= pack ( "N", count($docs) ); + foreach ( $docs as $doc ) + { + assert ( is_string($doc) ); + $req .= pack ( "N", strlen($doc) ) . $doc; + } + + //////////////////////////// + // send query, get response + //////////////////////////// + + $len = strlen($req); + $req = pack ( "nnN", SEARCHD_COMMAND_EXCERPT, VER_COMMAND_EXCERPT, $len ) . $req; // add header + if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_EXCERPT ) ) ) + { + $this->_MBPop (); + return false; + } + + ////////////////// + // parse response + ////////////////// + + $pos = 0; + $res = array (); + $rlen = strlen($response); + for ( $i=0; $i $rlen ) + { + $this->_error = "incomplete reply"; + $this->_MBPop (); + return false; + } + $res[] = $len ? substr ( $response, $pos, $len ) : ""; + $pos += $len; + } + + $this->_MBPop (); + return $res; + } + + + ///////////////////////////////////////////////////////////////////////////// + // keyword generation + ///////////////////////////////////////////////////////////////////////////// + + /// connect to searchd server, and generate keyword list for a given query + /// returns false on failure, + /// an array of words on success + function BuildKeywords ( $query, $index, $hits ) + { + assert ( is_string($query) ); + assert ( is_string($index) ); + assert ( is_bool($hits) ); + + $this->_MBPush (); + + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return false; + } + + ///////////////// + // build request + ///////////////// + + // v.1.0 req + $req = pack ( "N", strlen($query) ) . $query; // req query + $req .= pack ( "N", strlen($index) ) . $index; // req index + $req .= pack ( "N", (int)$hits ); + + //////////////////////////// + // send query, get response + //////////////////////////// + + $len = strlen($req); + $req = pack ( "nnN", SEARCHD_COMMAND_KEYWORDS, VER_COMMAND_KEYWORDS, $len ) . $req; // add header + if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_KEYWORDS ) ) ) + { + $this->_MBPop (); + return false; + } + + ////////////////// + // parse response + ////////////////// + + $pos = 0; + $res = array (); + $rlen = strlen($response); + list(,$nwords) = unpack ( "N*", substr ( $response, $pos, 4 ) ); + $pos += 4; + for ( $i=0; $i<$nwords; $i++ ) + { + list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4; + $tokenized = $len ? substr ( $response, $pos, $len ) : ""; + $pos += $len; + + list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4; + $normalized = $len ? substr ( $response, $pos, $len ) : ""; + $pos += $len; + + $res[] = array ( "tokenized"=>$tokenized, "normalized"=>$normalized ); + + if ( $hits ) + { + list($ndocs,$nhits) = array_values ( unpack ( "N*N*", substr ( $response, $pos, 8 ) ) ); + $pos += 8; + $res [$i]["docs"] = $ndocs; + $res [$i]["hits"] = $nhits; + } + + if ( $pos > $rlen ) + { + $this->_error = "incomplete reply"; + $this->_MBPop (); + return false; + } + } + + $this->_MBPop (); + return $res; + } + + function EscapeString ( $string ) + { + $from = array ( '\\', '(',')','|','-','!','@','~','"','&', '/', '^', '$', '=' ); + $to = array ( '\\\\', '\(','\)','\|','\-','\!','\@','\~','\"', '\&', '\/', '\^', '\$', '\=' ); + + return str_replace ( $from, $to, $string ); + } + + ///////////////////////////////////////////////////////////////////////////// + // attribute updates + ///////////////////////////////////////////////////////////////////////////// + + /// batch update given attributes in given rows in given indexes + /// returns amount of updated documents (0 or more) on success, or -1 on failure + function UpdateAttributes ( $index, $attrs, $values, $mva=false ) + { + // verify everything + assert ( is_string($index) ); + assert ( is_bool($mva) ); + + assert ( is_array($attrs) ); + foreach ( $attrs as $attr ) + assert ( is_string($attr) ); + + assert ( is_array($values) ); + foreach ( $values as $id=>$entry ) + { + assert ( is_numeric($id) ); + assert ( is_array($entry) ); + assert ( count($entry)==count($attrs) ); + foreach ( $entry as $v ) + { + if ( $mva ) + { + assert ( is_array($v) ); + foreach ( $v as $vv ) + assert ( is_int($vv) ); + } else + assert ( is_int($v) ); + } + } + + // build request + $req = pack ( "N", strlen($index) ) . $index; + + $req .= pack ( "N", count($attrs) ); + foreach ( $attrs as $attr ) + { + $req .= pack ( "N", strlen($attr) ) . $attr; + $req .= pack ( "N", $mva ? 1 : 0 ); + } + + $req .= pack ( "N", count($values) ); + foreach ( $values as $id=>$entry ) + { + $req .= sphPackU64 ( $id ); + foreach ( $entry as $v ) + { + $req .= pack ( "N", $mva ? count($v) : $v ); + if ( $mva ) + foreach ( $v as $vv ) + $req .= pack ( "N", $vv ); + } + } + + // connect, send query, get response + if (!( $fp = $this->_Connect() )) + return -1; + + $len = strlen($req); + $req = pack ( "nnN", SEARCHD_COMMAND_UPDATE, VER_COMMAND_UPDATE, $len ) . $req; // add header + if ( !$this->_Send ( $fp, $req, $len+8 ) ) + return -1; + + if (!( $response = $this->_GetResponse ( $fp, VER_COMMAND_UPDATE ) )) + return -1; + + // parse response + list(,$updated) = unpack ( "N*", substr ( $response, 0, 4 ) ); + return $updated; + } + + ///////////////////////////////////////////////////////////////////////////// + // persistent connections + ///////////////////////////////////////////////////////////////////////////// + + function Open() + { + if ( $this->_socket !== false ) + { + $this->_error = 'already connected'; + return false; + } + if ( !$fp = $this->_Connect() ) + return false; + + // command, command version = 0, body length = 4, body = 1 + $req = pack ( "nnNN", SEARCHD_COMMAND_PERSIST, 0, 4, 1 ); + if ( !$this->_Send ( $fp, $req, 12 ) ) + return false; + + $this->_socket = $fp; + return true; + } + + function Close() + { + if ( $this->_socket === false ) + { + $this->_error = 'not connected'; + return false; + } + + fclose ( $this->_socket ); + $this->_socket = false; + + return true; + } + + ////////////////////////////////////////////////////////////////////////// + // status + ////////////////////////////////////////////////////////////////////////// + + function Status () + { + $this->_MBPush (); + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return false; + } + + $req = pack ( "nnNN", SEARCHD_COMMAND_STATUS, VER_COMMAND_STATUS, 4, 1 ); // len=4, body=1 + if ( !( $this->_Send ( $fp, $req, 12 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_STATUS ) ) ) + { + $this->_MBPop (); + return false; + } + + $res = substr ( $response, 4 ); // just ignore length, error handling, etc + $p = 0; + list ( $rows, $cols ) = array_values ( unpack ( "N*N*", substr ( $response, $p, 8 ) ) ); $p += 8; + + $res = array(); + for ( $i=0; $i<$rows; $i++ ) + for ( $j=0; $j<$cols; $j++ ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $res[$i][] = substr ( $response, $p, $len ); $p += $len; + } + + $this->_MBPop (); + return $res; + } +} + +// +// $Id$ +// \ No newline at end of file diff --git a/system/classes/swfupload/cancelbutton.gif b/system/classes/swfupload/cancelbutton.gif new file mode 100644 index 0000000000000000000000000000000000000000..eab2a40c5efd92484ead7c05d1d31d555b5a3476 GIT binary patch literal 1221 zcmV;$1UmaiNk%w1VH^Ms0QUd@aX2${I5T%SICMZec}GEkJ2-iBL+CLqL~6K%PKB zo<&2NOG27WLYzxOolQWPQ(2mLaH2&-piV%jLPn}aOsYvpqE1n+Q$wOvS+GS#vPwv^ zNld*&N4-Z$y-QENNK>|1T)t3Pt6pTFY;L7*a;$iIwqRwndVIn*Ny0Zx$~Q>LJ4VVl zNXt4+%RNocJ4((yOV2$`$~srhJX6v;O42<|)jmnpK26X*SK2;R+&xm`K2pX`PQ^%3 z$w*SpUPHi9Q^8nS!C6|uSzf_hU&>xy)94x*jrx0 zUSP#qVbWS;)>>oBVMEVjL(*kK)@DQ6XGGd)Lc?Ki#b;^HU|`N>Xvt}5&1`MSb$7{k zc*uBr&3Sv-V`bT8X4++H-ezstXlvSPY}{>q-gI{4Lr>*GSLH=l=|fcMMOW=ZRO?hv z;!<7kMpN)cR`N<#^GaCdZcONEOzCh;?Q%@MhOZIe4<7#T@Y;5diapHG(=X!g( zeSyh+fTDtXt%rW7jfJ+8i@lJLy`Pr7xVXZHipPS9#fXp0frZJ1i^_$L%7&22iIU5U zl*)~j%a54Lk&nuen#_@z%#oVRlbp?zo6MD+&YPOvnW5F9qSLOj(z2}8v$x`fhT(^c z=ZK5qjgaP%mf(|{;+CD`m!jmBpyQaL&h%=BTjdsIup(v)8=9*S*5S$i~IU#?H&Y$;`^l%*xQo$J5Ko(az1)&(GS$ z$I;T!*VNM6($U@3)!Nz8+uGXQ+S%UT+uz^a-QnNv#K`Q(!r+J6B^6%~U?CbXQ?DzKd`S9@g_VfAo_4@kv{P_0! z`}qI>00000A^8LW00930EC2ui02}}g000R80PUHpv!$THf?$-{`$lVui-!;&N`dvw zoSt&((rMhN4qcvNw8G4S_N=5yXtk`QvUAKCGiJ+PE{oZ$nHMUnUg>P5v!_lNT#yYL z)+?E?VZ?|HHJ0ZED^sROxhhra)TvUYP+18|?AJPe%zoj+XUy2KJ5EoL(su3@DR17a zs;c6|7_eme`su6JuV1V^zTB+1sw&*LaNWj@1GQ$93>Lw7?UI#mpJh)%mN0>_p_Hgk zo5G13ePe+R9VJHS%9ZODynFZPk!kWLP>TeiELoa!4IDUbGk5?QvLOR5TejZGo99km zJV}KPohU#jjvQ;-wpH7PZ444D8VpdPn#3ntyGk<1k;7x?5QhM8-mvLJ%?1i-(ZnFp zf&fA!NL`qa!x2s3KtmsgxCcNRSHz$|4G#FALI^!z!5;=+5TXPTMJ(ZmAb=QR2qF;> z@B|bOFwnpbKNt~25=m$w04Eg;qDUf(Fw%%4JU)^FCYczJMHFS2aRwS{B$ 0) { + this.opacity -= reduceOpacityBy; + if (this.opacity < 0) { + this.opacity = 0; + } + + if (this.fileProgressWrapper.filters) { + try { + this.fileProgressWrapper.filters.item("DXImageTransform.Microsoft.Alpha").opacity = this.opacity; + } catch (e) { + // If it is not set initially, the browser will throw an error. This will set it if it is not set yet. + this.fileProgressWrapper.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + this.opacity + ")"; + } + } else { + this.fileProgressWrapper.style.opacity = this.opacity / 100; + } + } + + if (this.height > 0) { + this.height -= reduceHeightBy; + if (this.height < 0) { + this.height = 0; + } + + this.fileProgressWrapper.style.height = this.height + "px"; + } + + if (this.height > 0 || this.opacity > 0) { + var oSelf = this; + setTimeout(function () { + oSelf.disappear(); + }, rate); + } else { + this.fileProgressWrapper.style.display = "none"; + } +}; \ No newline at end of file diff --git a/system/classes/swfupload/handlers.js b/system/classes/swfupload/handlers.js new file mode 100644 index 0000000..d04a853 --- /dev/null +++ b/system/classes/swfupload/handlers.js @@ -0,0 +1,200 @@ +/* Demo Note: This demo uses a FileProgress class that handles the UI for displaying the file name and percent complete. +The FileProgress class is not part of SWFUpload. +*/ + + +/* ********************** + Event Handlers + These are my custom event handlers to make my + web application behave the way I went when SWFUpload + completes different tasks. These aren't part of the SWFUpload + package. They are part of my application. Without these none + of the actions SWFUpload makes will show up in my application. + ********************** */ +function fileQueued(file) { + try { + var progress = new FileProgress(file, this.customSettings.progressTarget); + progress.setStatus(" î÷åðåäè ..."); + progress.toggleCancel(true, this); + + } catch (ex) { + this.debug(ex); + } + +} + +function fileQueueError(file, errorCode, message) { + try { + if (errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) { + alert("Âû âûáðàëè ñëèøêîì ìíîãî ôàéëîâ.\n" + (message === 0 ? "Âû ïðåâûñèëè ëèìèò." : "Âû ìîæåòå âûáðàòü " + (message > 1 ? "íå áîëåå " + message + " ôàéëîâ." : "îäèí ôàéë."))); + return; + } + + var progress = new FileProgress(file, this.customSettings.progressTarget); + progress.setError(); + progress.toggleCancel(false); + + switch (errorCode) { + case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT: + progress.setStatus("Ôàéë ñëèøêîì áîëüøîé."); + this.debug("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + message); + break; + case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE: + progress.setStatus("Íåâîçìîæíî çàãðóçèòü ôàéë íóëåâîãî ðàçìåðà."); + this.debug("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message); + break; + case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE: + progress.setStatus("Íåâåðíûé òèï ôàéëà."); + this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message); + break; + default: + if (file !== null) { + progress.setStatus("Íåèçâåñòíàÿ îøèáêà"); + } + this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message); + break; + } + } catch (ex) { + this.debug(ex); + } +} + +function fileDialogComplete(numFilesSelected, numFilesQueued) { + try { + if (numFilesSelected > 0) { + document.getElementById(this.customSettings.cancelButtonId).disabled = false; + } + + /* I want auto start the upload and I can do that here */ + + elements = document.getElementById("form").elements; + for(i=0; i < elements.length; i++) { + name = elements[i].name + if (name) { + value = ''; + switch(elements[i].type) { + case "select" : + value = elements[i].options[elements[i].selectedIndex].value + break; + case "radio": + case "checkbox": + value = elements[i].checked ? 1: 0; + break; + default: + value = elements[i].value; + break; + } + this.addPostParam(name, value); + } + } + + + this.startUpload(); + + } catch (ex) { + this.debug(ex); + } +} + +function uploadStart(file) { + try { + /* I don't want to do any file validation or anything, I'll just update the UI and + return true to indicate that the upload should start. + It's important to update the UI here because in Linux no uploadProgress events are called. The best + we can do is say we are uploading. + */ + var progress = new FileProgress(file, this.customSettings.progressTarget); + progress.setStatus("Çàãðóçêà..."); + progress.toggleCancel(true, this); + } + catch (ex) {} + + return true; +} + +function uploadProgress(file, bytesLoaded, bytesTotal) { + try { + var percent = Math.ceil((bytesLoaded / bytesTotal) * 100); + + var progress = new FileProgress(file, this.customSettings.progressTarget); + progress.setProgress(percent); + progress.setStatus("Çàãðóçêà..."); + } catch (ex) { + this.debug(ex); + } +} + +function uploadSuccess(file, serverData) { + try { + var progress = new FileProgress(file, this.customSettings.progressTarget); + progress.setComplete(); + progress.setStatus("Çàâåðøåíî."); + progress.toggleCancel(false); + + } catch (ex) { + this.debug(ex); + } +} + +function uploadError(file, errorCode, message) { + try { + var progress = new FileProgress(file, this.customSettings.progressTarget); + progress.setError(); + progress.toggleCancel(false); + + switch (errorCode) { + case SWFUpload.UPLOAD_ERROR.HTTP_ERROR: + progress.setStatus("Îøèáêà: " + message); + this.debug("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message); + break; + case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED: + progress.setStatus("Îøèáêà çàãðóçêè."); + this.debug("Error Code: Upload Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message); + break; + case SWFUpload.UPLOAD_ERROR.IO_ERROR: + progress.setStatus("Server (IO) Error"); + this.debug("Error Code: IO Error, File name: " + file.name + ", Message: " + message); + break; + case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR: + progress.setStatus("Îøèáêà áåçîïàñíîñòè"); + this.debug("Error Code: Security Error, File name: " + file.name + ", Message: " + message); + break; + case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED: + progress.setStatus("Ïðåâûøåí ëèìèò çàãðóçêè."); + this.debug("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message); + break; + case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED: + progress.setStatus("Îøèáêà èäåíòèôèêàöèè. Çàãðóçêà ïðîïóùåíà."); + this.debug("Error Code: File Validation Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message); + break; + case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED: + // If there aren't any files left (they were all cancelled) disable the cancel button + if (this.getStats().files_queued === 0) { + document.getElementById(this.customSettings.cancelButtonId).disabled = true; + } + progress.setStatus("Îòìåíåíî"); + progress.setCancelled(); + break; + case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED: + progress.setStatus("Îñòàíîâëåíî"); + break; + default: + progress.setStatus("Íåèçâåñòíàÿ îøèáêà: " + errorCode); + this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message); + break; + } + } catch (ex) { + this.debug(ex); + } +} + +function uploadComplete(file) { + if (this.getStats().files_queued === 0) { + document.getElementById(this.customSettings.cancelButtonId).disabled = true; + } +} + +// This event comes from the Queue Plugin +function queueComplete(numFilesUploaded) { +setTimeout('location.replace( window.location )', 2000); +} diff --git a/system/classes/swfupload/swfupload.js b/system/classes/swfupload/swfupload.js new file mode 100644 index 0000000..7d309d6 --- /dev/null +++ b/system/classes/swfupload/swfupload.js @@ -0,0 +1,840 @@ +/** + * SWFUpload v2.1.0 by Jacob Roberts, Feb 2008, http://www.swfupload.org, http://swfupload.googlecode.com, http://www.swfupload.org + * -------- -------- -------- -------- -------- -------- -------- -------- + * SWFUpload is (c) 2006 Lars Huring, Olov Nilzén and Mammon Media and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + * See Changelog.txt for version history + * + */ + + +/* *********** */ +/* Constructor */ +/* *********** */ + +var SWFUpload = function (settings) { + this.initSWFUpload(settings); +}; + +SWFUpload.prototype.initSWFUpload = function (settings) { + try { + this.customSettings = {}; // A container where developers can place their own settings associated with this instance. + this.settings = settings; + this.eventQueue = []; + this.movieName = "SWFUpload_" + SWFUpload.movieCount++; + this.movieElement = null; + + // Setup global control tracking + SWFUpload.instances[this.movieName] = this; + + // Load the settings. Load the Flash movie. + this.initSettings(); + this.loadFlash(); + this.displayDebugInfo(); + } catch (ex) { + delete SWFUpload.instances[this.movieName]; + throw ex; + } +}; + +/* *************** */ +/* Static Members */ +/* *************** */ +SWFUpload.instances = {}; +SWFUpload.movieCount = 0; +SWFUpload.version = "2.2.0 Alpha"; +SWFUpload.QUEUE_ERROR = { + QUEUE_LIMIT_EXCEEDED : -100, + FILE_EXCEEDS_SIZE_LIMIT : -110, + ZERO_BYTE_FILE : -120, + INVALID_FILETYPE : -130 +}; +SWFUpload.UPLOAD_ERROR = { + HTTP_ERROR : -200, + MISSING_UPLOAD_URL : -210, + IO_ERROR : -220, + SECURITY_ERROR : -230, + UPLOAD_LIMIT_EXCEEDED : -240, + UPLOAD_FAILED : -250, + SPECIFIED_FILE_ID_NOT_FOUND : -260, + FILE_VALIDATION_FAILED : -270, + FILE_CANCELLED : -280, + UPLOAD_STOPPED : -290 +}; +SWFUpload.FILE_STATUS = { + QUEUED : -1, + IN_PROGRESS : -2, + ERROR : -3, + COMPLETE : -4, + CANCELLED : -5 +}; +SWFUpload.BUTTON_ACTION = { + SELECT_FILE : -100, + SELECT_FILES : -110, + START_UPLOAD : -120 +}; + +/* ******************** */ +/* Instance Members */ +/* ******************** */ + +// Private: initSettings ensures that all the +// settings are set, getting a default value if one was not assigned. +SWFUpload.prototype.initSettings = function () { + this.ensureDefault = function (settingName, defaultValue) { + this.settings[settingName] = (this.settings[settingName] == undefined) ? defaultValue : this.settings[settingName]; + }; + + // Upload backend settings + this.ensureDefault("upload_url", ""); + this.ensureDefault("file_post_name", "Filedata"); + this.ensureDefault("post_params", {}); + this.ensureDefault("use_query_string", false); + this.ensureDefault("requeue_on_error", false); + + // File Settings + this.ensureDefault("file_types", "*.*"); + this.ensureDefault("file_types_description", "All Files"); + this.ensureDefault("file_size_limit", 0); // Default zero means "unlimited" + this.ensureDefault("file_upload_limit", 0); + this.ensureDefault("file_queue_limit", 0); + + // Flash Settings + this.ensureDefault("flash_url", "swfupload_f9.swf"); + this.ensureDefault("flash_color", "#FFFFFF"); + this.ensureDefault("flash_wmode", "transparent"); + this.ensureDefault("flash_container_id", null); + this.ensureDefault("flash_width", '100%'); + this.ensureDefault("flash_height", '100%'); + + // Button Settings + /* + this.ensureDefault("button_image_url", 0); + this.ensureDefault("button_width", 1); + this.ensureDefault("button_height", 1); + this.ensureDefault("button_text", ""); + this.ensureDefault("button_text_style", ""); + this.ensureDefault("button_action", SWFUpload.BUTTON_ACTION.SELECT_FILES); + this.ensureDefault("button_disabled", false); + this.ensureDefault("button_placeholder_id", null); + */ + + // Debug Settings + this.ensureDefault("debug", false); + this.settings.debug_enabled = this.settings.debug; // Here to maintain v2 API + + // Event Handlers + this.settings.return_upload_start_handler = this.returnUploadStart; + this.ensureDefault("swfupload_loaded_handler", null); + this.ensureDefault("file_dialog_start_handler", null); + this.ensureDefault("file_queued_handler", null); + this.ensureDefault("file_queue_error_handler", null); + this.ensureDefault("file_dialog_complete_handler", null); + + this.ensureDefault("upload_start_handler", null); + this.ensureDefault("upload_progress_handler", null); + this.ensureDefault("upload_error_handler", null); + this.ensureDefault("upload_success_handler", null); + this.ensureDefault("upload_complete_handler", null); + + this.ensureDefault("debug_handler", this.debugMessage); + + this.ensureDefault("custom_settings", {}); + + // Other settings + this.customSettings = this.settings.custom_settings; + + delete this.ensureDefault; +}; + +SWFUpload.prototype.loadFlash = function () { + this.insertFlash(); +}; + +// Private: appendFlash gets the HTML tag for the Flash +// It then appends the flash to the body +SWFUpload.prototype.appendFlash = function () { + var targetElement, container; + + // Make sure an element with the ID we are going to use doesn't already exist + if (document.getElementById(this.movieName) !== null) { + throw "ID " + this.movieName + " is already in use. The Flash Object could not be added"; + } + + // Get the body tag where we will be adding the flash movie + targetElement = document.getElementsByTagName("body")[0]; + + if (targetElement == undefined) { + throw "Could not find the 'body' element."; + } + + // Append the container and load the flash + container = document.createElement("div"); + container.style.width = "1px"; + container.style.height = "1px"; + + targetElement.appendChild(container); + container.innerHTML = this.getFlashHTML(); // Using innerHTML is non-standard but the only sensible way to dynamically add Flash in IE (and maybe other browsers) +}; + +// Private: insertFlash inserts the flash movie into the container element. +SWFUpload.prototype.insertFlash = function () { + var targetElement, container; + + // Make sure an element with the ID we are going to use doesn't already exist + if (document.getElementById(this.movieName) !== null) { + throw "ID " + this.movieName + " is already in use. The Flash Object could not be added"; + } + + // Get the container elt into which we'll insert the flash movie + containerElement = document.getElementById(this.settings.flash_container_id); + + if (containerElement == undefined) { + throw "Could not find the container element."; + } + + // place flash embed inside the container element + containerElement.innerHTML = this.getFlashHTML(); +}; + +// Private: getFlashHTML generates the object tag needed to embed the flash in to the document +SWFUpload.prototype.getFlashHTML = function () { + // Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay + return ['', + '', + '', + '', + '', + '', + '', + '', + ''].join(""); +}; + +// Private: getFlashVars builds the parameter string that will be passed +// to flash in the flashvars param. +SWFUpload.prototype.getFlashVars = function () { + // Build a string from the post param object + var paramString = this.buildParamString(); + + // Build the parameter string + return ["movieName=", encodeURIComponent(this.movieName), + "&uploadURL=", encodeURIComponent(this.settings.upload_url), + "&useQueryString=", encodeURIComponent(this.settings.use_query_string), + "&requeueOnError=", encodeURIComponent(this.settings.requeue_on_error), + "&params=", encodeURIComponent(paramString), + "&filePostName=", encodeURIComponent(this.settings.file_post_name), + "&fileTypes=", encodeURIComponent(this.settings.file_types), + "&fileTypesDescription=", encodeURIComponent(this.settings.file_types_description), + "&fileSizeLimit=", encodeURIComponent(this.settings.file_size_limit), + "&fileUploadLimit=", encodeURIComponent(this.settings.file_upload_limit), + "&fileQueueLimit=", encodeURIComponent(this.settings.file_queue_limit), + //"&buttonImage_url=", encodeURIComponent(this.settings.button_image_url), + //"&buttonWidth=", encodeURIComponent(this.settings.button_width), + //"&buttonHeight=", encodeURIComponent(this.settings.button_height), + //"&buttonText=", encodeURIComponent(this.settings.button_text), + //"&buttonTextStyle=", encodeURIComponent(this.settings.button_text_style), + //"&buttonAction=", encodeURIComponent(this.settings.button_action), + //"&buttonDisabled=", encodeURIComponent(this.settings.button_disabled) + ].join(""); +}; + +// Public: getMovieElement retrieves the DOM reference to the Flash element added by SWFUpload +// The element is cached after the first lookup +SWFUpload.prototype.getMovieElement = function () { + if (this.movieElement == undefined) { + this.movieElement = document.getElementById(this.movieName); + } + + if (this.movieElement === null) { + throw "Could not find Flash element"; + } + + return this.movieElement; +}; + +// Private: buildParamString takes the name/value pairs in the post_params setting object +// and joins them up in to a string formatted "name=value&name=value" +SWFUpload.prototype.buildParamString = function () { + var postParams = this.settings.post_params; + var paramStringPairs = []; + + if (typeof(postParams) === "object") { + for (var name in postParams) { + if (postParams.hasOwnProperty(name)) { + paramStringPairs.push(encodeURIComponent(name.toString()) + "=" + encodeURIComponent(postParams[name].toString())); + } + } + } + + return paramStringPairs.join("&"); +}; + +// Public: Used to remove a SWFUpload instance from the page. This method strives to remove +// all references to the SWF, and other objects so memory is properly freed. +// Returns true if everything was destroyed. Returns a false if a failure occurs leaving SWFUpload in an inconsistant state. +SWFUpload.prototype.destroy = function () { + try { + // Make sure Flash is done before we try to remove it + this.stopUpload(); + + // Remove the SWFUpload DOM nodes + var movieElement = null; + try { + movieElement = this.getMovieElement(); + } catch (ex) { + } + + if (movieElement != undefined && movieElement.parentNode != undefined && typeof(movieElement.parentNode.removeChild) === "function") { + var container = movieElement.parentNode; + if (container != undefined) { + container.removeChild(movieElement); + if (container.parentNode != undefined && typeof(container.parentNode.removeChild) === "function") { + container.parentNode.removeChild(container); + } + } + } + + // Destroy references + SWFUpload.instances[this.movieName] = null; + delete SWFUpload.instances[this.movieName]; + + delete this.movieElement; + delete this.settings; + delete this.customSettings; + delete this.eventQueue; + delete this.movieName; + + return true; + } catch (ex1) { + return false; + } +}; + +// Public: displayDebugInfo prints out settings and configuration +// information about this SWFUpload instance. +// This function (and any references to it) can be deleted when placing +// SWFUpload in production. +SWFUpload.prototype.displayDebugInfo = function () { + this.debug( + [ + "---SWFUpload Instance Info---\n", + "Version: ", SWFUpload.version, "\n", + "Movie Name: ", this.movieName, "\n", + "Settings:\n", + "\t", "upload_url: ", this.settings.upload_url, "\n", + "\t", "use_query_string: ", this.settings.use_query_string.toString(), "\n", + "\t", "file_post_name: ", this.settings.file_post_name, "\n", + "\t", "post_params: ", this.settings.post_params.toString(), "\n", + "\t", "file_types: ", this.settings.file_types, "\n", + "\t", "file_types_description: ", this.settings.file_types_description, "\n", + "\t", "file_size_limit: ", this.settings.file_size_limit, "\n", + "\t", "file_upload_limit: ", this.settings.file_upload_limit, "\n", + "\t", "file_queue_limit: ", this.settings.file_queue_limit, "\n", + "\t", "flash_url: ", this.settings.flash_url, "\n", + "\t", "flash_color: ", this.settings.flash_color, "\n", + "\t", "debug: ", this.settings.debug.toString(), "\n", + "\t", "custom_settings: ", this.settings.custom_settings.toString(), "\n", + "Event Handlers:\n", + "\t", "swfupload_loaded_handler assigned: ", (typeof(this.settings.swfupload_loaded_handler) === "function").toString(), "\n", + "\t", "file_dialog_start_handler assigned: ", (typeof(this.settings.file_dialog_start_handler) === "function").toString(), "\n", + "\t", "file_queued_handler assigned: ", (typeof(this.settings.file_queued_handler) === "function").toString(), "\n", + "\t", "file_queue_error_handler assigned: ", (typeof(this.settings.file_queue_error_handler) === "function").toString(), "\n", + "\t", "upload_start_handler assigned: ", (typeof(this.settings.upload_start_handler) === "function").toString(), "\n", + "\t", "upload_progress_handler assigned: ", (typeof(this.settings.upload_progress_handler) === "function").toString(), "\n", + "\t", "upload_error_handler assigned: ", (typeof(this.settings.upload_error_handler) === "function").toString(), "\n", + "\t", "upload_success_handler assigned: ", (typeof(this.settings.upload_success_handler) === "function").toString(), "\n", + "\t", "upload_complete_handler assigned: ", (typeof(this.settings.upload_complete_handler) === "function").toString(), "\n", + "\t", "debug_handler assigned: ", (typeof(this.settings.debug_handler) === "function").toString(), "\n" + ].join("") + ); +}; + +/* Note: addSetting and getSetting are no longer used by SWFUpload but are included + the maintain v2 API compatibility +*/ +// Public: (Deprecated) addSetting adds a setting value. If the value given is undefined or null then the default_value is used. +SWFUpload.prototype.addSetting = function (name, value, default_value) { + if (value == undefined) { + return (this.settings[name] = default_value); + } else { + return (this.settings[name] = value); + } +}; + +// Public: (Deprecated) getSetting gets a setting. Returns an empty string if the setting was not found. +SWFUpload.prototype.getSetting = function (name) { + if (this.settings[name] != undefined) { + return this.settings[name]; + } + + return ""; +}; + + + +// Private: callFlash handles function calls made to the Flash element. +// Calls are made with a setTimeout for some functions to work around +// bugs in the ExternalInterface library. +SWFUpload.prototype.callFlash = function (functionName, argumentArray) { + argumentArray = argumentArray || []; + + var self = this; + var callFunction = function () { + var movieElement = self.getMovieElement(); + var returnValue; + if (typeof(movieElement[functionName]) === "function") { + // We have to go through all this if/else stuff because the Flash functions don't have apply() and only accept the exact number of arguments. + if (argumentArray.length === 0) { + returnValue = movieElement[functionName](); + } else if (argumentArray.length === 1) { + returnValue = movieElement[functionName](argumentArray[0]); + } else if (argumentArray.length === 2) { + returnValue = movieElement[functionName](argumentArray[0], argumentArray[1]); + } else if (argumentArray.length === 3) { + returnValue = movieElement[functionName](argumentArray[0], argumentArray[1], argumentArray[2]); + } else { + throw "Too many arguments"; + } + + // Unescape file post param values + if (returnValue != undefined && typeof(returnValue.post) === "object") { + returnValue = self.unescapeFilePostParams(returnValue); + } + + return returnValue; + } else { + throw "Invalid function name"; + } + }; + + return callFunction(); +}; + + +/* ***************************** + -- Flash control methods -- + Your UI should use these + to operate SWFUpload + ***************************** */ + +// Public: selectFile causes a File Selection Dialog window to appear. This +// dialog only allows 1 file to be selected. WARNING: this function does not work in Flash Player 10 +SWFUpload.prototype.selectFile = function () { + this.callFlash("SelectFile"); +}; + +// Public: selectFiles causes a File Selection Dialog window to appear/ This +// dialog allows the user to select any number of files +// Flash Bug Warning: Flash limits the number of selectable files based on the combined length of the file names. +// If the selection name length is too long the dialog will fail in an unpredictable manner. There is no work-around +// for this bug. WARNING: this function does not work in Flash Player 10 +SWFUpload.prototype.selectFiles = function () { + this.callFlash("SelectFiles"); +}; + + +// Public: startUpload starts uploading the first file in the queue unless +// the optional parameter 'fileID' specifies the ID +SWFUpload.prototype.startUpload = function (fileID) { + this.callFlash("StartUpload", [fileID]); +}; + +/* Cancels a the file upload. You must specify a file_id */ +// Public: cancelUpload cancels any queued file. The fileID parameter +// must be specified. +SWFUpload.prototype.cancelUpload = function (fileID) { + this.callFlash("CancelUpload", [fileID]); +}; + +// Public: stopUpload stops the current upload and requeues the file at the beginning of the queue. +// If nothing is currently uploading then nothing happens. +SWFUpload.prototype.stopUpload = function () { + this.callFlash("StopUpload"); +}; + +/* ************************ + * Settings methods + * These methods change the SWFUpload settings. + * SWFUpload settings should not be changed directly on the settings object + * since many of the settings need to be passed to Flash in order to take + * effect. + * *********************** */ + +// Public: getStats gets the file statistics object. +SWFUpload.prototype.getStats = function () { + return this.callFlash("GetStats"); +}; + +// Public: setStats changes the SWFUpload statistics. You shouldn't need to +// change the statistics but you can. Changing the statistics does not +// affect SWFUpload accept for the successful_uploads count which is used +// by the upload_limit setting to determine how many files the user may upload. +SWFUpload.prototype.setStats = function (statsObject) { + this.callFlash("SetStats", [statsObject]); +}; + +// Public: getFile retrieves a File object by ID or Index. If the file is +// not found then 'null' is returned. +SWFUpload.prototype.getFile = function (fileID) { + if (typeof(fileID) === "number") { + return this.callFlash("GetFileByIndex", [fileID]); + } else { + return this.callFlash("GetFile", [fileID]); + } +}; + +// Public: addFileParam sets a name/value pair that will be posted with the +// file specified by the Files ID. If the name already exists then the +// exiting value will be overwritten. +SWFUpload.prototype.addFileParam = function (fileID, name, value) { + return this.callFlash("AddFileParam", [fileID, name, value]); +}; + +// Public: removeFileParam removes a previously set (by addFileParam) name/value +// pair from the specified file. +SWFUpload.prototype.removeFileParam = function (fileID, name) { + this.callFlash("RemoveFileParam", [fileID, name]); +}; + +// Public: setUploadUrl changes the upload_url setting. +SWFUpload.prototype.setUploadURL = function (url) { + this.settings.upload_url = url.toString(); + this.callFlash("SetUploadURL", [url]); +}; + +// Public: setPostParams changes the post_params setting +SWFUpload.prototype.setPostParams = function (paramsObject) { + this.settings.post_params = paramsObject; + this.callFlash("SetPostParams", [paramsObject]); +}; + +// Public: addPostParam adds post name/value pair. Each name can have only one value. +SWFUpload.prototype.addPostParam = function (name, value) { + this.settings.post_params[name] = value; + this.callFlash("SetPostParams", [this.settings.post_params]); +}; + +// Public: removePostParam deletes post name/value pair. +SWFUpload.prototype.removePostParam = function (name) { + delete this.settings.post_params[name]; + this.callFlash("SetPostParams", [this.settings.post_params]); +}; + +// Public: setFileTypes changes the file_types setting and the file_types_description setting +SWFUpload.prototype.setFileTypes = function (types, description) { + this.settings.file_types = types; + this.settings.file_types_description = description; + this.callFlash("SetFileTypes", [types, description]); +}; + +// Public: setFileSizeLimit changes the file_size_limit setting +SWFUpload.prototype.setFileSizeLimit = function (fileSizeLimit) { + this.settings.file_size_limit = fileSizeLimit; + this.callFlash("SetFileSizeLimit", [fileSizeLimit]); +}; + +// Public: setFileUploadLimit changes the file_upload_limit setting +SWFUpload.prototype.setFileUploadLimit = function (fileUploadLimit) { + this.settings.file_upload_limit = fileUploadLimit; + this.callFlash("SetFileUploadLimit", [fileUploadLimit]); +}; + +// Public: setFileQueueLimit changes the file_queue_limit setting +SWFUpload.prototype.setFileQueueLimit = function (fileQueueLimit) { + this.settings.file_queue_limit = fileQueueLimit; + this.callFlash("SetFileQueueLimit", [fileQueueLimit]); +}; + +// Public: setFilePostName changes the file_post_name setting +SWFUpload.prototype.setFilePostName = function (filePostName) { + this.settings.file_post_name = filePostName; + this.callFlash("SetFilePostName", [filePostName]); +}; + +// Public: setUseQueryString changes the use_query_string setting +SWFUpload.prototype.setUseQueryString = function (useQueryString) { + this.settings.use_query_string = useQueryString; + this.callFlash("SetUseQueryString", [useQueryString]); +}; + +// Public: setRequeueOnError changes the requeue_on_error setting +SWFUpload.prototype.setRequeueOnError = function (requeueOnError) { + this.settings.requeue_on_error = requeueOnError; + this.callFlash("SetRequeueOnError", [requeueOnError]); +}; + +// Public: setDebugEnabled changes the debug_enabled setting +SWFUpload.prototype.setDebugEnabled = function (debugEnabled) { + this.settings.debug_enabled = debugEnabled; + this.callFlash("SetDebugEnabled", [debugEnabled]); +}; + +// Public: setButtonImageURL loads a button image sprite +SWFUpload.prototype.setButtonImageURL = function (buttonImageURL) { + this.settings.button_image_url = buttonImageURL; + this.callFlash("SetButtonImageURL", [buttonImageURL]); +}; + +// Public: setButtonDimensions resizes the Flash Movie and button +SWFUpload.prototype.setButtonDimensions = function (width, height) { + this.settings.button_width = width; + this.settings.button_height = height; + + this.callFlash("SetButtonDimensions", [width, height]); +}; +// Public: setButtonText Changes the text overlaid on the button +SWFUpload.prototype.setButtonText = function (html) { + this.settings.button_text= html; + this.callFlash("SetButtonText", [html]); +}; +// Public: setButtonTextStyle changes the CSS used to style the HTML/Text overlaid on the button +SWFUpload.prototype.setButtonTextStyle = function (css) { + this.settings.button_text_style = css; + this.callFlash("SetButtonTextStyle", [css]); +}; +// Public: setButtonDisabled disables/enables the button +SWFUpload.prototype.setButtonDisabled = function (isDisabled) { + this.settings.button_disabled = isDisabled; + this.callFlash("SetButtonDisabled", [isDisabled]); +}; +// Public: setButtonAction sets the action that occurs when the button is clicked +SWFUpload.prototype.setButtonAction = function (buttonAction) { + this.settings.button_action = buttonAction; + this.callFlash("SetButtonAction", [buttonAction]); +}; + +/* ******************************* + Flash Event Interfaces + These functions are used by Flash to trigger the various + events. + + All these functions a Private. + + Because the ExternalInterface library is buggy the event calls + are added to a queue and the queue then executed by a setTimeout. + This ensures that events are executed in a determinate order and that + the ExternalInterface bugs are avoided. +******************************* */ + +SWFUpload.prototype.queueEvent = function (handlerName, argumentArray) { + // Warning: Don't call this.debug inside here or you'll create an infinite loop + + if (argumentArray == undefined) { + argumentArray = []; + } else if (!(argumentArray instanceof Array)) { + argumentArray = [argumentArray]; + } + + var self = this; + if (typeof(this.settings[handlerName]) === "function") { + // Queue the event + this.eventQueue.push(function () { + this.settings[handlerName].apply(this, argumentArray); + }); + + // Execute the next queued event + setTimeout(function () { + self.executeNextEvent(); + }, 0); + + } else if (this.settings[handlerName] !== null) { + throw "Event handler " + handlerName + " is unknown or is not a function"; + } +}; + +// Private: Causes the next event in the queue to be executed. Since events are queued using a setTimeout +// we must queue them in order to garentee that they are executed in order. +SWFUpload.prototype.executeNextEvent = function () { + // Warning: Don't call this.debug inside here or you'll create an infinite loop + + var f = this.eventQueue ? this.eventQueue.shift() : null; + if (typeof(f) === "function") { + f.apply(this); + } +}; + +// Private: unescapeFileParams is part of a workaround for a flash bug where objects passed through ExternalInterfance cannot have +// properties that contain characters that are not valid for JavaScript identifiers. To work around this +// the Flash Component escapes the parameter names and we must unescape again before passing them along. +SWFUpload.prototype.unescapeFilePostParams = function (file) { + var reg = /[$]([0-9a-f]{4})/i; + var unescapedPost = {}; + var uk; + + if (file != undefined) { + for (var k in file.post) { + if (file.post.hasOwnProperty(k)) { + uk = k; + var match; + while ((match = reg.exec(uk)) !== null) { + uk = uk.replace(match[0], String.fromCharCode(parseInt("0x"+match[1], 16))); + } + unescapedPost[uk] = file.post[k]; + } + } + + file.post = unescapedPost; + } + + return file; +}; + +SWFUpload.prototype.flashReady = function () { + // Check that the movie element is loaded correctly with its ExternalInterface methods defined + var movieElement = this.getMovieElement(); + if (typeof(movieElement.StartUpload) !== "function") { + throw "ExternalInterface methods failed to initialize."; + } + + this.queueEvent("swfupload_loaded_handler"); +}; + + +/* This is a chance to do something before the browse window opens */ +SWFUpload.prototype.fileDialogStart = function () { + this.queueEvent("file_dialog_start_handler"); +}; + + +/* Called when a file is successfully added to the queue. */ +SWFUpload.prototype.fileQueued = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("file_queued_handler", file); +}; + + +/* Handle errors that occur when an attempt to queue a file fails. */ +SWFUpload.prototype.fileQueueError = function (file, errorCode, message) { + file = this.unescapeFilePostParams(file); + this.queueEvent("file_queue_error_handler", [file, errorCode, message]); +}; + +/* Called after the file dialog has closed and the selected files have been queued. + You could call startUpload here if you want the queued files to begin uploading immediately. */ +SWFUpload.prototype.fileDialogComplete = function (numFilesSelected, numFilesQueued) { + this.queueEvent("file_dialog_complete_handler", [numFilesSelected, numFilesQueued]); +}; + +SWFUpload.prototype.uploadStart = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("return_upload_start_handler", file); +}; + +SWFUpload.prototype.returnUploadStart = function (file) { + var returnValue; + if (typeof(this.settings.upload_start_handler) === "function") { + file = this.unescapeFilePostParams(file); + returnValue = this.settings.upload_start_handler.call(this, file); + } else if (this.settings.upload_start_handler != undefined) { + throw "upload_start_handler must be a function"; + } + + // Convert undefined to true so if nothing is returned from the upload_start_handler it is + // interpretted as 'true'. + if (returnValue === undefined) { + returnValue = true; + } + + returnValue = !!returnValue; + + this.callFlash("ReturnUploadStart", [returnValue]); +}; + + + +SWFUpload.prototype.uploadProgress = function (file, bytesComplete, bytesTotal) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_progress_handler", [file, bytesComplete, bytesTotal]); +}; + +SWFUpload.prototype.uploadError = function (file, errorCode, message) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_error_handler", [file, errorCode, message]); +}; + +SWFUpload.prototype.uploadSuccess = function (file, serverData) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_success_handler", [file, serverData]); +}; + +SWFUpload.prototype.uploadComplete = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_complete_handler", file); +}; + +/* Called by SWFUpload JavaScript and Flash functions when debug is enabled. By default it writes messages to the + internal debug console. You can override this event and have messages written where you want. */ +SWFUpload.prototype.debug = function (message) { + this.queueEvent("debug_handler", message); +}; + + +/* ********************************** + Debug Console + The debug console is a self contained, in page location + for debug message to be sent. The Debug Console adds + itself to the body if necessary. + + The console is automatically scrolled as messages appear. + + If you are using your own debug handler or when you deploy to production and + have debug disabled you can remove these functions to reduce the file size + and complexity. +********************************** */ + +// Private: debugMessage is the default debug_handler. If you want to print debug messages +// call the debug() function. When overriding the function your own function should +// check to see if the debug setting is true before outputting debug information. +SWFUpload.prototype.debugMessage = function (message) { + if (this.settings.debug) { + var exceptionMessage, exceptionValues = []; + + // Check for an exception object and print it nicely + if (typeof(message) === "object" && typeof(message.name) === "string" && typeof(message.message) === "string") { + for (var key in message) { + if (message.hasOwnProperty(key)) { + exceptionValues.push(key + ": " + message[key]); + } + } + exceptionMessage = exceptionValues.join("\n") || ""; + exceptionValues = exceptionMessage.split("\n"); + exceptionMessage = "EXCEPTION: " + exceptionValues.join("\nEXCEPTION: "); + SWFUpload.Console.writeLine(exceptionMessage); + } else { + SWFUpload.Console.writeLine(message); + } + } +}; + +SWFUpload.Console = {}; +SWFUpload.Console.writeLine = function (message) { + var console, documentForm; + + try { + console = document.getElementById("SWFUpload_Console"); + + if (!console) { + documentForm = document.createElement("form"); + document.getElementsByTagName("body")[0].appendChild(documentForm); + + console = document.createElement("textarea"); + console.id = "SWFUpload_Console"; + console.style.fontFamily = "monospace"; + console.setAttribute("wrap", "off"); + console.wrap = "off"; + console.style.overflow = "auto"; + console.style.width = "700px"; + console.style.height = "350px"; + console.style.margin = "5px"; + documentForm.appendChild(console); + } + + console.value += message + "\n"; + + console.scrollTop = console.scrollHeight - console.clientHeight; + } catch (ex) { + alert("Exception: " + ex.name + " Message: " + ex.message); + } +}; diff --git a/system/classes/swfupload/swfupload.queue.js b/system/classes/swfupload/swfupload.queue.js new file mode 100644 index 0000000..b04d87a --- /dev/null +++ b/system/classes/swfupload/swfupload.queue.js @@ -0,0 +1,77 @@ +/* + Queue Plug-in + + Features: + *Adds a cancelQueue() method for cancelling the entire queue. + *All queued files are uploaded when startUpload() is called. + *If false is returned from uploadComplete then the queue upload is stopped. + If false is not returned (strict comparison) then the queue upload is continued. + *Adds a QueueComplete event that is fired when all the queued files have finished uploading. + Set the event handler with the queue_complete_handler setting. + + */ + +var SWFUpload; +if (typeof(SWFUpload) === "function") { + SWFUpload.queue = {}; + + SWFUpload.prototype.initSettings = (function (oldInitSettings) { + return function () { + if (typeof(oldInitSettings) === "function") { + oldInitSettings.call(this); + } + + this.customSettings.queue_cancelled_flag = false; + this.customSettings.queue_upload_count = 0; + + this.settings.user_upload_complete_handler = this.settings.upload_complete_handler; + this.settings.upload_complete_handler = SWFUpload.queue.uploadCompleteHandler; + + this.settings.queue_complete_handler = this.settings.queue_complete_handler || null; + }; + })(SWFUpload.prototype.initSettings); + + SWFUpload.prototype.startUpload = function (fileID) { + this.customSettings.queue_cancelled_flag = false; + this.callFlash("StartUpload", false, [fileID]); + }; + + SWFUpload.prototype.cancelQueue = function () { + this.customSettings.queue_cancelled_flag = true; + this.stopUpload(); + + var stats = this.getStats(); + while (stats.files_queued > 0) { + this.cancelUpload(); + stats = this.getStats(); + } + }; + + SWFUpload.queue.uploadCompleteHandler = function (file) { + var user_upload_complete_handler = this.settings.user_upload_complete_handler; + var continueUpload; + + if (file.filestatus === SWFUpload.FILE_STATUS.COMPLETE) { + this.customSettings.queue_upload_count++; + } + + if (typeof(user_upload_complete_handler) === "function") { + continueUpload = (user_upload_complete_handler.call(this, file) === false) ? false : true; + } else { + continueUpload = true; + } + + if (continueUpload) { + var stats = this.getStats(); + if (stats.files_queued > 0 && this.customSettings.queue_cancelled_flag === false) { + this.startUpload(); + } else if (this.customSettings.queue_cancelled_flag === false) { + this.queueEvent("queue_complete_handler", [this.customSettings.queue_upload_count]); + this.customSettings.queue_upload_count = 0; + } else { + this.customSettings.queue_cancelled_flag = false; + this.customSettings.queue_upload_count = 0; + } + } + }; +} \ No newline at end of file diff --git a/system/classes/swfupload/swfupload.swf b/system/classes/swfupload/swfupload.swf new file mode 100644 index 0000000000000000000000000000000000000000..2b94b5d665879e6ba678aa74e12fa59d02d7521e GIT binary patch literal 9917 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 A%m4rY literal 0 HcmV?d00001 diff --git a/system/classes/templates.class.php b/system/classes/templates.class.php new file mode 100644 index 0000000..0072f4a --- /dev/null +++ b/system/classes/templates.class.php @@ -0,0 +1,225 @@ + '', 'vote' => '', 'speedbar' => '', 'content' => '' ); + var $allow_php_include = true; + + function set($name, $var) { + if( is_array( $var ) && count( $var ) ) { + foreach ( $var as $key => $key_var ) { + $this->set( $key, $key_var ); + } + } else + $this->data[$name] = $var; + } + + function set_block($name, $var) { + if( is_array( $var ) && count( $var ) ) { + foreach ( $var as $key => $key_var ) { + $this->set_block( $key, $key_var ); + } + } else + $this->block_data[$name] = $var; + } + + function load_template($tpl_name) { + + if( $this->CacheTemplate[ $tpl_name ] ){ + $this->copy_template = $this->CacheTemplate[ $tpl_name ]; + return true; + } + + if( $tpl_name == '' || ! file_exists( $this->dir . DIRECTORY_SEPARATOR . $tpl_name ) ) { + die( "Íåâîçìîæíî çàãðóçèòü øàáëîí: " . $tpl_name ); + return false; + } + + $this->template = file_get_contents( $this->dir . DIRECTORY_SEPARATOR . $tpl_name ); + + if (strpos ( $this->template, "[aviable=" ) !== false) {$this->template = preg_replace ( "#\\[aviable=(.+?)\\](.*?)\\[/aviable\\]#ies", "\$this->check_module('\\1', '\\2')", $this->template );} + if (strpos ( $this->template, "[not-aviable=" ) !== false) {$this->template = preg_replace ( "#\\[not-aviable=(.+?)\\](.*?)\\[/not-aviable\\]#ies", "\$this->check_module('\\1', '\\2', false)", $this->template );} + if (strpos ( $this->template, "[not-group=" ) !== false) {$this->template = preg_replace ( "#\\[not-group=(.+?)\\](.*?)\\[/not-group\\]#ies", "\$this->check_group('\\1', '\\2', false)", $this->template );} + if (strpos ( $this->template, "[group=" ) !== false) {$this->template = preg_replace ( "#\\[group=(.+?)\\](.*?)\\[/group\\]#ies", "\$this->check_group('\\1', '\\2')", $this->template );} + if (strpos ( $this->template, "{include file=" ) !== false ) {$this->template = preg_replace( "#\\{include file=['\"](.+?)['\"]\\}#ies", "\$this->load_file('\\1', 'tpl')", $this->template );} + + $this->copy_template = $this->template; + + $this->CacheTemplate[ $tpl_name ] = $this->template; + + return true; + } + + function load_file( $name, $include_file = "tpl" ) { + global $db, $is_logged, $member_id, $cat_info, $config, $user_group, $category_id, $_TIME, $lang, $smartphone_detected, $dle_module; + + $name = str_replace( '..', '', $name ); + + $url = @parse_url ($name); + $type = explode( ".", $url['path'] ); + $type = strtolower( end( $type ) ); + + if ($type == "tpl") {return $this->sub_load_template( $name );} + + if ($include_file == "php") { + + if ( !$this->allow_php_include ) return; + + if ($type != "php") return "Äëÿ ïîäêëþ÷åíèÿ äîïóñêàþòñÿ òîëüêî ôàéëû ñ ðàñøèðåíèåì .tpl èëè .php"; + + if ($url['path']{0} == "/" )$file_path = dirname (ROOT_DIR.$url['path']); + else $file_path = dirname (ROOT_DIR."/".$url['path']); + + $file_name = pathinfo($url['path']); + $file_name = $file_name['basename']; + + if ( stristr ( php_uname( "s" ) , "windows" ) === false ) + $chmod_value = @decoct(@fileperms($file_path)) % 1000; + + if ($chmod_value == 777 ) return "Ôàéë {$url['path']} íàõîäèòñÿ â ïàïêå, êîòîðàÿ äîñòóïíà äëÿ çàïèñè (CHMOD 777).  öåëÿõ áåçîïàñíîñòè ïîäêëþ÷åíèå ôàéëîâ èç òàêèõ ïàïîê íåâîçìîæíî. Èçìåíèòå ïðàâà íà ïàïêó, ÷òîáû íà íåå íåáûëî ïðàâ íà çàïèñü."; + if ( !file_exists($file_path."/".$file_name) ) return "Ôàéë {$url['path']} íå íàéäåí, åãî çàãðóçêà íåâîçìîæíà."; + + if ( $url['query'] ) {parse_str( $url['query'] );} + + ob_start(); + $tpl = new dle_template( ); + $tpl->dir = TEMPLATE_DIR; + include $file_path."/".$file_name; + return ob_get_clean(); + } + return '{include file="'.$name.'"}'; + } + + function sub_load_template( $tpl_name ) { + + $tpl_name = totranslit( $tpl_name ); + + if( $tpl_name == '' || ! file_exists( $this->dir . DIRECTORY_SEPARATOR . $tpl_name ) ) { + return "Îòñóòñòâóåò ôàéë øàáëîíà: " . $tpl_name ; + return false; + } + $template = file_get_contents( $this->dir . DIRECTORY_SEPARATOR . $tpl_name ); + + if (strpos ( $template, "[aviable=" ) !== false) {$template = preg_replace ( "#\\[aviable=(.+?)\\](.*?)\\[/aviable\\]#ies", "\$this->check_module('\\1', '\\2')", $template );} + if (strpos ( $template, "[not-aviable=" ) !== false) {$template = preg_replace ( "#\\[not-aviable=(.+?)\\](.*?)\\[/not-aviable\\]#ies", "\$this->check_module('\\1', '\\2', false)", $template );} + if (strpos ( $template, "[not-group=" ) !== false) {$template = preg_replace ( "#\\[not-group=(.+?)\\](.*?)\\[/not-group\\]#ies", "\$this->check_group('\\1', '\\2', false)", $template );} + if (strpos ( $this->template, "{if " ) !== false) {$this->template = preg_replace ( "#{if (.+?)}(.*?){/if}#ies", "$this->check_else('1', '2', false)", $this->template );} + if (strpos ( $template, "[group=" ) !== false) {$template = preg_replace ( "#\\[group=(.+?)\\](.*?)\\[/group\\]#ies", "\$this->check_group('\\1', '\\2')", $template );} + + return $template; + } + + function check_module($aviable, $block, $action = true) { + global $dle_module; + + $aviable = explode( '|', $aviable ); + + $block = str_replace( '\"', '"', $block ); + + if( $action ) { + + if( ! (in_array( $dle_module, $aviable )) and ($aviable[0] != "global") ) return ""; + else return $block; + + } else { + + if( (in_array( $dle_module, $aviable )) ) return ""; + else return $block; + + } + + } + + function check_group($groups, $block, $action = true) { + global $member_id; + + $groups = explode( ',', $groups ); + + if( $action ) { + + if( ! in_array( $member_id['user_group'], $groups ) ) return ""; + + } else { + + if( in_array( $member_id['user_group'], $groups ) ) return ""; + + } + + $block = str_replace( '\"', '"', $block ); + + return $block; + + } + + function _clear() { + + $this->data = array (); + $this->block_data = array (); + $this->copy_template = $this->template; + + } + + function clear() { + + $this->data = array (); + $this->block_data = array (); + $this->copy_template = null; + $this->template = null; + + } + + function global_clear() { + + $this->data = array (); + $this->block_data = array (); + $this->result = array (); + $this->copy_template = null; + $this->template = null; + + } + + function compile($tpl) { + if( count( $this->block_data ) ) { + foreach ( $this->block_data as $key_find => $key_replace ) { + $find_preg[] = $key_find; + $replace_preg[] = $key_replace; + } + + $this->copy_template = preg_replace( $find_preg, $replace_preg, $this->copy_template ); + } + + foreach ( $this->data as $key_find => $key_replace ) { + $find[] = $key_find; + $replace[] = $key_replace; + } + + $this->copy_template = str_replace( $find, $replace, $this->copy_template ); + + if( strpos( $this->copy_template, "{include file=" ) !== false ) { + + $this->copy_template = preg_replace( "#\\{include file=['\"](.+?)['\"]\\}#ies", "\$this->load_file('\\1', 'php')", $this->copy_template ); + + } + + if( isset( $this->result[$tpl] ) ) $this->result[$tpl] .= $this->copy_template; + else $this->result[$tpl] = $this->copy_template; + + $this->_clear(); + } + + function check_else($condition, $block){ + global $GLOBALS; + extract($GLOBALS, EXTR_SKIP, ""); + if(is_array($matches=explode("{else}",$block))) { + $block=$matches[0]; + $else=$matches[1]; + } + if(eval(("return $condition;"))) return str_replace( '"', '"', $block ); + return str_replace( '"', '"', $else ); + } +} +?> \ No newline at end of file diff --git a/system/classes/thumb.class.php b/system/classes/thumb.class.php new file mode 100644 index 0000000..8893966 --- /dev/null +++ b/system/classes/thumb.class.php @@ -0,0 +1,258 @@ +img['format'] = "JPEG"; + $this->img['src'] = @imagecreatefromjpeg( $imgfile ); + } elseif( $info[2] == 3 ) { + $this->img['format'] = "PNG"; + $this->img['src'] = @imagecreatefrompng( $imgfile ); + } elseif( $info[2] == 1 ) { + $this->img['format'] = "GIF"; + $this->img['src'] = @imagecreatefromgif( $imgfile ); + } else { + echo "Not Supported File! Thumbnails can only be made from .jpg, gif and .png images!"; + @unlink( $imgfile ); + exit(); + } + + if( !$this->img['src'] ) { + echo "Not Supported File! Thumbnails can only be made from .jpg, gif and .png images!"; + @unlink( $imgfile ); + exit(); + + } + + $this->img['lebar'] = @imagesx( $this->img['src'] ); + $this->img['tinggi'] = @imagesy( $this->img['src'] ); + $this->img['lebar_thumb'] = $this->img['lebar']; + $this->img['tinggi_thumb'] = $this->img['tinggi']; + //default quality jpeg + $this->img['quality'] = 90; + } + + function size_auto($size = 100, $site = 0) { + + $size = explode ("x", $size); + + if ( count($size) == 2 ) { + $size[0] = intval($size[0]); + $size[1] = intval($size[1]); + return $this->crop( intval($size[0]), intval($size[1]) ); + + } else { + $size[0] = intval($size[0]); + return $this->scale( intval($size[0]), $site); + + } + + } + + function crop($nw, $nh) { + + $w = $this->img['lebar']; + $h = $this->img['tinggi']; + + if( $w <= $nw AND $h <= $nh ) { + $this->img['lebar_thumb'] = $w; + $this->img['tinggi_thumb'] = $h; + return 0; + } + + $nw = min($nw, $w); + $nh = min($nh, $h); + + $size_ratio = max($nw / $w, $nh / $h); + + $src_w = ceil($nw / $size_ratio); + $src_h = ceil($nh / $size_ratio); + + $sx = floor(($w - $src_w)/2); + $sy = floor(($h - $src_h)/2); + + $this->img['des'] = imagecreatetruecolor($nw, $nh); + + if ( $this->img['format'] == "PNG" ) { + imagealphablending( $this->img['des'], false); + imagesavealpha( $this->img['des'], true); + } + + imagecopyresampled($this->img['des'],$this->img['src'],0,0,$sx,$sy,$nw,$nh,$src_w,$src_h); + + $this->img['src'] = $this->img['des']; + return 1; + } + + function scale($size = 100, $site = 0) { + + $site = intval( $site ); + + if( $this->img['lebar'] <= $size and $this->img['tinggi'] <= $size ) { + $this->img['lebar_thumb'] = $this->img['lebar']; + $this->img['tinggi_thumb'] = $this->img['tinggi']; + return 0; + } + + switch ($site) { + + case "1" : + if( $this->img['lebar'] <= $size ) { + $this->img['lebar_thumb'] = $this->img['lebar']; + $this->img['tinggi_thumb'] = $this->img['tinggi']; + return 0; + } else { + $this->img['lebar_thumb'] = $size; + $this->img['tinggi_thumb'] = ($this->img['lebar_thumb'] / $this->img['lebar']) * $this->img['tinggi']; + } + + break; + + case "2" : + if( $this->img['tinggi'] <= $size ) { + $this->img['lebar_thumb'] = $this->img['lebar']; + $this->img['tinggi_thumb'] = $this->img['tinggi']; + return 0; + } else { + $this->img['tinggi_thumb'] = $size; + $this->img['lebar_thumb'] = ($this->img['tinggi_thumb'] / $this->img['tinggi']) * $this->img['lebar']; + } + + break; + + default : + + if( $this->img['lebar'] >= $this->img['tinggi'] ) { + $this->img['lebar_thumb'] = $size; + $this->img['tinggi_thumb'] = ($this->img['lebar_thumb'] / $this->img['lebar']) * $this->img['tinggi']; + + } else { + + $this->img['tinggi_thumb'] = $size; + $this->img['lebar_thumb'] = ($this->img['tinggi_thumb'] / $this->img['tinggi']) * $this->img['lebar']; + + } + + break; + } + if ($this->img['lebar_thumb'] < 1 ) $this->img['lebar_thumb'] = 1; + if ($this->img['tinggi_thumb'] < 1 ) $this->img['tinggi_thumb'] = 1; + $this->img['des'] = imagecreatetruecolor( $this->img['lebar_thumb'], $this->img['tinggi_thumb'] ); + + if ( $this->img['format'] == "PNG" ) { + imagealphablending( $this->img['des'], false); + imagesavealpha( $this->img['des'], true); + } + + @imagecopyresampled( $this->img['des'], $this->img['src'], 0, 0, 0, 0, $this->img['lebar_thumb'], $this->img['tinggi_thumb'], $this->img['lebar'], $this->img['tinggi'] ); + + $this->img['src'] = $this->img['des']; + return 1; + + } + + function jpeg_quality($quality = 90) { + //jpeg quality + $this->img['quality'] = $quality; + } + + function save($save = "") { + + if( $this->img['format'] == "JPG" || $this->img['format'] == "JPEG" ) { + //JPEG + imagejpeg( $this->img['src'], $save, $this->img['quality'] ); + } elseif( $this->img['format'] == "PNG" ) { + //PNG + imagealphablending( $this->img['src'], false); + imagesavealpha( $this->img['src'], true); + imagepng( $this->img['src'], $save ); + } elseif( $this->img['format'] == "GIF" ) { + //GIF + imagegif( $this->img['src'], $save ); + } + + imagedestroy( $this->img['src'] ); + } + + function show() { + if( $this->img['format'] == "JPG" || $this->img['format'] == "JPEG" ) { + //JPEG + imageJPEG( $this->img['src'], "", $this->img['quality'] ); + } elseif( $this->img['format'] == "PNG" ) { + //PNG + imagePNG( $this->img['src'] ); + } elseif( $this->img['format'] == "GIF" ) { + //GIF + imageGIF( $this->img['src'] ); + } + + imagedestroy( $this->img['src'] ); + } + + // ************************************************************************* + function insert_watermark($min_image) { + global $config; + $margin = 7; + + $this->watermark_image_light = ROOT_DIR . '/templates/' . $config['skin'] . '/images/watermark.png'; + $this->watermark_image_dark = ROOT_DIR . '/templates/' . $config['skin'] . '/images/watermark.png'; + + $image_width = imagesx( $this->img['src'] ); + $image_height = imagesy( $this->img['src'] ); + + list ( $watermark_width, $watermark_height ) = getimagesize( $this->watermark_image_light ); + + $watermark_x = $image_width - $margin - $watermark_width + $margin; + //$watermark_y = $image_height - $margin - $watermark_height; + $watermark_y = $image_height - $watermark_height; + + $watermark_x2 = $watermark_x + $watermark_width; + $watermark_y2 = $watermark_y + $watermark_height; + + if( $watermark_x < 0 or $watermark_y < 0 or $watermark_x2 > $image_width or $watermark_y2 > $image_height or $image_width < $min_image or $image_height < $min_image ) { + return; + } + + $test = imagecreatetruecolor( 1, 1 ); + imagecopyresampled( $test, $this->img['src'], 0, 0, $watermark_x, $watermark_y, 1, 1, $watermark_width, $watermark_height ); + $rgb = imagecolorat( $test, 0, 0 ); + + $r = ($rgb >> 16) & 0xFF; + $g = ($rgb >> 8) & 0xFF; + $b = $rgb & 0xFF; + + $max = min( $r, $g, $b ); + $min = max( $r, $g, $b ); + $lightness = ( double ) (($max + $min) / 510.0); + imagedestroy( $test ); + + $watermark_image = ($lightness < 0.5) ? $this->watermark_image_light : $this->watermark_image_dark; + + $watermark = imagecreatefrompng( $watermark_image ); + + imagealphablending( $this->img['src'], TRUE ); + imagealphablending( $watermark, TRUE ); + + if( $this->img['format'] == "PNG" ) { + $png8fix = imagecreatetruecolor( $image_width, $image_height ); + imagecopy( $png8fix, $this->img['src'], 0, 0, 0, 0, $image_width, $image_height ); + imagecopy( $png8fix, $watermark, $watermark_x, $watermark_y, 0, 0, $watermark_width, $watermark_height ); + imagecopy( $this->img['src'], $png8fix, 0, 0, 0, 0, $image_width, $image_height ); + imagedestroy( $png8fix ); + }else imagecopy( $this->img['src'], $watermark, $watermark_x, $watermark_y, 0, 0, $watermark_width, $watermark_height ); + + imagedestroy( $watermark ); + + } + +} +?> \ No newline at end of file diff --git a/system/classes/torrent.class.php b/system/classes/torrent.class.php new file mode 100644 index 0000000..e0a06ca --- /dev/null +++ b/system/classes/torrent.class.php @@ -0,0 +1,537 @@ + 4096 ) + return self::set_error( new Exception( 'Invalid piece lenth, must be between 32 and 4096' ) ); + if ( is_string( $meta ) ) + $meta = array( 'announce' => $meta ); + if ( $this->build( $data, $piece_length * 1024 ) ) + $this->touch(); + else + $meta = array_merge( $meta, $this->decode( $data ) ); + foreach( $meta as $key => $value ) + $this->{$key} = $value; + } + + public function __toString() { + return $this->encode( $this ); + } + + public function error() { + return empty( self::$_errors ) ? + false : + self::$_errors[0]->getMessage(); + } + + public function errors() { + return empty( self::$_errors ) ? + false : + self::$_errors; + } + + public function announce ( $announce = null ) { + if ( is_null( $announce ) ) + return ! isset( $this->{'announce-list'} ) ? + isset( $this->announce ) ? $this->announce : null : + $this->{'announce-list'}; + $this->touch(); + if ( is_string( $announce ) && isset( $this->announce ) ) + return $this->{'announce-list'} = self::announce_list( isset( $this->{'announce-list'} ) ? $this->{'announce-list'} : $this->announce, $announce ); + unset( $this->{'announce-list'} ); + if ( is_array( $announce ) || is_object( $announce ) ) + if ( ( $this->announce = self::first_announce( $announce ) ) && count( $announce ) > 1 ) + return $this->{'announce-list'} = self::announce_list( $announce ); + else + return $this->announce; + if ( ! isset( $this->announce ) && $announce ) + return $this->announce = (string) $announce; + unset( $this->announce ); + } + + public function comment ( $comment = null ) { + return is_null( $comment ) ? + isset( $this->comment ) ? $this->comment : null : + $this->touch( $this->comment = (string) $comment ); + } + + public function name ( $name = null ) { + return is_null( $name ) ? + isset( $this->info['name'] ) ? $this->info['name'] : null : + $this->touch( $this->info['name'] = (string) $name ); + } + + public function is_private ( $private = null ) { + return is_null( $private ) ? + ! empty( $this->info['private'] ) : + $this->touch( $this->info['private'] = $private ? 1 : 0 ); + } + + public function url_list ( $urls = null ) { + return is_null( $urls ) ? + isset( $this->{'url-list'} ) ? $this->{'url-list'} : null : + $this->touch( $this->{'url-list'} = is_string( $urls) ? $urls : (array) $urls ); + } + + public function httpseeds ( $urls = null ) { + return is_null( $urls ) ? + isset( $this->httpseeds ) ? $this->httpseeds : null : + $this->touch( $this->httpseeds = (array) $urls ); + } + + public function piece_length () { + return isset( $this->info['piece length'] ) ? + $this->info['piece length'] : + null; + } + + public function hash_info () { + return isset( $this->info ) ? + sha1( self::encode( $this->info ) ) : + null; + } + + public function content ( $precision = null ) { + $files = array(); + if ( isset( $this->info['files'] ) && is_array( $this->info['files'] ) ) + foreach ( $this->info['files'] as $file ) + $files[self::path( $file['path'], $this->info['name'] )] = $precision ? + self::format( $file['length'], $precision ) : + $file['length']; + elseif ( isset( $this->info['name'] ) ) + $files[$this->info['name']] = $precision ? + self::format( $this->info['length'], $precision ) : + $this->info['length']; + return $files; + } + + public function offset () { + $files = array(); + $size = 0; + if ( isset( $this->info['files'] ) && is_array( $this->info['files'] ) ) + foreach ( $this->info['files'] as $file ) + $files[self::path( $file['path'], $this->info['name'] )] = array( + 'startpiece' => floor( $size / $this->info['piece length'] ), + 'offset' => fmod( $size, $this->info['piece length'] ), + 'size' => $size += $file['length'], + 'endpiece' => floor( $size / $this->info['piece length'] ) + ); + elseif ( isset( $this->info['name'] ) ) + $files[$this->info['name']] = array( + 'startpiece' => 0, + 'offset' => 0, + 'size' => $this->info['length'], + 'endpiece' => floor( $this->info['length'] / $this->info['piece length'] ) + ); + return $files; + } + + public function size ( $precision = null ) { + $size = 0; + if ( isset( $this->info['files'] ) && is_array( $this->info['files'] ) ) + foreach ( $this->info['files'] as $file ) + $size += $file['length']; + elseif ( isset( $this->info['name'] ) ) + $size = $this->info['length']; + return is_null( $precision ) ? + $size : + self::format( $size, $precision ); + } + + public function scrape ( $announce = null, $hash_info = null, $timeout = self::timeout ) { + $packed_hash = urlencode( pack('H*', $hash_info ? $hash_info : $this->hash_info() ) ); + $handles = $scrape = array(); + if ( ! function_exists( 'curl_multi_init' ) ) + return self::set_error( new Exception( 'Install CURL with "curl_multi_init" enabled' ) ); + $curl = curl_multi_init(); + foreach ( (array) ($announce ? $announce : $this->announce()) as $tier ) + foreach ( (array) $tier as $tracker ) { + $tracker = str_ireplace( array( 'udp://', '/announce', ':80/' ), array( 'http://', '/scrape', '/' ), $tracker ); + if ( isset( $handles[$tracker] ) ) + continue; + $handles[$tracker] = curl_init( $tracker . '?info_hash=' . $packed_hash ); + curl_setopt( $handles[$tracker], CURLOPT_RETURNTRANSFER, true ); + curl_setopt( $handles[$tracker], CURLOPT_TIMEOUT, $timeout ); + curl_multi_add_handle( $curl, $handles[$tracker] ); + } + do { + while ( ( $state = curl_multi_exec( $curl, $running ) ) == CURLM_CALL_MULTI_PERFORM ); + if( $state != CURLM_OK ) + continue; + while ( $done = curl_multi_info_read( $curl ) ) { + $info = curl_getinfo( $done['handle'] ); + $tracker = explode( '?', $info['url'], 2 ); + $tracker = array_shift( $tracker ); + if ( empty( $info['http_code'] ) ) { + $scrape[$tracker] = self::set_error( new Exception( 'Tracker request timeout (' . $timeout . 's)' ), true ); + continue; + } elseif ( $info['http_code'] != 200 ) { + $scrape[$tracker] = self::set_error( new Exception( 'Tracker request failed (' . $info['http_code'] . ' code)' ), true ); + continue; + } + $data = curl_multi_getcontent( $done['handle'] ); + $stats = self::decode_data( $data ); + curl_multi_remove_handle( $curl, $done['handle'] ); + $scrape[$tracker] = empty( $stats['files'] ) ? + self::set_error( new Exception( 'Empty scrape data' ), true ) : + array_shift( $stats['files'] ) + ( empty( $stats['flags'] ) ? array() : $stats['flags'] ); + } + } while ( $running ); + curl_multi_close( $curl ); + return $scrape; + } + + public function save ( $filename = null ) { + return file_put_contents( is_null( $filename ) ? $this->info['name'] . '.torrent' : $filename, $this->encode( $this ) ); + } + + public function send ( $filename = null ) { + $data = $this->encode( $this ); + header( 'Content-type: application/x-bittorrent' ); + header( 'Content-Length: ' . strlen( $data ) ); + header( 'Content-Disposition: attachment; filename="[files-sib.net]' . ( is_null( $filename ) ? $this->info['name'] . '.torrent' : $filename ) . '"' ); + exit( $data ); + } + + public function magnet ( $html = true ) { + $ampersand = $html ? '&' : '&'; + return sprintf( 'magnet:?xt=urn:btih:%2$s%1$sdn=%3$s%1$sxl=%4$d%1$str=%5$s', $ampersand, $this->hash_info(), urlencode( $this->name() ), $this->size(), implode( $ampersand .'tr=', self::untier( $this->announce() ) ) ); + } + + static public function encode ( $mixed ) { + switch ( gettype( $mixed ) ) { + case 'integer': + case 'double': + return self::encode_integer( $mixed ); + case 'object': + $mixed = get_object_vars( $mixed ); + case 'array': + return self::encode_array( $mixed ); + default: + return self::encode_string( (string) $mixed ); + } + } + + static private function encode_string ( $string ) { + return strlen( $string ) . ':' . $string; + } + + static private function encode_integer ( $integer ) { + return 'i' . $integer . 'e'; + } + + static private function encode_array ( $array ) { + if ( self::is_list( $array ) ) { + $return = 'l'; + foreach ( $array as $value ) + $return .= self::encode( $value ); + } else { + ksort( $array, SORT_STRING ); + $return = 'd'; + foreach ( $array as $key => $value ) + $return .= self::encode( strval( $key ) ) . self::encode( $value ); + } + return $return . 'e'; + } + + static protected function decode ( $string ) { + $data = is_file( $string ) || self::url_exists( $string ) ? + self::file_get_contents( $string ) : + $string; + return (array) self::decode_data( $data ); + } + + static private function decode_data ( & $data ) { + switch( self::char( $data ) ) { + case 'i': + $data = substr( $data, 1 ); + return self::decode_integer( $data ); + case 'l': + $data = substr( $data, 1 ); + return self::decode_list( $data ); + case 'd': + $data = substr( $data, 1 ); + return self::decode_dictionary( $data ); + default: + return self::decode_string( $data ); + } + } + + static private function decode_dictionary ( & $data ) { + $dictionary = array(); + $previous = null; + while ( ( $char = self::char( $data ) ) != 'e' ) { + if ( $char === false ) + return self::set_error( new Exception( 'Unterminated dictionary' ) ); + if ( ! ctype_digit( $char ) ) + return self::set_error( new Exception( 'Invalid dictionary key' ) ); + $key = self::decode_string( $data ); + if ( isset( $dictionary[$key] ) ) + return self::set_error( new Exception( 'Duplicate dictionary key' ) ); + if ( $key < $previous ) + return self::set_error( new Exception( 'Missorted dictionary key' ) ); + $dictionary[$key] = self::decode_data( $data ); + $previous = $key; + } + $data = substr( $data, 1 ); + return $dictionary; + } + + static private function decode_list ( & $data ) { + $list = array(); + while ( ( $char = self::char( $data ) ) != 'e' ) { + if ( $char === false ) + return self::set_error( new Exception( 'Unterminated list' ) ); + $list[] = self::decode_data( $data ); + } + $data = substr( $data, 1 ); + return $list; + } + + static private function decode_string ( & $data ) { + if ( self::char( $data ) === '0' && substr( $data, 1, 1 ) != ':' ) + self::set_error( new Exception( 'Invalid string length, leading zero' ) ); + if ( ! $colon = @strpos( $data, ':' ) ) + return self::set_error( new Exception( 'Invalid string length, colon not found' ) ); + $length = intval( substr( $data, 0, $colon ) ); + if ( $length + $colon + 1 > strlen( $data ) ) + return self::set_error( new Exception( 'Invalid string, input too short for string length' ) ); + $string = substr( $data, $colon + 1, $length ); + $data = substr( $data, $colon + $length + 1 ); + return $string; + } + + static private function decode_integer ( & $data ) { + $start = 0; + $end = strpos( $data, 'e'); + if ( $end === 0 ) + self::set_error( new Exception( 'Empty integer' ) ); + if ( self::char( $data ) == '-' ) + $start++; + if ( substr( $data, $start, 1 ) == '0' && $end > $start + 1 ) + self::set_error( new Exception( 'Leading zero in integer' ) ); + if ( ! ctype_digit( substr( $data, $start, $start ? $end - 1 : $end ) ) ) + self::set_error( new Exception( 'Non-digit characters in integer' ) ); + $integer = substr( $data, 0, $end ); + $data = substr( $data, $end + 1 ); + + return 0 + $integer; + } + + protected function build ( $data, $piece_length ) { + if ( is_null( $data ) ) + return false; + elseif ( is_array( $data ) && self::is_list( $data ) ) + return $this->info = $this->files( $data, $piece_length ); + elseif ( is_dir( $data ) ) + return $this->info = $this->folder( $data, $piece_length ); + elseif ( ( is_file( $data ) || self::url_exists( $data ) ) && ! self::is_torrent( $data ) ) + return $this->info = $this->file( $data, $piece_length ); + else + return false; + } + + protected function touch ( $void = null ) { + $this->{'created by'} = 'Files-Sib.NET Tracker'; + $this->{'creation date'} = time(); + return $void; + } + + static protected function set_error ( $exception, $message = false ) { + return ( array_unshift( self::$_errors, $exception ) && $message ) ? $exception->getMessage() : false; + } + + static protected function announce_list( $announce, $merge = array() ) { + return array_map( create_function( '$a', 'return (array) $a;' ), array_merge( (array) $announce, (array) $merge ) ); + } + + static protected function first_announce( $announce ) { + while ( is_array( $announce ) ) + $announce = reset( $announce ); + return $announce; + } + + static protected function pack ( & $data ) { + return pack('H*', sha1( $data ) ) . ( $data = null ); + } + + static protected function path ( $path, $folder ) { + array_unshift( $path, $folder ); + return join( DIRECTORY_SEPARATOR, $path ); + } + + static protected function is_list ( $array ) { + foreach ( array_keys( $array ) as $key ) + if ( ! is_int( $key ) ) + return false; + return true; + } + + private function pieces ( $handle, $piece_length, $last = true ) { + static $piece, $length; + if ( empty( $length ) ) + $length = $piece_length; + $pieces = null; + while ( ! feof( $handle ) ) { + if ( ( $length = strlen( $piece .= fread( $handle, $length ) ) ) == $piece_length ) + $pieces .= self::pack( $piece ); + elseif ( ( $length = $piece_length - $length ) < 0 ) + return self::set_error( new Exception( 'Invalid piece length!' ) ); + } + fclose( $handle ); + return $pieces . ( $last && $piece ? self::pack( $piece ) : null); + } + + private function file ( $file, $piece_length ) { + if ( ! $handle = self::fopen( $file, $size = self::filesize( $file ) ) ) + return self::set_error( new Exception( 'Failed to open file: "' . $file . '"' ) ); + if ( self::is_url( $file ) ) + $this->url_list( $file ); + $path = explode( DIRECTORY_SEPARATOR, $file ); + return array( + 'length' => $size, + 'name' => end( $path ), + 'piece length' => $piece_length, + 'pieces' => $this->pieces( $handle, $piece_length ) + ); + } + + private function files ( $files, $piece_length ) { + if ( ! self::is_url( current( $files ) ) ) + $files = array_map( 'realpath', $files ); + sort( $files ); + usort( $files, create_function( '$a,$b', 'return strrpos($a,DIRECTORY_SEPARATOR)-strrpos($b,DIRECTORY_SEPARATOR);' ) ); + $first = current( $files ); + $root = dirname( $first ); + if ( $url = self::is_url( $first ) ) + $this->url_list( dirname( $root ) . DIRECTORY_SEPARATOR ); + $path = explode( DIRECTORY_SEPARATOR, dirname( $url ? $first : realpath( $first ) ) ); + $pieces = null; $info_files = array(); $count = count( $files ) - 1; + foreach ( $files as $i => $file ) { + if ( $path != array_intersect_assoc( $file_path = explode( DIRECTORY_SEPARATOR, $file ), $path ) ) { + self::set_error( new Exception( 'Files must be in the same folder: "' . $file . '" discarded' ) ); + continue; + } + if ( ! $handle = self::fopen( $file, $filesize = self::filesize( $file ) ) ) { + self::set_error( new Exception( 'Failed to open file: "' . $file . '" discarded' ) ); + continue; + } + $pieces .= $this->pieces( $handle, $piece_length, $count == $i ); + $info_files[] = array( + 'length' => $filesize, + 'path' => array_diff( $file_path, $path ) + ); + } + return array( + 'files' => $info_files, + 'name' => end( $path ), + 'piece length' => $piece_length, + 'pieces' => $pieces + ); + + } + + private function folder ( $dir, $piece_length ) { + return $this->files( self::scandir( $dir ), $piece_length ); + } + + static private function char ( $data ) { + return empty( $data ) ? + false : + substr( $data, 0, 1 ); + } + + static public function format ( $size, $precision = 2 ) { + $units = array ('octets', 'Kb', 'Mb', 'Gb', 'Tb'); + while( ( $next = next( $units ) ) && $size > 1024 ) + $size /= 1024; + return round( $size, $precision ) . ' ' . ( $next ? prev( $units ) : end( $units ) ); + } + + static public function filesize ( $file ) { + if ( is_file( $file ) ) + return (double) sprintf( '%u', @filesize( $file ) ); + else if ( $content_length = preg_grep( $pattern = '#^Content-Length:\s+(\d+)$#i', (array) @get_headers( $file ) ) ) + return (int) preg_replace( $pattern, '$1', reset( $content_length ) ); + } + + static public function fopen ( $file, $size = null ) { + if ( ( is_null( $size ) ? self::filesize( $file ) : $size ) <= 2 * pow( 1024, 3 ) ) + return fopen( $file, 'r' ); + elseif ( PHP_OS != 'Linux' ) + return self::set_error( new Exception( 'File size is greater than 2GB. This is only supported under Linux' ) ); + elseif ( ! is_readable( $file ) ) + return false; + else + return popen( 'cat ' . escapeshellarg( realpath( $file ) ), 'r' ); + } + + static public function scandir ( $dir ) { + $paths = array(); + foreach ( scandir( $dir ) as $item ) + if ( $item != '.' && $item != '..' ) + if ( is_dir( $path = realpath( $dir . DIRECTORY_SEPARATOR . $item ) ) ) + $paths = array_merge( self::scandir( $path ), $paths ); + else + $paths[] = $path; + return $paths; + } + + static public function is_url ( $url ) { + return preg_match( '#^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$#i', $url ); + } + + static public function url_exists ( $url ) { + return self::is_url( $url ) ? + (bool) self::filesize ( $url ) : + false; + } + + static public function is_torrent ( $file, $timeout = self::timeout ) { + return ( $start = self::file_get_contents( $file, $timeout, 0, 11 ) ) && $start === 'd8:announce' || $start === 'd10:created'; + } + + static public function file_get_contents ( $file, $timeout = self::timeout, $offset = null, $length = null ) { + if ( is_file( $file ) || ini_get( 'allow_url_fopen' ) ) { + $context = ! is_file( $file ) && $timeout ? + stream_context_create( array( 'http' => array( 'timeout' => $timeout ) ) ) : + null; + return ! is_null( $offset ) ? $length ? + @file_get_contents( $file, false, $context, $offset, $length ) : + @file_get_contents( $file, false, $context, $offset ) : + @file_get_contents( $file, false, $context ); + } elseif ( ! function_exists( 'curl_init' ) ) + return self::set_error( new Exception( 'Install CURL or enable "allow_url_fopen"' ) ); + $handle = curl_init( $file ); + if ( $timeout ) + curl_setopt( $handle, CURLOPT_TIMEOUT, $timeout ); + if ( $offset || $length ) + curl_setopt( $handle, CURLOPT_RANGE, $offset . '-' . ( $length ? $offset + $length -1 : null ) ); + curl_setopt( $handle, CURLOPT_RETURNTRANSFER, 1 ); + $content = curl_exec( $handle ); + $size = curl_getinfo( $handle, CURLINFO_CONTENT_LENGTH_DOWNLOAD ); + curl_close( $handle ); + return ( $offset && $size == -1 ) || ( $length && $length != $size ) ? $length ? + substr( $content, $offset, $length) : + substr( $content, $offset) : + $content; + } + + static public function untier( $announces ) { + $list = array(); + foreach ( (array) $announces as $tier ) { + is_array( $tier ) ? + $list = array_merge( $list, self::untier( $tier ) ) : + array_push( $list, $tier ); + } + return $list; + } + + public function upload($torrent){ + + } +} \ No newline at end of file diff --git a/system/cron.php b/system/cron.php new file mode 100644 index 0000000..7476a39 --- /dev/null +++ b/system/cron.php @@ -0,0 +1,38 @@ +get ( "cron" ); +if (date ( "Y-m-d", $cron_time ) != date ( "Y-m-d", $_TIME )) $cron = true; + +if($cron) { + $cache->set( "cron", $_TIME ); + + $db->query( "DELETE FROM " . USERPREFIX . "_banned WHERE days != '0' AND date < '$_TIME' AND users_id = '0'" ); + $cache->delete('banned.php' ); + + if( intval( $config['max_image_days'] ) ) { + $thisdate = $_TIME - ($config['max_image_days'] * 3600 * 24); + $db->query( "SELECT images FROM " . PREFIX . "_images where date < '$thisdate' AND news_id = '0'" ); + while ( $row = $db->get_row() ) { + $listimages = explode( "|||", $row['images'] ); + if( $row['images'] != "" ) foreach ( $listimages as $dataimages ) { + $url_image = explode( "/", $dataimages ); + if( count( $url_image ) == 2 ) { + $folder_prefix = $url_image[0] . "/"; + $dataimages = $url_image[1]; + } else { + $folder_prefix = ""; + $dataimages = $url_image[0]; + } + @unlink( ROOT_DIR . "/uploads/posts/" . $folder_prefix . $dataimages ); + @unlink( ROOT_DIR . "/uploads/posts/" . $folder_prefix . "thumbs/" . $dataimages ); + }} + $db->free(); + $db->query( "DELETE FROM " . PREFIX . "_images where date < '$thisdate' AND news_id = '0'" ); + } + $cache->clear(); +} +?> \ No newline at end of file diff --git a/system/engine.php b/system/engine.php new file mode 100644 index 0000000..07a8924 --- /dev/null +++ b/system/engine.php @@ -0,0 +1,464 @@ +:]]' AND "; + } else {$stop_list = "category IN ('" . implode ( "','", $allow_list ) . "') AND ";} + } else $stop_list = ""; + + if ($user_group[$member_id['user_group']]['allow_short']) $stop_list = ""; + + $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, title, category, alt_name, comm_num, allow_comm, allow_main, allow_rate, fixed, rating, news_read, remote_addr, tags FROM " . PREFIX . "_post WHERE {$stop_list}approve AND allow_main" . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; + $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}approve AND allow_main" . $where_date; + $sql_news = ""; + + // ################ Âûâîä îòäåëüíîé êàòåãîðèè ################# + if ($do == "cat" and $category != '' and $subaction == '') { + $newsmodule = true; + + if (! $category_id) $category_id = 'not detected'; + if ($allow_list[0] != "all") {if (! $user_group[$member_id['user_group']]['allow_short'] and ! in_array ( $category_id, $allow_list )) $category_id = 'not detected';} + + $get_cats = get_sub_cats ( $category_id ); + + if ($cat_info[$category_id]['news_sort'] != "") $news_sort_by = $cat_info[$category_id]['news_sort']; + if ($cat_info[$category_id]['news_msort'] != "") $news_direction_by = $cat_info[$category_id]['news_msort']; + if ($cat_info[$category_id]['news_number']) $config['news_number'] = $cat_info[$category_id]['news_number']; + + if ($cstart) { + $cstart = $cstart - 1; + $cstart = $cstart * $config['news_number']; + } + + $url_page = $config['http_home_url'] . get_url ( $category_id ); + $user_query = "do=cat&category=" . $cat_info[$category_id]['alt_name']; + + if ($config['allow_multi_category']) {$where_category = "category regexp '[[:<:]](" . $get_cats . ")[[:>:]]'"; + } else { + $get_cats = str_replace ( "|", "','", $get_cats ); + $where_category = "category IN ('" . $get_cats . "')"; + } + + if (isset ( $_SESSION['dle_sort_cat'] )) $news_sort_by = $_SESSION['dle_sort_cat']; + if (isset ( $_SESSION['dle_direction_cat'] )) $news_direction_by = $_SESSION['dle_direction_cat']; + + $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, title, category, alt_name, comm_num, allow_comm, allow_main, allow_rate, fixed, rating, news_read, remote_addr, tags FROM " . PREFIX . "_post WHERE {$where_category} AND approve" . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; + $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$where_category} AND approve" . $where_date; + + } elseif ($do == 'lastnews') { + // ################ Âûâîä âñåõ ïîñëåäíèõ íîâîñòåé ################# + if ($cstart) { + $cstart = $cstart - 1; + $cstart = $cstart * $config['news_number']; + } + $newsmodule = true; + $url_page = $config['http_home_url'] . "lastnews"; + $user_query = "do=lastnews"; + + if (isset ( $_SESSION['dle_sort_lastnews'] )) $news_sort_by = $_SESSION['dle_sort_lastnews']; else $news_sort_by = "date"; + if (isset ( $_SESSION['dle_direction_lastnews'] )) $news_direction_by = $_SESSION['dle_direction_lastnews']; else $news_direction_by = "DESC"; + + $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, title, category, alt_name, comm_num, allow_comm, allow_main, allow_rate, rating, news_read, approve, remote_addr, tags FROM " . PREFIX . "_post where {$stop_list}approve" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; + $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post where {$stop_list}approve" . $where_date; + + } elseif ($do == 'tags') { + // ################ Ïîèñê íîâîñòåé ïî òåãó ################# + if ($cstart) { + $cstart = $cstart - 1; + $cstart = $cstart * $config['news_number']; + } + + $newsmodule = true; + + $tag = $db->safesql ( htmlspecialchars ( strip_tags ( stripslashes ( trim ( urldecode ( $_GET['tag'] ) ) ) ), ENT_QUOTES ) ); + $url_page = $config['http_home_url'] . "tags/" . urlencode ( $tag ); + $user_query = "do=tags&tag=" . urlencode ( $tag ); + + if (isset ( $_SESSION['dle_sort_tags'] )) $news_sort_by = $_SESSION['dle_sort_tags']; + if (isset ( $_SESSION['dle_direction_tags'] )) $news_direction_by = $_SESSION['dle_direction_tags']; + + $db->query ( "SELECT news_id FROM " . PREFIX . "_tags WHERE tag='{$tag}'" ); + $tag_array = array (); + + while ( $row = $db->get_row () ) {$tag_array[] = $row['news_id'];} + + if (count ( $tag_array )) {$tag_array = "(" . implode ( ",", $tag_array ) . ")"; + } else {$tag_array = "('undefined')";} + + $db->free (); + + $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, title, category, alt_name, comm_num, allow_comm, allow_main, allow_rate, rating, news_read, approve, remote_addr, tags FROM " . PREFIX . "_post where {$stop_list}id IN {$tag_array} AND approve" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; + $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post where {$stop_list}id IN {$tag_array} AND approve" . $where_date; + $allow_active_news = true; + + $tag_array = array (); + unset ( $tag_array ); + + } elseif ($subaction == 'userinfo') { + // ################ Âûâîä ïðîôèëÿ ïîëüçîâàòåëÿ ################# + if ($cstart) { + $cstart = $cstart - 1; + $cstart = $cstart * $config['news_number']; + } + + $url_page = $config['http_home_url'] . "user/" . urlencode ( $user ); + $user_query = "subaction=userinfo&user=" . urlencode ( $user ); + + if ($member_id['name'] == $user or $user_group[$member_id['user_group']]['allow_all_edit']) { + if (isset ( $_SESSION['dle_sort_userinfo'] )) $news_sort_by = $_SESSION['dle_sort_userinfo']; + if (isset ( $_SESSION['dle_direction_userinfo'] )) $news_direction_by = $_SESSION['dle_direction_userinfo']; + + $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, title, category, alt_name, comm_num, allow_comm, allow_main, allow_rate, approve, fixed, rating, news_read, remote_addr, tags FROM " . PREFIX . "_post WHERE autor = '$user' AND approve = '0' ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; + $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE autor = '$user' AND approve = '0'"; + $allow_active_news = false; + } else {$allow_active_news = false;} + $cache->off(); + } elseif ($subaction == 'allnews') { + // ################ Âûâîä âñåõ íîâîñòåé ïîëüçîâàòåëÿ ################# + if ($cstart) { + $cstart = $cstart - 1; + $cstart = $cstart * $config['news_number']; + } + + $newsmodule = true; + $url_page = $config['http_home_url'] . "user/" . urlencode ( $user ) . "/news"; + $user_query = "subaction=allnews&user=" . urlencode ( $user ); + + if (isset ( $_SESSION['dle_sort_allnews'] )) $news_sort_by = $_SESSION['dle_sort_allnews']; + if (isset ( $_SESSION['dle_direction_allnews'] )) $news_direction_by = $_SESSION['dle_direction_allnews']; + + $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, title, category, alt_name, comm_num, allow_comm, allow_main, allow_rate, rating, news_read, approve, remote_addr, tags FROM " . PREFIX . "_post where {$stop_list}autor = '$user' AND approve" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; + $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post where {$stop_list}autor = '$user' AND approve" . $where_date; + + $allow_active_news = true; + //$config['allow_cache'] = false; + + } elseif ($subaction == 'newposts') { + // ################ Âûâîä íåïðî÷èòàííûõ íîâîñòåé ################# + if ($cstart) { + $cstart = $cstart - 1; + $cstart = $cstart * $config['news_number']; + } + $newsmodule = true; + + $url_page = $config['http_home_url'] . "newposts"; + $user_query = "subaction=newposts"; + + $thistime = date ( "Y-m-d H:i:s", $_TIME ); + + if (isset ( $_SESSION['member_lasttime'] )) {$lasttime = date ( "Y-m-d H:i:s", $_SESSION['member_lasttime'] ); + } else {$lasttime = date ( "Y-m-d H:i:s", (time () + ($config['date_adjust'] * 60) - (3600 * 4)) );} + + if (isset ( $_SESSION['dle_sort_newposts'] )) $news_sort_by = $_SESSION['dle_sort_newposts']; + if (isset ( $_SESSION['dle_direction_newposts'] )) $news_direction_by = $_SESSION['dle_direction_newposts']; + + $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, title, category, alt_name, comm_num, allow_comm, allow_main, allow_rate, rating, news_read, remote_addr, tags FROM " . PREFIX . "_post where {$stop_list}approve AND date between '$lasttime' and '$thistime' order by " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; + $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post where {$stop_list}approve AND date between '$lasttime' and '$thistime'"; + + $cache->off(); + } else { + + // ################ Íîâîñòè íà ãëàâíîé ################# + if ($year == '' and $month == '' and $day == '') { + if ($cstart) { + $cstart = $cstart - 1; + $cstart = $cstart * $config['news_number']; + } + + $url_page = substr ( $config['http_home_url'], 0, strlen ( $config['http_home_url'] ) - 1 ); + $user_query = ""; + + if (isset ( $_SESSION['dle_sort_main'] )) $news_sort_by = $_SESSION['dle_sort_main']; + if (isset ( $_SESSION['dle_direction_main'] )) $news_direction_by = $_SESSION['dle_direction_main']; + $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, title, category, alt_name, comm_num, allow_comm, allow_main, allow_rate, fixed, rating, news_read, remote_addr, tags FROM " . PREFIX . "_post WHERE {$stop_list}approve AND allow_main" . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; + $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}approve AND allow_main" . $where_date; + } + + // ################ Íîâîñòè çà ãîä ################# + if ($year != '' and $month == '' and $day == '') { + if ($cstart) { + $cstart = $cstart - 1; + $cstart = $cstart * $config['news_number']; + } + + $newsmodule = true; + $url_page = $config['http_home_url'] . $year; + $user_query = "year=" . $year; + + if (isset ( $_SESSION['dle_sort_date'] )) $news_sort_by = $_SESSION['dle_sort_date']; + if (isset ( $_SESSION['dle_direction_date'] )) $news_direction_by = $_SESSION['dle_direction_date']; + $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, title, category, alt_name, comm_num, allow_comm, allow_main, allow_rate, rating, news_read, remote_addr, tags FROM " . PREFIX . "_post where {$stop_list}date >= '{$year}-01-01'AND date < '{$year}-01-01' + INTERVAL 1 YEAR AND approve" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; + $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post where {$stop_list}date >= '{$year}-01-01'AND date < '{$year}-01-01' + INTERVAL 1 YEAR AND approve" . $where_date; + } + + // ################ Íîâîñòè çà ìåñÿö ################# + if ($year != '' and $month != '' and $day == '') { + if ($cstart) { + $cstart = $cstart - 1; + $cstart = $cstart * $config['news_number']; + } + + $newsmodule = true; + $url_page = $config['http_home_url'] . $year . "/" . $month; + $user_query = "year=" . $year . "&month=" . $month; + + if (isset ( $_SESSION['dle_sort_date'] )) $news_sort_by = $_SESSION['dle_sort_date']; + if (isset ( $_SESSION['dle_direction_date'] )) $news_direction_by = $_SESSION['dle_direction_date']; + + $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, title, category, alt_name, comm_num, allow_comm, allow_main, allow_rate, rating, news_read, remote_addr, tags FROM " . PREFIX . "_post where {$stop_list}date >= '{$year}-{$month}-01'AND date < '{$year}-{$month}-01' + INTERVAL 1 MONTH AND approve" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; + $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post where {$stop_list}date >= '{$year}-{$month}-01'AND date < '{$year}-{$month}-01' + INTERVAL 1 MONTH AND approve" . $where_date; + } + + // ################ Íîâîñòè çà äåíü ################# + if ($year != '' and $month != '' and $day != '' and $subaction == '') { + if ($cstart) { + $cstart = $cstart - 1; + $cstart = $cstart * $config['news_number']; + } + + $newsmodule = true; + $url_page = $config['http_home_url'] . $year . "/" . $month . "/" . $day; + $user_query = "year=" . $year . "&month=" . $month . "&day=" . $day; + + if (isset ( $_SESSION['dle_sort_date'] )) $news_sort_by = $_SESSION['dle_sort_date']; + if (isset ( $_SESSION['dle_direction_date'] )) $news_direction_by = $_SESSION['dle_direction_date']; + + $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, title, category, alt_name, comm_num, allow_comm, allow_main, allow_rate, rating, news_read, remote_addr, tags FROM " . PREFIX . "_post where {$stop_list}date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR AND approve" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; + $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post where {$stop_list}date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR AND approve" . $where_date; + + } + + // ################ Íîâîñòü öåëèêîì ################# + if ($subaction != '' or $newsid) { + if (! $newsid) $sql_news = "SELECT id, autor, date, short_story, full_story, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, news_read, approve, votes, access, remote_addr, tags, metatitle FROM " . PREFIX . "_post WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 0,1"; + else $sql_news = "SELECT id, autor, date, short_story, full_story, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, news_read, approve, votes, access, remote_addr, tags, metatitle FROM " . PREFIX . "_post where id = '$newsid'"; + if ($subaction == '') $subaction = "showfull"; + }} + +//Îòîáðàæåíèå ñóáêàòåãîðèé + if($category_id){ foreach($cat_info as $c) if($c['parentid']==$category_id) { + $cat_menu .= "» ". $c['name'] . "
    "; } + if ($cat_menu !='') + $cat_menu = "
    Êàòåãîðèè
    ".$cat_menu."
    "; + } +//!Îòîáðàæåíèå ñóáêàòåãîðèé + + if ( (intval($_GET['cstart']) == 1) && (strpos($_SERVER['REQUEST_URI'], '/page/1') !== false) ) { + $first_page_url = str_replace ( "/page/1", "", $_SERVER['REQUEST_URI'] ); + header("HTTP/1.0 301 Moved Permanently"); + header("Location: $first_page_url"); + die("Redirect"); + } + + if (($subaction == "showfull" or $subaction == "addcomment") and ((! isset ( $category ) or $category == ""))) { + + if ($_POST['subaction'] == "addcomment") { + $allow_add_comment = TRUE; + $allow_comments = TRUE; + $ajax_adds = false; + include_once (SYSTEM_DIR . '/modules/addcomments.php'); + } + + if ($subaction == "showfull") { + $allow_comments = TRUE; + include_once (SYSTEM_DIR . '/modules/show.full.php'); + } + + } else { + if ($subaction == 'userinfo') { + $allow_userinfo = TRUE; + include_once (SYSTEM_DIR . '/modules/profile.php'); + } else { + $allow_active_news = TRUE; + } + + //#################################################################################################################### + // Ïðîñìîòð êðàòêèõ íîâîñòåé + //#################################################################################################################### + + + $_SESSION['referrer'] = $_SERVER['REQUEST_URI']; + + if ($do == "lastnews") { + $cache_prefix = "_lastnews"; + } elseif ($subaction == 'allnews') { + $cache_prefix = "_allnews_". $user; + } elseif ($do == 'tags') { + $cache_prefix = "_tagscl_". $tag; + } else { + $cache_prefix = "_"; + if ($month) $cache_prefix .= "month_" . $month; + if ($year) $cache_prefix .= "year_" . $year; + if ($day) $cache_prefix .= "day_" . $day; + if ($category) $cache_prefix .= "category_" . $category; + } + $cache_prefix .= "_tempate_" . $config['skin']; + if ($is_logged and ($user_group[$member_id['user_group']]['allow_edit'] and ! $user_group[$member_id['user_group']]['allow_all_edit'])) $cache->off(); + if (isset($_SESSION['dle_no_cache']) AND $_SESSION['dle_no_cache']) $config['allow_cache'] = false; + if ($cstart) $cache_id = ($cstart / $config['news_number']) + 1; else $cache_id = "1"; + + if ($cache_id < 6 and ! isset ( $_POST['login'] )) $active = $cache->open( "news", $cache_id . $cache_prefix, true ); + else $active = false; + + if ($active) { + $tpl->result['content'] .= $active; + $active = null; + } else { + include_once (SYSTEM_DIR . '/modules/show.short.php'); + + if ($config['files_allow'] == "yes"){ + if (strpos ( $tpl->result['content'], "[file=" ) !== false) {$tpl->result['content'] = show_file ( $tpl->result['content'], $attachments );} + if (strpos ( $tpl->result['content'], "[torrent=" ) !== false) {$tpl->result['content'] = show_torrent ( $tpl->result['content'], $attachments );} + } + if ($news_found and $cache_id < 6) $cache->save( "news", $tpl->result['content'], $cache_id . $cache_prefix, true ); +}}} + +/* +===================================================== + Âûâîä çàãîëîâêà ñòðàíèöû +===================================================== +*/ +$titl_e = ''; +$nam_e = ''; + +if ($do == "cat" and $category != '' and $subaction == '') { + //ðåøåíèå ïðîáëåìû ñ êàòåãîðèÿìè, ðåäèðåêò íà âåðíûé óðë, äîáàâëåíèå ñëåøà â êîíåö + if( $category_id AND $view_template != "rss") { + $re_cat = get_url( $category_id ); + + if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' ) { + $re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) ); + $re_url = reset ( $re_url ); + + header("HTTP/1.0 301 Moved Permanently"); + header("Location: {$re_url}{$re_cat}/"); + die("Redirect"); + } + } + //ðåøåíèå ïðîáëåìû ñ êàòåãîðèÿìè, ðåäèðåêò íà âåðíûé óðë, äîáàâëåíèå ñëåøà â êîíåö + + $metatags['description'] = ($cat_info[$category_id]['descr'] != '') ? $cat_info[$category_id]['descr'] : $metatags['description']; + $metatags['keywords'] = ($cat_info[$category_id]['keywords'] != '') ? $cat_info[$category_id]['keywords'] : $metatags['keywords']; + if ($cat_info[$category_id]['metatitle'] != '') $metatags['header_title'] = $cat_info[$category_id]['metatitle']; else $nam_e = stripslashes ( $cat_info[$category_id]['name'] ); + //$rss_url = $url_page . "/" . "rss.xml"; + +} +elseif ($subaction == "showfull") $rss_url = $config['http_home_url'] . "rss/comments/$newsid/"; +elseif ($subaction == 'userinfo')$nam_e = $user; +elseif ($subaction == 'allnews') $nam_e = $lang['show_user_news'] . ' ' . $user; +elseif ($subaction == 'newposts') $nam_e = $lang['title_new']; +elseif ($do == 'stats') $nam_e = $lang['title_stats']; +elseif ($do == 'addnews') $nam_e = $lang['title_addnews']; +elseif ($do == 'register') $nam_e = $lang['title_register']; +elseif ($do == 'favorites') $nam_e = $lang['title_fav']; +elseif ($do == 'pm') $nam_e = $lang['title_pm']; +elseif ($do == 'feedback') $nam_e = $lang['title_feed']; +elseif ($do == 'lastcomments') $nam_e = $lang['title_last']; +elseif ($do == 'lostpassword') $nam_e = $lang['title_lost']; +elseif ($do == 'search') $nam_e = $lang['title_search']; +elseif ($do == 'reputation') $nam_e = 'Ðåïóòàöèÿ » '.$user; +elseif ($do == 'static') $titl_e = $static_descr; +elseif ($do == 'chat_history') $titl_e = " Èñòîðèÿ ñîîáùåíèé Ìèíè-÷àòà"; +elseif ($do == 'tracker') $titl_e = "Ñïèñîê ðàçäà÷"; +elseif ($do == 'lastnews') $nam_e = $lang['last_news']; +elseif ($do == 'tags') $nam_e = $tag; +elseif ($do == 'newslist') $metatags['title'] = $metatags['titles'].''.$cnt3.''.$cnt5.' » '.$config['home_title']; +else { + if ($year != '' and $month == '' and $day == '') $nam_e = $lang['title_date'] . ' ' . $year . ' ' . $lang['title_year']; + if ($year != '' and $month != '' and $day == '') $nam_e = $lang['title_date'] . ' ' . $r[$month - 1] . ' ' . $year . ' ' . $lang['title_year1']; + if ($year != '' and $month != '' and $day != '' and $subaction == '') $nam_e = $lang['title_date'] . ' ' . $day . '.' . $month . '.' . $year; + if (($subaction != '' or $newsid != '') and $news_found) $titl_e = $metatags['title']; +} + +if (intval($_GET['cstart']) > 1 ){ + $page_extra = ' » '.$lang['news_site'].' '.intval($_GET['cstart']); +} else $page_extra = ''; + +if ($nam_e) { + $metatags['title'] = $nam_e . $page_extra . ' » ' . $metatags['title']; + $rss_title = $metatags['title']; +} elseif ($titl_e) { + $metatags['title'] = $titl_e . $page_extra . ' » ' . $config['home_title']; +} else $metatags['title'] .= $page_extra; + +if ( $metatags['header_title'] ) $metatags['title'] = stripslashes($metatags['header_title']) . $page_extra; + +if (! $rss_url) { + $rss_url = $config['http_home_url'] . "rss/"; + $rss_title = $config['home_title']; + //$rss_url .= $config['http_home_url'] . "comments.xml"; +} + +$metatags = <<{$metatags['title']} + + + + +\n +HTML; + +if ($config['allow_rss']) $metatags .= << +HTML; +?> \ No newline at end of file diff --git a/system/file.php b/system/file.php new file mode 100644 index 0000000..924a4ed --- /dev/null +++ b/system/file.php @@ -0,0 +1,62 @@ +get( "usergroup" ); +if( ! $user_group ) {$user_group = array (); + $db->query( "SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC" ); + while ( $row = $db->get_row() ) {$user_group[$row['id']] = array (); + foreach ( $row as $key => $value ) {$user_group[$row['id']][$key] = stripslashes($value);} + } + $cache->set( "usergroup", $user_group ); + $db->free(); +} + +if (! $is_logged) {$member_id['user_group'] = 5;} +if (! $user_group[$member_id['user_group']]['allow_files']) die ( "Access denied" ); + + $_SERVER['HTTP_REFERER'] = clean_url ( $_SERVER['HTTP_REFERER'] ); + $_SERVER['HTTP_HOST'] = clean_url ( $_SERVER['HTTP_HOST'] ); + if ($_SERVER['HTTP_HOST'] != $_SERVER['HTTP_REFERER']) { + @header ( 'Location: ' . $config['http_home_url'] ); + die ( "Access denied!!!

    Please visit {$config['http_home_url']}" ); + } + +$id = intval ( $_REQUEST['id'] ); + +if ($_REQUEST['area'] == "static") $row = $db->super_query ( "SELECT name, onserver FROM " . PREFIX . "_static_files WHERE id ='$id'" ); +else $row = $db->super_query ( "SELECT name, onserver FROM " . PREFIX . "_files WHERE id ='$id'" ); + +if (! $row) die ( "Access denied" ); + +$config['files_max_speed'] = intval ( $config['files_max_speed'] ); + +$file = new download ( FILE_DIR . $row['onserver'], $row['name'], $config['files_force'], $config['files_max_speed'] ); + +if ($_REQUEST['area'] == "static") { + if ($config['files_count'] == "yes" and ! $file->range) + $db->query ( "UPDATE " . PREFIX . "_static_files SET dcount=dcount+1 WHERE id ='$id'" ); +} else { + if ($config['files_count'] == "yes" and ! $file->range) + $db->query ( "UPDATE " . PREFIX . "_files SET dcount=dcount+1 WHERE id ='$id'" ); +} + +$db->close (); +$file->download_file (); +?> \ No newline at end of file diff --git a/system/forum/action/addpost.php b/system/forum/action/addpost.php new file mode 100644 index 0000000..ad18632 --- /dev/null +++ b/system/forum/action/addpost.php @@ -0,0 +1,252 @@ +process($post_text); + + $post_text = $db->safesql($parse->BB_Parse($post_text, FALSE)); + + $post_text = auto_wrap ($post_text); + + if (strlen($post_text) > $forum_config['post_maxlen']) + { + $post_maxlen = true; + } + else + { + $post_maxlen = false; + } + + $topic_title = $db->safesql(urldecode($topic_title)); + + if (!$is_logged) + { + $name = $db->safesql($parse->BB_Parse($parse->process($name), TRUE)); + + $mail = $db->safesql($parse->BB_Parse($parse->process($mail), TRUE)); + + $member_id['name'] = $name; + + if ($name) + { + $db->query("SELECT name from " . USERPREFIX . "_users where LOWER(name) = '".strtolower($name)."'"); + + if (!$db->num_rows()){ + $name_ok = true; + }else{ + $name_ok = false; + $stop .= $f_lang['err_name']; + } + $db->free(); + } + + if ($mail) + { + if(preg_match("/^[\.A-z0-9_\-]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $mail)){ + $mail_ok = true; + }else{ + $mail_ok = false; + $stop .= $f_lang['err_mail']; + } + } + + if ($name_ok and $mail_ok) + { + $add_post_ok = true; + } + else + { + $add_post_ok = false; + } + } + else + { + $add_post_ok = true; + } + + $_TIME = time()+($config['date_adjust']*60); + + $topic_date = date ("Y-m-d H:i:s", $_TIME); + + $_IP = $db->safesql($_SERVER['REMOTE_ADDR']); + + if ($post_text and $topic_id and $forum_id and $add_post_ok and !$post_captcha and !$post_maxlen) + { + $postcount = intval ($forums_array[$forum_id]['postcount']); + + if ($forum_config['post_update']) + { + $row = $db->super_query("SELECT pid, topic_id, post_author, DATE_FORMAT(post_date,'%Y-%m-%d') as post_date, post_text, is_register, post_ip FROM " . PREFIX . "_forum_posts WHERE topic_id = '$topic_id' ORDER BY pid DESC LIMIT 0,1"); + + $post_id = $row['pid']; + + if ($row['post_author'] == $member_id['name'] AND $row['is_register']) $update_post = true; + elseif ($row['ip'] == $_IP AND !$row['is_register'] AND !$is_logged) $update_post = true; + + if ($row['post_date'] != date("Y-m-d", $_TIME)) $update_post = false; + + + } + + if (!$update_post){ + + $db->query("INSERT INTO " . PREFIX . "_forum_posts (topic_id, post_date, post_author, post_text, post_ip, is_register, e_mail, is_count) values ('$topic_id', '$topic_date', '$member_id[name]', '$post_text', '$_IP', '$is_logged', '$mail', '$postcount')"); + + $new_pid = $db->insert_id(); + + // update table // + + $db->query("UPDATE " . PREFIX . "_forum_topics SET post = post+1, last_date = '$topic_date', last_poster_name = '$member_id[name]', last_post_id = '$new_pid' WHERE tid = '$topic_id'"); + + $db->query("UPDATE " . PREFIX . "_forum_forums SET posts = posts+1, f_last_tid = '$topic_id', f_last_title = '$topic_title', f_last_date = '$topic_date', f_last_poster_name = '$member_id[name]', last_post_id = '$new_pid' WHERE id = '$forum_id'"); + + if ($is_logged) + { + if ($postcount) + { + $db->query("UPDATE " . PREFIX . "_users SET forum_post = forum_post+1 WHERE name = '$member_id[name]'"); + } + + $db->query("DELETE FROM " . PREFIX . "_forum_views WHERE topic_id = '$topic_id' and user_id != '$member_id[user_id]'"); + } + + if ($forum_config['set_sub_last_up'] and $is_parentid = $forums_array[$forum_id]['parentid']) + { + $db->query("UPDATE " . PREFIX . "_forum_forums SET f_last_tid = '$topic_id', f_last_title = '$topic_title', f_last_date ='$topic_date', f_last_poster_name = '$member_id[name]' WHERE id ='$is_parentid'"); + } + + } + else + { + $stop_subscription = true; + + $post_text = $db->safesql($row['post_text'] . "

    " . stripslashes($post_text)); + + $db->query("UPDATE " . PREFIX . "_forum_posts set post_text = '{$post_text}' WHERE pid = '{$post_id}'"); + + $new_pid = $post_id; + } + + if ($post_id) + { + if (stristr ($post_text, "[attachment=")) + { + $result = $db->query("SELECT * FROM " . PREFIX . "_forum_files + WHERE topic_id = '$topic_id' and file_attach = '0'"); + + while ($att = $db->get_row($result)) + { + if (stristr ($post_text, "[attachment=".$att['file_id']."]") OR stristr ($post_text, "[attachment=".$att['file_id'].":url]")) + { + $update_id[] = $att['file_id']; + } + } + + if ($update_id) + { + $update_list = implode(',', $update_id); + + $db->query("UPDATE " . PREFIX . "_forum_files SET topic_id = '$topic_id', post_id = '$new_pid', file_attach = '1' WHERE file_id IN ({$update_list})"); + } + } + } + + $cache->clear ('forum_show_last'); + + $topic_location = $forum_url."/topic_{$topic_id}/{$page}#post-{$new_pid}"; + + if (!$ajax_adds) + { + header("Location: {$topic_location}"); + } + + if ($forum_config['subscription'] AND !$stop_subscription) + { + $all_subscr = $db->query("SELECT name, email FROM ". PREFIX ."_forum_subscription AS t1 INNER JOIN ". PREFIX ."_users AS t2 ON t1.user_id = t2.user_id WHERE t1.topic_id = $topic_id and t1.user_id != '{$member_id['user_id']}'"); + + if ($db->num_rows($all_subscr)) + { + include_once SYSTEM_DIR.'/classes/mail.class.php'; + + $mail = new dle_mail ($config); + + $topic_link = $a_forum_url."showtopic={$topic_id}&lastpost=1#reply"; + + $topic_link_del = $config['http_home_url']."?do=forum&act=subscription&code=del&selected_id={$topic_id}"; + + $mail_tpl = $db->super_query("SELECT template FROM " . PREFIX . "_forum_email where name='subscription_text' LIMIT 0,1"); + + $mail_tpl['template'] = stripslashes($mail_tpl['template']); + + while ($mail_row = $db->get_row($all_subscr)) + { + $mail_result = str_replace("{%username_to%}", $mail_row['name'], $mail_tpl['template']); + + $mail_result = str_replace("{%username_from%}", $member_id['name'], $mail_result); + + $mail_result = str_replace("{%topic_name%}", $topic_title, $mail_result); + + $mail_result = str_replace("{%topic_link%}", $topic_link, $mail_result); + + $mail_result = str_replace("{%topic_link_del%}", $topic_link_del, $mail_result); + + $mail_title = "Óâåäîìëåíèå îá îòâåòàõ íà ïîäïèñàííóþ òåìó"; + + $mail->send ($mail_row['email'], $mail_title, $mail_result); + } + + } + } + + $cache->clear ('forum_show_last'); + } + + else + { + if (!$add_post_ok) + { + forum_msg($f_lang['all_info'], $stop); + + $add_post_error = $stop; + } + + elseif ($post_captcha) + { + forum_msg($f_lang['all_info'], $f_lang['captcha_stop']); + + $add_post_error = $f_lang['ajax_stop_2']; + } + + elseif ($post_maxlen) + { + forum_msg($f_lang['all_info'], $f_lang['maxlen_stop']); + + $add_post_error = $f_lang['ajax_stop_4']; + } + + else + { + forum_msg($f_lang['all_info'], $f_lang['values_error']); + + $add_post_error = $f_lang['ajax_stop_3']; + } + } + +?> \ No newline at end of file diff --git a/system/forum/action/addtopic.php b/system/forum/action/addtopic.php new file mode 100644 index 0000000..65c71ff --- /dev/null +++ b/system/forum/action/addtopic.php @@ -0,0 +1,325 @@ += $forum_config['min_post'] OR $member_id['user_group'] < 2){ + $access_topic = check_access($forums_array[$forum_id]['access_topic']); + }else{ + $access_topic = false; + forum_msg($f_lang['all_info'], "Äëÿ îòêðûòèÿ íîâîé òåìû íóæíî èìåòü ìèíèìóì ".$forum_config['min_post']." ïîëåçíûõ ñîîáùåíèé íà ôîðóìå"); + } + //Îòêðûòèå íîâîé òåìû ïðè ìèíèìóìå ñîîáùåíèé íà ôîðóìå ó þçåðà. + + if ($access_topic) + { + if (!$_REQUEST['subaction']) + { + $access_upload = check_access($forums_array[$forum_id]['access_upload']); + + $upload_var = array('area' => "topic", 'forum_id' => $forum_id, 'topic_id' => get_salt(),); + + $tpl->set('[not-wysywyg]', ""); + + $tpl->set('{wysiwyg}',''); + + $tpl->set('[/not-wysywyg]',""); + + include_once SYSTEM_DIR.'/forum/sources/components/bbcode.php'; + + $topic_action_add = $a_forum_url."act=add_topic&subaction=1"; + + $tpl->load_template($tpl_dir.'addtopic.tpl'); + + $tpl->set('{bbcode}',$bb_code); + $tpl->set('{topic_title}',""); + $tpl->set('{topic_descr}',""); + $tpl->set('{text}',""); + + if ($is_logged) + { + $tpl->set_block("'\\[not-logged\\](.*?)\\[/not-logged\\]'si",""); + } + else + { + $tpl->set('[not-logged]',''); + $tpl->set('[/not-logged]',''); + } + + if (check_access($forum_config['tools_poll'])) + { + $tpl->set('[poll]',''); + $tpl->set('[/poll]',''); + } + else + { + $tpl->set_block("'\\[poll\\](.*?)\\[/poll\\]'si",""); + } + + if (check_access($forum_config['topic_captcha'])) + { + $tpl->set('[sec_code]',""); + $tpl->set('[/sec_code]',""); + + $path = parse_url($config['http_home_url']); + $anti_bot = !defined('FORUM_SUB_DOMAIN') ? 'system/modules/' : ''; + + $tpl->set('{sec_code}',"\"${lang['sec_image']}\""); + } + else + { + $tpl->set('{sec_code}',""); + $tpl->set_block("'\\[sec_code\\](.*?)\\[/sec_code\\]'si",""); + } + + $tpl->copy_template = "
    ".$tpl->copy_template." + +
    +
    "; + + $tpl->compile('dle_forum'); + + $tpl->clear(); + } + + else + { + if (check_access($forum_config['topic_captcha'])) + { + if ($_REQUEST['sec_code'] !== $_SESSION['sec_code_session'] and isset($_SESSION['sec_code_session'])) + { + $topic_captcha = true; + + $_SESSION['sec_code_session'] = FALSE; + } + } + else + { + $topic_captcha = false; + } + + if (!$topic_captcha){ + + require_once SYSTEM_DIR.'/classes/parse.class.php'; + + $parse = new ParseFilter(Array(), Array(), 1, 1); + + if (!$is_logged) + { + $name = $db->safesql($parse->process(trim($_POST['name']))); + $mail = $db->safesql($parse->process(trim($_POST['mail']))); + + $member_id['name'] = $name; + + $db->query("SELECT name from " . USERPREFIX . "_users where LOWER(name) = '".strtolower($name)."'"); + + if (!$db->num_rows() > 0) + { + $name_ok = true; + } + else + { + $name_ok = false; + } + + $db->free(); + + if(preg_match("/^[\.A-z0-9_\-]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $mail)) + { + $mail_ok = true; + } + else + { + $mail_ok = false; + } + + if ($name_ok and $mail_ok) + { + $access_add = true; + } + else + { + $access_add = false; + + if (!$name_ok) $stop .= $f_lang['err_name']; + + if (!$mail_ok) $stop .= $f_lang['err_mail']; + } + } + else + { + $access_add = true; + } + + $topic_title = $db->safesql($parse->process($_POST['topic_title'])); + $topic_descr = $db->safesql($parse->process($_POST['topic_descr'])); + + $topic_text = $parse->process($_POST['post_text']); + + $topic_text = $db->safesql($parse->BB_Parse($topic_text, FALSE)); + + $topic_text = auto_wrap ($topic_text); + + if (strlen($topic_text) > $forum_config['post_maxlen']) + { + $post_maxlen = true; + + $stop .= $f_lang['ajax_stop_4']; + } + else + { + $post_maxlen = false; + } + + if ($topic_title and $topic_text and $access_add and !$post_maxlen) + { + $_IP = $db->safesql($_SERVER['REMOTE_ADDR']); + + $vote_title = trim($db->safesql($parse->process($_POST['vote_title']))); + $frage = trim($db->safesql($parse->process($_POST['frage']))); + $vote_body = $db->safesql($parse->BB_Parse($parse->process($_POST['vote_body']), false)); + $poll_multiple = intval($_POST['poll_multiple']); + + $_TIME = time()+($config['date_adjust']*60); + $topic_date = date ("Y-m-d H:i:s", $_TIME); + + if ($forum_config['meta_topic']) + { + $meta = forum_metatags($topic_title . ' ' . $topic_descr . ': ' . $topic_text); + } + else{ $meta = ""; } + + $db->query("INSERT INTO " . PREFIX . "_forum_topics (forum_id, title, topic_descr, author_topic, start_date, last_date, last_poster_name, poll_title, frage, poll_body, multiple, meta_descr, meta_keywords) values ('$forum_id', '$topic_title', '$topic_descr', '$member_id[name]', '$topic_date', '$topic_date', '$member_id[name]', '$vote_title', '$frage', '$vote_body', '$poll_multiple', '$meta[description]', '$meta[keywords]')"); + + $topic_id = $db->insert_id(); + + $db->query("INSERT INTO " . PREFIX . "_forum_posts (topic_id, post_date, post_author, post_text, post_ip, is_register, e_mail, is_count) values ('$topic_id', '$topic_date', '$member_id[name]', '$topic_text', '$_IP', '$is_logged', '$mail', '$postcount')"); + + $new_pid = $db->insert_id(); + + set_first_post_id ($topic_id, $new_pid); + + $db->query("UPDATE " . PREFIX . "_forum_forums SET topics = topics+1, f_last_tid = '$topic_id', f_last_title = '$topic_title', f_last_date ='$topic_date', f_last_poster_name = '$member_id[name]' WHERE id ='$forum_id'"); + + if ($forum_config['set_topic_post'] and $postcount and $is_logged) + { + $db->query("UPDATE " . PREFIX . "_users SET forum_post = forum_post+1 WHERE name = '$member_id[name]'"); + } + + if ($forum_config['set_sub_last_up'] and $is_parentid = $forums_array[$forum_id]['parentid']) + { + $db->query("UPDATE " . PREFIX . "_forum_forums SET f_last_tid = '$topic_id', f_last_title = '$topic_title', f_last_date = '$topic_date', f_last_poster_name = '$member_id[name]', last_post_id = '$new_pid' WHERE id = '$is_parentid'"); + } + + if ($subscription and $is_logged) + { + $db->query("SELECT * FROM " . PREFIX . "_forum_subscription WHERE topic_id = '$topic_id' and user_id = '{$member_id['user_id']}'"); + + if (!$db->num_rows() and $topic_id) + { + $db->query("INSERT INTO " . PREFIX . "_forum_subscription (user_id, topic_id) values ('{$member_id['user_id']}', '$topic_id')"); + } + } + + if ($_REQUEST['add_tid']) + { + if (stristr ($topic_text, "[attachment=")) + { + $result = $db->query("SELECT * FROM " . PREFIX . "_forum_files + WHERE topic_id = '{$_REQUEST['add_tid']}' and file_attach = '0'"); + + while ($att = $db->get_row($result)) + { + if (stristr($topic_text, "[attachment={$att['file_id']}]") OR stristr($topic_text, "/forum/files/{$att['onserver']}")) + { + $update_id[] = $att['file_id']; + } + } + + if ($update_id) + { + $update_list = implode(',', $update_id); + + $db->query("UPDATE " . PREFIX . "_forum_files SET topic_id = '$topic_id', post_id = '$new_pid', file_attach = '1' WHERE file_id IN ({$update_list})"); + } + } + } + + if ($forum_config['topic_email']) + { + $topic_link = $config['http_home_url']."?do=forum&showtopic={$topic_id}"; + + include_once SYSTEM_DIR.'/classes/mail.class.php'; + + $mail = new dle_mail ($config); + + $mail_tpl = $db->super_query("SELECT template FROM " . PREFIX . "_forum_email where name='new_topic' LIMIT 0,1"); + + $mail_tpl['template'] = stripslashes($mail_tpl['template']); + + $mail_result = str_replace("{%username%}", $member_id[name], $mail_tpl['template']); + + $mail_result = str_replace("{%date%}", $topic_date, $mail_result); + + $mail_result = str_replace("{%title%}", $topic_title, $mail_result); + + $mail_result = str_replace("{%link%}", $topic_link, $mail_result); + + $mail->send ($config['admin_mail'], "DLE Forum - NEW TOPIC", $mail_result); + } + + if ($forum_config['mod_rewrite']) + { + $topic_location = $forum_url."/topic_".$topic_id; + } + else + { + $topic_location = $forum_url."showtopic=".$topic_id; + } + + $cache->clear('forum_show_last'); + + header("Location: $topic_location"); + } + + else + { + forum_msg($f_lang['f_msg'], $f_lang['topic_add_stop'], 'stop', "
    ".$stop); + } + + } + + else + { + if ($topic_captcha) + { + forum_msg($f_lang['all_info'], $f_lang['captcha_stop']); + } + } + } + } + + else + { + $group_name = $user_group[$member_id['user_group']]['group_name']; + + forum_msg($f_lang['f_msg'], $f_lang['topic_add_ndeny'], 'user_group', $group_name); + } + + if ($forum_config['forum_bar']) + { + $bbr_fid = $forum_id; + $bbr_fname = $forums_array[$forum_id]['name']; + + $category_id = $forums_array[$forum_id]['main_id']; + + $bbr_cid = $category_id; + $bbr_name = $cats_array[$category_id]['cat_name']; + + $bbr_app = $f_lang['app_newtopic']; + } + +?> \ No newline at end of file diff --git a/system/forum/action/forum.php b/system/forum/action/forum.php new file mode 100644 index 0000000..66731b5 --- /dev/null +++ b/system/forum/action/forum.php @@ -0,0 +1,158 @@ +query("SELECT tid FROM " . PREFIX . "_forum_topics WHERE forum_id = '$fid'"); + + while ($row = $db->get_row($result_topics)) + { + $forum_topic++; + + $p_count = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_forum_posts WHERE topic_id = '$row[tid]'"); + $posts_in_forum = ($posts_in_forum + $p_count['count']); + } + + if (!$forum_config['set_topic_post']) + { + $posts_in_forum = ($posts_in_forum - $forum_topic); + } + + if ($forum_config['topic_sort']) $sort_type = "last_date"; + else $sort_type = "tid"; + + $row1 = $db->super_query("SELECT * FROM ". PREFIX ."_forum_topics WHERE forum_id = '$fid' ORDER by $sort_type DESC"); + + $db->query("UPDATE " . PREFIX . "_forum_forums SET posts = '$posts_in_forum', topics = '$forum_topic', f_last_tid = '$row1[tid]', f_last_title = '$row1[title]', f_last_date ='$row1[last_date]', f_last_poster_name = '$row1[last_poster_name]' WHERE id = '$fid'"); + + header("Location: $_SERVER[HTTP_REFERER]"); + } + + else + { + header("Location: $_SERVER[HTTP_REFERER]"); + } + + break; + +// ******************************************************************************** +// USER +// ******************************************************************************** + case "user": + + $mname = $db->safesql($_REQUEST['mname']); + + if ($mname) + { + $get_count = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_forum_topics WHERE author_topic = '$mname' and hidden = 0"); + + $count_all = $get_count['count']; + } + + if ($count_all){ + + if ($cstart) + { + $cstart = $cstart - 1; + $cstart = $cstart * $forum_config['topic_inpage']; + } + + if ($forum_config['topic_sort']) + { + $sort_type = "last_date"; + } + + else + { + $sort_type = "tid"; + } + +// ******************************************************************************** +// TOPIC VIEWS +// ******************************************************************************** + if ($is_logged) + { + $row_views = $db->query("SELECT topic_id FROM " . PREFIX . "_forum_views WHERE user_id = '$member_id[user_id]' and time > '$topic_a_time'"); + + $topic_views = array(); + + while ($row = $db->get_row($row_views)) + { + $topic_views[$row['topic_id']] = '1'; + } + } + + else + { + $row_views = explode(",", $_COOKIE['dle_forum_views']); + + foreach ($row_views as $value) + { + $topic_views[$value] = '1'; + } + } + + $config_inpage = $forum_config['topic_inpage']; + + $result_topics = $db->query("SELECT * FROM " . PREFIX . "_forum_topics WHERE author_topic = '$mname' and hidden = 0 ORDER BY fixed, ".$sort_type." DESC LIMIT ".$cstart.",".$forum_config['topic_inpage'].""); + + require_once SYSTEM_DIR.'/forum/sources/showtopics.php'; + + $icat = $forum_url."act=getforum&code=user&mname={$mname}&cstart="; + + require_once SYSTEM_DIR.'/forum/sources/components/navigation.php'; + + $tpl->load_template($tpl_dir.'forum.tpl'); + + $tpl->set('{forum}', $f_lang['app_user_topic'].': '.$mname); + + $tpl->set('{subforums}',''); + + $tpl->set('{topics}', $tpl->result['topics']); + + $tpl->set('{info}', $msg_info); + + $tpl->set('{navigation}', $tpl->result['navigation']); + + $tpl->set_block("'\\[options\\](.*?)\\[/options\\]'si",""); + + $tpl->set_block("'\\[rules\\](.*?)\\[/rules\\]'si",""); + + $tpl->set_block("'\\[new_topic\\](.*?)\\[/new_topic\\]'si",""); + + $tpl->set_block("'\\[selected\\](.*?)\\[/selected\\]'si",""); + + $tpl->set_block("'\\[fast-search\\](.*?)\\[/fast-search\\]'si",""); + + $tpl->set_block("'\\[moderation\\](.*?)\\[/moderation\\]'si",""); + + $tpl->set_block("'\\[online\\](.*?)\\[/online\\]'si",""); + + $tpl->compile('dle_forum'); + + $tpl->clear(); + + } + + else + { + forum_msg($f_lang['f_msg'], $f_lang['f_404']); + } + + $bbr_app = $f_lang['app_user_topic']; + + break; + } + +?> \ No newline at end of file diff --git a/system/forum/action/moderation.php b/system/forum/action/moderation.php new file mode 100644 index 0000000..c9a6c7b --- /dev/null +++ b/system/forum/action/moderation.php @@ -0,0 +1,520 @@ +query("UPDATE " . PREFIX . "_forum_topics SET topic_status = '0' WHERE tid = '$topic_id'"); + + $db->query("UPDATE " . PREFIX . "_forum_posts SET hidden = '0' WHERE topic_id = '$topic_id' and hidden NOT IN (1,6)"); + } + + header("Location: $_SERVER[HTTP_REFERER]"); + } + + else + { + die("Hacking attempt!"); + } + + break; + +// ******************************************************************************** +// CLOSE TOPIC +// ******************************************************************************** + case "02": + + if ($selectedtids and is_moderation(0, $selectedtids, 0) OR group_moderation($selectedtids, 'forum_topic_set')) + { + if (!moderator_value('close_topic', $forum_id, $m_member) AND !group_moderation($selectedtids, 'forum_topic_set')) die(); + + $selectedtids = explode(",",$selectedtids); + + foreach($selectedtids as $topic_id) + { + $topic_id = intval($topic_id); + if ( $topic_id == 0 ) continue; + $db->query("UPDATE " . PREFIX . "_forum_topics SET topic_status = '1' WHERE tid = '$topic_id'"); + + $db->query("UPDATE " . PREFIX . "_forum_posts SET hidden = '2' WHERE topic_id = '$topic_id' and hidden NOT IN (1,6)"); + } + + header("Location: {$_SERVER['HTTP_REFERER']}"); + } + + else + { + die("Hacking attempt!"); + } + + break; + +// ******************************************************************************** +// DEL TOPIC +// ******************************************************************************** + case "03": + + if ($selectedtids and is_moderation(0, $selectedtids, 0) OR group_moderation($selectedtids, 'forum_topic_del')) + { + if (!moderator_value('delete_topic', $forum_id, $m_member) AND !group_moderation($selectedtids, 'forum_topic_del')) die(); + + $selectedtids = explode(",",$selectedtids); + + foreach($selectedtids as $topic_id) + { + $topic_id = intval($topic_id); + if ( $topic_id == 0 ) continue; + $row_topic = $db->super_query("SELECT * FROM " . PREFIX . "_forum_topics WHERE tid = '$topic_id'"); + + $topic_id = $row_topic['tid']; + + $forum_id = $row_topic['forum_id']; + + $post_all = $row_topic['post']; + + if (!$forum_config['set_topic_post']) + { + $post_all = ($post_all - 1); + } + + if ($topic_id) + { + // user converting // + if ($forum_config['set_post_num_up']) + { + $query = $db->query("SELECT distinct post_author FROM " . PREFIX . "_forum_posts WHERE topic_id = '$topic_id'"); + + while ($row = $db->get_row($query)) + { + if ($forum_config['set_topic_post']) + { + $topic = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_forum_topics WHERE author_topic = '$row[post_author]'"); + + $topic_num = $topic['count']; + } + + $post = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_forum_posts WHERE post_author = '$row[post_author]'"); + + $post_num = $post['count']; + + $update = ($topic_num + $post_num); + + $db->query("UPDATE " . PREFIX . "_users SET forum_post = '$update' WHERE name ='$row[post_author]'"); + } + } + +// Óäàëåíèå âëîæåíèé âìåñòå ñ òåìîé + +$result = $db->query("SELECT * FROM " . PREFIX . "_forum_files WHERE topic_id = '" . $topic_id . "'"); + +while ($row = $db->get_row($result)) { + +if ($row['file_type'] == "file") { + +unlink(UPLOAD_DIR."files/" . $row['onserver']); + +} elseif ($row['file_type'] == "thumb") { + +unlink(UPLOAD_DIR."thumbs/" . $row['onserver']); + +unlink(UPLOAD_DIR."images/" . $row['onserver']); + +} else { + +unlink(UPLOAD_DIR."images/" . $row['onserver']); + +} + +} + +$db->query("DELETE FROM " . PREFIX . "_forum_files WHERE topic_id = '" . $topic_id . "'"); + +// êîíåö óäàëåíèÿ âëîæåíèé âìåñòå ñ òåìîé + + $db->query("DELETE FROM " . PREFIX . "_forum_posts WHERE topic_id = '$topic_id'"); + + $db->query("DELETE FROM " . PREFIX . "_forum_topics WHERE `tid` = '$topic_id'"); + + $new_result = $db->super_query("SELECT * FROM ". PREFIX ."_forum_topics WHERE forum_id = '$forum_id' ORDER by start_date DESC"); + + $db->query("UPDATE " . PREFIX . "_forum_forums SET topics = topics-1, posts = posts-$post_all, f_last_tid = '$new_result[tid]', f_last_title = '$new_result[title]', f_last_date = '$new_result[last_date]', f_last_poster_name = '$new_result[last_poster_name]' WHERE id ='$forum_id'"); + + $db->query("DELETE FROM " . PREFIX . "_forum_poll_log WHERE topic_id = '$topic_id'"); + + // del discuss id // + $db->query("UPDATE " . PREFIX . "_post SET news_tid = '0' WHERE news_tid = '$topic_id'"); + + // del attachment // + $db->query("SELECT * FROM " . PREFIX . "_forum_files WHERE topic_id = '$topic_id'"); // and file_attach='1' + + while($row = $db->get_row()) + { + if ($row['file_type'] == "image") + { + @unlink(UPLOAD_DIR."images/".$row['onserver']); + } + + elseif ($row['file_type'] == "thumb") + { + @unlink(UPLOAD_DIR."thumbs/".$row['onserver']); + + @unlink(UPLOAD_DIR."images/".$row['onserver']); + } + + else + { + @unlink(UPLOAD_DIR."files/".$row['onserver']); + } + + $db->query("DELETE FROM " . PREFIX . "_forum_files WHERE file_id = '$row[file_id]'"); + } // end - del attachment // + } + } + + if ($forum_config['mod_rewrite']) + { + $forum_location = "{$forum_url}/forum_{$forum_id}"; + } + else + { + $forum_location = "{$forum_url}showforum={$forum_id}"; + } + + header("Location: {$forum_location}"); + } + + else + { + die("Hacking attempt!"); + } + + break; + +// ******************************************************************************** +// EDIT TOPIC TITLE +// ******************************************************************************** + case "04": + + $selectedtids = intval($selectedtids); + + if (!$subaction and is_moderation(0, $selectedtids, 0) OR !$subaction and group_moderation($selectedtids, 'forum_topic_edit')) + { + if (!moderator_value('edit_topic', $forum_id, $m_member) AND !group_moderation($selectedtids, 'forum_topic_edit')) die(); + + $row = $db->super_query("SELECT * FROM " . PREFIX . "_forum_topics WHERE tid = '{$selectedtids}'"); + + $topic_action_add = $a_forum_url."act=moderation&code=04&subaction=save&selected_id={$selectedtids}"; + + require_once SYSTEM_DIR.'/classes/parse.class.php'; + + $parse = new ParseFilter(); + + $parse->safe_mode = true; + + $topic_title = $parse->decodeBBCodes($row['title'], false); + $topic_descr = $parse->decodeBBCodes($row['topic_descr'], false); + + $tpl->load_template($tpl_dir.'edittopic.tpl'); + + $tpl->set('{topic_title}', $topic_title); + $tpl->set('{topic_descr}', $topic_descr); + + if (check_access($forum_config['tools_poll'])) + { + $tpl->set('[poll]',''); + $tpl->set('[/poll]',''); + + $tpl->set('{vote_title}', $parse->decodeBBCodes($row['poll_title'], false)); + $tpl->set('{frage}', $parse->decodeBBCodes($row['frage'], false)); + $tpl->set('{vote_body}', $parse->decodeBBCodes($row['poll_body'], false)); + } + else + { + $tpl->set_block("'\\[poll\\](.*?)\\[/poll\\]'si",""); + } + + $tpl->copy_template = "
    ".$tpl->copy_template."
    "; + + $tpl->compile('dle_forum'); + $tpl->clear(); + } + + if ($subaction == "save" and is_moderation(0, $selectedtids, 0) OR $subaction == "save" and group_moderation($selectedtids, 'forum_topic_edit')) + { + if (!moderator_value('edit_topic', $forum_id, $m_member) AND !group_moderation($selectedtids, 'forum_topic_edit')) die(); + + require_once SYSTEM_DIR.'/classes/parse.class.php'; + + $parse->safe_mode = true; + + $parse = new ParseFilter(Array(), Array(), 1, 1); + + $topic_title = $db->safesql($parse->process($_POST['topic_title'])); + $topic_descr = $db->safesql($parse->process($_POST['topic_descr'])); + $vote_title = trim($db->safesql($parse->process($_POST['vote_title']))); + $frage = trim($db->safesql($parse->process($_POST['frage']))); + $vote_body = $db->safesql($parse->BB_Parse($parse->process($_POST['vote_body']), false)); + $poll_multiple = intval($_POST['poll_multiple']); + + $db->query("UPDATE " . PREFIX . "_forum_topics SET title = '$topic_title', topic_descr = '$topic_descr', poll_title = '$vote_title', frage = '$frage', poll_body = '$vote_body', multiple = '$poll_multiple' WHERE tid = '$selectedtids'"); + + if ($forum_config['mod_rewrite']) + { + $topic_location = "{$forum_url}/topic_$selectedtids"; + } else + { + $topic_location = "{$forum_url}showtopic=$selectedtids"; + } + + header("Location: $topic_location"); + } + + $bbr_app = "Ðåäàêòèðîâàíèå òåìû"; + + break; + +// ******************************************************************************** +// MOVE TOPIC +// ******************************************************************************** + case "05": + + if ($selectedtids and is_moderation(0, $selectedtids, 0)) + { + if (!moderator_value('move_topic', $is_mod['forum_id'], $m_member)) die(); + + $move_fid = $_REQUEST['move_fid']; + + if (!$subaction) + { + $topic_action_add = "{$a_forum_url}act=moderation&code=05&subaction=move&selected_id=$selectedtids"; + + $tpl->load_template($tpl_dir.'movetopic.tpl'); + + $tpl->set('{topic_title}', $topic_title); + $tpl->set('{forum}', $is_forum_name); + $tpl->set('{forum_list}', forum_list()); + + $tpl->copy_template = "
    ".$tpl->copy_template."
    "; + + $tpl->compile('dle_forum'); + $tpl->clear(); + } + + if ($subaction == "move" and $selectedtids and $move_fid) + { + $tid = $selectedtids; + + $selectedtids = explode(",",$selectedtids); + + $new_post_count = 0; + + $postcount = intval ($forums_array[$move_fid]['postcount']); + + foreach ($selectedtids as $topic_id) + { + $topic_id = intval($topic_id); + if ( $topic_id == 0 ) continue; + $db->query("UPDATE " . PREFIX . "_forum_topics SET forum_id = '$move_fid' WHERE tid = '$topic_id'"); + $tid_count++; + + $post = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_forum_posts WHERE topic_id = '$topic_id'"); + + $post_count = $post_count + $post['count']; + + $db->query("UPDATE " . PREFIX . "_forum_posts SET is_count = '$postcount' WHERE topic_id = '$topic_id'"); + } + + $post_count = $post_count - $tid_count; + + if ($forum_config['topic_sort']) $sort_type = "last_date"; + else $sort_type = "tid"; + + $row1 = $db->super_query("SELECT * FROM ". PREFIX ."_forum_topics WHERE forum_id = '{$is_mod['forum_id']}' ORDER by $sort_type DESC"); + + $row2 = $db->super_query("SELECT * FROM ". PREFIX ."_forum_topics WHERE forum_id = '$move_fid' ORDER by $sort_type DESC"); + + $db->query("UPDATE " . PREFIX . "_forum_forums SET posts = posts-$post_count, topics = topics-$tid_count, f_last_tid = '$row1[tid]', f_last_title = '$row1[title]', f_last_date ='$row1[last_date]', f_last_poster_name = '$row1[last_poster_name]' WHERE id = '{$is_mod['forum_id']}'"); + + $db->query("UPDATE " . PREFIX . "_forum_forums SET posts = posts+$post_count, topics = topics+$tid_count, f_last_tid = '$row2[tid]', f_last_title = '$row2[title]', f_last_date ='$row2[last_date]', f_last_poster_name = '$row2[last_poster_name]' WHERE id = '$move_fid'"); + + if ($forum_config['mod_rewrite']) + { + $topic_location = "{$forum_url}/topic_$tid"; + + $forum_location = "{$forum_url}/forum_$move_fid"; + } + else + { + $topic_location = "{$forum_url}showtopic=$tid"; + + $forum_location = "{$forum_url}showforum=$move_fid"; + } + + if ($tid_count > 1) + { + header("Location: $forum_location"); + } + else + { + header("Location: $topic_location"); + } + } + + $bbr_app = "Ïåðåìåùåíèå òåìû"; + } + + break; + +// ******************************************************************************** +// HIDDEN TOPIC +// ******************************************************************************** + case "06": + + if ($selectedtids and is_moderation(0, $selectedtids, 0)) + { + $selectedtids = explode(",",$selectedtids); + + foreach($selectedtids as $topic_id) + { + $topic_id = intval($topic_id); + if ( $topic_id == 0 ) continue; + $db->query("UPDATE " . PREFIX . "_forum_topics SET hidden = '1' WHERE tid = '$topic_id'"); + + $db->query("UPDATE " . PREFIX . "_forum_posts SET hidden = '6' WHERE topic_id = '$topic_id' and hidden NOT IN (1,2)"); + } + + header("Location: {$_SERVER['HTTP_REFERER']}"); + } + + break; + +// ******************************************************************************** +// NOT HIDDEN TOPIC +// ******************************************************************************** + case "07": + + if ($selectedtids and is_moderation(0, $selectedtids, 0)) + { + $selectedtids = explode(",",$selectedtids); + + foreach($selectedtids as $topic_id) + { + $topic_id = intval($topic_id); + if ( $topic_id == 0 ) continue; + $db->query("UPDATE " . PREFIX . "_forum_topics SET hidden = '0' WHERE tid = '$topic_id'"); + + $db->query("UPDATE " . PREFIX . "_forum_posts SET hidden = '0' WHERE topic_id = '$topic_id' and hidden NOT IN (1,2)"); + } + + header("Location: {$_SERVER['HTTP_REFERER']}"); + } + + break; + +// ******************************************************************************** +// FIXED TOPIC +// ******************************************************************************** + case "08": + + if ($selectedtids and is_moderation(0, $selectedtids, 0)) + { + if (!moderator_value('pin_topic', $forum_id, $m_member)) die(); + + $selectedtids = explode(",",$selectedtids); + + foreach($selectedtids as $topic_id) + { + $topic_id = intval($topic_id); + if ( $topic_id == 0 ) continue; + $db->query("UPDATE " . PREFIX . "_forum_topics SET fixed = '0' WHERE tid = '$topic_id'"); + } + + header("Location: {$_SERVER['HTTP_REFERER']}"); + } + + break; + +// ******************************************************************************** +// NOT FIXED TOPIC +// ******************************************************************************** + case "09": + + if ($selectedtids and is_moderation(0, $selectedtids, 0)) + { + if (!moderator_value('unpin_topic', $forum_id, $m_member)) die(); + + $selectedtids = explode(",",$selectedtids); + + foreach($selectedtids as $topic_id) + { + $topic_id = intval($topic_id); + if ( $topic_id == 0 ) continue; + $db->query("UPDATE " . PREFIX . "_forum_topics SET fixed = '1' WHERE tid = '$topic_id'"); + } + + header("Location: {$_SERVER['HTTP_REFERER']}"); + } + + break; + +// ******************************************************************************** +// CALC +// ******************************************************************************** + case "10": + + $topic_id = intval($_REQUEST['tid']); + + if ($topic_id and is_moderation(0, $topic_id, 0)) + { + calk_topic_del ($topic_id); + + header("Location: {$_SERVER['HTTP_REFERER']}"); + } + + break; + +// ******************************************************************************** +// Default +// ******************************************************************************** + default: + + header("Location: {$_SERVER['HTTP_REFERER']}"); + + break; + } + +?> \ No newline at end of file diff --git a/system/forum/action/post.php b/system/forum/action/post.php new file mode 100644 index 0000000..fa7c135 --- /dev/null +++ b/system/forum/action/post.php @@ -0,0 +1,515 @@ +safesql($_POST['post_id']); + + $topic_title = $_POST['topic_ti']; + + $post_text = $_POST['post_text']; + + $name = $_POST['name']; + $mail = $_POST['mail']; + + $check_write = check_access($forums_array[$forum_id]['access_write']); + + if ($check_write) + { + require_once SYSTEM_DIR.'/forum/action/addpost.php'; + } + + else + { + $group_name = $user_group[$member_id['user_group']]['group_name']; + + forum_msg($f_lang['all_info'], $f_lang['topic_write'], 'user_group', $group_name); + } + + break; + +// ******************************************************************************** +// EDIT POST +// ******************************************************************************** + case "02": + + $pid = intval($_REQUEST['pid']); + + $page = intval($_REQUEST['p']); + + $post_n = intval($_REQUEST['pn']); + + if ($pid) + { + if (is_moderation(0, 0, $pid, 'forum_post_edit')) + { + include_once SYSTEM_DIR.'/classes/parse.class.php'; + + $parse = new ParseFilter(Array(), Array(), 1, 1); + + $row = $db->super_query("SELECT * FROM " . PREFIX . "_forum_posts WHERE `pid` = '$pid'"); + + $post_text = $parse->decodeBBCodes($row['post_text'], false); + + $topic_id = $row['topic_id']; + + $fid = $db->super_query("SELECT forum_id FROM " . PREFIX . "_forum_topics WHERE tid = '$topic_id'"); + + $forum_id = $fid['forum_id']; + + $access_upload = check_access($forums_array[$forum_id]['access_upload']); + + $upload_var = array('area'=>"post", 'forum_id'=>$forum_id, 'topic_id'=>$topic_id, 'post_id'=>$pid); + + if ($row['pid']) + { + $edit_post_action = $a_forum_url."act=post&code=03&pid=$pid&topic_id=$topic_id&p=$page&pn=$post_n"; + + $tpl->load_template($tpl_dir.'addpost.tpl'); + + $tpl->set('{title}', $f_lang['app_post_edit']); + + $tpl->set('[not-wysywyg]', ""); + + $tpl->set('{wysiwyg}',''); + + $tpl->set('[/not-wysywyg]',""); + + include_once SYSTEM_DIR.'/forum/sources/components/bbcode.php'; + + if (!$is_logged) + { + $tpl->set('[not-logged]',''); + $tpl->set('[/not-logged]',''); + } + + else + { + $tpl->set_block("'\\[not-logged\\](.*?)\\[/not-logged\\]'si",""); + } + + $tpl->set_block("'\\[sec_code\\](.*?)\\[/sec_code\\]'si",""); + + $tpl->set('{bbcode}',$bb_code); + $tpl->set('{text}',$post_text); + + $tpl->copy_template = "
    ".$tpl->copy_template."
    "; + + $tpl->compile('dle_forum'); + $tpl->clear(); + } + } + + else + { + forum_msg($f_lang['f_msg'], $f_lang['f_404']); + } + } + + else + { + forum_msg($f_lang['f_msg'], $f_lang['f_404']); + } + + break; + +// ******************************************************************************** +// SAVE POST +// ******************************************************************************** + case "03": + + $pid = intval($_REQUEST['pid']); + + $topic_id = intval($_REQUEST['topic_id']); + + $page = intval($_REQUEST['p']); + + $post_n = intval($_REQUEST['pn']); + + if (is_moderation(0, 0, $pid, 'forum_post_edit')) + { + include_once SYSTEM_DIR.'/classes/parse.class.php'; + + $parse = new ParseFilter(Array(), Array(), 1, 1); + + $post_text = $parse->process($_POST['post_text']); + + $post_text = $db->safesql($parse->BB_Parse($post_text, FALSE)); + + $post_text = auto_wrap ($post_text); + + if (strlen($post_text) > $forum_config['post_maxlen']) + { + $post_maxlen = true; + } + else + { + $post_maxlen = false; + } + + if ($post_text and !$post_maxlen) + { + $_TIME = time()+($config['date_adjust']*60); + + $edit_info = ", edit_user = '{$member_id[name]}', edit_time = '{$_TIME}'"; + + $db->query("UPDATE " . PREFIX . "_forum_posts SET post_text = '$post_text' {$edit_info} WHERE pid = '$pid'"); + + check_attachment($pid, $post_text); + + if ($forum_config['mod_rewrite']) + { + $topic_location = $forum_url."/topic_{$topic_id}/$page#post-$post_n"; + } + else + { + $topic_location = $forum_url."showtopic=$topic_id&cstart=$page#post-$post_n"; + } + + header("Location: $topic_location"); + } + + else + { + if ($post_maxlen) + { + forum_msg($f_lang['f_msg'], $f_lang['maxlen_stop']); + } + else + { + forum_msg($f_lang['f_msg'], $f_lang['topic_add_stop'], 'stop', ''); + } + + } + } + + else + { + forum_msg($f_lang['f_msg'], $f_lang['f_404']); + } + + break; + +// ******************************************************************************** +// DEL POST +// ******************************************************************************** + case "04": + + if (is_moderation(0, 0, $selected_id, 'forum_post_del')) + { + $selected_id = explode(",", $selected_id); + + foreach ($selected_id as $post_id) + { + $db->query("DELETE FROM " . PREFIX . "_forum_posts WHERE pid = '$post_id'"); + +// Óäàëåíèå âëîæåíèé âìåñòå ñ ñîîáùåíèåì + +$result = $db->query("SELECT * FROM " . PREFIX . "_forum_files WHERE post_id = '" . $post_id . "'"); + +while ($row = $db->get_row($result)) { + +if ($row['file_type'] == "file") { + +unlink(UPLOAD_DIR."files/" . $row['onserver']); + +} elseif ($row['file_type'] == "thumb") { + +unlink(UPLOAD_DIR."thumbs/" . $row['onserver']); + +unlink(UPLOAD_DIR."images/" . $row['onserver']); + +} else { + +unlink(UPLOAD_DIR."images/" . $row['onserver']); + +} + +} + +$db->query("DELETE FROM " . PREFIX . "_forum_files WHERE post_id = '" . $post_id . "'"); + +// êîíåö óäàëåíèÿ âëîæåíèé âìåñòå ñ òåìîé + + $update_id[] = $post_id; + + $del_count++; + } + + if ($update_id) + { + $update_list = implode(',', $update_id); + + $db->query("UPDATE " . PREFIX . "_forum_files SET file_attach = '0' WHERE post_id IN ({$update_list})"); + } + + if ($is_mod['topic_id'] and $del_count) + { + calk_topic_del ($is_mod['topic_id'], $del_count); + } + + if ($forum_config['mod_rewrite']) $topic_location = $forum_url."/topic_".$is_mod['topic_id']; + + else $topic_location = $forum_url."showtopic=".$is_mod['topic_id']; + + header("Location: $topic_location"); + } + + else break; + + break; + +// ******************************************************************************** +// UN HIDDEN POST +// ******************************************************************************** + case "05": + + if ($selected_id and is_moderation(0, 0, $selected_id)) + { + $selected_id = explode(",", $selected_id); + + foreach ($selected_id as $post_id) + { + $db->query("UPDATE " . PREFIX . "_forum_posts SET hidden = '0' WHERE pid = '$post_id'"); + } + + header("Location: $_SERVER[HTTP_REFERER]"); + } + + else break; + + break; + +// ******************************************************************************** +// HIDDEN POST +// ******************************************************************************** + case "06": + + if ($selected_id and is_moderation(0, 0, $selected_id)) + { + $selected_id = explode(",", $selected_id); + + foreach ($selected_id as $post_id) + { + $db->query("UPDATE " . PREFIX . "_forum_posts SET hidden = '1' WHERE pid = '$post_id'"); + } + + header("Location: $_SERVER[HTTP_REFERER]"); + } + + else break; + + break; + +// ******************************************************************************** +// Combining POST +// ******************************************************************************** + case "07": + + if ($selected_id and is_moderation(0, 0, $selected_id, 'combining_post')) + { + $pid_list = $db->safesql($selected_id); + + $db->query("SELECT * FROM " . PREFIX . "_forum_posts WHERE pid IN ($pid_list)"); + + $join_posts_error = false; + + $post_author = array(); + + $posts_text = array(); + + $selected_id = array(); + + $topic_id = 0; + + while ($row = $db->get_row()) + { + $count++; + + $selected_id[] = $row['pid']; + + if ($count == 1) + { + $topic_id = $row['topic_id']; + } + + if (!in_array($row['post_author'], $post_author)) + { + $post_author[] = $row['post_author']; + } + + if ($row['topic_id'] !== $topic_id) + { + $join_posts_error = true; + } + + $posts_text[] = $row['post_text']; + } + + if ($count > 1 and !$join_posts_error) + { + $new_post = implode("

    ", $posts_text); + + $new_post = $db->safesql($new_post); + + foreach ($selected_id as $key => $value_pid) + { + $pid_count++; + + if ($pid_count == 1) + { + $edit_info = ", edit_user = '{$member_id[name]}', edit_time = '{$_TIME}'"; + + $db->query("UPDATE " . PREFIX . "_forum_posts SET post_text = '$new_post' {$edit_info} WHERE pid = '$value_pid'"); + } + else + { + $db->query("DELETE FROM " . PREFIX . "_forum_posts WHERE pid = '$value_pid'"); + + $del_count++; + } + } + + $del_count = $del_count + 1; + + calk_topic_del ($topic_id, $del_count); + + if ($forum_config['mod_rewrite']) $topic_location = $forum_url . "/topic_" . $topic_id; + + else $topic_location = $forum_url . "showtopic=" . $topic_id; + + header("Location: $topic_location"); + } + } + + break; + +// ******************************************************************************** +// Move POST +// ******************************************************************************** + case "08": + + $new_topic = $_REQUEST['new_topic']; + + $new_topic_id = 0; + + if (intval($new_topic) != 0) + { + $new_topic_id = intval ($new_topic); + } + else + { + preg_match_all("#topic_([0-9]{1,10})#", $new_topic, $matches); + + $new_topic_id = intval ($matches[1][0]); + + if (!$new_topic_id) + { + preg_match_all("#showtopic=([0-9]{1,10})#", $new_topic, $matches); + + $new_topic_id = intval ($matches[1][0]); + } + } + + if ($selected_id and is_moderation(0, 0, $selected_id, 'move_post')) + { + if (!$subaction) + { + $action_moveposts = $a_forum_url."act=post&code=08&subaction=move&selected_id={$selected_id}"; + + $tpl->load_template($tpl_dir.'moveposts.tpl'); + + $tpl->copy_template = "
    ".$tpl->copy_template."
    "; + + $tpl->compile('dle_forum'); + $tpl->clear(); + } + else + { + if ($new_topic_id) + { + $row = $db->super_query("SELECT * FROM " . PREFIX . "_forum_topics WHERE tid = $new_topic_id"); + + $new_forum_id = $row['forum_id']; + + if ($row['tid']) + { + // get info // + $post_id = intval($selected_id); + $row_post = $db->super_query("SELECT * FROM " . PREFIX . "_forum_posts WHERE pid = $post_id"); + $old_topic_id = $row_post['topic_id']; + + $row2 = $db->super_query("SELECT * FROM " . PREFIX . "_forum_topics WHERE tid = $old_topic_id"); + $old_forum_id = $row2['forum_id']; + // - // + + if ($old_topic_id == $new_topic_id) + { + die("error"); + } + + $in_post_id = array(); + + $selected_id = explode(",", $selected_id); + + foreach ($selected_id as $post_id) + { + $post_count++; + + $in_post_id[] = $post_id; + } + + $post_id_list = implode(',', $in_post_id); + + $db->query("UPDATE " . PREFIX . "_forum_posts SET topic_id = $new_topic_id WHERE pid IN ({$post_id_list})"); + + if ($old_forum_id == $new_forum_id) + { + unset ($post_count); + } + + calk_topic_del ($new_topic_id, $post_count, '+'); + + calk_topic_del ($old_topic_id, $post_count, '-'); + + if ($forum_config['mod_rewrite']) $topic_location = $forum_url . "/topic_" . $new_topic_id; + + else $topic_location = $forum_url . "showtopic=" . $new_topic_id; + + header("Location: $topic_location"); + } + } + } + } + + break; + +// ******************************************************************************** +// ERROR +// ******************************************************************************** + default: + + forum_msg($f_lang['f_msg'], $f_lang['f_404']); + + break; + } +?> \ No newline at end of file diff --git a/system/forum/action/topic.php b/system/forum/action/topic.php new file mode 100644 index 0000000..52490ad --- /dev/null +++ b/system/forum/action/topic.php @@ -0,0 +1,352 @@ +super_query("SELECT * FROM " . PREFIX . "_forum_topics WHERE tid = '$tid'"); + + $forum_id = $row_topic['forum_id']; + + $topic_title = stripslashes($row_topic['title']); + + $topic_title_last = urlencode($topic_title); + + $check_moderator = check_moderator($forums_array[$forum_id]['access_mod'], $forums_array[$forum_id]['moderators']); + + $check_write = check_access($forums_array[$forum_id]['access_write']); + + $page_n = @ceil(($row_topic['post'] + 1) / $forum_config['post_inpage']); + + if ($row_topic['topic_status'] and !$check_moderator) + { + $topic_status = false; + } + + else + { + $topic_status = true; + } + + if ($check_write and $topic_status) + { + $access_upload = check_access($forums_array[$forum_id]['access_upload']); + + $upload_var = array('area'=>"post", 'forum_id'=>$forum_id, 'topic_id'=>$tid, 'post_id'=>get_salt()); + + $tpl->load_template($tpl_dir.'addpost.tpl'); + + $tpl->set('{title}', $f_lang['app_reply']); + + $tpl->set('[not-wysywyg]', ""); + + $tpl->set('{wysiwyg}',''); + + $tpl->set('[/not-wysywyg]',""); + + include_once SYSTEM_DIR.'/forum/sources/components/bbcode.php'; + + if (!$is_logged) + { + $tpl->set('[not-logged]',''); + $tpl->set('[/not-logged]',''); + } + + else + { + $tpl->set_block("'\\[not-logged\\](.*?)\\[/not-logged\\]'si",""); + } + + if (check_access($forum_config['post_captcha'])) + { + $tpl->set('[sec_code]',""); + $tpl->set('[/sec_code]',""); + + $path = parse_url($config['http_home_url']); + $anti_bot = !defined('FORUM_SUB_DOMAIN') ? 'system/modules/' : ''; + + $tpl->set('{sec_code}',"\"${lang['sec_image']}\""); + } + else + { + $tpl->set('{sec_code}',""); + $tpl->set_block("'\\[sec_code\\](.*?)\\[/sec_code\\]'si",""); + } + + $tpl->set('{bbcode}',$bb_code); + $tpl->set('{text}',""); + + $add_post_action = $a_forum_url."act=post&code=add&page={$page_n}"; + + $tpl->copy_template = "
    ".$tpl->copy_template." + + + +
    +
    "; + + $tpl->compile('dle_forum'); + $tpl->clear(); + } + + else + { + $group_name = $user_group[$member_id['user_group']]['group_name']; + + forum_msg($f_lang['all_info'], $f_lang['topic_write'], 'user_group', $group_name); + } + + if ($forum_config['forum_bar']) + { + $bbr_fid = $forum_id; + $bbr_fname = $forums_array[$forum_id]['name']; + + $category_id = $forums_array[$forum_id]['main_id']; + + $bbr_cid = $category_id; + $bbr_name = $cats_array[$category_id]['cat_name']; + + $bbr_tid = $tid; + $bbr_tname = $topic_title; + + $bbr_app = $f_lang['app_reply']; + } + + break; + +// ******************************************************************************** +// FORWARD +// ******************************************************************************** + case "forward": + + if ($is_logged) + { + if (!$subaction) + { + $result = $db->super_query("SELECT * FROM " . PREFIX . "_forum_topics WHERE tid = '$tid'"); + + if ($result['tid']) + { + $topic_action_add = $a_forum_url."act=_topic&code=forward&subaction=send&tid={$tid}"; + + $tpl->load_template($tpl_dir.'send_frend.tpl'); + + $topic_link = $a_forum_url."showtopic={$tid}"; + + $tpl->set('{topic_title}', $result['title']); + $tpl->set('{topic_link}', $topic_link); + $tpl->set('{user_name}', $member_id['name']); + + $tpl->copy_template = "
    ".$tpl->copy_template."
    "; + + $tpl->compile('dle_forum'); + $tpl->clear(); + } + + else + { + forum_msg($f_lang['f_msg'], $f_lang['f_404']); + } + } + + else + { + $frend_name = strip_tags(stripslashes($_REQUEST['frend_name'])); + $frend_mail = strip_tags(stripslashes($_REQUEST['frend_mail'])); + $frend_title = strip_tags(stripslashes($_REQUEST['frend_title'])); + $frend_text = strip_tags(stripslashes($_REQUEST['frend_text'])); + + if ($frend_name and $frend_mail and $frend_title and $frend_text) + { + $mail_tpl = $db->super_query("SELECT template FROM " . PREFIX . "_forum_email where name='frend_text' LIMIT 0,1"); + + $mail_tpl['template'] = stripslashes($mail_tpl['template']); + + $mail_result = str_replace("{%username_from%}", $member_id['name'], $mail_tpl['template']); + + $mail_result = str_replace("{%username_to%}", $frend_name, $mail_result); + + $mail_result = str_replace("{%text%}", $frend_text, $mail_result); + + include_once SYSTEM_DIR.'/classes/mail.class.php'; + + $mail = new dle_mail ($config); + + $mail->send ($frend_mail, $frend_title, $mail_result); + + $topic_link = $a_forum_url."showtopic={$tid}"; + + forum_msg($f_lang['f_msg'], $f_lang['mail_send'], "link", $topic_link); + } + + else + { + forum_msg($f_lang['f_msg'], $f_lang['values_error']); + } + } + } + + else + { + $group_name = $user_group[$member_id['user_group']]['group_name']; + + forum_msg($f_lang['f_msg'], $f_lang['page_deny'], "user_group", $group_name); + } + + $bbr_app = $f_lang['title_forward']; + + break; + +// ******************************************************************************** +// PRINT +// ******************************************************************************** + case "print": + + $row_topic = $db->super_query("SELECT * FROM " . PREFIX . "_forum_topics WHERE tid = '$tid'"); + + $forum_id = $row_topic['forum_id']; + + $check_read = check_access($forums_array[$forum_id]['access_read']); + + if ($check_read) + { + if ($row_topic['topic_descr']) + { + $row_topic['title'] = $row_topic['title'].', '.$row_topic['topic_descr']; + } + + $result_posts = $db->query("SELECT p.*, u.* FROM " . PREFIX . "_forum_posts AS p LEFT JOIN " . USERPREFIX . "_users AS u ON p.post_author=u.name WHERE p.topic_id = '$tid' and p.hidden = '0' ORDER by pid"); + + while ($row = $db->get_row($result_posts)) + { + $row['post_date'] = strtotime($row['post_date']); + + $tpl->load_template($tpl_dir.'print/post.tpl'); + + $tpl->set('{author}', $row['post_author']); + + $tpl->set('{post-date}', show_date($row['post_date'])); + + $tpl->set('{text}', $row['post_text']); + + if ($member_id['forum_post'] >= $forum_config['post_hide']) + { + $tpl->set_block("'\[hide\](.*?)\[/hide\]'si","\\1"); + } + else + { + $hide_info = "Âíèìàíèå! Ó âàñ íåò ïðàâ, äëÿ ïðîñìîòðà ñêðûòîãî òåêñòà. Íåîáõîäèìî $forum_config[post_hide] ñîîáùåíèé."; + + $tpl->set_block("'\\[hide\\](.*?)\\[/hide\\]'si","
    ".$hide_info."
    "); + } + + $tpl->compile('posts'); + $tpl->clear(); + } + + if (stristr ($tpl->result['posts'], "[attachment=")) + { + require_once SYSTEM_DIR.'/forum/sources/components/attachment.php'; + } + + $tpl->load_template($tpl_dir.'print/topic.tpl'); + + $tpl->set('{topic_link}', $a_forum_url."showtopic=".$row_topic['tid']); + + $tpl->set('{topic_title}', $row_topic['title']); + + $tpl->set('{post_list}', $tpl->result['posts']); + + $tpl->compile('topic_print'); + $tpl->clear(); + + die ($tpl->result['topic_print']); + } + + else + { + forum_msg($f_lang['f_msg'], $f_lang['f_404']); + } + + break; + +// ******************************************************************************** +// POST REPORT +// ******************************************************************************** + case "report": + + if ($is_logged AND !$forum_config['mod_report']) + { + if (!$subaction) + { + $report_action_add = $a_forum_url."act=_topic&code=report&subaction=add&tid={$tid}&pid={$pid}"; + + $tpl->load_template($tpl_dir.'report.tpl'); + + $tpl->copy_template = "
    ".$tpl->copy_template."
    "; + + $tpl->compile('dle_forum'); + $tpl->clear(); + } + + else + { + $report = strip_tags(stripslashes($_REQUEST['report'])); + + if ($tid AND $pid AND $report) + { + $mail_tpl = $db->super_query("SELECT template FROM " . PREFIX . "_forum_email where name='report_text' LIMIT 0,1"); + + $mail_tpl['template'] = stripslashes($mail_tpl['template']); + + $topic_link = $a_forum_url."showtopic={$tid}"; + + $mail_result = str_replace("{%username_from%}", $member_id['name'], $mail_tpl['template']); + + $mail_result = str_replace("{%text%}", $report, $mail_result); + + $mail_result = str_replace("{%topic_link%}", $topic_link, $mail_result); + + $mail_result = str_replace("{%post_id%}", $pid, $mail_result); + + include_once SYSTEM_DIR.'/classes/mail.class.php'; + + $mail = new dle_mail ($config); + + $mail->send ($config['admin_mail'], "DLE Forum - REPORT", $mail_result); + + forum_msg($f_lang['f_msg'], $f_lang['report_send'], "link", $topic_link); + } + + else + { + forum_msg($f_lang['f_msg'], $f_lang['values_error']); + } + } + } + + else + { + forum_msg($f_lang['f_msg'], $f_lang['f_404']); + } + + break; + + default: + + forum_msg($f_lang['f_msg'], $f_lang['f_404']); + + break; + } + +?> \ No newline at end of file diff --git a/system/forum/ajax/addpost.php b/system/forum/ajax/addpost.php new file mode 100644 index 0000000..c8eebff --- /dev/null +++ b/system/forum/ajax/addpost.php @@ -0,0 +1,59 @@ +dir = ROOT_DIR.'/templates/'.$_REQUEST['skin']; +define('TEMPLATE_DIR', $tpl->dir); + +$name = convert_unicode($_POST['name'], $config['charset']); +$mail = convert_unicode($_POST['mail'], $config['charset']); + +$post_text = trim(convert_unicode($_POST['post_text'], $config['charset'])); + +$topic_title = convert_unicode($_POST['topic_title'], $config['charset']); + +$topic_id = intval($_POST['topic_id']); + +$forum_id = intval($_POST['forum_id']); + +$post_id = $_POST['post_id']; + +$ajax_adds = TRUE; + +$access_mod = array(1); + +require_once SYSTEM_DIR.'/forum/action/addpost.php'; + +$clear_value = "form.post_text.value = '';"; + +if(!$add_post_error){ + +$result_posts = $db->query("SELECT * FROM " . PREFIX . "_forum_posts LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_forum_posts.post_author=" . USERPREFIX . "_users.name WHERE " . PREFIX . "_forum_posts.topic_id = '$topic_id' ORDER BY pid DESC LIMIT 1"); + +$tid = $topic_id; + +require_once SYSTEM_DIR.'/forum/sources/showposts.php'; + +$tpl->result['content'] = "
    ".$tpl->result['posts']."
    "; +$tpl->result['content'] = str_replace('{THEME}', $config['http_home_url'].'templates/'.$_REQUEST['skin'], $tpl->result['content']); + +$tpl->result['content'] .= << +var timeval = new Date().getTime(); +var form = document.getElementById('forum-post-form'); +{$clear_value} + +HTML; + +} + +else +{ + $tpl->result['content'] = ""; +} + +@header("Content-type: text/html; charset=".$config['charset']); +echo $tpl->result['content']; +?> \ No newline at end of file diff --git a/system/forum/ajax/dle_forum.js b/system/forum/ajax/dle_forum.js new file mode 100644 index 0000000..b64f3e5 --- /dev/null +++ b/system/forum/ajax/dle_forum.js @@ -0,0 +1,208 @@ +function ajax_post_edit ( p_id ){ + if ( ! c_cache[ p_id ] || c_cache[ p_id ] == '' ){ + c_cache[ p_id ] = $('#post-id-'+p_id).html(); + } + ShowLoading(''); + $.get( forum_ajax + "editpost.php", { id: p_id, action: "edit" }, function(data){ + HideLoading(''); + RunAjaxJS('post-id-'+p_id, data); + setTimeout(function() { + $("html:not(:animated)"+( ! $.browser.opera ? ",body:not(:animated)" : "")).animate({scrollTop: $("#post-id-" + p_id).offset().top - 70}, 700); + }, 100); + }); + return false; +}; +function ajax_cancel_post_edit( p_id ){ + if ( c_cache[ p_id ] != "" ) + {$("#post-id-"+p_id).html(c_cache[ p_id ]);} + return false; +}; +function ajax_save_post_edit( c_id ){ + var post_txt = ''; + comm_edit_id = c_id; + post_txt = $('#forum_post_'+c_id).val(); + ShowLoading(''); + $.post(forum_ajax + "editpost.php", { id: c_id, post_text: post_txt, action: "save" }, function(data){ + HideLoading(''); + $("#post-id-"+c_id).html(data); + }); + return false; +}; +function doAddPost(){ + var form = document.getElementById('forum-post-form'); + if (form.post_text.value == '' || form.post_text.value == ''){alert ( dle_req_field );return false;} + ShowLoading(''); + $.post(forum_ajax + "addpost.php", { topic_id: form.topic_id.value, forum_id: form.forum_id.value, post_id: form.post_id.value, topic_title: form.topic_title.value, name: form.name.value, mail: form.mail.value, post_text: form.post_text.value, skin: dle_skin }, function(data){ + HideLoading(''); + RunAjaxJS('ajax-post', data); + if (data != 'error' && document.getElementById('blind-animation')) { + $("html"+( ! $.browser.opera ? ",body" : "")).animate({scrollTop: $("#ajax-post").offset().top - 70}, 1100); + setTimeout(function() { $('#blind-animation').show('blind',{},0)}, 0); + } + }); +}; +function postDelete(url){ + var agree=confirm( 'Âû äåéñòâèòåëüíî õîòèòå óäàëèòü ýòî ñîîáùåíèå?' ); + if (agree) + document.location=url; +}; +function topicDelete(url){ + var agree=confirm( 'Âû äåéñòâèòåëüíî õîòèòå óäàëèòü ýòó òåìó?' ); + if (agree) + document.location=url; +}; +function rowDelete(url){ + var agree=confirm( 'Âû äåéñòâèòåëüíî õîòèòå óäàëèòü ýòó çàïèñü?' ); + if (agree) + document.location=url; +}; +function TopicMenu( tid, forum_url, moderation ){ +var menu=new Array(); +if (moderation) +{ + menu[0]='Ïåðåñ÷èòàòü âñå â òåìå'; +} +menu[1]='Ïîäïèñêà íà òåìó'; +menu[2]='Ñîîáùèòü äðóãó'; +menu[3]='Âåðñèÿ äëÿ ïå÷àòè'; +return menu; +}; +function ForumMenu( fid, moderation, forum_url ){ +var menu=new Array(); +if (moderation){ +menu[0]='Ïîêàçàòü âñå ñêðûòûå òåìû'; +menu[1]='Ïåðåñ÷èòàòü âñå â ôîðóìå'; +} +menu[3]='Àêòèâíûå òåìû'; +menu[4]='Òåìû áåç îòâåòîâ'; +return menu; +}; +function PostEditMenu( pid, forum_url, page, post_n ){ +var menu=new Array(); +menu[0]='' + menu_short + ''; +menu[1]='' + menu_full + ''; +return menu; +}; +function FUserMenu( url, m_id, group, forum_url ){ +var menu=new Array(); + menu[0]='' + menu_profile + ''; + menu[1]='