diff --git a/README.md b/README.md deleted file mode 100644 index ae7686f..0000000 --- a/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# TSN-Ranksystem - -![license: GPL v3](https://img.shields.io/badge/license-GPL%20v3-brightgreen.svg) ![forks](https://img.shields.io/github/forks/Newcomer1989/TSN-Ranksystem.svg) ![stars](https://img.shields.io/github/stars/Newcomer1989/TSN-Ranksystem.svg) [![GitHub issues](https://img.shields.io/github/issues/Newcomer1989/TSN-Ranksystem.svg)](https://github.com/Newcomer1989/TSN-Ranksystem/issues) - -The TSN Ranksystem is an easy to handle Level System to automatically grant ranks (servergroups) to users on a TeamSpeaks3 Server for online time or online activity. You can create your own servergroups, with permissions, icons etc. of your choice, and define these for the Ranksystem. Its open source and so its free to use under the GNU license with version 3. - -#### Official website: [TS-N.NET](http://ts-n.net/ranksystem.php) diff --git a/bootstrap/addons/font-awesome/css/font-awesome.min.css b/bootstrap/addons/font-awesome/css/font-awesome.min.css index ec53d4d..4ec9223 100644 --- a/bootstrap/addons/font-awesome/css/font-awesome.min.css +++ b/bootstrap/addons/font-awesome/css/font-awesome.min.css @@ -1,4 +1,4 @@ /*! - * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.2.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"} \ No newline at end of file + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.6.3');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} \ No newline at end of file diff --git a/bootstrap/addons/font-awesome/fonts/FontAwesome.otf b/bootstrap/addons/font-awesome/fonts/FontAwesome.otf index 81c9ad9..d4de13e 100644 Binary files a/bootstrap/addons/font-awesome/fonts/FontAwesome.otf and b/bootstrap/addons/font-awesome/fonts/FontAwesome.otf differ diff --git a/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.eot b/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.eot index 84677bc..c7b00d2 100644 Binary files a/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.eot and b/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.eot differ diff --git a/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.svg b/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.svg index d907b25..8b66187 100644 --- a/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.svg +++ b/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.svg @@ -147,14 +147,14 @@ - + - + @@ -169,7 +169,7 @@ - + @@ -178,7 +178,7 @@ - + @@ -219,8 +219,8 @@ - - + + @@ -275,7 +275,7 @@ - + @@ -362,8 +362,8 @@ - - + + @@ -399,7 +399,7 @@ - + @@ -410,9 +410,9 @@ - - - + + + @@ -438,7 +438,7 @@ - + @@ -454,12 +454,12 @@ - + - + @@ -483,13 +483,13 @@ - - + + - + @@ -513,8 +513,173 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.ttf b/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.ttf index 96a3639..f221e50 100644 Binary files a/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.ttf and b/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.ttf differ diff --git a/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.woff b/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.woff index 628b6a5..6e7483c 100644 Binary files a/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.woff and b/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.woff differ diff --git a/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.woff2 b/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..7eb74fd Binary files /dev/null and b/bootstrap/addons/font-awesome/fonts/fontawesome-webfont.woff2 differ diff --git a/bootstrap/addons/font-awesome/less/animated.less b/bootstrap/addons/font-awesome/less/animated.less new file mode 100644 index 0000000..66ad52a --- /dev/null +++ b/bootstrap/addons/font-awesome/less/animated.less @@ -0,0 +1,34 @@ +// Animated Icons +// -------------------------- + +.@{fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.@{fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/bootstrap/addons/font-awesome/less/bordered-pulled.less b/bootstrap/addons/font-awesome/less/bordered-pulled.less index 0c90eb5..f1c8ad7 100644 --- a/bootstrap/addons/font-awesome/less/bordered-pulled.less +++ b/bootstrap/addons/font-awesome/less/bordered-pulled.less @@ -7,6 +7,15 @@ border-radius: .1em; } +.@{fa-css-prefix}-pull-left { float: left; } +.@{fa-css-prefix}-pull-right { float: right; } + +.@{fa-css-prefix} { + &.@{fa-css-prefix}-pull-left { margin-right: .3em; } + &.@{fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ .pull-right { float: right; } .pull-left { float: left; } diff --git a/bootstrap/addons/font-awesome/less/core.less b/bootstrap/addons/font-awesome/less/core.less index 01d1910..c577ac8 100644 --- a/bootstrap/addons/font-awesome/less/core.less +++ b/bootstrap/addons/font-awesome/less/core.less @@ -3,9 +3,10 @@ .@{fa-css-prefix} { display: inline-block; - font: normal normal normal 14px/1 FontAwesome; // shortening font declaration + font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration font-size: inherit; // can't have font-size inherit on line above, so need to override text-rendering: auto; // optimizelegibility throws things off #1094 -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + } diff --git a/bootstrap/addons/font-awesome/less/font-awesome.less b/bootstrap/addons/font-awesome/less/font-awesome.less index 195fd46..c44e5f4 100644 --- a/bootstrap/addons/font-awesome/less/font-awesome.less +++ b/bootstrap/addons/font-awesome/less/font-awesome.less @@ -1,5 +1,5 @@ /*! - * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ @@ -11,7 +11,8 @@ @import "fixed-width.less"; @import "list.less"; @import "bordered-pulled.less"; -@import "spinning.less"; +@import "animated.less"; @import "rotated-flipped.less"; @import "stacked.less"; @import "icons.less"; +@import "screen-reader.less"; diff --git a/bootstrap/addons/font-awesome/less/icons.less b/bootstrap/addons/font-awesome/less/icons.less index b5c26c7..ba21b22 100644 --- a/bootstrap/addons/font-awesome/less/icons.less +++ b/bootstrap/addons/font-awesome/less/icons.less @@ -158,10 +158,12 @@ .@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; } .@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; } .@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; } +.@{fa-css-prefix}-facebook-f:before, .@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; } .@{fa-css-prefix}-github:before { content: @fa-var-github; } .@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; } .@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; } +.@{fa-css-prefix}-feed:before, .@{fa-css-prefix}-rss:before { content: @fa-var-rss; } .@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; } .@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; } @@ -397,7 +399,8 @@ .@{fa-css-prefix}-trello:before { content: @fa-var-trello; } .@{fa-css-prefix}-female:before { content: @fa-var-female; } .@{fa-css-prefix}-male:before { content: @fa-var-male; } -.@{fa-css-prefix}-gittip:before { content: @fa-var-gittip; } +.@{fa-css-prefix}-gittip:before, +.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; } .@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; } .@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; } .@{fa-css-prefix}-archive:before { content: @fa-var-archive; } @@ -435,7 +438,7 @@ .@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; } .@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; } .@{fa-css-prefix}-digg:before { content: @fa-var-digg; } -.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; } +.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; } .@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; } .@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; } .@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; } @@ -485,11 +488,14 @@ .@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; } .@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; } .@{fa-css-prefix}-ra:before, +.@{fa-css-prefix}-resistance:before, .@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; } .@{fa-css-prefix}-ge:before, .@{fa-css-prefix}-empire:before { content: @fa-var-empire; } .@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; } .@{fa-css-prefix}-git:before { content: @fa-var-git; } +.@{fa-css-prefix}-y-combinator-square:before, +.@{fa-css-prefix}-yc-square:before, .@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; } .@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; } .@{fa-css-prefix}-qq:before { content: @fa-var-qq; } @@ -550,3 +556,178 @@ .@{fa-css-prefix}-sheqel:before, .@{fa-css-prefix}-ils:before { content: @fa-var-ils; } .@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; } +.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; } +.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; } +.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; } +.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; } +.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; } +.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; } +.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; } +.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; } +.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; } +.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; } +.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; } +.@{fa-css-prefix}-diamond:before { content: @fa-var-diamond; } +.@{fa-css-prefix}-ship:before { content: @fa-var-ship; } +.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; } +.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; } +.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; } +.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; } +.@{fa-css-prefix}-venus:before { content: @fa-var-venus; } +.@{fa-css-prefix}-mars:before { content: @fa-var-mars; } +.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; } +.@{fa-css-prefix}-intersex:before, +.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; } +.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; } +.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; } +.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; } +.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; } +.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; } +.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; } +.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; } +.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; } +.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; } +.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; } +.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; } +.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; } +.@{fa-css-prefix}-server:before { content: @fa-var-server; } +.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; } +.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; } +.@{fa-css-prefix}-hotel:before, +.@{fa-css-prefix}-bed:before { content: @fa-var-bed; } +.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; } +.@{fa-css-prefix}-train:before { content: @fa-var-train; } +.@{fa-css-prefix}-subway:before { content: @fa-var-subway; } +.@{fa-css-prefix}-medium:before { content: @fa-var-medium; } +.@{fa-css-prefix}-yc:before, +.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; } +.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; } +.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; } +.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; } +.@{fa-css-prefix}-battery-4:before, +.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; } +.@{fa-css-prefix}-battery-3:before, +.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; } +.@{fa-css-prefix}-battery-2:before, +.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; } +.@{fa-css-prefix}-battery-1:before, +.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; } +.@{fa-css-prefix}-battery-0:before, +.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; } +.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; } +.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; } +.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; } +.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; } +.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; } +.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note-o; } +.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; } +.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; } +.@{fa-css-prefix}-clone:before { content: @fa-var-clone; } +.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; } +.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass-o; } +.@{fa-css-prefix}-hourglass-1:before, +.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; } +.@{fa-css-prefix}-hourglass-2:before, +.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; } +.@{fa-css-prefix}-hourglass-3:before, +.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; } +.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; } +.@{fa-css-prefix}-hand-grab-o:before, +.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock-o; } +.@{fa-css-prefix}-hand-stop-o:before, +.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper-o; } +.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors-o; } +.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard-o; } +.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock-o; } +.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer-o; } +.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace-o; } +.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; } +.@{fa-css-prefix}-registered:before { content: @fa-var-registered; } +.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; } +.@{fa-css-prefix}-gg:before { content: @fa-var-gg; } +.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; } +.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; } +.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; } +.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; } +.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; } +.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; } +.@{fa-css-prefix}-safari:before { content: @fa-var-safari; } +.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; } +.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; } +.@{fa-css-prefix}-opera:before { content: @fa-var-opera; } +.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; } +.@{fa-css-prefix}-tv:before, +.@{fa-css-prefix}-television:before { content: @fa-var-television; } +.@{fa-css-prefix}-contao:before { content: @fa-var-contao; } +.@{fa-css-prefix}-500px:before { content: @fa-var-500px; } +.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; } +.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus-o; } +.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus-o; } +.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times-o; } +.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check-o; } +.@{fa-css-prefix}-industry:before { content: @fa-var-industry; } +.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; } +.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; } +.@{fa-css-prefix}-map-o:before { content: @fa-var-map-o; } +.@{fa-css-prefix}-map:before { content: @fa-var-map; } +.@{fa-css-prefix}-commenting:before { content: @fa-var-commenting; } +.@{fa-css-prefix}-commenting-o:before { content: @fa-var-commenting-o; } +.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; } +.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; } +.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; } +.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; } +.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; } +.@{fa-css-prefix}-edge:before { content: @fa-var-edge; } +.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card-alt; } +.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; } +.@{fa-css-prefix}-modx:before { content: @fa-var-modx; } +.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; } +.@{fa-css-prefix}-usb:before { content: @fa-var-usb; } +.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; } +.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; } +.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; } +.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; } +.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle-o; } +.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; } +.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle-o; } +.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; } +.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; } +.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; } +.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; } +.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; } +.@{fa-css-prefix}-percent:before { content: @fa-var-percent; } +.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; } +.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; } +.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; } +.@{fa-css-prefix}-envira:before { content: @fa-var-envira; } +.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; } +.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-wheelchair-alt; } +.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle-o; } +.@{fa-css-prefix}-blind:before { content: @fa-var-blind; } +.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; } +.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-volume-control-phone; } +.@{fa-css-prefix}-braille:before { content: @fa-var-braille; } +.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; } +.@{fa-css-prefix}-asl-interpreting:before, +.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; } +.@{fa-css-prefix}-deafness:before, +.@{fa-css-prefix}-hard-of-hearing:before, +.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; } +.@{fa-css-prefix}-glide:before { content: @fa-var-glide; } +.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; } +.@{fa-css-prefix}-signing:before, +.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; } +.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; } +.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; } +.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; } +.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; } +.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; } +.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; } +.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; } +.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; } +.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; } +.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; } +.@{fa-css-prefix}-google-plus-circle:before, +.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus-official; } +.@{fa-css-prefix}-fa:before, +.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; } diff --git a/bootstrap/addons/font-awesome/less/mixins.less b/bootstrap/addons/font-awesome/less/mixins.less index b7bfadc..beef231 100644 --- a/bootstrap/addons/font-awesome/less/mixins.less +++ b/bootstrap/addons/font-awesome/less/mixins.less @@ -3,23 +3,58 @@ .fa-icon() { display: inline-block; - font: normal normal normal 14px/1 FontAwesome; // shortening font declaration + font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration font-size: inherit; // can't have font-size inherit on line above, so need to override text-rendering: auto; // optimizelegibility throws things off #1094 -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + } .fa-icon-rotate(@degrees, @rotation) { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})"; -webkit-transform: rotate(@degrees); -ms-transform: rotate(@degrees); transform: rotate(@degrees); } .fa-icon-flip(@horiz, @vert, @rotation) { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)"; -webkit-transform: scale(@horiz, @vert); -ms-transform: scale(@horiz, @vert); transform: scale(@horiz, @vert); } + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +.sr-only() { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +.sr-only-focusable() { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} diff --git a/bootstrap/addons/font-awesome/less/path.less b/bootstrap/addons/font-awesome/less/path.less index c5a6912..835be41 100644 --- a/bootstrap/addons/font-awesome/less/path.less +++ b/bootstrap/addons/font-awesome/less/path.less @@ -5,10 +5,11 @@ font-family: 'FontAwesome'; src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), + url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); -// src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts font-weight: normal; font-style: normal; } diff --git a/bootstrap/addons/font-awesome/less/screen-reader.less b/bootstrap/addons/font-awesome/less/screen-reader.less new file mode 100644 index 0000000..11c1881 --- /dev/null +++ b/bootstrap/addons/font-awesome/less/screen-reader.less @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { .sr-only(); } +.sr-only-focusable { .sr-only-focusable(); } diff --git a/bootstrap/addons/font-awesome/less/variables.less b/bootstrap/addons/font-awesome/less/variables.less index ccf939d..2b33819 100644 --- a/bootstrap/addons/font-awesome/less/variables.less +++ b/bootstrap/addons/font-awesome/less/variables.less @@ -2,20 +2,25 @@ // -------------------------- @fa-font-path: "../fonts"; -//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts"; // for referencing Bootstrap CDN font files directly +@fa-font-size-base: 14px; +@fa-line-height-base: 1; +//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.6.3/fonts"; // for referencing Bootstrap CDN font files directly @fa-css-prefix: fa; -@fa-version: "4.2.0"; +@fa-version: "4.6.3"; @fa-border-color: #eee; @fa-inverse: #fff; @fa-li-width: (30em / 14); +@fa-var-500px: "\f26e"; @fa-var-adjust: "\f042"; @fa-var-adn: "\f170"; @fa-var-align-center: "\f037"; @fa-var-align-justify: "\f039"; @fa-var-align-left: "\f036"; @fa-var-align-right: "\f038"; +@fa-var-amazon: "\f270"; @fa-var-ambulance: "\f0f9"; +@fa-var-american-sign-language-interpreting: "\f2a3"; @fa-var-anchor: "\f13d"; @fa-var-android: "\f17b"; @fa-var-angellist: "\f209"; @@ -46,16 +51,31 @@ @fa-var-arrows-alt: "\f0b2"; @fa-var-arrows-h: "\f07e"; @fa-var-arrows-v: "\f07d"; +@fa-var-asl-interpreting: "\f2a3"; +@fa-var-assistive-listening-systems: "\f2a2"; @fa-var-asterisk: "\f069"; @fa-var-at: "\f1fa"; +@fa-var-audio-description: "\f29e"; @fa-var-automobile: "\f1b9"; @fa-var-backward: "\f04a"; +@fa-var-balance-scale: "\f24e"; @fa-var-ban: "\f05e"; @fa-var-bank: "\f19c"; @fa-var-bar-chart: "\f080"; @fa-var-bar-chart-o: "\f080"; @fa-var-barcode: "\f02a"; @fa-var-bars: "\f0c9"; +@fa-var-battery-0: "\f244"; +@fa-var-battery-1: "\f243"; +@fa-var-battery-2: "\f242"; +@fa-var-battery-3: "\f241"; +@fa-var-battery-4: "\f240"; +@fa-var-battery-empty: "\f244"; +@fa-var-battery-full: "\f240"; +@fa-var-battery-half: "\f242"; +@fa-var-battery-quarter: "\f243"; +@fa-var-battery-three-quarters: "\f241"; +@fa-var-bed: "\f236"; @fa-var-beer: "\f0fc"; @fa-var-behance: "\f1b4"; @fa-var-behance-square: "\f1b5"; @@ -69,12 +89,17 @@ @fa-var-bitbucket: "\f171"; @fa-var-bitbucket-square: "\f172"; @fa-var-bitcoin: "\f15a"; +@fa-var-black-tie: "\f27e"; +@fa-var-blind: "\f29d"; +@fa-var-bluetooth: "\f293"; +@fa-var-bluetooth-b: "\f294"; @fa-var-bold: "\f032"; @fa-var-bolt: "\f0e7"; @fa-var-bomb: "\f1e2"; @fa-var-book: "\f02d"; @fa-var-bookmark: "\f02e"; @fa-var-bookmark-o: "\f097"; +@fa-var-braille: "\f2a1"; @fa-var-briefcase: "\f0b1"; @fa-var-btc: "\f15a"; @fa-var-bug: "\f188"; @@ -83,10 +108,15 @@ @fa-var-bullhorn: "\f0a1"; @fa-var-bullseye: "\f140"; @fa-var-bus: "\f207"; +@fa-var-buysellads: "\f20d"; @fa-var-cab: "\f1ba"; @fa-var-calculator: "\f1ec"; @fa-var-calendar: "\f073"; +@fa-var-calendar-check-o: "\f274"; +@fa-var-calendar-minus-o: "\f272"; @fa-var-calendar-o: "\f133"; +@fa-var-calendar-plus-o: "\f271"; +@fa-var-calendar-times-o: "\f273"; @fa-var-camera: "\f030"; @fa-var-camera-retro: "\f083"; @fa-var-car: "\f1b9"; @@ -98,9 +128,13 @@ @fa-var-caret-square-o-right: "\f152"; @fa-var-caret-square-o-up: "\f151"; @fa-var-caret-up: "\f0d8"; +@fa-var-cart-arrow-down: "\f218"; +@fa-var-cart-plus: "\f217"; @fa-var-cc: "\f20a"; @fa-var-cc-amex: "\f1f3"; +@fa-var-cc-diners-club: "\f24c"; @fa-var-cc-discover: "\f1f2"; +@fa-var-cc-jcb: "\f24b"; @fa-var-cc-mastercard: "\f1f1"; @fa-var-cc-paypal: "\f1f4"; @fa-var-cc-stripe: "\f1f5"; @@ -122,12 +156,14 @@ @fa-var-chevron-right: "\f054"; @fa-var-chevron-up: "\f077"; @fa-var-child: "\f1ae"; +@fa-var-chrome: "\f268"; @fa-var-circle: "\f111"; @fa-var-circle-o: "\f10c"; @fa-var-circle-o-notch: "\f1ce"; @fa-var-circle-thin: "\f1db"; @fa-var-clipboard: "\f0ea"; @fa-var-clock-o: "\f017"; +@fa-var-clone: "\f24d"; @fa-var-close: "\f00d"; @fa-var-cloud: "\f0c2"; @fa-var-cloud-download: "\f0ed"; @@ -136,19 +172,26 @@ @fa-var-code: "\f121"; @fa-var-code-fork: "\f126"; @fa-var-codepen: "\f1cb"; +@fa-var-codiepie: "\f284"; @fa-var-coffee: "\f0f4"; @fa-var-cog: "\f013"; @fa-var-cogs: "\f085"; @fa-var-columns: "\f0db"; @fa-var-comment: "\f075"; @fa-var-comment-o: "\f0e5"; +@fa-var-commenting: "\f27a"; +@fa-var-commenting-o: "\f27b"; @fa-var-comments: "\f086"; @fa-var-comments-o: "\f0e6"; @fa-var-compass: "\f14e"; @fa-var-compress: "\f066"; +@fa-var-connectdevelop: "\f20e"; +@fa-var-contao: "\f26d"; @fa-var-copy: "\f0c5"; @fa-var-copyright: "\f1f9"; +@fa-var-creative-commons: "\f25e"; @fa-var-credit-card: "\f09d"; +@fa-var-credit-card-alt: "\f283"; @fa-var-crop: "\f125"; @fa-var-crosshairs: "\f05b"; @fa-var-css3: "\f13c"; @@ -157,11 +200,15 @@ @fa-var-cut: "\f0c4"; @fa-var-cutlery: "\f0f5"; @fa-var-dashboard: "\f0e4"; +@fa-var-dashcube: "\f210"; @fa-var-database: "\f1c0"; +@fa-var-deaf: "\f2a4"; +@fa-var-deafness: "\f2a4"; @fa-var-dedent: "\f03b"; @fa-var-delicious: "\f1a5"; @fa-var-desktop: "\f108"; @fa-var-deviantart: "\f1bd"; +@fa-var-diamond: "\f219"; @fa-var-digg: "\f1a6"; @fa-var-dollar: "\f155"; @fa-var-dot-circle-o: "\f192"; @@ -169,6 +216,7 @@ @fa-var-dribbble: "\f17d"; @fa-var-dropbox: "\f16b"; @fa-var-drupal: "\f1a9"; +@fa-var-edge: "\f282"; @fa-var-edit: "\f044"; @fa-var-eject: "\f052"; @fa-var-ellipsis-h: "\f141"; @@ -177,6 +225,7 @@ @fa-var-envelope: "\f0e0"; @fa-var-envelope-o: "\f003"; @fa-var-envelope-square: "\f199"; +@fa-var-envira: "\f299"; @fa-var-eraser: "\f12d"; @fa-var-eur: "\f153"; @fa-var-euro: "\f153"; @@ -185,16 +234,21 @@ @fa-var-exclamation-circle: "\f06a"; @fa-var-exclamation-triangle: "\f071"; @fa-var-expand: "\f065"; +@fa-var-expeditedssl: "\f23e"; @fa-var-external-link: "\f08e"; @fa-var-external-link-square: "\f14c"; @fa-var-eye: "\f06e"; @fa-var-eye-slash: "\f070"; @fa-var-eyedropper: "\f1fb"; +@fa-var-fa: "\f2b4"; @fa-var-facebook: "\f09a"; +@fa-var-facebook-f: "\f09a"; +@fa-var-facebook-official: "\f230"; @fa-var-facebook-square: "\f082"; @fa-var-fast-backward: "\f049"; @fa-var-fast-forward: "\f050"; @fa-var-fax: "\f1ac"; +@fa-var-feed: "\f09e"; @fa-var-female: "\f182"; @fa-var-fighter-jet: "\f0fb"; @fa-var-file: "\f15b"; @@ -220,6 +274,8 @@ @fa-var-filter: "\f0b0"; @fa-var-fire: "\f06d"; @fa-var-fire-extinguisher: "\f134"; +@fa-var-firefox: "\f269"; +@fa-var-first-order: "\f2b0"; @fa-var-flag: "\f024"; @fa-var-flag-checkered: "\f11e"; @fa-var-flag-o: "\f11d"; @@ -232,6 +288,10 @@ @fa-var-folder-open: "\f07c"; @fa-var-folder-open-o: "\f115"; @fa-var-font: "\f031"; +@fa-var-font-awesome: "\f2b4"; +@fa-var-fonticons: "\f280"; +@fa-var-fort-awesome: "\f286"; +@fa-var-forumbee: "\f211"; @fa-var-forward: "\f04e"; @fa-var-foursquare: "\f180"; @fa-var-frown-o: "\f119"; @@ -242,45 +302,81 @@ @fa-var-ge: "\f1d1"; @fa-var-gear: "\f013"; @fa-var-gears: "\f085"; +@fa-var-genderless: "\f22d"; +@fa-var-get-pocket: "\f265"; +@fa-var-gg: "\f260"; +@fa-var-gg-circle: "\f261"; @fa-var-gift: "\f06b"; @fa-var-git: "\f1d3"; @fa-var-git-square: "\f1d2"; @fa-var-github: "\f09b"; @fa-var-github-alt: "\f113"; @fa-var-github-square: "\f092"; +@fa-var-gitlab: "\f296"; @fa-var-gittip: "\f184"; @fa-var-glass: "\f000"; +@fa-var-glide: "\f2a5"; +@fa-var-glide-g: "\f2a6"; @fa-var-globe: "\f0ac"; @fa-var-google: "\f1a0"; @fa-var-google-plus: "\f0d5"; +@fa-var-google-plus-circle: "\f2b3"; +@fa-var-google-plus-official: "\f2b3"; @fa-var-google-plus-square: "\f0d4"; @fa-var-google-wallet: "\f1ee"; @fa-var-graduation-cap: "\f19d"; +@fa-var-gratipay: "\f184"; @fa-var-group: "\f0c0"; @fa-var-h-square: "\f0fd"; @fa-var-hacker-news: "\f1d4"; +@fa-var-hand-grab-o: "\f255"; +@fa-var-hand-lizard-o: "\f258"; @fa-var-hand-o-down: "\f0a7"; @fa-var-hand-o-left: "\f0a5"; @fa-var-hand-o-right: "\f0a4"; @fa-var-hand-o-up: "\f0a6"; +@fa-var-hand-paper-o: "\f256"; +@fa-var-hand-peace-o: "\f25b"; +@fa-var-hand-pointer-o: "\f25a"; +@fa-var-hand-rock-o: "\f255"; +@fa-var-hand-scissors-o: "\f257"; +@fa-var-hand-spock-o: "\f259"; +@fa-var-hand-stop-o: "\f256"; +@fa-var-hard-of-hearing: "\f2a4"; +@fa-var-hashtag: "\f292"; @fa-var-hdd-o: "\f0a0"; @fa-var-header: "\f1dc"; @fa-var-headphones: "\f025"; @fa-var-heart: "\f004"; @fa-var-heart-o: "\f08a"; +@fa-var-heartbeat: "\f21e"; @fa-var-history: "\f1da"; @fa-var-home: "\f015"; @fa-var-hospital-o: "\f0f8"; +@fa-var-hotel: "\f236"; +@fa-var-hourglass: "\f254"; +@fa-var-hourglass-1: "\f251"; +@fa-var-hourglass-2: "\f252"; +@fa-var-hourglass-3: "\f253"; +@fa-var-hourglass-end: "\f253"; +@fa-var-hourglass-half: "\f252"; +@fa-var-hourglass-o: "\f250"; +@fa-var-hourglass-start: "\f251"; +@fa-var-houzz: "\f27c"; @fa-var-html5: "\f13b"; +@fa-var-i-cursor: "\f246"; @fa-var-ils: "\f20b"; @fa-var-image: "\f03e"; @fa-var-inbox: "\f01c"; @fa-var-indent: "\f03c"; +@fa-var-industry: "\f275"; @fa-var-info: "\f129"; @fa-var-info-circle: "\f05a"; @fa-var-inr: "\f156"; @fa-var-instagram: "\f16d"; @fa-var-institution: "\f19c"; +@fa-var-internet-explorer: "\f26b"; +@fa-var-intersex: "\f224"; @fa-var-ioxhost: "\f208"; @fa-var-italic: "\f033"; @fa-var-joomla: "\f1aa"; @@ -294,6 +390,7 @@ @fa-var-lastfm: "\f202"; @fa-var-lastfm-square: "\f203"; @fa-var-leaf: "\f06c"; +@fa-var-leanpub: "\f212"; @fa-var-legal: "\f0e3"; @fa-var-lemon-o: "\f094"; @fa-var-level-down: "\f149"; @@ -318,32 +415,56 @@ @fa-var-long-arrow-left: "\f177"; @fa-var-long-arrow-right: "\f178"; @fa-var-long-arrow-up: "\f176"; +@fa-var-low-vision: "\f2a8"; @fa-var-magic: "\f0d0"; @fa-var-magnet: "\f076"; @fa-var-mail-forward: "\f064"; @fa-var-mail-reply: "\f112"; @fa-var-mail-reply-all: "\f122"; @fa-var-male: "\f183"; +@fa-var-map: "\f279"; @fa-var-map-marker: "\f041"; +@fa-var-map-o: "\f278"; +@fa-var-map-pin: "\f276"; +@fa-var-map-signs: "\f277"; +@fa-var-mars: "\f222"; +@fa-var-mars-double: "\f227"; +@fa-var-mars-stroke: "\f229"; +@fa-var-mars-stroke-h: "\f22b"; +@fa-var-mars-stroke-v: "\f22a"; @fa-var-maxcdn: "\f136"; @fa-var-meanpath: "\f20c"; +@fa-var-medium: "\f23a"; @fa-var-medkit: "\f0fa"; @fa-var-meh-o: "\f11a"; +@fa-var-mercury: "\f223"; @fa-var-microphone: "\f130"; @fa-var-microphone-slash: "\f131"; @fa-var-minus: "\f068"; @fa-var-minus-circle: "\f056"; @fa-var-minus-square: "\f146"; @fa-var-minus-square-o: "\f147"; +@fa-var-mixcloud: "\f289"; @fa-var-mobile: "\f10b"; @fa-var-mobile-phone: "\f10b"; +@fa-var-modx: "\f285"; @fa-var-money: "\f0d6"; @fa-var-moon-o: "\f186"; @fa-var-mortar-board: "\f19d"; +@fa-var-motorcycle: "\f21c"; +@fa-var-mouse-pointer: "\f245"; @fa-var-music: "\f001"; @fa-var-navicon: "\f0c9"; +@fa-var-neuter: "\f22c"; @fa-var-newspaper-o: "\f1ea"; +@fa-var-object-group: "\f247"; +@fa-var-object-ungroup: "\f248"; +@fa-var-odnoklassniki: "\f263"; +@fa-var-odnoklassniki-square: "\f264"; +@fa-var-opencart: "\f23d"; @fa-var-openid: "\f19b"; +@fa-var-opera: "\f26a"; +@fa-var-optin-monster: "\f23c"; @fa-var-outdent: "\f03b"; @fa-var-pagelines: "\f18c"; @fa-var-paint-brush: "\f1fc"; @@ -353,19 +474,24 @@ @fa-var-paragraph: "\f1dd"; @fa-var-paste: "\f0ea"; @fa-var-pause: "\f04c"; +@fa-var-pause-circle: "\f28b"; +@fa-var-pause-circle-o: "\f28c"; @fa-var-paw: "\f1b0"; @fa-var-paypal: "\f1ed"; @fa-var-pencil: "\f040"; @fa-var-pencil-square: "\f14b"; @fa-var-pencil-square-o: "\f044"; +@fa-var-percent: "\f295"; @fa-var-phone: "\f095"; @fa-var-phone-square: "\f098"; @fa-var-photo: "\f03e"; @fa-var-picture-o: "\f03e"; @fa-var-pie-chart: "\f200"; -@fa-var-pied-piper: "\f1a7"; +@fa-var-pied-piper: "\f2ae"; @fa-var-pied-piper-alt: "\f1a8"; +@fa-var-pied-piper-pp: "\f1a7"; @fa-var-pinterest: "\f0d2"; +@fa-var-pinterest-p: "\f231"; @fa-var-pinterest-square: "\f0d3"; @fa-var-plane: "\f072"; @fa-var-play: "\f04b"; @@ -378,11 +504,13 @@ @fa-var-plus-square-o: "\f196"; @fa-var-power-off: "\f011"; @fa-var-print: "\f02f"; +@fa-var-product-hunt: "\f288"; @fa-var-puzzle-piece: "\f12e"; @fa-var-qq: "\f1d6"; @fa-var-qrcode: "\f029"; @fa-var-question: "\f128"; @fa-var-question-circle: "\f059"; +@fa-var-question-circle-o: "\f29c"; @fa-var-quote-left: "\f10d"; @fa-var-quote-right: "\f10e"; @fa-var-ra: "\f1d0"; @@ -390,14 +518,17 @@ @fa-var-rebel: "\f1d0"; @fa-var-recycle: "\f1b8"; @fa-var-reddit: "\f1a1"; +@fa-var-reddit-alien: "\f281"; @fa-var-reddit-square: "\f1a2"; @fa-var-refresh: "\f021"; +@fa-var-registered: "\f25d"; @fa-var-remove: "\f00d"; @fa-var-renren: "\f18b"; @fa-var-reorder: "\f0c9"; @fa-var-repeat: "\f01e"; @fa-var-reply: "\f112"; @fa-var-reply-all: "\f122"; +@fa-var-resistance: "\f1d0"; @fa-var-retweet: "\f079"; @fa-var-rmb: "\f157"; @fa-var-road: "\f018"; @@ -410,13 +541,17 @@ @fa-var-rub: "\f158"; @fa-var-ruble: "\f158"; @fa-var-rupee: "\f156"; +@fa-var-safari: "\f267"; @fa-var-save: "\f0c7"; @fa-var-scissors: "\f0c4"; +@fa-var-scribd: "\f28a"; @fa-var-search: "\f002"; @fa-var-search-minus: "\f010"; @fa-var-search-plus: "\f00e"; +@fa-var-sellsy: "\f213"; @fa-var-send: "\f1d8"; @fa-var-send-o: "\f1d9"; +@fa-var-server: "\f233"; @fa-var-share: "\f064"; @fa-var-share-alt: "\f1e0"; @fa-var-share-alt-square: "\f1e1"; @@ -425,16 +560,27 @@ @fa-var-shekel: "\f20b"; @fa-var-sheqel: "\f20b"; @fa-var-shield: "\f132"; +@fa-var-ship: "\f21a"; +@fa-var-shirtsinbulk: "\f214"; +@fa-var-shopping-bag: "\f290"; +@fa-var-shopping-basket: "\f291"; @fa-var-shopping-cart: "\f07a"; @fa-var-sign-in: "\f090"; +@fa-var-sign-language: "\f2a7"; @fa-var-sign-out: "\f08b"; @fa-var-signal: "\f012"; +@fa-var-signing: "\f2a7"; +@fa-var-simplybuilt: "\f215"; @fa-var-sitemap: "\f0e8"; +@fa-var-skyatlas: "\f216"; @fa-var-skype: "\f17e"; @fa-var-slack: "\f198"; @fa-var-sliders: "\f1de"; @fa-var-slideshare: "\f1e7"; @fa-var-smile-o: "\f118"; +@fa-var-snapchat: "\f2ab"; +@fa-var-snapchat-ghost: "\f2ac"; +@fa-var-snapchat-square: "\f2ad"; @fa-var-soccer-ball-o: "\f1e3"; @fa-var-sort: "\f0dc"; @fa-var-sort-alpha-asc: "\f15d"; @@ -467,11 +613,17 @@ @fa-var-step-backward: "\f048"; @fa-var-step-forward: "\f051"; @fa-var-stethoscope: "\f0f1"; +@fa-var-sticky-note: "\f249"; +@fa-var-sticky-note-o: "\f24a"; @fa-var-stop: "\f04d"; +@fa-var-stop-circle: "\f28d"; +@fa-var-stop-circle-o: "\f28e"; +@fa-var-street-view: "\f21d"; @fa-var-strikethrough: "\f0cc"; @fa-var-stumbleupon: "\f1a4"; @fa-var-stumbleupon-circle: "\f1a3"; @fa-var-subscript: "\f12c"; +@fa-var-subway: "\f239"; @fa-var-suitcase: "\f0f2"; @fa-var-sun-o: "\f185"; @fa-var-superscript: "\f12b"; @@ -483,6 +635,7 @@ @fa-var-tags: "\f02c"; @fa-var-tasks: "\f0ae"; @fa-var-taxi: "\f1ba"; +@fa-var-television: "\f26c"; @fa-var-tencent-weibo: "\f1d5"; @fa-var-terminal: "\f120"; @fa-var-text-height: "\f034"; @@ -490,6 +643,7 @@ @fa-var-th: "\f00a"; @fa-var-th-large: "\f009"; @fa-var-th-list: "\f00b"; +@fa-var-themeisle: "\f2b2"; @fa-var-thumb-tack: "\f08d"; @fa-var-thumbs-down: "\f165"; @fa-var-thumbs-o-down: "\f088"; @@ -506,10 +660,15 @@ @fa-var-toggle-on: "\f205"; @fa-var-toggle-right: "\f152"; @fa-var-toggle-up: "\f151"; +@fa-var-trademark: "\f25c"; +@fa-var-train: "\f238"; +@fa-var-transgender: "\f224"; +@fa-var-transgender-alt: "\f225"; @fa-var-trash: "\f1f8"; @fa-var-trash-o: "\f014"; @fa-var-tree: "\f1bb"; @fa-var-trello: "\f181"; +@fa-var-tripadvisor: "\f262"; @fa-var-trophy: "\f091"; @fa-var-truck: "\f0d1"; @fa-var-try: "\f195"; @@ -517,26 +676,40 @@ @fa-var-tumblr: "\f173"; @fa-var-tumblr-square: "\f174"; @fa-var-turkish-lira: "\f195"; +@fa-var-tv: "\f26c"; @fa-var-twitch: "\f1e8"; @fa-var-twitter: "\f099"; @fa-var-twitter-square: "\f081"; @fa-var-umbrella: "\f0e9"; @fa-var-underline: "\f0cd"; @fa-var-undo: "\f0e2"; +@fa-var-universal-access: "\f29a"; @fa-var-university: "\f19c"; @fa-var-unlink: "\f127"; @fa-var-unlock: "\f09c"; @fa-var-unlock-alt: "\f13e"; @fa-var-unsorted: "\f0dc"; @fa-var-upload: "\f093"; +@fa-var-usb: "\f287"; @fa-var-usd: "\f155"; @fa-var-user: "\f007"; @fa-var-user-md: "\f0f0"; +@fa-var-user-plus: "\f234"; +@fa-var-user-secret: "\f21b"; +@fa-var-user-times: "\f235"; @fa-var-users: "\f0c0"; +@fa-var-venus: "\f221"; +@fa-var-venus-double: "\f226"; +@fa-var-venus-mars: "\f228"; +@fa-var-viacoin: "\f237"; +@fa-var-viadeo: "\f2a9"; +@fa-var-viadeo-square: "\f2aa"; @fa-var-video-camera: "\f03d"; +@fa-var-vimeo: "\f27d"; @fa-var-vimeo-square: "\f194"; @fa-var-vine: "\f1ca"; @fa-var-vk: "\f189"; +@fa-var-volume-control-phone: "\f2a0"; @fa-var-volume-down: "\f027"; @fa-var-volume-off: "\f026"; @fa-var-volume-up: "\f028"; @@ -544,17 +717,27 @@ @fa-var-wechat: "\f1d7"; @fa-var-weibo: "\f18a"; @fa-var-weixin: "\f1d7"; +@fa-var-whatsapp: "\f232"; @fa-var-wheelchair: "\f193"; +@fa-var-wheelchair-alt: "\f29b"; @fa-var-wifi: "\f1eb"; +@fa-var-wikipedia-w: "\f266"; @fa-var-windows: "\f17a"; @fa-var-won: "\f159"; @fa-var-wordpress: "\f19a"; +@fa-var-wpbeginner: "\f297"; +@fa-var-wpforms: "\f298"; @fa-var-wrench: "\f0ad"; @fa-var-xing: "\f168"; @fa-var-xing-square: "\f169"; +@fa-var-y-combinator: "\f23b"; +@fa-var-y-combinator-square: "\f1d4"; @fa-var-yahoo: "\f19e"; +@fa-var-yc: "\f23b"; +@fa-var-yc-square: "\f1d4"; @fa-var-yelp: "\f1e9"; @fa-var-yen: "\f157"; +@fa-var-yoast: "\f2b1"; @fa-var-youtube: "\f167"; @fa-var-youtube-play: "\f16a"; @fa-var-youtube-square: "\f166"; diff --git a/bootstrap/addons/font-awesome/scss/_animated.scss b/bootstrap/addons/font-awesome/scss/_animated.scss new file mode 100644 index 0000000..8a020db --- /dev/null +++ b/bootstrap/addons/font-awesome/scss/_animated.scss @@ -0,0 +1,34 @@ +// Spinning Icons +// -------------------------- + +.#{$fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.#{$fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/bootstrap/addons/font-awesome/scss/_bordered-pulled.scss b/bootstrap/addons/font-awesome/scss/_bordered-pulled.scss index 9d3fdf3..d4b85a0 100644 --- a/bootstrap/addons/font-awesome/scss/_bordered-pulled.scss +++ b/bootstrap/addons/font-awesome/scss/_bordered-pulled.scss @@ -7,6 +7,15 @@ border-radius: .1em; } +.#{$fa-css-prefix}-pull-left { float: left; } +.#{$fa-css-prefix}-pull-right { float: right; } + +.#{$fa-css-prefix} { + &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } + &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ .pull-right { float: right; } .pull-left { float: left; } diff --git a/bootstrap/addons/font-awesome/scss/_core.scss b/bootstrap/addons/font-awesome/scss/_core.scss index ca46d37..7425ef8 100644 --- a/bootstrap/addons/font-awesome/scss/_core.scss +++ b/bootstrap/addons/font-awesome/scss/_core.scss @@ -3,9 +3,10 @@ .#{$fa-css-prefix} { display: inline-block; - font: normal normal normal 14px/1 FontAwesome; // shortening font declaration + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration font-size: inherit; // can't have font-size inherit on line above, so need to override text-rendering: auto; // optimizelegibility throws things off #1094 -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + } diff --git a/bootstrap/addons/font-awesome/scss/_icons.scss b/bootstrap/addons/font-awesome/scss/_icons.scss index 8dc2939..2944344 100644 --- a/bootstrap/addons/font-awesome/scss/_icons.scss +++ b/bootstrap/addons/font-awesome/scss/_icons.scss @@ -158,10 +158,12 @@ .#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } .#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } .#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } +.#{$fa-css-prefix}-facebook-f:before, .#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } .#{$fa-css-prefix}-github:before { content: $fa-var-github; } .#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } .#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } +.#{$fa-css-prefix}-feed:before, .#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } .#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } .#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } @@ -397,7 +399,8 @@ .#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } .#{$fa-css-prefix}-female:before { content: $fa-var-female; } .#{$fa-css-prefix}-male:before { content: $fa-var-male; } -.#{$fa-css-prefix}-gittip:before { content: $fa-var-gittip; } +.#{$fa-css-prefix}-gittip:before, +.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } .#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } .#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } .#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } @@ -435,7 +438,7 @@ .#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } .#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } .#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } -.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } +.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; } .#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } .#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } .#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } @@ -485,11 +488,14 @@ .#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } .#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } .#{$fa-css-prefix}-ra:before, +.#{$fa-css-prefix}-resistance:before, .#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } .#{$fa-css-prefix}-ge:before, .#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } .#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } .#{$fa-css-prefix}-git:before { content: $fa-var-git; } +.#{$fa-css-prefix}-y-combinator-square:before, +.#{$fa-css-prefix}-yc-square:before, .#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } .#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } .#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } @@ -550,3 +556,178 @@ .#{$fa-css-prefix}-sheqel:before, .#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } .#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } +.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } +.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } +.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } +.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } +.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } +.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } +.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } +.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } +.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } +.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } +.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } +.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } +.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } +.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } +.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } +.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } +.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } +.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } +.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } +.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } +.#{$fa-css-prefix}-intersex:before, +.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } +.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } +.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } +.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } +.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } +.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } +.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } +.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } +.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } +.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } +.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } +.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } +.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } +.#{$fa-css-prefix}-server:before { content: $fa-var-server; } +.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } +.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } +.#{$fa-css-prefix}-hotel:before, +.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } +.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } +.#{$fa-css-prefix}-train:before { content: $fa-var-train; } +.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } +.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } +.#{$fa-css-prefix}-yc:before, +.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } +.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } +.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } +.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } +.#{$fa-css-prefix}-battery-4:before, +.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } +.#{$fa-css-prefix}-battery-3:before, +.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } +.#{$fa-css-prefix}-battery-2:before, +.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } +.#{$fa-css-prefix}-battery-1:before, +.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } +.#{$fa-css-prefix}-battery-0:before, +.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } +.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } +.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } +.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } +.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } +.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } +.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } +.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } +.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } +.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } +.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } +.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } +.#{$fa-css-prefix}-hourglass-1:before, +.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } +.#{$fa-css-prefix}-hourglass-2:before, +.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } +.#{$fa-css-prefix}-hourglass-3:before, +.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } +.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } +.#{$fa-css-prefix}-hand-grab-o:before, +.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } +.#{$fa-css-prefix}-hand-stop-o:before, +.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } +.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } +.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } +.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } +.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } +.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } +.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } +.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } +.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } +.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } +.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } +.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } +.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } +.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } +.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } +.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } +.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } +.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } +.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } +.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } +.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } +.#{$fa-css-prefix}-tv:before, +.#{$fa-css-prefix}-television:before { content: $fa-var-television; } +.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } +.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } +.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } +.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } +.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } +.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } +.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } +.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } +.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } +.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } +.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } +.#{$fa-css-prefix}-map:before { content: $fa-var-map; } +.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } +.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } +.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } +.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } +.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } +.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } +.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } +.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } +.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } +.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } +.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } +.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } +.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } +.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } +.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } +.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } +.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } +.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } +.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } +.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } +.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } +.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } +.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } +.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } +.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } +.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } +.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; } +.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; } +.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; } +.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; } +.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; } +.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; } +.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; } +.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; } +.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; } +.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; } +.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; } +.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; } +.#{$fa-css-prefix}-asl-interpreting:before, +.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; } +.#{$fa-css-prefix}-deafness:before, +.#{$fa-css-prefix}-hard-of-hearing:before, +.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; } +.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; } +.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; } +.#{$fa-css-prefix}-signing:before, +.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; } +.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; } +.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; } +.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; } +.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; } +.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; } +.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; } +.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } +.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; } +.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; } +.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; } +.#{$fa-css-prefix}-google-plus-circle:before, +.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; } +.#{$fa-css-prefix}-fa:before, +.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; } diff --git a/bootstrap/addons/font-awesome/scss/_mixins.scss b/bootstrap/addons/font-awesome/scss/_mixins.scss index a139dfb..c3bbd57 100644 --- a/bootstrap/addons/font-awesome/scss/_mixins.scss +++ b/bootstrap/addons/font-awesome/scss/_mixins.scss @@ -3,23 +3,58 @@ @mixin fa-icon() { display: inline-block; - font: normal normal normal 14px/1 FontAwesome; // shortening font declaration + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration font-size: inherit; // can't have font-size inherit on line above, so need to override text-rendering: auto; // optimizelegibility throws things off #1094 -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + } @mixin fa-icon-rotate($degrees, $rotation) { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; -webkit-transform: rotate($degrees); -ms-transform: rotate($degrees); transform: rotate($degrees); } @mixin fa-icon-flip($horiz, $vert, $rotation) { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; -webkit-transform: scale($horiz, $vert); -ms-transform: scale($horiz, $vert); transform: scale($horiz, $vert); } + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +@mixin sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +@mixin sr-only-focusable { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} diff --git a/bootstrap/addons/font-awesome/scss/_path.scss b/bootstrap/addons/font-awesome/scss/_path.scss index fd21c35..bb457c2 100644 --- a/bootstrap/addons/font-awesome/scss/_path.scss +++ b/bootstrap/addons/font-awesome/scss/_path.scss @@ -5,10 +5,11 @@ font-family: 'FontAwesome'; src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), + url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); - //src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts +// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts font-weight: normal; font-style: normal; } diff --git a/bootstrap/addons/font-awesome/scss/_screen-reader.scss b/bootstrap/addons/font-awesome/scss/_screen-reader.scss new file mode 100644 index 0000000..637426f --- /dev/null +++ b/bootstrap/addons/font-awesome/scss/_screen-reader.scss @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { @include sr-only(); } +.sr-only-focusable { @include sr-only-focusable(); } diff --git a/bootstrap/addons/font-awesome/scss/_variables.scss b/bootstrap/addons/font-awesome/scss/_variables.scss index 669c307..a5a89ef 100644 --- a/bootstrap/addons/font-awesome/scss/_variables.scss +++ b/bootstrap/addons/font-awesome/scss/_variables.scss @@ -2,20 +2,25 @@ // -------------------------- $fa-font-path: "../fonts" !default; -//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts" !default; // for referencing Bootstrap CDN font files directly +$fa-font-size-base: 14px !default; +$fa-line-height-base: 1 !default; +//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.6.3/fonts" !default; // for referencing Bootstrap CDN font files directly $fa-css-prefix: fa !default; -$fa-version: "4.2.0" !default; +$fa-version: "4.6.3" !default; $fa-border-color: #eee !default; $fa-inverse: #fff !default; $fa-li-width: (30em / 14) !default; +$fa-var-500px: "\f26e"; $fa-var-adjust: "\f042"; $fa-var-adn: "\f170"; $fa-var-align-center: "\f037"; $fa-var-align-justify: "\f039"; $fa-var-align-left: "\f036"; $fa-var-align-right: "\f038"; +$fa-var-amazon: "\f270"; $fa-var-ambulance: "\f0f9"; +$fa-var-american-sign-language-interpreting: "\f2a3"; $fa-var-anchor: "\f13d"; $fa-var-android: "\f17b"; $fa-var-angellist: "\f209"; @@ -46,16 +51,31 @@ $fa-var-arrows: "\f047"; $fa-var-arrows-alt: "\f0b2"; $fa-var-arrows-h: "\f07e"; $fa-var-arrows-v: "\f07d"; +$fa-var-asl-interpreting: "\f2a3"; +$fa-var-assistive-listening-systems: "\f2a2"; $fa-var-asterisk: "\f069"; $fa-var-at: "\f1fa"; +$fa-var-audio-description: "\f29e"; $fa-var-automobile: "\f1b9"; $fa-var-backward: "\f04a"; +$fa-var-balance-scale: "\f24e"; $fa-var-ban: "\f05e"; $fa-var-bank: "\f19c"; $fa-var-bar-chart: "\f080"; $fa-var-bar-chart-o: "\f080"; $fa-var-barcode: "\f02a"; $fa-var-bars: "\f0c9"; +$fa-var-battery-0: "\f244"; +$fa-var-battery-1: "\f243"; +$fa-var-battery-2: "\f242"; +$fa-var-battery-3: "\f241"; +$fa-var-battery-4: "\f240"; +$fa-var-battery-empty: "\f244"; +$fa-var-battery-full: "\f240"; +$fa-var-battery-half: "\f242"; +$fa-var-battery-quarter: "\f243"; +$fa-var-battery-three-quarters: "\f241"; +$fa-var-bed: "\f236"; $fa-var-beer: "\f0fc"; $fa-var-behance: "\f1b4"; $fa-var-behance-square: "\f1b5"; @@ -69,12 +89,17 @@ $fa-var-birthday-cake: "\f1fd"; $fa-var-bitbucket: "\f171"; $fa-var-bitbucket-square: "\f172"; $fa-var-bitcoin: "\f15a"; +$fa-var-black-tie: "\f27e"; +$fa-var-blind: "\f29d"; +$fa-var-bluetooth: "\f293"; +$fa-var-bluetooth-b: "\f294"; $fa-var-bold: "\f032"; $fa-var-bolt: "\f0e7"; $fa-var-bomb: "\f1e2"; $fa-var-book: "\f02d"; $fa-var-bookmark: "\f02e"; $fa-var-bookmark-o: "\f097"; +$fa-var-braille: "\f2a1"; $fa-var-briefcase: "\f0b1"; $fa-var-btc: "\f15a"; $fa-var-bug: "\f188"; @@ -83,10 +108,15 @@ $fa-var-building-o: "\f0f7"; $fa-var-bullhorn: "\f0a1"; $fa-var-bullseye: "\f140"; $fa-var-bus: "\f207"; +$fa-var-buysellads: "\f20d"; $fa-var-cab: "\f1ba"; $fa-var-calculator: "\f1ec"; $fa-var-calendar: "\f073"; +$fa-var-calendar-check-o: "\f274"; +$fa-var-calendar-minus-o: "\f272"; $fa-var-calendar-o: "\f133"; +$fa-var-calendar-plus-o: "\f271"; +$fa-var-calendar-times-o: "\f273"; $fa-var-camera: "\f030"; $fa-var-camera-retro: "\f083"; $fa-var-car: "\f1b9"; @@ -98,9 +128,13 @@ $fa-var-caret-square-o-left: "\f191"; $fa-var-caret-square-o-right: "\f152"; $fa-var-caret-square-o-up: "\f151"; $fa-var-caret-up: "\f0d8"; +$fa-var-cart-arrow-down: "\f218"; +$fa-var-cart-plus: "\f217"; $fa-var-cc: "\f20a"; $fa-var-cc-amex: "\f1f3"; +$fa-var-cc-diners-club: "\f24c"; $fa-var-cc-discover: "\f1f2"; +$fa-var-cc-jcb: "\f24b"; $fa-var-cc-mastercard: "\f1f1"; $fa-var-cc-paypal: "\f1f4"; $fa-var-cc-stripe: "\f1f5"; @@ -122,12 +156,14 @@ $fa-var-chevron-left: "\f053"; $fa-var-chevron-right: "\f054"; $fa-var-chevron-up: "\f077"; $fa-var-child: "\f1ae"; +$fa-var-chrome: "\f268"; $fa-var-circle: "\f111"; $fa-var-circle-o: "\f10c"; $fa-var-circle-o-notch: "\f1ce"; $fa-var-circle-thin: "\f1db"; $fa-var-clipboard: "\f0ea"; $fa-var-clock-o: "\f017"; +$fa-var-clone: "\f24d"; $fa-var-close: "\f00d"; $fa-var-cloud: "\f0c2"; $fa-var-cloud-download: "\f0ed"; @@ -136,19 +172,26 @@ $fa-var-cny: "\f157"; $fa-var-code: "\f121"; $fa-var-code-fork: "\f126"; $fa-var-codepen: "\f1cb"; +$fa-var-codiepie: "\f284"; $fa-var-coffee: "\f0f4"; $fa-var-cog: "\f013"; $fa-var-cogs: "\f085"; $fa-var-columns: "\f0db"; $fa-var-comment: "\f075"; $fa-var-comment-o: "\f0e5"; +$fa-var-commenting: "\f27a"; +$fa-var-commenting-o: "\f27b"; $fa-var-comments: "\f086"; $fa-var-comments-o: "\f0e6"; $fa-var-compass: "\f14e"; $fa-var-compress: "\f066"; +$fa-var-connectdevelop: "\f20e"; +$fa-var-contao: "\f26d"; $fa-var-copy: "\f0c5"; $fa-var-copyright: "\f1f9"; +$fa-var-creative-commons: "\f25e"; $fa-var-credit-card: "\f09d"; +$fa-var-credit-card-alt: "\f283"; $fa-var-crop: "\f125"; $fa-var-crosshairs: "\f05b"; $fa-var-css3: "\f13c"; @@ -157,11 +200,15 @@ $fa-var-cubes: "\f1b3"; $fa-var-cut: "\f0c4"; $fa-var-cutlery: "\f0f5"; $fa-var-dashboard: "\f0e4"; +$fa-var-dashcube: "\f210"; $fa-var-database: "\f1c0"; +$fa-var-deaf: "\f2a4"; +$fa-var-deafness: "\f2a4"; $fa-var-dedent: "\f03b"; $fa-var-delicious: "\f1a5"; $fa-var-desktop: "\f108"; $fa-var-deviantart: "\f1bd"; +$fa-var-diamond: "\f219"; $fa-var-digg: "\f1a6"; $fa-var-dollar: "\f155"; $fa-var-dot-circle-o: "\f192"; @@ -169,6 +216,7 @@ $fa-var-download: "\f019"; $fa-var-dribbble: "\f17d"; $fa-var-dropbox: "\f16b"; $fa-var-drupal: "\f1a9"; +$fa-var-edge: "\f282"; $fa-var-edit: "\f044"; $fa-var-eject: "\f052"; $fa-var-ellipsis-h: "\f141"; @@ -177,6 +225,7 @@ $fa-var-empire: "\f1d1"; $fa-var-envelope: "\f0e0"; $fa-var-envelope-o: "\f003"; $fa-var-envelope-square: "\f199"; +$fa-var-envira: "\f299"; $fa-var-eraser: "\f12d"; $fa-var-eur: "\f153"; $fa-var-euro: "\f153"; @@ -185,16 +234,21 @@ $fa-var-exclamation: "\f12a"; $fa-var-exclamation-circle: "\f06a"; $fa-var-exclamation-triangle: "\f071"; $fa-var-expand: "\f065"; +$fa-var-expeditedssl: "\f23e"; $fa-var-external-link: "\f08e"; $fa-var-external-link-square: "\f14c"; $fa-var-eye: "\f06e"; $fa-var-eye-slash: "\f070"; $fa-var-eyedropper: "\f1fb"; +$fa-var-fa: "\f2b4"; $fa-var-facebook: "\f09a"; +$fa-var-facebook-f: "\f09a"; +$fa-var-facebook-official: "\f230"; $fa-var-facebook-square: "\f082"; $fa-var-fast-backward: "\f049"; $fa-var-fast-forward: "\f050"; $fa-var-fax: "\f1ac"; +$fa-var-feed: "\f09e"; $fa-var-female: "\f182"; $fa-var-fighter-jet: "\f0fb"; $fa-var-file: "\f15b"; @@ -220,6 +274,8 @@ $fa-var-film: "\f008"; $fa-var-filter: "\f0b0"; $fa-var-fire: "\f06d"; $fa-var-fire-extinguisher: "\f134"; +$fa-var-firefox: "\f269"; +$fa-var-first-order: "\f2b0"; $fa-var-flag: "\f024"; $fa-var-flag-checkered: "\f11e"; $fa-var-flag-o: "\f11d"; @@ -232,6 +288,10 @@ $fa-var-folder-o: "\f114"; $fa-var-folder-open: "\f07c"; $fa-var-folder-open-o: "\f115"; $fa-var-font: "\f031"; +$fa-var-font-awesome: "\f2b4"; +$fa-var-fonticons: "\f280"; +$fa-var-fort-awesome: "\f286"; +$fa-var-forumbee: "\f211"; $fa-var-forward: "\f04e"; $fa-var-foursquare: "\f180"; $fa-var-frown-o: "\f119"; @@ -242,45 +302,81 @@ $fa-var-gbp: "\f154"; $fa-var-ge: "\f1d1"; $fa-var-gear: "\f013"; $fa-var-gears: "\f085"; +$fa-var-genderless: "\f22d"; +$fa-var-get-pocket: "\f265"; +$fa-var-gg: "\f260"; +$fa-var-gg-circle: "\f261"; $fa-var-gift: "\f06b"; $fa-var-git: "\f1d3"; $fa-var-git-square: "\f1d2"; $fa-var-github: "\f09b"; $fa-var-github-alt: "\f113"; $fa-var-github-square: "\f092"; +$fa-var-gitlab: "\f296"; $fa-var-gittip: "\f184"; $fa-var-glass: "\f000"; +$fa-var-glide: "\f2a5"; +$fa-var-glide-g: "\f2a6"; $fa-var-globe: "\f0ac"; $fa-var-google: "\f1a0"; $fa-var-google-plus: "\f0d5"; +$fa-var-google-plus-circle: "\f2b3"; +$fa-var-google-plus-official: "\f2b3"; $fa-var-google-plus-square: "\f0d4"; $fa-var-google-wallet: "\f1ee"; $fa-var-graduation-cap: "\f19d"; +$fa-var-gratipay: "\f184"; $fa-var-group: "\f0c0"; $fa-var-h-square: "\f0fd"; $fa-var-hacker-news: "\f1d4"; +$fa-var-hand-grab-o: "\f255"; +$fa-var-hand-lizard-o: "\f258"; $fa-var-hand-o-down: "\f0a7"; $fa-var-hand-o-left: "\f0a5"; $fa-var-hand-o-right: "\f0a4"; $fa-var-hand-o-up: "\f0a6"; +$fa-var-hand-paper-o: "\f256"; +$fa-var-hand-peace-o: "\f25b"; +$fa-var-hand-pointer-o: "\f25a"; +$fa-var-hand-rock-o: "\f255"; +$fa-var-hand-scissors-o: "\f257"; +$fa-var-hand-spock-o: "\f259"; +$fa-var-hand-stop-o: "\f256"; +$fa-var-hard-of-hearing: "\f2a4"; +$fa-var-hashtag: "\f292"; $fa-var-hdd-o: "\f0a0"; $fa-var-header: "\f1dc"; $fa-var-headphones: "\f025"; $fa-var-heart: "\f004"; $fa-var-heart-o: "\f08a"; +$fa-var-heartbeat: "\f21e"; $fa-var-history: "\f1da"; $fa-var-home: "\f015"; $fa-var-hospital-o: "\f0f8"; +$fa-var-hotel: "\f236"; +$fa-var-hourglass: "\f254"; +$fa-var-hourglass-1: "\f251"; +$fa-var-hourglass-2: "\f252"; +$fa-var-hourglass-3: "\f253"; +$fa-var-hourglass-end: "\f253"; +$fa-var-hourglass-half: "\f252"; +$fa-var-hourglass-o: "\f250"; +$fa-var-hourglass-start: "\f251"; +$fa-var-houzz: "\f27c"; $fa-var-html5: "\f13b"; +$fa-var-i-cursor: "\f246"; $fa-var-ils: "\f20b"; $fa-var-image: "\f03e"; $fa-var-inbox: "\f01c"; $fa-var-indent: "\f03c"; +$fa-var-industry: "\f275"; $fa-var-info: "\f129"; $fa-var-info-circle: "\f05a"; $fa-var-inr: "\f156"; $fa-var-instagram: "\f16d"; $fa-var-institution: "\f19c"; +$fa-var-internet-explorer: "\f26b"; +$fa-var-intersex: "\f224"; $fa-var-ioxhost: "\f208"; $fa-var-italic: "\f033"; $fa-var-joomla: "\f1aa"; @@ -294,6 +390,7 @@ $fa-var-laptop: "\f109"; $fa-var-lastfm: "\f202"; $fa-var-lastfm-square: "\f203"; $fa-var-leaf: "\f06c"; +$fa-var-leanpub: "\f212"; $fa-var-legal: "\f0e3"; $fa-var-lemon-o: "\f094"; $fa-var-level-down: "\f149"; @@ -318,32 +415,56 @@ $fa-var-long-arrow-down: "\f175"; $fa-var-long-arrow-left: "\f177"; $fa-var-long-arrow-right: "\f178"; $fa-var-long-arrow-up: "\f176"; +$fa-var-low-vision: "\f2a8"; $fa-var-magic: "\f0d0"; $fa-var-magnet: "\f076"; $fa-var-mail-forward: "\f064"; $fa-var-mail-reply: "\f112"; $fa-var-mail-reply-all: "\f122"; $fa-var-male: "\f183"; +$fa-var-map: "\f279"; $fa-var-map-marker: "\f041"; +$fa-var-map-o: "\f278"; +$fa-var-map-pin: "\f276"; +$fa-var-map-signs: "\f277"; +$fa-var-mars: "\f222"; +$fa-var-mars-double: "\f227"; +$fa-var-mars-stroke: "\f229"; +$fa-var-mars-stroke-h: "\f22b"; +$fa-var-mars-stroke-v: "\f22a"; $fa-var-maxcdn: "\f136"; $fa-var-meanpath: "\f20c"; +$fa-var-medium: "\f23a"; $fa-var-medkit: "\f0fa"; $fa-var-meh-o: "\f11a"; +$fa-var-mercury: "\f223"; $fa-var-microphone: "\f130"; $fa-var-microphone-slash: "\f131"; $fa-var-minus: "\f068"; $fa-var-minus-circle: "\f056"; $fa-var-minus-square: "\f146"; $fa-var-minus-square-o: "\f147"; +$fa-var-mixcloud: "\f289"; $fa-var-mobile: "\f10b"; $fa-var-mobile-phone: "\f10b"; +$fa-var-modx: "\f285"; $fa-var-money: "\f0d6"; $fa-var-moon-o: "\f186"; $fa-var-mortar-board: "\f19d"; +$fa-var-motorcycle: "\f21c"; +$fa-var-mouse-pointer: "\f245"; $fa-var-music: "\f001"; $fa-var-navicon: "\f0c9"; +$fa-var-neuter: "\f22c"; $fa-var-newspaper-o: "\f1ea"; +$fa-var-object-group: "\f247"; +$fa-var-object-ungroup: "\f248"; +$fa-var-odnoklassniki: "\f263"; +$fa-var-odnoklassniki-square: "\f264"; +$fa-var-opencart: "\f23d"; $fa-var-openid: "\f19b"; +$fa-var-opera: "\f26a"; +$fa-var-optin-monster: "\f23c"; $fa-var-outdent: "\f03b"; $fa-var-pagelines: "\f18c"; $fa-var-paint-brush: "\f1fc"; @@ -353,19 +474,24 @@ $fa-var-paperclip: "\f0c6"; $fa-var-paragraph: "\f1dd"; $fa-var-paste: "\f0ea"; $fa-var-pause: "\f04c"; +$fa-var-pause-circle: "\f28b"; +$fa-var-pause-circle-o: "\f28c"; $fa-var-paw: "\f1b0"; $fa-var-paypal: "\f1ed"; $fa-var-pencil: "\f040"; $fa-var-pencil-square: "\f14b"; $fa-var-pencil-square-o: "\f044"; +$fa-var-percent: "\f295"; $fa-var-phone: "\f095"; $fa-var-phone-square: "\f098"; $fa-var-photo: "\f03e"; $fa-var-picture-o: "\f03e"; $fa-var-pie-chart: "\f200"; -$fa-var-pied-piper: "\f1a7"; +$fa-var-pied-piper: "\f2ae"; $fa-var-pied-piper-alt: "\f1a8"; +$fa-var-pied-piper-pp: "\f1a7"; $fa-var-pinterest: "\f0d2"; +$fa-var-pinterest-p: "\f231"; $fa-var-pinterest-square: "\f0d3"; $fa-var-plane: "\f072"; $fa-var-play: "\f04b"; @@ -378,11 +504,13 @@ $fa-var-plus-square: "\f0fe"; $fa-var-plus-square-o: "\f196"; $fa-var-power-off: "\f011"; $fa-var-print: "\f02f"; +$fa-var-product-hunt: "\f288"; $fa-var-puzzle-piece: "\f12e"; $fa-var-qq: "\f1d6"; $fa-var-qrcode: "\f029"; $fa-var-question: "\f128"; $fa-var-question-circle: "\f059"; +$fa-var-question-circle-o: "\f29c"; $fa-var-quote-left: "\f10d"; $fa-var-quote-right: "\f10e"; $fa-var-ra: "\f1d0"; @@ -390,14 +518,17 @@ $fa-var-random: "\f074"; $fa-var-rebel: "\f1d0"; $fa-var-recycle: "\f1b8"; $fa-var-reddit: "\f1a1"; +$fa-var-reddit-alien: "\f281"; $fa-var-reddit-square: "\f1a2"; $fa-var-refresh: "\f021"; +$fa-var-registered: "\f25d"; $fa-var-remove: "\f00d"; $fa-var-renren: "\f18b"; $fa-var-reorder: "\f0c9"; $fa-var-repeat: "\f01e"; $fa-var-reply: "\f112"; $fa-var-reply-all: "\f122"; +$fa-var-resistance: "\f1d0"; $fa-var-retweet: "\f079"; $fa-var-rmb: "\f157"; $fa-var-road: "\f018"; @@ -410,13 +541,17 @@ $fa-var-rss-square: "\f143"; $fa-var-rub: "\f158"; $fa-var-ruble: "\f158"; $fa-var-rupee: "\f156"; +$fa-var-safari: "\f267"; $fa-var-save: "\f0c7"; $fa-var-scissors: "\f0c4"; +$fa-var-scribd: "\f28a"; $fa-var-search: "\f002"; $fa-var-search-minus: "\f010"; $fa-var-search-plus: "\f00e"; +$fa-var-sellsy: "\f213"; $fa-var-send: "\f1d8"; $fa-var-send-o: "\f1d9"; +$fa-var-server: "\f233"; $fa-var-share: "\f064"; $fa-var-share-alt: "\f1e0"; $fa-var-share-alt-square: "\f1e1"; @@ -425,16 +560,27 @@ $fa-var-share-square-o: "\f045"; $fa-var-shekel: "\f20b"; $fa-var-sheqel: "\f20b"; $fa-var-shield: "\f132"; +$fa-var-ship: "\f21a"; +$fa-var-shirtsinbulk: "\f214"; +$fa-var-shopping-bag: "\f290"; +$fa-var-shopping-basket: "\f291"; $fa-var-shopping-cart: "\f07a"; $fa-var-sign-in: "\f090"; +$fa-var-sign-language: "\f2a7"; $fa-var-sign-out: "\f08b"; $fa-var-signal: "\f012"; +$fa-var-signing: "\f2a7"; +$fa-var-simplybuilt: "\f215"; $fa-var-sitemap: "\f0e8"; +$fa-var-skyatlas: "\f216"; $fa-var-skype: "\f17e"; $fa-var-slack: "\f198"; $fa-var-sliders: "\f1de"; $fa-var-slideshare: "\f1e7"; $fa-var-smile-o: "\f118"; +$fa-var-snapchat: "\f2ab"; +$fa-var-snapchat-ghost: "\f2ac"; +$fa-var-snapchat-square: "\f2ad"; $fa-var-soccer-ball-o: "\f1e3"; $fa-var-sort: "\f0dc"; $fa-var-sort-alpha-asc: "\f15d"; @@ -467,11 +613,17 @@ $fa-var-steam-square: "\f1b7"; $fa-var-step-backward: "\f048"; $fa-var-step-forward: "\f051"; $fa-var-stethoscope: "\f0f1"; +$fa-var-sticky-note: "\f249"; +$fa-var-sticky-note-o: "\f24a"; $fa-var-stop: "\f04d"; +$fa-var-stop-circle: "\f28d"; +$fa-var-stop-circle-o: "\f28e"; +$fa-var-street-view: "\f21d"; $fa-var-strikethrough: "\f0cc"; $fa-var-stumbleupon: "\f1a4"; $fa-var-stumbleupon-circle: "\f1a3"; $fa-var-subscript: "\f12c"; +$fa-var-subway: "\f239"; $fa-var-suitcase: "\f0f2"; $fa-var-sun-o: "\f185"; $fa-var-superscript: "\f12b"; @@ -483,6 +635,7 @@ $fa-var-tag: "\f02b"; $fa-var-tags: "\f02c"; $fa-var-tasks: "\f0ae"; $fa-var-taxi: "\f1ba"; +$fa-var-television: "\f26c"; $fa-var-tencent-weibo: "\f1d5"; $fa-var-terminal: "\f120"; $fa-var-text-height: "\f034"; @@ -490,6 +643,7 @@ $fa-var-text-width: "\f035"; $fa-var-th: "\f00a"; $fa-var-th-large: "\f009"; $fa-var-th-list: "\f00b"; +$fa-var-themeisle: "\f2b2"; $fa-var-thumb-tack: "\f08d"; $fa-var-thumbs-down: "\f165"; $fa-var-thumbs-o-down: "\f088"; @@ -506,10 +660,15 @@ $fa-var-toggle-off: "\f204"; $fa-var-toggle-on: "\f205"; $fa-var-toggle-right: "\f152"; $fa-var-toggle-up: "\f151"; +$fa-var-trademark: "\f25c"; +$fa-var-train: "\f238"; +$fa-var-transgender: "\f224"; +$fa-var-transgender-alt: "\f225"; $fa-var-trash: "\f1f8"; $fa-var-trash-o: "\f014"; $fa-var-tree: "\f1bb"; $fa-var-trello: "\f181"; +$fa-var-tripadvisor: "\f262"; $fa-var-trophy: "\f091"; $fa-var-truck: "\f0d1"; $fa-var-try: "\f195"; @@ -517,26 +676,40 @@ $fa-var-tty: "\f1e4"; $fa-var-tumblr: "\f173"; $fa-var-tumblr-square: "\f174"; $fa-var-turkish-lira: "\f195"; +$fa-var-tv: "\f26c"; $fa-var-twitch: "\f1e8"; $fa-var-twitter: "\f099"; $fa-var-twitter-square: "\f081"; $fa-var-umbrella: "\f0e9"; $fa-var-underline: "\f0cd"; $fa-var-undo: "\f0e2"; +$fa-var-universal-access: "\f29a"; $fa-var-university: "\f19c"; $fa-var-unlink: "\f127"; $fa-var-unlock: "\f09c"; $fa-var-unlock-alt: "\f13e"; $fa-var-unsorted: "\f0dc"; $fa-var-upload: "\f093"; +$fa-var-usb: "\f287"; $fa-var-usd: "\f155"; $fa-var-user: "\f007"; $fa-var-user-md: "\f0f0"; +$fa-var-user-plus: "\f234"; +$fa-var-user-secret: "\f21b"; +$fa-var-user-times: "\f235"; $fa-var-users: "\f0c0"; +$fa-var-venus: "\f221"; +$fa-var-venus-double: "\f226"; +$fa-var-venus-mars: "\f228"; +$fa-var-viacoin: "\f237"; +$fa-var-viadeo: "\f2a9"; +$fa-var-viadeo-square: "\f2aa"; $fa-var-video-camera: "\f03d"; +$fa-var-vimeo: "\f27d"; $fa-var-vimeo-square: "\f194"; $fa-var-vine: "\f1ca"; $fa-var-vk: "\f189"; +$fa-var-volume-control-phone: "\f2a0"; $fa-var-volume-down: "\f027"; $fa-var-volume-off: "\f026"; $fa-var-volume-up: "\f028"; @@ -544,17 +717,27 @@ $fa-var-warning: "\f071"; $fa-var-wechat: "\f1d7"; $fa-var-weibo: "\f18a"; $fa-var-weixin: "\f1d7"; +$fa-var-whatsapp: "\f232"; $fa-var-wheelchair: "\f193"; +$fa-var-wheelchair-alt: "\f29b"; $fa-var-wifi: "\f1eb"; +$fa-var-wikipedia-w: "\f266"; $fa-var-windows: "\f17a"; $fa-var-won: "\f159"; $fa-var-wordpress: "\f19a"; +$fa-var-wpbeginner: "\f297"; +$fa-var-wpforms: "\f298"; $fa-var-wrench: "\f0ad"; $fa-var-xing: "\f168"; $fa-var-xing-square: "\f169"; +$fa-var-y-combinator: "\f23b"; +$fa-var-y-combinator-square: "\f1d4"; $fa-var-yahoo: "\f19e"; +$fa-var-yc: "\f23b"; +$fa-var-yc-square: "\f1d4"; $fa-var-yelp: "\f1e9"; $fa-var-yen: "\f157"; +$fa-var-yoast: "\f2b1"; $fa-var-youtube: "\f167"; $fa-var-youtube-play: "\f16a"; $fa-var-youtube-square: "\f166"; diff --git a/bootstrap/addons/font-awesome/scss/font-awesome.scss b/bootstrap/addons/font-awesome/scss/font-awesome.scss index f300c09..2308b14 100644 --- a/bootstrap/addons/font-awesome/scss/font-awesome.scss +++ b/bootstrap/addons/font-awesome/scss/font-awesome.scss @@ -1,5 +1,5 @@ /*! - * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ @@ -11,7 +11,8 @@ @import "fixed-width"; @import "list"; @import "bordered-pulled"; -@import "spinning"; +@import "animated"; @import "rotated-flipped"; @import "stacked"; @import "icons"; +@import "screen-reader"; diff --git a/bootstrap/addons/select/bootstrap-select.min.css b/bootstrap/addons/select/bootstrap-select.min.css new file mode 100644 index 0000000..d2ce55a --- /dev/null +++ b/bootstrap/addons/select/bootstrap-select.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select) + * + * Copyright 2013-2016 bootstrap-select + * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) + */select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px\9}.bootstrap-select>.dropdown-toggle{width:100%;padding-right:25px;z-index:1}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2}.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle{border-color:#b94a48}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none}.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{z-index:auto}.bootstrap-select.btn-group:not(.input-group-btn),.bootstrap-select.btn-group[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.btn-group.dropdown-menu-right,.bootstrap-select.btn-group[class*=col-].dropdown-menu-right,.row .bootstrap-select.btn-group[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select.btn-group,.form-horizontal .bootstrap-select.btn-group,.form-inline .bootstrap-select.btn-group{margin-bottom:0}.form-group-lg .bootstrap-select.btn-group.form-control,.form-group-sm .bootstrap-select.btn-group.form-control{padding:0}.form-inline .bootstrap-select.btn-group .form-control{width:100%}.bootstrap-select.btn-group.disabled,.bootstrap-select.btn-group>.disabled{cursor:not-allowed}.bootstrap-select.btn-group.disabled:focus,.bootstrap-select.btn-group>.disabled:focus{outline:0!important}.bootstrap-select.btn-group.bs-container{position:absolute}.bootstrap-select.btn-group.bs-container .dropdown-menu{z-index:1060}.bootstrap-select.btn-group .dropdown-toggle .filter-option{display:inline-block;overflow:hidden;width:100%;text-align:left}.bootstrap-select.btn-group .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.bootstrap-select.btn-group[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select.btn-group .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select.btn-group .dropdown-menu li{position:relative}.bootstrap-select.btn-group .dropdown-menu li.active small{color:#fff}.bootstrap-select.btn-group .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select.btn-group .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select.btn-group .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select.btn-group .dropdown-menu li a span.check-mark{display:none}.bootstrap-select.btn-group .dropdown-menu li a span.text{display:inline-block}.bootstrap-select.btn-group .dropdown-menu li small{padding-left:.5em}.bootstrap-select.btn-group .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option{position:static}.bootstrap-select.btn-group.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark{position:absolute;display:inline-block;right:15px;margin-top:5px}.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before{bottom:auto;top:-3px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after{bottom:auto;top:-3px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none} \ No newline at end of file diff --git a/bootstrap/addons/select/bootstrap-select.min.js b/bootstrap/addons/select/bootstrap-select.min.js new file mode 100644 index 0000000..12625e5 --- /dev/null +++ b/bootstrap/addons/select/bootstrap-select.min.js @@ -0,0 +1,8 @@ +/*! + * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select) + * + * Copyright 2013-2016 bootstrap-select + * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) + */ +!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){"use strict";function b(b){var c=[{re:/[\xC0-\xC6]/g,ch:"A"},{re:/[\xE0-\xE6]/g,ch:"a"},{re:/[\xC8-\xCB]/g,ch:"E"},{re:/[\xE8-\xEB]/g,ch:"e"},{re:/[\xCC-\xCF]/g,ch:"I"},{re:/[\xEC-\xEF]/g,ch:"i"},{re:/[\xD2-\xD6]/g,ch:"O"},{re:/[\xF2-\xF6]/g,ch:"o"},{re:/[\xD9-\xDC]/g,ch:"U"},{re:/[\xF9-\xFC]/g,ch:"u"},{re:/[\xC7-\xE7]/g,ch:"c"},{re:/[\xD1]/g,ch:"N"},{re:/[\xF1]/g,ch:"n"}];return a.each(c,function(){b=b.replace(this.re,this.ch)}),b}function c(a){var b={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},c="(?:"+Object.keys(b).join("|")+")",d=new RegExp(c),e=new RegExp(c,"g"),f=null==a?"":""+a;return d.test(f)?f.replace(e,function(a){return b[a]}):f}function d(b,c){var d=arguments,f=b,g=c;[].shift.apply(d);var h,i=this.each(function(){var b=a(this);if(b.is("select")){var c=b.data("selectpicker"),i="object"==typeof f&&f;if(c){if(i)for(var j in i)i.hasOwnProperty(j)&&(c.options[j]=i[j])}else{var k=a.extend({},e.DEFAULTS,a.fn.selectpicker.defaults||{},b.data(),i);k.template=a.extend({},e.DEFAULTS.template,a.fn.selectpicker.defaults?a.fn.selectpicker.defaults.template:{},b.data().template,i.template),b.data("selectpicker",c=new e(this,k,g))}"string"==typeof f&&(h=c[f]instanceof Function?c[f].apply(c,d):c.options[f])}});return"undefined"!=typeof h?h:i}String.prototype.includes||!function(){var a={}.toString,b=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(d){}return c}(),c="".indexOf,d=function(b){if(null==this)throw new TypeError;var d=String(this);if(b&&"[object RegExp]"==a.call(b))throw new TypeError;var e=d.length,f=String(b),g=f.length,h=arguments.length>1?arguments[1]:void 0,i=h?Number(h):0;i!=i&&(i=0);var j=Math.min(Math.max(i,0),e);return g+j>e?!1:-1!=c.call(d,f,i)};b?b(String.prototype,"includes",{value:d,configurable:!0,writable:!0}):String.prototype.includes=d}(),String.prototype.startsWith||!function(){var a=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(d){}return c}(),b={}.toString,c=function(a){if(null==this)throw new TypeError;var c=String(this);if(a&&"[object RegExp]"==b.call(a))throw new TypeError;var d=c.length,e=String(a),f=e.length,g=arguments.length>1?arguments[1]:void 0,h=g?Number(g):0;h!=h&&(h=0);var i=Math.min(Math.max(h,0),d);if(f+i>d)return!1;for(var j=-1;++j'},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1},e.prototype={constructor:e,init:function(){var b=this,c=this.$element.attr("id");this.$element.addClass("bs-select-hidden"),this.liObj={},this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.$newElement=this.createView(),this.$element.after(this.$newElement).appendTo(this.$newElement),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(".dropdown-menu"),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),this.$element.removeClass("bs-select-hidden"),this.options.dropdownAlignRight&&this.$menu.addClass("dropdown-menu-right"),"undefined"!=typeof c&&(this.$button.attr("data-id",c),a('label[for="'+c+'"]').click(function(a){a.preventDefault(),b.$button.focus()})),this.checkDisabled(),this.clickListener(),this.options.liveSearch&&this.liveSearchListener(),this.render(),this.setStyle(),this.setWidth(),this.options.container&&this.selectPosition(),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(a){b.$element.trigger("hide.bs.select",a)},"hidden.bs.dropdown":function(a){b.$element.trigger("hidden.bs.select",a)},"show.bs.dropdown":function(a){b.$element.trigger("show.bs.select",a)},"shown.bs.dropdown":function(a){b.$element.trigger("shown.bs.select",a)}}),b.$element[0].hasAttribute("required")&&this.$element.on("invalid",function(){b.$button.addClass("bs-invalid").focus(),b.$element.on({"focus.bs.select":function(){b.$button.focus(),b.$element.off("focus.bs.select")},"shown.bs.select":function(){b.$element.val(b.$element.val()).off("shown.bs.select")},"rendered.bs.select":function(){this.validity.valid&&b.$button.removeClass("bs-invalid"),b.$element.off("rendered.bs.select")}})}),setTimeout(function(){b.$element.trigger("loaded.bs.select")})},createDropdown:function(){var b=this.multiple||this.options.showTick?" show-tick":"",d=this.$element.parent().hasClass("input-group")?" input-group-btn":"",e=this.autofocus?" autofocus":"",f=this.options.header?'
'+this.options.header+"
":"",g=this.options.liveSearch?'":"",h=this.multiple&&this.options.actionsBox?'
":"",i=this.multiple&&this.options.doneButton?'
":"",j='
";return a(j)},createView:function(){var a=this.createDropdown(),b=this.createLi();return a.find("ul")[0].innerHTML=b,a},reloadLi:function(){this.destroyLi();var a=this.createLi();this.$menuInner[0].innerHTML=a},destroyLi:function(){this.$menu.find("li").remove()},createLi:function(){var d=this,e=[],f=0,g=document.createElement("option"),h=-1,i=function(a,b,c,d){return""+a+""},j=function(a,e,f,g){return'"+a+''};if(this.options.title&&!this.multiple&&(h--,!this.$element.find(".bs-title-option").length)){var k=this.$element[0];g.className="bs-title-option",g.appendChild(document.createTextNode(this.options.title)),g.value="",k.insertBefore(g,k.firstChild),void 0===a(k.options[k.selectedIndex]).attr("selected")&&(g.selected=!0)}return this.$element.find("option").each(function(b){var c=a(this);if(h++,!c.hasClass("bs-title-option")){var g=this.className||"",k=this.style.cssText,l=c.data("content")?c.data("content"):c.html(),m=c.data("tokens")?c.data("tokens"):null,n="undefined"!=typeof c.data("subtext")?''+c.data("subtext")+"":"",o="undefined"!=typeof c.data("icon")?' ':"",p="OPTGROUP"===this.parentNode.tagName,q=this.disabled||p&&this.parentNode.disabled;if(""!==o&&q&&(o=""+o+""),d.options.hideDisabled&&q&&!p)return void h--;if(c.data("content")||(l=o+''+l+n+""),p&&c.data("divider")!==!0){var r=" "+this.parentNode.className||"";if(0===c.index()){f+=1;var s=this.parentNode.label,t="undefined"!=typeof c.parent().data("subtext")?''+c.parent().data("subtext")+"":"",u=c.parent().data("icon")?' ':"";s=u+''+s+t+"",0!==b&&e.length>0&&(h++,e.push(i("",null,"divider",f+"div"))),h++,e.push(i(s,null,"dropdown-header"+r,f))}if(d.options.hideDisabled&&q)return void h--;e.push(i(j(l,"opt "+g+r,k,m),b,"",f))}else c.data("divider")===!0?e.push(i("",b,"divider")):c.data("hidden")===!0?e.push(i(j(l,g,k,m),b,"hidden is-hidden")):(this.previousElementSibling&&"OPTGROUP"===this.previousElementSibling.tagName&&(h++,e.push(i("",null,"divider",f+"div"))),e.push(i(j(l,g,k,m),b)));d.liObj[b]=h}}),this.multiple||0!==this.$element.find("option:selected").length||this.options.title||this.$element.find("option").eq(0).prop("selected",!0).attr("selected","selected"),e.join("")},findLis:function(){return null==this.$lis&&(this.$lis=this.$menu.find("li")),this.$lis},render:function(b){var c,d=this;b!==!1&&this.$element.find("option").each(function(a){var b=d.findLis().eq(d.liObj[a]);d.setDisabled(a,this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled,b),d.setSelected(a,this.selected,b)}),this.tabIndex();var e=this.$element.find("option").map(function(){if(this.selected){if(d.options.hideDisabled&&(this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled))return;var b,c=a(this),e=c.data("icon")&&d.options.showIcon?' ':"";return b=d.options.showSubtext&&c.data("subtext")&&!d.multiple?' '+c.data("subtext")+"":"","undefined"!=typeof c.attr("title")?c.attr("title"):c.data("content")&&d.options.showContent?c.data("content"):e+c.html()+b}}).toArray(),f=this.multiple?e.join(this.options.multipleSeparator):e[0];if(this.multiple&&this.options.selectedTextFormat.indexOf("count")>-1){var g=this.options.selectedTextFormat.split(">");if(g.length>1&&e.length>g[1]||1==g.length&&e.length>=2){c=this.options.hideDisabled?", [disabled]":"";var h=this.$element.find("option").not('[data-divider="true"], [data-hidden="true"]'+c).length,i="function"==typeof this.options.countSelectedText?this.options.countSelectedText(e.length,h):this.options.countSelectedText;f=i.replace("{0}",e.length.toString()).replace("{1}",h.toString())}}void 0==this.options.title&&(this.options.title=this.$element.attr("title")),"static"==this.options.selectedTextFormat&&(f=this.options.title),f||(f="undefined"!=typeof this.options.title?this.options.title:this.options.noneSelectedText),this.$button.attr("title",a.trim(f.replace(/<[^>]*>?/g,""))),this.$button.children(".filter-option").html(f),this.$element.trigger("rendered.bs.select")},setStyle:function(a,b){this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,""));var c=a?a:this.options.style;"add"==b?this.$button.addClass(c):"remove"==b?this.$button.removeClass(c):(this.$button.removeClass(this.options.style),this.$button.addClass(c))},liHeight:function(b){if(b||this.options.size!==!1&&!this.sizeInfo){var c=document.createElement("div"),d=document.createElement("div"),e=document.createElement("ul"),f=document.createElement("li"),g=document.createElement("li"),h=document.createElement("a"),i=document.createElement("span"),j=this.options.header&&this.$menu.find(".popover-title").length>0?this.$menu.find(".popover-title")[0].cloneNode(!0):null,k=this.options.liveSearch?document.createElement("div"):null,l=this.options.actionsBox&&this.multiple&&this.$menu.find(".bs-actionsbox").length>0?this.$menu.find(".bs-actionsbox")[0].cloneNode(!0):null,m=this.options.doneButton&&this.multiple&&this.$menu.find(".bs-donebutton").length>0?this.$menu.find(".bs-donebutton")[0].cloneNode(!0):null;if(i.className="text",c.className=this.$menu[0].parentNode.className+" open",d.className="dropdown-menu open",e.className="dropdown-menu inner",f.className="divider",i.appendChild(document.createTextNode("Inner text")),h.appendChild(i),g.appendChild(h),e.appendChild(g),e.appendChild(f),j&&d.appendChild(j),k){var n=document.createElement("span");k.className="bs-searchbox",n.className="form-control",k.appendChild(n),d.appendChild(k)}l&&d.appendChild(l),d.appendChild(e),m&&d.appendChild(m),c.appendChild(d),document.body.appendChild(c);var o=h.offsetHeight,p=j?j.offsetHeight:0,q=k?k.offsetHeight:0,r=l?l.offsetHeight:0,s=m?m.offsetHeight:0,t=a(f).outerHeight(!0),u="function"==typeof getComputedStyle?getComputedStyle(d):!1,v=u?null:a(d),w=parseInt(u?u.paddingTop:v.css("paddingTop"))+parseInt(u?u.paddingBottom:v.css("paddingBottom"))+parseInt(u?u.borderTopWidth:v.css("borderTopWidth"))+parseInt(u?u.borderBottomWidth:v.css("borderBottomWidth")),x=w+parseInt(u?u.marginTop:v.css("marginTop"))+parseInt(u?u.marginBottom:v.css("marginBottom"))+2;document.body.removeChild(c),this.sizeInfo={liHeight:o,headerHeight:p,searchHeight:q,actionsHeight:r,doneButtonHeight:s,dividerHeight:t,menuPadding:w,menuExtras:x}}},setSize:function(){if(this.findLis(),this.liHeight(),this.options.header&&this.$menu.css("padding-top",0),this.options.size!==!1){var b,c,d,e,f=this,g=this.$menu,h=this.$menuInner,i=a(window),j=this.$newElement[0].offsetHeight,k=this.sizeInfo.liHeight,l=this.sizeInfo.headerHeight,m=this.sizeInfo.searchHeight,n=this.sizeInfo.actionsHeight,o=this.sizeInfo.doneButtonHeight,p=this.sizeInfo.dividerHeight,q=this.sizeInfo.menuPadding,r=this.sizeInfo.menuExtras,s=this.options.hideDisabled?".disabled":"",t=function(){d=f.$newElement.offset().top-i.scrollTop(),e=i.height()-d-j};if(t(),"auto"===this.options.size){var u=function(){var i,j=function(b,c){return function(d){return c?d.classList?d.classList.contains(b):a(d).hasClass(b):!(d.classList?d.classList.contains(b):a(d).hasClass(b))}},p=f.$menuInner[0].getElementsByTagName("li"),s=Array.prototype.filter?Array.prototype.filter.call(p,j("hidden",!1)):f.$lis.not(".hidden"),u=Array.prototype.filter?Array.prototype.filter.call(s,j("dropdown-header",!0)):s.filter(".dropdown-header");t(),b=e-r,f.options.container?(g.data("height")||g.data("height",g.height()),c=g.data("height")):c=g.height(),f.options.dropupAuto&&f.$newElement.toggleClass("dropup",d>e&&c>b-r),f.$newElement.hasClass("dropup")&&(b=d-r),i=s.length+u.length>3?3*k+r-2:0,g.css({"max-height":b+"px",overflow:"hidden","min-height":i+l+m+n+o+"px"}),h.css({"max-height":b-l-m-n-o-q+"px","overflow-y":"auto","min-height":Math.max(i-q,0)+"px"})};u(),this.$searchbox.off("input.getSize propertychange.getSize").on("input.getSize propertychange.getSize",u),i.off("resize.getSize scroll.getSize").on("resize.getSize scroll.getSize",u)}else if(this.options.size&&"auto"!=this.options.size&&this.$lis.not(s).length>this.options.size){var v=this.$lis.not(".divider").not(s).children().slice(0,this.options.size).last().parent().index(),w=this.$lis.slice(0,v+1).filter(".divider").length;b=k*this.options.size+w*p+q,f.options.container?(g.data("height")||g.data("height",g.height()),c=g.data("height")):c=g.height(),f.options.dropupAuto&&this.$newElement.toggleClass("dropup",d>e&&c>b-r),g.css({"max-height":b+l+m+n+o+"px",overflow:"hidden","min-height":""}),h.css({"max-height":b-q+"px","overflow-y":"auto","min-height":""})}}},setWidth:function(){if("auto"===this.options.width){this.$menu.css("min-width","0");var a=this.$menu.parent().clone().appendTo("body"),b=this.options.container?this.$newElement.clone().appendTo("body"):a,c=a.children(".dropdown-menu").outerWidth(),d=b.css("width","auto").children("button").outerWidth();a.remove(),b.remove(),this.$newElement.css("width",Math.max(c,d)+"px")}else"fit"===this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width",""));this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement.removeClass("fit-width")},selectPosition:function(){this.$bsContainer=a('
');var b,c,d=this,e=function(a){d.$bsContainer.addClass(a.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass("dropup",a.hasClass("dropup")),b=a.offset(),c=a.hasClass("dropup")?0:a[0].offsetHeight,d.$bsContainer.css({top:b.top+c,left:b.left,width:a[0].offsetWidth})};this.$button.on("click",function(){var b=a(this);d.isDisabled()||(e(d.$newElement),d.$bsContainer.appendTo(d.options.container).toggleClass("open",!b.hasClass("open")).append(d.$menu))}),a(window).on("resize scroll",function(){e(d.$newElement)}),this.$element.on("hide.bs.select",function(){d.$menu.data("height",d.$menu.height()),d.$bsContainer.detach()})},setSelected:function(a,b,c){c||(c=this.findLis().eq(this.liObj[a])),c.toggleClass("selected",b)},setDisabled:function(a,b,c){c||(c=this.findLis().eq(this.liObj[a])),b?c.addClass("disabled").children("a").attr("href","#").attr("tabindex",-1):c.removeClass("disabled").children("a").removeAttr("href").attr("tabindex",0)},isDisabled:function(){return this.$element[0].disabled},checkDisabled:function(){var a=this;this.isDisabled()?(this.$newElement.addClass("disabled"),this.$button.addClass("disabled").attr("tabindex",-1)):(this.$button.hasClass("disabled")&&(this.$newElement.removeClass("disabled"),this.$button.removeClass("disabled")),-1!=this.$button.attr("tabindex")||this.$element.data("tabindex")||this.$button.removeAttr("tabindex")),this.$button.click(function(){return!a.isDisabled()})},tabIndex:function(){this.$element.data("tabindex")!==this.$element.attr("tabindex")&&-98!==this.$element.attr("tabindex")&&"-98"!==this.$element.attr("tabindex")&&(this.$element.data("tabindex",this.$element.attr("tabindex")),this.$button.attr("tabindex",this.$element.data("tabindex"))),this.$element.attr("tabindex",-98)},clickListener:function(){var b=this,c=a(document);this.$newElement.on("touchstart.dropdown",".dropdown-menu",function(a){a.stopPropagation()}),c.data("spaceSelect",!1),this.$button.on("keyup",function(a){/(32)/.test(a.keyCode.toString(10))&&c.data("spaceSelect")&&(a.preventDefault(),c.data("spaceSelect",!1))}),this.$button.on("click",function(){b.setSize()}),this.$element.on("shown.bs.select",function(){if(b.options.liveSearch||b.multiple){if(!b.multiple){var a=b.liObj[b.$element[0].selectedIndex];if("number"!=typeof a||b.options.size===!1)return;var c=b.$lis.eq(a)[0].offsetTop-b.$menuInner[0].offsetTop;c=c-b.$menuInner[0].offsetHeight/2+b.sizeInfo.liHeight/2,b.$menuInner[0].scrollTop=c}}else b.$menuInner.find(".selected a").focus()}),this.$menuInner.on("click","li a",function(c){var d=a(this),e=d.parent().data("originalIndex"),f=b.$element.val(),g=b.$element.prop("selectedIndex");if(b.multiple&&c.stopPropagation(),c.preventDefault(),!b.isDisabled()&&!d.parent().hasClass("disabled")){var h=b.$element.find("option"),i=h.eq(e),j=i.prop("selected"),k=i.parent("optgroup"),l=b.options.maxOptions,m=k.data("maxOptions")||!1;if(b.multiple){if(i.prop("selected",!j),b.setSelected(e,!j),d.blur(),l!==!1||m!==!1){var n=l
');q[2]&&(r=r.replace("{var}",q[2][l>1?0:1]),s=s.replace("{var}",q[2][m>1?0:1])),i.prop("selected",!1),b.$menu.append(t),l&&n&&(t.append(a("
"+r+"
")),b.$element.trigger("maxReached.bs.select")),m&&o&&(t.append(a("
"+s+"
")),b.$element.trigger("maxReachedGrp.bs.select")),setTimeout(function(){b.setSelected(e,!1)},10),t.delay(750).fadeOut(300,function(){a(this).remove()})}}}else h.prop("selected",!1),i.prop("selected",!0),b.$menuInner.find(".selected").removeClass("selected"),b.setSelected(e,!0);b.multiple?b.options.liveSearch&&b.$searchbox.focus():b.$button.focus(),(f!=b.$element.val()&&b.multiple||g!=b.$element.prop("selectedIndex")&&!b.multiple)&&b.$element.trigger("changed.bs.select",[e,i.prop("selected"),j]).triggerNative("change")}}),this.$menu.on("click","li.disabled a, .popover-title, .popover-title :not(.close)",function(c){c.currentTarget==this&&(c.preventDefault(),c.stopPropagation(),b.options.liveSearch&&!a(c.target).hasClass("close")?b.$searchbox.focus():b.$button.focus())}),this.$menuInner.on("click",".divider, .dropdown-header",function(a){a.preventDefault(),a.stopPropagation(),b.options.liveSearch?b.$searchbox.focus():b.$button.focus()}),this.$menu.on("click",".popover-title .close",function(){b.$button.click()}),this.$searchbox.on("click",function(a){a.stopPropagation()}),this.$menu.on("click",".actions-btn",function(c){b.options.liveSearch?b.$searchbox.focus():b.$button.focus(),c.preventDefault(),c.stopPropagation(),a(this).hasClass("bs-select-all")?b.selectAll():b.deselectAll()}),this.$element.change(function(){b.render(!1)})},liveSearchListener:function(){var d=this,e=a('
  • ');this.$button.on("click.dropdown.data-api touchstart.dropdown.data-api",function(){d.$menuInner.find(".active").removeClass("active"),d.$searchbox.val()&&(d.$searchbox.val(""),d.$lis.not(".is-hidden").removeClass("hidden"),e.parent().length&&e.remove()),d.multiple||d.$menuInner.find(".selected").addClass("active"),setTimeout(function(){d.$searchbox.focus()},10)}),this.$searchbox.on("click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api",function(a){a.stopPropagation()}),this.$searchbox.on("input propertychange",function(){if(d.$searchbox.val()){var f=d.$lis.not(".is-hidden").removeClass("hidden").children("a");f=d.options.liveSearchNormalize?f.not(":a"+d._searchStyle()+'("'+b(d.$searchbox.val())+'")'):f.not(":"+d._searchStyle()+'("'+d.$searchbox.val()+'")'),f.parent().addClass("hidden"),d.$lis.filter(".dropdown-header").each(function(){var b=a(this),c=b.data("optgroup");0===d.$lis.filter("[data-optgroup="+c+"]").not(b).not(".hidden").length&&(b.addClass("hidden"),d.$lis.filter("[data-optgroup="+c+"div]").addClass("hidden"))});var g=d.$lis.not(".hidden");g.each(function(b){var c=a(this);c.hasClass("divider")&&(c.index()===g.first().index()||c.index()===g.last().index()||g.eq(b+1).hasClass("divider"))&&c.addClass("hidden")}),d.$lis.not(".hidden, .no-results").length?e.parent().length&&e.remove():(e.parent().length&&e.remove(),e.html(d.options.noneResultsText.replace("{0}",'"'+c(d.$searchbox.val())+'"')).show(),d.$menuInner.append(e))}else d.$lis.not(".is-hidden").removeClass("hidden"),e.parent().length&&e.remove();d.$lis.filter(".active").removeClass("active"),d.$searchbox.val()&&d.$lis.not(".hidden, .divider, .dropdown-header").eq(0).addClass("active").children("a").focus(),a(this).focus()})},_searchStyle:function(){var a={begins:"ibegins",startsWith:"ibegins"};return a[this.options.liveSearchStyle]||"icontains"},val:function(a){return"undefined"!=typeof a?(this.$element.val(a),this.render(),this.$element):this.$element.val()},changeAll:function(b){"undefined"==typeof b&&(b=!0),this.findLis();for(var c=this.$element.find("option"),d=this.$lis.not(".divider, .dropdown-header, .disabled, .hidden").toggleClass("selected",b),e=d.length,f=[],g=0;e>g;g++){var h=d[g].getAttribute("data-original-index");f[f.length]=c.eq(h)[0]}a(f).prop("selected",b),this.render(!1),this.$element.trigger("changed.bs.select").triggerNative("change")},selectAll:function(){return this.changeAll(!0)},deselectAll:function(){return this.changeAll(!1)},toggle:function(a){a=a||window.event,a&&a.stopPropagation(),this.$button.trigger("click")},keydown:function(c){var d,e,f,g,h,i,j,k,l,m=a(this),n=m.is("input")?m.parent().parent():m.parent(),o=n.data("this"),p=":not(.disabled, .hidden, .dropdown-header, .divider)",q={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"};if(o.options.liveSearch&&(n=m.parent().parent()),o.options.container&&(n=o.$menu),d=a("[role=menu] li",n),l=o.$newElement.hasClass("open"),!l&&(c.keyCode>=48&&c.keyCode<=57||c.keyCode>=96&&c.keyCode<=105||c.keyCode>=65&&c.keyCode<=90)&&(o.options.container?o.$button.trigger("click"):(o.setSize(),o.$menu.parent().addClass("open"),l=!0),o.$searchbox.focus()),o.options.liveSearch&&(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&0===o.$menu.find(".active").length&&(c.preventDefault(),o.$menu.parent().removeClass("open"),o.options.container&&o.$newElement.removeClass("open"),o.$button.focus()),d=a("[role=menu] li"+p,n),m.val()||/(38|40)/.test(c.keyCode.toString(10))||0===d.filter(".active").length&&(d=o.$menuInner.find("li"),d=o.options.liveSearchNormalize?d.filter(":a"+o._searchStyle()+"("+b(q[c.keyCode])+")"):d.filter(":"+o._searchStyle()+"("+q[c.keyCode]+")"))),d.length){if(/(38|40)/.test(c.keyCode.toString(10)))e=d.index(d.find("a").filter(":focus").parent()),g=d.filter(p).first().index(),h=d.filter(p).last().index(),f=d.eq(e).nextAll(p).eq(0).index(),i=d.eq(e).prevAll(p).eq(0).index(),j=d.eq(f).prevAll(p).eq(0).index(),o.options.liveSearch&&(d.each(function(b){a(this).hasClass("disabled")||a(this).data("index",b)}),e=d.index(d.filter(".active")),g=d.first().data("index"),h=d.last().data("index"),f=d.eq(e).nextAll().eq(0).data("index"),i=d.eq(e).prevAll().eq(0).data("index"),j=d.eq(f).prevAll().eq(0).data("index")),k=m.data("prevIndex"),38==c.keyCode?(o.options.liveSearch&&e--,e!=j&&e>i&&(e=i),g>e&&(e=g),e==k&&(e=h)):40==c.keyCode&&(o.options.liveSearch&&e++,-1==e&&(e=0),e!=j&&f>e&&(e=f),e>h&&(e=h),e==k&&(e=g)),m.data("prevIndex",e),o.options.liveSearch?(c.preventDefault(),m.hasClass("dropdown-toggle")||(d.removeClass("active").eq(e).addClass("active").children("a").focus(),m.focus())):d.eq(e).children("a").focus();else if(!m.is("input")){var r,s,t=[];d.each(function(){a(this).hasClass("disabled")||a.trim(a(this).children("a").text().toLowerCase()).substring(0,1)==q[c.keyCode]&&t.push(a(this).index())}),r=a(document).data("keycount"),r++,a(document).data("keycount",r),s=a.trim(a(":focus").text().toLowerCase()).substring(0,1),s!=q[c.keyCode]?(r=1,a(document).data("keycount",r)):r>=t.length&&(a(document).data("keycount",0),r>t.length&&(r=1)),d.eq(t[r-1]).children("a").focus()}if((/(13|32)/.test(c.keyCode.toString(10))||/(^9$)/.test(c.keyCode.toString(10))&&o.options.selectOnTab)&&l){if(/(32)/.test(c.keyCode.toString(10))||c.preventDefault(),o.options.liveSearch)/(32)/.test(c.keyCode.toString(10))||(o.$menuInner.find(".active a").click(),m.focus());else{var u=a(":focus");u.click(),u.focus(),c.preventDefault(),a(document).data("spaceSelect",!0)}a(document).data("keycount",0)}(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&(o.multiple||o.options.liveSearch)||/(27)/.test(c.keyCode.toString(10))&&!l)&&(o.$menu.parent().removeClass("open"),o.options.container&&o.$newElement.removeClass("open"),o.$button.focus())}},mobile:function(){this.$element.addClass("mobile-device")},refresh:function(){this.$lis=null,this.liObj={},this.reloadLi(),this.render(),this.checkDisabled(),this.liHeight(!0),this.setStyle(),this.setWidth(),this.$lis&&this.$searchbox.trigger("propertychange"),this.$element.trigger("refreshed.bs.select")},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.before(this.$element).remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.$element.off(".bs.select").removeData("selectpicker").removeClass("bs-select-hidden selectpicker")}};var f=a.fn.selectpicker;a.fn.selectpicker=d,a.fn.selectpicker.Constructor=e,a.fn.selectpicker.noConflict=function(){return a.fn.selectpicker=f,this},a(document).data("keycount",0).on("keydown.bs.select",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input',e.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input',function(a){a.stopPropagation()}),a(window).on("load.bs.select.data-api",function(){a(".selectpicker").each(function(){var b=a(this);d.call(b,b.data())})})}(a)}); +//# sourceMappingURL=bootstrap-select.js.map \ No newline at end of file diff --git a/bootstrap/addons/show-password/bootstrap-show-password.min.js b/bootstrap/addons/show-password/bootstrap-show-password.min.js new file mode 100644 index 0000000..a944d22 --- /dev/null +++ b/bootstrap/addons/show-password/bootstrap-show-password.min.js @@ -0,0 +1,6 @@ +/** + * @author zhixin wen + * https://github.com/wenzhixin/bootstrap-show-password + * version: 1.0.3 + */ +!function(e){"use strict";var t=function(e){var t=arguments,s=!0,i=1;return e=e.replace(/%s/g,function(){var e=t[i++];return"undefined"==typeof e?(s=!1,""):e}),s?e:""},s=function(t,s){this.options=s,this.$element=e(t),this.isShown=!1,this.init()};s.DEFAULTS={placement:"after",white:!1,message:"Click here to show/hide password",eyeClass:"glyphicon",eyeOpenClass:"glyphicon-eye-open",eyeCloseClass:"glyphicon-eye-close"},s.prototype.init=function(){var s,i;"before"===this.options.placement?(s="insertBefore",i="input-prepend"):(this.options.placement="after",s="insertAfter",i="input-append"),this.$element.wrap(t('
    ',i)),this.$text=e('')[s](this.$element).attr("class",this.$element.attr("class")).attr("style",this.$element.attr("style")).attr("placeholder",this.$element.attr("placeholder")).css("display",this.$element.css("display")).val(this.$element.val()).hide(),this.$element.prop("readonly")&&this.$text.prop("readonly",!0),this.$icon=e(['','',""].join(""))[s](this.$text).css("cursor","pointer"),this.$text.off("keyup").on("keyup",e.proxy(function(){this.isShown&&this.$element.val(this.$text.val()).trigger("change")},this)),this.$icon.off("click").on("click",e.proxy(function(){this.$text.val(this.$element.val()).trigger("change"),this.toggle()},this))},s.prototype.toggle=function(e){this[this.isShown?"hide":"show"](e)},s.prototype.show=function(t){var s=e.Event("show.bs.password",{relatedTarget:t});this.$element.trigger(s),this.isShown=!0,this.$element.hide(),this.$text.show(),this.$icon.find("i").removeClass("icon-eye-open "+this.options.eyeOpenClass).addClass("icon-eye-close "+this.options.eyeCloseClass),this.$text[this.options.placement](this.$element)},s.prototype.hide=function(t){var s=e.Event("hide.bs.password",{relatedTarget:t});this.$element.trigger(s),this.isShown=!1,this.$element.show(),this.$text.hide(),this.$icon.find("i").removeClass("icon-eye-close "+this.options.eyeCloseClass).addClass("icon-eye-open "+this.options.eyeOpenClass),this.$element[this.options.placement](this.$text)},s.prototype.val=function(e){return"undefined"==typeof e?this.$element.val():(this.$element.val(e).trigger("change"),this.$text.val(e),void 0)};var i=e.fn.password;e.fn.password=function(){var t,i=arguments[0],n=arguments,o=["show","hide","toggle","val"];return this.each(function(){var a=e(this),h=a.data("bs.password"),r=e.extend({},s.DEFAULTS,a.data(),"object"==typeof i&&i);if("string"==typeof i){if(e.inArray(i,o)<0)throw"Unknown method: "+i;t=h[i](n[1])}else h?h.init(r):(h=new s(a,r),a.data("bs.password",h))}),t?t:this},e.fn.password.Constructor=s,e.fn.password.noConflict=function(){return e.fn.password=i,this},e(function(){e('[data-toggle="password"]').password()})}(window.jQuery); \ No newline at end of file diff --git a/bootstrap/addons/switch-master/bootstrap-switch.min.css b/bootstrap/addons/switch-master/bootstrap-switch.min.css new file mode 100644 index 0000000..0a9f2b7 --- /dev/null +++ b/bootstrap/addons/switch-master/bootstrap-switch.min.css @@ -0,0 +1,22 @@ +/* ======================================================================== + * bootstrap-switch - v3.3.2 + * http://www.bootstrap-switch.org + * ======================================================================== + * Copyright 2012-2013 Mattia Larentis + * + * ======================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== + */ + +.bootstrap-switch{display:inline-block;direction:ltr;cursor:pointer;border-radius:4px;border:1px solid #ccc;position:relative;text-align:left;overflow:hidden;line-height:8px;z-index:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.bootstrap-switch .bootstrap-switch-container{display:inline-block;top:0;border-radius:4px;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-label{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:inline-block!important;padding:6px 12px;font-size:14px;line-height:20px}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on{text-align:center;z-index:1}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{color:#fff;background:#337ab7}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info{color:#fff;background:#5bc0de}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success{color:#fff;background:#5cb85c}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning{background:#f0ad4e;color:#fff}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger{color:#fff;background:#d9534f}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default{color:#000;background:#eee}.bootstrap-switch .bootstrap-switch-label{text-align:center;margin-top:-1px;margin-bottom:-1px;z-index:100;color:#333;background:#fff}.bootstrap-switch .bootstrap-switch-handle-on{border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap-switch .bootstrap-switch-handle-off{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch input[type=radio],.bootstrap-switch input[type=checkbox]{position:absolute!important;top:0;left:0;margin:0;z-index:-1;opacity:0;filter:alpha(opacity=0)}.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label{padding:1px 5px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label{padding:5px 10px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label{padding:6px 16px;font-size:18px;line-height:1.3333333}.bootstrap-switch.bootstrap-switch-disabled,.bootstrap-switch.bootstrap-switch-indeterminate,.bootstrap-switch.bootstrap-switch-readonly{cursor:default!important}.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label{opacity:.5;filter:alpha(opacity=50);cursor:default!important}.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container{-webkit-transition:margin-left .5s;-o-transition:margin-left .5s;transition:margin-left .5s}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on{border-radius:0 3px 3px 0}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off{border-radius:3px 0 0 3px}.bootstrap-switch.bootstrap-switch-focused{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label{border-bottom-left-radius:3px;border-top-left-radius:3px} \ No newline at end of file diff --git a/bootstrap/addons/switch-master/bootstrap-switch.min.js b/bootstrap/addons/switch-master/bootstrap-switch.min.js new file mode 100644 index 0000000..9849658 --- /dev/null +++ b/bootstrap/addons/switch-master/bootstrap-switch.min.js @@ -0,0 +1,22 @@ +/* ======================================================================== + * bootstrap-switch - v3.3.2 + * http://www.bootstrap-switch.org + * ======================================================================== + * Copyright 2012-2013 Mattia Larentis + * + * ======================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== + */ + +(function(){var t=[].slice;!function(e,i){"use strict";var n;return n=function(){function t(t,i){null==i&&(i={}),this.$element=e(t),this.options=e.extend({},e.fn.bootstrapSwitch.defaults,{state:this.$element.is(":checked"),size:this.$element.data("size"),animate:this.$element.data("animate"),disabled:this.$element.is(":disabled"),readonly:this.$element.is("[readonly]"),indeterminate:this.$element.data("indeterminate"),inverse:this.$element.data("inverse"),radioAllOff:this.$element.data("radio-all-off"),onColor:this.$element.data("on-color"),offColor:this.$element.data("off-color"),onText:this.$element.data("on-text"),offText:this.$element.data("off-text"),labelText:this.$element.data("label-text"),handleWidth:this.$element.data("handle-width"),labelWidth:this.$element.data("label-width"),baseClass:this.$element.data("base-class"),wrapperClass:this.$element.data("wrapper-class")},i),this.prevOptions={},this.$wrapper=e("
    ",{"class":function(t){return function(){var e;return e=[""+t.options.baseClass].concat(t._getClasses(t.options.wrapperClass)),e.push(t.options.state?t.options.baseClass+"-on":t.options.baseClass+"-off"),null!=t.options.size&&e.push(t.options.baseClass+"-"+t.options.size),t.options.disabled&&e.push(t.options.baseClass+"-disabled"),t.options.readonly&&e.push(t.options.baseClass+"-readonly"),t.options.indeterminate&&e.push(t.options.baseClass+"-indeterminate"),t.options.inverse&&e.push(t.options.baseClass+"-inverse"),t.$element.attr("id")&&e.push(t.options.baseClass+"-id-"+t.$element.attr("id")),e.join(" ")}}(this)()}),this.$container=e("
    ",{"class":this.options.baseClass+"-container"}),this.$on=e("",{html:this.options.onText,"class":this.options.baseClass+"-handle-on "+this.options.baseClass+"-"+this.options.onColor}),this.$off=e("",{html:this.options.offText,"class":this.options.baseClass+"-handle-off "+this.options.baseClass+"-"+this.options.offColor}),this.$label=e("",{html:this.options.labelText,"class":this.options.baseClass+"-label"}),this.$element.on("init.bootstrapSwitch",function(e){return function(){return e.options.onInit.apply(t,arguments)}}(this)),this.$element.on("switchChange.bootstrapSwitch",function(i){return function(n){return!1===i.options.onSwitchChange.apply(t,arguments)?i.$element.is(":radio")?e("[name='"+i.$element.attr("name")+"']").trigger("previousState.bootstrapSwitch",!0):i.$element.trigger("previousState.bootstrapSwitch",!0):void 0}}(this)),this.$container=this.$element.wrap(this.$container).parent(),this.$wrapper=this.$container.wrap(this.$wrapper).parent(),this.$element.before(this.options.inverse?this.$off:this.$on).before(this.$label).before(this.options.inverse?this.$on:this.$off),this.options.indeterminate&&this.$element.prop("indeterminate",!0),this._init(),this._elementHandlers(),this._handleHandlers(),this._labelHandlers(),this._formHandler(),this._externalLabelHandler(),this.$element.trigger("init.bootstrapSwitch",this.options.state)}return t.prototype._constructor=t,t.prototype.setPrevOptions=function(){return this.prevOptions=e.extend(!0,{},this.options)},t.prototype.state=function(t,i){return"undefined"==typeof t?this.options.state:this.options.disabled||this.options.readonly?this.$element:this.options.state&&!this.options.radioAllOff&&this.$element.is(":radio")?this.$element:(this.$element.is(":radio")?e("[name='"+this.$element.attr("name")+"']").trigger("setPreviousOptions.bootstrapSwitch"):this.$element.trigger("setPreviousOptions.bootstrapSwitch"),this.options.indeterminate&&this.indeterminate(!1),t=!!t,this.$element.prop("checked",t).trigger("change.bootstrapSwitch",i),this.$element)},t.prototype.toggleState=function(t){return this.options.disabled||this.options.readonly?this.$element:this.options.indeterminate?(this.indeterminate(!1),this.state(!0)):this.$element.prop("checked",!this.options.state).trigger("change.bootstrapSwitch",t)},t.prototype.size=function(t){return"undefined"==typeof t?this.options.size:(null!=this.options.size&&this.$wrapper.removeClass(this.options.baseClass+"-"+this.options.size),t&&this.$wrapper.addClass(this.options.baseClass+"-"+t),this._width(),this._containerPosition(),this.options.size=t,this.$element)},t.prototype.animate=function(t){return"undefined"==typeof t?this.options.animate:(t=!!t,t===this.options.animate?this.$element:this.toggleAnimate())},t.prototype.toggleAnimate=function(){return this.options.animate=!this.options.animate,this.$wrapper.toggleClass(this.options.baseClass+"-animate"),this.$element},t.prototype.disabled=function(t){return"undefined"==typeof t?this.options.disabled:(t=!!t,t===this.options.disabled?this.$element:this.toggleDisabled())},t.prototype.toggleDisabled=function(){return this.options.disabled=!this.options.disabled,this.$element.prop("disabled",this.options.disabled),this.$wrapper.toggleClass(this.options.baseClass+"-disabled"),this.$element},t.prototype.readonly=function(t){return"undefined"==typeof t?this.options.readonly:(t=!!t,t===this.options.readonly?this.$element:this.toggleReadonly())},t.prototype.toggleReadonly=function(){return this.options.readonly=!this.options.readonly,this.$element.prop("readonly",this.options.readonly),this.$wrapper.toggleClass(this.options.baseClass+"-readonly"),this.$element},t.prototype.indeterminate=function(t){return"undefined"==typeof t?this.options.indeterminate:(t=!!t,t===this.options.indeterminate?this.$element:this.toggleIndeterminate())},t.prototype.toggleIndeterminate=function(){return this.options.indeterminate=!this.options.indeterminate,this.$element.prop("indeterminate",this.options.indeterminate),this.$wrapper.toggleClass(this.options.baseClass+"-indeterminate"),this._containerPosition(),this.$element},t.prototype.inverse=function(t){return"undefined"==typeof t?this.options.inverse:(t=!!t,t===this.options.inverse?this.$element:this.toggleInverse())},t.prototype.toggleInverse=function(){var t,e;return this.$wrapper.toggleClass(this.options.baseClass+"-inverse"),e=this.$on.clone(!0),t=this.$off.clone(!0),this.$on.replaceWith(t),this.$off.replaceWith(e),this.$on=t,this.$off=e,this.options.inverse=!this.options.inverse,this.$element},t.prototype.onColor=function(t){var e;return e=this.options.onColor,"undefined"==typeof t?e:(null!=e&&this.$on.removeClass(this.options.baseClass+"-"+e),this.$on.addClass(this.options.baseClass+"-"+t),this.options.onColor=t,this.$element)},t.prototype.offColor=function(t){var e;return e=this.options.offColor,"undefined"==typeof t?e:(null!=e&&this.$off.removeClass(this.options.baseClass+"-"+e),this.$off.addClass(this.options.baseClass+"-"+t),this.options.offColor=t,this.$element)},t.prototype.onText=function(t){return"undefined"==typeof t?this.options.onText:(this.$on.html(t),this._width(),this._containerPosition(),this.options.onText=t,this.$element)},t.prototype.offText=function(t){return"undefined"==typeof t?this.options.offText:(this.$off.html(t),this._width(),this._containerPosition(),this.options.offText=t,this.$element)},t.prototype.labelText=function(t){return"undefined"==typeof t?this.options.labelText:(this.$label.html(t),this._width(),this.options.labelText=t,this.$element)},t.prototype.handleWidth=function(t){return"undefined"==typeof t?this.options.handleWidth:(this.options.handleWidth=t,this._width(),this._containerPosition(),this.$element)},t.prototype.labelWidth=function(t){return"undefined"==typeof t?this.options.labelWidth:(this.options.labelWidth=t,this._width(),this._containerPosition(),this.$element)},t.prototype.baseClass=function(t){return this.options.baseClass},t.prototype.wrapperClass=function(t){return"undefined"==typeof t?this.options.wrapperClass:(t||(t=e.fn.bootstrapSwitch.defaults.wrapperClass),this.$wrapper.removeClass(this._getClasses(this.options.wrapperClass).join(" ")),this.$wrapper.addClass(this._getClasses(t).join(" ")),this.options.wrapperClass=t,this.$element)},t.prototype.radioAllOff=function(t){return"undefined"==typeof t?this.options.radioAllOff:(t=!!t,t===this.options.radioAllOff?this.$element:(this.options.radioAllOff=t,this.$element))},t.prototype.onInit=function(t){return"undefined"==typeof t?this.options.onInit:(t||(t=e.fn.bootstrapSwitch.defaults.onInit),this.options.onInit=t,this.$element)},t.prototype.onSwitchChange=function(t){return"undefined"==typeof t?this.options.onSwitchChange:(t||(t=e.fn.bootstrapSwitch.defaults.onSwitchChange),this.options.onSwitchChange=t,this.$element)},t.prototype.destroy=function(){var t;return t=this.$element.closest("form"),t.length&&t.off("reset.bootstrapSwitch").removeData("bootstrap-switch"),this.$container.children().not(this.$element).remove(),this.$element.unwrap().unwrap().off(".bootstrapSwitch").removeData("bootstrap-switch"),this.$element},t.prototype._width=function(){var t,e;return t=this.$on.add(this.$off),t.add(this.$label).css("width",""),e="auto"===this.options.handleWidth?Math.max(this.$on.width(),this.$off.width()):this.options.handleWidth,t.width(e),this.$label.width(function(t){return function(i,n){return"auto"!==t.options.labelWidth?t.options.labelWidth:e>n?e:n}}(this)),this._handleWidth=this.$on.outerWidth(),this._labelWidth=this.$label.outerWidth(),this.$container.width(2*this._handleWidth+this._labelWidth),this.$wrapper.width(this._handleWidth+this._labelWidth)},t.prototype._containerPosition=function(t,e){return null==t&&(t=this.options.state),this.$container.css("margin-left",function(e){return function(){var i;return i=[0,"-"+e._handleWidth+"px"],e.options.indeterminate?"-"+e._handleWidth/2+"px":t?e.options.inverse?i[1]:i[0]:e.options.inverse?i[0]:i[1]}}(this)),e?setTimeout(function(){return e()},50):void 0},t.prototype._init=function(){var t,e;return t=function(t){return function(){return t.setPrevOptions(),t._width(),t._containerPosition(null,function(){return t.options.animate?t.$wrapper.addClass(t.options.baseClass+"-animate"):void 0})}}(this),this.$wrapper.is(":visible")?t():e=i.setInterval(function(n){return function(){return n.$wrapper.is(":visible")?(t(),i.clearInterval(e)):void 0}}(this),50)},t.prototype._elementHandlers=function(){return this.$element.on({"setPreviousOptions.bootstrapSwitch":function(t){return function(e){return t.setPrevOptions()}}(this),"previousState.bootstrapSwitch":function(t){return function(e){return t.options=t.prevOptions,t.options.indeterminate&&t.$wrapper.addClass(t.options.baseClass+"-indeterminate"),t.$element.prop("checked",t.options.state).trigger("change.bootstrapSwitch",!0)}}(this),"change.bootstrapSwitch":function(t){return function(i,n){var o;return i.preventDefault(),i.stopImmediatePropagation(),o=t.$element.is(":checked"),t._containerPosition(o),o!==t.options.state?(t.options.state=o,t.$wrapper.toggleClass(t.options.baseClass+"-off").toggleClass(t.options.baseClass+"-on"),n?void 0:(t.$element.is(":radio")&&e("[name='"+t.$element.attr("name")+"']").not(t.$element).prop("checked",!1).trigger("change.bootstrapSwitch",!0),t.$element.trigger("switchChange.bootstrapSwitch",[o]))):void 0}}(this),"focus.bootstrapSwitch":function(t){return function(e){return e.preventDefault(),t.$wrapper.addClass(t.options.baseClass+"-focused")}}(this),"blur.bootstrapSwitch":function(t){return function(e){return e.preventDefault(),t.$wrapper.removeClass(t.options.baseClass+"-focused")}}(this),"keydown.bootstrapSwitch":function(t){return function(e){if(e.which&&!t.options.disabled&&!t.options.readonly)switch(e.which){case 37:return e.preventDefault(),e.stopImmediatePropagation(),t.state(!1);case 39:return e.preventDefault(),e.stopImmediatePropagation(),t.state(!0)}}}(this)})},t.prototype._handleHandlers=function(){return this.$on.on("click.bootstrapSwitch",function(t){return function(e){return e.preventDefault(),e.stopPropagation(),t.state(!1),t.$element.trigger("focus.bootstrapSwitch")}}(this)),this.$off.on("click.bootstrapSwitch",function(t){return function(e){return e.preventDefault(),e.stopPropagation(),t.state(!0),t.$element.trigger("focus.bootstrapSwitch")}}(this))},t.prototype._labelHandlers=function(){return this.$label.on({click:function(t){return t.stopPropagation()},"mousedown.bootstrapSwitch touchstart.bootstrapSwitch":function(t){return function(e){return t._dragStart||t.options.disabled||t.options.readonly?void 0:(e.preventDefault(),e.stopPropagation(),t._dragStart=(e.pageX||e.originalEvent.touches[0].pageX)-parseInt(t.$container.css("margin-left"),10),t.options.animate&&t.$wrapper.removeClass(t.options.baseClass+"-animate"),t.$element.trigger("focus.bootstrapSwitch"))}}(this),"mousemove.bootstrapSwitch touchmove.bootstrapSwitch":function(t){return function(e){var i;if(null!=t._dragStart&&(e.preventDefault(),i=(e.pageX||e.originalEvent.touches[0].pageX)-t._dragStart,!(i<-t._handleWidth||i>0)))return t._dragEnd=i,t.$container.css("margin-left",t._dragEnd+"px")}}(this),"mouseup.bootstrapSwitch touchend.bootstrapSwitch":function(t){return function(e){var i;if(t._dragStart)return e.preventDefault(),t.options.animate&&t.$wrapper.addClass(t.options.baseClass+"-animate"),t._dragEnd?(i=t._dragEnd>-(t._handleWidth/2),t._dragEnd=!1,t.state(t.options.inverse?!i:i)):t.state(!t.options.state),t._dragStart=!1}}(this),"mouseleave.bootstrapSwitch":function(t){return function(e){return t.$label.trigger("mouseup.bootstrapSwitch")}}(this)})},t.prototype._externalLabelHandler=function(){var t;return t=this.$element.closest("label"),t.on("click",function(e){return function(i){return i.preventDefault(),i.stopImmediatePropagation(),i.target===t[0]?e.toggleState():void 0}}(this))},t.prototype._formHandler=function(){var t;return t=this.$element.closest("form"),t.data("bootstrap-switch")?void 0:t.on("reset.bootstrapSwitch",function(){return i.setTimeout(function(){return t.find("input").filter(function(){return e(this).data("bootstrap-switch")}).each(function(){return e(this).bootstrapSwitch("state",this.checked)})},1)}).data("bootstrap-switch",!0)},t.prototype._getClasses=function(t){var i,n,o,s;if(!e.isArray(t))return[this.options.baseClass+"-"+t];for(n=[],o=0,s=t.length;s>o;o++)i=t[o],n.push(this.options.baseClass+"-"+i);return n},t}(),e.fn.bootstrapSwitch=function(){var i,o,s;return o=arguments[0],i=2<=arguments.length?t.call(arguments,1):[],s=this,this.each(function(){var t,a;return t=e(this),a=t.data("bootstrap-switch"),a||t.data("bootstrap-switch",a=new n(this,o)),"string"==typeof o?s=a[o].apply(a,i):void 0}),s},e.fn.bootstrapSwitch.Constructor=n,e.fn.bootstrapSwitch.defaults={state:!0,size:null,animate:!0,disabled:!1,readonly:!1,indeterminate:!1,inverse:!1,radioAllOff:!1,onColor:"primary",offColor:"default",onText:"ON",offText:"OFF",labelText:" ",handleWidth:"auto",labelWidth:"auto",baseClass:"bootstrap-switch",wrapperClass:"wrapper",onInit:function(){},onSwitchChange:function(){}}}(window.jQuery,window)}).call(this); \ No newline at end of file diff --git a/bootstrap/addons/touchspin-master/jquery.bootstrap-touchspin.css b/bootstrap/addons/touchspin-master/jquery.bootstrap-touchspin.css new file mode 100644 index 0000000..072e9a9 --- /dev/null +++ b/bootstrap/addons/touchspin-master/jquery.bootstrap-touchspin.css @@ -0,0 +1 @@ +.bootstrap-touchspin .input-group-btn-vertical{position:relative;white-space:nowrap;width:1%;vertical-align:middle;display:table-cell}.bootstrap-touchspin .input-group-btn-vertical>.btn{display:block;float:none;width:100%;max-width:100%;padding:8px 10px;margin-left:-1px;position:relative}.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-up{border-radius:0;border-top-right-radius:4px}.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-down{margin-top:-2px;border-radius:0;border-bottom-right-radius:4px}.bootstrap-touchspin .input-group-btn-vertical i{position:absolute;top:3px;left:5px;font-size:9px;font-weight:normal} \ No newline at end of file diff --git a/bootstrap/addons/touchspin-master/jquery.bootstrap-touchspin.js b/bootstrap/addons/touchspin-master/jquery.bootstrap-touchspin.js new file mode 100644 index 0000000..84b7377 --- /dev/null +++ b/bootstrap/addons/touchspin-master/jquery.bootstrap-touchspin.js @@ -0,0 +1 @@ +(function($){var _currentSpinnerId=0;function _scopedEventName(name,id){return name+".touchspin_"+id}function _scopeEventNames(names,id){return $.map(names,function(name){return _scopedEventName(name,id)})}$.fn.TouchSpin=function(options){if(options==="destroy"){this.each(function(){var originalinput=$(this),originalinput_data=originalinput.data();$(document).off(_scopeEventNames(["mouseup","touchend","touchcancel","mousemove","touchmove","scroll","scrollstart"],originalinput_data.spinnerid).join(" "))});return}var defaults={min:0,max:100,initval:"",replacementval:"",step:1,decimals:0,stepinterval:100,forcestepdivisibility:"round",stepintervaldelay:500,verticalbuttons:false,verticalupclass:"glyphicon glyphicon-chevron-up",verticaldownclass:"glyphicon glyphicon-chevron-down",prefix:"",postfix:"",prefix_extraclass:"",postfix_extraclass:"",booster:true,boostat:10,maxboostedstep:false,mousewheel:true,buttondown_class:"btn btn-default",buttonup_class:"btn btn-default",buttondown_txt:"-",buttonup_txt:"+"};var attributeMap={min:"min",max:"max",initval:"init-val",replacementval:"replacement-val",step:"step",decimals:"decimals",stepinterval:"step-interval",verticalbuttons:"vertical-buttons",verticalupclass:"vertical-up-class",verticaldownclass:"vertical-down-class",forcestepdivisibility:"force-step-divisibility",stepintervaldelay:"step-interval-delay",prefix:"prefix",postfix:"postfix",prefix_extraclass:"prefix-extra-class",postfix_extraclass:"postfix-extra-class",booster:"booster",boostat:"boostat",maxboostedstep:"max-boosted-step",mousewheel:"mouse-wheel",buttondown_class:"button-down-class",buttonup_class:"button-up-class",buttondown_txt:"button-down-txt",buttonup_txt:"button-up-txt"};return this.each(function(){var settings,originalinput=$(this),originalinput_data=originalinput.data(),container,elements,value,downSpinTimer,upSpinTimer,downDelayTimeout,upDelayTimeout,spincount=0,spinning=false;init();function init(){if(originalinput.data("alreadyinitialized"))return;originalinput.data("alreadyinitialized",true);_currentSpinnerId+=1;originalinput.data("spinnerid",_currentSpinnerId);if(!originalinput.is("input")){console.log("Must be an input.");return}_initSettings();_setInitval();_checkValue();_buildHtml();_initElements();_hideEmptyPrefixPostfix();_bindEvents();_bindEventsInterface();elements.input.css("display","block")}function _setInitval(){if(settings.initval!==""&&originalinput.val()==="")originalinput.val(settings.initval)}function changeSettings(newsettings){_updateSettings(newsettings);_checkValue();var value=elements.input.val();if(value!==""){value=Number(elements.input.val());elements.input.val(value.toFixed(settings.decimals))}}function _initSettings(){settings=$.extend({},defaults,originalinput_data,_parseAttributes(),options)}function _parseAttributes(){var data={};$.each(attributeMap,function(key,value){var attrName="bts-"+value+"";if(originalinput.is("[data-"+attrName+"]"))data[key]=originalinput.data(attrName)});return data}function _updateSettings(newsettings){settings=$.extend({},settings,newsettings)}function _buildHtml(){var initval=originalinput.val(),parentelement=originalinput.parent();if(initval!=="")initval=Number(initval).toFixed(settings.decimals);originalinput.data("initvalue",initval).val(initval);originalinput.addClass("form-control");if(parentelement.hasClass("input-group"))_advanceInputGroup(parentelement);else _buildInputGroup()}function _advanceInputGroup(parentelement){parentelement.addClass("bootstrap-touchspin");var prev=originalinput.prev(),next=originalinput.next();var downhtml,uphtml,prefixhtml=''+settings.prefix+"",postfixhtml=''+settings.postfix+"";if(prev.hasClass("input-group-btn")){downhtml='";prev.append(downhtml)}else{downhtml='";$(downhtml).insertBefore(originalinput)}if(next.hasClass("input-group-btn")){uphtml='";next.prepend(uphtml)}else{uphtml='";$(uphtml).insertAfter(originalinput)}$(prefixhtml).insertBefore(originalinput);$(postfixhtml).insertAfter(originalinput);container=parentelement}function _buildInputGroup(){var html;if(settings.verticalbuttons)html='
    '+settings.prefix+''+settings.postfix+'
    ';else html='
    '+settings.prefix+''+settings.postfix+'
    ";container=$(html).insertBefore(originalinput);$(".bootstrap-touchspin-prefix",container).after(originalinput);if(originalinput.hasClass("input-sm"))container.addClass("input-group-sm");else if(originalinput.hasClass("input-lg"))container.addClass("input-group-lg")}function _initElements(){elements={down:$(".bootstrap-touchspin-down",container),up:$(".bootstrap-touchspin-up",container),input:$("input",container),prefix:$(".bootstrap-touchspin-prefix",container).addClass(settings.prefix_extraclass),postfix:$(".bootstrap-touchspin-postfix",container).addClass(settings.postfix_extraclass)}}function _hideEmptyPrefixPostfix(){if(settings.prefix==="")elements.prefix.remove();if(settings.postfix==="")elements.postfix.remove()}function _bindEvents(){originalinput.on("keydown",function(ev){var code=ev.keyCode||ev.which;if(code===38){if(spinning!=="up"){upOnce();startUpSpin()}ev.preventDefault()}else if(code===40){if(spinning!=="down"){downOnce();startDownSpin()}ev.preventDefault()}});originalinput.on("keyup",function(ev){var code=ev.keyCode||ev.which;if(code===38)stopSpin();else if(code===40)stopSpin()});originalinput.on("blur",function(){_checkValue()});elements.down.on("keydown",function(ev){var code=ev.keyCode||ev.which;if(code===32||code===13){if(spinning!=="down"){downOnce();startDownSpin()}ev.preventDefault()}});elements.down.on("keyup",function(ev){var code=ev.keyCode||ev.which;if(code===32||code===13)stopSpin()});elements.up.on("keydown",function(ev){var code=ev.keyCode||ev.which;if(code===32||code===13){if(spinning!=="up"){upOnce();startUpSpin()}ev.preventDefault()}});elements.up.on("keyup",function(ev){var code=ev.keyCode||ev.which;if(code===32||code===13)stopSpin()});elements.down.on("mousedown.touchspin",function(ev){elements.down.off("touchstart.touchspin");if(originalinput.is(":disabled"))return;downOnce();startDownSpin();ev.preventDefault();ev.stopPropagation()});elements.down.on("touchstart.touchspin",function(ev){elements.down.off("mousedown.touchspin");if(originalinput.is(":disabled"))return;downOnce();startDownSpin();ev.preventDefault();ev.stopPropagation()});elements.up.on("mousedown.touchspin",function(ev){elements.up.off("touchstart.touchspin");if(originalinput.is(":disabled"))return;upOnce();startUpSpin();ev.preventDefault();ev.stopPropagation()});elements.up.on("touchstart.touchspin",function(ev){elements.up.off("mousedown.touchspin");if(originalinput.is(":disabled"))return;upOnce();startUpSpin();ev.preventDefault();ev.stopPropagation()});elements.up.on("mouseout touchleave touchend touchcancel",function(ev){if(!spinning)return;ev.stopPropagation();stopSpin()});elements.down.on("mouseout touchleave touchend touchcancel",function(ev){if(!spinning)return;ev.stopPropagation();stopSpin()});elements.down.on("mousemove touchmove",function(ev){if(!spinning)return;ev.stopPropagation();ev.preventDefault()});elements.up.on("mousemove touchmove",function(ev){if(!spinning)return;ev.stopPropagation();ev.preventDefault()});$(document).on(_scopeEventNames(["mouseup","touchend","touchcancel"],_currentSpinnerId).join(" "),function(ev){if(!spinning)return;ev.preventDefault();stopSpin()});$(document).on(_scopeEventNames(["mousemove","touchmove","scroll","scrollstart"],_currentSpinnerId).join(" "),function(ev){if(!spinning)return;ev.preventDefault();stopSpin()});originalinput.on("mousewheel DOMMouseScroll",function(ev){if(!settings.mousewheel||!originalinput.is(":focus"))return;var delta=ev.originalEvent.wheelDelta||-ev.originalEvent.deltaY||-ev.originalEvent.detail;ev.stopPropagation();ev.preventDefault();if(delta<0)downOnce();else upOnce()})}function _bindEventsInterface(){originalinput.on("touchspin.uponce",function(){stopSpin();upOnce()});originalinput.on("touchspin.downonce",function(){stopSpin();downOnce()});originalinput.on("touchspin.startupspin",function(){startUpSpin()});originalinput.on("touchspin.startdownspin",function(){startDownSpin()});originalinput.on("touchspin.stopspin",function(){stopSpin()});originalinput.on("touchspin.updatesettings",function(e,newsettings){changeSettings(newsettings)})}function _forcestepdivisibility(value){switch(settings.forcestepdivisibility){case "round":return(Math.round(value/settings.step)*settings.step).toFixed(settings.decimals);case "floor":return(Math.floor(value/settings.step)*settings.step).toFixed(settings.decimals);case "ceil":return(Math.ceil(value/settings.step)*settings.step).toFixed(settings.decimals);default:return value}}function _checkValue(){var val,parsedval,returnval;val=originalinput.val();if(val===""){if(settings.replacementval!==""){originalinput.val(settings.replacementval);originalinput.trigger("change")}return}if(settings.decimals>0&&val===".")return;parsedval=parseFloat(val);if(isNaN(parsedval))if(settings.replacementval!=="")parsedval=settings.replacementval;else parsedval=0;returnval=parsedval;if(parsedval.toString()!==val)returnval=parsedval;if(parsedvalsettings.max)returnval=settings.max;returnval=_forcestepdivisibility(returnval);if(Number(val).toString()!==returnval.toString()){originalinput.val(returnval);originalinput.trigger("change")}}function _getBoostedStep(){if(!settings.booster)return settings.step;else{var boosted=Math.pow(2,Math.floor(spincount/settings.boostat))*settings.step;if(settings.maxboostedstep)if(boosted>settings.maxboostedstep){boosted=settings.maxboostedstep;value=Math.round(value/boosted)*boosted}return Math.max(settings.step,boosted)}}function upOnce(){_checkValue();value=parseFloat(elements.input.val());if(isNaN(value))value=0;var initvalue=value,boostedstep=_getBoostedStep();value=value+boostedstep;if(value>settings.max){value=settings.max;originalinput.trigger("touchspin.on.max");stopSpin()}elements.input.val(Number(value).toFixed(settings.decimals));if(initvalue!==value)originalinput.trigger("change")}function downOnce(){_checkValue();value=parseFloat(elements.input.val());if(isNaN(value))value=0;var initvalue=value,boostedstep=_getBoostedStep();value=value-boostedstep;if(valuea{color:#3c763d}.nav-tabs li.bv-tab-error>a{color:#a94442}.bv-form .bv-icon-no-label{top:0}.bv-form .bv-icon-input-group{top:0;z-index:100} \ No newline at end of file diff --git a/bootstrap/addons/validator/bootstrapValidator.min.js b/bootstrap/addons/validator/bootstrapValidator.min.js new file mode 100644 index 0000000..cf62b33 --- /dev/null +++ b/bootstrap/addons/validator/bootstrapValidator.min.js @@ -0,0 +1,13 @@ +/*! + * BootstrapValidator (http://bootstrapvalidator.com) + * The best jQuery plugin to validate form fields. Designed to use with Bootstrap 3 + * + * @version v0.5.2, built on 2014-09-25 4:01:07 PM + * @author https://twitter.com/nghuuphuoc + * @copyright (c) 2013 - 2014 Nguyen Huu Phuoc + * @license MIT + */ +if("undefined"==typeof jQuery)throw new Error("BootstrapValidator's JavaScript requires jQuery");!function(a){var b=function(b,c){this.$form=a(b),this.options=a.extend({},a.fn.bootstrapValidator.DEFAULT_OPTIONS,c),this.$invalidFields=a([]),this.$submitButton=null,this.$hiddenButton=null,this.STATUS_NOT_VALIDATED="NOT_VALIDATED",this.STATUS_VALIDATING="VALIDATING",this.STATUS_INVALID="INVALID",this.STATUS_VALID="VALID";var d=function(){for(var a=3,b=document.createElement("div"),c=b.all||[];b.innerHTML="",c[0];);return a>4?a:!a}(),e=document.createElement("div");this._changeEvent=9!==d&&"oninput"in e?"input":"keyup",this._submitIfValid=null,this._cacheFields={},this._init()};b.prototype={constructor:b,_init:function(){var b=this,c={container:this.$form.attr("data-bv-container"),events:{formInit:this.$form.attr("data-bv-events-form-init"),formError:this.$form.attr("data-bv-events-form-error"),formSuccess:this.$form.attr("data-bv-events-form-success"),fieldAdded:this.$form.attr("data-bv-events-field-added"),fieldRemoved:this.$form.attr("data-bv-events-field-removed"),fieldInit:this.$form.attr("data-bv-events-field-init"),fieldError:this.$form.attr("data-bv-events-field-error"),fieldSuccess:this.$form.attr("data-bv-events-field-success"),fieldStatus:this.$form.attr("data-bv-events-field-status"),validatorError:this.$form.attr("data-bv-events-validator-error"),validatorSuccess:this.$form.attr("data-bv-events-validator-success")},excluded:this.$form.attr("data-bv-excluded"),feedbackIcons:{valid:this.$form.attr("data-bv-feedbackicons-valid"),invalid:this.$form.attr("data-bv-feedbackicons-invalid"),validating:this.$form.attr("data-bv-feedbackicons-validating")},group:this.$form.attr("data-bv-group"),live:this.$form.attr("data-bv-live"),message:this.$form.attr("data-bv-message"),onError:this.$form.attr("data-bv-onerror"),onSuccess:this.$form.attr("data-bv-onsuccess"),submitButtons:this.$form.attr("data-bv-submitbuttons"),threshold:this.$form.attr("data-bv-threshold"),trigger:this.$form.attr("data-bv-trigger"),verbose:this.$form.attr("data-bv-verbose"),fields:{}};this.$form.attr("novalidate","novalidate").addClass(this.options.elementClass).on("submit.bv",function(a){a.preventDefault(),b.validate()}).on("click.bv",this.options.submitButtons,function(){b.$submitButton=a(this),b._submitIfValid=!0}).find("[name], [data-bv-field]").each(function(){var d=a(this),e=d.attr("name")||d.attr("data-bv-field"),f=b._parseOptions(d);f&&(d.attr("data-bv-field",e),c.fields[e]=a.extend({},f,c.fields[e]))}),this.options=a.extend(!0,this.options,c),this.$hiddenButton=a("',$msg,'
    '; +} + +if ((!isset($_POST['install']) && !isset($_POST['confweb'])) || $err_lvl == 1 || $err_lvl == 2) { +?> +
    + +
    +
    +
    +

    + +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    *
    +
    +
    +
    + +
    + +
    *
    +
    +
    +
    +
    +
     
    +
    +
    +
    + +
    + +
    *
    +
    +
    +
    + +
    + +
    *
    +
    +
    +
    +
    +
    +
    +
     
    +
    +
    + +
    +
    +
     
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    +
    +

    + +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + +
    *
    +
    +
    +
    + +
    + +
    *
    +
    +
    +
    +
    +
     
    +
    +
    +
     
    +
    +
    + +
    +
    +
     
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + + \ No newline at end of file diff --git a/jobs/bot.php b/jobs/bot.php index 9396ac0..03fda76 100644 --- a/jobs/bot.php +++ b/jobs/bot.php @@ -44,6 +44,11 @@ function enter_logfile($logpath,$timezone,$loglevel,$logtext) { require_once(substr(__DIR__,0,-4).'other/config.php'); +if(version_compare(phpversion(), '5.5.0', '<')) { + enter_logfile($logpath,$timezone,1,"Your PHP version (".phpversion().") is below 5.5.0. Update of PHP needed! Shuttin down!\n\n"); + exit; +} + enter_logfile($logpath,$timezone,5,"Initialize Bot..."); require_once(substr(__DIR__,0,-4).'ts3_lib/TeamSpeak3.php'); require_once(substr(__DIR__,0,-4).'jobs/calc_user.php'); @@ -54,7 +59,7 @@ require_once(substr(__DIR__,0,-4).'jobs/calc_userstats.php'); require_once(substr(__DIR__,0,-4).'jobs/clean.php'); require_once(substr(__DIR__,0,-4).'jobs/check_db.php'); -function log_mysql($jobname,$mysqlcon,$timezone) { +function log_mysql($jobname,$mysqlcon,$timezone,$dbname) { $timestamp = time(); if($mysqlcon->exec("INSERT INTO $dbname.job_log (timestamp,job_name,status) VALUES ('$timestamp','$jobname','9')") === false) { enter_logfile($logpath,$timezone,2,print_r($mysqlcon->errorInfo())); @@ -127,26 +132,24 @@ try { if($defchid != 0) { try { usleep($slowmode); $ts3->clientMove($whoami['client_id'],$defchid); } catch (Exception $e) {} } - $jobid = log_mysql('calc_user',$mysqlcon,$timezone); - calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$showgen,$update,$grouptime,$boostarr,$resetbydbchange,$msgtouser,$uniqueid,$updateinfotime,$currvers,$substridle,$exceptuuid,$exceptgroup,$allclients,$logpath); + $jobid = log_mysql('calc_user',$mysqlcon,$timezone,$dbname); + calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$update,$grouptime,$boostarr,$resetbydbchange,$msgtouser,$uniqueid,$updateinfotime,$currvers,$substridle,$exceptuuid,$exceptgroup,$allclients,$logpath,$rankupmsg,$ignoreidle,$exceptcid); check_shutdown($timezone,$logpath); usleep($slowmode); - $jobid = log_mysql('get_avatars',$mysqlcon,$timezone); + $jobid = log_mysql('get_avatars',$mysqlcon,$timezone,$dbname); get_avatars($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$logpath); check_shutdown($timezone,$logpath); usleep($slowmode); - $jobid = log_mysql('update_groups',$mysqlcon,$timezone); + $jobid = log_mysql('update_groups',$mysqlcon,$timezone,$dbname); update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$serverinfo,$logpath); check_shutdown($timezone,$logpath); usleep($slowmode); - $jobid = log_mysql('calc_serverstats',$mysqlcon,$timezone); + $jobid = log_mysql('calc_serverstats',$mysqlcon,$timezone,$dbname); calc_serverstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$serverinfo,$substridle,$grouptime,$logpath); check_shutdown($timezone,$logpath); usleep($slowmode); - $jobid = log_mysql('calc_userstats',$mysqlcon,$timezone); + $jobid = log_mysql('calc_userstats',$mysqlcon,$timezone,$dbname); calc_userstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$logpath); check_shutdown($timezone,$logpath); usleep($slowmode); - $jobid = log_mysql('clean',$mysqlcon,$timezone); + $jobid = log_mysql('clean',$mysqlcon,$timezone,$dbname); clean($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$cleanclients,$cleanperiod,$logpath); - //check auf fehler in job_log $looptime = microtime(true) - $starttime; - //echo DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u "),"Loop: ",$looptime,"\n"; } } catch (Exception $e) { diff --git a/jobs/calc_serverstats.php b/jobs/calc_serverstats.php index 53cec9f..5ba1d9d 100644 --- a/jobs/calc_serverstats.php +++ b/jobs/calc_serverstats.php @@ -212,14 +212,14 @@ function calc_serverstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezon $server_bytes_up = $serverinfo['connection_bytes_sent_total']; $server_uptime = $serverinfo['virtualserver_uptime']; $server_id = $serverinfo['virtualserver_id']; - $server_name = str_replace('\\', '\\\\', htmlspecialchars($serverinfo['virtualserver_name'], ENT_QUOTES)); + $server_name = $mysqlcon->quote($serverinfo['virtualserver_name'], ENT_QUOTES); $server_pass = $serverinfo['virtualserver_flag_password']; $server_creation_date = $serverinfo['virtualserver_created']; $server_platform = $serverinfo['virtualserver_platform']; $server_weblist = $serverinfo['virtualserver_weblist_enabled']; $server_version = $serverinfo['virtualserver_version']; - if($mysqlcon->exec("UPDATE $dbname.stats_server SET total_user='$total_user', total_online_time='$total_online_time', total_online_month='$total_online_month', total_online_week='$total_online_week', total_active_time='$total_active_time', total_inactive_time='$total_inactive_time', country_nation_name_1='$country_nation_name_1', country_nation_name_2='$country_nation_name_2', country_nation_name_3='$country_nation_name_3', country_nation_name_4='$country_nation_name_4', country_nation_name_5='$country_nation_name_5', country_nation_1='$country_nation_1', country_nation_2='$country_nation_2', country_nation_3='$country_nation_3', country_nation_4='$country_nation_4', country_nation_5='$country_nation_5', country_nation_other='$country_nation_other', platform_1='$platform_1', platform_2='$platform_2', platform_3='$platform_3', platform_4='$platform_4', platform_5='$platform_5', platform_other='$platform_other', version_name_1='$version_name_1', version_name_2='$version_name_2', version_name_3='$version_name_3', version_name_4='$version_name_4', version_name_5='$version_name_5', version_1='$version_1', version_2='$version_2', version_3='$version_3', version_4='$version_4', version_5='$version_5', version_other='$version_other', version_name_1='$version_name_1', server_status='$server_status', server_free_slots='$server_free_slots', server_used_slots='$server_used_slots', server_channel_amount='$server_channel_amount', server_ping='$server_ping', server_packet_loss='$server_packet_loss', server_bytes_down='$server_bytes_down', server_bytes_up='$server_bytes_up', server_uptime='$server_uptime', server_id='$server_id', server_name='$server_name', server_pass='$server_pass', server_creation_date='$server_creation_date', server_platform='$server_platform', server_weblist='$server_weblist', server_version='$server_version'") === false) { + if($mysqlcon->exec("UPDATE $dbname.stats_server SET total_user='$total_user', total_online_time='$total_online_time', total_online_month='$total_online_month', total_online_week='$total_online_week', total_active_time='$total_active_time', total_inactive_time='$total_inactive_time', country_nation_name_1='$country_nation_name_1', country_nation_name_2='$country_nation_name_2', country_nation_name_3='$country_nation_name_3', country_nation_name_4='$country_nation_name_4', country_nation_name_5='$country_nation_name_5', country_nation_1='$country_nation_1', country_nation_2='$country_nation_2', country_nation_3='$country_nation_3', country_nation_4='$country_nation_4', country_nation_5='$country_nation_5', country_nation_other='$country_nation_other', platform_1='$platform_1', platform_2='$platform_2', platform_3='$platform_3', platform_4='$platform_4', platform_5='$platform_5', platform_other='$platform_other', version_name_1='$version_name_1', version_name_2='$version_name_2', version_name_3='$version_name_3', version_name_4='$version_name_4', version_name_5='$version_name_5', version_1='$version_1', version_2='$version_2', version_3='$version_3', version_4='$version_4', version_5='$version_5', version_other='$version_other', version_name_1='$version_name_1', server_status='$server_status', server_free_slots='$server_free_slots', server_used_slots='$server_used_slots', server_channel_amount='$server_channel_amount', server_ping='$server_ping', server_packet_loss='$server_packet_loss', server_bytes_down='$server_bytes_down', server_bytes_up='$server_bytes_up', server_uptime='$server_uptime', server_id='$server_id', server_name=$server_name, server_pass='$server_pass', server_creation_date='$server_creation_date', server_platform='$server_platform', server_weblist='$server_weblist', server_version='$server_version'") === false) { enter_logfile($logpath,$timezone,2,"calc_serverstats 8:".print_r($mysqlcon->errorInfo())); $sqlmsg .= print_r($mysqlcon->errorInfo()); $sqlerr++; diff --git a/jobs/calc_user.php b/jobs/calc_user.php index f56816f..9e5d744 100644 --- a/jobs/calc_user.php +++ b/jobs/calc_user.php @@ -1,32 +1,61 @@ query("SELECT * FROM $dbname.job_check WHERE job_name='get_version'")) === false) { + enter_logfile($logpath,$timezone,2,"calc_user -3:".print_r($mysqlcon->errorInfo())); + $sqlmsg .= print_r($mysqlcon->errorInfo()); + $sqlerr++; + } else { + $getversion = $getversion->fetchAll(); + $updatetime = $nowtime - 43200; + if ($getversion[0]['timestamp'] < $updatetime) { + set_error_handler(function() { }); + $newversion = file_get_contents('http://ts-n.net/ranksystem/version'); + restore_error_handler(); + if($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp='$nowtime' WHERE job_name='get_version'") === false) { + enter_logfile($logpath,$timezone,2,"calc_user -2:".print_r($mysqlcon->errorInfo())); + $sqlmsg .= print_r($mysqlcon->errorInfo()); + $sqlerr++; + } + if($mysqlcon->exec("UPDATE $dbname.config SET newversion='$newversion'") === false) { + enter_logfile($logpath,$timezone,2,"calc_user -1:".print_r($mysqlcon->errorInfo())); + $sqlmsg .= print_r($mysqlcon->errorInfo()); + $sqlerr++; + } + } + } + if ($update == 1) { $updatetime = $nowtime - $updateinfotime; if(($lastupdate = $mysqlcon->query("SELECT * FROM $dbname.job_check WHERE job_name='check_update'")) === false) { - enter_logfile($logpath,$timezone,2,"calc_user 1:".print_r($mysqlcon->errorInfo())); + enter_logfile($logpath,$timezone,2,"calc_user 0:".print_r($mysqlcon->errorInfo())); $sqlmsg .= print_r($mysqlcon->errorInfo()); $sqlerr++; } $lastupdate = $lastupdate->fetchAll(); if ($lastupdate[0]['timestamp'] < $updatetime) { - set_error_handler(function() { }); - $newversion = file_get_contents('http://ts-n.net/ranksystem/version'); - restore_error_handler(); - if (substr($newversion, 0, 4) != substr($currvers, 0, 4) && $newversion != '') { + if(($getversion = $mysqlcon->query("SELECT newversion FROM $dbname.config")) === false) { + enter_logfile($logpath,$timezone,2,"calc_user 1:".print_r($mysqlcon->errorInfo())); + $sqlmsg .= print_r($mysqlcon->errorInfo()); + $sqlerr++; + } + $getversion = $getversion->fetchAll(); + $newversion = $getversion[0]; + if(version_compare(substr($newversion, 0, 5), substr($currvers, 0, 5), '>') && $newversion != '') { enter_logfile($logpath,$timezone,4,$lang['upinf']); foreach ($uniqueid as $clientid) { - check_shutdown($timezone); usleep($slowmode); + check_shutdown($timezone,$logpath); usleep($slowmode); try { $ts3->clientGetByUid($clientid)->message(sprintf($lang['upmsg'], $currvers, $newversion)); - enter_logfile($logpath,$timezone,5," ".sprintf($lang['upusrinf'], $clientid)); + enter_logfile($logpath,$timezone,4," ".sprintf($lang['upusrinf'], $clientid)); } catch (Exception $e) { - enter_logfile($logpath,$timezone,2," ".sprintf($lang['upusrerr'], $clientid)); + enter_logfile($logpath,$timezone,4," ".sprintf($lang['upusrerr'], $clientid)); $sqlmsg .= $e->getCode() . ': ' . $e->getMessage(); $sqlerr++; } @@ -80,7 +109,7 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$show } unset($uuids); - check_shutdown($timezone); usleep($slowmode); + check_shutdown($timezone,$logpath); usleep($slowmode); $yetonline[] = ''; $insertdata = ''; if(empty($grouptime)) { @@ -103,8 +132,12 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$show $nation=$client['client_country']; $version=$client['client_version']; $firstconnect=$client['client_created']; + $channel=$client['cid']; if (!in_array($uid, $yetonline) && $client['client_version'] != "ServerQuery") { $clientidle = floor($client['client_idle_time'] / 1000); + if(isset($ignoreidle) && $clientidle < $ignoreidle) { + $clientidle = 0; + } $yetonline[] = $uid; if(in_array($uid, $exceptuuid) || array_intersect($sgroups, $exceptgroup)) { $except = 1; @@ -130,7 +163,7 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$show $boosttime = $nowtime; } else { if ($nowtime > $sqlhis[$uid]['boosttime'] + $boost['time']) { - check_shutdown($timezone); usleep($slowmode); + check_shutdown($timezone,$logpath); usleep($slowmode); try { $ts3->serverGroupClientDel($boost['group'], $cldbid); $boosttime = 0; @@ -173,10 +206,14 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$show $grpcount=0; foreach ($grouptime as $time => $groupid) { $grpcount++; - if ($activetime > $time && !in_array($uid, $exceptuuid) && !array_intersect($sgroups, $exceptgroup)) { + if(in_array($channel, $exceptcid)) { + $count = $sqlhis[$uid]['count']; + $idle = $sqlhis[$uid]['idle']; + $except = 1; + } elseif ($activetime > $time && !in_array($uid, $exceptuuid) && !array_intersect($sgroups, $exceptgroup)) { if ($sqlhis[$uid]['grpid'] != $groupid) { if ($sqlhis[$uid]['grpid'] != 0 && in_array($sqlhis[$uid]['grpid'], $sgroups)) { - check_shutdown($timezone); usleep($slowmode); + check_shutdown($timezone,$logpath); usleep($slowmode); try { $ts3->serverGroupClientDel($sqlhis[$uid]['grpid'], $cldbid); enter_logfile($logpath,$timezone,5,sprintf($lang['sgrprm'], $sqlhis[$uid]['grpid'], $name, $uid, $cldbid)); @@ -188,7 +225,7 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$show } } if (!in_array($groupid, $sgroups)) { - check_shutdown($timezone); usleep($slowmode); + check_shutdown($timezone,$logpath); usleep($slowmode); try { $ts3->serverGroupClientAdd($groupid, $cldbid); enter_logfile($logpath,$timezone,5,sprintf($lang['sgrpadd'], $groupid, $name, $uid, $cldbid)); @@ -206,22 +243,12 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$show $hours = $dtF->diff($dtT)->format('%h'); $mins = $dtF->diff($dtT)->format('%i'); $secs = $dtF->diff($dtT)->format('%s'); - if ($substridle == 1) { - try { - $ts3->clientGetByUid($uid)->message(sprintf($lang['usermsgactive'], $days, $hours, $mins, $secs)); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"calc_user 11:".sprintf($lang['sgrprerr'], $name, $uid, $cldbid)); - $sqlmsg .= $e->getCode() . ': ' . $e->getMessage(); - $sqlerr++; - } - } else { - try { - $ts3->clientGetByUid($uid)->message(sprintf($lang['usermsgonline'], $days, $hours, $mins, $secs)); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"calc_user 12:".sprintf($lang['sgrprerr'], $name, $uid, $cldbid)); - $sqlmsg .= $e->getCode() . ': ' . $e->getMessage(); - $sqlerr++; - } + try { + $ts3->clientGetByUid($uid)->message(sprintf($rankupmsg, $days, $hours, $mins, $secs)); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"calc_user 12:".sprintf($lang['sgrprerr'], $name, $uid, $cldbid)); + $sqlmsg .= $e->getCode() . ': ' . $e->getMessage(); + $sqlerr++; } } } diff --git a/jobs/calc_userstats.php b/jobs/calc_userstats.php index da957ab..b417e9a 100644 --- a/jobs/calc_userstats.php +++ b/jobs/calc_userstats.php @@ -117,7 +117,7 @@ function calc_userstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone, $count_month = 0; $idle_month = 0; } - $clientdesc = str_replace('\\', '\\\\', htmlspecialchars($clientinfo['client_description'], ENT_QUOTES)); + $clientdesc = $mysqlcon->quote($clientinfo['client_description'], ENT_QUOTES);; if(isset($uidarrstats[$userstats['uuid']])) { $allupdateuuid = $allupdateuuid . "'" . $userstats['uuid'] . "',"; $allupdaterank = $allupdaterank . "WHEN '" . $userstats['uuid'] . "' THEN '" . $userstats['rank'] . "' "; @@ -129,9 +129,9 @@ function calc_userstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone, $allupdatebase64 = $allupdatebase64 . "WHEN '" . $userstats['uuid'] . "' THEN '" . $clientinfo['client_base64HashClientUID'] . "' "; $allupdatecldtup = $allupdatecldtup . "WHEN '" . $userstats['uuid'] . "' THEN '" . $clientinfo['client_total_bytes_uploaded'] . "' "; $allupdatecldtdo = $allupdatecldtdo . "WHEN '" . $userstats['uuid'] . "' THEN '" . $clientinfo['client_total_bytes_downloaded'] . "' "; - $allupdateclddes = $allupdateclddes . "WHEN '" . $userstats['uuid'] . "' THEN '" . $clientdesc . "' "; + $allupdateclddes = $allupdateclddes . "WHEN '" . $userstats['uuid'] . "' THEN " . $clientdesc . " "; } else { - $allinsertuserstats = $allinsertuserstats . "('" . $userstats['uuid'] . "', '" .$userstats['rank'] . "', '" . $count_week . "', '" . $count_month . "', '" . $idle_week . "', '" . $idle_month . "', '" . $clientinfo['client_totalconnections'] . "', '" . $clientinfo['client_base64HashClientUID'] . "', '" . $clientinfo['client_total_bytes_uploaded'] . "', '" . $clientinfo['client_total_bytes_downloaded'] . "', '" . $clientdesc . "'),"; + $allinsertuserstats = $allinsertuserstats . "('" . $userstats['uuid'] . "', '" .$userstats['rank'] . "', '" . $count_week . "', '" . $count_month . "', '" . $idle_week . "', '" . $idle_month . "', '" . $clientinfo['client_totalconnections'] . "', '" . $clientinfo['client_base64HashClientUID'] . "', '" . $clientinfo['client_total_bytes_uploaded'] . "', '" . $clientinfo['client_total_bytes_downloaded'] . "', " . $clientdesc . "),"; } } catch (Exception $e) { //error would be, when client is missing in ts db diff --git a/jobs/check_db.php b/jobs/check_db.php index d18888c..b693fe6 100644 --- a/jobs/check_db.php +++ b/jobs/check_db.php @@ -1,6 +1,6 @@ exec("CREATE INDEX serverusage_timestamp ON $dbname.server_usage (timestamp)") === false) { } + if($mysqlcon->exec("ALTER TABLE $dbname.config ADD (advancemode int(1) NOT NULL default '0', count_access int(2) NOT NULL default '0', last_access bigint(11) NOT NULL default '0', ignoreidle bigint(11) NOT NULL default '0', exceptcid text CHARACTER SET utf8 COLLATE utf8_unicode_ci, rankupmsg text CHARACTER SET utf8 COLLATE utf8_unicode_ci, boost_mode int(1) NOT NULL default '0', newversion varchar(25) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { } else { + enter_logfile($logpath,$timezone,4," Adjusted table config successfully."); + } + if($mysqlcon->exec("UPDATE $dbname.config set ignoreidle='600', rankupmsg='\\nHey, you got a rank up, cause you reached an activity of %s days, %s hours, %s minutes and %s seconds.', newversion='1.1.0'") === false) { } else { + enter_logfile($logpath,$timezone,4," Set default values to new fields in table config."); + } + if($mysqlcon->exec("INSERT INTO $dbname.job_check (job_name) VALUES ('get_version')") === false) { } else { + enter_logfile($logpath,$timezone,4," Set new values to table job_check."); + } + if(($password = $mysqlcon->query("SELECT webpass FROM $dbname.config")) === false) { } + $password = $password->fetchAll(); + if(strlen($password[0]['webpass']) != 60) { + $newwebpass = password_hash($password[0]['webpass'], PASSWORD_DEFAULT); + if($mysqlcon->exec("UPDATE $dbname.config set webpass='$newwebpass'") === false) { } else { + enter_logfile($logpath,$timezone,4," Encrypted password for the webinterface and wrote hash to database."); + } + } + if($mysqlcon->exec("ALTER TABLE $dbname.config DROP COLUMN showexgrp, DROP COLUMN showgen, DROP COLUMN bgcolor, DROP COLUMN hdcolor, DROP COLUMN txcolor, DROP COLUMN hvcolor, DROP COLUMN ifcolor, DROP COLUMN wncolor, DROP COLUMN sccolor") === false) { } else { + enter_logfile($logpath,$timezone,4," Delete old configs, which are no more needed."); + } $currvers = set_new_version($mysqlcon,$dbname,$timezone,$newversion,$logpath); old_files($timezone); check_chmod($timezone); diff --git a/jobs/clean.php b/jobs/clean.php index fb0b3ab..3077d52 100644 --- a/jobs/clean.php +++ b/jobs/clean.php @@ -37,7 +37,7 @@ function clean($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$cleancli $countrs = $dbuserdata->rowCount(); $uuids = $dbuserdata->fetchAll(); if ($lastclean[0]['timestamp'] < $cleantime) { - enter_logfile($logpath,$timezone,5,$lang['clean']); + enter_logfile($logpath,$timezone,4,$lang['clean']); $start=0; $break=200; $clientdblist=array(); @@ -50,7 +50,7 @@ function clean($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$cleancli if ($start == 100000 || $count_tsuser['count'] <= $start) { break; } - check_shutdown($timezone); usleep($slowmode); + check_shutdown($timezone,$logpath); usleep($slowmode); } foreach($clientdblist as $uuidts) { $single_uuid = $uuidts['client_unique_identifier']->toString(); @@ -68,8 +68,8 @@ function clean($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$cleancli } unset($uidarrts); - enter_logfile($logpath,$timezone,5," ".sprintf($lang['cleants'], $countts, $count_tsuser['count'])); - enter_logfile($logpath,$timezone,5," ".sprintf($lang['cleanrs'], $countrs)); + enter_logfile($logpath,$timezone,4," ".sprintf($lang['cleants'], $countts, $count_tsuser['count'])); + enter_logfile($logpath,$timezone,4," ".sprintf($lang['cleanrs'], $countrs)); if(isset($deleteuuids)) { $alldeldata = ''; @@ -84,7 +84,7 @@ function clean($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$cleancli $sqlmsg .= print_r($mysqlcon->errorInfo()); $sqlerr++; } else { - enter_logfile($logpath,$timezone,5," ".sprintf($lang['cleandel'], $countdel)); + enter_logfile($logpath,$timezone,4," ".sprintf($lang['cleandel'], $countdel)); if($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp='$nowtime' WHERE job_name='check_clean'") === false) { enter_logfile($logpath,$timezone,2,"clean 6:".print_r($mysqlcon->errorInfo())); $sqlmsg .= print_r($mysqlcon->errorInfo()); @@ -93,7 +93,7 @@ function clean($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$cleancli } } } else { - enter_logfile($logpath,$timezone,2," ".$lang['cleanno']); + enter_logfile($logpath,$timezone,4," ".$lang['cleanno']); if($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp='$nowtime' WHERE job_name='check_clean'") === false) { enter_logfile($logpath,$timezone,2,"clean 7:".print_r($mysqlcon->errorInfo())); $sqlmsg .= print_r($mysqlcon->errorInfo()); diff --git a/jobs/get_avatars.php b/jobs/get_avatars.php index 8f6bc12..80d557e 100644 --- a/jobs/get_avatars.php +++ b/jobs/get_avatars.php @@ -6,7 +6,7 @@ function get_avatars($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$lo $count = 0; try { - check_shutdown($timezone); usleep($slowmode); + check_shutdown($timezone,$logpath); usleep($slowmode); $tsfilelist = $ts3->channelFileList($cid="0", $cpw="", $path="/"); } catch (Exception $e) { if ($e->getCode() != 1281) { @@ -29,7 +29,7 @@ function get_avatars($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$lo if (!isset($fsfilelistarray[$uuidasbase16.'.png']) || $tsfile['datetime']>$fsfilelistarray[$uuidasbase16.'.png']) { if (substr($tsfile['name'],0,7) == 'avatar_') { try { - check_shutdown($timezone); usleep($slowmode); + check_shutdown($timezone,$logpath); usleep($slowmode); $avatar = $ts3->transferInitDownload($clientftfid="5",$cid="0",$name=$fullfilename,$cpw="", $seekpos=0); $transfer = TeamSpeak3::factory("filetransfer://" . $avatar["host"] . ":" . $avatar["port"]); $tsfile = $transfer->download($avatar["ftkey"], $avatar["size"]); diff --git a/jobs/update_groups.php b/jobs/update_groups.php index 58364fa..6dc2bbb 100644 --- a/jobs/update_groups.php +++ b/jobs/update_groups.php @@ -5,7 +5,7 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$ $sqlerr = 0; try { - check_shutdown($timezone); usleep($slowmode); + check_shutdown($timezone,$logpath); usleep($slowmode); $iconlist = $ts3->channelFileList($cid="0", $cpw="", $path="/icons/"); } catch (Exception $e) { if ($e->getCode() != 1281) { @@ -21,7 +21,7 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$ } try { - check_shutdown($timezone); usleep($slowmode); + check_shutdown($timezone,$logpath); usleep($slowmode); $ts3->serverGroupListReset(); $ts3groups = $ts3->serverGroupList(); } catch (Exception $e) { @@ -56,7 +56,7 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$ if (!isset($sqlhisgroup['0']) || $sqlhisgroup['0']['iconid'] != $sIconId || $iconarr["i".$sIconId] > $sqlhisgroup['0']['icondate']) { if($sIconId > 600) { try { - check_shutdown($timezone); usleep($slowmode); + check_shutdown($timezone,$logpath); usleep($slowmode); enter_logfile($logpath,$timezone,5,"Download new ServerIcon"); $sIconFile = $ts3->iconDownload(); if(file_put_contents(substr(dirname(__FILE__),0,-4) . "icons/servericon.png", $sIconFile) === false) { @@ -71,7 +71,7 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$ if (!isset($sqlhisgroup['0'])) { $insertgroups[] = array( "sgid" => "0", - "sgidname" => "ServerIcon", + "sgidname" => $mysqlcon->quote("ServerIcon", ENT_QUOTES), "iconid" => $sIconId, "icon" => $sIconFile, "icondate" => $iconarr["i".$sIconId] @@ -79,7 +79,7 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$ } else { $updategroups[] = array( "sgid" => "0", - "sgidname" => "ServerIcon", + "sgidname" => $mysqlcon->quote("ServerIcon", ENT_QUOTES), "iconid" => $sIconId, "icon" => $sIconFile, "icondate" => $iconarr["i".$sIconId] @@ -91,7 +91,7 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$ foreach ($ts3groups as $servergroup) { $tsgroupids[] = $servergroup['sgid']; $sgid = $servergroup['sgid']; - $sgname = str_replace('\\', '\\\\', htmlspecialchars($servergroup['name'], ENT_QUOTES)); + $sgname = $mysqlcon->quote($servergroup['name'], ENT_QUOTES); $gefunden = 2; $iconid = $servergroup['iconid']; $iconid = ($iconid < 0) ? (pow(2, 32)) - ($iconid * -1) : $iconid; @@ -148,7 +148,11 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$ if (isset($insertgroups)) { $allinsertdata = ''; foreach ($insertgroups as $insertarr) { - $allinsertdata = $allinsertdata . "('" . $insertarr['sgid'] . "', '" . $insertarr['sgidname'] . "', '" . $insertarr['iconid'] . "', '" . $insertarr['icondate'] . "'),"; + if( $insertarr['iconid'] == 0) { + //enter_logfile($logpath,$timezone,6,"IconID is 0 for (servergroup) ".$insertarr['sgidname']." (".$insertarr['sgid'].")"); + continue; + } + $allinsertdata = $allinsertdata . "('" . $insertarr['sgid'] . "', " . $insertarr['sgidname'] . ", '" . $insertarr['iconid'] . "', '" . $insertarr['icondate'] . "'),"; } $allinsertdata = substr($allinsertdata, 0, -1); if ($allinsertdata != '') { @@ -167,7 +171,7 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$ $allupdatedate = ''; foreach ($updategroups as $updatedata) { $allsgids = $allsgids . "'" . $updatedata['sgid'] . "',"; - $allupdatesgid = $allupdatesgid . "WHEN '" . $updatedata['sgid'] . "' THEN '" . $updatedata['sgidname'] . "' "; + $allupdatesgid = $allupdatesgid . "WHEN '" . $updatedata['sgid'] . "' THEN " . $updatedata['sgidname'] . " "; $allupdateiconid = $allupdateiconid . "WHEN '" . $updatedata['sgid'] . "' THEN '" . $updatedata['iconid'] . "' "; $allupdatedate = $allupdatedate . "WHEN '" . $updatedata['sgid'] . "' THEN '" . $updatedata['icondate'] . "' "; } diff --git a/languages/core_ar.php b/languages/core_ar.php new file mode 100644 index 0000000..0844dc7 --- /dev/null +++ b/languages/core_ar.php @@ -0,0 +1,364 @@ + added to the Ranksystem now."; +$lang['changedbid'] = "User %s (unique Client-ID: %s) got a new TeamSpeak Client-database-ID (%s). Update the old Client-database-ID (%s) and reset collected times!"; +$lang['crawl'] = "البحث عن المستخدمين المتواجدين وحساب التفاعل"; +$lang['clean'] = "البحث عن المستخدمين الذين من المفروض حذفهم"; +$lang['cleanc'] = "تصفية المستخدمين"; +$lang['cleancdesc'] = "With this function the old clients in the Ranksystem get deleted.

    To this end, the Ranksystem sychronized with the TeamSpeak database. Clients, which do not exist in TeamSpeak, will be deleted from the Ranksystem.

    This function is only enabled when the 'Slowmode' is deactivated!


    For automatic adjustment of the TeamSpeak database the ClientCleaner can be used:
    http://ts-n.net/clientcleaner.php"; +$lang['cleandel'] = "There were %s clients deleted out of the Ranksystem database, cause they were no longer existing in the TeamSpeak database."; +$lang['cleanno'] = "ليس هناك شيء ليتم مسحه "; +$lang['cleanp'] = "مدى التصفية"; +$lang['cleanpdesc'] = "Set a time that has to elapse before the 'clean clients' runs next.

    Set a time in seconds.

    Recommended is once a day, cause the client cleaning needs much time for bigger databases."; +$lang['cleanrs'] = "المستخدمون في قاعدة باينات نظام الرتب: %s"; +$lang['cleants'] = "المستخدمين الذين تم العثور عليهم في قاعدة بايانات التيم سبيك: %s (of %s)"; +$lang['days'] = "المئوية %d"; +$lang['dbconerr'] = "فشل الدخول الى قاعدة بيانات قاعدة بيانات: "; +$lang['delcldgrpif'] = "خلل عند حذف المعلومات من مجموعات السيرفر: %s"; +$lang['delcldgrpsc'] = "Knowledge about servergroups for %s User successfully removed."; +$lang['delclientsif'] = "%s Clients deleted out of the Ranksystem database!"; +$lang['delclientssc'] = "%s Clients successfully deleted out of the Ranksystem database!"; +$lang['errlogin'] = "اسم المستخدم او كلمة المرور خاطئة! حاول مجددا..."; +$lang['errlogin2'] = "Brute force protection: Try it again in %s seconds!"; +$lang['errlogin3'] = "Brute force protection: To much misstakes. Banned for 300 Seconds!"; +$lang['error'] = "خلل "; +$lang['errremgrp'] = "Error while removing user with unique Client-ID %s out of the servergroup with servergroup-database-ID %s!"; +$lang['errremdb'] = "Error while removing user with unique Client-ID %s out of the Ranksystem database!"; +$lang['errsel'] = "Error while choosing the selections with
    selected client: %s
    option 'delete clients': %s
    option 'sum. online time': %s"; +$lang['errukwn'] = "حدث خلل غير معروف!"; +$lang['errupcount'] = "Error while renewing the summary online time of %s by user with the unique Client-ID %s"; +$lang['highest'] = "تم الوصول الى اعلى رتبة"; +$lang['install'] = "Installation"; +$lang['instdb'] = "تنصيب قاعدة البيانات"; +$lang['instdbsuc'] = "قاعدة البيانات %s أنشات بنجاح."; +$lang['isntwicfg'] = "Can't save the database configuration! Please edit the 'other/dbconfig.php' with a chmod 0777 and try again after."; +$lang['isntwicfg2'] = "Configurate Webinterface"; +$lang['isntwichm'] = "Write Permissions failed on folder \"%s\". Please give them a chmod 777 and try to start the Ranksystem again."; +$lang['isntwidbhost'] = "DB Hostaddress:"; +$lang['isntwidbhostdesc'] = "عنوان خادم قاعدة البيانات
    (IP or DNS)"; +$lang['isntwidbmsg'] = "خلل في قاعدة البيانات: "; +$lang['isntwidbname'] = "DB Name:"; +$lang['isntwidbnamedesc'] = "اسم قاعدة البيانات"; +$lang['isntwidbpass'] = "DB Password:"; +$lang['isntwidbpassdesc'] = "كلمة مرور قاعدة البيانات"; +$lang['isntwidbtype'] = "DB Type:"; +$lang['isntwidbtypedesc'] = "Database type

    You have to install the needed PDO Driver.
    For more informations have look at the requirements on http://ts-n.net/ranksystem.php"; +$lang['isntwidbusr'] = "DB User:"; +$lang['isntwidbusrdesc'] = "User to access the database"; +$lang['isntwidel'] = "Please delete the file 'install.php' from your webserver and open the %s to configure the Ranksystem!"; +$lang['isntwiusr'] = "المستخدم للوحة التحكم انشئ بنجاح"; +$lang['isntwiusrcr'] = "Create Webinterface-User"; +$lang['isntwiusrdesc'] = "ادخل الاسم وكلمة المرور للدخول الى لوحة التحكم . بإستخدام لوحة التحكم يمكنك التعديل على نظام الرتب"; +$lang['isntwiusrh'] = "Access - Webinterface"; +$lang['listacsg'] = "actual servergroup"; +$lang['listcldbid'] = "Client-database-ID"; +$lang['listexgrp'] = "Will not conside for the Ranksystem (servergroup exception)."; +$lang['listexuid'] = "Will not conside for the Ranksystem (client exception)."; +$lang['listip'] = "IP address"; +$lang['listnick'] = "اسم المستخدم"; +$lang['listnxsg'] = "الرتبة التالية"; +$lang['listnxup'] = "الترفيع التالي"; +$lang['listrank'] = "رتبة"; +$lang['listseen'] = "اخر ظهور"; +$lang['listsuma'] = "sum. وقت التفاعل"; +$lang['listsumi'] = "sum. وقت عدم التواجد"; +$lang['listsumo'] = "sum. وقت التواجد"; +$lang['listuid'] = "unique Client-ID"; +$lang['login'] = "Login"; +$lang['nocount'] = "User %s (unique Client-ID: %s; Client-database-ID %s) is a query-user or is several times online (only first connection counts) -> this will not count!"; +$lang['noentry'] = "لم يتم العثور على اي مدخلات"; +$lang['pass'] = "كلمة المرور"; +$lang['queryname'] = "اسم البوت الاول قيد الاستخدام جاري المحاولة باسم البوت الثاني"; +$lang['sccrmcld'] = "User with unique Client-ID %s successfull removed from the Ranksystem database."; +$lang['sccupcount'] = "User with the unique Client-ID %s successfull overwritten with a summary online time of %s."; +$lang['setontime'] = "sum. online time"; +$lang['setontimedesc'] = "Enter a new summary online time, which should be set to the previous selected clients. With this the old summary online gets overwritten.

    The entered summary online time will be considered for the rank up."; +$lang['sgrpadd'] = "Grant servergroup %s to user %s (unique Client-ID: %s; Client-database-ID %s)."; +$lang['sgrprerr'] = "It happened a problem with the servergroup of the user %s (unique Client-ID: %s; Client-database-ID %s)!"; +$lang['sgrprm'] = "تم حذف مجموعة السيرفر %s من المستخدم %s (unique Client-ID: %s; Client-database-ID %s)."; +$lang['stix0001'] = "حالة السيرفر"; +$lang['stix0002'] = "مجموع المستخدمين"; +$lang['stix0003'] = "عرض التفاصيل"; +$lang['stix0004'] = "مجموع وقت التواجد لكل المستخدمين"; +$lang['stix0005'] = "اضهار الاول في كل الاوقات"; +$lang['stix0006'] = "اضهار الاول لهذا الشهر"; +$lang['stix0007'] = "اضهار الاول لهذا الاسبوع"; +$lang['stix0008'] = "مدة استعمال السيرفر"; +$lang['stix0009'] = "في اخر 7 ايام"; +$lang['stix0010'] = "في اخر 30 يوم"; +$lang['stix0011'] = "في اخر 24 ساعة"; +$lang['stix0012'] = "حدد المدة"; +$lang['stix0013'] = "قبل يوم"; +$lang['stix0014'] = "قبل اسبوع"; +$lang['stix0015'] = "قبل شهر"; +$lang['stix0016'] = "Active / inactive time (of all clients)"; +$lang['stix0017'] = "الاصدارات (كل المستخدمين)"; +$lang['stix0018'] = "القوميات (لكل المستخدمين)"; +$lang['stix0019'] = "Platforms (of all clients)"; +$lang['stix0020'] = "Current statistics"; +$lang['stix0023'] = "حالة السيرفر"; +$lang['stix0024'] = "متواجد"; +$lang['stix0025'] = "غير متواجد"; +$lang['stix0026'] = " (Online / Max)"; +$lang['stix0027'] = "عدد القنوات"; +$lang['stix0028'] = "Average server ping"; +$lang['stix0029'] = "Total bytes received"; +$lang['stix0030'] = "Total bytes sent"; +$lang['stix0031'] = "وقت عمل السيرفر"; +$lang['stix0032'] = "قبل ايقاف التشغيل:"; +$lang['stix0033'] = "Days 00, Hours 00, Mins 00, Secs 00"; +$lang['stix0034'] = "Average packet loss"; +$lang['stix0035'] = "Overall statistics"; +$lang['stix0036'] = "اسم الخادم"; +$lang['stix0037'] = "عنوان الخادم (Host Address : Port)"; +$lang['stix0038'] = "كلمة مرور الخادم"; +$lang['stix0039'] = "لا (الخادم عام)"; +$lang['stix0040'] = "نعم (الخادم خاص)"; +$lang['stix0041'] = "Server ID"; +$lang['stix0042'] = "Server platform"; +$lang['stix0043'] = "اصدار السيرفر"; +$lang['stix0044'] = "تاريخ انشاء الخادم (يوم/شهر/سنة)"; +$lang['stix0045'] = "ابلاغ الى جدو السيرفر"; +$lang['stix0046'] = "مفعل"; +$lang['stix0047'] = "غير مفعل"; +$lang['stix0048'] = "عدد غير كافي من المعلومات حتى الان"; +$lang['stix0049'] = "وقت التواجد لكل المستخدمين / شهر"; +$lang['stix0050'] = "وقت التواجد لكل المستخدمين / اسبوع"; +$lang['stix0051'] = "لقد فشل التيم سبيك لذا لن يكون هناك عملية انشاء"; +$lang['stmy0001'] = "حالتي"; +$lang['stmy0002'] = "رتبة"; +$lang['stmy0003'] = "Database ID:"; +$lang['stmy0004'] = "Unique ID:"; +$lang['stmy0005'] = "عدد مرات الدخول الى السيرفر:"; +$lang['stmy0006'] = "تاريخ بدء الحالة:"; +$lang['stmy0007'] = "المجموع الكلي لوقت التواجد:"; +$lang['stmy0008'] = "وقت التواجد للايام الـ7 الاخيرة:"; +$lang['stmy0009'] = "وقت التواجد للايام الـ30 الاخيرة:"; +$lang['stmy0010'] = "اكملت الانجازات:"; +$lang['stmy0011'] = "Time achievement progress"; +$lang['stmy0012'] = "Time: Legendary"; +$lang['stmy0013'] = "ساعات %s لانه لديك وقت تواجد"; +$lang['stmy0014'] = "Progress completed"; +$lang['stmy0015'] = "Time: Gold"; +$lang['stmy0016'] = "Completed for Legendary %"; +$lang['stmy0017'] = "Time: Silver"; +$lang['stmy0018'] = "Completed for Gold %"; +$lang['stmy0019'] = "Time: Bronze"; +$lang['stmy0020'] = "Completed for Silver %"; +$lang['stmy0021'] = "Time: Unranked"; +$lang['stmy0022'] = "Completed for Bronze %"; +$lang['stmy0023'] = "Connection achievement progress"; +$lang['stmy0024'] = "Connects: اسطوري"; +$lang['stmy0025'] = "مرات الى سيرفر التيم سبيك %s لانك قمت بالدخول"; +$lang['stmy0026'] = "Connects: ذهبي"; +$lang['stmy0027'] = "Connects: فضي"; +$lang['stmy0028'] = "Connects: برونزي"; +$lang['stmy0029'] = "Connects: لايوجد رتبة"; +$lang['stmy0030'] = "Progress next servergroup"; +$lang['stnv0001'] = "اخبار الخادم"; +$lang['stnv0002'] = "اغلاق"; +$lang['stnv0003'] = "انعاش معلومات المستخدم"; +$lang['stnv0004'] = "Only use this refresh, when your TS3 information got changed, such as your TS3 username"; +$lang['stnv0005'] = "يعمل عندما تكون داخل سيرفر الـتيمسبيك في نفس الوقت"; +$lang['stnv0006'] = "إنعاش"; +$lang['stnv0007'] = "منطقة النزال - مضمون الصفحة"; +$lang['stnv0008'] = "يمكنك تحدي المستخدمين الاخرين في معركة بين اثنين او بين فريقين"; +$lang['stnv0009'] = "في خلال المعركة سيتم حساب وقت التواجد للاعبين او للفريقين"; +$lang['stnv0010'] = "عند انتهاء المعركة المستخدم او الفريق الذي لديه اعلى وقت تواحد سيعتبر الفائز"; +$lang['stnv0011'] = "(الوقت الاعتيادي للمعركة هو 48 ساعة)"; +$lang['stnv0012'] = "المستخدم او الفريق الفائز يحصل على مبلغ يمكنه استخدامه عندما يريد"; +$lang['stnv0013'] = "سيتم اضهاره على لوحة My statistics "; +$lang['stnv0014'] = "( يمكن ان يكون تسريع وقت تواجد لمدة 8 ساعات, زيادة وقت التواجد 4 ساعات اضافية , الخ "; +$lang['stnv0015'] = "يمكن استخدام هذه التسريعات للصعود على سبيل المثال فوق افضل المستخدمين للاسبوع"; +$lang['stnv0016'] = "غير متوفر"; +$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; +$lang['stnv0018'] = "Please connect to the TS3 Server and then Refresh your Session by pressing the blue Refresh Button at the top-right corner."; +$lang['stnv0019'] = "My statistics - Page content"; +$lang['stnv0020'] = "تحتوي هذا الصفحة على مختصر لحالتك الخاصة ومجموع وقت تواجدك على السيرفر"; +$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; +$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; +$lang['stnv0023'] = "The sum inside of the donut charts may differ to the amount of 'Total user'. The reason is that this data weren't collected with older versions of the Ranksystem."; +$lang['stnv0024'] = "نظام الرتب - الحالة"; +$lang['stnv0025'] = "تحديد المدخلات"; +$lang['stnv0026'] = "الكل"; +$lang['stnv0027'] = "المعلومات على هذه الصفحة قد تكون منتهية الصلاحية! يبدو ان نظام الرتب لم يعد متصلا بسيرفر التيم سبيك"; +$lang['stnv0028'] = "(انت غير متصل بسيرفر التيم سبيك!)"; +$lang['stnv0029'] = "List Rankup"; +$lang['stnv0030'] = "لغات نظام الرتب"; +$lang['stnv0031'] = "About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID."; +$lang['stnv0032'] = "You can also use a view filter options (see below). Enter the filter also inside the search field."; +$lang['stnv0033'] = "Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern."; +$lang['stnv0034'] = "Also it is possible to combine multiple filters. Enter this consecutively inside the search field."; +$lang['stnv0035'] = "Example:
    filter:nonexcepted:TeamSpeakUser"; +$lang['stnv0036'] = "Show only clients, which are excepted (client, servergroup or channel exception)."; +$lang['stnv0037'] = "Show only clients, which are not excepted."; +$lang['stnv0038'] = "Show only clients, which are online."; +$lang['stnv0039'] = "Show only clients, which are not online."; +$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.
    Replace GROUPID with the wished servergroup ID."; +$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
    Replace OPERATOR with '<' or '>' or '=' or '!='.
    And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
    Full example: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = "Show only clients, which are from defined country.
    Replace TS3-COUNTRY-CODE with the wished country.
    For list of codes google for ISO 3166-1 alpha-2"; +$lang['stri0001'] = "معلومات نظام الرتب"; +$lang['stri0002'] = "ماهو نظام الرتب؟"; +$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; +$lang['stri0004'] = "من الذي اخترع نظام الرتب؟"; +$lang['stri0005'] = "متى تم اطلاق نظام الرتب ؟"; +$lang['stri0006'] = "اول اصدار اولي: 05/10/2014."; +$lang['stri0007'] = "اول اصدار تجريبي: 01/02/2015."; +$lang['stri0008'] = "يمكنك رؤية اخر اصدار على Ranksystem Website."; +$lang['stri0009'] = "كيف تم انشاء نظام الرتب ؟"; +$lang['stri0010'] = "The Ranksystem is coded in"; +$lang['stri0011'] = "It uses also the following libraries:"; +$lang['stri0012'] = "شكر خاص الى:"; +$lang['stri0013'] = "sergey, Arselopster & DeviantUser - for russian translation"; +$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; +$lang['stri0015'] = "ZanK - for italian translation"; +$lang['stri0016'] = "DeStRoYzR & Jehad - for initialisation arabic translation"; +$lang['stri0017'] = "SakaLuX - for initialisation romanian translation"; +$lang['sttw0001'] = "افضل مستخدمين"; +$lang['sttw0002'] = "لهذا الاسبوع"; +$lang['sttw0003'] = "مع %s ساعات وقت تواجد"; +$lang['sttw0004'] = "Top 10 compared"; +$lang['sttw0005'] = "Hours (Defines 100 %)"; +$lang['sttw0006'] = "%s hours (%s%)"; +$lang['sttw0007'] = "Top 10 Statistics"; +$lang['sttw0008'] = "Top 10 vs others in online time"; +$lang['sttw0009'] = "Top 10 vs others in active time"; +$lang['sttw0010'] = "Top 10 vs others in inactive time"; +$lang['sttw0011'] = "Top 10 (in hours)"; +$lang['sttw0012'] = "(in hours) Other users %s"; +$lang['sttw0013'] = "With %s hours active time"; +$lang['sttm0001'] = "لهذا الشهر"; +$lang['stta0001'] = "لكل الوقت"; +$lang['upinf'] = "يتوفر اصدار جديد من نظام الرتب; ابلغ المستخدمين في السيرفر"; +$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]http://ts-n.net/ranksystem.php[/URL]."; +$lang['upsucc'] = "Database update successfully executed."; +$lang['upuser'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s)."; +$lang['upuserboost'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s) [BOOST %sx]."; +$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; +$lang['upusrinf'] = "المستخدم %s المستخدمح"; +$lang['user'] = "اسم المستخدم"; +$lang['wiaction'] = "action"; +$lang['wiboost'] = "boost"; +$lang['wiboostdesc'] = "Give an user on your TeamSpeak server a servergroup (have to be created manually), which you can declare here as boost group. Define also a factor which should be used (for example 2x) and a time, how long the boost should be rated.
    The higher the factor, the faster an user reaches the next higher rank.
    Is the time expired, the boost servergroup get automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.

    servergroup ID => factor => time (in seconds)

    Each entry have to separate from next with a comma.

    Example:
    12=>2=>6000,13=>3=>2500,14=>5=>600

    On this an user in servergroup 12 get the factor 2 for the next 6000 seconds, an user in servergroup 13 get the factor 3 for 2500 seconds, and so on..."; +$lang['wibot1'] = "Ranksystem Bot should be stopped. Check the log below for more information!"; +$lang['wibot2'] = "Ranksystem Bot should be started. Check the log below for more information!"; +$lang['wibot3'] = "Ranksystem Bot should be restarted. Check the log below for more information!"; +$lang['wibot4'] = "Start / Stop Ranksystem Bot"; +$lang['wibot5'] = "Start Bot"; +$lang['wibot6'] = "Stop Bot"; +$lang['wibot7'] = "Restart Bot"; +$lang['wibot8'] = "Ranksystem log (extract):"; +$lang['wibot9'] = "Fill out all mandatory fields before starting the Ranksystem Bot!"; +$lang['wichdbid'] = "Client-database-ID reset"; +$lang['wichdbiddesc'] = "Reset the online time of an user, if his TeamSpeak Client-database-ID changed.

    Example:
    If a clients gets removed from the TeamSpeak server, it gets a new Client-database-ID with the next connect to the server."; +$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the Core Settings. Especially check the config 'rank up'!"; +$lang['widaform'] = "نظام التاريخ"; +$lang['widaformdesc'] = "اختر كيفية ضهور التاريخ.

    Example:
    %a ايام, %h ساعات, %i دقائق, %s ثوان"; +$lang['widbcfgsuc'] = "تعديلات قاعدة البيانات حفظت بنجاح"; +$lang['widbcfgerr'] = "'other/dbconfig.php'خلل عند حفظ تعديلات قاعدة البيانات فشل الاتصال مع "; +$lang['widelcld'] = "حذف المستخدمين"; +$lang['widelcldgrp'] = "اعادة انشاء المجاميع"; +$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

    With this function you can remove once time the knowledge of given servergroups. In effect the ranksystem try to give all clients (which are on the TS3 server online) the servergroup of the actual rank.
    For each client, which gets the group or stay in group, the Ranksystem remember this like described at beginning.

    This function can be helpful, when user are not in the servergroup, they should be for the defined online time.

    Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause he can't remember ;-)"; +$lang['widelclddesc'] = "Delete the before selected clients out of the Ranksystem database.

    With this deletion are the clients on the TeamSpeak Server untouched."; +$lang['widelsg'] = "حذف من مجموعات السيرفر"; +$lang['widelsgdesc'] = "Choose if the clients should also be removed out of the last known servergroup, when you delete clients out of the Ranksystem database.

    It will only considered servergroups, which concerned the Ranksystem"; +$lang['wideltime'] = "وقت الحذف"; +$lang['wideltimedesc'] = "Clean old clients out of the Ranksystem database.
    Entry a time in seconds which a client was not seen to delete it.

    0 - deletes all clients out of the Ranksystem

    The Userdatas on the TeamSpeak server are with this untouched!"; +$lang['wiexcid'] = "Channel-Ausnahmen"; +$lang['wiexciddesc'] = "A comma separated list of the channel-IDs that are not to participate in the Ranksystem.

    Stay users in one of the listed channels, the time there will be completely ignored. There is neither the online time, yet the idle time counted.

    Sense does this function only with the mode 'online time', cause here could be ignored AFK channels for example.
    With the mode 'active time', this function is useless because as would be deducted the idle time in AFK rooms and thus not counted anyway.

    Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user dows no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; +$lang['wiexgrp'] = "servergroup exception"; +$lang['wiexgrpdesc'] = "A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
    User in at least one of this servergroups IDs will be ignored for the rank up."; +$lang['wiexuid'] = "استثناء المستخدم"; +$lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
    User in this list will be ignored for the rank up."; +$lang['wigrptime'] = "ترفيع رتبة"; +$lang['wigrptimedesc'] = "Define here after which time a user should get automatically a predefined servergroup.

    time (seconds)=>servergroup ID

    Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.

    Each entry have to separate from next with a comma.

    The time must be entered cumulative

    Example:
    60=>9,120=>10,180=>11

    On this a user get after 60 seconds the servergroup 9, in turn after 60 seconds the servergroup 10, and so on..."; +$lang['wihladm'] = "List Rankup (Admin-Mode)"; +$lang['wihlcfg'] = "خيارات النواة"; +$lang['wihldb'] = "اعدادات قاعدة البيانات"; +$lang['wihlmsg'] = "Message settings"; +$lang['wihlsty'] = "Stats page settings"; +$lang['wihlts'] = "TeamSpeak settings"; +$lang['wihlvs'] = "Various settings"; +$lang['wiignidle'] = "Ignoriere Idle"; +$lang['wiignidledesc'] = "Define a period, up to which the idle time of an user will be ignored.

    When a client does not do anything on the server (=idle), this time is noted by the Ranksystem. With this feature the idle time of an user will not be counted until the defined limit. Only when the defined limit is exceeded, it counts from that date for the Ranksystem as idle time.

    This function plays only in conjunction with the mode 'active time' a role.

    Meaning the function is e.g. to evaluate the time of listening in conversations as activity.

    0 = disable the feature

    Example:
    Ignore idle = 600 (seconds)
    A client has an idle of 8 minuntes
    consequence:
    8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to over 12 minutes so the time is over 10 minutes, and in this case 2 minutes would be counted as idle time."; +$lang['wilog'] = "Logpath"; +$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

    Example:
    /var/logs/ranksystem/

    Be sure, the webuser has the write-permissions to the logpath."; +$lang['wimsgmsg'] = "Message"; +$lang['wimsgmsgdesc'] = "Define a message, which will be send to an user, when he rises the next higher rank.

    This message will be send via TS3 private message. So every know bb-code could be used, which also works for a normal private message.
    http://ts-n.net/lexicon.php?showid=97#lexindex

    Furthermore, the previously spent time can be expressed by arguments:
    %1\$s - days
    %2\$s - hours
    %3\$s - minutes
    %4\$s - seconds

    Example:
    Hey,\\nyou reached a higher rank, since you already connected for %1\$s days, %2\$s hours and %3\$s minutes to our TS3 server.[B]Keep it up![/B] ;-)"; +$lang['wilogout'] = "تسجيل الخروج"; +$lang['wimsgusr'] = "Rank up notification"; +$lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "Database"; +$lang['winav3'] = "Core"; +$lang['winav4'] = "Other"; +$lang['winav5'] = "Message"; +$lang['winav6'] = "Stats page"; +$lang['winav7'] = "Administrate"; +$lang['winav8'] = "Start / Stop Bot"; +$lang['winav9'] = "Update available!"; +$lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; +$lang['wiselcld'] = "select clients"; +$lang['wiselclddesc'] = "Select the clients by the last known username. For this you only have to start typing.
    Multiple selections are comma separated, which does the system automatically.

    With the selection you can choose with the next step an action."; +$lang['wishcolas'] = "actual servergroup"; +$lang['wishcolasdesc'] = "Show column 'actual servergroup' in stats/list_rankup.php"; +$lang['wishcolat'] = "active time"; +$lang['wishcolatdesc'] = "Show column 'sum. active time' in stats/list_rankup.php"; +$lang['wishcolcld'] = "Client-name"; +$lang['wishcolclddesc'] = "Show column 'Client-name' in stats/list_rankup.php"; +$lang['wishcoldbid'] = "database-ID"; +$lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in stats/list_rankup.php"; +$lang['wishcolit'] = "idle time"; +$lang['wishcolitdesc'] = "Show column 'sum idle time' in stats/list_rankup.php"; +$lang['wishcolls'] = "last seen"; +$lang['wishcollsdesc'] = "Show column 'last seen' in stats/list_rankup.php"; +$lang['wishcolnx'] = "next rank up"; +$lang['wishcolnxdesc'] = "Show column 'next rank up' in stats/list_rankup.php"; +$lang['wishcolot'] = "online time"; +$lang['wishcolotdesc'] = "Show column 'sum. online time' in stats/list_rankup.php"; +$lang['wishcolrg'] = "rank"; +$lang['wishcolrgdesc'] = "Show column 'rank' in stats/list_rankup.php"; +$lang['wishcolsg'] = "next servergroup"; +$lang['wishcolsgdesc'] = "Show column 'next servergroup' in stats/list_rankup.php"; +$lang['wishcoluuid'] = "Client-ID"; +$lang['wishcoluuiddesc'] = "Show column 'unique Client-ID' in stats/list_rankup.php"; +$lang['wishexcld'] = "excepted client"; +$lang['wishexclddesc'] = "Show clients in list_rankup.php,
    which are excluded and therefore not participate in the Ranksystem."; +$lang['wishexgrp'] = "excepted groups"; +$lang['wishexgrpdesc'] = "Show clients in list_rankup.php, which are in the list 'client exception' and shouldn't be conside for the Ranksystem."; +$lang['wishhicld'] = "Clients in highest Level"; +$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem."; +$lang['wisupidle'] = "Mode"; +$lang['wisupidledesc'] = "There are two modes, as time can be counted and can then apply for a rank increase. 1) online time: Here the pure online time of the user is taken into account (see column 'sum. online time' in the 'stats/list_rankup.php') 2) active time: This will be deducted from the online time of a user, the inactive time (idle) (see column 'sum. active time' in the 'stats/list_rankup.php'). A change of mode with an already longer running database is not recommended, but may work."; +$lang['wisvconf'] = "save"; +$lang['wisvsuc'] = "Changes successfully saved!"; +$lang['wisvres'] = "You need to restart the Ranksystem before the changes will take effect!"; +$lang['witime'] = "Timezone"; +$lang['witimedesc'] = "Select the timezone the server is hosted."; +$lang['wits3dch'] = "Default Channel"; +$lang['wits3dchdesc'] = "The channel-ID, the bot should connect with.

    The Bot will join this channel after connecting to the TeamSpeak server."; +$lang['wits3host'] = "TS3 Hostaddress"; +$lang['wits3hostdesc'] = "TeamSpeak 3 Server address
    (IP oder DNS)"; +$lang['wits3sm'] = "Slowmode"; +$lang['wits3smdesc'] = "With the Slowmode you can reduce \"spam\" of query commands to the TeamSpeak server. This prevent bans in case of flood.
    TeamSpeak Query commands get delayed with this function.

    !!! ALSO IT REDUCE THE CPU USAGE !!!

    The activation is not recommended, if not required. The delay increases the duration of the Bot, which makes it imprecisely."; +$lang['wits3qnm'] = "Botname"; +$lang['wits3qnm2'] = "2nd Botname"; +$lang['wits3qnm2desc'] = "A fallback Botname, if the first one is already in use."; +$lang['wits3qnmdesc'] = "The name, with this the query-connection will be established.
    You can name it free."; +$lang['wits3querpw'] = "TS3 Query-Password"; +$lang['wits3querpwdesc'] = "TeamSpeak 3 query password
    Password for the query user."; +$lang['wits3querusr'] = "TS3 Query-User"; +$lang['wits3querusrdesc'] = "TeamSpeak 3 query username
    Default is serveradmin
    Of course, you can also create an additional serverquery account only for the Ranksystem.
    The needed permissions you find on:
    http://ts-n.net/ranksystem.php"; +$lang['wits3query'] = "TS3 Query-Port"; +$lang['wits3querydesc'] = "TeamSpeak 3 query port
    Default is 10011 (TCP)
    If its not default, you should find it in your 'ts3server.ini'."; +$lang['wits3voice'] = "TS3 Voice-Port"; +$lang['wits3voicedesc'] = "TeamSpeak 3 voice port
    Default is 9987 (UDP)
    This is the port, you uses also to connect with the TS3 Client."; +$lang['wiupcheck'] = "Update-Check"; +$lang['wiupcheckdesc'] = "If the Update-Check is enable, the listed user gets a notification with a private text message, once an update is available."; +$lang['wiuptime'] = "Interval"; +$lang['wiuptimedesc'] = "Enter here how much seconds have to gone till the Ranksystem should check for available updates.
    Attention, for each check the listed user gets a notification. If no one of the listed users is online, the Ranksystem will try to notificate with the next interval."; +$lang['wiupuid'] = "Recipient"; +$lang['wiupuiddesc'] = "A comma separate list of unique Client-IDs, which shoud be informed on the TeamSpeak via private message for available updates."; +$lang['wivlang'] = "Language"; +$lang['wivlangdesc'] = "Language for the Ranksystem

    de - Deutsch
    en - english
    it - italiano
    ru - русский"; +?> \ No newline at end of file diff --git a/languages/core_de.php b/languages/core_de.php index 8232eda..b8cc52a 100644 --- a/languages/core_de.php +++ b/languages/core_de.php @@ -1,359 +1,364 @@ wurde nun zum Ranksystem hinzugefügt."; -$lang['alrup'] = "Das Ranksystem ist bereits up to date. Bitte lösche diese Datei von deinem Webserver!"; -$lang['changedbid'] = "User %s (eindeutige Client-ID: %s) hat eine neue TeamSpeak Client-Datenbank-ID (%s). Ersetze die alte Client-Datenbank-ID (%s) und setze die gesammelte Zeiten zurück"; -$lang['crawl'] = "Scanne nach verbundenen Usern und sammle die online Zeit..."; -$lang['clean'] = "Scanne nach Usern, welche zu löschen sind..."; -$lang['cleanc'] = "Clientlöschung"; -$lang['cleancdesc'] = "Mit dieser Funktion werden alte Clients aus dem Ranksystem gelöscht.

    Hierzu wird die TeamSpeak Datenbank mit dem Ranksystem abgeglichen. Clients, welche nicht mehr in der TeamSpeak Datenbank existieren, werden aus dem Ranksystem gelöscht.

    Diese Funktion kann nur genutzt werden, wenn der 'Slowmode' deaktiviert ist!


    Zur automatischen Bereinigung der TeamSpeak Datenbank kann der ClientCleaner genutzt werden:
    http://ts-n.net/clientcleaner.php"; -$lang['cleandel'] = "Es wurden %s Clients aus der Ranksystem-Datenbank gelöscht, da sie nicht mehr in der TeamSpeak Datenbank vorhanden sind."; -$lang['cleanno'] = "Es gab nichts zu löschen..."; -$lang['cleanp'] = "Löschintervall"; -$lang['cleanpdesc'] = "Bestimme einen Intervall, wie oft die 'Clientlöschung' laufen soll.

    Angabe der Zeit in Sekunden!

    Empfohlen wird die Clientlöschung nur einmal am Tag laufen zu lassen, da für größere Datenbanken die Laufzeit extrem steigt."; -$lang['cleanrs'] = "Clients in der Ranksystem Datenbank: %s"; -$lang['cleants'] = "Clients in der TeamSpeak Datenbank gefunden: %s (von %s)"; -$lang['days'] = "Tage"; -$lang['dbconerr'] = "Verbindung zur MySQL-Datenbank gescheitert: "; -$lang['delcldgrpif'] = "Fehler beim Löschen der Servergruppen aus der Datenbank: %s"; -$lang['delcldgrpsc'] = "Knowledge der Servergruppen für %s User erfolgreich gelöscht."; -$lang['delclientsif'] = "%s Clients aus der Ranksystem Datenbank gelöscht!"; -$lang['delclientssc'] = "%s Clients aus der Ranksystem Datenbank erfolgreich gelöscht!"; -$lang['errlogin'] = "Benutzername und/oder Passwort sind falsch! Versuche es erneut..."; -$lang['error'] = "Fehler "; -$lang['errremgrp'] = "Fehler beim Entfernen des Users mit der eindeutigen Client-ID %s aus der Servergruppe mit der Servergruppen-Datenbank-ID %s!"; -$lang['errremdb'] = "Fehler beim Löschen des Users mit der eindeutigen Client-ID %s aus der Ranksystem Datenbank!"; -$lang['errsel'] = "Fehler bei der Auswahl der Bedingungen!
    ausgewählte User: %s
    Option 'lösche Clients': %s
    Option 'ges. online Zeit': %s"; -$lang['errukwn'] = "Unbekannter Fehler aufgetreten!"; -$lang['errupcount'] = "Fehler beim Überschreiben der ges. online Zeit %s bei User mit der eindeutigen Client-ID %s!"; -$lang['firstuse'] = "Scheint der erste Lauf zu sein. Starte loggen der Userhistorie..."; -$lang['highest'] = "höchster Rang erreicht"; -$lang['instdb'] = "Installiere Datenbank:"; -$lang['instdberr'] = "Fehler beim Erstellen der Datenbank: "; -$lang['instdbsubm'] = "Datenbank einrichten"; -$lang['instdbsuc'] = "Datenbank %s wurde erfolgreich angelegt."; -$lang['insttb'] = "Installiere Tabellen:"; -$lang['insttberr'] = "Fehler beim Erstellen der Tabelle: "; -$lang['insttbsuc'] = "Tabelle %s wurde erfolgreich angelegt."; -$lang['isntwicfg'] = "Die Datenbankkonfigurationen konnten nicht gespeichert werden! Bitte versehe die 'other/dbconfig.php' mit einem chmod 0777 und versuche es anschließend erneut."; -$lang['isntwichm'] = "Bitte versehe die 'other/dbconfig.php' und die Ordner 'avatars/', 'icons/' und 'logs/' mit den nötigen Dateiberechtigungen. Hierfür je die Berechtigung auf einem chmod 0777 setzen. Anschließend versuche es erneut (Seite neu laden)."; -$lang['isntwidb'] = "Trage deine Datenbank Einstellungen ein:"; -$lang['isntwidberr'] = "Bitte überprüfe, ob alle Felder korrekt ausgefüllt wurden!"; -$lang['isntwidbhost'] = "DB Hostadresse:"; -$lang['isntwidbhostdesc'] = "Datenbank Server Adresse
    (IP oder DNS)"; -$lang['isntwidbmsg'] = "Datenbank-Fehler: "; -$lang['isntwidbname'] = "DB Name:"; -$lang['isntwidbnamedesc'] = "Name der Datenbank"; -$lang['isntwidbpass'] = "DB Passwort:"; -$lang['isntwidbpassdesc'] = "Passwort für die Datenbank"; -$lang['isntwidbtype'] = "DB Typ:"; -$lang['isntwidbtypedesc'] = "Datenbank Typ

    Der benötigte PDO Treiber muss installiert sein.
    Für mehr Informationen beachte die Anforderungen auf http://ts-n.net/ranksystem.php"; -$lang['isntwidbusr'] = "DB Benutzer:"; -$lang['isntwidbusrdesc'] = "Username für die Datenbank"; -$lang['isntwidel'] = "Bitte lösche noch die Datei 'install.php' vom Webserver und öffne danach das %s um das Ranksystem zu konfigurieren!"; -$lang['isntwiusr'] = "Benutzer für das Webinterface wurde erfolgreich erstellt."; -$lang['isntwiusrcr'] = "erstelle Zugang"; -$lang['isntwiusrdesc'] = "Gib einen frei wählbaren Benutzer und ein Passwort für das Webinterface ein. Mit dem Webinterface wird das Ranksystem konfiguriert."; -$lang['isntwiusrh'] = "Zugang - Webinterface"; -$lang['listacsg'] = "atkuelle Servergruppe"; -$lang['listcldbid'] = "Client-Datenbank-ID"; -$lang['listexgrp'] = "Ist vom Ranksystem ausgeschlossen (Servergruppen-Ausnahmen)."; -$lang['listexuid'] = "Ist vom Ranksystem ausgeschlossen (Client-Ausnahmen)."; -$lang['listip'] = "IP Adresse"; -$lang['listnick'] = "Client-Name"; -$lang['listnxsg'] = "nächste Servergruppe"; -$lang['listnxup'] = "nächster Rang"; -$lang['listrank'] = "Rang"; -$lang['listseen'] = "zuletzt gesehen"; -$lang['listsuma'] = "ges. aktive Zeit"; -$lang['listsumi'] = "ges. idle Zeit"; -$lang['listsumo'] = "ges. online Zeit"; -$lang['listtime'] = "%s Tag(e), %s Std., %s Min., %s Sek."; -$lang['listuid'] = "eindeutige Client-ID"; -$lang['new'] = "neu"; -$lang['nocount'] = "User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) ist ein Query-User oder ist mehrmals online (nur erste Verbindung zählt) -> diese wird nicht gewertet!"; -$lang['noentry'] = "Keine Einträge gefunden.."; -$lang['pass'] = "Passwort: "; -$lang['queryname'] = "Erster Botname ist bereits in Verwendung. Versuche zweiten Botnamen zu nutzen..."; -$lang['sccrmcld'] = "User mit der eindeutigen Client-ID %s wurde erfolgreich aus der Ranksystem Datenbank gelöscht."; -$lang['sccupcount'] = "User mit der eindeutigen Client-ID %s erhielt erfolgreich ein neue ges. online Zeit von %s."; -$lang['setontime'] = "ges. online Zeit"; -$lang['setontimedesc'] = "Gib eine neue ges. online Zeit ein, welche bei den zuvor selektierten Usern hinterlegt werden soll. Mit dieser wird die alte ges. online Zeit überschrieben.

    Die eingegeben ges. online Zeit wird für die nächsten Rangsteigerungen berücksichtigt."; -$lang['sgrpadd'] = "Servergruppe %s zu User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) hinzugefügt."; -$lang['sgrprerr'] = "Es ist ein Problem mit den Servergruppen des Users %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) aufgetreten!"; -$lang['sgrprm'] = "Servergruppe %s von User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) entfernt."; -$lang['sitegen'] = "Seite generiert in %s Sekunden mit %s Clients."; -$lang['sitegenl'] = "Seite generiert in %s Sekunden mit %s Clients (davon %s angezeigt; %s betroffen von Ausnahmeregeln; %s im höchsten Rang)."; -$lang['stix0001'] = "Server Statistiken"; -$lang['stix0002'] = "Anzahl User"; -$lang['stix0003'] = "zeige Liste aller User"; -$lang['stix0004'] = "Online Zeit aller User / Total"; -$lang['stix0005'] = "zeige Top User aller Zeiten"; -$lang['stix0006'] = "zeige Top User des Monats"; -$lang['stix0007'] = "zeige Top User der Woche"; -$lang['stix0008'] = "Server Nutzung"; -$lang['stix0009'] = "der letzten 7 Tage"; -$lang['stix0010'] = "der letzten 30 Tage"; -$lang['stix0011'] = "der letzten 24 Stunden"; -$lang['stix0012'] = "wähle Zeitraum"; -$lang['stix0013'] = "letzten 24 Stunden"; -$lang['stix0014'] = "letzte Woche"; -$lang['stix0015'] = "letzer Monat"; -$lang['stix0016'] = "Aktive / Inaktive Zeit (aller User)"; -$lang['stix0017'] = "Versionen (aller User)"; -$lang['stix0018'] = "Nationalitäten (aller User)"; -$lang['stix0019'] = "Plattformen (aller User)"; -$lang['stix0020'] = "Server Details"; -$lang['stix0023'] = "Server Status"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "User (Online / Max)"; -$lang['stix0027'] = "Anzahl aller Channel"; -$lang['stix0028'] = "Server Ping (Mittelwert)"; -$lang['stix0029'] = "Eingehende Daten insg."; -$lang['stix0030'] = "Ausgehende Daten insg."; -$lang['stix0031'] = "Server online seit"; -$lang['stix0032'] = "vor Offlineschaltung:"; -$lang['stix0033'] = "00 Tage, 00 Stunden, 00 Min., 00 Sek."; -$lang['stix0034'] = "Paketverlust (Mittelwert)"; -$lang['stix0035'] = " "; -$lang['stix0036'] = "Server Name"; -$lang['stix0037'] = "Server Adresse (Host Adresse : Port)"; -$lang['stix0038'] = "Server Passwort"; -$lang['stix0039'] = "Nein (Öffentlich)"; -$lang['stix0040'] = "Ja (Privat)"; -$lang['stix0041'] = "Server ID"; -$lang['stix0042'] = "Server Plattform"; -$lang['stix0043'] = "Server Version"; -$lang['stix0044'] = "Server Erstelldatum (dd/mm/yyyy)"; -$lang['stix0045'] = "Report an Serverliste"; -$lang['stix0046'] = "Aktiv"; -$lang['stix0047'] = "Deaktiviert"; -$lang['stix0048'] = "nicht genügend Daten ..."; -$lang['stix0049'] = "Online Zeit aller User / Monat"; -$lang['stix0050'] = "Online Zeit aller User / Woche"; -$lang['stix0051'] = "TeamSpeak hat gefailed, daher kein Erstelldatum..."; -$lang['stmy0001'] = "Meine Statistiken"; -$lang['stmy0002'] = "Rank"; -$lang['stmy0003'] = "Datenbank ID:"; -$lang['stmy0004'] = "Eindeutige Client ID:"; -$lang['stmy0005'] = "Insg. Verbunden zum TS"; -$lang['stmy0006'] = "Startzeitpunkt der Statistiken:"; -$lang['stmy0007'] = "Gesamte online Zeit:"; -$lang['stmy0008'] = "Online Zeit der letzten 7 Tage:"; -$lang['stmy0009'] = "Online Zeit der letzten 30 Tage:"; -$lang['stmy0010'] = "Errungenschaften:"; -$lang['stmy0011'] = "Fortschritt Errungenschaft Zeit"; -$lang['stmy0012'] = "Zeit: Legendär"; -$lang['stmy0013'] = "Da du bereits %s Stunden auf dem Server online bist."; -$lang['stmy0014'] = "Abgeschlossen"; -$lang['stmy0015'] = "Zeit: Gold"; -$lang['stmy0016'] = "% erreicht für Legendär"; -$lang['stmy0017'] = "Zeit: Silber"; -$lang['stmy0018'] = "% erreicht für Gold"; -$lang['stmy0019'] = "Zeit: Bronze"; -$lang['stmy0020'] = "% erreicht für Silber"; -$lang['stmy0021'] = "Zeit: Unranked"; -$lang['stmy0022'] = "% erreicht für Bronze"; -$lang['stmy0023'] = "Fortschritt Errungenschaft Verbindungen"; -$lang['stmy0024'] = "Verbindungen: Legendär"; -$lang['stmy0025'] = "Da du bereits %s zum Server verbunden warst."; -$lang['stmy0026'] = "Verbindungen: Gold"; -$lang['stmy0027'] = "Verbindungen: Silber"; -$lang['stmy0028'] = "Verbindungen: Bronze"; -$lang['stmy0029'] = "Verbindungen: Unranked"; -$lang['stmy0030'] = "Fortschritt nächste Servergruppe"; -$lang['stnv0001'] = "Server News"; -$lang['stnv0002'] = "Schließen"; -$lang['stnv0003'] = "Client Informationen aktualisieren"; -$lang['stnv0004'] = "Benutze diese Funktion, wenn sich deine TS3 Daten geändert haben, wie z.B. dein Username."; -$lang['stnv0005'] = "Du musst hierfür mit dem TS3 Server verbunden sein!"; -$lang['stnv0006'] = "Aktualisieren"; -$lang['stnv0007'] = "Battle Area - Page Content"; -$lang['stnv0008'] = "You can challenge other users in a battle between two users or two teams."; -$lang['stnv0009'] = "While the battle is active the online time of the teams/users will be counted."; -$lang['stnv0010'] = "When the battle ends the team/user with the highest online time wins."; -$lang['stnv0011'] = "(The regular battling time is 48 hours)"; -$lang['stnv0012'] = "The winning team/user will recieve a price, which the user can use whenever the user wants."; -$lang['stnv0013'] = "It will be displayed on the My Statistics tab."; -$lang['stnv0014'] = "(Could be online time boost(2x) for 8 hours, instant online time (4 hours), etc."; -$lang['stnv0015'] = "These boosts can be used for example to climb in the top users of the week."; -$lang['stnv0016'] = "nicht verfügbar"; -$lang['stnv0017'] = "Du bist nicht mit dem TS3 Server verbunden, daher können kein Daten angezeigt werden."; -$lang['stnv0018'] = "Bitte verbinde dich mit dem TS3 Server und aktualisiere anschließend die Session über den Aktualisierungs-Button oben rechts in der Ecke."; -$lang['stnv0019'] = "Statistiken - Inhaltserläuterung"; -$lang['stnv0020'] = "Diese Seite zeigt u.a. eine Übersicht deiner persönlichen Statistiken und Aktivität auf dem TS3 Server."; -$lang['stnv0021'] = "Die Informationen wurden gesammelt seit Beginn des Ranksystems, nicht seit Beginn des TS3 Servers."; -$lang['stnv0022'] = "Die Seite erhält ihre Daten aus einer Datenbank. Es ist also möglich, dass die angezeigten Werte von den live Werten abweichen."; -$lang['stnv0023'] = "Die Werte innerhalb der Donut-Charts können von der Anzahl der User abweichen. Hintergrund ist, dass die Daten in älteren Versionen des Ranksystems nicht gesammelt wurden."; -$lang['stnv0024'] = "Ranksystem - Statistiken"; -$lang['stnv0025'] = "Anzahl Einträge"; -$lang['stnv0026'] = "alle"; -$lang['stnv0027'] = "Die Informationen auf dieser Seite scheinen veraltet! Es scheint, das Ranksystem ist nicht mehr mit dem TS3 verbunden."; -$lang['stnv0028'] = "(Du bist nicht zum TS3 verbunden!)"; -$lang['stnv0029'] = "Rank-Liste"; -$lang['stnv0030'] = "Ranksystem Info"; -$lang['stnv0031'] = "DE - Deutsch"; -$lang['stnv0032'] = "EN - English"; -$lang['stnv0033'] = "RU - русский"; -$lang['stnv0034'] = "IT - italiano"; -$lang['stri0001'] = "Ranksystem Informationen"; -$lang['stri0002'] = "Was ist das Ranksystem?"; -$lang['stri0003'] = "Ein TS3 Bot, der automatisch Servergruppen an User für online Zeit oder aktive Zeit auf einem TeamSpeak 3 Server zuweist. Weiterhin sammelt es diverse Statistiken und stellt diese hier dar."; -$lang['stri0004'] = "Wer hat das Ranksystem erstellt?"; -$lang['stri0005'] = "Wann wurde das Ranksystem erstellt?"; -$lang['stri0006'] = "Erste Alpha Version: 05/10/2014."; -$lang['stri0007'] = "Erste Beta Version: 01/02/2015."; -$lang['stri0008'] = "Die neuste Version kannst du auf der Ranksystem Website sehen."; -$lang['stri0009'] = "Wie wurde das Ranksystem erstellt?"; -$lang['stri0010'] = "Das Ranksystem basiert auf"; -$lang['stri0011'] = "Es nutzt weiterhin die folgenden Programmbibliotheken:"; -$lang['stri0012'] = "Ein spezieller Danke ergeht an:"; -$lang['stri0013'] = "sergey - für die russische Übersetzung"; -$lang['stri0014'] = "Bejamin Frost - für die Initialisierung des Bootstrap Designs"; -$lang['stri0015'] = "ZanK - für die italienische Übersetzung"; -$lang['sttw0001'] = "Top User"; -$lang['sttw0002'] = "der Woche"; -$lang['sttw0003'] = "mit %s Stunden online Zeit"; -$lang['sttw0004'] = "Top 10 im Vergleich"; -$lang['sttw0005'] = "Stunden (definiert 100 %)"; -$lang['sttw0006'] = "%s Stunden (%s%)"; -$lang['sttw0007'] = "Top 10 Statistiken"; -$lang['sttw0008'] = "Top 10 vs Andere; Online Zeit"; -$lang['sttw0009'] = "Top 10 Vs Others; Aktive Zeit"; -$lang['sttw0010'] = "Top 10 Vs Others; Inaktive Zeit"; -$lang['sttw0011'] = "Top 10 (in Stunden)"; -$lang['sttw0012'] = "Andere %s User (in Stunden)"; -$lang['sttw0013'] = "mit %s Stunden aktive Zeit"; -$lang['sttm0001'] = "des Monats"; -$lang['stta0001'] = "aller Zeiten"; -$lang['updb'] = "Das Update muss nur ausgeführt werden, wenn das Ranksystem bereits mit einer älteren Version als %s genutzt wird!

    Führe das Update nur einmal aus und lösche danach die 'update_%s.php' sofort von deinem Webserver.


    Update Datenbank:
    "; -$lang['updel'] = "Bitte lösche die folgenden Dateien vom Hauptverzeichnis des Ranksystems, sofern sie existieren:
    %s"; -$lang['upinf'] = "Eine neue Version des Ranksystems ist verfügbar. Informiere Clients auf dem Server..."; -$lang['upmov'] = "Bitte verschiebe die Datei \'%s\' in das Unterverzeichnis \'%s\' und überschreibe dabei die dort vorhandene Datei!"; -$lang['upmsg'] = "\nHey, eine neue Version des [B]Ranksystems[/B] ist verfügbar!\n\naktuelle Version: %s\n[B]neue Version: %s[/B]\n\nBitte schaue auf unsere Homepage für weitere Informationen [URL]http://ts-n.net/ranksystem.php[/URL]."; -$lang['upsucc'] = "Datenbank-Update erfolgreich durchgeführt"; -$lang['upuser'] = "User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) erhält eine neue ges. online Zeit von %s (davon aktiv: %s)."; -$lang['upuserboost'] = "User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) erhält eine neue ges. online Zeit von %s (davon aktiv: %s) [BOOST %sx]."; -$lang['upusrerr'] = "Die eindeutige Client-ID %s konnte auf dem TeamSpeak nicht erreicht werden!"; -$lang['upusrinf'] = "User %s wurde erfolgreich benachrichtigt."; -$lang['user'] = "Benutzername: "; -$lang['usermsgactive'] = "\nHey, du bist im Rang gestiegen, da du eine Aktivität von %s Tagen, %s Stunden, %s Minuten und %s Sekunden erreicht hast."; -$lang['usermsgonline'] = "\nHey, du bist im Rang gestiegen, da du bereits %s Tage, %s Stunden, %s Minuten und %s Sekunden online warst."; -$lang['wiaction'] = "ausführen"; -$lang['wibgco'] = "Hintergrundfarbe:"; -$lang['wibgcodesc'] = "Lege eine Hintergrundfarbe fest
    (gültiger HTML Code; muss mit # beginnen)"; -$lang['wiboost'] = "Boost"; -$lang['wiboostdesc'] = "Gebe einen User auf dem TeamSpeak Server eine Servergruppe (ist manuell zu erstellen), welche hier für das Ranksystem als Boost Gruppe deklariert werden kann. Definiere hierfür noch einen Faktor (z.B. 2x) und eine Zeit, wie lange der Boost gewährt werden soll.
    Umso höher der Faktor, umso schneller erreicht ein User den nächst höheren Rang.
    Ist die Zeit abgelaufen, so wird dem betroffenen User die Servergruppe automatisch entfernt. Die Zeit beginnt in dem Moment zu laufen, in dem der User die Servergruppe erhält.

    Servergruppen-ID => Faktor => Zeit (in Sekunden)

    Beispiel:
    12=>2=>6000,13=>3=>2500,14=>5=>600

    Hier werden den Usern in der Servergruppe mit der ID 12 dem Faktor 2 für 6000 Sekunden, den Usern in der Servergruppe 13 dem Faktor 3 für 2500 Sekunden gewährt, und so weiter..."; -$lang['wichdbid'] = "Client-Datenbank-ID Reset"; -$lang['wichdbiddesc'] = "Setzt die online Zeit eines Users zurück, wenn sich seine TeamSpeak Client-Datenbank-ID ändert.

    Beispiel:
    Wird ein Client vom TeamSpeak Server gelöscht, so erhält er mit der nächsten Verbindung zum Server eine neue Client-Datenbank-ID."; -$lang['wiconferr'] = "Es ist ein Fehler in der Konfiguration des Ranksystems. Bitte prüfe im Webinterface die Kern-Einstellungen auf Richtigkeit. Besonders sollte die Einstellung 'Rangsteigerung' geprüft werden!"; -$lang['widaform'] = "Datumsformat"; -$lang['widaformdesc'] = "Gebe ein Datumsformat zur Anzeige vor.

    Beispiel:
    %a Tage, %h Std., %i Min., %s Sek."; -$lang['widbcfgsuc'] = "Datenbank Einstellungen erfolgreich gespeichert."; -$lang['widbcfgerr'] = "Fehler beim Speichern der Datenbank Einstellungen! Verbindung zur Datenbank oder speichern der 'other/dbconfig.php' nicht möglich."; -$lang['widelcld'] = "lösche Clients"; -$lang['widelcldgrp'] = "Servergruppen zurücksetzen"; -$lang['widelcldgrpdesc'] = "Das Ranksystem merkt sich die vergebenen Servergruppen, sodass nicht mit jedem Lauf der worker.php diese nochmals überprüft bzw. vergeben werden.

    Mit dieser Funktion ist es möglich, dieses Wissen einmalig zurückzusetzen. Dadurch versucht das Ranksystem alle User (welche auf dem TS3 Server online sind) in die aktuell gültige Servergruppe zu setzen.
    Für jeden User, welcher eine Servergruppe erhält bzw. in der vorhanden verbleibt, wird die Wissensdatenbank wie zu Anfang beschrieben wieder aufgebaut.

    Diese Funktion kann hilreich sein, wenn sich User nicht in der Servergruppe befinden, welche für die jeweilige online Zeit vorgesehen ist.

    Achtung: Bitte diese Funktion in einem Moment ausführen, in dem für nächsten Minuten kein Rankup ansteht!!! Das Ranksystem kann dann nämlich die alten Gruppen entfernen, da es hiervon nichts mehr weiß ;-)"; -$lang['widelclddesc'] = "Lösche zuvor selektierte User aus der Ranksystem Datenbank.

    Hiermit bleiben die Userdaten auf dem TeamSpeak Server unberührt!"; -$lang['widelsg'] = "entferne aus Servergruppen"; -$lang['widelsgdesc'] = "Wähle, ob Clients auch aus den Servergruppen entfernt werden sollen, wenn sie aus der Ranksystem Datenbank gelöscht werden.

    Es werden nur Servergruppen beachtet, welche das Ranksystem betreffen!"; -$lang['wideltime'] = "Löschzeitraum"; -$lang['wideltimedesc'] = "Lösche alte Clients aus aus der Ranksystem Datenbank.
    Gib eine Zeit in Sekunden ein, welche ein User nicht mehr online war, damit er gelöscht wird.

    0 - löscht alle User aus dem Ranksystem

    Hiermit bleiben die Userdaten auf dem TeamSpeak Server unberührt!"; -$lang['wiexgrp'] = "Servergruppen-Ausnahmen"; -$lang['wiexgrpdesc'] = "Eine mit Komma getrennte Liste von Servergruppen-IDs, welche nicht am Ranksystem teilnehmen sollen.

    User in mindestens einer dieser Gruppen sind von Rangsteigerungen ausgenommen."; -$lang['wiexuid'] = "Client-Ausnahmen"; -$lang['wiexuiddesc'] = "Eine mit Komma getrennte Liste von eindeutigen Client-IDs, welche nicht am Ranksystem teilnehmen sollen.

    Aufgelistete User sind von Rangsteigerungen ausgenommen."; -$lang['wigrptime'] = "Rangsteigerung"; -$lang['wigrptimedesc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.

    Zeit (Sekunden)=>Servergruppen ID

    Entscheidend hierfür ist die online Zeit des User bzw. wenn 'Idlezeit' aktiv, dann die aktive Zeit.

    Jeder Eintrag ist vom nächsten durch ein Komma zu separieren.

    Die Zeiten sind kummulativ zu hinterlegen.

    Beispiel:
    60=>9,120=>10,180=>11

    Hier werden die User nach 60 Sekunden in die Servergruppe 9, nach wiederum 60 Sekunden in die Servergruppe 10, usw..., hinzugefügt."; -$lang['wihdco'] = "Überschriftenfarbe:"; -$lang['wihdcodesc'] = "Lege eine Überschriftenfarbe fest.
    (gültiger HTML Code; muss mit # beginnen)"; -$lang['wihl'] = "Webinterface - Ranksystem"; -$lang['wihladm'] = "Admin Liste"; -$lang['wihlcfg'] = "Kern-Einstellungen"; -$lang['wihlclg'] = "Clients editieren (Global)"; -$lang['wihlcls'] = "Clients edidieren (Selektiv)"; -$lang['wihldb'] = "Datenbank-Einstellungen"; -$lang['wihlsty'] = "Style-Einstellungen"; -$lang['wihlts'] = "TeamSpeak-Einstellungen"; -$lang['wihvco'] = "Hoverfarbe:"; -$lang['wihvcodesc'] = "Lege eine Hoverfarbe fest.
    (gültiger HTML Code; muss mit # beginnen)"; -$lang['wiifco'] = "Infotextfarbe:"; -$lang['wiifcodesc'] = "Lege eine Infotextfarbe fest.
    (gültiger HTML Code; muss mit # beginnen)"; -$lang['wilogout'] = "Abmelden"; -$lang['wilog'] = "Log-Pfad"; -$lang['wilogdesc'] = "Pfad in dem das Logfile des Ranksystems geschrieben werden soll.

    Beispiel:
    /var/logs/ranksystem/

    Beachte, dass der Webuser Schreibrechte in dem Verzeichnis hat."; -$lang['wimsgusr'] = "Benachrichtigung"; -$lang['wimsgusrdesc'] = "Informiere den User per privater Textnachricht über seine Rangsteigerung.

    Definiere die Nachricht in der 'lang.php'
    (usermsgonline bzw. usermsgactive)"; -$lang['wiscco'] = "Erfolgsmeldungsfarbe:"; -$lang['wisccodesc'] = "Lege eine Erfolgsmeldungsfarbe fest.
    (gültiger HTML Code; muss mit # beginnen)"; -$lang['wiselcld'] = "selektiere User"; -$lang['wiselclddesc'] = "Wähle User anhand des letzt bekannten Usernamen aus. Hierfür einfach losschreiben.
    Mehrfachselektionen sind kommagetrennt möglich, welche automatisch vorgenommen werden.

    Mit den selektierten Usern kann im nächsten Schritt eine Aktion gewählt werden."; -$lang['wishcolas'] = "aktuelle Servergruppe"; -$lang['wishcolasdesc'] = "Zeige Spalte 'aktuelle Servergruppe' in der list_rankup.php"; -$lang['wishcolat'] = "aktive Zeit"; -$lang['wishcolatdesc'] = "Zeige Spalte 'ges. aktive Zeit' in der list_rankup.php"; -$lang['wishcolcld'] = "Client-Name"; -$lang['wishcolclddesc'] = "Zeige Spalte 'Client-Name' in der list_rankup.php"; -$lang['wishcoldbid'] = "Datenbank-ID"; -$lang['wishcoldbiddesc'] = "Zeige Spalte 'Client-Datenbank-ID' in der list_rankup.php"; -$lang['wishcolit'] = "idle Zeit"; -$lang['wishcolitdesc'] = "Zeige Spalte 'ges. idle Zeit' in der list_rankup.php"; -$lang['wishcolls'] = "zuletzt gesehen"; -$lang['wishcollsdesc'] = "Zeige Spalte 'zuletzt gesehen' in der list_rankup.php"; -$lang['wishcolnx'] = "nächster rank up"; -$lang['wishcolnxdesc'] = "Zeige Spalte 'nächster Rang' in der list_rankup.php"; -$lang['wishcolot'] = "online Zeit"; -$lang['wishcolotdesc'] = "Zeige Spalte 'ges. online Zeit' in der list_rankup.php"; -$lang['wishcolrg'] = "Rang"; -$lang['wishcolrgdesc'] = "Zeige Spalte 'Rang' in der list_rankup.php"; -$lang['wishcolsg'] = "nächste Servergruppe"; -$lang['wishcolsgdesc'] = "Zeige Spalte 'nächste Servergruppe' in der list_rankup.php"; -$lang['wishcoluuid'] = "Client-ID"; -$lang['wishcoluuiddesc'] = "Zeige Spalte 'eindeutige Client-ID' in der list_rankup.php"; -$lang['wishexcld'] = "ausgeschl. Clients"; -$lang['wishexclddesc'] = "Zeige User in der list_rankup.php, welche über die 'Client-Ausnahmen' nicht am Ranksystem teilnehmen."; -$lang['wishexgrp'] = "ausgeschl. Servergruppen"; -$lang['wishexgrpdesc'] = "Zeige User in der list_rankup.php, welche über die 'Servergruppen-Ausnahmen' nicht am Ranksystem teilnehmen."; -$lang['wishgen'] = "Seitengenerierung"; -$lang['wishgendesc'] = "Zeige die Zeit, welche zur Generierung der Seite benötigt wird, am Ende der Seite."; -$lang['wishhicld'] = "User in höchestem Rang"; -$lang['wishhiclddesc'] = "Zeige User in der list_rankup.php, welche den höchsten Rang erreicht haben."; -$lang['wisupidle'] = "Idlezeit"; -$lang['wisupidledesc'] = "Ist diese Funktion aktiv, wird die 'ges. idle Zeit' eines Users von der 'ges. online Zeit' abgezogen. Anstelle der 'ges. online Zeit' wird somit die vorgenannte Differenz für Rangsteigerungen herangezogen."; -$lang['wisvconf'] = "speichern"; -$lang['wisvsuc'] = "Änderungen erfolgreich gesichert!"; -$lang['witime'] = "Zeitzone"; -$lang['witimedesc'] = "Wähle die Zeitzone, die für den Sever gilt."; -$lang['wits3dch'] = "Default Channel"; -$lang['wits3dchdesc'] = "Die channel-ID, mit der sich der Bot verbindet.

    In diesem Channel wechselt der Bot nach dem Verbinden mit dem TeamSpeak Server."; -$lang['wits3host'] = "TS3 Hostadresse"; -$lang['wits3hostdesc'] = "TeamSpeak 3 Server Adresse
    (IP oder DNS)"; -$lang['wits3sm'] = "Slowmode"; -$lang['wits3smdesc'] = "Mit dem Slowmode werden die Query-Anfragen an den TeamSpeak Server reduziert. Dies schützt vor einem Ban aufgrund von flooding.
    TeamSpeak Query Befehle werden mit dieser Funktion verzögert abgeschickt.

    !!! AUCH REDUZIERT ER DIE CPU USAGE !!!

    Die Aktivierung ist nicht empfohlen, wenn nicht benötigt. Die Verzögerung (delay) erhöht die Laufzeit eines Durchgangs des Bots, dadurch wird er unpräziser."; -$lang['wits3qnm'] = "Botname"; -$lang['wits3qnm2'] = "2. Botname"; -$lang['wits3qnm2desc'] = "Ein zweiter Botname, falls der erste bereits genutzt wird."; -$lang['wits3qnmdesc'] = "Der Name, mit dem die Query-Verbindung augebaut werden soll.
    Der Name kann frei gewählt werden."; -$lang['wits3querpw'] = "TS3 Query-Passwort"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 Query Passwort
    Passwort des Query Benutzers"; -$lang['wits3querusr'] = "TS3 Query-Benutzer"; -$lang['wits3querusrdesc'] = "TeamSpeak 3 Query Benutzername
    Standard ist serveradmin
    Natürlich kann auch ein gesonderter Query-Benutzer erstellt und genutzt werden.
    Die benötigten Rechte sind hier aufgelistet:
    http://ts-n.net/ranksystem.php"; -$lang['wits3query'] = "TS3 Query-Port"; -$lang['wits3querydesc'] = "TeamSpeak 3 Query Port
    Standard ist 10011 (TCP)
    andere Werte sollten in der 'ts3server.ini' zu finden sein."; -$lang['wits3voice'] = "TS3 Voice-Port"; -$lang['wits3voicedesc'] = "TeamSpeak 3 Voice Port
    Standard ist 9987 (UDP)
    Dieser Port wird zum Verbinden mit dem TS3 Client genutzt."; -$lang['witxco'] = "Textfarbe:"; -$lang['witxcodesc'] = "Lege eine Textfarbe fest.
    (gültiger HTML Code; muss mit # beginnen)"; -$lang['wiupcheck'] = "Update-Prüfung"; -$lang['wiupcheckdesc'] = "Ist die Update-Prüfung aktiv, werden nachfolgend genannte User mit einer privaten Textnachricht informiert, sobald ein Update verfügbar ist."; -$lang['wiuptime'] = "Prüfungsintervall"; -$lang['wiuptimedesc'] = "Gib an alle wie viel Sekunden das Ranksystem prüfen soll, ob ein Update verfügbar ist.
    Beachte, bei jeder Prüfung werden die hinterlegten User über ein verfügbares Update benachrichtigt. Ist kein hinterlegter User online, wird mit dem nächsten Intervall versucht zu benachrichtigen."; -$lang['wiupuid'] = "Empfänger"; -$lang['wiupuiddesc'] = "Eine Komma getrennte Liste von eindeutigen Client-IDs, welche via privater Textnachricht auf dem TeamSpeak über ein Update informiert werden sollen."; -$lang['wiversion'] = "(verwendete Version %s)"; -$lang['wivlang'] = "Sprache"; -$lang['wivlangdesc'] = "Sprache des Ranksystems

    de - Deutsch
    en - english
    it - italiano
    ru - русский"; -$lang['wiwnco'] = "Warntextfarbe:"; -$lang['wiwncodesc'] = "Lege eine Warntextfarbe fest.
    (gültiger HTML Code; muss mit # beginnen)"; +$lang= array(); +$lang['adduser'] = "User %s (eindeutige Client-ID: %s; Client-Datenbank-ID: %s) ist bisher unbekannt -> wurde nun zum Ranksystem hinzugefügt."; +$lang['changedbid'] = "User %s (eindeutige Client-ID: %s) hat eine neue TeamSpeak Client-Datenbank-ID (%s). Ersetze die alte Client-Datenbank-ID (%s) und setze die gesammelte Zeiten zurück"; +$lang['crawl'] = "Scanne nach verbundenen Usern und sammle die online Zeit..."; +$lang['clean'] = "Scanne nach Usern, welche zu löschen sind..."; +$lang['cleanc'] = "Clientlöschung"; +$lang['cleancdesc'] = "Mit dieser Funktion werden alte Clients aus dem Ranksystem gelöscht.

    Hierzu wird die TeamSpeak Datenbank mit dem Ranksystem abgeglichen. Clients, welche nicht mehr in der TeamSpeak Datenbank existieren, werden aus dem Ranksystem gelöscht.

    Diese Funktion kann nur genutzt werden, wenn der 'Slowmode' deaktiviert ist!


    Zur automatischen Bereinigung der TeamSpeak Datenbank kann der ClientCleaner genutzt werden:
    http://ts-n.net/clientcleaner.php"; +$lang['cleandel'] = "Es wurden %s Clients aus der Ranksystem-Datenbank gelöscht, da sie nicht mehr in der TeamSpeak Datenbank vorhanden sind."; +$lang['cleanno'] = "Es gab nichts zu löschen..."; +$lang['cleanp'] = "Löschintervall"; +$lang['cleanpdesc'] = "Bestimme einen Intervall, wie oft die 'Clientlöschung' laufen soll.

    Angabe der Zeit in Sekunden!

    Empfohlen wird die Clientlöschung nur einmal am Tag laufen zu lassen, da für größere Datenbanken die Laufzeit extrem steigt."; +$lang['cleanrs'] = "Clients in der Ranksystem Datenbank: %s"; +$lang['cleants'] = "Clients in der TeamSpeak Datenbank gefunden: %s (von %s)"; +$lang['days'] = "%s Tage"; +$lang['dbconerr'] = "Verbindung zur Datenbank gescheitert: "; +$lang['delcldgrpif'] = "Fehler beim Löschen der Servergruppen aus der Datenbank: %s"; +$lang['delcldgrpsc'] = "Knowledge der Servergruppen für %s User erfolgreich gelöscht."; +$lang['delclientsif'] = "%s Clients aus der Ranksystem Datenbank gelöscht!"; +$lang['delclientssc'] = "%s Clients aus der Ranksystem Datenbank erfolgreich gelöscht!"; +$lang['errlogin'] = "Benutzername und/oder Passwort sind falsch! Versuche es erneut..."; +$lang['errlogin2'] = "Brute force Schutz: Bitte versuche es in %s Sekunden erneut!"; +$lang['errlogin3'] = "Brute force Schutz: Zu viele Fehlversuche. Für 300 Sekunden gesperrt!"; +$lang['error'] = "Fehler "; +$lang['errremgrp'] = "Fehler beim Entfernen des Users mit der eindeutigen Client-ID %s aus der Servergruppe mit der Servergruppen-Datenbank-ID %s!"; +$lang['errremdb'] = "Fehler beim Löschen des Users mit der eindeutigen Client-ID %s aus der Ranksystem Datenbank!"; +$lang['errsel'] = "Fehler bei der Auswahl der Bedingungen!
    ausgewählte User: %s
    Option 'lösche Clients': %s
    Option 'ges. online Zeit': %s"; +$lang['errukwn'] = "Unbekannter Fehler aufgetreten!"; +$lang['errupcount'] = "Fehler beim Überschreiben der ges. online Zeit %s bei User mit der eindeutigen Client-ID %s!"; +$lang['highest'] = "höchster Rang erreicht"; +$lang['install'] = "Installation"; +$lang['instdb'] = "Installiere Datenbank"; +$lang['instdbsuc'] = "Datenbank %s wurde erfolgreich angelegt."; +$lang['isntwicfg'] = "Die Datenbankkonfigurationen konnten nicht gespeichert werden! Bitte versehe die 'other/dbconfig.php' mit einem chmod 0777 und versuche es anschließend erneut."; +$lang['isntwicfg2'] = "Konfiguriere Webinterface"; +$lang['isntwichm'] = "Schreibrechte fehlen für Verzeichnis \"%s\". Bitte setze auf dieses einen chmod 777 und starte anschließend das Ranksystem erneut."; +$lang['isntwidbhost'] = "DB Hostadresse:"; +$lang['isntwidbhostdesc']= "Datenbank Server Adresse
    (IP oder DNS)"; +$lang['isntwidbmsg'] = "Datenbank-Fehler: "; +$lang['isntwidbname'] = "DB Name:"; +$lang['isntwidbnamedesc']= "Name der Datenbank"; +$lang['isntwidbpass'] = "DB Passwort:"; +$lang['isntwidbpassdesc']= "Passwort für die Datenbank"; +$lang['isntwidbtype'] = "DB Typ:"; +$lang['isntwidbtypedesc']= "Datenbank Typ

    Der benötigte PDO Treiber muss installiert sein.
    Für mehr Informationen beachte die Anforderungen auf http://ts-n.net/ranksystem.php"; +$lang['isntwidbusr'] = "DB Benutzer:"; +$lang['isntwidbusrdesc']= "Username für die Datenbank"; +$lang['isntwidel'] = "Bitte lösche noch die Datei 'install.php' vom Webserver und öffne danach das %s um das Ranksystem zu konfigurieren!"; +$lang['isntwiusr'] = "Benutzer für das Webinterface wurde erfolgreich erstellt."; +$lang['isntwiusrcr'] = "Erstelle Webinterface-User"; +$lang['isntwiusrdesc'] = "Gib einen frei wählbaren Benutzer und ein Passwort für das Webinterface ein. Mit dem Webinterface wird das Ranksystem konfiguriert."; +$lang['isntwiusrh'] = "Zugang - Webinterface"; +$lang['listacsg'] = "atkuelle Servergruppe"; +$lang['listcldbid'] = "Client-Datenbank-ID"; +$lang['listexgrp'] = "Ist vom Ranksystem ausgeschlossen (Servergruppen-Ausnahmen)."; +$lang['listexuid'] = "Ist vom Ranksystem ausgeschlossen (Client-Ausnahmen)."; +$lang['listip'] = "IP Adresse"; +$lang['listnick'] = "Client-Name"; +$lang['listnxsg'] = "nächste Servergruppe"; +$lang['listnxup'] = "nächster Rang"; +$lang['listrank'] = "Rang"; +$lang['listseen'] = "zuletzt gesehen"; +$lang['listsuma'] = "ges. aktive Zeit"; +$lang['listsumi'] = "ges. idle Zeit"; +$lang['listsumo'] = "ges. online Zeit"; +$lang['listuid'] = "eindeutige Client-ID"; +$lang['login'] = "Login"; +$lang['nocount'] = "User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) ist ein Query-User oder ist mehrmals online (nur erste Verbindung zählt) -> diese wird nicht gewertet!"; +$lang['noentry'] = "Keine Einträge gefunden.."; +$lang['pass'] = "Passwort"; +$lang['queryname'] = "Erster Botname ist bereits in Verwendung. Versuche zweiten Botnamen zu nutzen..."; +$lang['sccrmcld'] = "User mit der eindeutigen Client-ID %s wurde erfolgreich aus der Ranksystem Datenbank gelöscht."; +$lang['sccupcount'] = "User mit der eindeutigen Client-ID %s erhielt erfolgreich ein neue ges. online Zeit von %s."; +$lang['setontime'] = "ges. online Zeit"; +$lang['setontimedesc'] = "Gib eine neue ges. online Zeit ein, welche bei den zuvor selektierten Usern hinterlegt werden soll. Mit dieser wird die alte ges. online Zeit überschrieben.

    Die eingegeben ges. online Zeit wird für die nächsten Rangsteigerungen berücksichtigt."; +$lang['sgrpadd'] = "Servergruppe %s zu User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) hinzugefügt."; +$lang['sgrprerr'] = "Es ist ein Problem mit den Servergruppen des Users %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) aufgetreten!"; +$lang['sgrprm'] = "Servergruppe %s von User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) entfernt."; +$lang['stix0001'] = "Server Statistiken"; +$lang['stix0002'] = "Anzahl User"; +$lang['stix0003'] = "zeige Liste aller User"; +$lang['stix0004'] = "Online Zeit aller User / Total"; +$lang['stix0005'] = "zeige Top User aller Zeiten"; +$lang['stix0006'] = "zeige Top User des Monats"; +$lang['stix0007'] = "zeige Top User der Woche"; +$lang['stix0008'] = "Server Nutzung"; +$lang['stix0009'] = "der letzten 7 Tage"; +$lang['stix0010'] = "der letzten 30 Tage"; +$lang['stix0011'] = "der letzten 24 Stunden"; +$lang['stix0012'] = "wähle Zeitraum"; +$lang['stix0013'] = "letzten 24 Stunden"; +$lang['stix0014'] = "letzte Woche"; +$lang['stix0015'] = "letzer Monat"; +$lang['stix0016'] = "Aktive / Inaktive Zeit (aller User)"; +$lang['stix0017'] = "Versionen (aller User)"; +$lang['stix0018'] = "Nationalitäten (aller User)"; +$lang['stix0019'] = "Plattformen (aller User)"; +$lang['stix0020'] = "Server Details"; +$lang['stix0023'] = "Server Status"; +$lang['stix0024'] = "Online"; +$lang['stix0025'] = "Offline"; +$lang['stix0026'] = "User (Online / Max)"; +$lang['stix0027'] = "Anzahl aller Channel"; +$lang['stix0028'] = "Server Ping (Mittelwert)"; +$lang['stix0029'] = "Eingehende Daten insg."; +$lang['stix0030'] = "Ausgehende Daten insg."; +$lang['stix0031'] = "Server online seit"; +$lang['stix0032'] = "vor Offlineschaltung:"; +$lang['stix0033'] = "00 Tage, 00 Stunden, 00 Min., 00 Sek."; +$lang['stix0034'] = "Paketverlust (Mittelwert)"; +$lang['stix0035'] = " "; +$lang['stix0036'] = "Server Name"; +$lang['stix0037'] = "Server Adresse (Host Adresse : Port)"; +$lang['stix0038'] = "Server Passwort"; +$lang['stix0039'] = "Nein (Öffentlich)"; +$lang['stix0040'] = "Ja (Privat)"; +$lang['stix0041'] = "Server ID"; +$lang['stix0042'] = "Server Plattform"; +$lang['stix0043'] = "Server Version"; +$lang['stix0044'] = "Server Erstelldatum (dd/mm/yyyy)"; +$lang['stix0045'] = "Report an Serverliste"; +$lang['stix0046'] = "Aktiv"; +$lang['stix0047'] = "Deaktiviert"; +$lang['stix0048'] = "nicht genügend Daten ..."; +$lang['stix0049'] = "Online Zeit aller User / Monat"; +$lang['stix0050'] = "Online Zeit aller User / Woche"; +$lang['stix0051'] = "TeamSpeak hat gefailed, daher kein Erstelldatum..."; +$lang['stmy0001'] = "Meine Statistiken"; +$lang['stmy0002'] = "Rank"; +$lang['stmy0003'] = "Datenbank ID:"; +$lang['stmy0004'] = "Eindeutige Client ID:"; +$lang['stmy0005'] = "Insg. Verbunden zum TS"; +$lang['stmy0006'] = "Startzeitpunkt der Statistiken:"; +$lang['stmy0007'] = "Gesamte online Zeit:"; +$lang['stmy0008'] = "Online Zeit der letzten 7 Tage:"; +$lang['stmy0009'] = "Online Zeit der letzten 30 Tage:"; +$lang['stmy0010'] = "Errungenschaften:"; +$lang['stmy0011'] = "Fortschritt Errungenschaft Zeit"; +$lang['stmy0012'] = "Zeit: Legendär"; +$lang['stmy0013'] = "Da du bereits %s Stunden auf dem Server online bist."; +$lang['stmy0014'] = "Abgeschlossen"; +$lang['stmy0015'] = "Zeit: Gold"; +$lang['stmy0016'] = "% erreicht für Legendär"; +$lang['stmy0017'] = "Zeit: Silber"; +$lang['stmy0018'] = "% erreicht für Gold"; +$lang['stmy0019'] = "Zeit: Bronze"; +$lang['stmy0020'] = "% erreicht für Silber"; +$lang['stmy0021'] = "Zeit: Unranked"; +$lang['stmy0022'] = "% erreicht für Bronze"; +$lang['stmy0023'] = "Fortschritt Errungenschaft Verbindungen"; +$lang['stmy0024'] = "Verbindungen: Legendär"; +$lang['stmy0025'] = "Da du bereits %s zum Server verbunden warst."; +$lang['stmy0026'] = "Verbindungen: Gold"; +$lang['stmy0027'] = "Verbindungen: Silber"; +$lang['stmy0028'] = "Verbindungen: Bronze"; +$lang['stmy0029'] = "Verbindungen: Unranked"; +$lang['stmy0030'] = "Fortschritt nächste Servergruppe"; +$lang['stnv0001'] = "Server News"; +$lang['stnv0002'] = "Schließen"; +$lang['stnv0003'] = "Client Informationen aktualisieren"; +$lang['stnv0004'] = "Benutze diese Funktion, wenn sich deine TS3 Daten geändert haben, wie z.B. dein Username."; +$lang['stnv0005'] = "Du musst hierfür mit dem TS3 Server verbunden sein!"; +$lang['stnv0006'] = "Aktualisieren"; +$lang['stnv0007'] = "Battle Area - Seiteninhalt"; +$lang['stnv0008'] = "Du kannst dich mit anderen Usern battle."; +$lang['stnv0009'] = "So lange das Battle läuft, wird die online Zeit bzw. aktive Zeit gewertet."; +$lang['stnv0010'] = "Wenn das Battle abgeschlossen ist, gewinnt der User, welcher die höchste online Zeit bzw. aktive Zeit hat.."; +$lang['stnv0011'] = "(Die Standard Battle Dauer ist 48 Stunden)"; +$lang['stnv0012'] = "Der Sieger erhält einen Preis, welcher zu einem eigens bestimmten Zeitpunkt eingelöst werden kann."; +$lang['stnv0013'] = "Dieser wird auf der Seite Meine Statistiken angezeigt."; +$lang['stnv0014'] = "(Kann sein ein Zeit Boost(2x) für 8 Stunden, instant online Zeit (4 Stunden), etc."; +$lang['stnv0015'] = "Diese Boosts können benutzt werden, um z.B. die Chancen auf den Top User der Woche zu erhöhen."; +$lang['stnv0016'] = "nicht verfügbar"; +$lang['stnv0017'] = "Du bist nicht mit dem TS3 Server verbunden, daher können kein Daten angezeigt werden."; +$lang['stnv0018'] = "Bitte verbinde dich mit dem TS3 Server und aktualisiere anschließend die Session über den Aktualisierungs-Button oben rechts in der Ecke."; +$lang['stnv0019'] = "Statistiken - Inhaltserläuterung"; +$lang['stnv0020'] = "Diese Seite zeigt u.a. eine Übersicht deiner persönlichen Statistiken und Aktivität auf dem TS3 Server."; +$lang['stnv0021'] = "Die Informationen wurden gesammelt seit Beginn des Ranksystems, nicht seit Beginn des TS3 Servers."; +$lang['stnv0022'] = "Die Seite erhält ihre Daten aus einer Datenbank. Es ist also möglich, dass die angezeigten Werte von den live Werten abweichen."; +$lang['stnv0023'] = "Die Werte innerhalb der Donut-Charts können von der Anzahl der User abweichen. Hintergrund ist, dass die Daten in älteren Versionen des Ranksystems nicht gesammelt wurden."; +$lang['stnv0024'] = "Ranksystem - Statistiken"; +$lang['stnv0025'] = "Anzahl Einträge"; +$lang['stnv0026'] = "alle"; +$lang['stnv0027'] = "Die Informationen auf dieser Seite scheinen veraltet! Es scheint, das Ranksystem ist nicht mehr mit dem TS3 verbunden."; +$lang['stnv0028'] = "(Du bist nicht zum TS3 verbunden!)"; +$lang['stnv0029'] = "Rank-Liste"; +$lang['stnv0030'] = "Ranksystem Info"; +$lang['stnv0031'] = "Über das Suchfeld können nach Teile im Clientnamen, der eindeutigen Client-ID und der Client-Datenbank-ID gesucht werden."; +$lang['stnv0032'] = "Es ist auch möglich bestimmte Filterregeln anzuwenden (siehe unterhalb). Der Filter wird auch im Suchfeld hinterlegt."; +$lang['stnv0033'] = "Kombinationen von Filter und einem Suchwert sind möglich. Trage hierfür den/die Filter gefolgt von dem Suchwert ein."; +$lang['stnv0034'] = "Auch ist es möglich mehrere Filter zu kombinieren. Trage diese einfach fortlaufend in das Suchfeld ein."; +$lang['stnv0035'] = "Beispiel:
    filter:nonexcepted:TeamSpeakUser"; +$lang['stnv0036'] = "Zeigt nur Clients an, welche ausgeschlossen sind (Client, Severgruppen oder Channel-Ausnahme)."; +$lang['stnv0037'] = "Zeigt nur Clients an, welche nicht ausgeschlossen sind."; +$lang['stnv0038'] = "Zeigt nur Clients an, welche online sind"; +$lang['stnv0039'] = "Zeigt nur Clients an, welche nicht online sind"; +$lang['stnv0040'] = "Zeigt nur Clients an, welche sich in einer bestimmten Servergruppe befinden. Stellt das aktuelle Level (Rang) dar.
    Ersetze GROUPID mi der gewünschten Servergruppen ID."; +$lang['stnv0041'] = "Zeigt nur Clients an, welche dem ausgewählten 'zuletzt gesehen' Zeitraum entsprechen.
    Ersetze OPERATOR mit '<' oder '>' oder '=' oder '!='.
    Und ersetze TIME mit einem Zeitstempel (Timestamp) oder Datum mit im Format 'Y-m-d H-i' (Beispiel: 2016-06-18 20-25).
    Vollständiges Beispiel: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = "Zeigt nur Clients an, welche sich im definierten Land befinden.
    Ersetze TS3-COUNTRY-CODE mit dem gewünschten Land.
    Für eine Liste der gültigen Ländercodes, bitte nach dem 'ISO 3166-1 alpha-2' googlen."; +$lang['stri0001'] = "Ranksystem Informationen"; +$lang['stri0002'] = "Was ist das Ranksystem?"; +$lang['stri0003'] = "Ein TS3 Bot, der automatisch Servergruppen an User für online Zeit oder aktive Zeit auf einem TeamSpeak 3 Server zuweist. Weiterhin sammelt es diverse Statistiken und stellt diese hier dar."; +$lang['stri0004'] = "Wer hat das Ranksystem erstellt?"; +$lang['stri0005'] = "Wann wurde das Ranksystem erstellt?"; +$lang['stri0006'] = "Erste Alpha Version: 05/10/2014."; +$lang['stri0007'] = "Erste Beta Version: 01/02/2015."; +$lang['stri0008'] = "Die neuste Version kannst du auf der Ranksystem Website sehen."; +$lang['stri0009'] = "Wie wurde das Ranksystem erstellt?"; +$lang['stri0010'] = "Das Ranksystem basiert auf"; +$lang['stri0011'] = "Es nutzt weiterhin die folgenden Programmbibliotheken:"; +$lang['stri0012'] = "Ein spezieller Danke ergeht an:"; +$lang['stri0013'] = "sergey, Arselopster & DeviantUser - für die russische Übersetzung"; +$lang['stri0014'] = "Bejamin Frost - für die Initialisierung des Bootstrap Designs"; +$lang['stri0015'] = "ZanK - für die italienische Übersetzung"; +$lang['stri0016'] = "DeStRoYzR & Jehad - für die Initiierung der arabischen Übersetzung"; +$lang['stri0017'] = "SakaLuX - für die Initiierung der rumänischen Übersetzung"; +$lang['sttw0001'] = "Top User"; +$lang['sttw0002'] = "der Woche"; +$lang['sttw0003'] = "mit %s Stunden online Zeit"; +$lang['sttw0004'] = "Top 10 im Vergleich"; +$lang['sttw0005'] = "Stunden (definiert 100 %)"; +$lang['sttw0006'] = "%s Stunden (%s%)"; +$lang['sttw0007'] = "Top 10 Statistiken"; +$lang['sttw0008'] = "Top 10 vs Andere; Online Zeit"; +$lang['sttw0009'] = "Top 10 Vs Others; Aktive Zeit"; +$lang['sttw0010'] = "Top 10 Vs Others; Inaktive Zeit"; +$lang['sttw0011'] = "Top 10 (in Stunden)"; +$lang['sttw0012'] = "Andere %s User (in Stunden)"; +$lang['sttw0013'] = "mit %s Stunden aktive Zeit"; +$lang['sttm0001'] = "des Monats"; +$lang['stta0001'] = "aller Zeiten"; +$lang['upinf'] = "Eine neue Version des Ranksystems ist verfügbar. Informiere Clients auf dem Server..."; +$lang['upmsg'] = "\nHey, eine neue Version des [B]Ranksystems[/B] ist verfügbar!\n\naktuelle Version: %s\n[B]neue Version: %s[/B]\n\nBitte schaue auf unsere Homepage für weitere Informationen [URL]http://ts-n.net/ranksystem.php[/URL]."; +$lang['upsucc'] = "Datenbank-Update erfolgreich durchgeführt"; +$lang['upuser'] = "User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) erhält eine neue ges. online Zeit von %s (davon aktiv: %s)."; +$lang['upuserboost'] = "User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) erhält eine neue ges. online Zeit von %s (davon aktiv: %s) [BOOST %sx]."; +$lang['upusrerr'] = "Die eindeutige Client-ID %s konnte auf dem TeamSpeak nicht erreicht werden!"; +$lang['upusrinf'] = "User %s wurde erfolgreich benachrichtigt."; +$lang['user'] = "Benutzername"; +$lang['wiaction'] = "ausführen"; +$lang['wiboost'] = "Boost"; +$lang['wiboostdesc'] = "Gebe einen User auf dem TeamSpeak Server eine Servergruppe (ist manuell zu erstellen), welche hier für das Ranksystem als Boost Gruppe deklariert werden kann. Definiere hierfür noch einen Faktor (z.B. 2x) und eine Zeit, wie lange der Boost gewährt werden soll.
    Umso höher der Faktor, umso schneller erreicht ein User den nächst höheren Rang.
    Ist die Zeit abgelaufen, so wird dem betroffenen User die Servergruppe automatisch entfernt. Die Zeit beginnt in dem Moment zu laufen, in dem der User die Servergruppe erhält.

    Servergruppen-ID=> Faktor=> Zeit (in Sekunden)

    Beispiel:
    12=>2=>6000,13=>3=>2500,14=>5=>600

    Hier werden den Usern in der Servergruppe mit der ID 12 dem Faktor 2 für 6000 Sekunden, den Usern in der Servergruppe 13 dem Faktor 3 für 2500 Sekunden gewährt, und so weiter..."; +$lang['wibot1'] = "Der Ranksystem Bot sollte gestoppt sein. Für mehr Informationen bitte die Log unterhalb prüfen!"; +$lang['wibot2'] = "Der Ranksystem Bot sollte gestartet sein. Für mehr Informationen bitte die Log unterhalb prüfen!"; +$lang['wibot3'] = "Der Ranksystem Bot sollte neu gestartet sein. Für mehr Informationen bitte die Log unterhalb prüfen!"; +$lang['wibot4'] = "Start / Stop Ranksystem Bot"; +$lang['wibot5'] = "Bot starten"; +$lang['wibot6'] = "Bot stoppen"; +$lang['wibot7'] = "Bot neustarten"; +$lang['wibot8'] = "Ranksystem Log (Auszug):"; +$lang['wibot9'] = "Bitte fülle alle erforderlichen Felder aus, bevor der Ranksystem Bot gestartet werden kann!"; +$lang['wichdbid'] = "Client-Datenbank-ID Reset"; +$lang['wichdbiddesc'] = "Setzt die online Zeit eines Users zurück, wenn sich seine TeamSpeak Client-Datenbank-ID ändert.

    Beispiel:
    Wird ein Client vom TeamSpeak Server gelöscht, so erhält er mit der nächsten Verbindung zum Server eine neue Client-Datenbank-ID."; +$lang['wiconferr'] = "Es ist ein Fehler in der Konfiguration des Ranksystems. Bitte prüfe im Webinterface die Kern-Einstellungen auf Richtigkeit. Besonders sollte die Einstellung 'Rangsteigerung' geprüft werden!"; +$lang['widaform'] = "Datumsformat"; +$lang['widaformdesc'] = "Gebe ein Datumsformat zur Anzeige vor.

    Beispiel:
    %a Tage, %h Std., %i Min., %s Sek."; +$lang['widbcfgsuc'] = "Datenbank Einstellungen erfolgreich gespeichert."; +$lang['widbcfgerr'] = "Fehler beim Speichern der Datenbank Einstellungen! Verbindung zur Datenbank oder speichern der 'other/dbconfig.php' nicht möglich."; +$lang['widelcld'] = "lösche Clients"; +$lang['widelcldgrp'] = "Servergruppen zurücksetzen"; +$lang['widelcldgrpdesc']= "Das Ranksystem merkt sich die vergebenen Servergruppen, sodass nicht mit jedem Lauf der worker.php diese nochmals überprüft bzw. vergeben werden.

    Mit dieser Funktion ist es möglich, dieses Wissen einmalig zurückzusetzen. Dadurch versucht das Ranksystem alle User (welche auf dem TS3 Server online sind) in die aktuell gültige Servergruppe zu setzen.
    Für jeden User, welcher eine Servergruppe erhält bzw. in der vorhanden verbleibt, wird die Wissensdatenbank wie zu Anfang beschrieben wieder aufgebaut.

    Diese Funktion kann hilreich sein, wenn sich User nicht in der Servergruppe befinden, welche für die jeweilige online Zeit vorgesehen ist.

    Achtung: Bitte diese Funktion in einem Moment ausführen, in dem für nächsten Minuten kein Rankup ansteht!!! Das Ranksystem kann dann nämlich die alten Gruppen entfernen, da es hiervon nichts mehr weiß ;-)"; +$lang['widelclddesc'] = "Lösche zuvor selektierte User aus der Ranksystem Datenbank.

    Hiermit bleiben die Userdaten auf dem TeamSpeak Server unberührt!"; +$lang['widelsg'] = "entferne aus Servergruppen"; +$lang['widelsgdesc'] = "Wähle, ob Clients auch aus den Servergruppen entfernt werden sollen, wenn sie aus der Ranksystem Datenbank gelöscht werden.

    Es werden nur Servergruppen beachtet, welche das Ranksystem betreffen!"; +$lang['wideltime'] = "Löschzeitraum"; +$lang['wideltimedesc'] = "Lösche alte Clients aus aus der Ranksystem Datenbank.
    Gib eine Zeit in Sekunden ein, welche ein User nicht mehr online war, damit er gelöscht wird.

    0 - löscht alle User aus dem Ranksystem

    Hiermit bleiben die Userdaten auf dem TeamSpeak Server unberührt!"; +$lang['wiexcid'] = "Channel-Ausnahmen"; +$lang['wiexciddesc'] = "Eine mit Komma getrennte Liste von den Channel-IDs, die nicht am Ranksystem teilnehmen sollen.

    Halten sich User in einem der aufgelisteten Channel auf, so wird die Zeit darin vollständig ignoriert. Es wird weder die online Zeit, noch die Idle Zeit gewertet.

    Sinn macht diese Funktion mit dem Modus 'online Zeit', da hier z.B. AFK Räume ausgeschlossen werden können.
    Mit dem Modus 'aktive Zeit' ist diese Funktion sinnlos, da z.B. in AFK Räumen die Idle-Zeit abgezogen und somit sowieso nicht gewertet würde.

    Befindet sich ein User in einem ausgeschlossenen Channel, so wird er für diese Zeit als 'vom Ranksystem ausgeschlossen' vermerkt. Der User erscheint damit auch nicht mehr in der Liste 'stats/list_rankup.php', sofern ausgeschlossene Clients dort nicht angezeigt werden sollen (Statistik Seite - ausgeschl. Clients)."; +$lang['wiexgrp'] = "Servergruppen-Ausnahmen"; +$lang['wiexgrpdesc'] = "Eine mit Komma getrennte Liste von Servergruppen-IDs, welche nicht am Ranksystem teilnehmen sollen.

    User in mindestens einer dieser Gruppen sind von Rangsteigerungen ausgenommen."; +$lang['wiexuid'] = "Client-Ausnahmen"; +$lang['wiexuiddesc'] = "Eine mit Komma getrennte Liste von eindeutigen Client-IDs, welche nicht am Ranksystem teilnehmen sollen.

    Aufgelistete User sind von Rangsteigerungen ausgenommen."; +$lang['wigrptime'] = "Rangsteigerung Definition"; +$lang['wigrptimedesc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.

    Zeit (Sekunden)=>Servergruppen ID

    Entscheidend hierfür ist die 'online Zeit' bzw. die 'aktive Zeit' des Users, je nach Einstellung des Modus.

    Jeder Eintrag ist vom nächsten durch ein Komma zu separieren.

    Die Zeiten sind kummulativ zu hinterlegen.

    Beispiel:
    60=>9,120=>10,180=>11

    Hier werden die User nach 60 Sekunden in die Servergruppe 9, nach wiederum 60 Sekunden in die Servergruppe 10, usw..., hinzugefügt."; +$lang['wihladm'] = "List Rankup (Admin-Modus)"; +$lang['wihlcfg'] = "Kern-Einstellungen"; +$lang['wihldb'] = "Datenbank"; +$lang['wihlmsg'] = "Benachrichtigungen"; +$lang['wihlsty'] = "Statistik Seite"; +$lang['wihlts'] = "TeamSpeak"; +$lang['wihlvs'] = "Sonstiges"; +$lang['wiignidle'] = "Ignoriere Idle"; +$lang['wiignidledesc'] = "Lege eine Zeit fest, bis zu der die Idlezeit eines Users ignoriert werden soll.

    Wenn ein Client nichts auf dem Server unternimmt (=Idle), wird diese Zeit vom Ranksystem notiert. Mit dieser Funktion wird die Idlezeit eines User bis zur definierten Grenze nicht als Idlezeit gewertet. Erst wenn der definierte Wert überschritten wird, zählt sie ab diesem Zeitpunkt für das Ranksystem auch als Idlezeit.

    Diese Funktion spielt nur in Verbindung mit dem Modus 'aktive Zeit' eine Rolle.
    Sinn der Funktion ist es z.B. die Zeit des Zuhörens bei Gesprächen als Aktivität zu werten.

    0= Deaktivieren der Funktion

    Beispiel:
    Ignoriere Idle= 600 (Sekunden)
    Ein Client hat einen Idle von 8 Minunten.
    Folge:
    Die 8 Minuten Idle werden ignoriert und er erhält demnach diese Zeit als aktive Zeit. Wenn sich die Idlezeit nun auf über 12 Minuten erhöht, so wird die Zeit über 10 Minuten, also 2 Minuten, auch als Idlezeit gewertet."; +$lang['wilogout'] = "Abmelden"; +$lang['wilog'] = "Log-Pfad"; +$lang['wilogdesc'] = "Pfad in dem das Logfile des Ranksystems geschrieben werden soll.

    Beispiel:
    /var/logs/ranksystem/

    Beachte, dass der Webuser Schreibrechte in dem Verzeichnis hat."; +$lang['wimsgmsg'] = "Nachricht"; +$lang['wimsgmsgdesc'] = "Definiere eine Nachricht, welche ein User erhält, wenn er im Rang aufsteigt.

    Die Nachricht wird über TS3 als private Text-Nachricht versendet. Daher können alle bekannten BB-Codes genutzt werden, die auch sonst in Text-Nachrichten funktionieren.
    http://ts-n.net/lexicon.php?showid=97#lexindex

    Weiterhin kann die bisher verbrachte Zeit mittels Argumenten angegeben werden:
    %1\$s - Tage
    %2\$s - Stunden
    %3\$s - Minuten
    %4\$s - Sekunden

    Beispiel:
    Hey,\\ndu bist im Rang gestiegen, da du bereits %1\$s Tage, %2\$s Stunden und %3\$s Minuten mit unserem TS3 Server verbunden bist.[B]Weiter so![/B] ;-)"; +$lang['wimsgusr'] = "Benachrichtigung Rangsteigerung"; +$lang['wimsgusrdesc'] = "Informiere den User per privater Textnachricht über seine Rangsteigerung."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "Datenbank"; +$lang['winav3'] = "Kern"; +$lang['winav4'] = "Anderes"; +$lang['winav5'] = "Benachrichtigung"; +$lang['winav6'] = "Statistik Seite"; +$lang['winav7'] = "Administration"; +$lang['winav8'] = "Start / Stop Bot"; +$lang['winav9'] = "Update verfügbar!"; +$lang['winav10'] = "Bitte nutze das Webinterface nur via %s HTTPS%s Eine Verschlüsselung ist wichtig um die Privatsphäre und Sicherheit zu gewährleisten.%sUm HTTPS nutzen zu können, muss der Webserver eine SSL Verbindung unterstützen."; +$lang['wiselcld'] = "selektiere User"; +$lang['wiselclddesc'] = "Wähle User anhand des letzt bekannten Usernamen aus. Hierfür einfach losschreiben.
    Mehrfachselektionen sind kommagetrennt möglich, welche automatisch vorgenommen werden.

    Mit den selektierten Usern kann im nächsten Schritt eine Aktion gewählt werden."; +$lang['wishcolas'] = "aktuelle Servergruppe"; +$lang['wishcolasdesc'] = "Zeige Spalte 'aktuelle Servergruppe' in der stats/list_rankup.php"; +$lang['wishcolat'] = "aktive Zeit"; +$lang['wishcolatdesc'] = "Zeige Spalte 'ges. aktive Zeit' in der stats/list_rankup.php"; +$lang['wishcolcld'] = "Client-Name"; +$lang['wishcolclddesc'] = "Zeige Spalte 'Client-Name' in der stats/list_rankup.php"; +$lang['wishcoldbid'] = "Datenbank-ID"; +$lang['wishcoldbiddesc']= "Zeige Spalte 'Client-Datenbank-ID' in der stats/list_rankup.php"; +$lang['wishcolit'] = "idle Zeit"; +$lang['wishcolitdesc'] = "Zeige Spalte 'ges. idle Zeit' in der stats/list_rankup.php"; +$lang['wishcolls'] = "zuletzt gesehen"; +$lang['wishcollsdesc'] = "Zeige Spalte 'zuletzt gesehen' in der stats/list_rankup.php"; +$lang['wishcolnx'] = "nächster rank up"; +$lang['wishcolnxdesc'] = "Zeige Spalte 'nächster Rang' in der stats/list_rankup.php"; +$lang['wishcolot'] = "online Zeit"; +$lang['wishcolotdesc'] = "Zeige Spalte 'ges. online Zeit' in der stats/list_rankup.php"; +$lang['wishcolrg'] = "Rang"; +$lang['wishcolrgdesc'] = "Zeige Spalte 'Rang' in der stats/list_rankup.php"; +$lang['wishcolsg'] = "nächste Servergruppe"; +$lang['wishcolsgdesc'] = "Zeige Spalte 'nächste Servergruppe' in der stats/list_rankup.php"; +$lang['wishcoluuid'] = "Client-ID"; +$lang['wishcoluuiddesc']= "Zeige Spalte 'eindeutige Client-ID' in der stats/list_rankup.php"; +$lang['wishexcld'] = "ausgeschl. Clients"; +$lang['wishexclddesc'] = "Zeige User in der list_rankup.php, welche ausgeschlossen sind und demnach nicht am Ranksystem teilnehmen."; +$lang['wishexgrp'] = "ausgeschl. Servergruppen"; +$lang['wishexgrpdesc'] = "Zeige User in der list_rankup.php, welche über die 'Servergruppen-Ausnahmen' nicht am Ranksystem teilnehmen."; +$lang['wishhicld'] = "User in höchestem Rang"; +$lang['wishhiclddesc'] = "Zeige User in der list_rankup.php, welche den höchsten Rang erreicht haben."; +$lang['wisupidle'] = "Modus"; +$lang['wisupidledesc'] = "Es gibt zwei Ausprägungen, wie Zeiten gewertet werden können und dann für eine Rangsteigerung herangezogen werden.

    1) online Zeit: Hier wird die reine online Zeit des Users beachtet (siehe Spalte 'ges. online Zeit' in der stats/list_rankup.php).
    2) aktive Zeit: Hier wird von der online Zeit eines Users noch die inaktive Zeit (Idle) abgezogen (siehe Spalte 'ges. aktive Zeit' in der stats/list_rankup.php).


    Eine Umstellung des Modus mit einer bereits länger laufenden Datenbank wird nicht empfohlen, kann aber funktionieren."; +$lang['wisvconf'] = "speichern"; +$lang['wisvsuc'] = "Änderungen erfolgreich gesichert!"; +$lang['wisvres'] = "Damit die Änderungen wirksam werden ist ein Neustart des Ranksystems erforderlich!"; +$lang['witime'] = "Zeitzone"; +$lang['witimedesc'] = "Wähle die Zeitzone, die für den Sever gilt."; +$lang['wits3dch'] = "Default Channel"; +$lang['wits3dchdesc'] = "Die channel-ID, mit der sich der Bot verbindet.

    In diesem Channel wechselt der Bot nach dem Verbinden mit dem TeamSpeak Server."; +$lang['wits3host'] = "TS3 Hostadresse"; +$lang['wits3hostdesc'] = "TeamSpeak 3 Server Adresse
    (IP oder DNS)"; +$lang['wits3sm'] = "Slowmode"; +$lang['wits3smdesc'] = "Mit dem Slowmode werden die Query-Anfragen an den TeamSpeak Server reduziert. Dies schützt vor einem Ban aufgrund von flooding.
    TeamSpeak Query Befehle werden mit dieser Funktion verzögert abgeschickt.

    !!! AUCH REDUZIERT ER DIE CPU USAGE !!!

    Die Aktivierung ist nicht empfohlen, wenn nicht benötigt. Die Verzögerung (delay) erhöht die Laufzeit eines Durchgangs des Bots, dadurch wird er unpräziser."; +$lang['wits3qnm'] = "Botname"; +$lang['wits3qnm2'] = "2. Botname"; +$lang['wits3qnm2desc'] = "Ein zweiter Botname, falls der erste bereits genutzt wird."; +$lang['wits3qnmdesc'] = "Der Name, mit dem die Query-Verbindung augebaut werden soll.
    Der Name kann frei gewählt werden."; +$lang['wits3querpw'] = "TS3 Query-Passwort"; +$lang['wits3querpwdesc']= "TeamSpeak 3 Query Passwort
    Passwort des Query Benutzers"; +$lang['wits3querusr'] = "TS3 Query-Benutzer"; +$lang['wits3querusrdesc']= "TeamSpeak 3 Query Benutzername
    Standard ist serveradmin
    Natürlich kann auch ein gesonderter Query-Benutzer erstellt und genutzt werden.
    Die benötigten Rechte sind hier aufgelistet:
    http://ts-n.net/ranksystem.php"; +$lang['wits3query'] = "TS3 Query-Port"; +$lang['wits3querydesc'] = "TeamSpeak 3 Query Port
    Standard ist 10011 (TCP)
    andere Werte sollten in der 'ts3server.ini' zu finden sein."; +$lang['wits3voice'] = "TS3 Voice-Port"; +$lang['wits3voicedesc'] = "TeamSpeak 3 Voice Port
    Standard ist 9987 (UDP)
    Dieser Port wird zum Verbinden mit dem TS3 Client genutzt."; +$lang['wiupcheck'] = "Update Info"; +$lang['wiupcheckdesc'] = "Ist die Update Info aktiv, werden nachfolgend genannte User mit einer privaten Textnachricht informiert, sobald ein Update verfügbar ist."; +$lang['wiuptime'] = "Intervall"; +$lang['wiuptimedesc'] = "Gib an alle wie viel Sekunden das Ranksystem prüfen soll, ob ein Update verfügbar ist.
    Beachte, bei jeder Prüfung werden die hinterlegten User über ein verfügbares Update benachrichtigt. Ist kein hinterlegter User online, wird mit dem nächsten Intervall versucht zu benachrichtigen."; +$lang['wiupuid'] = "Empfänger"; +$lang['wiupuiddesc'] = "Eine Komma getrennte Liste von eindeutigen Client-IDs, welche via privater Textnachricht auf dem TeamSpeak über ein Update informiert werden sollen."; +$lang['wivlang'] = "Sprache"; +$lang['wivlangdesc'] = "Sprache des Ranksystems

    de - Deutsch
    en - english
    it - italiano
    ru - русский"; ?> \ No newline at end of file diff --git a/languages/core_en.php b/languages/core_en.php index 00ce0de..38c5399 100644 --- a/languages/core_en.php +++ b/languages/core_en.php @@ -1,361 +1,364 @@ added to the Ranksystem now."; -$lang['alrup'] = "You already updated your database. Please delete this file from your webspace!"; -$lang['changedbid'] = "User %s (unique Client-ID: %s) got a new TeamSpeak Client-database-ID (%s). Update the old Client-database-ID (%s) and reset collected times!"; -$lang['crawl'] = "Scan for connected user and count the activity..."; -$lang['clean'] = "Scan for clients, which have to delete..."; -$lang['cleanc'] = "clean clients"; -$lang['cleancdesc'] = "With this function the old clients in the Ranksystem get deleted.

    To this end, the Ranksystem sychronized with the TeamSpeak database. Clients, which do not exist in TeamSpeak, will be deleted from the Ranksystem.

    This function is only enabled when the 'Slowmode' is deactivated!


    For automatic adjustment of the TeamSpeak database the ClientCleaner can be used:
    http://ts-n.net/clientcleaner.php"; -$lang['cleandel'] = "There were %s clients deleted out of the Ranksystem database, cause they were no longer existing in the TeamSpeak database."; -$lang['cleanno'] = "There were nothing to delete..."; -$lang['cleanp'] = "clean period"; -$lang['cleanpdesc'] = "Set a time that has to elapse before the 'clean clients' runs next.

    Set a time in seconds.

    Recommended is once a day, cause the client cleaning needs much time for bigger databases."; -$lang['cleanrs'] = "Clients in the Ranksystem database: %s"; -$lang['cleants'] = "Clients found in the TeamSpeak database: %s (of %s)"; -$lang['days'] = "days"; -$lang['dbconerr'] = "Failed to connect to MySQL-Database: "; -$lang['delcldgrpif'] = "Error while removing the knowledge for servergroups: %s"; -$lang['delcldgrpsc'] = "Knowledge about servergroups for %s User successfully removed."; -$lang['delclientsif'] = "%s Clients deleted out of the Ranksystem database!"; -$lang['delclientssc'] = "%s Clients successfully deleted out of the Ranksystem database!"; -$lang['errlogin'] = "Username and/or password are incorrect! Try again..."; -$lang['error'] = "Error "; -$lang['errremgrp'] = "Error while removing user with unique Client-ID %s out of the servergroup with servergroup-database-ID %s!"; -$lang['errremdb'] = "Error while removing user with unique Client-ID %s out of the Ranksystem database!"; -$lang['errsel'] = "Error while choosing the selections with
    selected client: %s
    option 'delete clients': %s
    option 'sum. online time': %s"; -$lang['errukwn'] = "An unknown error has occurred!"; -$lang['errupcount'] = "Error while renewing the summary online time of %s by user with the unique Client-ID %s"; -$lang['firstuse'] = "Seems to be the first run. Start logging the Userhistory..."; -$lang['highest'] = "highest rank reached"; -$lang['instdb'] = "Install database:"; -$lang['instdberr'] = "Error while creating the database: "; -$lang['instdbsubm'] = "Create database"; -$lang['instdbsuc'] = "Database %s successfully created."; -$lang['insttb'] = "Install Tables:"; -$lang['insttberr'] = "Error while creating table: "; -$lang['insttbsuc'] = "Table %s successfully created."; -$lang['isntwicfg'] = "Can't save the database configuration! Please edit the 'other/dbconfig.php' with a chmod 0777 and try again after."; -$lang['isntwichm'] = "Please edit the 'other/dbconfig.php', and the folders 'avatars/', 'icons/' and 'logs/' with the needed permissions. Therefore edit the chmod to 0777. After it try again (reload the page)."; -$lang['isntwidb'] = "Enter your database settings:"; -$lang['isntwidberr'] = "Please check if you filled out all fields correctly!"; -$lang['isntwidbhost'] = "DB Hostaddress:"; -$lang['isntwidbhostdesc'] = "Database server address
    (IP or DNS)"; -$lang['isntwidbmsg'] = "Database error: "; -$lang['isntwidbname'] = "DB Name:"; -$lang['isntwidbnamedesc'] = "Name of database"; -$lang['isntwidbpass'] = "DB Password:"; -$lang['isntwidbpassdesc'] = "Password to access the database"; -$lang['isntwidbtype'] = "DB Type:"; -$lang['isntwidbtypedesc'] = "Database type

    You have to install the needed PDO Driver.
    For more informations have look at the requirements on http://ts-n.net/ranksystem.php"; -$lang['isntwidbusr'] = "DB User:"; -$lang['isntwidbusrdesc'] = "User to access the database"; -$lang['isntwidel'] = "Please delete the file 'install.php' and all 'update_x-xx.php' files from your webserver and open the %s to configure the Ranksystem!"; -$lang['isntwiusr'] = "User for the webinterface successfully created."; -$lang['isntwiusrcr'] = "create access"; -$lang['isntwiusrdesc'] = "Enter a username and password for access the webinterface. With the webinterface you can configurate the ranksytem."; -$lang['isntwiusrh'] = "Access - Webinterface"; -$lang['listacsg'] = "actual servergroup"; -$lang['listcldbid'] = "Client-database-ID"; -$lang['listexgrp'] = "Will not conside for the Ranksystem (servergroup exception)."; -$lang['listexuid'] = "Will not conside for the Ranksystem (client exception)."; -$lang['listip'] = "IP address"; -$lang['listnick'] = "Clientname"; -$lang['listnxsg'] = "next servergroup"; -$lang['listnxup'] = "next rank up"; -$lang['listrank'] = "rank"; -$lang['listseen'] = "last seen"; -$lang['listsuma'] = "sum. active time"; -$lang['listsumi'] = "sum. idle time"; -$lang['listsumo'] = "sum. online time"; -$lang['listtime'] = "%s day(s), %s hour(s), %s min., %s sec."; -$lang['listuid'] = "unique Client-ID"; -$lang['new'] = "new"; -$lang['nocount'] = "User %s (unique Client-ID: %s; Client-database-ID %s) is a query-user or is several times online (only first connection counts) -> this will not count!"; -$lang['noentry'] = "No entries found.."; -$lang['pass'] = "Password: "; -$lang['queryname'] = "First Botname already in use. Trying with second Botname..."; -$lang['sccrmcld'] = "User with unique Client-ID %s successfull removed from the Ranksystem database."; -$lang['sccupcount'] = "User with the unique Client-ID %s successfull overwritten with a summary online time of %s."; -$lang['setontime'] = "sum. online time"; -$lang['setontimedesc'] = "Enter a new summary online time, which should be set to the previous selected clients. With this the old summary online gets overwritten.

    The entered summary online time will be considered for the rank up."; -$lang['sgrpadd'] = "Grant servergroup %s to user %s (unique Client-ID: %s; Client-database-ID %s)."; -$lang['sgrprerr'] = "It happened a problem with the servergroup of the user %s (unique Client-ID: %s; Client-database-ID %s)!"; -$lang['sgrprm'] = "Removed servergroup %s from user %s (unique Client-ID: %s; Client-database-ID %s)."; -$lang['sitegen'] = "Site generated in %s seconds with %s clients."; -$lang['sitegenl'] = "Site generated in %s seconds with %s clients (thereof %s displayed; %s affected by exception rules; %s in highest rank)."; -$lang['stix0001'] = "Server statistics"; -$lang['stix0002'] = "Total users"; -$lang['stix0003'] = "View details"; -$lang['stix0004'] = "Online time of all user / Total"; -$lang['stix0005'] = "View top of all time"; -$lang['stix0006'] = "View top of the month"; -$lang['stix0007'] = "View top of the week"; -$lang['stix0008'] = "Server usage"; -$lang['stix0009'] = "In the last 7 days"; -$lang['stix0010'] = "In the last 30 days"; -$lang['stix0011'] = "In the last 24 hours"; -$lang['stix0012'] = "select period"; -$lang['stix0013'] = "Last day"; -$lang['stix0014'] = "Last week"; -$lang['stix0015'] = "Last month"; -$lang['stix0016'] = "Active / inactive time (of all clients)"; -$lang['stix0017'] = "Versions (of all clients)"; -$lang['stix0018'] = "Nationalities (of all clients)"; -$lang['stix0019'] = "Platforms (of all clients)"; -$lang['stix0020'] = "Current statistics"; -$lang['stix0021'] = "Requested information"; -$lang['stix0022'] = "Result"; -$lang['stix0023'] = "Server status"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "Clients (Online / Max)"; -$lang['stix0027'] = "Amount of channels"; -$lang['stix0028'] = "Average server ping"; -$lang['stix0029'] = "Total bytes received"; -$lang['stix0030'] = "Total bytes sent"; -$lang['stix0031'] = "Server uptime"; -$lang['stix0032'] = "before offline:"; -$lang['stix0033'] = "00 Days, 00 Hours, 00 Mins, 00 Secs"; -$lang['stix0034'] = "Average packet loss"; -$lang['stix0035'] = "Overall statistics"; -$lang['stix0036'] = "Server name"; -$lang['stix0037'] = "Server address (Host Address : Port)"; -$lang['stix0038'] = "Server password"; -$lang['stix0039'] = "No (Server is public)"; -$lang['stix0040'] = "Yes (Server Is private)"; -$lang['stix0041'] = "Server ID"; -$lang['stix0042'] = "Server platform"; -$lang['stix0043'] = "Server version"; -$lang['stix0044'] = "Server creation date (dd/mm/yyyy)"; -$lang['stix0045'] = "Report to server list"; -$lang['stix0046'] = "Activated"; -$lang['stix0047'] = "Not activated"; -$lang['stix0048'] = "not enough data yet..."; -$lang['stix0049'] = "Online time of all user / month"; -$lang['stix0050'] = "Online time of all user / week"; -$lang['stix0051'] = "TeamSpeak has failed, so no creation date..."; -$lang['stmy0001'] = "My statistics"; -$lang['stmy0002'] = "Rank"; -$lang['stmy0003'] = "Database ID:"; -$lang['stmy0004'] = "Unique ID:"; -$lang['stmy0005'] = "Total connections to the server:"; -$lang['stmy0006'] = "Start date for statistics:"; -$lang['stmy0007'] = "Total online time:"; -$lang['stmy0008'] = "Online time last 7 days:"; -$lang['stmy0009'] = "Online time last 30 days:"; -$lang['stmy0010'] = "Achievements completed:"; -$lang['stmy0011'] = "Time achievement progress"; -$lang['stmy0012'] = "Time: Legendary"; -$lang['stmy0013'] = "Because you have an online time of %s hours."; -$lang['stmy0014'] = "Progress completed"; -$lang['stmy0015'] = "Time: Gold"; -$lang['stmy0016'] = "% Completed for Legendary"; -$lang['stmy0017'] = "Time: Silver"; -$lang['stmy0018'] = "% Completed for Gold"; -$lang['stmy0019'] = "Time: Bronze"; -$lang['stmy0020'] = "% Completed for Silver"; -$lang['stmy0021'] = "Time: Unranked"; -$lang['stmy0022'] = "% Completed for Bronze"; -$lang['stmy0023'] = "Connection achievement progress"; -$lang['stmy0024'] = "Connects: Legendary"; -$lang['stmy0025'] = "Because You connected %s times to the server."; -$lang['stmy0026'] = "Connects: Gold"; -$lang['stmy0027'] = "Connects: Silver"; -$lang['stmy0028'] = "Connects: Bronze"; -$lang['stmy0029'] = "Connects: Unranked"; -$lang['stmy0030'] = "Progress next servergroup"; -$lang['stnv0001'] = "Server news"; -$lang['stnv0002'] = "Close"; -$lang['stnv0003'] = "Refresh client information"; -$lang['stnv0004'] = "Only use this refresh, when your TS3 information got changed, such as your TS3 username"; -$lang['stnv0005'] = "It only works, when you are connected to the TS3 server at the same time"; -$lang['stnv0006'] = "Refresh"; -$lang['stnv0007'] = "Battle area - Page content"; -$lang['stnv0008'] = "You can challenge other users in a battle between two users or two teams."; -$lang['stnv0009'] = "While the battle is active the online time of the teams/users will be counted."; -$lang['stnv0010'] = "When the battle ends the team/user with the highest online time wins."; -$lang['stnv0011'] = "(The regular battling time is 48 hours)"; -$lang['stnv0012'] = "The winning team/user will recieve a price, which the user can use whenever the user wants."; -$lang['stnv0013'] = "It will be displayed on the My statistics tab."; -$lang['stnv0014'] = "(Could be online time boost(2x) for 8 hours, instant online time (4 hours), etc."; -$lang['stnv0015'] = "These boosts can be used for example to climb in the top users of the week."; -$lang['stnv0016'] = "Not available"; -$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; -$lang['stnv0018'] = "Please connect to the TS3 Server and then Refresh your Session by pressing the blue Refresh Button at the top-right corner."; -$lang['stnv0019'] = "My statistics - Page content"; -$lang['stnv0020'] = "This page contains a overall summary of your personal statistics and activity on the server."; -$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; -$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; -$lang['stnv0023'] = "The sum inside of the donut charts may differ to the amount of 'Total user'. The reason is that this data weren't collected with older versions of the Ranksystem."; -$lang['stnv0024'] = "Ranksystem - Statistics"; -$lang['stnv0025'] = "Limit entries"; -$lang['stnv0026'] = "all"; -$lang['stnv0027'] = "The informations on this site could be outdated! It seems the Ranksystem is no more connected to the TeamSpeak."; -$lang['stnv0028'] = "(You are not connected to the TS3!)"; -$lang['stnv0029'] = "List Rankup"; -$lang['stnv0030'] = "Ranksystem info"; -$lang['stnv0031'] = "DE - Deutsch"; -$lang['stnv0032'] = "EN - english"; -$lang['stnv0033'] = "RU - русский"; -$lang['stnv0034'] = "IT - italiano"; -$lang['stri0001'] = "Ranksystem information"; -$lang['stri0002'] = "What is the Ranksystem?"; -$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; -$lang['stri0004'] = "Who created the Ranksystem?"; -$lang['stri0005'] = "When the Ranksystem was Created?"; -$lang['stri0006'] = "First alpha release: 05/10/2014."; -$lang['stri0007'] = "First beta release: 01/02/2015."; -$lang['stri0008'] = "You can see the newest version on the Ranksystem Website."; -$lang['stri0009'] = "How was the Ranksystem created?"; -$lang['stri0010'] = "The Ranksystem is coded in"; -$lang['stri0011'] = "It uses also the following libraries:"; -$lang['stri0012'] = "Special Thanks To:"; -$lang['stri0013'] = "sergey - for russian translation"; -$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; -$lang['stri0015'] = "ZanK - for italian translation"; -$lang['sttw0001'] = "Top users"; -$lang['sttw0002'] = "Of the week"; -$lang['sttw0003'] = "With %s hours online time"; -$lang['sttw0004'] = "Top 10 compared"; -$lang['sttw0005'] = "Hours (Defines 100 %)"; -$lang['sttw0006'] = "%s hours (%s%)"; -$lang['sttw0007'] = "Top 10 Statistics"; -$lang['sttw0008'] = "Top 10 vs others in online time"; -$lang['sttw0009'] = "Top 10 vs others in active time"; -$lang['sttw0010'] = "Top 10 vs others in inactive time"; -$lang['sttw0011'] = "Top 10 (in hours)"; -$lang['sttw0012'] = "Other %s users (in hours)"; -$lang['sttw0013'] = "With %s hours active time"; -$lang['sttm0001'] = "Of the month"; -$lang['stta0001'] = "Of all time"; -$lang['updb'] = "You only have to run this if you want to update the Ranksystem from an older version to %s!

    Run this once time and delete the update_%s.php file after from your webserver.


    Update Database:
    "; -$lang['updel'] = "Please remove the following files from the root directory of the ranksystem, if they are still existing:
    %s"; -$lang['upinf'] = "A new Version of the Ranksystem is available; Inform clients on server..."; -$lang['upmov'] = "Please move the \'%s\' into the subfolder \'%s\' and overwrite the existing one!"; -$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]http://ts-n.net/ranksystem.php[/URL]."; -$lang['upsucc'] = "Database update successfully executed."; -$lang['upuser'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s)."; -$lang['upuserboost'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s) [BOOST %sx]."; -$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; -$lang['upusrinf'] = "User %s was successfully informed."; -$lang['user'] = "Username: "; -$lang['usermsgactive'] = "\nHey, you got a rank up, cause you reached an activity of %s days, %s hours, %s minutes and %s seconds."; -$lang['usermsgonline'] = "\nHey, you got a rank up, cause you reached an online time of %s days, %s hours, %s minutes and %s seconds."; -$lang['wiaction'] = "action"; -$lang['wibgco'] = "Background color:"; -$lang['wibgcodesc'] = "Define a background color.
    (valid HTML Code; have to beginn with # )"; -$lang['wiboost'] = "boost"; -$lang['wiboostdesc'] = "Give an user on your TeamSpeak server a servergroup (have to be created manually), which you can declare here as boost group. Define also a factor which should be used (for example 2x) and a time, how long the boost should be rated.
    The higher the factor, the faster an user reaches the next higher rank.
    Is the time expired, the boost servergroup get automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.

    servergroup ID => factor => time (in seconds)

    Each entry have to separate from next with a comma.

    Example:
    12=>2=>6000,13=>3=>2500,14=>5=>600

    On this an user in servergroup 12 get the factor 2 for the next 6000 seconds, an user in servergroup 13 get the factor 3 for 2500 seconds, and so on..."; -$lang['wichdbid'] = "Client-database-ID reset"; -$lang['wichdbiddesc'] = "Reset the online time of an user, if his TeamSpeak Client-database-ID changed.

    Example:
    If a clients gets removed from the TeamSpeak server, it gets a new Client-database-ID with the next connect to the server."; -$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the Core Settings. Especially check the config 'rank up'!"; -$lang['widaform'] = "Date format"; -$lang['widaformdesc'] = "Choose the showing date format.

    Example:
    %a days, %h hours, %i mins, %s secs"; -$lang['widbcfgsuc'] = "Database configurations saved successfully."; -$lang['widbcfgerr'] = "Error by saving the database configurations! Connection failed or writeout error for 'other/dbconfig.php'"; -$lang['widelcld'] = "delete clients"; -$lang['widelcldgrp'] = "renew groups"; -$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

    With this function you can remove once time the knowledge of given servergroups. In effect the ranksystem try to give all clients (which are on the TS3 server online) the servergroup of the actual rank.
    For each client, which gets the group or stay in group, the Ranksystem remember this like described at beginning.

    This function can be helpful, when user are not in the servergroup, they should be for the defined online time.

    Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause he can't remember ;-)"; -$lang['widelclddesc'] = "Delete the before selected clients out of the Ranksystem database.

    With this deletion are the clients on the TeamSpeak Server untouched."; -$lang['widelsg'] = "remove out of servergroups"; -$lang['widelsgdesc'] = "Choose if the clients should also be removed out of the last known servergroup, when you delete clients out of the Ranksystem database.

    It will only considered servergroups, which concerned the Ranksystem"; -$lang['wideltime'] = "Deletiontime"; -$lang['wideltimedesc'] = "Clean old clients out of the Ranksystem database.
    Entry a time in seconds which a client was not seen to delete it.

    0 - deletes all clients out of the Ranksystem

    The Userdatas on the TeamSpeak server are with this untouched!"; -$lang['wiexgrp'] = "servergroup exception"; -$lang['wiexgrpdesc'] = "A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
    User in at least one of this servergroups IDs will be ignored for the rank up."; -$lang['wiexuid'] = "client exception"; -$lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
    User in this list will be ignored for the rank up."; -$lang['wigrptime'] = "rank up"; -$lang['wigrptimedesc'] = "Define here after which time a user should get automatically a predefined servergroup.

    time (seconds)=>servergroup ID

    Important for this is the online time of an user or if 'Idletime' is active, the active time.

    Each entry have to separate from next with a comma.

    The time must be entered cumulative

    Example:
    60=>9,120=>10,180=>11

    On this a user get after 60 seconds the servergroup 9, in turn after 60 seconds the servergroup 10, and so on..."; -$lang['wihdco'] = "Headline color:"; -$lang['wihdcodesc'] = "Define a headline color.
    (valid HTML Code; have to beginn with # )"; -$lang['wihl'] = "Webinterface - Ranksystem"; -$lang['wihladm'] = "admin list"; -$lang['wihlcfg'] = "Core settings"; -$lang['wihlclg'] = "Edit clients (global)"; -$lang['wihlcls'] = "Edit clients (selective)"; -$lang['wihldb'] = "Database settings"; -$lang['wihlsty'] = "Style settings"; -$lang['wihlts'] = "TeamSpeak settings"; -$lang['wihvco'] = "Hover color:"; -$lang['wihvcodesc'] = "Define a hover color.
    (valid HTML Code; have to beginn with # )"; -$lang['wiifco'] = "Infotext color:"; -$lang['wiifcodesc'] = "Define a info-text color.
    (valid HTML Code; have to beginn with # )"; -$lang['wilog'] = "Logpath"; -$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

    Example:
    /var/logs/ranksystem/

    Be sure, the webuser has the write-permissions to the logpath."; -$lang['wilogout'] = "LogOut"; -$lang['wimsgusr'] = "Notification"; -$lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up.
    Define the message in 'lang.php'
    (usermsgonline or usermsgactive)"; -$lang['wiscco'] = "Successtext color:"; -$lang['wisccodesc'] = "Define a success-text color.
    (valid HTML Code; have to beginn with # )"; -$lang['wiselcld'] = "select clients"; -$lang['wiselclddesc'] = "Select the clients by the last known username. For this you only have to start typing.
    Multiple selections are comma separated, which does the system automatically.

    With the selection you can choose with the next step an action."; -$lang['wishcolas'] = "actual servergroup"; -$lang['wishcolasdesc'] = "Show column 'actual servergroup' in list_rankup.php"; -$lang['wishcolat'] = "active time"; -$lang['wishcolatdesc'] = "Show column 'sum. active time' in list_rankup.php"; -$lang['wishcolcld'] = "Client-name"; -$lang['wishcolclddesc'] = "Show column 'Client-name' in list_rankup.php"; -$lang['wishcoldbid'] = "database-ID"; -$lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in list_rankup.php"; -$lang['wishcolit'] = "idle time"; -$lang['wishcolitdesc'] = "Show column 'sum idle time' in list_rankup.php"; -$lang['wishcolls'] = "last seen"; -$lang['wishcollsdesc'] = "Show column 'last seen' in list_rankup.php"; -$lang['wishcolnx'] = "next rank up"; -$lang['wishcolnxdesc'] = "Show column 'next rank up' in list_rankup.php"; -$lang['wishcolot'] = "online time"; -$lang['wishcolotdesc'] = "Show column 'sum. online time' in list_rankup.php"; -$lang['wishcolrg'] = "rank"; -$lang['wishcolrgdesc'] = "Show column 'rank' in list_rankup.php"; -$lang['wishcolsg'] = "next servergroup"; -$lang['wishcolsgdesc'] = "Show column 'next servergroup' in list_rankup.php"; -$lang['wishcoluuid'] = "Client-ID"; -$lang['wishcoluuiddesc'] = "Show column 'unique Client-ID' in list_rankup.php"; -$lang['wishexcld'] = "excepted client"; -$lang['wishexclddesc'] = "Show clients in list_rankup.php,
    which are excepted by his uniqueID."; -$lang['wishexgrp'] = "excepted groups"; -$lang['wishexgrpdesc'] = "Show clients in list_rankup.php, which are in the list 'client exception' and shouldn't be conside for the Ranksystem."; -$lang['wishgen'] = "Sitegen"; -$lang['wishgendesc'] = "Show the needed time for the generation of the site at the end of the site."; -$lang['wishhicld'] = "Clients in highest Level"; -$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem."; -$lang['wisupidle'] = "Idletime"; -$lang['wisupidledesc'] = "If this function is active, the 'sum. idle time' will be substrate from the 'sum. online time'. Instead of the 'sum. online time', the previoused substration will consided for the rank up."; -$lang['wisvconf'] = "save"; -$lang['wisvsuc'] = "Changes successfully saved!"; -$lang['witime'] = "Timezone"; -$lang['witimedesc'] = "Select the timezone the server is hosted."; -$lang['wits3dch'] = "Default Channel"; -$lang['wits3dchdesc'] = "The channel-ID, the bot should connect with.

    The Bot will join this channel after connecting to the TeamSpeak server."; -$lang['wits3host'] = "TS3 Hostaddress"; -$lang['wits3hostdesc'] = "TeamSpeak 3 Server address
    (IP oder DNS)"; -$lang['wits3sm'] = "Slowmode"; -$lang['wits3smdesc'] = "With the Slowmode you can reduce \"spam\" of query commands to the TeamSpeak server. This prevent bans in case of flood.
    TeamSpeak Query commands get delayed with this function.

    !!! ALSO IT REDUCE THE CPU USAGE !!!

    The activation is not recommended, if not required. The delay increases the duration of the Bot, which makes it imprecisely."; -$lang['wits3qnm'] = "Botname"; -$lang['wits3qnm2'] = "2nd Botname"; -$lang['wits3qnm2desc'] = "A fallback Botname, if the first one is already in use."; -$lang['wits3qnmdesc'] = "The name, with this the query-connection will be established.
    You can name it free."; -$lang['wits3querpw'] = "TS3 Query-Password"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 query password
    Password for the query user."; -$lang['wits3querusr'] = "TS3 Query-User"; -$lang['wits3querusrdesc'] = "TeamSpeak 3 query username
    Default is serveradmin
    Of course, you can also create an additional serverquery account only for the Ranksystem.
    The needed permissions you find on:
    http://ts-n.net/ranksystem.php"; -$lang['wits3query'] = "TS3 Query-Port"; -$lang['wits3querydesc'] = "TeamSpeak 3 query port
    Default is 10011 (TCP)
    If its not default, you should find it in your 'ts3server.ini'."; -$lang['wits3voice'] = "TS3 Voice-Port"; -$lang['wits3voicedesc'] = "TeamSpeak 3 voice port
    Default is 9987 (UDP)
    This is the port, you uses also to connect with the TS3 Client."; -$lang['witxco'] = "Text color:"; -$lang['witxcodesc'] = "Define a text color.
    (valid HTML Code; have to beginn with # )"; -$lang['wiupcheck'] = "Update-Check"; -$lang['wiupcheckdesc'] = "If the Update-Check is enable, the listed user gets a notification with a private text message, once an update is available."; -$lang['wiuptime'] = "Checkinterval"; -$lang['wiuptimedesc'] = "Enter here how much seconds have to gone till the Ranksystem should check for available updates.
    Attention, for each check the listed user gets a notification. If no one of the listed users is online, the Ranksystem will try to notificate with the next interval."; -$lang['wiupuid'] = "Recipient"; -$lang['wiupuiddesc'] = "A comma separate list of unique Client-IDs, which shoud be informed on the TeamSpeak via private message for available updates."; -$lang['wiversion'] = "(current version %s)"; -$lang['wivlang'] = "Language"; -$lang['wivlangdesc'] = "Language for the Ranksystem

    de - Deutsch
    en - english
    it - italiano
    ru - русский"; -$lang['wiwnco'] = "Warntext color:"; -$lang['wiwncodesc'] = "Define a warntext color.
    (valid HTML Code; have to beginn with # )"; -?> +$lang['adduser'] = "User %s (unique Client-ID: %s; Client-database-ID %s) is unknown -> added to the Ranksystem now."; +$lang['changedbid'] = "User %s (unique Client-ID: %s) got a new TeamSpeak Client-database-ID (%s). Update the old Client-database-ID (%s) and reset collected times!"; +$lang['crawl'] = "Scan for connected user and count the activity..."; +$lang['clean'] = "Scan for clients, which have to delete..."; +$lang['cleanc'] = "clean clients"; +$lang['cleancdesc'] = "With this function the old clients in the Ranksystem get deleted.

    To this end, the Ranksystem sychronized with the TeamSpeak database. Clients, which do not exist in TeamSpeak, will be deleted from the Ranksystem.

    This function is only enabled when the 'Slowmode' is deactivated!


    For automatic adjustment of the TeamSpeak database the ClientCleaner can be used:
    http://ts-n.net/clientcleaner.php"; +$lang['cleandel'] = "There were %s clients deleted out of the Ranksystem database, cause they were no longer existing in the TeamSpeak database."; +$lang['cleanno'] = "There were nothing to delete..."; +$lang['cleanp'] = "clean period"; +$lang['cleanpdesc'] = "Set a time that has to elapse before the 'clean clients' runs next.

    Set a time in seconds.

    Recommended is once a day, cause the client cleaning needs much time for bigger databases."; +$lang['cleanrs'] = "Clients in the Ranksystem database: %s"; +$lang['cleants'] = "Clients found in the TeamSpeak database: %s (of %s)"; +$lang['days'] = "%s days"; +$lang['dbconerr'] = "Failed to connect to Database: "; +$lang['delcldgrpif'] = "Error while removing the knowledge for servergroups: %s"; +$lang['delcldgrpsc'] = "Knowledge about servergroups for %s User successfully removed."; +$lang['delclientsif'] = "%s Clients deleted out of the Ranksystem database!"; +$lang['delclientssc'] = "%s Clients successfully deleted out of the Ranksystem database!"; +$lang['errlogin'] = "Username and/or password are incorrect! Try again..."; +$lang['errlogin2'] = "Brute force protection: Try it again in %s seconds!"; +$lang['errlogin3'] = "Brute force protection: To much misstakes. Banned for 300 Seconds!"; +$lang['error'] = "Error "; +$lang['errremgrp'] = "Error while removing user with unique Client-ID %s out of the servergroup with servergroup-database-ID %s!"; +$lang['errremdb'] = "Error while removing user with unique Client-ID %s out of the Ranksystem database!"; +$lang['errsel'] = "Error while choosing the selections with
    selected client: %s
    option 'delete clients': %s
    option 'sum. online time': %s"; +$lang['errukwn'] = "An unknown error has occurred!"; +$lang['errupcount'] = "Error while renewing the summary online time of %s by user with the unique Client-ID %s"; +$lang['highest'] = "highest rank reached"; +$lang['install'] = "Installation"; +$lang['instdb'] = "Install database"; +$lang['instdbsuc'] = "Database %s successfully created."; +$lang['isntwicfg'] = "Can't save the database configuration! Please edit the 'other/dbconfig.php' with a chmod 0777 and try again after."; +$lang['isntwicfg2'] = "Configurate Webinterface"; +$lang['isntwichm'] = "Write Permissions failed on folder \"%s\". Please give them a chmod 777 and try to start the Ranksystem again."; +$lang['isntwidbhost'] = "DB Hostaddress:"; +$lang['isntwidbhostdesc']= "Database server address
    (IP or DNS)"; +$lang['isntwidbmsg'] = "Database error: "; +$lang['isntwidbname'] = "DB Name:"; +$lang['isntwidbnamedesc']= "Name of database"; +$lang['isntwidbpass'] = "DB Password:"; +$lang['isntwidbpassdesc']= "Password to access the database"; +$lang['isntwidbtype'] = "DB Type:"; +$lang['isntwidbtypedesc']= "Database type

    You have to install the needed PDO Driver.
    For more informations have look at the requirements on http://ts-n.net/ranksystem.php"; +$lang['isntwidbusr'] = "DB User:"; +$lang['isntwidbusrdesc']= "User to access the database"; +$lang['isntwidel'] = "Please delete the file 'install.php' from your webserver and open the %s to configure the Ranksystem!"; +$lang['isntwiusr'] = "User for the webinterface successfully created."; +$lang['isntwiusrcr'] = "Create Webinterface-User"; +$lang['isntwiusrdesc'] = "Enter a username and password for access the webinterface. With the webinterface you can configurate the ranksytem."; +$lang['isntwiusrh'] = "Access - Webinterface"; +$lang['listacsg'] = "actual servergroup"; +$lang['listcldbid'] = "Client-database-ID"; +$lang['listexgrp'] = "Will not conside for the Ranksystem (servergroup exception)."; +$lang['listexuid'] = "Will not conside for the Ranksystem (client exception)."; +$lang['listip'] = "IP address"; +$lang['listnick'] = "Clientname"; +$lang['listnxsg'] = "next servergroup"; +$lang['listnxup'] = "next rank up"; +$lang['listrank'] = "rank"; +$lang['listseen'] = "last seen"; +$lang['listsuma'] = "sum. active time"; +$lang['listsumi'] = "sum. idle time"; +$lang['listsumo'] = "sum. online time"; +$lang['listuid'] = "unique Client-ID"; +$lang['login'] = "Login"; +$lang['nocount'] = "User %s (unique Client-ID: %s; Client-database-ID %s) is a query-user or is several times online (only first connection counts) -> this will not count!"; +$lang['noentry'] = "No entries found.."; +$lang['pass'] = "Password"; +$lang['queryname'] = "First Botname already in use. Trying with second Botname..."; +$lang['sccrmcld'] = "User with unique Client-ID %s successfull removed from the Ranksystem database."; +$lang['sccupcount'] = "User with the unique Client-ID %s successfull overwritten with a summary online time of %s."; +$lang['setontime'] = "sum. online time"; +$lang['setontimedesc'] = "Enter a new summary online time, which should be set to the previous selected clients. With this the old summary online gets overwritten.

    The entered summary online time will be considered for the rank up."; +$lang['sgrpadd'] = "Grant servergroup %s to user %s (unique Client-ID: %s; Client-database-ID %s)."; +$lang['sgrprerr'] = "It happened a problem with the servergroup of the user %s (unique Client-ID: %s; Client-database-ID %s)!"; +$lang['sgrprm'] = "Removed servergroup %s from user %s (unique Client-ID: %s; Client-database-ID %s)."; +$lang['stix0001'] = "Server statistics"; +$lang['stix0002'] = "Total users"; +$lang['stix0003'] = "View details"; +$lang['stix0004'] = "Online time of all user / Total"; +$lang['stix0005'] = "View top of all time"; +$lang['stix0006'] = "View top of the month"; +$lang['stix0007'] = "View top of the week"; +$lang['stix0008'] = "Server usage"; +$lang['stix0009'] = "In the last 7 days"; +$lang['stix0010'] = "In the last 30 days"; +$lang['stix0011'] = "In the last 24 hours"; +$lang['stix0012'] = "select period"; +$lang['stix0013'] = "Last day"; +$lang['stix0014'] = "Last week"; +$lang['stix0015'] = "Last month"; +$lang['stix0016'] = "Active / inactive time (of all clients)"; +$lang['stix0017'] = "Versions (of all clients)"; +$lang['stix0018'] = "Nationalities (of all clients)"; +$lang['stix0019'] = "Platforms (of all clients)"; +$lang['stix0020'] = "Current statistics"; +$lang['stix0023'] = "Server status"; +$lang['stix0024'] = "Online"; +$lang['stix0025'] = "Offline"; +$lang['stix0026'] = "Clients (Online / Max)"; +$lang['stix0027'] = "Amount of channels"; +$lang['stix0028'] = "Average server ping"; +$lang['stix0029'] = "Total bytes received"; +$lang['stix0030'] = "Total bytes sent"; +$lang['stix0031'] = "Server uptime"; +$lang['stix0032'] = "before offline:"; +$lang['stix0033'] = "00 Days, 00 Hours, 00 Mins, 00 Secs"; +$lang['stix0034'] = "Average packet loss"; +$lang['stix0035'] = "Overall statistics"; +$lang['stix0036'] = "Server name"; +$lang['stix0037'] = "Server address (Host Address : Port)"; +$lang['stix0038'] = "Server password"; +$lang['stix0039'] = "No (Server is public)"; +$lang['stix0040'] = "Yes (Server Is private)"; +$lang['stix0041'] = "Server ID"; +$lang['stix0042'] = "Server platform"; +$lang['stix0043'] = "Server version"; +$lang['stix0044'] = "Server creation date (dd/mm/yyyy)"; +$lang['stix0045'] = "Report to server list"; +$lang['stix0046'] = "Activated"; +$lang['stix0047'] = "Not activated"; +$lang['stix0048'] = "not enough data yet..."; +$lang['stix0049'] = "Online time of all user / month"; +$lang['stix0050'] = "Online time of all user / week"; +$lang['stix0051'] = "TeamSpeak has failed, so no creation date..."; +$lang['stmy0001'] = "My statistics"; +$lang['stmy0002'] = "Rank"; +$lang['stmy0003'] = "Database ID:"; +$lang['stmy0004'] = "Unique ID:"; +$lang['stmy0005'] = "Total connections to the server:"; +$lang['stmy0006'] = "Start date for statistics:"; +$lang['stmy0007'] = "Total online time:"; +$lang['stmy0008'] = "Online time last 7 days:"; +$lang['stmy0009'] = "Online time last 30 days:"; +$lang['stmy0010'] = "Achievements completed:"; +$lang['stmy0011'] = "Time achievement progress"; +$lang['stmy0012'] = "Time: Legendary"; +$lang['stmy0013'] = "Because you have an online time of %s hours."; +$lang['stmy0014'] = "Progress completed"; +$lang['stmy0015'] = "Time: Gold"; +$lang['stmy0016'] = "% Completed for Legendary"; +$lang['stmy0017'] = "Time: Silver"; +$lang['stmy0018'] = "% Completed for Gold"; +$lang['stmy0019'] = "Time: Bronze"; +$lang['stmy0020'] = "% Completed for Silver"; +$lang['stmy0021'] = "Time: Unranked"; +$lang['stmy0022'] = "% Completed for Bronze"; +$lang['stmy0023'] = "Connection achievement progress"; +$lang['stmy0024'] = "Connects: Legendary"; +$lang['stmy0025'] = "Because You connected %s times to the server."; +$lang['stmy0026'] = "Connects: Gold"; +$lang['stmy0027'] = "Connects: Silver"; +$lang['stmy0028'] = "Connects: Bronze"; +$lang['stmy0029'] = "Connects: Unranked"; +$lang['stmy0030'] = "Progress next servergroup"; +$lang['stnv0001'] = "Server news"; +$lang['stnv0002'] = "Close"; +$lang['stnv0003'] = "Refresh client information"; +$lang['stnv0004'] = "Only use this refresh, when your TS3 information got changed, such as your TS3 username"; +$lang['stnv0005'] = "It only works, when you are connected to the TS3 server at the same time"; +$lang['stnv0006'] = "Refresh"; +$lang['stnv0007'] = "Battle area - Page content"; +$lang['stnv0008'] = "You can challenge other users in a battle between two users or two teams."; +$lang['stnv0009'] = "While the battle is active the online time of the teams/users will be counted."; +$lang['stnv0010'] = "When the battle ends the team/user with the highest online time wins."; +$lang['stnv0011'] = "(The regular battling time is 48 hours)"; +$lang['stnv0012'] = "The winning team/user will recieve a price, which the user can use whenever the user wants."; +$lang['stnv0013'] = "It will be displayed on the My statistics tab."; +$lang['stnv0014'] = "(Could be online time boost(2x) for 8 hours, instant online time (4 hours), etc."; +$lang['stnv0015'] = "These boosts can be used for example to climb in the top users of the week."; +$lang['stnv0016'] = "Not available"; +$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; +$lang['stnv0018'] = "Please connect to the TS3 Server and then Refresh your Session by pressing the blue Refresh Button at the top-right corner."; +$lang['stnv0019'] = "My statistics - Page content"; +$lang['stnv0020'] = "This page contains a overall summary of your personal statistics and activity on the server."; +$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; +$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; +$lang['stnv0023'] = "The sum inside of the donut charts may differ to the amount of 'Total user'. The reason is that this data weren't collected with older versions of the Ranksystem."; +$lang['stnv0024'] = "Ranksystem - Statistics"; +$lang['stnv0025'] = "Limit entries"; +$lang['stnv0026'] = "all"; +$lang['stnv0027'] = "The informations on this site could be outdated! It seems the Ranksystem is no more connected to the TeamSpeak."; +$lang['stnv0028'] = "(You are not connected to the TS3!)"; +$lang['stnv0029'] = "List Rankup"; +$lang['stnv0030'] = "Ranksystem info"; +$lang['stnv0031'] = "About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID."; +$lang['stnv0032'] = "You can also use a view filter options (see below). Enter the filter also inside the search field."; +$lang['stnv0033'] = "Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern."; +$lang['stnv0034'] = "Also it is possible to combine multiple filters. Enter this consecutively inside the search field."; +$lang['stnv0035'] = "Example:
    filter:nonexcepted:TeamSpeakUser"; +$lang['stnv0036'] = "Show only clients, which are excepted (client, servergroup or channel exception)."; +$lang['stnv0037'] = "Show only clients, which are not excepted."; +$lang['stnv0038'] = "Show only clients, which are online."; +$lang['stnv0039'] = "Show only clients, which are not online."; +$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.
    Replace GROUPID with the wished servergroup ID."; +$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
    Replace OPERATOR with '<' or '>' or '=' or '!='.
    And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
    Full example: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = "Show only clients, which are from defined country.
    Replace TS3-COUNTRY-CODE with the wished country.
    For list of codes google for ISO 3166-1 alpha-2"; +$lang['stri0001'] = "Ranksystem information"; +$lang['stri0002'] = "What is the Ranksystem?"; +$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; +$lang['stri0004'] = "Who created the Ranksystem?"; +$lang['stri0005'] = "When the Ranksystem was Created?"; +$lang['stri0006'] = "First alpha release: 05/10/2014."; +$lang['stri0007'] = "First beta release: 01/02/2015."; +$lang['stri0008'] = "You can see the newest version on the Ranksystem Website."; +$lang['stri0009'] = "How was the Ranksystem created?"; +$lang['stri0010'] = "The Ranksystem is coded in"; +$lang['stri0011'] = "It uses also the following libraries:"; +$lang['stri0012'] = "Special Thanks To:"; +$lang['stri0013'] = "sergey, Arselopster & DeviantUser - for russian translation"; +$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; +$lang['stri0015'] = "ZanK - for italian translation"; +$lang['stri0016'] = "DeStRoYzR & Jehad - for initialisation arabic translation"; +$lang['stri0017'] = "SakaLuX - for initialisation romanian translation"; +$lang['sttw0001'] = "Top users"; +$lang['sttw0002'] = "Of the week"; +$lang['sttw0003'] = "With %s hours online time"; +$lang['sttw0004'] = "Top 10 compared"; +$lang['sttw0005'] = "Hours (Defines 100 %)"; +$lang['sttw0006'] = "%s hours (%s%)"; +$lang['sttw0007'] = "Top 10 Statistics"; +$lang['sttw0008'] = "Top 10 vs others in online time"; +$lang['sttw0009'] = "Top 10 vs others in active time"; +$lang['sttw0010'] = "Top 10 vs others in inactive time"; +$lang['sttw0011'] = "Top 10 (in hours)"; +$lang['sttw0012'] = "Other %s users (in hours)"; +$lang['sttw0013'] = "With %s hours active time"; +$lang['sttm0001'] = "Of the month"; +$lang['stta0001'] = "Of all time"; +$lang['upinf'] = "A new Version of the Ranksystem is available; Inform clients on server..."; +$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]http://ts-n.net/ranksystem.php[/URL]."; +$lang['upsucc'] = "Database update successfully executed."; +$lang['upuser'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s)."; +$lang['upuserboost'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s) [BOOST %sx]."; +$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; +$lang['upusrinf'] = "User %s was successfully informed."; +$lang['user'] = "Username"; +$lang['wiaction'] = "action"; +$lang['wiboost'] = "boost"; +$lang['wiboostdesc'] = "Give an user on your TeamSpeak server a servergroup (have to be created manually), which you can declare here as boost group. Define also a factor which should be used (for example 2x) and a time, how long the boost should be rated.
    The higher the factor, the faster an user reaches the next higher rank.
    Is the time expired, the boost servergroup get automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.

    servergroup ID => factor => time (in seconds)

    Each entry have to separate from next with a comma.

    Example:
    12=>2=>6000,13=>3=>2500,14=>5=>600

    On this an user in servergroup 12 get the factor 2 for the next 6000 seconds, an user in servergroup 13 get the factor 3 for 2500 seconds, and so on..."; +$lang['wibot1'] = "Ranksystem Bot should be stopped. Check the log below for more information!"; +$lang['wibot2'] = "Ranksystem Bot should be started. Check the log below for more information!"; +$lang['wibot3'] = "Ranksystem Bot should be restarted. Check the log below for more information!"; +$lang['wibot4'] = "Start / Stop Ranksystem Bot"; +$lang['wibot5'] = "Start Bot"; +$lang['wibot6'] = "Stop Bot"; +$lang['wibot7'] = "Restart Bot"; +$lang['wibot8'] = "Ranksystem log (extract):"; +$lang['wibot9'] = "Fill out all mandatory fields before starting the Ranksystem Bot!"; +$lang['wichdbid'] = "Client-database-ID reset"; +$lang['wichdbiddesc'] = "Reset the online time of an user, if his TeamSpeak Client-database-ID changed.

    Example:
    If a clients gets removed from the TeamSpeak server, it gets a new Client-database-ID with the next connect to the server."; +$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the Core Settings. Especially check the config 'rank up'!"; +$lang['widaform'] = "Date format"; +$lang['widaformdesc'] = "Choose the showing date format.

    Example:
    %a days, %h hours, %i mins, %s secs"; +$lang['widbcfgsuc'] = "Database configurations saved successfully."; +$lang['widbcfgerr'] = "Error while saving the database configurations! Connection failed or writeout error for 'other/dbconfig.php'"; +$lang['widelcld'] = "delete clients"; +$lang['widelcldgrp'] = "renew groups"; +$lang['widelcldgrpdesc']= "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

    With this function you can remove once time the knowledge of given servergroups. In effect the ranksystem try to give all clients (which are on the TS3 server online) the servergroup of the actual rank.
    For each client, which gets the group or stay in group, the Ranksystem remember this like described at beginning.

    This function can be helpful, when user are not in the servergroup, they should be for the defined online time.

    Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause it can't remember ;-)"; +$lang['widelclddesc'] = "Delete the before selected clients out of the Ranksystem database.

    With this deletion are the clients on the TeamSpeak Server untouched."; +$lang['widelsg'] = "remove out of servergroups"; +$lang['widelsgdesc'] = "Choose if the clients should also be removed out of the last known servergroup, when you delete clients out of the Ranksystem database.

    It will only considered servergroups, which concerned the Ranksystem"; +$lang['wideltime'] = "Deletiontime"; +$lang['wideltimedesc'] = "Clean old clients out of the Ranksystem database.
    Entry a time in seconds which a client was not seen to delete it.

    0 - deletes all clients out of the Ranksystem

    The Userdatas on the TeamSpeak server are with this untouched!"; +$lang['wiexcid'] = "channel exception"; +$lang['wiexciddesc'] = "A comma separated list of the channel-IDs that are not to participate in the Ranksystem.

    Stay users in one of the listed channels, the time there will be completely ignored. There is neither the online time, yet the idle time counted.

    Sense does this function only with the mode 'online time', cause here could be ignored AFK channels for example.
    With the mode 'active time', this function is useless because as would be deducted the idle time in AFK rooms and thus not counted anyway.

    Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user dows no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; +$lang['wiexgrp'] = "servergroup exception"; +$lang['wiexgrpdesc'] = "A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
    User in at least one of this servergroups IDs will be ignored for the rank up."; +$lang['wiexuid'] = "client exception"; +$lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
    User in this list will be ignored for the rank up."; +$lang['wigrptime'] = "rank up definition"; +$lang['wigrptimedesc'] = "Define here after which time a user should get automatically a predefined servergroup.

    time (seconds)=>servergroup ID

    Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.

    Each entry have to separate from next with a comma.

    The time must be entered cumulative

    Example:
    60=>9,120=>10,180=>11

    On this a user get after 60 seconds the servergroup 9, in turn after 60 seconds the servergroup 10, and so on..."; +$lang['wihladm'] = "List Rankup (Admin-Mode)"; +$lang['wihlcfg'] = "Core settings"; +$lang['wihldb'] = "Database settings"; +$lang['wihlmsg'] = "Message settings"; +$lang['wihlsty'] = "Stats page settings"; +$lang['wihlts'] = "TeamSpeak settings"; +$lang['wihlvs'] = "Various settings"; +$lang['wiignidle'] = "Ignore idle"; +$lang['wiignidledesc'] = "Define a period, up to which the idle time of an user will be ignored.

    When a client does not do anything on the server (=idle), this time is noted by the Ranksystem. With this feature the idle time of an user will not be counted until the defined limit. Only when the defined limit is exceeded, it counts from that date for the Ranksystem as idle time.

    This function plays only in conjunction with the mode 'active time' a role.

    Meaning the function is e.g. to evaluate the time of listening in conversations as activity.

    0 = disable the feature

    Example:
    Ignore idle = 600 (seconds)
    A client has an idle of 8 minuntes
    consequence:
    8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to over 12 minutes so the time is over 10 minutes, and in this case 2 minutes would be counted as idle time."; +$lang['wilog'] = "Logpath"; +$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

    Example:
    /var/logs/ranksystem/

    Be sure, the webuser has the write-permissions to the logpath."; +$lang['wimsgmsg'] = "Message"; +$lang['wimsgmsgdesc'] = "Define a message, which will be send to an user, when he rises the next higher rank.

    This message will be send via TS3 private message. So every know bb-code could be used, which also works for a normal private message.
    http://ts-n.net/lexicon.php?showid=97#lexindex

    Furthermore, the previously spent time can be expressed by arguments:
    %1\$s - days
    %2\$s - hours
    %3\$s - minutes
    %4\$s - seconds

    Example:
    Hey,\\nyou reached a higher rank, since you already connected for %1\$s days, %2\$s hours and %3\$s minutes to our TS3 server.[B]Keep it up![/B] ;-)"; +$lang['wilogout'] = "Logout"; +$lang['wimsgusr'] = "Rank up notification"; +$lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "Database"; +$lang['winav3'] = "Core"; +$lang['winav4'] = "Other"; +$lang['winav5'] = "Message"; +$lang['winav6'] = "Stats page"; +$lang['winav7'] = "Administrate"; +$lang['winav8'] = "Start / Stop Bot"; +$lang['winav9'] = "Update available!"; +$lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; +$lang['wiselcld'] = "select clients"; +$lang['wiselclddesc'] = "Select the clients by the last known username. For this you only have to start typing.
    Multiple selections are comma separated, which does the system automatically.

    With the selection you can choose with the next step an action."; +$lang['wishcolas'] = "actual servergroup"; +$lang['wishcolasdesc'] = "Show column 'actual servergroup' in list_rankup.php"; +$lang['wishcolat'] = "active time"; +$lang['wishcolatdesc'] = "Show column 'sum. active time' in list_rankup.php"; +$lang['wishcolcld'] = "Client-name"; +$lang['wishcolclddesc'] = "Show column 'Client-name' in list_rankup.php"; +$lang['wishcoldbid'] = "database-ID"; +$lang['wishcoldbiddesc']= "Show column 'Client-database-ID' in list_rankup.php"; +$lang['wishcolit'] = "idle time"; +$lang['wishcolitdesc'] = "Show column 'sum idle time' in list_rankup.php"; +$lang['wishcolls'] = "last seen"; +$lang['wishcollsdesc'] = "Show column 'last seen' in list_rankup.php"; +$lang['wishcolnx'] = "next rank up"; +$lang['wishcolnxdesc'] = "Show column 'next rank up' in list_rankup.php"; +$lang['wishcolot'] = "online time"; +$lang['wishcolotdesc'] = "Show column 'sum. online time' in list_rankup.php"; +$lang['wishcolrg'] = "rank"; +$lang['wishcolrgdesc'] = "Show column 'rank' in list_rankup.php"; +$lang['wishcolsg'] = "next servergroup"; +$lang['wishcolsgdesc'] = "Show column 'next servergroup' in list_rankup.php"; +$lang['wishcoluuid'] = "Client-ID"; +$lang['wishcoluuiddesc']= "Show column 'unique Client-ID' in list_rankup.php"; +$lang['wishexcld'] = "excepted client"; +$lang['wishexclddesc'] = "Show clients in list_rankup.php,
    which are excluded and therefore not participate in the Ranksystem."; +$lang['wishexgrp'] = "excepted groups"; +$lang['wishexgrpdesc'] = "Show clients in list_rankup.php, which are in the list 'client exception' and shouldn't be conside for the Ranksystem."; +$lang['wishhicld'] = "Clients in highest Level"; +$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem."; +$lang['wisupidle'] = "Mode"; +$lang['wisupidledesc'] = "There are two modes, as time can be counted and can then apply for a rank increase. 1) online time: Here the pure online time of the user is taken into account (see column 'sum. online time' in the 'stats/list_rankup.php') 2) active time: This will be deducted from the online time of a user, the inactive time (idle) (see column 'sum. active time' in the 'stats/list_rankup.php'). A change of mode with an already longer running database is not recommended, but may work."; +$lang['wisvconf'] = "save"; +$lang['wisvsuc'] = "Changes successfully saved!"; +$lang['wisvres'] = "You need to restart the Ranksystem before the changes will take effect!"; +$lang['witime'] = "Timezone"; +$lang['witimedesc'] = "Select the timezone the server is hosted."; +$lang['wits3dch'] = "Default Channel"; +$lang['wits3dchdesc'] = "The channel-ID, the bot should connect with.

    The Bot will join this channel after connecting to the TeamSpeak server."; +$lang['wits3host'] = "TS3 Hostaddress"; +$lang['wits3hostdesc'] = "TeamSpeak 3 Server address
    (IP oder DNS)"; +$lang['wits3sm'] = "Slowmode"; +$lang['wits3smdesc'] = "With the Slowmode you can reduce \"spam\" of query commands to the TeamSpeak server. This prevent bans in case of flood.
    TeamSpeak Query commands get delayed with this function.

    !!! ALSO IT REDUCE THE CPU USAGE !!!

    The activation is not recommended, if not required. The delay increases the duration of the Bot, which makes it imprecisely."; +$lang['wits3qnm'] = "Botname"; +$lang['wits3qnm2'] = "2nd Botname"; +$lang['wits3qnm2desc'] = "A fallback Botname, if the first one is already in use."; +$lang['wits3qnmdesc'] = "The name, with this the query-connection will be established.
    You can name it free."; +$lang['wits3querpw'] = "TS3 Query-Password"; +$lang['wits3querpwdesc']= "TeamSpeak 3 query password
    Password for the query user."; +$lang['wits3querusr'] = "TS3 Query-User"; +$lang['wits3querusrdesc']= "TeamSpeak 3 query username
    Default is serveradmin
    Of course, you can also create an additional serverquery account only for the Ranksystem.
    The needed permissions you find on:
    http://ts-n.net/ranksystem.php"; +$lang['wits3query'] = "TS3 Query-Port"; +$lang['wits3querydesc'] = "TeamSpeak 3 query port
    Default is 10011 (TCP)
    If its not default, you should find it in your 'ts3server.ini'."; +$lang['wits3voice'] = "TS3 Voice-Port"; +$lang['wits3voicedesc'] = "TeamSpeak 3 voice port
    Default is 9987 (UDP)
    This is the port, you uses also to connect with the TS3 Client."; +$lang['wiupcheck'] = "Update info"; +$lang['wiupcheckdesc'] = "If the Update info is enable, the listed user gets a notification with a private text message, once an update is available."; +$lang['wiuptime'] = "Interval"; +$lang['wiuptimedesc'] = "Enter here how much seconds have to gone till the Ranksystem should check for available updates.

    Attention, for each check the listed user gets a notification. If no one of the listed users is online, the Ranksystem will try to notificate with the next interval."; +$lang['wiupuid'] = "Recipient"; +$lang['wiupuiddesc'] = "A comma separate list of unique Client-IDs, which shoud be informed on the TeamSpeak via private message for available updates."; +$lang['wivlang'] = "Language"; +$lang['wivlangdesc'] = "Choose a default language for the Ranksystem.

    The language is also selectable on the websites for the users and will be stored for the session."; +?> \ No newline at end of file diff --git a/languages/core_it.php b/languages/core_it.php index f8789ef..ddf17b2 100644 --- a/languages/core_it.php +++ b/languages/core_it.php @@ -1,7 +1,6 @@ L'utente è stato aggiunto al sistema."; -$lang['alrup'] = "Hai già aggiornato il database. Per favore cancella questo file dalla web-space!"; $lang['changedbid'] = "L'utente %s (unique Client-ID: %s) ha ottenuto un nuovo database-ID (%s). Aggiorna il vecchio Client-database-ID (%s) e resetta il tempo raggiunto!"; $lang['crawl'] = "Scansione degli utenti connessi e conteggio delle attività..."; $lang['clean'] = "Scansione degli utenti che vanno eliminati..."; @@ -13,32 +12,28 @@ $lang['cleanp'] = "tempo di pulitura del database"; $lang['cleanpdesc'] = "Imposta il tempo che deve trascorrere alla prossima pulitura del database.

    Imposta il tempo in secondi.

    È consigliato eseguire la 'pulitura' del database almeno una volta al giorno, in quanto il tempo di 'pulitura' del database aumenta nel caso vi sia un database di grandi dimensioni."; $lang['cleanrs'] = "Numero di utenti trovati nel database del Ranksystem: %s"; $lang['cleants'] = "Numero di utenti trovati nel database di TeamSpeak: %s (of %s)"; -$lang['days'] = "giorni"; -$lang['dbconerr'] = "Connessione al Database MySQL fallita: "; +$lang['days'] = "%s giorni"; +$lang['dbconerr'] = "Connessione al Database fallita: "; $lang['delcldgrpif'] = "Errore nella rimozione delle informazioni del servergroup: %s"; $lang['delcldgrpsc'] = "Informazioni su servergroup per l'utente %s cancellate correttamente."; $lang['delclientsif'] = "%s Utenti cancellati dal database del Ranksystem!"; $lang['delclientssc'] = "%s Utenti correttamente cancellati dal database del Ranksystem!"; $lang['errlogin'] = "Nome utente e/o password errati! Riprova..."; +$lang['errlogin2'] = "Protezione attacchi brute force: Riprova in %s secondi!"; +$lang['errlogin3'] = "Protezione attacchi brute force: Hai commesso troppi errori. Sei stato bannato per 5 minuti!"; $lang['error'] = "Errore "; $lang['errremgrp'] = "Errore nella rimozione dell'utente: %s (Client-ID) Dal server Group con il servergroup-database-ID: %s!"; $lang['errremdb'] = "Errore nella rimozione dell'utente: %s (Client-ID) dal database del RankSystem!"; $lang['errsel'] = "Errore nella selezione degli
    Utenti: %s
    opzione 'cancella utenti': %s
    opzione 'somma del tempo online': %s"; $lang['errukwn'] = "È stato riscontrato un errore sconosciuto!"; $lang['errupcount'] = "Errore nel rinnovo della somma del tempo online dell’utente %s con l’Id unico %s"; -$lang['firstuse'] = "Sembra che questa sia la prima volta che lanci l'applicazione. Inizio del log degli utenti..."; $lang['highest'] = "È stato raggiunto il rank massimo"; +$lang['install'] = "Installazione"; $lang['instdb'] = "Installa il database:"; -$lang['instdberr'] = "Errore nella creazione del database: "; -$lang['instdbsubm'] = "Crea il database"; $lang['instdbsuc'] = "Il database %s è stato creato con successo."; -$lang['insttb'] = "Installazione delle tabelle del database:"; -$lang['insttberr'] = "Errore nella creazione delle tabelle del database: "; -$lang['insttbsuc'] = "Le Tabelle del database %s sono state create con successo."; $lang['isntwicfg'] = "Impossibile salvare la configurazione del database! Modifica il file 'other/dbconfig.php' dandogli i permessi 0777 (chmod 777 nomefile) e riprova."; -$lang['isntwichm'] = "Per favore modifica il file 'other/dbconfig.php', e la cartella 'avatars/', 'icons/' and 'logs/' con i permessi necessari: Modificali quindi dandogli chmod 0777 (chmod 777 nomefile) e riprova (ricarica la pagina)."; -$lang['isntwidb'] = "Inserisci le informazioni del database:"; -$lang['isntwidberr'] = "Per favore controlla di aver inserito tutti i campi correttamente!"; +$lang['isntwicfg2'] = "Configurate Webinterface"; +$lang['isntwichm'] = "Permessi di scrittura negati per la cartella \"%s\". Per favore dai i permessi chmod 777 e prova ad avviare il Ranksystem di nuovo."; $lang['isntwidbhost'] = "Indirizzo host DB:"; $lang['isntwidbhostdesc'] = "L'indirizzo del server su cui si trova il database (Se il database è in locale basterà inserire 127.0.0.1)
    (IP o DNS)"; $lang['isntwidbmsg'] = "Errore del Database: "; @@ -50,12 +45,12 @@ $lang['isntwidbtype'] = "Tipo DB:"; $lang['isntwidbtypedesc'] = "Il tipo di Database

    Dovrai installare i driver PDO.
    Per maggiori informazioni sui requisiti guarda sulla pagina http://ts-n.net/ranksystem.php"; $lang['isntwidbusr'] = "Utente DB:"; $lang['isntwidbusrdesc'] = "Nome dell'utente che ha l'accesso al database"; -$lang['isntwidel'] = "Per favore cancella il file 'install.php' e titti i file 'update_x-xx.php' dal tuo webserver e apri la %s per configurare il Ranksystem!"; +$lang['isntwidel'] = "Per favore cancella il file 'install.php' dal tuo webserver e apri la %s per configurare il Ranksystem!"; $lang['isntwiusr'] = "L'utente dell'interfaccia Web è stato creato con successo."; -$lang['isntwiusrcr'] = "Creazione dell'accesso"; +$lang['isntwiusrcr'] = "Create Webinterface-User"; $lang['isntwiusrdesc'] = "Inserisci nome utente e password per l'accesso all'interfaccia web. Con l'interfaccia web tu potrai configurare il Ranksystem."; $lang['isntwiusrh'] = "Accesso - Interfaccia Web"; -$lang['listacsg'] = "servergroup attuale"; +$lang['listacsg'] = "Servergroup attuale"; $lang['listcldbid'] = "Client-database-ID"; $lang['listexgrp'] = "Non viene considerato dal Ranksystem (eccezione del servergroup)."; $lang['listexuid'] = "Non viene considerato dal Ranksystem (eccezione dell'utente)."; @@ -68,12 +63,11 @@ $lang['listseen'] = "Ultima volta online"; $lang['listsuma'] = "Somma del tempo di attività"; $lang['listsumi'] = "Somma del tempo in IDLE"; $lang['listsumo'] = "Somma del tempo Online"; -$lang['listtime'] = "%s giorno(i), %s ora(e), %s min., %s sec."; $lang['listuid'] = "unique Client-ID"; -$lang['new'] = "Nuovo"; +$lang['login'] = "Login"; $lang['nocount'] = "L'utente %s (unique Client-ID: %s; Client-database-ID %s) è una query oppure effettua molte connessioni (conterà solo la prima connessione) -> Non verrà contato!"; $lang['noentry'] = "Nessuna voce trovata.."; -$lang['pass'] = "Password: "; +$lang['pass'] = "Password"; $lang['queryname'] = "Il primo nome del bot è già in uso. Sto riprovando con il secondo..."; $lang['sccrmcld'] = "L'utente con il Client-ID %s è stato correttamente cancellato dal database del ranksystem."; $lang['sccupcount'] = "All'utente con il Client-ID %s è stato assegnato un tempo online di %s."; @@ -82,8 +76,6 @@ $lang['setontimedesc'] = "Inserisci il nuovo tempo online, che verrà imposta $lang['sgrpadd'] = "All'utente %s è stato assegnato il servergroup %s (Client-ID unico: %s; Client-database-ID %s)."; $lang['sgrprerr'] = "C'è stato un problema con l'aggiunta del servergroup all'utente %s (unique Client-ID: %s; Client-database-ID %s)!"; $lang['sgrprm'] = "All'utente %s è stato rimosso il servergroup %s (unique Client-ID: %s; Client-database-ID %s)."; -$lang['sitegen'] = "Sito generato in %s secondi con %s utenti."; -$lang['sitegenl'] = "Sito generato in %s secondi con %s utenti (di cui %s visualizzati; %s non considerati per le regole d'eccezione impostate; %s che hanno raggiunto il rank massimo)."; $lang['stix0001'] = "Statistiche del server"; $lang['stix0002'] = "Utenti totali"; $lang['stix0003'] = "Vedi dettagli"; @@ -104,8 +96,6 @@ $lang['stix0017'] = "Versioni (di tutti gli utenti)"; $lang['stix0018'] = "Nazionalità (di tutti gli utenti)"; $lang['stix0019'] = "Piattaforme (di tutti gli utenti)"; $lang['stix0020'] = "Statistiche correnti"; -$lang['stix0021'] = "Informazioni richieste"; -$lang['stix0022'] = "Risultato"; $lang['stix0023'] = "Stato del server"; $lang['stix0024'] = "Online"; $lang['stix0025'] = "Offline"; @@ -195,25 +185,35 @@ $lang['stnv0027'] = "Le informazioni su questo sito potrebbero NON esser $lang['stnv0028'] = "(Non sei connesso al TS3!)"; $lang['stnv0029'] = "Lista dei Rank"; $lang['stnv0030'] = "Ranksystem info"; -$lang['stnv0031'] = "DE - Deutsch"; -$lang['stnv0032'] = "EN - english"; -$lang['stnv0033'] = "RU - русский"; -$lang['stnv0034'] = "IT - italiano"; +$lang['stnv0031'] = "Nel campo di ricerca potrai inserire un nome utente, un Client-ID o un Client-database-ID."; +$lang['stnv0032'] = "Potrai inoltre filtrare i risultati (vedi sotto). Puoi inserire i filtri nel campo di ricerca."; +$lang['stnv0033'] = "La ricerca di utenti combinata a dei filtri è possible. Inserire prima il filtro e successivamente nome utente o ID."; +$lang['stnv0034'] = "È inoltre possibile combinare diversi filtri. Inseriscili consecutivamente nel campo di ricerca."; +$lang['stnv0035'] = "Esempio:
    filtro:non esclusi:Utente Teamspeak"; +$lang['stnv0036'] = "Mostra solo gli utenti che sono esclusi (client, servergroup or channel exception)."; +$lang['stnv0037'] = "Mostra solo gli utenti che non sono esclusi."; +$lang['stnv0038'] = "Mostra solo gli utenti online."; +$lang['stnv0039'] = "Mostra solo gli utenti offline"; +$lang['stnv0040'] = "Mostra solo gli utenti che sono in un determinato Server Group. Rappresentano il rank attuale.
    Sostituisci qui GROUPID."; +$lang['stnv0041'] = "Mostra solo gli utenti selezionati per ultima visita effettuata.
    Replace OPERATOR con '<' or '>' or '=' or '!='.
    E Sostituisci qui TIME con formato data 'Y-m-d H-i' (example: 2016-06-18 20-25).
    Esempio: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = "Mostra solo gli utenti di un determinato paese.
    Sostituisci qui TS3-COUNTRY-CODE e il codice del paese.
    Per la lista dei codici google for ISO 3166-1 alpha-2"; $lang['stri0001'] = "Informazioni sul Ranksystem"; -$lang['stri0002'] = "Che cos' è il ranksystem?"; +$lang['stri0002'] = "Che cos'è il ranksystem?"; $lang['stri0003'] = "Un TS3 Bot, che automaticamente attribuisce i rank (servergroups) agli utenti su un TeamSpeak 3 per il tempo trascorso online o di attività online. Inoltre raccoglie info e statistiche sull’utente e mostra i risultati sul sito."; $lang['stri0004'] = "Chi ha creato il Ranksystem?"; $lang['stri0005'] = "Quando è stato creato?"; $lang['stri0006'] = "Prima alpha: 05/10/2014."; $lang['stri0007'] = "Prima Beta: 01/02/2015."; $lang['stri0008'] = "Puoi trovare l'ultima versione del Ranksystem alla pagina Ranksystem Website."; -$lang['stri0009'] = "Com' è stato creato il RankSystem?"; +$lang['stri0009'] = "Com'è stato creato il RankSystem?"; $lang['stri0010'] = "Che linguaggio è stato utilizzato"; $lang['stri0011'] = "Utilizza inoltre le seguenti librerie:"; $lang['stri0012'] = "Un ringraziamento speciale a:"; -$lang['stri0013'] = "sergey - for russian translation"; +$lang['stri0013'] = "sergey, Arselopster & DeviantUser - for russian translation"; $lang['stri0014'] = "Bejamin Frost - for per i primi bootstrap design"; -$lang['stri0015'] = "ZanK - for italian translation"; +$lang['stri0015'] = "ZanK - per la traduzione italiana"; +$lang['stri0016'] = "DeStRoYzR & Jehad - per avviare la traduzione in arabo"; +$lang['stri0017'] = "SakaLuX - per avviare la traduzione in rumeno"; $lang['sttw0001'] = "Top utenti"; $lang['sttw0002'] = "Della settimana"; $lang['sttw0003'] = "con %s ore di tempo online"; @@ -229,24 +229,26 @@ $lang['sttw0012'] = "Gli altri %s utenti (in ore)"; $lang['sttw0013'] = "con %s ore di tempo attivo"; $lang['sttm0001'] = "Del mese"; $lang['stta0001'] = "Di sempre"; -$lang['updb'] = "Devi avviare questo file una sola volta per aggiornare il Ranksystem da una versione non aggiornate %s!

    Dopo aver eseguito il file update_%s.php eliminalo dal tuo web server.


    Database aggiornato:
    "; -$lang['updel'] = "Per favore cancella i seguenti file dalla cartella principale del Ranksystem (se non sono già stati eliminati):
    %s"; $lang['upinf'] = "È stata trovato una versione piu recente del RankSystem (informazioni su come aggiornare qui: http://ts-n.net/ranksystem.php?artid=84#01id84); Informa gli utenti del server..."; -$lang['upmov'] = "Per favore sposta \'%s\' nella sottocartella \'%s\' e sovrascrivi quella esistente!"; $lang['upmsg'] = "\nHey, Una nuova versione del [B]Ranksystem[/B] è disponibile!\n\nVersione corrente: %s\n[B]Nuova Versione: %s[/B]\n\nPer maggiori informazioni visita il nostro sito [URL]http://ts-n.net/ranksystem.php[/URL]."; $lang['upsucc'] = "Aggiornamento del database eseguito con successo."; $lang['upuser'] = "L'utente %s (unique Client-ID: %s; Client-database-ID %s) ha ottenuto un nuovo conteggio (somma del tempo online) di %s (tempo di attività (rispetto al nuovo conteggio): %s)."; $lang['upuserboost'] = "L'utente %s (unique Client-ID: %s; Client-database-ID %s) ha ottenuto un nuovo conteggi (somma del tempo online) di %s (tempo di attività (rispetto al nuovo conteggio): %s) [BOOST %sx]."; $lang['upusrerr'] = "Il Client-ID unico %s non è raggiungibile dal sistema TeamSpeak!"; $lang['upusrinf'] = "L'utente %s è stato informato correttamente."; -$lang['user'] = "Nome Utente: "; -$lang['usermsgactive'] = "\nHey, Sei aumentato di livello in quanto hai raggiunto un tempo di attività di %s giorni, %s ore, %s minuti and %s secondi."; -$lang['usermsgonline'] = "\nHey, Sei aumentato di livello in quanto hai raggiunto un tempo online di %s giorni, %s ore, %s minuti and %s secondi."; -$lang['wiaction'] = "azione"; -$lang['wibgco'] = "Colore di sfondo:"; -$lang['wibgcodesc'] = "Imposta un colore di sfondo.
    (utilizza un codice HTML valido, deve iniziare con #)"; -$lang['wiboost'] = "boost"; +$lang['user'] = "Nome Utente"; +$lang['wiaction'] = "Azione"; +$lang['wiboost'] = "Boost"; $lang['wiboostdesc'] = "Dai all'utente sul TS3 un servergroup (che dovrà essere creato manualmente), con il quale potrai definire il Boost. Definisci anche il fattore di moltiplicazione (per esempio 2x) e il (per quanto il boost durerà).
    Più alto è il fattore, più velocemente l'utente raggiungerà il rank successivo.
    Uno volta che il tempo impostato finirà il servergroup verrà rimosso in automatico dal RankSystem.Il tempo parte non appena viene assegnato il servergroup all'utente.

    servergroup ID => fattore (2,3) => tempo (in secondi)

    Per separare ogni voce utilizza la virgola.

    Esempio:
    12=>2=>6000,13=>3=>2500,14=>5=>600

    Nell'esempio il servergroup 12 per i successivi 6000 secondi gli verrà conteggiato il doppio del tempo online, al servergroup 13 verrà moltiplicato il tempo per 3 per 2500 secondi, e cosi via..."; +$lang['wibot1'] = "Il Ranksystem Bot dovrebbe essere stoppato. Controlla il log qui sotto per maggiori informazioni!"; +$lang['wibot2'] = "Il Ranksystem Bot dovrebbe essere avviato. Controlla il log qui sotto per maggiori informazioni!"; +$lang['wibot3'] = "Il Ranksystem Bot dovrebbe essere riavviato. Controlla il log qui sotto per maggiori informazioni!"; +$lang['wibot4'] = "Avvia / Ferma il Bot Ranksystem"; +$lang['wibot5'] = "Avvia il Bot"; +$lang['wibot6'] = "Ferma il Bot"; +$lang['wibot7'] = "Riavvia il Bot"; +$lang['wibot8'] = "Log del Ranksystem (estrai):"; +$lang['wibot9'] = "Compila tutti i campi obbligatori prima di avviare il bot Ranksystem!"; $lang['wichdbid'] = "Client-database-ID reset"; $lang['wichdbiddesc'] = "Resetta il tempo online di un utente se il suo database-ID è cambiato.

    Esempio:
    Se un utente viene rimosso da TeamSpeak, gli viene assegnato un nuovo database-ID con la successiva connesione al server."; $lang['wiconferr'] = "C'è un errore nella configurazione del RankSystem. Vai nell'interfaccia web i sistema le Impostazioni Principali. Specialmente la configurazione 'rank'!"; @@ -262,71 +264,77 @@ $lang['widelsg'] = "rimosso(i) dal servergroup"; $lang['widelsgdesc'] = "Scegli se agli utenti venga rimosso anche l'ultimo servergroup conosciuto, quando cancelli gli utenti dal database del Ranksystem.

    Considererà solamente i servergroup riguardanti il Ranksystem"; $lang['wideltime'] = "Tempo di eliminazione"; $lang['wideltimedesc'] = "Cancella i 'vecchi utenti' dal database del Ranksystem.
    Inserisci il tempo dopo cui un utente che non si connette al TeamSpeak verrà eliminato.

    0 - Cancellerà gli utenti dal Ranksystem

    I dati degli utenti su TeamSpeak non verranno toccati!"; +$lang['wiexcid'] = "Eccezione Stanze"; +$lang['wiexciddesc'] = "Inserisci gli ID delle stanze dove non verrà conteggiato il tempo del Rank.

    Se un utente resta in uno dei canali elencati, il tempo non sarà completamente ignorato ma verrà conteggiato come tempo in IDLE.

    Di conseguenza avrà senso solo se si utilizzerà la modalità 'Tempo di attività'."; $lang['wiexgrp'] = "Eccezione dei servergroup"; $lang['wiexgrpdesc'] = "Lista dei servergroup ID che non verranno contati dal Ranksystem (separati da virgola. es. 9,10,11)
    Gli utenti che avranno almeno uno di questi servergroup verranno ignorati."; $lang['wiexuid'] = "Eccezione degli utenti"; $lang['wiexuiddesc'] = "Lista degli utenti (ID unico) che non verranno contati dal Ranksystem (separati da virgola. es 5GFxciykQMojlrvugWti835Wdto=,YQf+7x/4LJ2Tw5cuQGItsVEn+S4=)
    Questi utentiverranno ignorati."; -$lang['wigrptime'] = "rank"; -$lang['wigrptimedesc'] = "Definisci qui dopo quanto tempo un utente debba ottenere automaticamente un servergroup predefinito.

    time (seconds)=>servergroup ID

    Importante per questo è il tempo online di un utente o se \"Idletime\" è attivo, il tempo di attività.

    Ogni voce deve essere separate dalla successive con una virgola. br>
    Dovrà essere inserito il tempo cumulativo

    Esempio:
    60=>9,120=>10,180=>11

    Su queste basi un utente ottiene il servergroup 9 dopo 60 secondi, a sua volta il 10 dopo altri 60 secondi e così via..."; -$lang['wihdco'] = "Colore titolo:"; -$lang['wihdcodesc'] = "Definisci un colore del titolo.
    (Deve essere un codice HTML valido e deve iniziare con # )"; -$lang['wihl'] = "Webinterface - Ranksystem"; -$lang['wihladm'] = "lista utenti"; +$lang['wigrptime'] = "rank up defintion"; +$lang['wigrptimedesc'] = "Definisci qui dopo quanto tempo un utente debba ottenere automaticamente un servergroup predefinito.

    time (seconds)=>servergroup ID

    Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.

    Ogni voce deve essere separate dalla successive con una virgola. br>
    Dovrà essere inserito il tempo cumulativo

    Esempio:
    60=>9,120=>10,180=>11

    Su queste basi un utente ottiene il servergroup 9 dopo 60 secondi, a sua volta il 10 dopo altri 60 secondi e così via..."; +$lang['wihladm'] = "List Rankup (Admin-Mode)"; $lang['wihlcfg'] = "Impostazioni Principali"; -$lang['wihlclg'] = "Modifica Utenti (globale)"; -$lang['wihlcls'] = "Modifica Utenti (selezionati)"; $lang['wihldb'] = "Impostazioni Database"; -$lang['wihlsty'] = "Impostazioni Stile"; +$lang['wihlmsg'] = "Impostazioni Messaggi"; +$lang['wihlsty'] = "Impostazione Pagina Statistiche"; $lang['wihlts'] = "Impostazioni Teamspeak"; -$lang['wihvco'] = "Colore al passaggio del mouse:"; -$lang['wihvcodesc'] = "Imposta colore al passaggio del mouse.
    (Deve essere un codice HTML valido e deve iniziare con # )"; -$lang['wiifco'] = "Colore infotext:"; -$lang['wiifcodesc'] = "Imposta il colore del testo delle informazioni.
    (Deve essere un codice HTML valido e deve iniziare con # )"; +$lang['wihlvs'] = "Impostazione Varie"; +$lang['wiignidle'] = "Ignora Idle"; +$lang['wiignidledesc'] = "Definisci un periodo di tempo, fino a che il tempo di inattività di un utente verrà ignorato.

    Quando un cliente non fa nulla sul server (=idle), questo tempo viene conteggiato dal Ranksystem. Grazie a questa funzione il tempo di inattività di un utente non sarà conteggiato fino al limite definito. Solo quando il limite definito viene superato, conta da tale data per il Ranksystem come il tempo di inattività.

    Questà funzione è compatibile solo con il tempo di attività.

    Significato La funzione è ad esempio per valutare il tempo di ascolto in conversazioni come l'attività.

    0 = Disabilità la funzione

    Esempio:
    Ignore idle = 600 (seconds)
    Un utente ha un idle di 8 minunti
    Conseguenza:
    8 minuti in IDLE verranno ignorati e poi il tempo successivo verrà conteggiato come tempo di attività. Se il tempo di inattività ora viene aumentato a oltre 12 minuti (quindi il tempo è più di 10 minuti) 2 minuti verrebbero conteggiati come tempo di inattività."; $lang['wilog'] = "Path dei Log"; -$lang['wilogdesc'] = "La path dei lod del RankSystem.

    Example:
    /var/logs/ranksystem/

    Assicurati che l'utente che hai assegnato (del web server) abbia i poteri per scrivere nella directory (oppure dai direttamente chmod 777 alla cartella log)."; -$lang['wilogout'] = "LogOut"; -$lang['wimsgusr'] = "Notifica"; -$lang['wimsgusrdesc'] = "Informa un utente con un messaggio privato testuale sul suo aumento di rank.
    Stabilisci il messaggio in 'lang.php'
    (usermsgonline o usermsgactive)"; -$lang['wiscco'] = "Colore di operazione avvenuta con successo"; -$lang['wisccodesc'] = "Definisci un success-text color.
    (Deve essere un codice HTML valido e deve iniziare con # )"; +$lang['wilogdesc'] = "La path dei log del RankSystem.

    Example:
    /var/logs/ranksystem/

    Assicurati che l'utente che hai assegnato (del web server) abbia i poteri per scrivere nella directory (oppure dai direttamente chmod 777 alla cartella log)."; +$lang['wimsgmsg'] = "Messaggio"; +$lang['wimsgmsgdesc'] = "Imposta un messaggio che verrà inviato come messaggio privato su TS3 per quando un utente raggiunge il Rank Successivo.

    Potrete utilizzare i BB-code di un comunissimo messaggio .
    http://ts-n.net/lexicon.php?showid=97#lexindex

    Inoltre il tempo trascorsco potrà essere espresso con la stringa:
    %1\$s - days
    %2\$s - hours
    %3\$s - minutes
    %4\$s - seconds

    Esempio:
    Hey,\\nComplimenti! hai raggiunto il Ranksuccessivo grazie al tuo tempo online di %1\$s days, %2\$s hours and %3\$s minutes. [B]Continua Così[/B] ;-)"; +$lang['wilogout'] = "Logout"; +$lang['wimsgusr'] = "Notifica di aumento di rank"; +$lang['wimsgusrdesc'] = "Informa un utente con un messaggio privato testuale sul suo aumento di rank."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "Database"; +$lang['winav3'] = "Core"; +$lang['winav4'] = "Altri"; +$lang['winav5'] = "Messaggio"; +$lang['winav6'] = "Pagina delle Statistiche"; +$lang['winav7'] = "Amministra"; +$lang['winav8'] = "Avvia / Ferma il Bot"; +$lang['winav9'] = "Aggiornamento disponibile!"; +$lang['winav10'] = "Per favore utilizzare l'interfaccia solo attraverso %s HTTPS%s Una crittografia è fondamentale per garantire la privacy e la sicurezza.%sPer essere in grado di utilizzare HTTPS il vostro web server deve supportare una connessione SSL."; $lang['wiselcld'] = "Seleziona utenti"; -$lang['wiselclddesc'] = "seleziona i clients in base all’ultimo nickname noto. Per farlo devi solo scrivere.
    Selezioni multiple vanno separate da una virgola, che il sistema fa automaticamente.

    Con la selezione puoi scegliere un’azione con il prossimo passaggio."; +$lang['wiselclddesc'] = "Seleziona gli utenti in base all’ultimo nickname noto. Per farlo devi solo scrivere.
    Selezioni multiple vanno separate da una virgola, che il sistema fa automaticamente.

    Con la selezione puoi scegliere un’azione con il prossimo passaggio."; $lang['wishcolas'] = "Servergroup attuale"; -$lang['wishcolasdesc'] = "Show column 'actual servergroup' in list_rankup.php"; +$lang['wishcolasdesc'] = "Mostra colonna 'Servergroup attuale' in stats/list_rankup.php"; $lang['wishcolat'] = "Tempo Attività"; -$lang['wishcolatdesc'] = "Show column 'sum. active time' in list_rankup.php"; +$lang['wishcolatdesc'] = "Mostra colonna 'Tempo Attività' in stats/list_rankup.php"; $lang['wishcolcld'] = "Nome Utente"; -$lang['wishcolclddesc'] = "Show column 'Client-name' in list_rankup.php"; +$lang['wishcolclddesc'] = "Mostra colonna 'Nome Utente' in stats/list_rankup.php"; $lang['wishcoldbid'] = "ID del database"; -$lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in list_rankup.php"; +$lang['wishcoldbiddesc'] = "Mostra colonna 'ID del database' in stats/list_rankup.php"; $lang['wishcolit'] = "tempo in IDLE"; -$lang['wishcolitdesc'] = "Show column 'sum idle time' in list_rankup.php"; +$lang['wishcolitdesc'] = "Mostra colonna 'tempo in IDLE' in stats/list_rankup.php"; $lang['wishcolls'] = "Ultimo volta online"; -$lang['wishcollsdesc'] = "Show column 'last seen' in list_rankup.php"; +$lang['wishcollsdesc'] = "Mostra colonna 'Ultimo volta online' in stats/list_rankup.php"; $lang['wishcolnx'] = "Prossimo Rank"; -$lang['wishcolnxdesc'] = "Show column 'next rank up' in list_rankup.php"; +$lang['wishcolnxdesc'] = "Mostra colonna 'Prossimo Rank' in stats/list_rankup.php"; $lang['wishcolot'] = "Tempo Online"; -$lang['wishcolotdesc'] = "Show column 'sum. online time' in list_rankup.php"; +$lang['wishcolotdesc'] = "Mostra colonna 'Tempo Online' in stats/list_rankup.php"; $lang['wishcolrg'] = "rank"; -$lang['wishcolrgdesc'] = "Show column 'rank' in list_rankup.php"; -$lang['wishcolsg'] = "next servergroup"; -$lang['wishcolsgdesc'] = "Show column 'next servergroup' in list_rankup.php"; -$lang['wishcoluuid'] = "Client-ID"; -$lang['wishcoluuiddesc'] = "Show column 'unique Client-ID' in list_rankup.php"; -$lang['wishexcld'] = "excepted client"; -$lang['wishexclddesc'] = "Show clients in list_rankup.php,
    which are excepted by his uniqueID."; -$lang['wishexgrp'] = "excepted groups"; -$lang['wishexgrpdesc'] = "Mostra i clients in list_rankup.php, che sono nella lista 'client exception' e non dovrebbero essere considerati per il Ranksystem."; -$lang['wishgen'] = "Sitegen"; -$lang['wishgendesc'] = "Mostra il tempo richiesto per la generazione del sito al fondo del sito."; -$lang['wishhicld'] = "Clients in highest Level"; -$lang['wishhiclddesc'] = "Mostra I clients in list_rankup.php, che hanno raggiunto il più elevato rank nel Ranksystem."; -$lang['wisupidle'] = "Idletime"; -$lang['wisupidledesc'] = "Se la funzione è attivata, la somma del tempo in IDLE verrà sottratta alla somma del tempo online. Il tempo ricavato verrà utilizzato per l'avanzamento di rank."; -$lang['wisvconf'] = "salva"; +$lang['wishcolrgdesc'] = "Mostra colonna 'rank' in stats/list_rankup.php"; +$lang['wishcolsg'] = "Prossimo Servergroup"; +$lang['wishcolsgdesc'] = "Mostra colonna 'Prossimo Servergroup' in stats/list_rankup.php"; +$lang['wishcoluuid'] = "ID del Utente"; +$lang['wishcoluuiddesc'] = "Mostra colonna 'ID del Utente' in stats/list_rankup.php"; +$lang['wishexcld'] = "Eccetto gli utenti"; +$lang['wishexclddesc'] = "Mostra gli utenti in list_rankup.php,
    which are excluded and therefore not participate in the Ranksystem."; +$lang['wishexgrp'] = "Eccetto i Servergroups"; +$lang['wishexgrpdesc'] = "Mostra gli utenti in list_rankup.php, che sono nella lista 'client exception' e non dovrebbero essere considerati per il Ranksystem."; +$lang['wishhicld'] = "Utenti col massimo rank"; +$lang['wishhiclddesc'] = "Mostra gli utenti in list_rankup.php, che hanno raggiunto il più elevato rank nel Ranksystem."; +$lang['wisupidle'] = "Modalità"; +$lang['wisupidledesc'] = "Ci sono due modalità di conteggio del tempo per applicare un aumento di rank. 1) Tempo Online: Tutto il tempo che l'utente passa in TS in IDLE o meno (Vedi colonna 'sum. online time' in the 'stats/list_rankup.php') 2) Tempo di attività: Al tempo online dell'utente viene sottratto il tempo in IDLE (AFK) (Vedi colonna 'sum. active time' in the 'stats/list_rankup.php'). Il cambiamento di modalità dopo lungo tempo non è consigliato ma dovrebbe funzionare comunque."; +$lang['wisvconf'] = "Salva"; $lang['wisvsuc'] = "Modifiche salvate con successo!"; -$lang['witime'] = "Timezone"; -$lang['witimedesc'] = "Select the timezone the server is hosted."; +$lang['wisvres'] = "Dovrai riavviare il Ranksystem affinché i cambiamenti vengano applicati!"; +$lang['witime'] = "Fuso orario"; +$lang['witimedesc'] = "Selezione il fuso orario di dove è hostato il server."; $lang['wits3dch'] = "Canale di Default"; $lang['wits3dchdesc'] = "Il channel-ID cui il bot deve connettersi.

    Il Bot entrerà in questo canale appena entrato nel TeamSpeak server."; $lang['wits3host'] = "Indirizzo TS3"; @@ -344,18 +352,13 @@ $lang['wits3querusrdesc'] = "Il nome utente della Query scelta
    Di default è $lang['wits3query'] = "TS3 - Porta della Query"; $lang['wits3querydesc'] = "La porta per l'accesso delle query a Teamspeak
    La porta di default è 10011 (TCP)
    Se non è la porta di default e non sai che porta possa essere guarda all'interno del file 'ts3server.ini' nella directory principale del server Teamspeak dove troverai tutte le informazioni sul server."; $lang['wits3voice'] = "TS3 - Voice-Port"; -$lang['wits3voicedesc'] = "La voice port del vostro Teamspeak
    Di default è 9987 (UDP)
    Questa è inoltre la porta con cui ti connetti al TS3."; -$lang['witxco'] = "Colore del testo:"; -$lang['witxcodesc'] = "Imposta un colore per il testo.
    (Deve essere un codice HTML valido e deve iniziare con # )"; +$lang['wits3voicedesc'] = "La voice port del vostro Teamspeak
    Di default è 9987 (UDP)
    Questa è inoltre la porta con cui vi connettete al TS3."; $lang['wiupcheck'] = "Controlla aggiornamenti"; $lang['wiupcheckdesc'] = "Se le funzione 'Controlla aggiornamenti', la lista di utenti inseriti (ID unico dell'utente) riceveranno una notifica su Teamspeak (come messaggio privato), quando sarà disponibile uin aggiornamento."; $lang['wiuptime'] = "Intervallo di cotrollo aggiornamenti"; $lang['wiuptimedesc'] = "Inserisci qui ogni quanti secondi il Ranksystem verificherà se vi sono aggiornamenti disponibili.
    Attenzione, Ogni utente inserito riceverà la notifica di aggiornamento attraverso un messaggio privato su Temaspeak. Se nessuno degli utenti inseriti sarà online, Il Ranksystem proverà ad inviare il messaggio nell'intervallo di tempo successivo."; $lang['wiupuid'] = "Recipiente"; $lang['wiupuiddesc'] = "La lista di utenti (dovrà essere inserito l'ID unico dell'utente(i) es. YdicUS4yofeBEONN7J3FeLic8b4=,RiGqBf8hU1kbCV/vwfPL0rzAwZQ=), che verranno informati di eventuali aggiornamenti attraverso un messaggio privato su Teamspeak."; -$lang['wiversion'] = "(versione corrente %s)"; $lang['wivlang'] = "Lingua"; $lang['wivlangdesc'] = "Lingue disponibili per il Ranksystem

    de - Deutsch
    en - english
    it - italiano
    ru - Русский"; -$lang['wiwnco'] = "Colore messggio d'avviso:"; -$lang['wiwncodesc'] = "Definisci il colore del messaggio di avviso di aggiornamenti disponibili.
    (Deve essere un codice HTML valido e deve iniziare con # )"; ?> \ No newline at end of file diff --git a/languages/core_ro.php b/languages/core_ro.php new file mode 100644 index 0000000..2976521 --- /dev/null +++ b/languages/core_ro.php @@ -0,0 +1,364 @@ + adăugat la Ranksystem acum."; +$lang['changedbid'] = "Userul %s (unique Client-ID: %s) a primit un nouă identitate (%s). Actualizăm vechea identitate (%s) și resetăm timpul colectat!"; +$lang['crawl'] = "Scanăm clientul conectat și contorizăm activitatea..."; +$lang['clean'] = "Scanăm clienții care trebuie șterși..."; +$lang['cleanc'] = "Utilizatori curați"; +$lang['cleancdesc'] = "Cu aceasta funcție clienții vechi din Ranksystem se elimină.

    La sfârșit, Ranksystem sincronizat cu baza de date TeamSpeak. Utilizatorii , care nu există în TeamSpeak, vor fi șterși din Ranksystem.

    Această funcție este activată numai atunci când \"SlowMode\" este dezactivat!


    Pentru reglarea automată a bazei de date TeamSpeak , ClientCleaner poate fi folosit:
    http://ts-n.net/clientcleaner.php"; +$lang['cleandel'] = "Au fost %s clienții eliminați din baza de date Ranksystem , pentru că ei nu mai erau existenți în baza de date TeamSpeak "; +$lang['cleanno'] = "Nu a fost nimic de eliminat..."; +$lang['cleanp'] = "Perioada de curațare"; +$lang['cleanpdesc'] = "Setați un timp care trebuie să treacă înainte de a se executa curățirea clienților.

    Setați un timp în secunde.

    Recomandat este o dată pe zi , deoarece curățarea clienților are nevoie de mult timp pentru baze de date mai mari."; +$lang['cleanrs'] = "Clienți in baza de date Ranksystem: %s"; +$lang['cleants'] = "Clienți în baza de date TeamSpeak: %s (of %s)"; +$lang['days'] = "%s zile"; +$lang['dbconerr'] = "Nu a reușit să se conecteze la baza de date MySQL: "; +$lang['delcldgrpif'] = "Eroare la eliminarea cunoștințelor pentru servergroups: %s"; +$lang['delcldgrpsc'] = "Cunoștințe despre servergroups pentru %s Utilizatorul a eliminat cu succes."; +$lang['delclientsif'] = "%s Clienții eliminați din baza de date Ranksystem!"; +$lang['delclientssc'] = "%s Clienții eliminați cu succes din baza de date Ranksystem!"; +$lang['errlogin'] = "Numele de utilizator și / sau parola sunt incorecte ! Încearcă din nou..."; +$lang['errlogin2'] = "Protecție forță brută: încercați din nou în %s seconde!"; +$lang['errlogin3'] = "Protecție forță brută: Prea multe greșeli. Banat pentru 300 de secunde!"; +$lang['error'] = "Eroare "; +$lang['errremgrp'] = "Eroare la eliminarea utilizatorului cu identitatea %s din servergroup cu servergroup-database-ID %s!"; +$lang['errremdb'] = "Eroare când eliminăm utilizatorului cu identitatea %s din baza de date Ranksystem!"; +$lang['errsel'] = "Eroare când alegem selecțiile cu
    Clientul selectat: %s
    opțiune 'ștergeți clienții': %s
    opțiune 'sum. online timp': %s"; +$lang['errukwn'] = "A apărut o eroare necunoscută!"; +$lang['errupcount'] = "Eroare în timp ce reînnoim timpul rezumat on-line de %s de către utilizator cu identitatea %s"; +$lang['highest'] = "Cel mai înalt rang atins"; +$lang['install'] = "Instalare"; +$lang['instdb'] = "Instalăm baza de date:"; +$lang['instdbsuc'] = "Baza de date %s a fost creată cu succes."; +$lang['insttb'] = "Instalăm tabelele:"; +$lang['isntwicfg'] = "Nu se poate salva configurația bazei de date ! Vă rugăm să modificați 'other/dbconfig.php' cu acces chmod 0777 și incercați iar."; +$lang['isntwichm'] = "Vă rugăm să modificați 'other/dbconfig.php', și folderele 'avatars/', 'icons/' and 'logs/' cu permisiile necesare. Prin urmare, sa editați accesul chmod cu 0777. Apoi incercați iar (refresh la pagină)."; +$lang['isntwidbhost'] = "Host-ul bazei de date:"; +$lang['isntwidbhostdesc'] = "Server-ul DB
    (IP sau DNS)"; +$lang['isntwidbmsg'] = "Eroare DB: "; +$lang['isntwidbname'] = "Nume DB:"; +$lang['isntwidbnamedesc'] = "Nume DB"; +$lang['isntwidbpass'] = "Parolă DB:"; +$lang['isntwidbpassdesc'] = "Parola pentru a accesa DB"; +$lang['isntwidbtype'] = "Tipul DB:"; +$lang['isntwidbtypedesc'] = "Tipul DB

    Trebuie să instalați necesarul de PDO Driver.
    Pentru mai multe informatii accesați http://ts-n.net/ranksystem.php"; +$lang['isntwidbusr'] = "DB User:"; +$lang['isntwidbusrdesc'] = "User-ul pentru acces la DB"; +$lang['isntwidel'] = "Vă rugăm să ștergeți fișierul 'install.php' din webserver și deschideți %s să configurați Ranksystem!"; +$lang['isntwiusr'] = "Utilizator pentru webinterface creat cu succes."; +$lang['isntwiusrcr'] = "Creare acces"; +$lang['isntwiusrdesc'] = "Introduceți un nume de utilizator și o parolă pentru accesul webinterface. Cu webinterface vă puteți configura Ranksytem-ul."; +$lang['isntwiusrh'] = "Acces - Webinterface"; +$lang['listacsg'] = "Servergroup actual"; +$lang['listcldbid'] = "Client-database-ID"; +$lang['listexgrp'] = "Nu va considera pentru Ranksystem (servergroup exception)."; +$lang['listexuid'] = "Nu va considera pentru Ranksystem (client exception)."; +$lang['listip'] = "Adresă IP"; +$lang['listnick'] = "Nume Client"; +$lang['listnxsg'] = "Următorul servergroup"; +$lang['listnxup'] = "Următorul rank up"; +$lang['listrank'] = "rank"; +$lang['listseen'] = "Văzut ultima dată"; +$lang['listsuma'] = "sum. timp activ"; +$lang['listsumi'] = "sum. timpul de inactivitate"; +$lang['listsumo'] = "sum. timp online"; +$lang['listuid'] = "unique Client-ID"; +$lang['login'] = "Logare"; +$lang['nocount'] = "User-ul %s (Client-ID unic: %s; Client-database-ID %s) este un query-user sau este de mai multe ori on-line ( numai primul număr de conexiune ) - > acest lucru nu va conta !"; +$lang['noentry'] = "Nu au gasit .."; +$lang['pass'] = "Parolă"; +$lang['queryname'] = "În primul rând Botname deja în uz . Încerc cu al doilea Botname ..."; +$lang['sccrmcld'] = "User-ul cu unic Client-ID %s scos cu success din baza de date Ranksystem ."; +$lang['sccupcount'] = "User-ul cu unic Client-ID %s rescrise cu un succes timp rezumat on-line al %s."; +$lang['setontime'] = "sum. timp online"; +$lang['setontimedesc'] = "Introduceți un timp on-line nou rezumat , care ar trebui să fie setat la clienții anteriori selectate . Cu acest vechi rezumat on-line va fi rescris .

    Timpul de sinteză introdus on-line v-a fi luat în considerare pentru rangul sus."; +$lang['sgrpadd'] = "Aloca servergroup %s user-ului %s (unique Client-ID: %s; Client-database-ID %s)."; +$lang['sgrprerr'] = "S-a întâmplat o problemă cu servergroup utilizatorului %s (unique Client-ID: %s; Client-database-ID %s)!"; +$lang['sgrprm'] = "S-a șters servergroup %s de la user-ul %s (unique Client-ID: %s; Client-database-ID %s)."; +$lang['stix0001'] = "Statistică de server"; +$lang['stix0002'] = "Numărul total de utilizatori"; +$lang['stix0003'] = "Vezi detalii"; +$lang['stix0004'] = "Timp on-line al tuturor utilizator / Total"; +$lang['stix0005'] = "Vedere de sus din toate timpurile"; +$lang['stix0006'] = "Vedere de sus a lunii"; +$lang['stix0007'] = "Vedere de sus a săptămânii"; +$lang['stix0008'] = "Utilizarea serverului"; +$lang['stix0009'] = "În ultimele 7 zile"; +$lang['stix0010'] = "În ultimele 30 de zile"; +$lang['stix0011'] = "În ultimele 24 de ore"; +$lang['stix0012'] = "Selectare perioadă"; +$lang['stix0013'] = "Ultima zi"; +$lang['stix0014'] = "Săptămâna trecută"; +$lang['stix0015'] = "Luna trecută"; +$lang['stix0016'] = "Timp activ / inactiv ( tuturor clienților )"; +$lang['stix0017'] = "Versiunile ( tuturor clienților )"; +$lang['stix0018'] = "Naționalitățile ( tuturor clienților )"; +$lang['stix0019'] = "Platforme ( tuturor clienților )"; +$lang['stix0020'] = "Statisticile curente"; +$lang['stix0023'] = "Status server"; +$lang['stix0024'] = "Online"; +$lang['stix0025'] = "Offline"; +$lang['stix0026'] = "Clienți (Online / Max)"; +$lang['stix0027'] = "Număr de canale"; +$lang['stix0028'] = "Ping mediu pe server"; +$lang['stix0029'] = "Număr total de octeți primit"; +$lang['stix0030'] = "Număr total de octeți trimiși"; +$lang['stix0031'] = "Server uptime"; +$lang['stix0032'] = "După offline:"; +$lang['stix0033'] = "00 Zile, 00 Ore, 00 Minute, 00 Secunde"; +$lang['stix0034'] = "Pierderea medie de pachete"; +$lang['stix0035'] = "Statisticile generale"; +$lang['stix0036'] = "Nume Server"; +$lang['stix0037'] = "Adresa Server(Adresa Host : Port)"; +$lang['stix0038'] = "Parola Server"; +$lang['stix0039'] = "Nu (Server-ul este public)"; +$lang['stix0040'] = "Da (Server este privat)"; +$lang['stix0041'] = "Server ID"; +$lang['stix0042'] = "Server platformă"; +$lang['stix0043'] = "Server versiune"; +$lang['stix0044'] = "Server creat in data (dd/mm/yyyy)"; +$lang['stix0045'] = "Raport la lista de servere"; +$lang['stix0046'] = "Activat"; +$lang['stix0047'] = "Nu este activat"; +$lang['stix0048'] = "Nu sunt suficiente date încă ..."; +$lang['stix0049'] = "Timp on-line la toți utilizatorii / luna"; +$lang['stix0050'] = "Timp on-line la toți utilizatorii / săptămână"; +$lang['stix0051'] = "TeamSpeak nu a reușit , deci nici o data creată..."; +$lang['stmy0001'] = "Statisticile mele"; +$lang['stmy0002'] = "Rank"; +$lang['stmy0003'] = "Database ID:"; +$lang['stmy0004'] = "Unic ID:"; +$lang['stmy0005'] = "Conexiuni totale la serverul:"; +$lang['stmy0006'] = "Inceputul dății pentru statistici:"; +$lang['stmy0007'] = "Timp total on-line:"; +$lang['stmy0008'] = "Timp online ultimele 7 zile:"; +$lang['stmy0009'] = "Timp online ultimele 30 zile:"; +$lang['stmy0010'] = "Realizări finalizate:"; +$lang['stmy0011'] = "Timp progres realizare"; +$lang['stmy0012'] = "Ora: Legendarul"; +$lang['stmy0013'] = "Pentru că ai un timp online %s ore."; +$lang['stmy0014'] = "Progres finalizat"; +$lang['stmy0015'] = "Ora: Aur"; +$lang['stmy0016'] = "% completat pentru Legendar"; +$lang['stmy0017'] = "Ora: Argint"; +$lang['stmy0018'] = "% completat pentru Aur"; +$lang['stmy0019'] = "Ora: Bronz"; +$lang['stmy0020'] = "% completat pentru Argint"; +$lang['stmy0021'] = "Ora: Ne-rank-at"; +$lang['stmy0022'] = "% completat pentru Bronz"; +$lang['stmy0023'] = "Conexiune progres realizare"; +$lang['stmy0024'] = "Connects: Legendary"; +$lang['stmy0025'] = "Because You connected %s times to the server."; +$lang['stmy0026'] = "Connects: Gold"; +$lang['stmy0027'] = "Connects: Silver"; +$lang['stmy0028'] = "Connects: Bronze"; +$lang['stmy0029'] = "Connects: Unranked"; +$lang['stmy0030'] = "Progress next servergroup"; +$lang['stnv0001'] = "Server news"; +$lang['stnv0002'] = "Close"; +$lang['stnv0003'] = "Refresh client information"; +$lang['stnv0004'] = "Only use this refresh, when your TS3 information got changed, such as your TS3 username"; +$lang['stnv0005'] = "It only works, when you are connected to the TS3 server at the same time"; +$lang['stnv0006'] = "Refresh"; +$lang['stnv0007'] = "Battle area - Page content"; +$lang['stnv0008'] = "You can challenge other users in a battle between two users or two teams."; +$lang['stnv0009'] = "While the battle is active the online time of the teams/users will be counted."; +$lang['stnv0010'] = "When the battle ends the team/user with the highest online time wins."; +$lang['stnv0011'] = "(The regular battling time is 48 hours)"; +$lang['stnv0012'] = "The winning team/user will recieve a price, which the user can use whenever the user wants."; +$lang['stnv0013'] = "It will be displayed on the My statistics tab."; +$lang['stnv0014'] = "(Could be online time boost(2x) for 8 hours, instant online time (4 hours), etc."; +$lang['stnv0015'] = "These boosts can be used for example to climb in the top users of the week."; +$lang['stnv0016'] = "Not available"; +$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; +$lang['stnv0018'] = "Please connect to the TS3 Server and then Refresh your Session by pressing the blue Refresh Button at the top-right corner."; +$lang['stnv0019'] = "My statistics - Page content"; +$lang['stnv0020'] = "This page contains a overall summary of your personal statistics and activity on the server."; +$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; +$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; +$lang['stnv0023'] = "The sum inside of the donut charts may differ to the amount of 'Total user'. The reason is that this data weren't collected with older versions of the Ranksystem."; +$lang['stnv0024'] = "Ranksystem - Statistics"; +$lang['stnv0025'] = "Limit entries"; +$lang['stnv0026'] = "all"; +$lang['stnv0027'] = "The informations on this site could be outdated! It seems the Ranksystem is no more connected to the TeamSpeak."; +$lang['stnv0028'] = "(You are not connected to the TS3!)"; +$lang['stnv0029'] = "List Rankup"; +$lang['stnv0030'] = "Ranksystem info"; +$lang['stnv0031'] = "About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID."; +$lang['stnv0032'] = "You can also use a view filter options (see below). Enter the filter also inside the search field."; +$lang['stnv0033'] = "Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern."; +$lang['stnv0034'] = "Also it is possible to combine multiple filters. Enter this consecutively inside the search field."; +$lang['stnv0035'] = "Example:
    filter:nonexcepted:TeamSpeakUser"; +$lang['stnv0036'] = "Show only clients, which are excepted (client, servergroup or channel exception)."; +$lang['stnv0037'] = "Show only clients, which are not excepted."; +$lang['stnv0038'] = "Show only clients, which are online."; +$lang['stnv0039'] = "Show only clients, which are not online."; +$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.
    Replace GROUPID with the wished servergroup ID."; +$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
    Replace OPERATOR with '<' or '>' or '=' or '!='.
    And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
    Full example: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = "Show only clients, which are from defined country.
    Replace TS3-COUNTRY-CODE with the wished country.
    For list of codes google for ISO 3166-1 alpha-2"; +$lang['stri0001'] = "Ranksystem information"; +$lang['stri0002'] = "What is the Ranksystem?"; +$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; +$lang['stri0004'] = "Who created the Ranksystem?"; +$lang['stri0005'] = "When the Ranksystem was Created?"; +$lang['stri0006'] = "First alpha release: 05/10/2014."; +$lang['stri0007'] = "First beta release: 01/02/2015."; +$lang['stri0008'] = "You can see the newest version on the Ranksystem Website."; +$lang['stri0009'] = "How was the Ranksystem created?"; +$lang['stri0010'] = "The Ranksystem is coded in"; +$lang['stri0011'] = "It uses also the following libraries:"; +$lang['stri0012'] = "Special Thanks To:"; +$lang['stri0013'] = "sergey, Arselopster & DeviantUser - for russian translation"; +$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; +$lang['stri0015'] = "ZanK - for italian translation"; +$lang['stri0016'] = "DeStRoYzR & Jehad - for initialisation arabic translation"; +$lang['stri0017'] = "SakaLuX - for initialisation romanian translation"; +$lang['sttw0001'] = "Top users"; +$lang['sttw0002'] = "Of the week"; +$lang['sttw0003'] = "With %s hours online time"; +$lang['sttw0004'] = "Top 10 compared"; +$lang['sttw0005'] = "Hours (Defines 100 %)"; +$lang['sttw0006'] = "%s hours (%s%)"; +$lang['sttw0007'] = "Top 10 Statistics"; +$lang['sttw0008'] = "Top 10 vs others in online time"; +$lang['sttw0009'] = "Top 10 vs others in active time"; +$lang['sttw0010'] = "Top 10 vs others in inactive time"; +$lang['sttw0011'] = "Top 10 (in hours)"; +$lang['sttw0012'] = "Other %s users (in hours)"; +$lang['sttw0013'] = "With %s hours active time"; +$lang['sttm0001'] = "Of the month"; +$lang['stta0001'] = "Of all time"; +$lang['upinf'] = "A new Version of the Ranksystem is available; Inform clients on server..."; +$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]http://ts-n.net/ranksystem.php[/URL]."; +$lang['upsucc'] = "Database update successfully executed."; +$lang['upuser'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s)."; +$lang['upuserboost'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s) [BOOST %sx]."; +$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; +$lang['upusrinf'] = "User %s was successfully informed."; +$lang['user'] = "Username"; +$lang['wiaction'] = "action"; +$lang['wiboost'] = "boost"; +$lang['wiboostdesc'] = "Give an user on your TeamSpeak server a servergroup (have to be created manually), which you can declare here as boost group. Define also a factor which should be used (for example 2x) and a time, how long the boost should be rated.
    The higher the factor, the faster an user reaches the next higher rank.
    Is the time expired, the boost servergroup get automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.

    servergroup ID => factor => time (in seconds)

    Each entry have to separate from next with a comma.

    Example:
    12=>2=>6000,13=>3=>2500,14=>5=>600

    On this an user in servergroup 12 get the factor 2 for the next 6000 seconds, an user in servergroup 13 get the factor 3 for 2500 seconds, and so on..."; +$lang['wibot1'] = "Ranksystem Bot should be stopped. Check the log below for more information!"; +$lang['wibot2'] = "Ranksystem Bot should be started. Check the log below for more information!"; +$lang['wibot3'] = "Ranksystem Bot should be restarted. Check the log below for more information!"; +$lang['wibot4'] = "Start / Stop Ranksystem Bot"; +$lang['wibot5'] = "Start Bot"; +$lang['wibot6'] = "Stop Bot"; +$lang['wibot7'] = "Restart Bot"; +$lang['wibot8'] = "Ranksystem log (extract):"; +$lang['wibot9'] = "Fill out all mandatory fields before starting the Ranksystem Bot!"; +$lang['wichdbid'] = "Client-database-ID reset"; +$lang['wichdbiddesc'] = "Reset the online time of an user, if his TeamSpeak Client-database-ID changed.

    Example:
    If a clients gets removed from the TeamSpeak server, it gets a new Client-database-ID with the next connect to the server."; +$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the Core Settings. Especially check the config 'rank up'!"; +$lang['widaform'] = "Date format"; +$lang['widaformdesc'] = "Choose the showing date format.

    Example:
    %a days, %h hours, %i mins, %s secs"; +$lang['widbcfgsuc'] = "Database configurations saved successfully."; +$lang['widbcfgerr'] = "Error while saving the database configurations! Connection failed or writeout error for 'other/dbconfig.php'"; +$lang['widelcld'] = "delete clients"; +$lang['widelcldgrp'] = "renew groups"; +$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

    With this function you can remove once time the knowledge of given servergroups. In effect the ranksystem try to give all clients (which are on the TS3 server online) the servergroup of the actual rank.
    For each client, which gets the group or stay in group, the Ranksystem remember this like described at beginning.

    This function can be helpful, when user are not in the servergroup, they should be for the defined online time.

    Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause it can't remember ;-)"; +$lang['widelclddesc'] = "Delete the before selected clients out of the Ranksystem database.

    With this deletion are the clients on the TeamSpeak Server untouched."; +$lang['widelsg'] = "remove out of servergroups"; +$lang['widelsgdesc'] = "Choose if the clients should also be removed out of the last known servergroup, when you delete clients out of the Ranksystem database.

    It will only considered servergroups, which concerned the Ranksystem"; +$lang['wideltime'] = "Deletiontime"; +$lang['wideltimedesc'] = "Clean old clients out of the Ranksystem database.
    Entry a time in seconds which a client was not seen to delete it.

    0 - deletes all clients out of the Ranksystem

    The Userdatas on the TeamSpeak server are with this untouched!"; +$lang['wiexcid'] = "channel exception"; +$lang['wiexciddesc'] = "A comma separated list of the channel-IDs that are not to participate in the Ranksystem.

    Stay users in one of the listed channels, the time there will be completely ignored. There is neither the online time, yet the idle time counted.

    Sense does this function only with the mode 'online time', cause here could be ignored AFK channels for example.
    With the mode 'active time', this function is useless because as would be deducted the idle time in AFK rooms and thus not counted anyway.

    Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user dows no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; +$lang['wiexgrp'] = "servergroup exception"; +$lang['wiexgrpdesc'] = "A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
    User in at least one of this servergroups IDs will be ignored for the rank up."; +$lang['wiexuid'] = "client exception"; +$lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
    User in this list will be ignored for the rank up."; +$lang['wigrptime'] = "rank up definition"; +$lang['wigrptimedesc'] = "Define here after which time a user should get automatically a predefined servergroup.

    time (seconds)=>servergroup ID

    Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.

    Each entry have to separate from next with a comma.

    The time must be entered cumulative

    Example:
    60=>9,120=>10,180=>11

    On this a user get after 60 seconds the servergroup 9, in turn after 60 seconds the servergroup 10, and so on..."; +$lang['wihladm'] = "List Rankup (Admin-Mode)"; +$lang['wihlcfg'] = "Core settings"; +$lang['wihldb'] = "Database settings"; +$lang['wihlmsg'] = "Message settings"; +$lang['wihlsty'] = "Stats page settings"; +$lang['wihlts'] = "TeamSpeak settings"; +$lang['wihlvs'] = "Various settings"; +$lang['wiignidle'] = "Ignore idle"; +$lang['wiignidledesc'] = "Define a period, up to which the idle time of an user will be ignored.

    When a client does not do anything on the server (=idle), this time is noted by the Ranksystem. With this feature the idle time of an user will not be counted until the defined limit. Only when the defined limit is exceeded, it counts from that date for the Ranksystem as idle time.

    This function plays only in conjunction with the mode 'active time' a role.

    Meaning the function is e.g. to evaluate the time of listening in conversations as activity.

    0 = disable the feature

    Example:
    Ignore idle = 600 (seconds)
    A client has an idle of 8 minuntes
    consequence:
    8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to over 12 minutes so the time is over 10 minutes, and in this case 2 minutes would be counted as idle time."; +$lang['wilog'] = "Logpath"; +$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

    Example:
    /var/logs/ranksystem/

    Be sure, the webuser has the write-permissions to the logpath."; +$lang['wimsgmsg'] = "Message"; +$lang['wimsgmsgdesc'] = "Define a message, which will be send to an user, when he rises the next higher rank.

    This message will be send via TS3 private message. So every know bb-code could be used, which also works for a normal private message.
    http://ts-n.net/lexicon.php?showid=97#lexindex

    Furthermore, the previously spent time can be expressed by arguments:
    %1\$s - days
    %2\$s - hours
    %3\$s - minutes
    %4\$s - seconds

    Example:
    Hey,\\nyou reached a higher rank, since you already connected for %1\$s days, %2\$s hours and %3\$s minutes to our TS3 server.[B]Keep it up![/B] ;-)"; +$lang['wilogout'] = "Logout"; +$lang['wimsgusr'] = "Rank up notification"; +$lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "Database"; +$lang['winav3'] = "Core"; +$lang['winav4'] = "Other"; +$lang['winav5'] = "Message"; +$lang['winav6'] = "Stats page"; +$lang['winav7'] = "Administrate"; +$lang['winav8'] = "Start / Stop Bot"; +$lang['winav9'] = "Update available!"; +$lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; +$lang['wiselcld'] = "select clients"; +$lang['wiselclddesc'] = "Select the clients by the last known username. For this you only have to start typing.
    Multiple selections are comma separated, which does the system automatically.

    With the selection you can choose with the next step an action."; +$lang['wishcolas'] = "actual servergroup"; +$lang['wishcolasdesc'] = "Show column 'actual servergroup' in list_rankup.php"; +$lang['wishcolat'] = "active time"; +$lang['wishcolatdesc'] = "Show column 'sum. active time' in list_rankup.php"; +$lang['wishcolcld'] = "Client-name"; +$lang['wishcolclddesc'] = "Show column 'Client-name' in list_rankup.php"; +$lang['wishcoldbid'] = "database-ID"; +$lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in list_rankup.php"; +$lang['wishcolit'] = "idle time"; +$lang['wishcolitdesc'] = "Show column 'sum idle time' in list_rankup.php"; +$lang['wishcolls'] = "last seen"; +$lang['wishcollsdesc'] = "Show column 'last seen' in list_rankup.php"; +$lang['wishcolnx'] = "next rank up"; +$lang['wishcolnxdesc'] = "Show column 'next rank up' in list_rankup.php"; +$lang['wishcolot'] = "online time"; +$lang['wishcolotdesc'] = "Show column 'sum. online time' in list_rankup.php"; +$lang['wishcolrg'] = "rank"; +$lang['wishcolrgdesc'] = "Show column 'rank' in list_rankup.php"; +$lang['wishcolsg'] = "next servergroup"; +$lang['wishcolsgdesc'] = "Show column 'next servergroup' in list_rankup.php"; +$lang['wishcoluuid'] = "Client-ID"; +$lang['wishcoluuiddesc'] = "Show column 'unique Client-ID' in list_rankup.php"; +$lang['wishexcld'] = "excepted client"; +$lang['wishexclddesc'] = "Show clients in list_rankup.php,
    which are excluded and therefore not participate in the Ranksystem."; +$lang['wishexgrp'] = "excepted groups"; +$lang['wishexgrpdesc'] = "Show clients in list_rankup.php, which are in the list 'client exception' and shouldn't be conside for the Ranksystem."; +$lang['wishhicld'] = "Clients in highest Level"; +$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem."; +$lang['wisupidle'] = "Mode"; +$lang['wisupidledesc'] = "There are two modes, as time can be counted and can then apply for a rank increase. 1) online time: Here the pure online time of the user is taken into account (see column 'sum. online time' in the 'stats/list_rankup.php') 2) active time: This will be deducted from the online time of a user, the inactive time (idle) (see column 'sum. active time' in the 'stats/list_rankup.php'). A change of mode with an already longer running database is not recommended, but may work."; +$lang['wisvconf'] = "save"; +$lang['wisvsuc'] = "Changes successfully saved!"; +$lang['wisvres'] = "You need to restart the Ranksystem before the changes will take effect!"; +$lang['witime'] = "Timezone"; +$lang['witimedesc'] = "Select the timezone the server is hosted."; +$lang['wits3dch'] = "Default Channel"; +$lang['wits3dchdesc'] = "The channel-ID, the bot should connect with.

    The Bot will join this channel after connecting to the TeamSpeak server."; +$lang['wits3host'] = "TS3 Hostaddress"; +$lang['wits3hostdesc'] = "TeamSpeak 3 Server address
    (IP oder DNS)"; +$lang['wits3sm'] = "Slowmode"; +$lang['wits3smdesc'] = "With the Slowmode you can reduce \"spam\" of query commands to the TeamSpeak server. This prevent bans in case of flood.
    TeamSpeak Query commands get delayed with this function.

    !!! ALSO IT REDUCE THE CPU USAGE !!!

    The activation is not recommended, if not required. The delay increases the duration of the Bot, which makes it imprecisely."; +$lang['wits3qnm'] = "Botname"; +$lang['wits3qnm2'] = "2nd Botname"; +$lang['wits3qnm2desc'] = "A fallback Botname, if the first one is already in use."; +$lang['wits3qnmdesc'] = "The name, with this the query-connection will be established.
    You can name it free."; +$lang['wits3querpw'] = "TS3 Query-Password"; +$lang['wits3querpwdesc'] = "TeamSpeak 3 query password
    Password for the query user."; +$lang['wits3querusr'] = "TS3 Query-User"; +$lang['wits3querusrdesc'] = "TeamSpeak 3 query username
    Default is serveradmin
    Of course, you can also create an additional serverquery account only for the Ranksystem.
    The needed permissions you find on:
    http://ts-n.net/ranksystem.php"; +$lang['wits3query'] = "TS3 Query-Port"; +$lang['wits3querydesc'] = "TeamSpeak 3 query port
    Default is 10011 (TCP)
    If its not default, you should find it in your 'ts3server.ini'."; +$lang['wits3voice'] = "TS3 Voice-Port"; +$lang['wits3voicedesc'] = "TeamSpeak 3 voice port
    Default is 9987 (UDP)
    This is the port, you uses also to connect with the TS3 Client."; +$lang['wiupcheck'] = "Update info"; +$lang['wiupcheckdesc'] = "If the Update info is enable, the listed user gets a notification with a private text message, once an update is available."; +$lang['wiuptime'] = "Interval"; +$lang['wiuptimedesc'] = "Enter here how much seconds have to gone till the Ranksystem should check for available updates.

    Attention, for each check the listed user gets a notification. If no one of the listed users is online, the Ranksystem will try to notificate with the next interval."; +$lang['wiupuid'] = "Recipient"; +$lang['wiupuiddesc'] = "A comma separate list of unique Client-IDs, which shoud be informed on the TeamSpeak via private message for available updates."; +$lang['wivlang'] = "Language"; +$lang['wivlangdesc'] = "Choose a default language for the Ranksystem.

    The language is also selectable on the websites for the users and will be stored for the session."; +?> \ No newline at end of file diff --git a/languages/core_ru.php b/languages/core_ru.php index d935aa4..7de665e 100644 --- a/languages/core_ru.php +++ b/languages/core_ru.php @@ -1,361 +1,364 @@ добавлен к Ранг Системе."; -$lang['alrup'] = "Вы уже обновили свою базу данных. Пожалуйста, удалите этот файл из своего веб-сервера!"; -$lang['changedbid'] = "Пользователь %s (Уникальный ID клиента: %s) получил новый TeamSpeak Client-database-ID (%s). Обновление старой Client-database-ID (%s) и сброс collected times!"; +$lang['adduser'] = "Пользователь %s (Уникальный ID клиента: %s; ID в базе данных: %s) неизвестен -> добавлен к Ранг Системе."; +$lang['changedbid'] = "Пользователь %s (Уникальный ID клиента: %s) получил новый TeamSpeak Client-database-ID (%s). Обновление старой Client-database-ID (%s) и сбрасываем ему старое время!"; $lang['crawl'] = "Сканирование активности подключенных пользователей..."; $lang['clean'] = "Сканирование пользователей, которых должен удалить..."; -$lang['cleanc'] = "чистка пользователей"; -$lang['cleancdesc'] = "С включением этой функцией старые пользователи в Ranksystem будут удалены.

    С этой целью, Ranksystem синхронизируется с базой данных TeamSpeak. Пользователи, которых не существует в TeamSpeak, будут удалены из Ranksystem.

    Эта функция работает когда 'Slowmode' дезактивирован!


    Для автоматического регулирования базы данных может использоваться TeamSpeak ClientCleaner:
    http://ts-n.net/clientcleaner.php"; +$lang['cleanc'] = "Чистка пользователей"; +$lang['cleancdesc'] = "С включением этой функцией старые пользователи в Ranksystem будут удалены.

    С этой целью, Ranksystem синхронизируется с базой данных TeamSpeak. Пользователи, которых не существует в базе данных TeamSpeak, будут удалены из Ranksystem.

    Эта функция работает когда 'Slowmode' дезактивирован!


    Для автоматического регулирования базы данных TeamSpeak 3 можете использоваться ClientCleaner:
    http://ts-n.net/clientcleaner.php"; $lang['cleandel'] = "%s пользователя удаленны из базы данных Ranksystem, так как они больше не существуют в базе данных TeamSpeak."; -$lang['cleanno'] = "Никого не было, чтобы было что удалить..."; -$lang['cleanp'] = "период отчистки"; +$lang['cleanno'] = "Не найдены пользователи, которые подходили бы для удаления из базы данных."; +$lang['cleanp'] = "Период чистки БД RankSystem"; $lang['cleanpdesc'] = "Укажите время, которое должно пройти перед запуском 'чистка пользователей'.

    Устанавливается в секундах.

    Для больших баз данных рекомендуется использовать один раз в день."; $lang['cleanrs'] = "Пользователи в базе данных Ranksystem: %s"; $lang['cleants'] = "Пользователи найдены в базе данных TeamSpeak: %s (at %s)"; -$lang['days'] = "days"; -$lang['dbconerr'] = "Ошибка подключения к базе данных MySQL: "; -$lang['delcldgrpif'] = "Ошибка by removing the knowledge for servergroups: %s"; +$lang['days'] = "%s Дней"; +$lang['dbconerr'] = "Ошибка подключения к базе данных: "; +$lang['delcldgrpif'] = "Ошибка удаления пользователя из группы сервера: %s"; $lang['delcldgrpsc'] = "Данные о сервер группах для пользователя %s успешно удалена."; $lang['delclientsif'] = "%s Клиент(ов) удалено из базы данных Ранг Системы!"; $lang['delclientssc'] = "%s Клиент(ов) успешно удалено из базы данных Ранг Системы!"; -$lang['errlogin'] = "Логин и/или пароль не верны! Попробуйте снова..."; +$lang['errlogin'] = "Логин или пароль введены неверно! Попробуйте снова..."; +$lang['errlogin2'] = "Brute force protection: Попробуйте повторить через %s секунд!"; +$lang['errlogin3'] = "Brute force protection: Слишком много попыток. Вы были забанены на 300 секунд!"; $lang['error'] = "Ошибка "; -$lang['errremgrp'] = "Ошибка удаления пользователя с уникальным идентификатором UID: %s из сервер группы SID: %s!"; +$lang['errremgrp'] = "Ошибка удаления пользователя с уникальным идентификатором UID: %s из группы сервера ID: %s!"; $lang['errremdb'] = "Ошибка удаления пользователя с уникальным идентификатором UID %s из базы данных Ранг Системы!"; -$lang['errsel'] = "Error by choosing the selections with
    selected client: %s
    option 'delete clients': %s
    option 'sum. online time': %s"; +$lang['errsel'] = "Ошибка удаления пользователя с уникальным идентификатором UID: %s
    параметр 'удаление клиентов': %s
    По условию 'Суммарное время онлайна': %s"; $lang['errukwn'] = "Произошла неизвестная ошибка!"; $lang['errupcount'] = "Ошибка подсчета суммарного времени подключения %s пользователя с UCI %s"; -$lang['firstuse'] = "Кажется это первый запуск. Начинаю вести Историю Пользователей..."; -$lang['highest'] = "высокий Ранг достигнут"; -$lang['instdb'] = "Установка Базы данных:"; -$lang['instdberr'] = "Ошибка создания базы данных: "; -$lang['instdbsubm'] = "Создание Базы данных"; +$lang['highest'] = "Достигнут высший ранг"; +$lang['install'] = "Установка"; +$lang['instdb'] = "Установка базы данных"; $lang['instdbsuc'] = "База данных %s успешно создана."; -$lang['insttb'] = "Установка Базы Данных:"; -$lang['insttberr'] = "Ошибка при установке таблиц: "; -$lang['insttbsuc'] = "Таблица %s успешно создана."; -$lang['isntwicfg'] = "Не получилось записать настройки базы данных! Пожалуйста установите права на запись 'other/dbconfig.php' chmod 0777 и попробуйте снова."; -$lang['isntwichm'] = "Please edit the 'other/dbconfig.php', and the folders 'avatars/', 'icons/' and 'logs/' with the needed permissions. Therefore edit the chmod to 0777. After it try again (reload the page)."; -$lang['isntwidb'] = "Укажите настройки для подключения к базе данных:"; -$lang['isntwidberr'] = "Пожалуйста, проверьте, все ли поля были заполнены а так же корректность заполнения!"; -$lang['isntwidbhost'] = "Адрес Базы Данных:"; -$lang['isntwidbhostdesc'] = "Адрес сервера Базы Данных
    (IP or DNS)"; -$lang['isntwidbmsg'] = "Ошибка Данных: "; -$lang['isntwidbname'] = "Имя Базы Данных:"; -$lang['isntwidbnamedesc'] = "Название Базы Данных"; -$lang['isntwidbpass'] = "Пароль Базы Данных:"; +$lang['isntwicfg'] = "Не получилось записать настройки базы данных! Пожалуйста, установите права на запись 'other/dbconfig.php' chmod 0777 и попробуйте снова."; +$lang['isntwicfg2'] = "Конфигурирование веб-интерфейса"; +$lang['isntwichm'] = "Отсутствуют права на запись в папку \"%s\". Пожалуйста, установите на эту папку права chmod 0777 и повторите этот этап заново."; +$lang['isntwidbhost'] = "Адрес:"; +$lang['isntwidbhostdesc'] = "Адрес сервера базы данных
    (IP or DNS)"; +$lang['isntwidbmsg'] = "Ошибка базы данных: "; +$lang['isntwidbname'] = "Имя:"; +$lang['isntwidbnamedesc'] = "Название базы данных"; +$lang['isntwidbpass'] = "Пароль:"; $lang['isntwidbpassdesc'] = "Пароль для подключения к базе данных"; -$lang['isntwidbtype'] = "Тип Базы Данных:"; -$lang['isntwidbtypedesc'] = "Тип Базы Данных

    У вас должен быть установлен PDO Драйвер.
    Для получения дополнительной информации см. http://ts-n.net/ranksystem.php"; -$lang['isntwidbusr'] = "Пользователь Базы Данных:"; -$lang['isntwidbusrdesc'] = "Пользователь с доступом к Базе Данных"; -$lang['isntwidel'] = "Пожалуйста удалите файл 'install.php' и файлы 'update_x-xx.php' с вашего Веб-Сервера и откройте %s для настройки Ранг Системы!"; +$lang['isntwidbtype'] = "Тип базы данных:"; +$lang['isntwidbtypedesc'] = "Тип базы данных

    Для корректной работы у вас должен быть установлен PDO-Драйвер.
    Для получения дополнительной информации см. http://ts-n.net/ranksystem.php"; +$lang['isntwidbusr'] = "Пользователь:"; +$lang['isntwidbusrdesc'] = "Пользователь с доступом к базе данных"; +$lang['isntwidel'] = "Пожалуйста, удалите файл 'install.php' Веб-Сервера в целях безопасности! После откройте %s для настройки Системы рангов(RankSystem)!"; $lang['isntwiusr'] = "Пользователь Веб-Панели успешно создан."; -$lang['isntwiusrcr'] = "создание доступа"; +$lang['isntwiusrcr'] = "Создать создать аккаунт Администратора"; $lang['isntwiusrdesc'] = "Введите имя пользователя и пароль для доступа в Веб-Панель. С помощью Веб-Панели вы сможете настроить ранг систему."; $lang['isntwiusrh'] = "Доступ - Веб-Панель"; -$lang['listacsg'] = "ток сервер группа"; +$lang['listacsg'] = "Текущая сервер группа"; $lang['listcldbid'] = "ID клиента в базе данных"; -$lang['listexgrp'] = "Не учитывается Ранг Системой (исключения по сервергруппам)."; -$lang['listexuid'] = "Не учитывается Ранг Системой (исключения по клиентам)."; -$lang['listip'] = "IP адрес"; -$lang['listnick'] = "Ник"; -$lang['listnxsg'] = "Следующая сервер группа"; +$lang['listexgrp'] = "Не учитывается Ранг Системой (исключение по группам сервера)."; +$lang['listexuid'] = "Не учитывается Ранг Системой (исключение по клиентам)."; +$lang['listip'] = "IP-адрес"; +$lang['listnick'] = "Никнейм"; +$lang['listnxsg'] = "Следующая группа ранга"; $lang['listnxup'] = "Следующий Ранг через"; -$lang['listrank'] = "П\Н"; -$lang['listseen'] = "последняя активность"; +$lang['listrank'] = "Ранг"; +$lang['listseen'] = "Последняя активность"; $lang['listsuma'] = "Сумм. время активности"; $lang['listsumi'] = "Сумм. время простоя"; $lang['listsumo'] = "Сумм. время подключения"; -$lang['listtime'] = "%s день(й), %s час(ов), %s мин., %s сек."; -$lang['listuid'] = "Уникальный ID клиента"; -$lang['new'] = "новый"; -$lang['nocount'] = "Пользователь %s (Уникальный Клиент ID: %s; Клиент ID %s) это query-пользователь (постоянно первое подключение) -> не будет учитываться!"; +$lang['listuid'] = "Уникальный ID клиента(UID)"; +$lang['login'] = "Авторизоваться"; +$lang['nocount'] = "Пользователь %s (Уникальный Клиент ID: %s; Клиент ID %s) является query-пользователем -> не будет учитываться!"; $lang['noentry'] = "Записей не найдено.."; -$lang['pass'] = "Пароль: "; -$lang['queryname'] = "Первый Botname уже используется. Попробуйте вторым Botname..."; +$lang['pass'] = "Пароль"; +$lang['queryname'] = "Первый никнейм для бота уже занят другим пользователем. Пробуем использовать второй никнейм..."; $lang['sccrmcld'] = "Пользователь с уникальным ID %s успешно удален из базы данных Ранг Системы."; $lang['sccupcount'] = "Пользователь с уникальным ID %s успешно переписан с итоговым временем онлайн %s."; -$lang['setontime'] = "сумм. время подключения"; -$lang['setontimedesc'] = "Укажите новое суммарное время подключения для выбранных клиентов. С этим изминением пользователь получит указанное время подключения.

    Указанное время подключения будет учтено Ранг Системой."; +$lang['setontime'] = "Правка накопленного времени"; +$lang['setontimedesc'] = "Укажите новое время в секундах, которое нужно задать выбранным клиентам.

    Указанное время подключения будет учтено Ранг Системой и пользователь будет награжден новым Рангом, если он достиг его."; $lang['sgrpadd'] = "Выдана сервер группа %s пользователю %s (Уникальный ID клиента: %s; ID в базе данных: %s)."; -$lang['sgrprerr'] = "Что то пошло не так, проблема с сервер группой пользователя %s (Уникальный ID клиента:: %s; ID в базе данных %s)!"; +$lang['sgrprerr'] = "Что-то пошло не так, проблема с сервер группой пользователя %s (Уникальный ID клиента:: %s; ID в базе данных %s)!"; $lang['sgrprm'] = "С пользователя %s (Уникальный ID клиента: %s; ID в базе данных: %s) удалена сервер-группа %s."; -$lang['sitegen'] = "Страница генерирована за %s секунд. %s пользователей."; -$lang['sitegenl'] = "Страница генерирована за %s секунд с %s пользователями ( %s пользователей показанно; %s игнорируются по правилам исключения; %s высокого ранга)."; -$lang['stix0001'] = "Server Statistics"; -$lang['stix0002'] = "Total Users"; -$lang['stix0003'] = "View Details"; -$lang['stix0004'] = "Online Time Of All User / Total"; -$lang['stix0005'] = "View Top Of All Time"; -$lang['stix0006'] = "View Top Of The Month"; -$lang['stix0007'] = "View Top Of The Week"; -$lang['stix0008'] = "Server Usage"; -$lang['stix0009'] = "In The Last 7 Days"; -$lang['stix0010'] = "In The Last 30 Days"; -$lang['stix0011'] = "In The Last 24 Hours"; -$lang['stix0012'] = "select period"; -$lang['stix0013'] = "Last Day"; -$lang['stix0014'] = "Last Week"; -$lang['stix0015'] = "Last Month"; -$lang['stix0016'] = "Active / Inactive Time (Of All Clients)"; -$lang['stix0017'] = "Versions (Of All Clients)"; -$lang['stix0018'] = "Nationalities (Of All Clients)"; -$lang['stix0019'] = "Platforms (Of All Clients)"; -$lang['stix0020'] = "Current Statistics"; -$lang['stix0021'] = "Requested Information"; -$lang['stix0022'] = "Result"; -$lang['stix0023'] = "Server Status"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "Clients (Online / Max)"; -$lang['stix0027'] = "Amount Of Channels"; -$lang['stix0028'] = "Average Server Ping"; -$lang['stix0029'] = "Total Bytes Received"; -$lang['stix0030'] = "Total Bytes Sent"; -$lang['stix0031'] = "Server Uptime"; -$lang['stix0032'] = "before offline:"; -$lang['stix0033'] = "00 Days, 00 Hours, 00 Mins, 00 Secs"; -$lang['stix0034'] = "Average Packet Loss"; -$lang['stix0035'] = "Overall Statistics"; -$lang['stix0036'] = "Server Name"; -$lang['stix0037'] = "Server Address (Host Address : Port)"; -$lang['stix0038'] = "Server Password"; -$lang['stix0039'] = "No (Server is Public)"; -$lang['stix0040'] = "Yes (Server Is Private)"; -$lang['stix0041'] = "Server ID"; -$lang['stix0042'] = "Server Platform"; -$lang['stix0043'] = "Server Version"; -$lang['stix0044'] = "Server Creation Date (dd/mm/yyyy)"; -$lang['stix0045'] = "Report To Server List"; -$lang['stix0046'] = "Activated"; -$lang['stix0047'] = "Not Activated"; -$lang['stix0048'] = "not enough data yet..."; -$lang['stix0049'] = "Online Time Of All User / Last Month"; -$lang['stix0050'] = "Online Time Of All User / Last Week"; -$lang['stix0051'] = "TeamSpeak has failed, so no creation date..."; -$lang['stmy0001'] = "My Statistics"; -$lang['stmy0002'] = "Rank"; -$lang['stmy0003'] = "Database ID:"; -$lang['stmy0004'] = "Unique ID:"; -$lang['stmy0005'] = "Total Connections To The Server:"; -$lang['stmy0006'] = "Start Date For Statistics:"; -$lang['stmy0007'] = "Total Online Time:"; -$lang['stmy0008'] = "Online Time Last 7 Days:"; -$lang['stmy0009'] = "Online Time Last 30 Days:"; -$lang['stmy0010'] = "Achievements Completed:"; -$lang['stmy0011'] = "Time Achievement Progress"; -$lang['stmy0012'] = "Time: Legendary"; -$lang['stmy0013'] = "Because You Have A Online Time Of %s hours."; -$lang['stmy0014'] = "Progress Completed"; -$lang['stmy0015'] = "Time: Gold"; -$lang['stmy0016'] = "% Completed For Legendary"; -$lang['stmy0017'] = "Time: Silver"; -$lang['stmy0018'] = "% Completed For Gold"; -$lang['stmy0019'] = "Time: Bronze"; -$lang['stmy0020'] = "% Completed For Silver"; -$lang['stmy0021'] = "Time: Unranked"; -$lang['stmy0022'] = "% Completed For Bronze"; -$lang['stmy0023'] = "Connection Achievement Progress"; -$lang['stmy0024'] = "Connects: Legendary"; -$lang['stmy0025'] = "Because You Connected %s Times To The Server."; -$lang['stmy0026'] = "Connects: Gold"; -$lang['stmy0027'] = "Connects: Silver"; -$lang['stmy0028'] = "Connects: Bronze"; -$lang['stmy0029'] = "Connects: Unranked"; -$lang['stmy0030'] = "Progress next servergroup"; -$lang['stnv0001'] = "Server News"; -$lang['stnv0002'] = "Close"; -$lang['stnv0003'] = "Refresh Client Information"; -$lang['stnv0004'] = "Only use this Refresh, when your TS3 information got changed, such as your TS3 username"; -$lang['stnv0005'] = "It only works, when you are connected to the TS3 Server at the same time"; -$lang['stnv0006'] = "Refresh"; -$lang['stnv0007'] = "Battle Area - Page Content"; -$lang['stnv0008'] = "You can challenge other users in a battle between two users or two teams."; -$lang['stnv0009'] = "While the battle is active the online time of the teams/users will be counted."; -$lang['stnv0010'] = "When the battle ends the team/user with the highest online time wins."; -$lang['stnv0011'] = "(The regular battling time is 48 hours)"; -$lang['stnv0012'] = "The winning team/user will recieve a price, which the user can use whenever the user wants."; -$lang['stnv0013'] = "It will be displayed on the My Statistics tab."; -$lang['stnv0014'] = "(Could be online time boost(2x) for 8 hours, instant online time (4 hours), etc."; -$lang['stnv0015'] = "These boosts can be used for example to climb in the top users of the week."; -$lang['stnv0016'] = "Not available"; -$lang['stnv0017'] = "You are not connected to the TS3 Server, so it cant display any data for you."; -$lang['stnv0018'] = "Please connect to the TS3 Server and then Refresh your Session by pressing the blue Refresh Button at the top-right corner."; -$lang['stnv0019'] = "My Statistics - Page Content"; -$lang['stnv0020'] = "This page contains a overall summary of your personal statistics and activity on the server."; -$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; -$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; -$lang['stnv0023'] = "The sum inside of the donut charts may differ to the amount of 'Total user'. The reason is that this data weren't collected with older versions of the Ranksystem."; -$lang['stnv0024'] = "Ranksystem - Statistics"; -$lang['stnv0025'] = "Limit entries"; -$lang['stnv0026'] = "all"; -$lang['stnv0027'] = "The Informations on this site could be outdated! It seems the Ranksystem is no more connected to the TeamSpeak."; -$lang['stnv0028'] = "(You are not connected to the TS3!)"; -$lang['stnv0029'] = "List Rankup"; -$lang['stnv0030'] = "Ranksystem Info"; -$lang['stnv0031'] = "DE - Deutsch"; -$lang['stnv0032'] = "EN - english"; -$lang['stnv0033'] = "RU - русский"; -$lang['stnv0034'] = "IT - italiano"; -$lang['stri0001'] = "Ranksystem Information"; -$lang['stri0002'] = "What Is The Ranksystem?"; -$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; -$lang['stri0004'] = "Who Created The Ranksystem?"; -$lang['stri0005'] = "When Did The Ranksystem Created?"; -$lang['stri0006'] = "First alpha release: 05/10/2014."; -$lang['stri0007'] = "First beta release: 01/02/2015."; -$lang['stri0008'] = "You can see the newest version on the Ranksystem Website."; -$lang['stri0009'] = "How Did The Ranksystem Created?"; -$lang['stri0010'] = "The Ranksystem is coded in"; -$lang['stri0011'] = "It uses also the following libraries:"; -$lang['stri0012'] = "Special Thanks To:"; -$lang['stri0013'] = "sergey - for russian translation"; -$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; -$lang['stri0015'] = "ZanK - for italian translation"; -$lang['sttw0001'] = "Top Users"; -$lang['sttw0002'] = "Of The Week"; -$lang['sttw0003'] = "With %s Hours Online Time"; -$lang['sttw0004'] = "Top 10 Compared"; -$lang['sttw0005'] = "Hours (Defines 100 %)"; -$lang['sttw0006'] = "%s Hours (%s%)"; -$lang['sttw0007'] = "Top 10 Statistics"; -$lang['sttw0008'] = "Top 10 Vs Others In Online Time"; -$lang['sttw0009'] = "Top 10 Vs Others In Active Time"; -$lang['sttw0010'] = "Top 10 Vs Others In Inactive Time"; -$lang['sttw0011'] = "Top 10 (in Hours)"; -$lang['sttw0012'] = "Other %s Users (in Hours)"; -$lang['sttw0013'] = "With %s hours active time"; -$lang['sttm0001'] = "Of The Month"; -$lang['stta0001'] = "Of All Time"; -$lang['updb'] = "Запустите это, если вы хотите обновить Ranksystem с более старой версии до версии %s!

    Запустите это один раз после чего удалите update_%s.php файлы с вашего вебсервера.


    Обновление Базы данных:
    "; -$lang['updel'] = "Пожалуйста, удалите следующие файлы из корня ranksystem, если они все еще существуют:
    %s"; +$lang['stix0001'] = "Статистика сервера"; +$lang['stix0002'] = "Пользователей зарегистрировано в базе RankSystem"; +$lang['stix0003'] = "Посмотреть подробнее"; +$lang['stix0004'] = "Общий накопленный онлайн за всё время"; +$lang['stix0005'] = "Топ онлайна за всё время"; +$lang['stix0006'] = "Топ онлайна за месяц"; +$lang['stix0007'] = "Топ онлайна за неделю"; +$lang['stix0008'] = "Активность сервера"; +$lang['stix0009'] = "За последние 7 дней"; +$lang['stix0010'] = "За последние 30 дней"; +$lang['stix0011'] = "За последние 24 часа"; +$lang['stix0012'] = "Выберите период"; +$lang['stix0013'] = "За день"; +$lang['stix0014'] = "За неделю"; +$lang['stix0015'] = "За месяц"; +$lang['stix0016'] = "Соотнош. активн./AFK"; +$lang['stix0017'] = "Версии клиентов"; +$lang['stix0018'] = "Рейтинг стран"; +$lang['stix0019'] = "Популярные платформы"; +$lang['stix0020'] = "Текущая статистика"; +$lang['stix0023'] = "Статус сервера"; +$lang['stix0024'] = "Активен"; +$lang['stix0025'] = "Неактивен"; +$lang['stix0026'] = "Пользователей (В сети / Вмещается)"; +$lang['stix0027'] = "Количество каналов"; +$lang['stix0028'] = "Средний пинг на сервере"; +$lang['stix0029'] =" Всего байтов получено"; +$lang['stix0030'] = "Всего байтов отправлено"; +$lang['stix0031'] = "Сервер онлайн"; +$lang['stix0032'] = "Находится в оффлайне:"; +$lang['stix0033'] = "00 Дней, 00 Часов, 00 Мин., 00 Сек."; +$lang['stix0034'] = "Средняя потеря пакетов"; +$lang['stix0035'] = "Информация о сервере"; +$lang['stix0036'] = "Название сервера"; +$lang['stix0037'] = "Адрес сервера (IP : Порт)"; +$lang['stix0038'] = "Защищен паролем"; +$lang['stix0039'] = "Нет (Публичный сервер)"; +$lang['stix0040'] = "Да (Приватный сервер)"; +$lang['stix0041'] = "ID сервера"; +$lang['stix0042'] = "Серверная платформа"; +$lang['stix0043'] = "Версия сервера"; +$lang['stix0044'] = "Дата создания (dd/mm/yyyy)"; +$lang['stix0045'] = "Видимость в глобал. списке"; +$lang['stix0046'] = "Отображается"; +$lang['stix0047'] = "Не отображается"; +$lang['stix0048'] = "Нет информации..."; +$lang['stix0049'] = "Общий накопленный онлайн за месяц"; +$lang['stix0050'] = "Общий накопленный онлайн за неделю"; +$lang['stix0051'] = "Ошибка при получении даты"; +$lang['stmy0001'] = "Моя статистика"; +$lang['stmy0002'] = "Ранг"; +$lang['stmy0003'] = "ID в базе данных:"; +$lang['stmy0004'] = "Уникальный ID(UID):"; +$lang['stmy0005'] = "Всего подключений к серверу:"; +$lang['stmy0006'] = "Занесён в базу статистики"; +$lang['stmy0007'] = "Проведенное время на сервере:"; +$lang['stmy0008'] = "Онлайн за 7 дней:"; +$lang['stmy0009'] = "Онлайн за 30 дней:"; +$lang['stmy0010'] = "Получено достижений:"; +$lang['stmy0011'] = "Достижение за онлайн на сервере"; +$lang['stmy0012'] = "Уровень: Легенда"; +$lang['stmy0013'] = "Вы провели в онлайне на сервере %s часа(ов)."; +$lang['stmy0014'] = "Полностью выполнена вся цепочка"; +$lang['stmy0015'] = "Уровень: Золото"; +$lang['stmy0016'] = "% завершено до получения уровня \"Легенда\""; +$lang['stmy0017'] = "Уровень: Серебро"; +$lang['stmy0018'] = "% завершено до получения уровня \"Золото\""; +$lang['stmy0019'] = "Уровень: Бронза"; +$lang['stmy0020'] = "% завершено до получения уровня \"Серебро\""; +$lang['stmy0021'] = "Уровень: Без достижений"; +$lang['stmy0022'] = "% завершено до получения уровня \"Бронза\""; +$lang['stmy0023'] = "Достижение за количество подключений"; +$lang['stmy0024'] = "Уровень: Легенда"; +$lang['stmy0025'] = "Всего ваших подключений к серверу: %s раз."; +$lang['stmy0026'] = "Уровень: Золото"; +$lang['stmy0027'] = "Уровень: Серебро"; +$lang['stmy0028'] = "Уровень: Бронза"; +$lang['stmy0029'] = "Уровень: Без достижений"; +$lang['stmy0030'] = "Прогресс до следующего ранга на сервере"; +$lang['stnv0001'] = "Наши новости"; +$lang['stnv0002'] = "Закрыть"; +$lang['stnv0003'] = "Обновление информации о клиенте"; +$lang['stnv0004'] = "Используйте это, если хотите чтобы обновилась информация о вас. К примеру, вы зашли под другим аккаунтом на сервер TeamSpeak и хотите увидеть его статистику."; +$lang['stnv0005'] = "Это работает только если вы подключены к серверу TeamSpeak в данный момент."; +$lang['stnv0006'] = "Обновить"; +$lang['stnv0007'] = "Battle area - Содержимое"; +$lang['stnv0008'] = "Вы можете создать состязание между двумя пользователями или командами."; +$lang['stnv0009'] = "Во время \"Битвы\" подсчитывается время, проведенное на сервере у обеих команд или игроков."; +$lang['stnv0010'] = "Для победы необходимо набрать больше времени в онлайне, чем команда противника."; +$lang['stnv0011'] = "(Продолжительность \"Битвы\" - 48 часов)"; +$lang['stnv0012'] = "Команда победителей получает приз, который пользователь может затем использовать."; +$lang['stnv0013'] = "Полученный приз будет отображаться в вкладкеМоя статистика."; +$lang['stnv0014'] = "(Это может быть множитель времени(2x) на 8 часов или же бонус, в виде прибавки к основному времени (4 часа), и т.д."; +$lang['stnv0015'] = "Также, \"множители времени\" можно использовать для поднятия себя в рейтинге пользователей за неделю/месяц"; +$lang['stnv0016'] = "Недоступно"; +$lang['stnv0017'] = "Для доступа к этим данным необходимо, чтобы вы подключились к серверу TeamSpeak"; +$lang['stnv0018'] = "Пожалуйста, подключитесь к TeamSpeak серверу и обновите вашу сессию, путём нажатия синей кнопки в верхнем правом углу браузера."; +$lang['stnv0019'] = "Статистика сервера - содержимое"; +$lang['stnv0020'] = "Эта страница содержит информацию о вашей статистике и активности на сервере."; +$lang['stnv0021'] = "Большинство этой информации было собрано с момента начального старта системы RankSystem, никак не с момента первого запуска TeamSpeak сервера."; +$lang['stnv0022'] = "Данная информация получена из базы данных RankSystem и может отличаться от той, которая хранится в базе данных TeamSpeak."; +$lang['stnv0023'] = "К тому же, информация внутри диаграмм может расходиться с реальными цифрами из базы данных TeamSpeak 3. Это связано с тем, что старые версии RankSystem не собирали часть той информации, которая используется сейчас."; +$lang['stnv0024'] = "RankSystem — статистика TeamSpeak 3 сервера"; +$lang['stnv0025'] = "Ограничение списка"; +$lang['stnv0026'] = "Все"; +$lang['stnv0027'] = "Информация на сайте может быть устаревшей! Кажется,\"система рангов\" больше не подключена к TeamSpeak 3 серверу. Потеряно соединение?"; +$lang['stnv0028'] = "(Вы не подключены к TS3!)"; +$lang['stnv0029'] = "Общая статистика"; +$lang['stnv0030'] = "О RankSystem"; +$lang['stnv0031'] = "Поиск также поддерживает шаблоны: никнейм пользователя, уникальный ID(UID) и ID клиента в базе данных."; +$lang['stnv0032'] = "Вы также можете использовать фильтр запроса (смотрите ниже). Для этого введите его в поисковое поле."; +$lang['stnv0033'] = "Также допустимы комбинации шаблонов и фильтров. Для этого введите первым фильтр, за ним без пробелов шаблон."; +$lang['stnv0034'] = "Это позволяет комбинировать множество фильтров, вводить которые необходимо последовательно."; +$lang['stnv0035'] = "Пример:
    filter:nonexcepted:TeamSpeakUser"; +$lang['stnv0036'] = "Показывать только клиентов находящихся в исключении (клиентов, групп сервера или исключение канала)."; +$lang['stnv0037'] = "Показывать только клиентов не находящихся в исключении клиентов"; +$lang['stnv0038'] = "Показывать только клиентов находящихся в онлайне"; +$lang['stnv0039'] = "Показывать только клиентов не находящихся в онлайне"; +$lang['stnv0040'] = "Показывать только клиентов в указанных группах, она же - выборка юзеров по рангам
    Замените GROUPID на желаемые ID группы ранга."; +$lang['stnv0041'] = "Показать клиентов, удовлетворяющих поисковому запросу по дате последнего посещения сервера.
    Замените OPERATOR на '<' или '>' или '=' или '!='.
    Также замените TIME на желаемую дату поиска в формате 'Y-m-d H-i'(год-месяц-день час-минута) (пример: 2016-06-18 20-25).
    Более подробный пример запроса: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = "Показывать только клиентов из указанной страны.
    Замените TS3-COUNTRY-CODE на желаемый код страны.
    Коды стран вы можете взять Здесь(Википедия)"; +$lang['stri0001'] = "Информация о системе рангов"; +$lang['stri0002'] = "Что такое TSN Ranksystem?"; +$lang['stri0003'] = "Удобная система, позволяющая создать на сервере TeamSpeak 3 систему рангов-поощрений, основанную на времени, которое пользователи проводят на сервере. Ко всему прочему, она также занимается сбором информации о пользователях и последующим её отображением на сайте."; +$lang['stri0004'] = "Кто является её разработчиком?"; +$lang['stri0005'] = "Когда была создана TSN Ranksystem?"; +$lang['stri0006'] = "Альфа-релиз: 05/10/2014."; +$lang['stri0007'] = "Бета-релиз: 01/02/2015."; +$lang['stri0008'] = "Вы можете найти новую версию на сайте: Ranksystem Website."; +$lang['stri0009'] = "Как создавалась TSN Ranksystem?"; +$lang['stri0010'] = "\"Система рангов\" разрабатывалась на языке"; +$lang['stri0011'] = "При создании использовался следующий набор инструментов:"; +$lang['stri0012'] = "Особая благодарность:"; +$lang['stri0013'] = "sergey, Arselopster & DeviantUser - За русскоязычный перевод текста."; +$lang['stri0014'] = "Bejamin Frost - За помощь в создании дизайна сайта с помощью Bootstrap."; +$lang['stri0015'] = "ZanK - За перевод интерфейса на итальянский."; +$lang['stri0016'] = "DeStRoYzR & Jehad - для инициирования перевода на арабский язык"; +$lang['stri0017'] = "SakaLuX - для инициирования перевода румынский"; +$lang['sttw0001'] = "Рейтинг пользователей"; +$lang['sttw0002'] = "Лучшие за неделю"; +$lang['sttw0003'] = "Набрал %s часов онлайна"; +$lang['sttw0004'] = "Топ-10 в графике(Разрыв между участниками)"; +$lang['sttw0005'] = "Часов (Представляет собой 100 %)"; +$lang['sttw0006'] = "%s часов (%s%)"; +$lang['sttw0007'] = "Участники топ-10 в сравнении"; +$lang['sttw0008'] = "Топ-10 Vs остальные по времени онлайн"; +$lang['sttw0009'] = "Топ-10 Vs остальные по активности"; +$lang['sttw0010'] = "Tоп-10 Vs остальные по времени оффлайн"; +$lang['sttw0011'] = "Топ-10 в графике"; +$lang['sttw0012'] = "Остальные %s клиенты (в часах)"; +$lang['sttw0013'] = "С %s Часами аквтиности"; +$lang['sttm0001'] = "Лучшие за месяц"; +$lang['stta0001'] = "Лучшие за все время"; $lang['upinf'] = "Доступна новая версия Ранг Системы; Сообщаю Клиентам на Сервере..."; -$lang['upmov'] = "Пожалуйста, переместите \'%s\' в подпапку \'%s\' и перепишите существующий!"; -$lang['upmsg'] = "\nЭй, доступна новая версия [B]Ранг Системы[/B]!\n\nтекущая версия: %s\n[B]новая версия: %s[/B]\n\nПожалуйста посетите наш сайт [URL]http://ts-n.net/ranksystem.php[/URL] для получения более подробной информации."; +$lang['upmsg'] = "\nЭй, доступна новая версия [B]Ранг Системы[/B]!\n\nТекущая версия: %s\n[B]новая версия: %s[/B]\n\nПожалуйста, посетите наш сайт [URL]http://ts-n.net/ranksystem.php[/URL] для получения более подробной информации."; $lang['upsucc'] = "Обновление базы данных успешно выполнено."; -$lang['upuser'] = "Пользователь %s (Уникальный ID клиента: %s; ID в базе данных: %s) получает новое количество (сумм. время подключения) из %s (thereof active %s)."; -$lang['upuserboost'] = "Пользователь %s (Уникальный ID клиента: %s; ID в базе данных: %s) получает новое количество (сумм. время подключения) из %s (thereof active %s) [BOOST %sx]."; +$lang['upuser'] = "Пользователь %s (Никнейм: %s; UID в базе данных: %s) получает новое количество (сумм. время подключения) из %s (активное время онлайна %s)."; +$lang['upuserboost'] = "Пользователь %s (Никнейм: %s; UID в базе данных: %s) получает новое количество (сумм. время подключения) из %s (активное время онлайна %s) [BOOST %sx]."; $lang['upusrerr'] = "Пользователь с уникальным ID %s не был найден (не правильно указан Уникальный ID или пользователь в настоящий момент не подключен к серверу Teamspeak)!"; $lang['upusrinf'] = "Пользователь %s был успешно информирован."; -$lang['user'] = "Логин: "; -$lang['usermsgactive'] = "\nЭй, вы получили новый Ранг, так как были активны в течении %s дней, %s часов, %s минут и %s секунд."; -$lang['usermsgonline'] = "\nЭй, вы получили новый Ранг, так как были онлайн в течении %s дней, %s часов, %s минут и %s секунд."; -$lang['wiaction'] = "выполнить"; -$lang['wibgco'] = "Цвет фона:"; -$lang['wibgcodesc'] = "Укажите код цвета фона.
    (только HTML код; должно начинаться с # )"; -$lang['wiboost'] = "повышение"; -$lang['wiboostdesc'] = "Give an user on your TeamSpeak server a servergroup (have to be created manually), which you can declare here as boost group. Define also a factor which should be used (for example 2x) and a time, how long the boost should be rated.
    The higher the factor, the faster an user reaches the next higher rank.
    Is the time expired, the boost servergroup get automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.

    servergroup ID => factor => time (in seconds)

    Each entry have to separate from next with a comma.

    Example:
    12=>2=>6000,13=>3=>2500,14=>5=>600

    On this an user in servergroup 12 get the factor 2 for the next 6000 seconds, an user in servergroup 13 get the factor 3 for 2500 seconds, and so on..."; +$lang['user'] = "Логин"; +$lang['wiaction'] = "Выполнить"; +$lang['wiboost'] = "Бустер онлайна"; +$lang['wiboostdesc'] = "Вы можете указать здесь ID групп сервера(Их необходимо создать на TeamSpeak сервере заранее), выступающие в роли множителя накапливаемого времени, которое получает пользователь за онлайн на сервере. Также вы должны указать на сколько должно умножаться время и период действия группы-множителя. Чем больше множитель времени, тем быстрее пользователь достигнет следующий ранг. По окончанию действия множителя, группа-множитель автоматически снимается с пользователя. Пример указания группы-множителя следующий: ID группы => множитель => время(В секундах). Если вы хотите сделать две такие группы, то просто разделите их между собой запятой.

    Пример:
    12=>2=>6000,13=>3=>2500,14=>5=>600

    Из примера выше следует, что группа с ID 12 дает множитель времени х2 на 6000 секунд, а группа 13 имеет множитель х3 на 2500 секунд. 14 группа соответственно, имеет множитель х5 на 600 секунд."; +$lang['wibot1'] = "RankSystem был выключен. Более подробную информацию смотрите в логе ниже!"; +$lang['wibot2'] = "RankSystem запущен. Более подробную информацию смотрите в логе ниже!"; +$lang['wibot3'] = "RankSystem перезагружается. Более подробную информацию смотрите в логе ниже!"; +$lang['wibot4'] = "Включить / Выключить бота RankSystem"; +$lang['wibot5'] = "Запустить"; +$lang['wibot6'] = "Остановить"; +$lang['wibot7'] = "Перезапуститб"; +$lang['wibot8'] = "Лог RankSystem:"; +$lang['wibot9'] = "Заполните все обязательные поля перед запуском RankSystem!!"; $lang['wichdbid'] = "Client-database-ID reset"; -$lang['wichdbiddesc'] = "Сбрасывает время онлайн пользователя, если его ID в базы данных клиента TeamSpeak изменился.

    Пример:
    Если пользователь удален из БД сервера TeamSpeak, то, новый ID базы данных клиента будет записан со следующим подключением к серверу."; -$lang['wiconferr'] = "Есть ошибка в конфигурации Ranksystem. Пожалуйста, зайдите в Веб Панель и проверте настройки раздела 'Настройка Ранг Системы'. Особенно проверьте 'Ранги'!"; +$lang['wichdbiddesc'] = "Сбрасывает время онлайн пользователя, если его ID в базе данных клиента TeamSpeak изменился.

    Пример:
    Если пользователь удален из БД сервера TeamSpeak, то, новый ID в базе данных клиента будет записан со следующим подключением к серверу."; +$lang['wiconferr'] = "Есть ошибка в конфигурации Ranksystem. Пожалуйста, зайдите в Веб-Панель и проверьте настройки раздела 'Настройка Ранг Системы'. Особенно тщательно проверьте 'Ранги'!"; $lang['widaform'] = "Формат даты"; $lang['widaformdesc'] = "Выберите формат показа даты.

    Пример:
    %a дней, %h часов, %i минут, %s секунд"; $lang['widbcfgsuc'] = "Настройки Базы Данных успешно сохранены."; -$lang['widbcfgerr'] = "Ошибка сохранения настроек базы данных! Ошибка подключения, проверте на правильность настроек 'other/dbconfig.php'"; +$lang['widbcfgerr'] = "Ошибка сохранения настроек в базе данных! Ошибка подключения, проверьте на правильность настройки 'other/dbconfig.php'"; $lang['widelcld'] = "удаление пользователей"; -$lang['widelcldgrp'] = "renew groups"; -$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

    With this function you can remove once time the knowledge of given servergroups. In effect the ranksystem try to give all clients (which are on the TS3 server online) the servergroup of the actual rank.
    For each client, which gets the group or stay in group, the Ranksystem remember this like described at beginning.

    This function can be helpful, when user are not in the servergroup, they should be for the defined online time.

    Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause he can't remember ;-)"; -$lang['widelclddesc'] = "Удаление выбранных клиентов из базы данных Ранг-Системы.

    Клиент непосредственно на сервере Teamspeak не будет удален."; -$lang['widelsg'] = "удаление из сервер групп"; -$lang['widelsgdesc'] = "Выберите, если клиенты должны также быть удалены из последней известной Сервер-группы, когда Вы удаляете клиентов из базы данных Ранг Системы.

    Будет затронуты только те сервер группы, которые указанны в настройках Ранг Системы"; +$lang['widelcldgrp'] = "Обновить группы"; +$lang['widelcldgrpdesc'] = "RankSystem хранит текущие группы рангов пользователей в своей базе данных и после того, как вы отредактируете этих пользователей, то пройдет некоторое время, прежде чем бот уберёт затронутых пользователей из их прежних групп ранга.
    Однако, этой функцией вы можете принудительно запустить процесс обновления групп ранга у всех пользователей, которые в данный момент подключены к серверу."; +$lang['widelclddesc'] = "Удаление выбранных клиентов из базы данных RankSystem.

    Клиент непосредственно на сервере Teamspeak не будет удален."; +$lang['widelsg'] = "Удалить их также из групп сервера"; +$lang['widelsgdesc'] = "Выберите, если клиенты должны также быть удалены из последней заработанной ими группы-ранга."; $lang['wideltime'] = "Время удаления"; -$lang['wideltimedesc'] = "Отчистка базы данных Ранг Системы от старых клиентов.
    Entry a time in seconds which a client was not seen to delete it.

    0 - deletes all clients out of the Ranksystem

    При этом база данных пользователей на сервере TeamSpeak затронута не будет!"; +$lang['wideltimedesc'] = "Очистка базы данных Ранг Системы от старых клиентов.
    Введите время в секундах, достигнув которого, пользователь не будет удален из БД RankSystem.

    0 - Удаление всех пользователей из БД RankSystem

    При этом база данных пользователей на сервере TeamSpeak затронута не будет!"; +$lang['wiexcid'] = "Исключения каналов"; +$lang['wiexciddesc'] = "Через запятую должен будет указан список каналов, которые должна будет игнорировать система рангов

    Находясь в этих каналах, пользователям не будет начислять время за онлайн на сервере.

    Данную функция можно использовать к примеру, для AFK каналов.
    При режиме 'активное время', эта функция становится бесполезной, т.к. в канале юзеру перестает вовсе начисляться время бездействия

    Пользователи находящиеся в таких каналах, помечаются на этот период как 'исключение из списков RankSystem'. К тому же, данные пользователи перестают отображаться в 'stats/list_rankup.php' и становятся доступны только с фильтром поиска или с включенным отображением \"исключенных клиентов\"(Страница статистики - \"исключенный клиент\")."; $lang['wiexgrp'] = "Исключения сервер групп"; -$lang['wiexgrpdesc'] = "Укажите через запятую какие сервер группы будут игнорироваться Ранг Системой.
    Если пользователь находится хоты бы в одной из этих групп то Ранг Система будет игнорировать его."; -$lang['wiexuid'] = "Исключения CID"; -$lang['wiexuiddesc'] = "Укажите через запятую уникальные идентификаторы клиентов (Client-IDs), которых будет игнорировать Ранг Система.
    Пользователи в этом списке будет проигнорированы Ранг Системой."; -$lang['wigrptime'] = "Ранги"; -$lang['wigrptimedesc'] = "Укажите через какой промежуток времени будет выданная сервер группа.

    Время (в секундах)=>номер сервер группы SID

    Важным условием для этого, является учет времени онлайн пользователя или если включен учет 'Время простоя'.

    Каждый параметр должен разделяться запятой.

    Так же время должно быть указанно по 'нарастающей'

    Пример:
    60=>9,120=>10,180=>11

    По истечению 60 секунд пользователь получает сервер группу под SID 9, по истечению еще 120 секунд пользователь получает сервер группу SID 10, и так далее..."; -$lang['wihdco'] = "Цвет заголовка:"; -$lang['wihdcodesc'] = "Укажите код цвета заголовка.
    (только HTML код; должно начинаться с # )"; -$lang['wihl'] = "Веб Панель - Система Рангов"; -$lang['wihladm'] = "Лист Администратора"; -$lang['wihlcfg'] = "Настройка Ранг Системы"; -$lang['wihlclg'] = "Редактирование клиентов (глобальное)"; -$lang['wihlcls'] = "Редактирование клиентов (выборочное)"; +$lang['wiexgrpdesc'] = "Укажите через запятую ID групп сервера, которые будут игнорироваться Ранг Системой.
    Если пользователь находится хоты бы в одной из этих групп, то Ранг Система будет игнорировать его.(Также не будет начислять онлайн)"; +$lang['wiexuid'] = "Исключение для пользователей"; +$lang['wiexuiddesc'] = "Укажите через запятую уникальные идентификаторы клиентов (UID), которых будет игнорировать Ранг Система(RankSystem) и им не будет засчитываться время, проведенное на сервере.
    "; +$lang['wigrptime'] = "Настройка рангов"; +$lang['wigrptimedesc'] = "Укажите через какой промежуток времени, будут выдаваться группы сервера.

    Время (в секундах)=>номер группы сервера(ServerGroupID)

    К тому же, от выбранного режима будет зависеть.

    Каждый параметр должен разделяться запятой.

    Так же время должно быть указано по 'нарастающей'

    Пример:
    60=>9,120=>10,180=>11

    По истечению 60 секунд пользователь получает сервер группу под SGID 9, по истечению еще 120 секунд пользователь получает сервер группу SGID 10, и так далее..."; +$lang['wihladm'] = "Список пользователей (Admin-Mode)"; +$lang['wihlcfg'] = "Настройка RankSystem"; $lang['wihldb'] = "Настройки Базы Данных"; -$lang['wihlsty'] = "Настройки стиля"; -$lang['wihlts'] = "Настройка поключения к TeamSpeak"; -$lang['wihvco'] = "Цвет Hover:"; -$lang['wihvcodesc'] = "Укажите код цвета hover.
    (только HTML код; должно начинаться с # )"; -$lang['wiifco'] = "Цвет Текста оповещения:"; -$lang['wiifcodesc'] = "Укажите код цвета Текста оповещения.
    (только HTML код; должно начинаться с # )"; +$lang['wihlmsg'] = "Настройка оповещения"; +$lang['wihlsty'] = "Отображение пользователей на странице статистики"; +$lang['wihlts'] = "Настройка подключения к TeamSpeak"; +$lang['wihlvs'] = "Прочие настройки"; +$lang['wiignidle'] = "Игнорировать время бездействия"; +$lang['wiignidledesc'] = "Задать период, в течение которого время бездействия будет игнорироваться.

    Время бездействия - если клиент не выполняет каких-либо действий на сервере (=idle/бездействует), также время учитывается системой рангов. Только когда установленный лимит будет достигнут, система начнет подсчитывать время бездействия.

    Эта функция работает только при включенном режиме 'Подсчитывать активное время'(при высчитывании группы-ранга, когда время бездействия вычитается из \"активного\" времени).

    Использование этой функции оправдано в том случае, если пользователь \"слушает\" говорящих людей и при этом ему зачисляется \"время бездействия\", которое обнуляется при любом его действии.

    0 = отключить данную функцию

    Пример:
    Игнорировать бездействие = 600 (секунд)
    Клиенту 8 минут простоя не будут засчитаны системой рангов и оно будет ему засчитано как \"активное время\". Если пользователь находился 12 минут в бездействии при \"игнорировании бездействия\" в 10 минут, то ему будет зачислены только 2 минуты простоя."; $lang['wilogout'] = "Выход"; -$lang['wilog'] = "Logpath"; -$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

    Example:
    /var/logs/ranksystem/

    Be sure, the webuser has the write-permissions to the logpath."; -$lang['wimsgusr'] = "Уведомление"; -$lang['wimsgusrdesc'] = "Сообщение пользователю о повышение ранга.
    Отредактируйте сообщение в 'lang.php'
    (usermsgonline или usermsgactive)"; -$lang['wiscco'] = "Цвет Successtext:"; -$lang['wisccodesc'] = "Укажите код цвета success-text.
    (только HTML код; должно начинаться с # )"; +$lang['wilog'] = "Папка логирования работы RankSystem"; +$lang['wilogdesc'] = "Расположение логов Ranksystem на диске.

    Пример:
    /var/logs/ranksystem/

    Убедитесь, что веб-пользователь имеет разрешение на редактирование этой папки/файлов(chmod)."; +$lang['wimsgmsg'] = "Оповещение"; +$lang['wimsgmsgdesc'] = "Задать сообщение, которое будет отправлено пользователю, при достижении высшего ранга.

    Данное сообщение отправляется посредством личных сообщений на TeamSpeak 3 сервере. Текст поддерживает использование bb-кодов программы Teamspeak.
    http://ts-n.net/lexicon.php?showid=97#lexindex

    Кроме того, также поддерживаются следующие аргументы в сообщении:
    %1\$s - дни
    %2\$s - часы
    %3\$s - минут
    %4\$s - секунды

    Пример:
    Привет,\\nты достиг высший ранг, за время онлайн на сервере в течение %1\$s дней, %2\$s часов и %3\$s минут на нашем сервере.[B]Продолжай в том же духе![/B] ;-)"; +$lang['wimsgusr'] = "Уведомление при повышении"; +$lang['wimsgusrdesc'] = "Сообщение пользователю о повышение ранга."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "База данных"; +$lang['winav3'] = "Система"; +$lang['winav4'] = "Прочее"; +$lang['winav5'] = "Оповещения"; +$lang['winav6'] = "Статистика"; +$lang['winav7'] = "Администрирование"; +$lang['winav8'] = "Запустить / Остановить бота"; +$lang['winav9'] = "Доступно обновление!"; +$lang['winav10'] = "Соединение с данным сайтом не защищено с помощью %s HTTPS%sЭто может повлечь за собой проблемы для вашей приватности и безопасности! %sДля использования HTTPS ваш веб-сервер должен поддерживать SSL-соединение."; $lang['wiselcld'] = "Выбор клиентов"; -$lang['wiselclddesc'] = "Выберите клиентов последним известным именем пользователя. Для этого Вы только должны начать печатать.
    Выбор нескольких пользователей - отделенная запятая, которая ставится системой автоматически.

    With the selection you can choose with the next step an action."; -$lang['wishcolas'] = "ток сервер группа"; -$lang['wishcolasdesc'] = "Показ колонки 'ток сервер группа' в list_rankup.php"; +$lang['wiselclddesc'] = "Выберите клиентов, путём ввода их последнего имени. В процессе ввода вы увидите подсказку
    Для выбора нескольких пользователей нужно поставить запятую, которая поставится автоматически, после завершения ввода первого пользователя

    После завершения ввода пользователей, выберите необходимое для них действие в селекторах ниже."; +$lang['wishcolas'] = "Текущая группа сервера"; +$lang['wishcolasdesc'] = "Показ колонки 'Текущая группа сервера' в stats/list_rankup.php"; $lang['wishcolat'] = "Время активности"; -$lang['wishcolatdesc'] = "Показ колонки 'суммарное время активности' в list_rankup.php"; +$lang['wishcolatdesc'] = "Показ колонки 'Суммарное время активности' в stats/list_rankup.php"; $lang['wishcolcld'] = "Ник клиента"; -$lang['wishcolclddesc'] = "Показ колонки 'Ник клиента' в list_rankup.php"; +$lang['wishcolclddesc'] = "Показ колонки 'Ник клиента' в stats/list_rankup.php"; $lang['wishcoldbid'] = "ID в Базе данных"; -$lang['wishcoldbiddesc'] = "Показ колонки 'ID в Базе данных' в list_rankup.php"; -$lang['wishcolit'] = "Время простоя"; -$lang['wishcolitdesc'] = "Показ колонки 'суммарное время простоя' в list_rankup.php"; +$lang['wishcoldbiddesc'] = "Показ колонки 'ID в Базе данных' в stats/list_rankup.php"; +$lang['wishcolit'] = "Учитывать время простоя"; +$lang['wishcolitdesc'] = "Показ колонки 'суммарное время простоя' в stats/list_rankup.php"; $lang['wishcolls'] = "Последний раз замечен"; -$lang['wishcollsdesc'] = "Показ колонки 'Последний раз замечен' в list_rankup.php"; -$lang['wishcolnx'] = "Следующий Ранг"; -$lang['wishcolnxdesc'] = "Показ колонки 'Следующий Ранг' в list_rankup.php"; +$lang['wishcollsdesc'] = "Показ колонки 'Последний раз замечен' в stats/list_rankup.php"; +$lang['wishcolnx'] = "Время до след. ранга"; +$lang['wishcolnxdesc'] = "Показ колонки 'Следующий Ранг' в stats/list_rankup.php"; $lang['wishcolot'] = "Время подключения"; -$lang['wishcolotdesc'] = "Показ колонки 'суммарное время подключения' в list_rankup.php"; -$lang['wishcolrg'] = "П\Н"; -$lang['wishcolrgdesc'] = "Показ колонки 'Порядковый номер' в list_rankup.php"; +$lang['wishcolotdesc'] = "Показ колонки 'суммарное время подключения' в stats/list_rankup.php"; +$lang['wishcolrg'] = "Ранг"; +$lang['wishcolrgdesc'] = "Показ колонки 'Ранг' в stats/list_rankup.php"; $lang['wishcolsg'] = "Следующая сервер группа"; -$lang['wishcolsgdesc'] = "Показ колонки 'следующая сервер группа' в list_rankup.php"; +$lang['wishcolsgdesc'] = "Показ колонки 'следующая сервер группа' в stats/list_rankup.php"; $lang['wishcoluuid'] = "Client-ID"; -$lang['wishcoluuiddesc'] = "Показ колонки 'уникальный ID клиента' в list_rankup.php"; +$lang['wishcoluuiddesc'] = "Показ колонки 'уникальный ID клиента'(UID) в stats/list_rankup.php"; $lang['wishexcld'] = "Пользователи исключения"; -$lang['wishexclddesc'] = "Показывать пользователий в list_rankup.php,
    которые исключены по параметру uniqueID."; +$lang['wishexclddesc'] = "Показывать пользователей в list_rankup.php,
    которые исключены и не участвуют в системе рангов."; $lang['wishexgrp'] = "Группы исключения"; -$lang['wishexgrpdesc'] = "Показывать пользователий в list_rankup.php, которые находятся в списке 'исключение клиента' и не должы учитываться Системой Рангов."; -$lang['wishgen'] = "Sitegen"; -$lang['wishgendesc'] = "Показывать время генерации списка в конце страницы."; -$lang['wishhicld'] = "Пользователи с высоким рангом"; -$lang['wishhiclddesc'] = "Показывать пользователий в list_rankup.php, который достиг высшего уровня в Ranksystem."; -$lang['wisupidle'] = "Время простоя"; -$lang['wisupidledesc'] = "Если эта функция активна, 'сумм. время простоя' будет основанием от 'сумм. время подключения'. Вместо 'сумм. время подключения', предыдущая вычитание будет рассматриваться на повышение Ранга."; -$lang['wisvconf'] = "сохранить"; +$lang['wishexgrpdesc'] = "Показывать пользователей в list_rankup.php, которые находятся в списке 'исключение клиента' и не должны учитываться RankSystem."; +$lang['wishhicld'] = "Пользователи с высшим рангом"; +$lang['wishhiclddesc'] = "Показывать пользователей в list_rankup.php, который достиг высшего уровня в Ranksystem."; +$lang['wisupidle'] = "Режим"; +$lang['wisupidledesc'] = "Предоставлены два режима, от которых будет высчиваться ранг пользователей. 1) Время подключения(Общее время): Общее время подключения на сервере, складывается из \"Активного времени\" и \"времени бездействия\"(колонка 'Сумм. время подключения' в 'stats/list_rankup.php') 2) Активное время(Время активности): Время, которое пользователь не находился в бездействии. Значение этого времени высчитывается путем вычитания \"времени бездействия из\" из \"Общего времени подключения на сервере\" (Колонка 'Сумм. время активности' в 'stats/list_rankup.php'). Не рекомендуется смена режима при уже отработавшем долгий срок старом, но допустимо."; +$lang['wisvconf'] = "Сохранить"; $lang['wisvsuc'] = "Изменения успешно сохранены!"; -$lang['witime'] = "Timezone"; -$lang['witimedesc'] = "Select the timezone the server is hosted."; -$lang['wits3dch'] = "Default Channel"; -$lang['wits3dchdesc'] = "The channel-ID, the bot should connect with.

    The Bot will join this channel after connecting to the TeamSpeak server."; -$lang['wits3host'] = "TS3 Hostaddress"; +$lang['wisvres'] = "Для принятия внесенных правок вам необходимо перезагрузить RankSystem!"; +$lang['witime'] = "Часовой пояс"; +$lang['witimedesc'] = "Выбрать часовой пояс, в котором находится сервер."; +$lang['wits3dch'] = "Канал по умолчанию"; +$lang['wits3dchdesc'] = "При подключении на сервер, бот будет пытаться войти в этот канал и останется там."; +$lang['wits3host'] = "TS3 адрес хоста"; $lang['wits3hostdesc'] = "Адрес TeamSpeak 3 Сервера
    (IP или DNS)"; $lang['wits3sm'] = "Замедленный режим"; -$lang['wits3smdesc'] = "With the Slowmode you can reduce \"spam\" of query commands to the TeamSpeak server. This prevent bans in case of flood.
    TeamSpeak Query commands get delayed with this function.

    !!! ALSO IT REDUCE THE CPU USAGE !!!

    The activation is not recommended, if not required. The delay increases the duration of the Bot, which makes it imprecisely."; -$lang['wits3qnm'] = "Botname"; -$lang['wits3qnm2'] = "2е Botname"; -$lang['wits3qnm2desc'] = "Это Botname, будет использоваться если первое уже занято."; -$lang['wits3qnmdesc'] = "Имя, под которым будет сидеть Ранг система.
    Убедитесь что оно не занято."; +$lang['wits3smdesc'] = "Замедленный режим позволяет предотвратить флуд query-командами на сервер, из-за которого RankSystem может получить временный бан со стороны TeamSpeak 3 сервера.

    !!! Также это снижает нагрузку на ЦП и уменьшает расход трафика !!!

    Однако, не включайте эту функцию, если нет в ней нужды, потому как с ней не работает очистка базы от неактивных пользователей. К тому же, замедленный режим значительно увеличивает время обработки разного рода процессов."; +$lang['wits3qnm'] = "Основн. ник бота"; +$lang['wits3qnm2'] = "Запас. ник бота"; +$lang['wits3qnm2desc'] = "Этот никнейм будет использоваться, если первый уже занят. Рекомендуется заполнить!"; +$lang['wits3qnmdesc'] = "Никнейм, с которым будет авторизовываться Ранг система на сервере.
    Убедитесь, что оно не занято кем-то другим."; $lang['wits3querpw'] = "TS3 Query-Пароль"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 query Пароль
    Ваш пароль от query пользователя."; +$lang['wits3querpwdesc'] = "TeamSpeak 3 query-Пароль
    Ваш пароль от query-пользователя."; $lang['wits3querusr'] = "TS3 Query-Логин"; -$lang['wits3querusrdesc'] = "TeamSpeak 3 query Логин
    По умолчанию: serveradmin
    Конечно вы можете указать другой логин для Ranksystem.
    Необходимые разрешения привилегий вы можете найти на:
    http://ts-n.net/ranksystem.php"; +$lang['wits3querusrdesc'] = "TeamSpeak 3 query-Логин
    По умолчанию: serveradmin
    Конечно вы можете указать другой логин для Ranksystem.
    Необходимые разрешения привилегий вы можете найти на:
    http://ts-n.net/ranksystem.php"; $lang['wits3query'] = "TS3 Query-Порт"; -$lang['wits3querydesc'] = "TeamSpeak 3 query Порт
    По умолчанию: 10011 (TCP)
    Если порт изменен, то укажите его согласно настройкам из 'ts3server.ini'."; +$lang['wits3querydesc'] = "TeamSpeak 3 query-Порт
    По умолчанию: 10011 (TCP)
    Если порт изменен, то укажите его согласно настройкам из 'ts3server.ini'."; $lang['wits3voice'] = "TS3 Voice-Порт"; -$lang['wits3voicedesc'] = "TeamSpeak 3 voice Порт
    По умолчанию: 9987 (UDP)
    Этот порт используется Teamspeak3 клиентом для подключения к серверу."; -$lang['witxco'] = "Цвет текста:"; -$lang['witxcodesc'] = "Укажите код цвета текста.
    (только HTML код; должно начинаться с # )"; +$lang['wits3voicedesc'] = "TeamSpeak 3 voice-Порт
    По умолчанию: 9987 (UDP)
    Этот порт используется Teamspeak 3 клиентом для подключения к серверу."; $lang['wiupcheck'] = "Проверка обновлений"; -$lang['wiupcheckdesc'] = "Если проверка обнолений включена, то пользователь получит приватное сообщение, когда обновление доступно."; +$lang['wiupcheckdesc'] = "Если проверка обновлений включена, то пользователь получит приватное сообщение, когда обновление доступно."; $lang['wiuptime'] = "Интервал проверки"; -$lang['wiuptimedesc'] = "Введите здесь через сколько секунд Ранг Система должна проверить наличие обновлений.
    Внимание, после каждой проверки перечисленные пользователь получает уведомление. Если ни один из перечисленных пользователей не онлайн, Система Рангов будет пытаться уведомить пользователей со следующего интервала сканирования."; -$lang['wiupuid'] = "Получатель"; -$lang['wiupuiddesc'] = "Укажите через запятую уникальные ID клиентов, которые будут проинформированы о доступных обновлениях посредством приватного сообщения через TeamSpeak."; -$lang['wiversion'] = "(текущая версия %s)"; +$lang['wiuptimedesc'] = "Введите здесь через сколько секунд Ранг Система должна проверить наличие обновлений.
    Внимание, после каждой проверки перечисленные пользователь получает уведомление. Если ни один из перечисленных пользователей не онлайн, Система Рангов будет пытаться уведомить пользователей при следующем сканировании."; +$lang['wiupuid'] = "Получатель обновлений"; +$lang['wiupuiddesc'] = "Укажите через запятую уникальные ID(UID) клиентов, которые будут проинформированы о доступных обновлениях посредством приватного сообщения через TeamSpeak."; $lang['wivlang'] = "Язык"; $lang['wivlangdesc'] = "Язык Ранг Системы

    de - Deutsch
    en - english
    it - italiano
    ru - Русский"; -$lang['wiwnco'] = "Цвет текста предупреждений:"; -$lang['wiwncodesc'] = "Укажите цвет текста предупреждения.
    (только HTML код; должно начинаться с # )"; ?> \ No newline at end of file diff --git a/other/config.php b/other/config.php index 1edd767..8272a61 100644 --- a/other/config.php +++ b/other/config.php @@ -13,25 +13,14 @@ if ($db['type'] == 'mysql') { } else { $dboptions = array(); } - try { $mysqlcon = new PDO($dbserver, $db['user'], $db['pass'], $dboptions); } catch (PDOException $e) { - $sqlconerr = "SQL Connection failed: ".$e->getMessage()."\n"; - echo $sqlconerr; - // open function mail here and try to ts3 msg (perhaps uuid out of text file; mysqlconf?) - exit; + $err_msg = "Database Connection failed: ".$e->getMessage()."\n"; $err_lvl = 3; + $language = "en"; } -if (($config = $mysqlcon->query("SELECT * FROM config")) === false) { - $bgcolor = '#101010'; - $hdcolor = '#909090'; - $txcolor = '#707070'; - $hvcolor = '#FFFFFF'; - $ifcolor = '#3366CC'; - $wncolor = '#CC0000'; - $sccolor = '#008000'; - $showgen = '1'; -} else { + +if (isset($mysqlcon) && ($config = $mysqlcon->query("SELECT * FROM config"))) { $config = $config->fetchAll(); $ts['host'] = $config[0]['tshost']; $ts['query'] = $config[0]['tsquery']; @@ -46,15 +35,21 @@ if (($config = $mysqlcon->query("SELECT * FROM config")) === false) { } else { $language = $config[0]['language']; } + } elseif($_GET["lang"] == "ar") { + $language = "ar"; + $_SESSION['language'] = "ar"; } elseif($_GET["lang"] == "de") { $language = "de"; $_SESSION['language'] = "de"; - } elseif($_GET["lang"] == "ru") { - $language = "ru"; - $_SESSION['language'] = "ru"; } elseif($_GET["lang"] == "it") { $language = "it"; $_SESSION['language'] = "it"; + } elseif($_GET["lang"] == "ro") { + $language = "ro"; + $_SESSION['language'] = "ro"; + } elseif($_GET["lang"] == "ru") { + $language = "ru"; + $_SESSION['language'] = "ru"; } else { $language = "en"; $_SESSION['language'] = "en"; @@ -89,8 +84,8 @@ if (($config = $mysqlcon->query("SELECT * FROM config")) === false) { $substridle = $config[0]['substridle']; $exceptuuid = explode(',', $config[0]['exceptuuid']); $exceptgroup = explode(',', $config[0]['exceptgroup']); + $exceptcid = explode(',', $config[0]['exceptcid']); $timeformat = $config[0]['dateformat']; - $showexgrp = $config[0]['showexgrp']; $showexcld = $config[0]['showexcld']; $showhighest = $config[0]['showhighest']; $showcolrg = $config[0]['showcolrg']; @@ -104,14 +99,6 @@ if (($config = $mysqlcon->query("SELECT * FROM config")) === false) { $showcolas = $config[0]['showcolas']; $showcolnx = $config[0]['showcolnx']; $showcolsg = $config[0]['showcolsg']; - $bgcolor = $config[0]['bgcolor']; - $hdcolor = $config[0]['hdcolor']; - $txcolor = $config[0]['txcolor']; - $hvcolor = $config[0]['hvcolor']; - $ifcolor = $config[0]['ifcolor']; - $wncolor = $config[0]['wncolor']; - $sccolor = $config[0]['sccolor']; - $showgen = $config[0]['showgen']; $cleanclients = $config[0]['cleanclients']; $cleanperiod = $config[0]['cleanperiod']; $defchid = $config[0]['defchid']; @@ -122,14 +109,24 @@ if (($config = $mysqlcon->query("SELECT * FROM config")) === false) { $timezone = $config[0]['timezone']; } date_default_timezone_set($timezone); + $advancemode = $config[0]['advancemode']; + $count_access = $config[0]['count_access']; + $last_access = $config[0]['last_access']; + $ignoreidle = $config[0]['ignoreidle']; + $rankupmsg = $config[0]['rankupmsg']; + $newversion = $config[0]['newversion']; } if(!isset($language) || $language == "en") { require_once(substr(dirname(__FILE__),0,-5).'languages/core_en.php'); +} elseif($language == "ar") { + require_once(substr(dirname(__FILE__),0,-5).'languages/core_ar.php'); } elseif($language == "de") { require_once(substr(dirname(__FILE__),0,-5).'languages/core_de.php'); -} elseif($language == "ru") { - require_once(substr(dirname(__FILE__),0,-5).'languages/core_ru.php'); } elseif($language == "it") { require_once(substr(dirname(__FILE__),0,-5).'languages/core_it.php'); +} elseif($language == "ro") { + require_once(substr(dirname(__FILE__),0,-5).'languages/core_ro.php'); +} elseif($language == "ru") { + require_once(substr(dirname(__FILE__),0,-5).'languages/core_ru.php'); } ?> \ No newline at end of file diff --git a/other/session.php b/other/session.php index 8ad4490..0d82401 100644 --- a/other/session.php +++ b/other/session.php @@ -1 +1,78 @@ -query("SELECT u.uuid,u.cldbid,u.name,u.ip,u.firstcon,s.total_connections FROM $dbname.user as u LEFT JOIN $dbname.stats_user as s ON u.uuid=s.uuid WHERE online='1';")->fetchAll();$_SESSION['connected']=0;$_SESSION['serverport']=$voiceport;foreach($allclients as $client){if($hpclientip==$client['ip']){$_SESSION['tsuid']=$client['uuid'];$_SESSION['tscldbid']=$client['cldbid'];$_SESSION['tsname']=$client['name'];if($client['firstcon']==0){$_SESSION['tscreated']="unkown";}else{$_SESSION['tscreated']=date('d-m-Y',$client['firstcon']);}if($client['total_connections']!=NULL){$_SESSION['tsconnections']=$client['total_connections'];}else{$_SESSION['tsconnections']=0;}$convert=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p');$uuidasbase16='';for($i=0;$i<20;$i++){$char=ord(substr(base64_decode($_SESSION['tsuid']),$i,1));$uuidasbase16.=$convert[($char & 0xF0)>> 4];$uuidasbase16.=$convert[$char & 0x0F];}if(is_file('../avatars/'.$uuidasbase16.'.png')){$_SESSION['tsavatar']=$uuidasbase16.'.png';}else{$_SESSION['tsavatar']="none";}$_SESSION['connected']=1;$_SESSION['language']=$language;break;}}}?> \ No newline at end of file +query("SELECT u.uuid,u.cldbid,u.name,u.ip,u.firstcon,s.total_connections FROM $dbname.user as u LEFT JOIN $dbname.stats_user as s ON u.uuid=s.uuid WHERE online='1';")->fetchAll(); + $_SESSION['connected'] = 0; + $_SESSION['serverport'] = $voiceport; + foreach ($allclients as $client) { + if ($hpclientip == $client['ip']) { + $_SESSION['tsuid'] = $client['uuid']; + $_SESSION['tscldbid'] = $client['cldbid']; + $_SESSION['tsname'] = $client['name']; + if ($client['firstcon'] == 0) { + $_SESSION['tscreated'] = "unkown"; + } else { + $_SESSION['tscreated'] = date('d-m-Y', $client['firstcon']); + } + if ($client['total_connections'] != NULL) { + $_SESSION['tsconnections'] = $client['total_connections']; + } else { + $_SESSION['tsconnections'] = 0; + } + $convert = array( + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'm', + 'n', + 'o', + 'p' + ); + $uuidasbase16 = ''; + for ($i = 0; $i < 20; $i++) { + $char = ord(substr(base64_decode($_SESSION['tsuid']), $i, 1)); + $uuidasbase16 .= $convert[($char & 0xF0) >> 4]; + $uuidasbase16 .= $convert[$char & 0x0F]; + } + if (is_file('../avatars/' . $uuidasbase16 . '.png')) { + $_SESSION['tsavatar'] = $uuidasbase16 . '.png'; + } else { + $_SESSION['tsavatar'] = "none"; + } + $_SESSION['connected'] = 1; + $_SESSION['language'] = $language; + break; + } + } +} +?> \ No newline at end of file diff --git a/other/style.css.php b/other/style.css.php deleted file mode 100644 index 3eaac93..0000000 --- a/other/style.css.php +++ /dev/null @@ -1 +0,0 @@ - body{font-family:Century Gothic,sans-serif;font-size:15px;color:;background-color:}a:link{text-decoration:none;color:}a:visited{text-decoration:none;color:}a:hover{text-decoration:none;color:}.hdcolor{color:}.ifcolor{color:}.wncolor{color:}.sccolor{color:}.tabledefault{width:95%;top:10;left:10;border:1;text-align:center;font-family:Verdana;font-size:10pt;margin:0 auto}.tablefunction{max-width:500px;width:100%;top:10;left:10;border:0;text-align:center;font-family:Verdana;font-size:10pt;margin:0 auto}.tablelogin{position:fixed;top:50%;left:50%;margin-top:-40px;margin-left:-150px}.tdleft{width:55%;text-align:left}.tdlefth{width:50%;text-align:left;vertical-align:top}.tdred{width:45%;text-align:right;color:red}.tdright{width:45%;text-align:right}.tdrighth{width:50%;text-align:right;vertical-align:top}.tdheadline{text-align:center;background-color:#0a1b2a}.tdheadline:hover{text-align:center;background-color:#0b243b}.tdheadlineimp{text-align:center;background-color:#030}.tdheadlineimp:hover{text-align:center;background-color:#060}.center{text-align:center}.right{text-align:right}.opacity{opacity:.1}.size1{font-size:24px;font-weight:bold}.size2{font-size:16px;font-weight:bold}.width{width:95%;box-sizing:border-box}.elevated{vertical-align:super}th{font-weight:bold;text-align:center;color:}img{margin-bottom:-3}select{width:140px}input.switch:empty{margin-left:-9999px}input.switch:empty ~ label{position:relative;float:left;line-height:1.3em;text-indent:4em;margin:.2em 0 0 90px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}input.switch:empty ~ label:before,input.switch:empty ~ label:after{position:absolute;display:block;top:0;bottom:0;left:0;content:'';width:3em;background-color:#c00;border-radius:1em;-webkit-transition:all 50ms ease-in;transition:all 50ms ease-in}input.switch:empty ~ label:after{width:1.2em;top:.1em;bottom:.1em;margin-left:.2em;background-color:#fff;border-radius:.8em}input.switch:checked ~ label:before{background-color:green}input.switch:checked ~ label:after{margin-left:1.5em}.tooltip{position:relative;display:inline}.tooltip span{width:350px;position:absolute;color:#000;background:#ccc;padding:10px 10px 10px 10px;line-height:16px;text-align:center;visibility:hidden;border-radius:5px;box-shadow:0 1px 2px #0b243b}.tooltip span:after{content:'';position:absolute;top:7px;left:100%;width:0;height:0;border-left:12px solid #ccc;border-top:12px solid transparent;border-bottom:12px solid transparent}.tooltip:hover span{visibility:visible;right:110%;margin-top:-10px;margin-right:15px;z-index:999} \ No newline at end of file diff --git a/other/webinterface_list.php b/other/webinterface_list.php deleted file mode 100644 index baefba9..0000000 --- a/other/webinterface_list.php +++ /dev/null @@ -1,387 +0,0 @@ -query("SELECT * FROM config"); -$configs = $configs->fetch(PDO::FETCH_ASSOC); - -echo ' - - - - -
    ', $lang['wilogout'], '
    ', $lang['wihl'], '
    ', sprintf($lang['wiversion'], $configs['currvers']), '
    ', $alert, '
    - - - - - - - - - - - - - - - - - - - - - -
     
    - ', $lang['wihlts'], ' -
    - -
     
    - ', $lang['wihldb'], ' -
    - -
     
    - ', $lang['wihlcfg'], ' -
    - -
     
    - ', $lang['wihlsty'], ' -
    - -
     
     
    - ', $lang['wihladm'], ' -
     
    - ', $lang['wihlcls'], ' -
    - -
     
    - ', $lang['wihlclg'], ' -
    - -
    '; -?> \ No newline at end of file diff --git a/other/webinterface_login.php b/other/webinterface_login.php deleted file mode 100644 index deda485..0000000 --- a/other/webinterface_login.php +++ /dev/null @@ -1 +0,0 @@ -';if(isset($showerrlogin)){echo '';}echo '
    ',$lang['errlogin'],'

    ',$lang['user'],'
    ',$lang['pass'],'
    ';?> \ No newline at end of file diff --git a/stats/index.php b/stats/index.php index c0bcb84..0f253f8 100644 --- a/stats/index.php +++ b/stats/index.php @@ -3,19 +3,22 @@ session_start(); require_once('../other/config.php'); require_once('../other/session.php'); -if($language == "de") { +if($language == "ar") { + require_once('../languages/nations_en.php'); +} elseif($language == "de") { require_once('../languages/nations_de.php'); } elseif($language == "en") { require_once('../languages/nations_en.php'); } elseif($language == "it") { require_once('../languages/nations_it.php'); +} elseif($language == "ro") { + require_once('../languages/nations_en.php'); } elseif($language == "ru") { require_once('../languages/nations_ru.php'); } if(!isset($_SESSION['tsuid'])) { - $hpclientip = ip2long($_SERVER['REMOTE_ADDR']); - set_session_ts3($hpclientip, $ts['voice'], $mysqlcon, $dbname); + set_session_ts3($ts['voice'], $mysqlcon, $dbname); } function human_readable_size($bytes) { @@ -54,7 +57,7 @@ require_once('nav.php');

    - +

    @@ -91,7 +94,7 @@ require_once('nav.php');
    -
    '.$lang['days'].'';?>
    +
    @@ -113,7 +116,7 @@ require_once('nav.php');
    -
    '.$lang['days'].'';?>
    +
    @@ -135,7 +138,7 @@ require_once('nav.php');
    -
    '.$lang['days'].'';?>
    +
    @@ -318,7 +321,7 @@ require_once('nav.php'); - '.$lang['stix0046'].''; } else { echo $lang['stix0047']; } ?> + '.$lang['stix0046'].''; } else { echo $lang['stix0047']; } ?> diff --git a/stats/info.php b/stats/info.php index b475768..90befc0 100644 --- a/stats/info.php +++ b/stats/info.php @@ -1,4 +1,4 @@ -
    - -

    @@ -33,7 +30,7 @@ require_once('nav.php');

    -

    The Ranksystem was coded by Newcomer1989 Copyright © 2009-2016 TeamSpeak Sponsoring TS-N.NET. All rights reserved.

    +

    The Ranksystem was coded by Newcomer1989 Copyright © 2009-2016 TeamSpeak Sponsoring TS-N.NET. All rights reserved.


    @@ -50,18 +47,22 @@ require_once('nav.php');

    -

    PHP - Copyright © 2001-2016 the PHP Group


    +

    PHP - Copyright © 2001-2016 the PHP Group


    -

    jQuery v2.2.0 - Copyright © 2016 The jQuery Foundation

    +

    jQuery v2.2.0 - Copyright © 2016 The jQuery Foundation

    jQuery Autocomplete plugin 1.1 - Copyright © 2009 Jörn Zaefferer

    -

    Font Awesome 4.2.0 - Copyright © davegandy

    -

    flag-icon-css - Copyright © 2016 lipis

    -

    Ajax Queue Plugin - Copyright © 2013 Corey Frang

    -

    TeamSpeak 3 PHP Framework 1.1.23 - Copyright © 2010 Planet TeamSpeak

    -

    Bootstrap 3.3.6 - Copyright © 2011-2016 Twitter, Inc.

    -

    morris.js - Copyright © 2013 Olly Smith

    -

    Raphaël 2.1.4 - JavaScript Vector Library - Copyright © 2008-2012 Dmitry Baranovskiy

    -

    SB Admin Bootstrap Admin Template - Copyright © 2013-2016 Blackrock Digital LLC.

    +

    Font Awesome 4.6.3 - Copyright © davegandy

    +

    flag-icon-css - Copyright © 2016 lipis

    +

    Ajax Queue Plugin - Copyright © 2013 Corey Frang

    +

    TeamSpeak 3 PHP Framework 1.1.23 - Copyright © 2010 Planet TeamSpeak

    +

    Bootstrap 3.3.7 - Copyright © 2011-2016 Twitter, Inc.

    +

    morris.js - Copyright © 2013 Olly Smith

    +

    Raphaël 2.1.4 - JavaScript Vector Library - Copyright © 2008-2012 Dmitry Baranovskiy

    +

    SB Admin Bootstrap Admin Template - Copyright © 2013-2016 Blackrock Digital LLC.

    +

    Bootstrap Switch - Copyright © 2013-2015 Mattia Larentis

    +

    Bootstrap TouchSpin - Copyright © 2013-2016 István Ujj-Mészáros

    +

    bootstrap-select - Copyright © 2013-2015 Silvio Moreto a.o.

    +

    Bootstrap Show Password - Copyright © 2014 zhixin wen


    @@ -71,14 +72,13 @@ require_once('nav.php');

    +

    +


    - - - \ No newline at end of file diff --git a/stats/list_rankup.php b/stats/list_rankup.php index 422c485..5055343 100644 --- a/stats/list_rankup.php +++ b/stats/list_rankup.php @@ -5,9 +5,25 @@ $starttime = microtime(true); require_once('../other/config.php'); require_once('../other/session.php'); +function getclientip() { + if (!empty($_SERVER['HTTP_CLIENT_IP'])) + return $_SERVER['HTTP_CLIENT_IP']; + elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) + return $_SERVER['HTTP_X_FORWARDED_FOR']; + elseif(!empty($_SERVER['HTTP_X_FORWARDED'])) + return $_SERVER['HTTP_X_FORWARDED']; + elseif(!empty($_SERVER['HTTP_FORWARDED_FOR'])) + return $_SERVER['HTTP_FORWARDED_FOR']; + elseif(!empty($_SERVER['HTTP_FORWARDED'])) + return $_SERVER['HTTP_FORWARDED']; + elseif(!empty($_SERVER['REMOTE_ADDR'])) + return $_SERVER['REMOTE_ADDR']; + else + return false; +} + if(!isset($_SESSION['tsuid'])) { - $hpclientip = ip2long($_SERVER['REMOTE_ADDR']); - set_session_ts3($hpclientip, $ts['voice'], $mysqlcon, $dbname); + set_session_ts3($ts['voice'], $mysqlcon, $dbname); } if(isset($_POST['username'])) { @@ -31,6 +47,9 @@ if(isset($getstring) && strstr($getstring, 'filter:excepted:')) { $filter .= " AND except='0'"; } else { $searchstring = $getstring; + if($showexcld == 0) { + $filter .= " AND except='0'"; + } } if(isset($getstring) && strstr($getstring, 'filter:online:')) { $searchstring = preg_replace('/filter\:online\:/','',$searchstring); @@ -44,6 +63,32 @@ if(isset($getstring) && strstr($getstring, 'filter:actualgroup:')) { $searchstring = preg_replace('/filter\:actualgroup\:(.*)\:/','',$searchstring); $filter .= " AND grpid='".$grpvalue[1]."'"; } +if(isset($getstring) && strstr($getstring, 'filter:country:')) { + preg_match('/filter\:country\:(.*)\:/',$searchstring,$grpvalue); + $searchstring = preg_replace('/filter\:country\:(.*)\:/','',$searchstring); + $filter .= " AND nation='".$grpvalue[1]."'"; +} +if(isset($getstring) && strstr($getstring, 'filter:lastseen:')) { + preg_match('/filter\:lastseen\:(.*)\:(.*)\:/',$searchstring,$seenvalue); + $searchstring = preg_replace('/filter\:lastseen\:(.*)\:(.*)\:/','',$searchstring); + if(is_numeric($seenvalue[2])) { + $lastseen = $seenvalue[2]; + } else { + $r = date_parse_from_format("Y-m-d H-i",$seenvalue[2]); + $d = mktime($r['hour'], $r['minute'], $r['second'], $r['month'], $r['day'], $r['year']); + $lastseen = $d; + } + if($seenvalue[1] == '<') { + $operator = '<'; + } elseif($seenvalue[1] == '>') { + $operator = '>'; + } elseif($seenvalue[1] == '!=') { + $operator = '!='; + } else { + $operator = '='; + } + $filter .= " AND lastseen".$operator."'".$lastseen."'"; +} if(isset($getstring)) { $dbdata_full = $mysqlcon->prepare("SELECT COUNT(*) FROM $dbname.user WHERE (uuid LIKE :searchvalue OR cldbid LIKE :searchvalue OR name LIKE :searchvalue)$filter"); @@ -73,7 +118,7 @@ if (isset($_GET['order'])) { } $keyorder = ($keyorder == 'desc' ? 'desc' : 'asc'); if (isset($_GET['admin'])) { - if($_GET['admin'] == "true" && isset($_SESSION['username'])) { + if($_SESSION['username'] == $webuser && $_SESSION['password'] == $webpass && $_SESSION['clientip'] == getclientip()) { $adminlogin = 1; } } @@ -267,14 +312,6 @@ if($adminlogin == 1) { $countallsum++; foreach ($grouptime as $time => $groupid) { $grpcount++; - if (array_intersect($sgroups, $exceptgroup) && $showexgrp != 1 && $adminlogin != 1) { - $exceptgrp++; - break; - } - if (in_array($uid, $exceptuuid) && $showexcld != 1 && $adminlogin != 1) { - $exceptcld++; - break; - } if ($activetime < $time || $grpcount == $countgrp && $nextup == 0 && $showhighest == 1 || $grpcount == $countgrp && $nextup == 0 && $adminlogin == 1) { if($nextup == 0 && $grpcount == $countgrp) { $neededtime = 0; @@ -382,32 +419,10 @@ if($adminlogin == 1) { if($user_pro_seite != "all") { pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$seite,$getstring); } - if ($showgen == 1 || $adminlogin == 1) { - $except = $exceptgrp + $exceptcld; - $notvisible = 0; - if ($showexgrp != 1) { $notvisible = $exceptgrp; } - if ($showexcld != 1) { $notvisible = $notvisible + $exceptcld; } - if ($showhighest != 1) { $notvisible = $notvisible + $highest; } - $displayed = $countallsum - $notvisible; - $buildtime = microtime(true) - $starttime; - ?> - - - - - - - - - @@ -132,18 +121,56 @@ - +
    - - - - - - TS-N.NET Ranksystem - Webinterface - - - - - - -'; -$starttime = microtime(true); -require_once('other/config.php'); -$alert = " "; -if (isset($_POST['changeclients'])) { - $selectedclients = $_POST['selectedclients']; - echo $selectedclients; - echo '
    '; - $selecteduuids = $_POST['selecteduuids']; - echo $selecteduuids; -} -if (isset($_POST['updatets'])) { - $tshost = $_POST['tshost']; - $tsquery = $_POST['tsquery']; - $tsvoice = $_POST['tsvoice']; - $tsuser = $_POST['tsuser']; - $tspass = $_POST['tspass']; - $queryname = $_POST['queryname']; - $queryname2 = $_POST['queryname2']; - $defchid = $_POST['defchid']; - $timezone = $_POST['timezone']; - $slowmode = $_POST['slowmode']; - if ($mysqlcon->exec("UPDATE $dbname.config set tshost='$tshost',tsquery='$tsquery',tsvoice='$tsvoice',tsuser='$tsuser',tspass='$tspass',queryname='$queryname',queryname2='$queryname2',slowmode='$slowmode',defchid='$defchid',timezone='$timezone'") === false) { - $alert = '' . $mysqlcon->errorCode() . '
    '; - } else { - if (substr(php_uname(), 0, 7) == "Windows") { - $WshShell = new COM("WScript.Shell"); - $oExec = $WshShell->Run("cmd /C php ".__DIR__."\worker.php restart", 0, false); - } else { - exec("php ".__DIR__."/worker.php restart"); - } - $alert = '' . $lang['wisvsuc'] . ''; - } - require_once('other/webinterface_list.php'); -} -if (isset($_POST['updatecore'])) { - $grouptime = $_POST['grouptime']; - if (isset($_POST['resetbydbchange'])) $resetbydbchange = 1; else $resetbydbchange = 0; - if (isset($_POST['msgtouser'])) $msgtouser = 1; else $msgtouser = 0; - if (isset($_POST['cleanclients'])) $cleanclients = 1; else $cleanclients = 0; - if (isset($_POST['upcheck'])) $upcheck = 1; else $upcheck = 0; - $cleanperiod = $_POST['cleanperiod']; - $uniqueid = $_POST['uniqueid']; - $boost = $_POST['boost']; - $updateinfotime = $_POST['updateinfotime']; - $logpath = addslashes($_POST['logpath']); - if (isset($_POST['substridle'])) $substridle = 1; else $substridle = 0; - $exceptuuid = $_POST['exceptuuid']; - $exceptgroup = $_POST['exceptgroup']; - if ($mysqlcon->exec("UPDATE $dbname.config set grouptime='$grouptime',resetbydbchange='$resetbydbchange',msgtouser='$msgtouser',cleanclients='$cleanclients',cleanperiod='$cleanperiod',upcheck='$upcheck',uniqueid='$uniqueid',updateinfotime='$updateinfotime',substridle='$substridle',exceptuuid='$exceptuuid',exceptgroup='$exceptgroup',boost='$boost',logpath='$logpath'") === false) { - $alert = '' . $mysqlcon->errorCode() . '
    '; - } else { - if (substr(php_uname(), 0, 7) == "Windows") { - $WshShell = new COM("WScript.Shell"); - $oExec = $WshShell->Run("cmd /C php ".__DIR__."\worker.php restart", 0, false); - } else { - exec("php ".__DIR__."/worker.php restart"); - } - $alert = '' . $lang['wisvsuc'] . ''; - } - require_once('other/webinterface_list.php'); -} -if (isset($_POST['updatestyle'])) { - $language = $_POST['languagedb']; - $dateformat = $_POST['dateformat']; - if (isset($_POST['showexgrp'])) $showexgrp = 1; else $showexgrp = 0; - if (isset($_POST['showexcld'])) $showexcld = 1; else $showexcld = 0; - if (isset($_POST['showhighest'])) $showhighest = 1; else $showhighest = 0; - if (isset($_POST['showcolrg'])) $showcolrg = 1; else $showcolrg = 0; - if (isset($_POST['showcolcld'])) $showcolcld = 1; else $showcolcld = 0; - if (isset($_POST['showcoluuid'])) $showcoluuid = 1; else $showcoluuid = 0; - if (isset($_POST['showcoldbid'])) $showcoldbid = 1; else $showcoldbid = 0; - if (isset($_POST['showcolls'])) $showcolls = 1; else $showcolls = 0; - if (isset($_POST['showcolot'])) $showcolot = 1; else $showcolot = 0; - if (isset($_POST['showcolit'])) $showcolit = 1; else $showcolit = 0; - if (isset($_POST['showcolat'])) $showcolat = 1; else $showcolat = 0; - if (isset($_POST['showcolas'])) $showcolas = 1; else $showcolas = 0; - if (isset($_POST['showcolnx'])) $showcolnx = 1; else $showcolnx = 0; - if (isset($_POST['showcolsg'])) $showcolsg = 1; else $showcolsg = 0; - $bgcolor = $_POST['bgcolor']; - $hdcolor = $_POST['hdcolor']; - $txcolor = $_POST['txcolor']; - $hvcolor = $_POST['hvcolor']; - $ifcolor = $_POST['ifcolor']; - $wncolor = $_POST['wncolor']; - $sccolor = $_POST['sccolor']; - if (isset($_POST['showgen'])) $showgen = 1; else $showgen = 0; - include('lang.php'); - if ($mysqlcon->exec("UPDATE $dbname.config set language='$language',dateformat='$dateformat',showexgrp='$showexgrp',showexcld='$showexcld',showhighest='$showhighest',showcolrg='$showcolrg',showcolcld='$showcolcld',showcoluuid='$showcoluuid',showcoldbid='$showcoldbid',showcolls='$showcolls',showcolot='$showcolot',showcolit='$showcolit',showcolat='$showcolat',showcolas='$showcolas',showcolnx='$showcolnx',showcolsg='$showcolsg',bgcolor='$bgcolor',hdcolor='$hdcolor',txcolor='$txcolor',hvcolor='$hvcolor',ifcolor='$ifcolor',wncolor='$wncolor',sccolor='$sccolor',showgen='$showgen'") === false) { - $alert = '' . $mysqlcon->errorCode() . '
    '; - } else { - $alert = '' . $lang['wisvsuc'] . ''; - } - require_once('other/webinterface_list.php'); -} -if (isset($_POST['selectivclients'])) { - $seluuid = $_POST['selecteduuids']; - $uuidarr = explode(',', $seluuid); - $counttime = $_POST['counttime']; - if (isset($_POST['delclients']) && $seluuid != '' && $counttime == 0) { - require_once('ts3_lib/TeamSpeak3.php'); - $ts3_VirtualServer = TeamSpeak3::factory("serverquery://" . $ts['user'] . ":" . $ts['pass'] . "@" . $ts['host'] . ":" . $ts['query'] . "/?server_port=" . $ts['voice']); - try { - $ts3_VirtualServer->selfUpdate(array( - 'client_nickname' => $queryname - )); - } - catch (Exception $e) { - try { - $ts3_VirtualServer->selfUpdate(array( - 'client_nickname' => $queryname2 - )); - } - catch (Exception $e) { - echo $lang['error'], $e->getCode(), ': ', $e->getMessage(); - } - } - foreach ($uuidarr as $uuid) { - if (isset($_POST['delsrvgrp'])) { - $dbremsgrp = $mysqlcon->query("SELECT cldbid,grpid from $dbname.user where uuid='$uuid'"); - while ($remsgrp = $dbremsgrp->fetch(PDO::FETCH_ASSOC)) { - if ($remsgrp['grpid'] != 0) { - try { - $ts3_VirtualServer->serverGroupClientDel($remsgrp['grpid'], $remsgrp['cldbid']); - } - catch (Exception $e) { - $alert = $alert . '' . sprintf($lang['errremgrp'], $uuid, $remsgrp['grpid']) . $e->getCode() . ': ' . $e->getMessage() . '
    '; - } - } - } - } - if ($mysqlcon->exec("DELETE FROM $dbname.user WHERE uuid='$uuid'") === false) { - $alert = $alert . '' . sprintf($lang['errremdb'], $uuid) . $mysqlcon->errorCode() . '
    '; - } else { - $alert = $alert . '' . sprintf($lang['sccrmcld'], $uuid) . '
    '; - } - } - } elseif ($_POST['delclients'] == "" && $seluuid != '' && $counttime != 0) { - $dtF = new DateTime("@0"); - $dtT = new DateTime("@$counttime"); - $timecount = $dtF->diff($dtT)->format($timeformat); - foreach ($uuidarr as $uuid) { - if ($mysqlcon->exec("UPDATE $dbname.user SET count='$counttime' WHERE uuid='$uuid'") === false) { - $alert = $alert . '' . sprintf($lang['errupcount'], $timecount, $uuid) . $mysqlcon->errorCode() . '
    '; - } else { - $alert = $alert . '' . sprintf($lang['sccupcount'], $uuid, $timecount) . '
    '; - } - } - } else { - echo $_POST['delclients']; - $alert = '' . sprintf($lang['errsel'], $seluuid, $_POST['delclients'], $counttime) . ''; - } - require_once('other/webinterface_list.php'); -} -if (isset($_POST['globalclients'])) { - if(isset($_POST['delcldgrps'])) { - $selectbefore = $mysqlcon->query("SELECT * FROM $dbname.user WHERE grpid!='0'"); - $before = $selectbefore->rowCount(); - if($mysqlcon->exec("UPDATE $dbname.user SET grpid='0'") && $selectbefore->rowCount() != 0) { - $alert = '' . sprintf($lang['delcldgrpsc'], $before) . ''; - } elseif($selectbefore->rowCount() == 0) { - $alert = '' . sprintf($lang['delcldgrpsc'], $before) . ''; - } else { - $alert = '' . sprintf($lang['delcldgrpif'], $selectbefore->errorCode()) . ''; - } - } else { - $selectbefore = $mysqlcon->query("SELECT * FROM $dbname.user"); - $before = $selectbefore->rowCount(); - $cleantime = time() - $_POST['cleantime']; - if (isset($_POST['delsrvgrp'])) { - require_once('ts3_lib/TeamSpeak3.php'); - $ts3_VirtualServer = TeamSpeak3::factory("serverquery://" . $ts['user'] . ":" . $ts['pass'] . "@" . $ts['host'] . ":" . $ts['query'] . "/?server_port=" . $ts['voice']); - try { - $ts3_VirtualServer->selfUpdate(array( - 'client_nickname' => $queryname - )); - } - catch (Exception $e) { - try { - $ts3_VirtualServer->selfUpdate(array( - 'client_nickname' => $queryname2 - )); - } - catch (Exception $e) { - echo $lang['error'], $e->getCode(), ': ', $e->getMessage(); - } - } - $dbremsgrp = $mysqlcon->query("SELECT cldbid,grpid from $dbname.user where lastseen<'$cleantime'"); - $dbremsgrp = $dbremsgrp->fetchAll(); - foreach ($dbremsgrp as $remsgrp) { - if ($remsgrp['grpid'] != 0) { - $ts3_VirtualServer->serverGroupClientDel($remsgrp['grpid'], $remsgrp['cldbid']); - } - } - } - if ($_POST['cleantime'] < 1) { - $dbcount = $mysqlcon->exec("DELETE from $dbname.user"); - } else { - $dbcount = $mysqlcon->exec("DELETE from $dbname.user where lastseen<'$cleantime'"); - } - $selectafter = $mysqlcon->query("SELECT * from $dbname.user"); - $after = $selectafter->rowCount(); - $countdel = $before - $after; - if ($countdel == 0) { - $alert = '' . sprintf($lang['delclientsif'], $countdel) . ''; - } else { - $alert = '' . sprintf($lang['delclientssc'], $countdel) . ''; - } - } - require_once('other/webinterface_list.php'); -} -if (isset($_POST['updatetdbsettings'])) { -$newconfig=''; - $dbserver = $_POST['dbtype'].':host='.$_POST['dbhost'].';dbname='.$_POST['dbname']; - try { - $mysqlcon = new PDO($dbserver, $_POST['dbuser'], $_POST['dbpass']); - $handle=fopen('./other/dbconfig.php','w'); - if(!fwrite($handle,$newconfig)) - { - $alert = '' . sprintf($lang['widbcfgerr']) . ''; - } else { - if (substr(php_uname(), 0, 7) == "Windows") { - $WshShell = new COM("WScript.Shell"); - $oExec = $WshShell->Run("cmd /C php ".__DIR__."\worker.php restart", 0, false); - } else { - exec("php ".__DIR__."/worker.php restart"); - } - $alert = '' . sprintf($lang['widbcfgsuc']) . ''; - } - fclose($handle); - } catch (PDOException $e) { - $alert = '' . sprintf($lang['widbcfgerr']) . ''; - } - require_once('other/webinterface_list.php'); -} -if (file_exists('install.php') || file_exists('update_0-02.php') || file_exists('update_0-10.php')) { - echo sprintf($lang['isntwidel'], "webinterface.php"); -} else { - if (isset($_GET['logout']) == "true") { - session_destroy(); - header("location:webinterface.php"); - } elseif (isset($_POST['abschicken']) || isset($_SESSION['username'])) { - if (isset($_SESSION['username']) || ($_POST['username'] == $webuser && $_POST['password'] == $webpass)) { - $_SESSION['username'] = $webuser; - set_error_handler(function() { }); - $newversion = file_get_contents('http://ts-n.net/ranksystem/version'); - restore_error_handler(); - if (substr($newversion, 0, 4) != substr($currvers, 0, 4) && $newversion != '') { - $alert = 'Update available!'; - } - require_once('other/webinterface_list.php'); - } else { - $showerrlogin = 1; - require_once('other/webinterface_login.php'); - } - } else { - session_destroy(); - require_once('other/webinterface_login.php'); - } -} -?> \ No newline at end of file diff --git a/webinterface/admin.php b/webinterface/admin.php new file mode 100644 index 0000000..97f601f --- /dev/null +++ b/webinterface/admin.php @@ -0,0 +1,74 @@ + +
    + +
    + +
    +
    +

    + Special Functions +

    +
    +
    + +
     
    +
    +
    + The functions (delete clients/ clear Ranksystem/ edit clients online time) will come back with one of the next releases... +
    +
    +
     
    + +
    +
    +
    + + \ No newline at end of file diff --git a/webinterface/bot.php b/webinterface/bot.php new file mode 100644 index 0000000..a2b3af5 --- /dev/null +++ b/webinterface/bot.php @@ -0,0 +1,204 @@ +$number_lines) array_shift($lines); + } + fclose($fp); + } else { + $lines[] = "No log entry found...\n"; + $lines[] = "The logfile will be created with next startup.\n"; + } + return $lines; +} + +$number_lines = 20; +if (isset($_POST['number'])) { + if($_POST['number'] == 20) { + $number_lines = 20; + } elseif($_POST['number'] == 50) { + $number_lines = 50; + } elseif($_POST['number'] == 100) { + $number_lines = 100; + } elseif($_POST['number'] == 200) { + $number_lines = 200; + } elseif($_POST['number'] == 500) { + $number_lines = 500; + } elseif($_POST['number'] == 9999) { + $number_lines = 9999; + } else { + $number_lines = 20; + } +} +if (isset($_POST['logout'])) { + echo "logout"; + $_SESSION = array(); + session_destroy(); + if($_SERVER['HTTPS'] == "on") { + header("Location: https://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')); + } else { + header("Location: http://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')); + } + exit; +} + +if (!isset($_SESSION['username']) || $_SESSION['username'] != $webuser || $_SESSION['password'] != $webpass || $_SESSION['clientip'] != getclientip()) { + if($_SERVER['HTTPS'] == "on") { + header("Location: https://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')); + } else { + header("Location: http://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')); + } + exit; +} + +require_once('nav.php'); +$logoutput = getlog($logpath,$number_lines); + +if (isset($_POST['start']) && $_SESSION['username'] == $webuser && $_SESSION['password'] == $webpass && $_SESSION['clientip'] == getclientip()) { + if (substr(php_uname(), 0, 7) == "Windows") { + $WshShell = new COM("WScript.Shell"); + $oExec = $WshShell->Run("cmd /C php ".substr(__DIR__,0,-12)."\worker.php start", 0, false); + } else { + exec("php ".substr(__DIR__,0,-12)."worker.php start"); + } + $err_msg = $lang['wibot2']; + $err_lvl = 1; + usleep(80000); + $logoutput = getlog($logpath,$number_lines); +} + +if (isset($_POST['stop']) && $_SESSION['username'] == $webuser && $_SESSION['password'] == $webpass && $_SESSION['clientip'] == getclientip()) { + if (substr(php_uname(), 0, 7) == "Windows") { + $WshShell = new COM("WScript.Shell"); + $oExec = $WshShell->Run("cmd /C php ".substr(__DIR__,0,-12)."\worker.php stop", 0, false); + } else { + exec("php ".substr(__DIR__,0,-12)."worker.php stop"); + } + $err_msg = $lang['wibot1']; + $err_lvl = 1; + usleep(80000); + $logoutput = getlog($logpath,$number_lines); +} + +if (isset($_POST['restart']) && $_SESSION['username'] == $webuser && $_SESSION['password'] == $webpass && $_SESSION['clientip'] == getclientip()) { + if (substr(php_uname(), 0, 7) == "Windows") { + $WshShell = new COM("WScript.Shell"); + $oExec = $WshShell->Run("cmd /C php ".substr(__DIR__,0,-12)."\worker.php restart", 0, false); + } else { + exec("php ".substr(__DIR__,0,-12)."worker.php restart"); + } + $err_msg = $lang['wibot3']; + $err_lvl = 1; + usleep(80000); + $logoutput = getlog($logpath,$number_lines); +} + +$disabled = ''; +if($ts['host'] == NULL || $ts['query'] == NULL || $ts['voice'] == NULL || $ts['user'] == NULL || $ts['pass'] == NULL || $queryname == NULL || $queryname2 == NULL || $grouptime == NULL || $logpath == NULL) { + $disabled = 1; + $err_msg = $lang['wibot9']; + $err_lvl = 2; +} +?> +
    + +
    +
    +
    +

    + +

    +
    +
    +
    +
     
    +
    +
    + +
    +
    +
     
    +
    +
    +
     
    +
    +
    + +
    +
    +
     
    +
    +
    +
     
    +
    +
    + +
    +
    +
     
    +
    +
     
    +
    +
    +

    + +

    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + \ No newline at end of file diff --git a/webinterface/core.php b/webinterface/core.php new file mode 100644 index 0000000..0ffe7e1 --- /dev/null +++ b/webinterface/core.php @@ -0,0 +1,377 @@ +exec("UPDATE $dbname.config set substridle='$substridle',exceptuuid='$exceptuuid',exceptgroup='$exceptgroup',exceptcid='$exceptcid',grouptime='$grouptime',ignoreidle='$ignoreidle',resetbydbchange='$resetbydbchange',cleanclients='$cleanclients',cleanperiod='$cleanperiod',boost='$boost'") === false) { + $err_msg = print_r($mysqlcon->errorInfo()); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc']." ".$lang['wisvres']; + $err_lvl = NULL; + } + $config[0]['grouptime'] = $_POST['grouptime']; + $config[0]['exceptuuid'] = $_POST['exceptuuid']; + $config[0]['exceptgroup'] = $_POST['exceptgroup']; + $config[0]['exceptcid'] = $_POST['exceptcid']; + $config[0]['boost'] = $_POST['boost']; +} +?> +
    + +
    +
    +
    +

    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
     
    +
    + +
    + +
    *
    +
    +
    +
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
     
    +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
     
    +
    + +
    + + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
     
    +
    +
    + +
    +
    +
     
    +
    +
    +
    + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/webinterface/db.php b/webinterface/db.php new file mode 100644 index 0000000..9a3cfba --- /dev/null +++ b/webinterface/db.php @@ -0,0 +1,246 @@ +'; + $dbserver = $_POST['dbtype'].':host='.$_POST['dbhost'].';dbname='.$_POST['dbname']; + try { + $mysqlcon = new PDO($dbserver, $_POST['dbuser'], $_POST['dbpass']); + $handle=fopen('../other/dbconfig.php','w'); + if(!fwrite($handle,$newconfig)) + { + $err_msg = sprintf($lang['widbcfgerr']); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc']." ".$lang['wisvres']; + $err_lvl = 0; + } + fclose($handle); + } catch (PDOException $e) { + $err_msg = sprintf($lang['widbcfgerr']); + $err_lvl = 3; + } + $db['type'] = $_POST['dbtype']; + $db['host'] = $_POST['dbhost']; + $dbname = $_POST['dbname']; + $db['user'] = $_POST['dbuser']; + $db['pass'] = $_POST['dbpass']; +} +?> +
    + +
    +
    +
    +

    + +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    *
    +
    +
    +
    + +
    + +
    *
    +
    +
    +
    +
    +
     
    +
    +
    +
    + +
    + +
    *
    +
    +
    +
    + +
    + +
    *
    +
    +
    +
    +
    +
    +
    +
     
    +
    +
    + +
    +
    +
     
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/webinterface/index.php b/webinterface/index.php new file mode 100644 index 0000000..08c67e0 --- /dev/null +++ b/webinterface/index.php @@ -0,0 +1,133 @@ +setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n"; + $loghandle = fopen($file, 'a'); + fwrite($loghandle, $input); + if (filesize($file) > 5242880) { + fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ")." NOTICE Logfile filesie of 5 MiB reached.. Rotate logfile.\n"); + fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ")." NOTICE Restart Bot to continue with new log file...\n"); + fclose($loghandle); + $file2 = "$file.old"; + if (file_exists($file2)) unlink($file2); + rename($file, $file2); + if (substr(php_uname(), 0, 7) == "Windows") { + exec("del /F ".substr(__DIR__,0,-12).'logs/pid'); + $WshShell = new COM("WScript.Shell"); + $oExec = $WshShell->Run("cmd /C php ".substr(__DIR__,0,-12)."worker.php start", 0, false); + exit; + } else { + exec("rm -f ".substr(__DIR__,0,-12).'logs/pid'); + exec("php ".substr(__DIR__,0,-12)."worker.php start"); + exit; + } + } +} + +function getclientip() { + if (!empty($_SERVER['HTTP_CLIENT_IP'])) + return $_SERVER['HTTP_CLIENT_IP']; + elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) + return $_SERVER['HTTP_X_FORWARDED_FOR']; + elseif(!empty($_SERVER['HTTP_X_FORWARDED'])) + return $_SERVER['HTTP_X_FORWARDED']; + elseif(!empty($_SERVER['HTTP_FORWARDED_FOR'])) + return $_SERVER['HTTP_FORWARDED_FOR']; + elseif(!empty($_SERVER['HTTP_FORWARDED'])) + return $_SERVER['HTTP_FORWARDED']; + elseif(!empty($_SERVER['REMOTE_ADDR'])) + return $_SERVER['REMOTE_ADDR']; + else + return false; +} + +if(($last_access = $mysqlcon->query("SELECT last_access,count_access FROM $dbname.config")) === false) { + $sqlmsg .= print_r($mysqlcon->errorInfo()); +} +$last_access = $last_access->fetchAll(); + +if(($last_access[0]['last_access'] + 1) >= time()) { + $again = $last_access[0]['last_access'] + 2 - time(); + $err_msg = sprintf($lang['errlogin2'],$again); + $err_lvl = 3; +} elseif ($last_access[0]['count_access'] >= 10) { + enter_logfile($logpath,$timezone,3,"Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP ".getclientip()."."); + $err_msg = $lang['errlogin3']; + $err_lvl = 3; + $bantime = time() + 299; + if($mysqlcon->exec("UPDATE $dbname.config SET last_access='$bantime', count_access='0'") === false) { } +} elseif (isset($_POST['username']) && $_POST['username'] == $webuser && password_verify($_POST['password'], $webpass)) { + $_SESSION['username'] = $webuser; + $_SESSION['password'] = $webpass; + $_SESSION['clientip'] = getclientip(); + $_SESSION['newversion'] = $newversion; + if($mysqlcon->exec("UPDATE $dbname.config SET count_access='0'") === false) { } + if($_SERVER['HTTPS'] == "on") { + header("Location: https://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/ts.php"); + } else { + header("Location: http://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/ts.php"); + } + exit; +} elseif(isset($_POST['username'])) { + $nowtime = time(); + if($mysqlcon->exec("UPDATE $dbname.config SET last_access='$nowtime', count_access = count_access + 1") === false) { } + $err_msg = $lang['errlogin']; + $err_lvl = 3; +} + +require_once('nav.php'); +?> +
    + +
    + +
    +
    + + + \ No newline at end of file diff --git a/webinterface/msg.php b/webinterface/msg.php new file mode 100644 index 0000000..f6d8eb7 --- /dev/null +++ b/webinterface/msg.php @@ -0,0 +1,140 @@ +exec("UPDATE $dbname.config set msgtouser='$msgtouser',rankupmsg='$rankupmsg'") === false) { + $err_msg = print_r($mysqlcon->errorInfo()); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc']." ".$lang['wisvres']; + $err_lvl = NULL; + } + $rankupmsg = $_POST['rankupmsg']; +} +?> +
    + +
    +
    +
    +

    + +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
     
    +
    +
    + +
    +
    +
     
    +
    +
    +
    + + + + + + \ No newline at end of file diff --git a/webinterface/nav.php b/webinterface/nav.php new file mode 100644 index 0000000..0b17dd0 --- /dev/null +++ b/webinterface/nav.php @@ -0,0 +1,147 @@ + + + + + + + + + TS-N.NET Ranksystem + + + + + + + + + + + + + + + + + + + + +
    + +') && $_SESSION['newversion'] != '') { + $err_msg = ''.$lang['winav9'].''; $err_lvl = 1; +} + +if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") { + $host = ""; + $err_msg = sprintf($lang['winav10'], $host,'!
    ', '
    '); $err_lvl = 2; +} + +function error_handling($msg,$type = NULL) { + switch ($type) { + case NULL: echo '
    '; break; + case 1: echo '
    '; break; + case 2: echo '
    '; break; + case 3: echo '
    '; break; + } + echo '',$msg,'
    '; +} +?> \ No newline at end of file diff --git a/webinterface/other.php b/webinterface/other.php new file mode 100644 index 0000000..75e5844 --- /dev/null +++ b/webinterface/other.php @@ -0,0 +1,299 @@ +exec("UPDATE $dbname.config set timezone='$timezone',dateformat='$dateformat',logpath='$logpath',language='$language',upcheck='$upcheck',updateinfotime='$updateinfotime',uniqueid='$uniqueid'") === false) { + $err_msg = print_r($mysqlcon->errorInfo()); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc']." ".$lang['wisvres']; + $err_lvl = NULL; + } + $logpath = $_POST['logpath']; + $config[0]['uniqueid'] = $_POST['uniqueid']; +} +?> +
    + +
    +
    +
    +

    + +

    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    *
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
    + +
    + + +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    +
     
    +
    +
    + +
    +
    +
     
    +
    +
    +
    +
    + + + + + + + + + + + \ No newline at end of file diff --git a/webinterface/stats.php b/webinterface/stats.php new file mode 100644 index 0000000..65fa980 --- /dev/null +++ b/webinterface/stats.php @@ -0,0 +1,442 @@ +exec("UPDATE $dbname.config set showexcld='$showexcld',showcolrg='$showcolrg',showcolcld='$showcolcld',showcoluuid='$showcoluuid',showcoldbid='$showcoldbid',showcolls='$showcolls',showcolot='$showcolot',showcolit='$showcolit',showcolat='$showcolat',showcolas='$showcolas',showcolnx='$showcolnx',showcolsg='$showcolsg',showhighest='$showhighest'") === false) { + $err_msg = print_r($mysqlcon->errorInfo()); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc']; + $err_lvl = NULL; + } +} +?> +
    + +
    +
    +
    +

    + +

    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
    +
    +
     
    +
    + +
    + '; + } else { + echo ''; + } ?> +
    +
    +
    +
    +
     
    +
    +
    + +
    +
    +
     
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/webinterface/ts.php b/webinterface/ts.php new file mode 100644 index 0000000..709efff --- /dev/null +++ b/webinterface/ts.php @@ -0,0 +1,350 @@ +exec("UPDATE $dbname.config set tshost='$tshost',tsquery='$tsquery',tsvoice='$tsvoice',tsuser='$tsuser',tspass='$tspass',queryname='$queryname',queryname2='$queryname2',slowmode='$slowmode',defchid='$defchid'") === false) { + $err_msg = print_r($mysqlcon->errorInfo()); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc']." ".$lang['wisvres']; + $err_lvl = NULL; + } + $ts['host'] = $_POST['tshost']; + $ts['query'] = $_POST['tsquery']; + $ts['voice'] = $_POST['tsvoice']; + $ts['user'] = $_POST['tsuser']; + $ts['pass'] = $_POST['tspass']; +} +?> +
    + +
    +
    +
    +

    + +

    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + +
    *
    +
    +
    +
    + +
    + + +
    *
    +
    +
    +
    + +
    + + +
    *
    +
    +
    +
    +
    +
     
    +
    +
    +
    + +
    + +
    *
    +
    +
    +
    + +
    + +
    *
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + +
    *
    +
    +
    +
    + +
    + +
    *
    +
    +
    +
    +
    +
     
    +
    + +
    + + +
    +
    +
     
    +
    + +
    + +
    +
    +
    +
    +
     
    +
    +
    + +
    +
    +
     
    +
    +
    +
    +
    + + + + + + + + + + + \ No newline at end of file