From 559be889fa4b4aa7b281e3471ccf3efc45225de6 Mon Sep 17 00:00:00 2001 From: Karnovsky Alexander Date: Tue, 3 Nov 2015 11:03:59 +0200 Subject: [PATCH] Init test-9 --- .bowerrc | 3 +++ .gitignore | 32 ++++++++++++++++++++++++++++++++ .htaccess | 35 +++++++++++++++++++++++++++++++++++ LICENSE.md | 32 ++++++++++++++++++++++++++++++++ README.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/assets/AppAsset.php | 29 +++++++++++++++++++++++++++++ backend/config/.gitignore | 2 ++ backend/config/bootstrap.php | 1 + backend/config/main.php | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/config/params.php | 4 ++++ backend/controllers/ClientsController.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/controllers/DepartmentsController.php | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/controllers/SiteController.php | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/controllers/TeamController.php | 302 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/controllers/TeamSkilsController.php | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/models/.gitkeep | 1 + backend/models/Clients.php | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/models/ClientsSearch.php | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/models/Departments.php | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/models/DepartmentsSearch.php | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/models/Team.php | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/models/TeamBooks.php | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/models/TeamSearch.php | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/models/TeamSkils.php | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/models/User.php | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/runtime/.gitignore | 2 ++ backend/views/adminlte/layouts/content.php | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/adminlte/layouts/header.php | 284 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/adminlte/layouts/left.php | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/adminlte/layouts/main-login.php | 29 +++++++++++++++++++++++++++++ backend/views/adminlte/layouts/main.php | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/adminlte/site/error.php | 45 +++++++++++++++++++++++++++++++++++++++++++++ backend/views/adminlte/site/login.php | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/clients/_form.php | 39 +++++++++++++++++++++++++++++++++++++++ backend/views/clients/_search.php | 39 +++++++++++++++++++++++++++++++++++++++ backend/views/clients/create.php | 21 +++++++++++++++++++++ backend/views/clients/index.php | 40 ++++++++++++++++++++++++++++++++++++++++ backend/views/clients/update.php | 23 +++++++++++++++++++++++ backend/views/clients/view.php | 41 +++++++++++++++++++++++++++++++++++++++++ backend/views/departments/_form.php | 27 +++++++++++++++++++++++++++ backend/views/departments/_search.php | 33 +++++++++++++++++++++++++++++++++ backend/views/departments/create.php | 21 +++++++++++++++++++++ backend/views/departments/index.php | 36 ++++++++++++++++++++++++++++++++++++ backend/views/departments/update.php | 23 +++++++++++++++++++++++ backend/views/departments/view.php | 38 ++++++++++++++++++++++++++++++++++++++ backend/views/layouts/main.php | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/site/error.php | 27 +++++++++++++++++++++++++++ backend/views/site/index.php | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/site/login.php | 35 +++++++++++++++++++++++++++++++++++ backend/views/team/_form.php | 201 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/team/_search.php | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/team/create.php | 21 +++++++++++++++++++++ backend/views/team/index.php | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/team/skils/_form.php | 27 +++++++++++++++++++++++++++ backend/views/team/skils/create.php | 21 +++++++++++++++++++++ backend/views/team/skils/index.php | 34 ++++++++++++++++++++++++++++++++++ backend/views/team/skils/update.php | 23 +++++++++++++++++++++++ backend/views/team/skils/view.php | 38 ++++++++++++++++++++++++++++++++++++++ backend/views/team/update.php | 25 +++++++++++++++++++++++++ backend/views/team/view.php | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/web/.gitignore | 2 ++ backend/web/assets/.gitignore | 2 ++ backend/web/css/site.css | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/web/favicon.ico | Bin 0 -> 318 bytes backend/web/robots.txt | 2 ++ common/components/Request.php | 22 ++++++++++++++++++++++ common/config/.gitignore | 2 ++ common/config/bootstrap.php | 5 +++++ common/config/main.php | 17 +++++++++++++++++ common/config/params.php | 6 ++++++ common/config/rules.php | 7 +++++++ common/mail/layouts/html.php | 22 ++++++++++++++++++++++ common/mail/layouts/text.php | 12 ++++++++++++ common/mail/passwordResetToken-html.php | 15 +++++++++++++++ common/mail/passwordResetToken-text.php | 12 ++++++++++++ common/models/LoginForm.php | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ common/models/OrdersAudit.php | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ common/models/User.php | 188 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ common/widgets/Alert.php | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ composer.json | 39 +++++++++++++++++++++++++++++++++++++++ composer.lock | 1194 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ console/config/.gitignore | 2 ++ console/config/bootstrap.php | 1 + console/config/main.php | 25 +++++++++++++++++++++++++ console/config/params.php | 4 ++++ console/controllers/.gitkeep | 0 console/migrations/m130524_201442_init.php | 34 ++++++++++++++++++++++++++++++++++ console/models/.gitkeep | 1 + console/runtime/.gitignore | 2 ++ environments/dev/backend/config/main-local.php | 25 +++++++++++++++++++++++++ environments/dev/backend/config/params-local.php | 3 +++ environments/dev/backend/web/index-test.php | 19 +++++++++++++++++++ environments/dev/backend/web/index.php | 18 ++++++++++++++++++ environments/dev/common/config/main-local.php | 20 ++++++++++++++++++++ environments/dev/common/config/params-local.php | 3 +++ environments/dev/console/config/main-local.php | 7 +++++++ environments/dev/console/config/params-local.php | 3 +++ environments/dev/frontend/config/main-local.php | 21 +++++++++++++++++++++ environments/dev/frontend/config/params-local.php | 3 +++ environments/dev/frontend/web/index-test.php | 18 ++++++++++++++++++ environments/dev/frontend/web/index.php | 18 ++++++++++++++++++ environments/dev/yii | 28 ++++++++++++++++++++++++++++ environments/index.php | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ environments/prod/backend/config/main-local.php | 9 +++++++++ environments/prod/backend/config/params-local.php | 3 +++ environments/prod/backend/web/index.php | 18 ++++++++++++++++++ environments/prod/common/config/main-local.php | 16 ++++++++++++++++ environments/prod/common/config/params-local.php | 3 +++ environments/prod/console/config/main-local.php | 3 +++ environments/prod/console/config/params-local.php | 3 +++ environments/prod/frontend/config/main-local.php | 9 +++++++++ environments/prod/frontend/config/params-local.php | 3 +++ environments/prod/frontend/web/index.php | 18 ++++++++++++++++++ environments/prod/yii | 28 ++++++++++++++++++++++++++++ frontend/assets/AppAsset.php | 36 ++++++++++++++++++++++++++++++++++++ frontend/config/.gitignore | 2 ++ frontend/config/bootstrap.php | 1 + frontend/config/main.php | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/config/params.php | 4 ++++ frontend/controllers/SiteController.php | 315 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/models/Clients.php | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/models/ClientsQuery.php | 35 +++++++++++++++++++++++++++++++++++ frontend/models/ContactForm.php | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/models/PasswordResetRequestForm.php | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/models/ResetPasswordForm.php | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/models/SignupForm.php | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/models/Team.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/models/TeamBooks.php | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ frontend/models/TeamFilms.php | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/models/TeamHumors.php | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/models/TeamInterests.php | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/models/TeamInterestsQuery.php | 35 +++++++++++++++++++++++++++++++++++ frontend/models/TeamQuery.php | 35 +++++++++++++++++++++++++++++++++++ frontend/models/TeamSkils.php | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/runtime/.gitignore | 2 ++ frontend/views/blocks/clients.php | 34 ++++++++++++++++++++++++++++++++++ frontend/views/blocks/orders-audit.php | 30 ++++++++++++++++++++++++++++++ frontend/views/blocks/portfolio.php | 291 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/blocks/reviews.php | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/blocks/services.php | 12 ++++++++++++ frontend/views/layouts/main.php | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/contact.php | 328 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/error.php | 27 +++++++++++++++++++++++++++ frontend/views/site/frontpage.php | 244 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/login.php | 39 +++++++++++++++++++++++++++++++++++++++ frontend/views/site/orders_audit.php | 33 +++++++++++++++++++++++++++++++++ frontend/views/site/orders_audit_success.php | 23 +++++++++++++++++++++++ frontend/views/site/requestPasswordResetToken.php | 31 +++++++++++++++++++++++++++++++ frontend/views/site/resetPassword.php | 31 +++++++++++++++++++++++++++++++ frontend/views/site/services/analitic.php | 399 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/services/content.php | 546 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/services/context.php | 386 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/services/cpa.php | 417 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/services/cpc.php | 375 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/services/design.php | 395 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/services/email.php | 391 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/services/integration.php | 434 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/services/segmnt.php | 335 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/services/seo.php | 447 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/services/serm.php | 405 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/services/smm.php | 365 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/services/usability.php | 365 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/services/webcreat.php | 414 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/signup.php | 35 +++++++++++++++++++++++++++++++++++ frontend/views/site/team.php | 255 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/teamitem.php | 261 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/site/vacancies.php | 436 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/.gitignore | 2 ++ frontend/web/assets/.gitignore | 2 ++ frontend/web/count_form/app/data/admin.php | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/data/form.php | 414 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/data/login.php | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/data/sub_quest.php | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/db/Entity.php | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/db/Main.php | 12 ++++++++++++ frontend/web/count_form/app/entity/question.php | 175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/entity/request.php | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/entity/sub_question.php | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/LICENSE | 504 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/README | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/changelog.txt | 483 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/class.phpmailer.php | 2826 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/class.pop3.php | 418 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/class.smtp.php | 1003 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs.ini | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/Callback_function_notes.txt | 17 +++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/DomainKeys_notes.txt | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/Note_for_SMTP_debugging.txt | 23 +++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/extending.html | 148 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/faq.html | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes.svg | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/PHPMailer.html | 2420 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/POP3.html | 435 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/SMTP.html | 613 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/phpmailerException.html | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap-responsive.css | 567 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap-responsive.min.css | 3 +++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap.css | 3365 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap.min.css | 610 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/jquery.iviewer.css | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/prettify.css | 1 + frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/template.css | 505 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/deprecated.html | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/errors.html | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/graph_class.html | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/apple-touch-icon-114x114.png | Bin 0 -> 28338 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/apple-touch-icon-72x72.png | Bin 0 -> 12751 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/apple-touch-icon.png | Bin 0 -> 8358 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/favicon.ico | Bin 0 -> 1150 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/glyphicons-halflings-white.png | Bin 0 -> 4352 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/glyphicons-halflings.png | Bin 0 -> 4352 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/arrow_down.png | Bin 0 -> 606 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/arrow_right.png | Bin 0 -> 628 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/class.png | Bin 0 -> 395 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/constant.png | Bin 0 -> 496 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/favicon.ico | Bin 0 -> 1150 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/file-php.png | Bin 0 -> 4017 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/file.gif | Bin 0 -> 110 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/folder.gif | Bin 0 -> 106 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/function.png | Bin 0 -> 338 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/icon-folder-open-big.png | Bin 0 -> 232 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/icon-th-big.png | Bin 0 -> 106 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/icon_template.svg | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/interface.png | Bin 0 -> 281 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/method.png | Bin 0 -> 377 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/ok.png | Bin 0 -> 3685 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/property.png | Bin 0 -> 360 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/search.gif | Bin 0 -> 152 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/variable.png | Bin 0 -> 829 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/view_source.png | Bin 0 -> 603 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/visibility_private.png | Bin 0 -> 3433 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/visibility_protected.png | Bin 0 -> 764 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/visibility_public.png | Bin 0 -> 3451 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/grab.cur | Bin 0 -> 1150 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/hand.cur | Bin 0 -> 1150 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.rotate_left.png | Bin 0 -> 1493 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.rotate_right.png | Bin 0 -> 1482 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_fit.png | Bin 0 -> 1252 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_fit2.gif | Bin 0 -> 95 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_in.png | Bin 0 -> 1420 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_in2.gif | Bin 0 -> 90 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_out.png | Bin 0 -> 1416 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_out2.gif | Bin 0 -> 69 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_zero.png | Bin 0 -> 1091 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_zero2.gif | Bin 0 -> 98 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/loader.gif | Bin 0 -> 4726 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/index.html | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/SVGPan.js | 232 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/bootstrap.js | 1722 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/bootstrap.min.js | 1 + frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery-1.4.2.min.js | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery-1.7.1.min.js | 9270 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery-ui-1.8.2.custom.min.js | 1012 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.cookie.js | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.iviewer.js | 1045 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.iviewer.min.js | 42 ++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.mousewheel.min.js | 13 +++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.panzoom.js | 467 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.splitter.js | 228 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.tools.min.js | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.treeview.js | 256 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/menu.js | 31 +++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-apollo.js | 2 ++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-clj.js | 18 ++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-css.js | 2 ++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-go.js | 1 + frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-hs.js | 2 ++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-lisp.js | 3 +++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-lua.js | 2 ++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-ml.js | 2 ++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-n.js | 4 ++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-proto.js | 1 + frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-scala.js | 2 ++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-sql.js | 2 ++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-tex.js | 1 + frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-vb.js | 2 ++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-vhdl.js | 3 +++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-wiki.js | 2 ++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-xq.js | 3 +++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-yaml.js | 2 ++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/prettify.min.js | 28 ++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/sidebar.js | 45 +++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/template.js | 185 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/markers.html | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/namespaces/global.html | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/packages/PHPMailer.html | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/structure.xml | 3779 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/pop3_article.txt | 39 +++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/use_gmail.txt | 44 ++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/contents.html | 20 ++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/images/phpmailer.gif | Bin 0 -> 4756 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/images/phpmailer_mini.gif | Bin 0 -> 1042 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/index.html | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_db_smtp_basic.php | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_mail_advanced.php | 30 ++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_mail_basic.php | 41 +++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_pop_before_smtp_advanced.php | 39 +++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_pop_before_smtp_basic.php | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_sendmail_advanced.php | 33 +++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_sendmail_basic.php | 43 +++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_smtp_advanced.php | 42 ++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_smtp_advanced_no_auth.php | 36 ++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_smtp_basic.php | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_smtp_basic_no_auth.php | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_smtp_gmail_advanced.php | 42 ++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_smtp_gmail_basic.php | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/extras/class.html2text.inc | 489 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/extras/htmlfilter.php | 861 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/extras/ntlm_sasl_client.php | 185 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-ar.php | 27 +++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-br.php | 26 ++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-ca.php | 26 ++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-ch.php | 26 ++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-cz.php | 25 +++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-de.php | 25 +++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-dk.php | 26 ++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-es.php | 26 ++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-et.php | 26 ++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-fi.php | 27 +++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-fo.php | 27 +++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-hu.php | 25 +++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-it.php | 27 +++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-ja.php | 26 ++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-nl.php | 25 +++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-no.php | 25 +++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-pl.php | 25 +++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-ro.php | 27 +++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-ru.php | 26 ++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-se.php | 26 ++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-sk.php | 26 ++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-tr.php | 27 +++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-zh.php | 26 ++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-zh_cn.php | 26 ++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test/contents.html | 10 ++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test/phpmailerTest.php | 750 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test/test.png | Bin 0 -> 1280 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/test/test_callback.php | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test/testemail.php | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/LGPLv3.txt | 165 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/contents.html | 14 ++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/images/aikido.gif | Bin 0 -> 26300 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/images/bkgrnd.gif | Bin 0 -> 49 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/images/phpmailer.gif | Bin 0 -> 4756 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/index.php | 427 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/clipboard.swf | Bin 0 -> 1361 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushBash.js | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushCSharp.js | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushCpp.js | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushCss.js | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushDelphi.js | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushDiff.js | 43 +++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushGroovy.js | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushJScript.js | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushJava.js | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushPerl.js | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushPhp.js | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushPlain.js | 35 +++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushPython.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushRuby.js | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushScala.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushSql.js | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushVb.js | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushXml.js | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shCore.js | 30 ++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shLegacy.js | 30 ++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/src/shCore.js | 1949 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/src/shLegacy.js | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/help.png | Bin 0 -> 786 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/magnifier.png | Bin 0 -> 615 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/page_white_code.png | Bin 0 -> 603 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/page_white_copy.png | Bin 0 -> 309 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/printer.png | Bin 0 -> 731 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/shCore.css | 321 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/shThemeDefault.css | 191 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/shThemeDjango.css | 193 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/shThemeEmacs.css | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/shThemeFadeToGrey.css | 193 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/shThemeMidnight.css | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/shThemeRDark.css | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/wrapping.png | Bin 0 -> 631 bytes frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/test.html | 46 ++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/view/admin/add.php | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/view/admin/edit.php | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/view/admin/index.php | 39 +++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/view/form/index.php | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/view/form/select.php | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/view/login/index.php | 20 ++++++++++++++++++++ frontend/web/count_form/app/view/main_page.php | 613 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/view/sub_quest/add.php | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/view/sub_quest/edit.php | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/app/view/sub_quest/index.php | 35 +++++++++++++++++++++++++++++++++++ frontend/web/count_form/css/bootstrap.css | 5796 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/css/bootstrap.css.map | 1 + frontend/web/count_form/css/main.css | 367 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/images/change.png | Bin 0 -> 17907 bytes frontend/web/count_form/images/check-off.png | Bin 0 -> 24052 bytes frontend/web/count_form/images/check-on.png | Bin 0 -> 24341 bytes frontend/web/count_form/images/del.png | Bin 0 -> 708 bytes frontend/web/count_form/images/down-arrow.png | Bin 0 -> 23851 bytes frontend/web/count_form/images/down-arrow2.png | Bin 0 -> 23846 bytes frontend/web/count_form/images/radio-off.png | Bin 0 -> 24205 bytes frontend/web/count_form/images/radio-on.png | Bin 0 -> 24338 bytes frontend/web/count_form/images/save.jpg | Bin 0 -> 3655 bytes frontend/web/count_form/images/up-arrow.png | Bin 0 -> 23842 bytes frontend/web/count_form/images/up-arrow2.png | Bin 0 -> 23842 bytes frontend/web/count_form/images/validFild.png | Bin 0 -> 696 bytes frontend/web/count_form/index.php | 27 +++++++++++++++++++++++++++ frontend/web/count_form/js/input-style.js | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/js/jquery-ui.js | 5 +++++ frontend/web/count_form/js/jquery.js | 9190 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/js/jquery.validate.min.js | 2 ++ frontend/web/count_form/js/main.js | 219 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/count_form/js/validate.js | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/contact.css | 444 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/ie.css | 14 ++++++++++++++ frontend/web/css/service_analitic.css | 444 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/service_content.css | 514 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/service_context.css | 442 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/service_cpa.css | 453 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/service_cpc.css | 441 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/service_design.css | 446 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/service_email.css | 428 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/service_integration.css | 447 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/service_segmnt.css | 418 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/service_seo.css | 442 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/service_serm.css | 444 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/service_smm.css | 451 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/service_usability.css | 415 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/service_webcreat.css | 444 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/site.css | 1505 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/team.css | 537 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/teamitem.css | 728 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/vacancies.css | 523 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/favicon.ico | Bin 0 -> 318 bytes frontend/web/files/censor_net_ua.jpg | Bin 0 -> 7900 bytes frontend/web/files/cl-arenda.jpg | Bin 0 -> 3935 bytes frontend/web/files/cl-arenda.png | Bin 0 -> 17912 bytes frontend/web/files/cl-censor.jpg | Bin 0 -> 10179 bytes frontend/web/files/cl-censor.png | Bin 0 -> 7826 bytes frontend/web/files/cl-dveri.jpg | Bin 0 -> 4200 bytes frontend/web/files/cl-dveri.png | Bin 0 -> 14426 bytes frontend/web/files/cl-extreme.jpg | Bin 0 -> 4537 bytes frontend/web/files/cl-extreme.png | Bin 0 -> 4977 bytes frontend/web/files/cl-gopro.jpg | Bin 0 -> 3852 bytes frontend/web/files/cl-gopro.png | Bin 0 -> 11330 bytes frontend/web/files/cl-hata-laminatu.jpg | Bin 0 -> 4120 bytes frontend/web/files/cl-hata-laminatu.png | Bin 0 -> 11845 bytes frontend/web/files/cl-linija-svitla.jpg | Bin 0 -> 4115 bytes frontend/web/files/cl-linija-svitla.png | Bin 0 -> 11033 bytes frontend/web/files/cl-planetaplast.jpg | Bin 0 -> 4719 bytes frontend/web/files/cl-planetaplast.png | Bin 0 -> 15925 bytes frontend/web/files/cl-semena.jpg | Bin 0 -> 4155 bytes frontend/web/files/cl-semena.png | Bin 0 -> 6789 bytes frontend/web/files/cl-ukravtodor.jpg | Bin 0 -> 6671 bytes frontend/web/files/cl-ukravtodor.png | Bin 0 -> 21094 bytes frontend/web/files/cl-ventolux.jpg | Bin 0 -> 4548 bytes frontend/web/files/cl-ventolux.png | Bin 0 -> 12879 bytes frontend/web/files/clients/cl-arenda.png | Bin 0 -> 17912 bytes frontend/web/files/clients/cl-arenda_1.png | Bin 0 -> 17912 bytes frontend/web/files/clients/cl-censor.png | Bin 0 -> 7826 bytes frontend/web/files/clients/cl-dveri.png | Bin 0 -> 14426 bytes frontend/web/files/clients/cl-extreme.png | Bin 0 -> 4977 bytes frontend/web/files/clients/cl-gopro.png | Bin 0 -> 11330 bytes frontend/web/files/clients/cl-hata-laminatu.png | Bin 0 -> 11845 bytes frontend/web/files/clients/cl-linija-svitla.png | Bin 0 -> 11033 bytes frontend/web/files/clients/cl-planetaplast.png | Bin 0 -> 15925 bytes frontend/web/files/clients/cl-semena.png | Bin 0 -> 6789 bytes frontend/web/files/clients/cl-ukravtodor.png | Bin 0 -> 21094 bytes frontend/web/files/google-map.jpg | Bin 0 -> 216866 bytes frontend/web/files/logos_artweb_slider.rar | Bin 0 -> 136638 bytes frontend/web/files/pf-avtodor.jpg | Bin 0 -> 11016 bytes frontend/web/files/pf-avtodor_1.png | Bin 0 -> 2090 bytes frontend/web/files/pf-avtodor_2.png | Bin 0 -> 2430 bytes frontend/web/files/pf-avtodor_3.png | Bin 0 -> 2704 bytes frontend/web/files/pf-censor.jpg | Bin 0 -> 7713 bytes frontend/web/files/pf-censor_1.png | Bin 0 -> 2213 bytes frontend/web/files/pf-censor_2.png | Bin 0 -> 3001 bytes frontend/web/files/pf-censor_3.png | Bin 0 -> 2769 bytes frontend/web/files/pf-extremstyle.jpg | Bin 0 -> 4112 bytes frontend/web/files/pf-extremstyle_1.png | Bin 0 -> 2289 bytes frontend/web/files/pf-extremstyle_2.png | Bin 0 -> 1686 bytes frontend/web/files/pf-extremstyle_3.png | Bin 0 -> 2475 bytes frontend/web/files/pf-medtehnika.jpg | Bin 0 -> 6479 bytes frontend/web/files/pf-medtehnika_1.png | Bin 0 -> 2537 bytes frontend/web/files/pf-medtehnika_2.png | Bin 0 -> 1883 bytes frontend/web/files/pf-medtehnika_3.png | Bin 0 -> 2407 bytes frontend/web/files/pf-semena.jpg | Bin 0 -> 6635 bytes frontend/web/files/pf-semena_1.png | Bin 0 -> 2784 bytes frontend/web/files/pf-semena_2.png | Bin 0 -> 2734 bytes frontend/web/files/pf-semena_3.png | Bin 0 -> 2143 bytes frontend/web/files/pf1-finobzor.png | Bin 0 -> 10015 bytes frontend/web/files/rw-ExtremStyle_ua.jpg | Bin 0 -> 13319 bytes frontend/web/files/rw-UkrAvtoDor_gov_ua.jpg | Bin 0 -> 9427 bytes frontend/web/files/srv1-cpa.png | Bin 0 -> 7334 bytes frontend/web/files/srv1-cpc.png | Bin 0 -> 5832 bytes frontend/web/files/srv1-kontekstnaya-reklama.png | Bin 0 -> 5838 bytes frontend/web/files/srv1-seo.png | Bin 0 -> 4495 bytes frontend/web/files/srv2-email-marketing.png | Bin 0 -> 5065 bytes frontend/web/files/srv2-kontent-marketing.png | Bin 0 -> 4329 bytes frontend/web/files/srv2-serm.png | Bin 0 -> 5640 bytes frontend/web/files/srv2-smm.png | Bin 0 -> 5606 bytes frontend/web/files/srv3-integratsiya.png | Bin 0 -> 7192 bytes frontend/web/files/srv3-redizayn.png | Bin 0 -> 5793 bytes frontend/web/files/srv3-sozdaniye-saytov.png | Bin 0 -> 6090 bytes frontend/web/files/srv4-nastroyka-analitiki.png | Bin 0 -> 5327 bytes frontend/web/files/srv4-segmentatsiya.png | Bin 0 -> 6099 bytes frontend/web/files/srv4-yuzabiliti.png | Bin 0 -> 6195 bytes frontend/web/files/team/beliy.jpg | Bin 0 -> 30699 bytes frontend/web/files/team/beliy_1.jpg | Bin 0 -> 30699 bytes frontend/web/files/team/marek.jpg | Bin 0 -> 36180 bytes frontend/web/files/team/zozulya.jpg | Bin 0 -> 32279 bytes frontend/web/files/team/zozulya_1.jpg | Bin 0 -> 31433 bytes frontend/web/files/team/zozulya_2.jpg | Bin 0 -> 45286 bytes frontend/web/files/team/zozulya_3.jpg | Bin 0 -> 31433 bytes frontend/web/files/tm1-vyacheslav-mizharev.jpg | Bin 0 -> 12850 bytes frontend/web/files/tm2-andrey-belyy.jpg | Bin 0 -> 10898 bytes frontend/web/files/tm3-dmitriy.jpg | Bin 0 -> 15040 bytes frontend/web/files/tm4-irina.jpg | Bin 0 -> 15209 bytes frontend/web/files/tm5-anton-zozulya.jpg | Bin 0 -> 13625 bytes frontend/web/images/b-audit-bg.jpg | Bin 0 -> 342003 bytes frontend/web/images/b-completed-bg.jpg | Bin 0 -> 109057 bytes frontend/web/images/b-portfolio-arrow.png | Bin 0 -> 1083 bytes frontend/web/images/b-portfolio-arrow_2.png | Bin 0 -> 1514 bytes frontend/web/images/b-quality-client.png | Bin 0 -> 1893 bytes frontend/web/images/b-quality-list.jpg | Bin 0 -> 1340 bytes frontend/web/images/b-reviews-arrow.png | Bin 0 -> 277 bytes frontend/web/images/b-reviews-skit.png | Bin 0 -> 380 bytes frontend/web/images/b-team-ico.png | Bin 0 -> 5133 bytes frontend/web/images/bg.jpg | Bin 0 -> 174324 bytes frontend/web/images/bg_contacts.jpg | Bin 0 -> 38915 bytes frontend/web/images/bg_contacts2.jpg | Bin 0 -> 55045 bytes frontend/web/images/bg_team-shadow.png | Bin 0 -> 2484 bytes frontend/web/images/bg_team-tv.png | Bin 0 -> 10577 bytes frontend/web/images/bg_team.jpg | Bin 0 -> 37004 bytes frontend/web/images/bg_team2.jpg | Bin 0 -> 64912 bytes frontend/web/images/bg_team3.jpg | Bin 0 -> 35726 bytes frontend/web/images/blog-ico.jpg | Bin 0 -> 2743 bytes frontend/web/images/censor_net_ua.png | Bin 0 -> 45891 bytes frontend/web/images/circle-line.png | Bin 0 -> 5425 bytes frontend/web/images/company-ico-1.png | Bin 0 -> 513 bytes frontend/web/images/company-ico-2.png | Bin 0 -> 1706 bytes frontend/web/images/company-ico-3.png | Bin 0 -> 1242 bytes frontend/web/images/contact-ico.png | Bin 0 -> 1200 bytes frontend/web/images/contact-ico2.png | Bin 0 -> 2777 bytes frontend/web/images/dialog-close.png | Bin 0 -> 1119 bytes frontend/web/images/f_1.png | Bin 0 -> 14045 bytes frontend/web/images/f_10.png | Bin 0 -> 5555 bytes frontend/web/images/f_11.png | Bin 0 -> 4918 bytes frontend/web/images/f_12.png | Bin 0 -> 6299 bytes frontend/web/images/f_13.png | Bin 0 -> 3868 bytes frontend/web/images/f_14.png | Bin 0 -> 5004 bytes frontend/web/images/f_15.png | Bin 0 -> 3802 bytes frontend/web/images/f_2.jpg | Bin 0 -> 122270 bytes frontend/web/images/f_3.jpg | Bin 0 -> 3748 bytes frontend/web/images/f_4.png | Bin 0 -> 4803 bytes frontend/web/images/f_5.png | Bin 0 -> 3711 bytes frontend/web/images/f_6.png | Bin 0 -> 7181 bytes frontend/web/images/f_7.png | Bin 0 -> 4942 bytes frontend/web/images/f_8.png | Bin 0 -> 4818 bytes frontend/web/images/f_9.png | Bin 0 -> 9761 bytes frontend/web/images/form-cont-arrow.jpg | Bin 0 -> 1374 bytes frontend/web/images/fotka.jpg | Bin 0 -> 78322 bytes frontend/web/images/foto-1.jpg | Bin 0 -> 33941 bytes frontend/web/images/foto-2.jpg | Bin 0 -> 31433 bytes frontend/web/images/graph-ico-1.jpg | Bin 0 -> 1825 bytes frontend/web/images/graph-ico-2.jpg | Bin 0 -> 2895 bytes frontend/web/images/graph-ico-3.jpg | Bin 0 -> 3165 bytes frontend/web/images/graph-ico-4.jpg | Bin 0 -> 1493 bytes frontend/web/images/graph-ico-5.jpg | Bin 0 -> 1487 bytes frontend/web/images/ico-mail.png | Bin 0 -> 394 bytes frontend/web/images/ico-phone.png | Bin 0 -> 440 bytes frontend/web/images/ico-skype.png | Bin 0 -> 540 bytes frontend/web/images/ico_adress.png | Bin 0 -> 547 bytes frontend/web/images/ico_team_1.jpg | Bin 0 -> 3651 bytes frontend/web/images/ico_team_2.jpg | Bin 0 -> 4000 bytes frontend/web/images/ico_team_3.jpg | Bin 0 -> 4015 bytes frontend/web/images/ico_team_4.jpg | Bin 0 -> 3705 bytes frontend/web/images/icons.png | Bin 0 -> 75547 bytes frontend/web/images/line_team.png | Bin 0 -> 462 bytes frontend/web/images/logo.png | Bin 0 -> 2515 bytes frontend/web/images/logo_2.png | Bin 0 -> 839 bytes frontend/web/images/mail-cont.jpg | Bin 0 -> 1577 bytes frontend/web/images/mapa_shadow.png | Bin 0 -> 230 bytes frontend/web/images/mark_contacts.png | Bin 0 -> 729 bytes frontend/web/images/monitor.png | Bin 0 -> 63490 bytes frontend/web/images/photo_andrey_240x315px.jpg | Bin 0 -> 30699 bytes frontend/web/images/portfolio.png | Bin 0 -> 486 bytes frontend/web/images/portfolio_1.png | Bin 0 -> 3655 bytes frontend/web/images/portfolio_2.png | Bin 0 -> 4079 bytes frontend/web/images/portfolio_3.png | Bin 0 -> 3641 bytes frontend/web/images/rw-ExtremStyle_ua.png | Bin 0 -> 62176 bytes frontend/web/images/rw-UkrAvtoDor_gov_ua.png | Bin 0 -> 49231 bytes frontend/web/images/service.png | Bin 0 -> 436 bytes frontend/web/images/service_2.png | Bin 0 -> 3565 bytes frontend/web/images/service_3.png | Bin 0 -> 2585 bytes frontend/web/images/service_4.png | Bin 0 -> 1783 bytes frontend/web/images/service_5.png | Bin 0 -> 1836 bytes frontend/web/images/services/analitic/analitic.jpg | Bin 0 -> 24891 bytes frontend/web/images/services/analitic/analitic.png | Bin 0 -> 5630 bytes frontend/web/images/services/analitic/analitic_f_1.jpg | Bin 0 -> 2471 bytes frontend/web/images/services/analitic/analitic_f_1.png | Bin 0 -> 2125 bytes frontend/web/images/services/analitic/analitic_f_2.jpg | Bin 0 -> 4659 bytes frontend/web/images/services/analitic/analitic_f_2.png | Bin 0 -> 1646 bytes frontend/web/images/services/analitic/analitic_f_3.jpg | Bin 0 -> 2330 bytes frontend/web/images/services/analitic/analitic_f_3.png | Bin 0 -> 1099 bytes frontend/web/images/services/analitic/analitic_f_4.jpg | Bin 0 -> 3815 bytes frontend/web/images/services/analitic/anton.png | Bin 0 -> 50095 bytes frontend/web/images/services/analitic/b-audit-bg_smm.jpg | Bin 0 -> 354139 bytes frontend/web/images/services/analitic/line-bg-services.png | Bin 0 -> 8366 bytes frontend/web/images/services/analitic/line_smm.jpg | Bin 0 -> 1446 bytes frontend/web/images/services/analitic/reason.jpg | Bin 0 -> 47480 bytes frontend/web/images/services/analitic/road-analitic_f_1.jpg | Bin 0 -> 5755 bytes frontend/web/images/services/analitic/road-analitic_f_2.jpg | Bin 0 -> 5779 bytes frontend/web/images/services/analitic/road-analitic_f_3.jpg | Bin 0 -> 4787 bytes frontend/web/images/services/analitic/road-analitic_f_4.jpg | Bin 0 -> 5381 bytes frontend/web/images/services/analitic/road-analitic_f_5.jpg | Bin 0 -> 4603 bytes frontend/web/images/services/analitic/road-analitic_f_6.jpg | Bin 0 -> 4924 bytes frontend/web/images/services/analitic/road-segmnt.jpg | Bin 0 -> 12010 bytes frontend/web/images/services/analitic/road.jpg | Bin 0 -> 18429 bytes frontend/web/images/services/analitic/seed.jpg | Bin 0 -> 4304 bytes frontend/web/images/services/analitic/seti_arrow.jpg | Bin 0 -> 5025 bytes frontend/web/images/services/analitic/slide-1.jpg | Bin 0 -> 14714 bytes frontend/web/images/services/analitic/slide-2.png | Bin 0 -> 22920 bytes frontend/web/images/services/analitic/slide-3.png | Bin 0 -> 23103 bytes frontend/web/images/services/analitic/smm_arrow.jpg | Bin 0 -> 4292 bytes frontend/web/images/services/analitic/smm_f_2.jpg | Bin 0 -> 2330 bytes frontend/web/images/services/analitic/soc_f_1.jpg | Bin 0 -> 3630 bytes frontend/web/images/services/analitic/soc_f_2.jpg | Bin 0 -> 3972 bytes frontend/web/images/services/analitic/soc_f_3.jpg | Bin 0 -> 4369 bytes frontend/web/images/services/analitic/soc_f_4.jpg | Bin 0 -> 4099 bytes frontend/web/images/services/analitic/soc_f_5.jpg | Bin 0 -> 3559 bytes frontend/web/images/services/analitic/soc_f_6.jpg | Bin 0 -> 4225 bytes frontend/web/images/services/analitic/soc_f_7.jpg | Bin 0 -> 4108 bytes frontend/web/images/services/analitic/team-segmnt.jpg | Bin 0 -> 10832 bytes frontend/web/images/services/analitic/why_analitic_f_1.jpg | Bin 0 -> 2682 bytes frontend/web/images/services/analitic/why_analitic_f_11.jpg | Bin 0 -> 2687 bytes frontend/web/images/services/analitic/why_analitic_f_12.jpg | Bin 0 -> 2583 bytes frontend/web/images/services/analitic/why_analitic_f_13.jpg | Bin 0 -> 2700 bytes frontend/web/images/services/analitic/why_analitic_f_2.jpg | Bin 0 -> 2646 bytes frontend/web/images/services/analitic/why_analitic_f_3.jpg | Bin 0 -> 2165 bytes frontend/web/images/services/analitic/why_analitic_f_4.jpg | Bin 0 -> 2747 bytes frontend/web/images/services/analitic/why_analitic_f_5.jpg | Bin 0 -> 2328 bytes frontend/web/images/services/analitic/why_analitic_f_6.jpg | Bin 0 -> 2236 bytes frontend/web/images/services/analitic/why_analitic_f_7.jpg | Bin 0 -> 2828 bytes frontend/web/images/services/analitic/why_analitic_f_8.jpg | Bin 0 -> 2742 bytes frontend/web/images/services/analitic/why_analitic_f_9.jpg | Bin 0 -> 2747 bytes frontend/web/images/services/content/b-audit-bg_smm.jpg | Bin 0 -> 354139 bytes frontend/web/images/services/content/burse_f_1.jpg | Bin 0 -> 5659 bytes frontend/web/images/services/content/burse_f_2.jpg | Bin 0 -> 4594 bytes frontend/web/images/services/content/burse_f_3.jpg | Bin 0 -> 3487 bytes frontend/web/images/services/content/content-circle-1-2.jpg | Bin 0 -> 8535 bytes frontend/web/images/services/content/content-circle-1.jpg | Bin 0 -> 8257 bytes frontend/web/images/services/content/content-circle-2-2.jpg | Bin 0 -> 9757 bytes frontend/web/images/services/content/content-circle-2.jpg | Bin 0 -> 8228 bytes frontend/web/images/services/content/content-circle-3-2.jpg | Bin 0 -> 8837 bytes frontend/web/images/services/content/content-circle-3.jpg | Bin 0 -> 8256 bytes frontend/web/images/services/content/content.png | Bin 0 -> 4191 bytes frontend/web/images/services/content/content_f_1.jpg | Bin 0 -> 2616 bytes frontend/web/images/services/content/content_f_2.jpg | Bin 0 -> 2782 bytes frontend/web/images/services/content/content_f_3.jpg | Bin 0 -> 3122 bytes frontend/web/images/services/content/content_f_4.jpg | Bin 0 -> 3136 bytes frontend/web/images/services/content/line-bg-services.png | Bin 0 -> 8366 bytes frontend/web/images/services/content/line_smm.jpg | Bin 0 -> 1446 bytes frontend/web/images/services/content/reason.jpg | Bin 0 -> 47480 bytes frontend/web/images/services/content/road-analitic_f_1.jpg | Bin 0 -> 5755 bytes frontend/web/images/services/content/road-analitic_f_2.jpg | Bin 0 -> 5779 bytes frontend/web/images/services/content/road-analitic_f_3.jpg | Bin 0 -> 4787 bytes frontend/web/images/services/content/road-analitic_f_4.jpg | Bin 0 -> 5381 bytes frontend/web/images/services/content/road-analitic_f_5.jpg | Bin 0 -> 4603 bytes frontend/web/images/services/content/road-analitic_f_6.jpg | Bin 0 -> 4924 bytes frontend/web/images/services/content/road-content.jpg | Bin 0 -> 12010 bytes frontend/web/images/services/content/road-cpa_f_1.jpg | Bin 0 -> 7413 bytes frontend/web/images/services/content/road-cpa_f_2.jpg | Bin 0 -> 6099 bytes frontend/web/images/services/content/road-cpa_f_3.jpg | Bin 0 -> 8145 bytes frontend/web/images/services/content/road-cpa_f_4.jpg | Bin 0 -> 4762 bytes frontend/web/images/services/content/road-cpa_f_5.jpg | Bin 0 -> 5418 bytes frontend/web/images/services/content/road-cpa_f_6.jpg | Bin 0 -> 5642 bytes frontend/web/images/services/content/road-cpa_f_7.jpg | Bin 0 -> 6001 bytes frontend/web/images/services/content/road-cpa_f_8.jpg | Bin 0 -> 4910 bytes frontend/web/images/services/content/road-webcreat_f_1.jpg | Bin 0 -> 6672 bytes frontend/web/images/services/content/road-webcreat_f_2.jpg | Bin 0 -> 4432 bytes frontend/web/images/services/content/road-webcreat_f_3.jpg | Bin 0 -> 4584 bytes frontend/web/images/services/content/road-webcreat_f_4.jpg | Bin 0 -> 6118 bytes frontend/web/images/services/content/road-webcreat_f_5.jpg | Bin 0 -> 4591 bytes frontend/web/images/services/content/road-webcreat_f_6.jpg | Bin 0 -> 4472 bytes frontend/web/images/services/content/road-webcreat_f_7.jpg | Bin 0 -> 3593 bytes frontend/web/images/services/content/road.jpg | Bin 0 -> 18429 bytes frontend/web/images/services/content/seed.jpg | Bin 0 -> 4304 bytes frontend/web/images/services/content/seo_f_1.png | Bin 0 -> 1147 bytes frontend/web/images/services/content/seo_f_2.png | Bin 0 -> 1107 bytes frontend/web/images/services/content/seo_f_3.png | Bin 0 -> 814 bytes frontend/web/images/services/content/seti-content.jpg | Bin 0 -> 24555 bytes frontend/web/images/services/content/seti_arrow.jpg | Bin 0 -> 5025 bytes frontend/web/images/services/content/slide-1.jpg | Bin 0 -> 14714 bytes frontend/web/images/services/content/slide-2.png | Bin 0 -> 22920 bytes frontend/web/images/services/content/slide-3.png | Bin 0 -> 23103 bytes frontend/web/images/services/content/smm_arrow.jpg | Bin 0 -> 4292 bytes frontend/web/images/services/content/smm_f_2.jpg | Bin 0 -> 2330 bytes frontend/web/images/services/content/soc_f_1.jpg | Bin 0 -> 3630 bytes frontend/web/images/services/content/soc_f_2.jpg | Bin 0 -> 3972 bytes frontend/web/images/services/content/soc_f_3.jpg | Bin 0 -> 4369 bytes frontend/web/images/services/content/soc_f_4.jpg | Bin 0 -> 4099 bytes frontend/web/images/services/content/soc_f_5.jpg | Bin 0 -> 3559 bytes frontend/web/images/services/content/soc_f_6.jpg | Bin 0 -> 4225 bytes frontend/web/images/services/content/soc_f_7.jpg | Bin 0 -> 4108 bytes frontend/web/images/services/content/team-webcreat.jpg | Bin 0 -> 13850 bytes frontend/web/images/services/content/we-work-1.jpg | Bin 0 -> 2979 bytes frontend/web/images/services/content/we-work-10.jpg | Bin 0 -> 2273 bytes frontend/web/images/services/content/we-work-11.jpg | Bin 0 -> 3078 bytes frontend/web/images/services/content/we-work-2.jpg | Bin 0 -> 2608 bytes frontend/web/images/services/content/we-work-3.jpg | Bin 0 -> 3274 bytes frontend/web/images/services/content/we-work-4.jpg | Bin 0 -> 3102 bytes frontend/web/images/services/content/we-work-5.jpg | Bin 0 -> 3228 bytes frontend/web/images/services/content/we-work-6.jpg | Bin 0 -> 3271 bytes frontend/web/images/services/content/we-work-7.jpg | Bin 0 -> 2596 bytes frontend/web/images/services/content/we-work-8.jpg | Bin 0 -> 3605 bytes frontend/web/images/services/content/we-work-9.jpg | Bin 0 -> 3092 bytes frontend/web/images/services/content/why_content_f_1.jpg | Bin 0 -> 3141 bytes frontend/web/images/services/content/why_content_f_10.jpg | Bin 0 -> 4177 bytes frontend/web/images/services/content/why_content_f_11.jpg | Bin 0 -> 5131 bytes frontend/web/images/services/content/why_content_f_12.jpg | Bin 0 -> 5416 bytes frontend/web/images/services/content/why_content_f_13.jpg | Bin 0 -> 6217 bytes frontend/web/images/services/content/why_content_f_2.jpg | Bin 0 -> 3398 bytes frontend/web/images/services/content/why_content_f_3.jpg | Bin 0 -> 3695 bytes frontend/web/images/services/content/why_content_f_4.jpg | Bin 0 -> 3671 bytes frontend/web/images/services/content/why_content_f_5.jpg | Bin 0 -> 3550 bytes frontend/web/images/services/content/why_content_f_6.jpg | Bin 0 -> 3674 bytes frontend/web/images/services/content/why_content_f_7.jpg | Bin 0 -> 5000 bytes frontend/web/images/services/content/why_content_f_8.jpg | Bin 0 -> 4341 bytes frontend/web/images/services/content/why_content_f_9.jpg | Bin 0 -> 4048 bytes frontend/web/images/services/content/yulia.png | Bin 0 -> 69056 bytes frontend/web/images/services/context/b-audit-bg_smm.jpg | Bin 0 -> 354139 bytes frontend/web/images/services/context/context-seed_f_1.png | Bin 0 -> 1131 bytes frontend/web/images/services/context/context-seed_f_2.png | Bin 0 -> 662 bytes frontend/web/images/services/context/context-seed_f_3.png | Bin 0 -> 1148 bytes frontend/web/images/services/context/context-team.jpg | Bin 0 -> 14485 bytes frontend/web/images/services/context/context.png | Bin 0 -> 8984 bytes frontend/web/images/services/context/context_f_1.jpg | Bin 0 -> 2677 bytes frontend/web/images/services/context/context_f_2.jpg | Bin 0 -> 2616 bytes frontend/web/images/services/context/context_f_3.jpg | Bin 0 -> 2691 bytes frontend/web/images/services/context/context_f_4.jpg | Bin 0 -> 5169 bytes frontend/web/images/services/context/line-bg-services.png | Bin 0 -> 8366 bytes frontend/web/images/services/context/line_smm.jpg | Bin 0 -> 1446 bytes frontend/web/images/services/context/reason.jpg | Bin 0 -> 47480 bytes frontend/web/images/services/context/road-content.jpg | Bin 0 -> 13798 bytes frontend/web/images/services/context/road-context_f_1.jpg | Bin 0 -> 6860 bytes frontend/web/images/services/context/road-context_f_2.jpg | Bin 0 -> 5755 bytes frontend/web/images/services/context/road-context_f_3.jpg | Bin 0 -> 4787 bytes frontend/web/images/services/context/road-context_f_4.jpg | Bin 0 -> 5549 bytes frontend/web/images/services/context/road-context_f_5.jpg | Bin 0 -> 5229 bytes frontend/web/images/services/context/road-context_f_6.jpg | Bin 0 -> 6190 bytes frontend/web/images/services/context/road-context_f_7.jpg | Bin 0 -> 4900 bytes frontend/web/images/services/context/road-context_f_8.png | Bin 0 -> 1820 bytes frontend/web/images/services/context/seed.jpg | Bin 0 -> 4304 bytes frontend/web/images/services/context/seti-s.jpg | Bin 0 -> 24891 bytes frontend/web/images/services/context/seti_arrow.jpg | Bin 0 -> 5025 bytes frontend/web/images/services/context/slide-1.jpg | Bin 0 -> 14714 bytes frontend/web/images/services/context/slide-2.png | Bin 0 -> 22920 bytes frontend/web/images/services/context/slide-3.png | Bin 0 -> 23103 bytes frontend/web/images/services/context/smm_arrow.jpg | Bin 0 -> 4292 bytes frontend/web/images/services/context/soc_f_1.jpg | Bin 0 -> 3630 bytes frontend/web/images/services/context/soc_f_2.jpg | Bin 0 -> 3972 bytes frontend/web/images/services/context/soc_f_3.jpg | Bin 0 -> 4369 bytes frontend/web/images/services/context/soc_f_4.jpg | Bin 0 -> 4099 bytes frontend/web/images/services/context/soc_f_5.jpg | Bin 0 -> 3559 bytes frontend/web/images/services/context/soc_f_6.jpg | Bin 0 -> 4225 bytes frontend/web/images/services/context/soc_f_7.jpg | Bin 0 -> 4108 bytes frontend/web/images/services/context/sveta.png | Bin 0 -> 78321 bytes frontend/web/images/services/context/why_context_f_1.jpg | Bin 0 -> 4749 bytes frontend/web/images/services/context/why_context_f_10.jpg | Bin 0 -> 4997 bytes frontend/web/images/services/context/why_context_f_11.jpg | Bin 0 -> 4749 bytes frontend/web/images/services/context/why_context_f_12.jpg | Bin 0 -> 4334 bytes frontend/web/images/services/context/why_context_f_13.jpg | Bin 0 -> 4854 bytes frontend/web/images/services/context/why_context_f_14.jpg | Bin 0 -> 5012 bytes frontend/web/images/services/context/why_context_f_15.jpg | Bin 0 -> 5502 bytes frontend/web/images/services/context/why_context_f_2.jpg | Bin 0 -> 5121 bytes frontend/web/images/services/context/why_context_f_3.jpg | Bin 0 -> 3829 bytes frontend/web/images/services/context/why_context_f_4.jpg | Bin 0 -> 5272 bytes frontend/web/images/services/context/why_context_f_5.jpg | Bin 0 -> 5238 bytes frontend/web/images/services/context/why_context_f_6.jpg | Bin 0 -> 4924 bytes frontend/web/images/services/context/why_context_f_7.jpg | Bin 0 -> 4052 bytes frontend/web/images/services/context/why_context_f_8.jpg | Bin 0 -> 4854 bytes frontend/web/images/services/context/why_context_f_9.jpg | Bin 0 -> 5513 bytes frontend/web/images/services/context/Íîâûé òåêñòîâûé äîêóìåíò.txt | 1 + frontend/web/images/services/cpa/b-audit-bg_smm.jpg | Bin 0 -> 354139 bytes frontend/web/images/services/cpa/burse_f_1.jpg | Bin 0 -> 5659 bytes frontend/web/images/services/cpa/burse_f_2.jpg | Bin 0 -> 4594 bytes frontend/web/images/services/cpa/burse_f_3.jpg | Bin 0 -> 3487 bytes frontend/web/images/services/cpa/cpa.png | Bin 0 -> 4281 bytes frontend/web/images/services/cpa/cpa_f_1.jpg | Bin 0 -> 4547 bytes frontend/web/images/services/cpa/cpa_f_2.jpg | Bin 0 -> 2616 bytes frontend/web/images/services/cpa/cpa_f_3.jpg | Bin 0 -> 2495 bytes frontend/web/images/services/cpa/cpa_f_4.jpg | Bin 0 -> 3482 bytes frontend/web/images/services/cpa/line-bg-services.png | Bin 0 -> 8366 bytes frontend/web/images/services/cpa/line_smm.jpg | Bin 0 -> 1446 bytes frontend/web/images/services/cpa/reason.jpg | Bin 0 -> 47480 bytes frontend/web/images/services/cpa/road-analitic_f_1.jpg | Bin 0 -> 5755 bytes frontend/web/images/services/cpa/road-analitic_f_2.jpg | Bin 0 -> 5779 bytes frontend/web/images/services/cpa/road-analitic_f_3.jpg | Bin 0 -> 4787 bytes frontend/web/images/services/cpa/road-analitic_f_4.jpg | Bin 0 -> 5381 bytes frontend/web/images/services/cpa/road-analitic_f_5.jpg | Bin 0 -> 4603 bytes frontend/web/images/services/cpa/road-analitic_f_6.jpg | Bin 0 -> 4924 bytes frontend/web/images/services/cpa/road-cpa_f_1.jpg | Bin 0 -> 7413 bytes frontend/web/images/services/cpa/road-cpa_f_2.jpg | Bin 0 -> 6099 bytes frontend/web/images/services/cpa/road-cpa_f_3.jpg | Bin 0 -> 8145 bytes frontend/web/images/services/cpa/road-cpa_f_4.jpg | Bin 0 -> 4762 bytes frontend/web/images/services/cpa/road-cpa_f_5.jpg | Bin 0 -> 5418 bytes frontend/web/images/services/cpa/road-cpa_f_6.jpg | Bin 0 -> 5642 bytes frontend/web/images/services/cpa/road-cpa_f_7.jpg | Bin 0 -> 6001 bytes frontend/web/images/services/cpa/road-cpa_f_8.jpg | Bin 0 -> 4910 bytes frontend/web/images/services/cpa/road-seo.jpg | Bin 0 -> 14775 bytes frontend/web/images/services/cpa/road-webcreat_f_1.jpg | Bin 0 -> 6672 bytes frontend/web/images/services/cpa/road-webcreat_f_2.jpg | Bin 0 -> 4432 bytes frontend/web/images/services/cpa/road-webcreat_f_3.jpg | Bin 0 -> 4584 bytes frontend/web/images/services/cpa/road-webcreat_f_4.jpg | Bin 0 -> 6118 bytes frontend/web/images/services/cpa/road-webcreat_f_5.jpg | Bin 0 -> 4591 bytes frontend/web/images/services/cpa/road-webcreat_f_6.jpg | Bin 0 -> 4472 bytes frontend/web/images/services/cpa/road-webcreat_f_7.jpg | Bin 0 -> 3593 bytes frontend/web/images/services/cpa/road.jpg | Bin 0 -> 18429 bytes frontend/web/images/services/cpa/seed.jpg | Bin 0 -> 4304 bytes frontend/web/images/services/cpa/seo_f_1.png | Bin 0 -> 1147 bytes frontend/web/images/services/cpa/seo_f_2.png | Bin 0 -> 1107 bytes frontend/web/images/services/cpa/seo_f_3.png | Bin 0 -> 814 bytes frontend/web/images/services/cpa/seti-cpa.jpg | Bin 0 -> 25194 bytes frontend/web/images/services/cpa/seti_arrow.jpg | Bin 0 -> 5025 bytes frontend/web/images/services/cpa/slide-1.jpg | Bin 0 -> 14714 bytes frontend/web/images/services/cpa/slide-2.png | Bin 0 -> 22920 bytes frontend/web/images/services/cpa/slide-3.png | Bin 0 -> 23103 bytes frontend/web/images/services/cpa/smm_arrow.jpg | Bin 0 -> 4292 bytes frontend/web/images/services/cpa/smm_f_2.jpg | Bin 0 -> 2330 bytes frontend/web/images/services/cpa/soc_f_1.jpg | Bin 0 -> 3630 bytes frontend/web/images/services/cpa/soc_f_2.jpg | Bin 0 -> 3972 bytes frontend/web/images/services/cpa/soc_f_3.jpg | Bin 0 -> 4369 bytes frontend/web/images/services/cpa/soc_f_4.jpg | Bin 0 -> 4099 bytes frontend/web/images/services/cpa/soc_f_5.jpg | Bin 0 -> 3559 bytes frontend/web/images/services/cpa/soc_f_6.jpg | Bin 0 -> 4225 bytes frontend/web/images/services/cpa/soc_f_7.jpg | Bin 0 -> 4108 bytes frontend/web/images/services/cpa/sveta.png | Bin 0 -> 78321 bytes frontend/web/images/services/cpa/team-webcreat.jpg | Bin 0 -> 13850 bytes frontend/web/images/services/cpa/why_cpa_f_1.jpg | Bin 0 -> 5243 bytes frontend/web/images/services/cpa/why_cpa_f_11.jpg | Bin 0 -> 4382 bytes frontend/web/images/services/cpa/why_cpa_f_2.jpg | Bin 0 -> 4098 bytes frontend/web/images/services/cpa/why_cpa_f_3.jpg | Bin 0 -> 4382 bytes frontend/web/images/services/cpa/why_cpa_f_4.jpg | Bin 0 -> 4764 bytes frontend/web/images/services/cpa/why_cpa_f_5.jpg | Bin 0 -> 4962 bytes frontend/web/images/services/cpa/why_cpa_f_6.jpg | Bin 0 -> 4913 bytes frontend/web/images/services/cpa/why_cpa_f_7.jpg | Bin 0 -> 4499 bytes frontend/web/images/services/cpa/why_cpa_f_8.jpg | Bin 0 -> 3922 bytes frontend/web/images/services/cpc/b-audit-bg_smm.jpg | Bin 0 -> 354139 bytes frontend/web/images/services/cpc/context-team.jpg | Bin 0 -> 14485 bytes frontend/web/images/services/cpc/cpc-seed_f_1.png | Bin 0 -> 1049 bytes frontend/web/images/services/cpc/cpc-seed_f_2.png | Bin 0 -> 698 bytes frontend/web/images/services/cpc/cpc-seed_f_3.png | Bin 0 -> 1137 bytes frontend/web/images/services/cpc/cpc.png | Bin 0 -> 4229 bytes frontend/web/images/services/cpc/cpc_f_1.jpg | Bin 0 -> 3428 bytes frontend/web/images/services/cpc/cpc_f_2.jpg | Bin 0 -> 2939 bytes frontend/web/images/services/cpc/cpc_f_3.jpg | Bin 0 -> 3903 bytes frontend/web/images/services/cpc/cpc_f_4.jpg | Bin 0 -> 3525 bytes frontend/web/images/services/cpc/line-bg-services.png | Bin 0 -> 8366 bytes frontend/web/images/services/cpc/line_smm.jpg | Bin 0 -> 1446 bytes frontend/web/images/services/cpc/reason.jpg | Bin 0 -> 47480 bytes frontend/web/images/services/cpc/road-content.jpg | Bin 0 -> 13798 bytes frontend/web/images/services/cpc/road-cpc_f_1.jpg | Bin 0 -> 7413 bytes frontend/web/images/services/cpc/road-cpc_f_2.jpg | Bin 0 -> 6379 bytes frontend/web/images/services/cpc/road-cpc_f_3.jpg | Bin 0 -> 8145 bytes frontend/web/images/services/cpc/road-cpc_f_4.jpg | Bin 0 -> 4674 bytes frontend/web/images/services/cpc/road-cpc_f_5.jpg | Bin 0 -> 6403 bytes frontend/web/images/services/cpc/road-cpc_f_6.jpg | Bin 0 -> 6785 bytes frontend/web/images/services/cpc/road-cpc_f_7.jpg | Bin 0 -> 5709 bytes frontend/web/images/services/cpc/road-cpc_f_8.png | Bin 0 -> 3931 bytes frontend/web/images/services/cpc/seed.jpg | Bin 0 -> 4304 bytes frontend/web/images/services/cpc/seti-cpc.jpg | Bin 0 -> 24707 bytes frontend/web/images/services/cpc/seti_arrow.jpg | Bin 0 -> 5025 bytes frontend/web/images/services/cpc/slide-1.jpg | Bin 0 -> 14714 bytes frontend/web/images/services/cpc/slide-2.png | Bin 0 -> 22920 bytes frontend/web/images/services/cpc/slide-3.png | Bin 0 -> 23103 bytes frontend/web/images/services/cpc/smm_arrow.jpg | Bin 0 -> 4292 bytes frontend/web/images/services/cpc/soc_f_1.jpg | Bin 0 -> 3630 bytes frontend/web/images/services/cpc/soc_f_2.jpg | Bin 0 -> 3972 bytes frontend/web/images/services/cpc/soc_f_3.jpg | Bin 0 -> 4369 bytes frontend/web/images/services/cpc/soc_f_4.jpg | Bin 0 -> 4099 bytes frontend/web/images/services/cpc/soc_f_5.jpg | Bin 0 -> 3559 bytes frontend/web/images/services/cpc/soc_f_6.jpg | Bin 0 -> 4225 bytes frontend/web/images/services/cpc/soc_f_7.jpg | Bin 0 -> 4108 bytes frontend/web/images/services/cpc/why_cpc_f_1.jpg | Bin 0 -> 2986 bytes frontend/web/images/services/cpc/why_cpc_f_10.jpg | Bin 0 -> 5302 bytes frontend/web/images/services/cpc/why_cpc_f_2.jpg | Bin 0 -> 4489 bytes frontend/web/images/services/cpc/why_cpc_f_3.jpg | Bin 0 -> 4170 bytes frontend/web/images/services/cpc/why_cpc_f_4.jpg | Bin 0 -> 3642 bytes frontend/web/images/services/cpc/why_cpc_f_5.jpg | Bin 0 -> 5281 bytes frontend/web/images/services/cpc/why_cpc_f_6.jpg | Bin 0 -> 3642 bytes frontend/web/images/services/cpc/why_cpc_f_7.jpg | Bin 0 -> 4032 bytes frontend/web/images/services/cpc/why_cpc_f_8.jpg | Bin 0 -> 5025 bytes frontend/web/images/services/cpc/why_cpc_f_9.jpg | Bin 0 -> 4198 bytes frontend/web/images/services/cpc/yulia.png | Bin 0 -> 69056 bytes frontend/web/images/services/cpc/Íîâûé òåêñòîâûé äîêóìåíò.txt | 1 + frontend/web/images/services/design/analitic_f_1.jpg | Bin 0 -> 2471 bytes frontend/web/images/services/design/analitic_f_2.jpg | Bin 0 -> 4659 bytes frontend/web/images/services/design/analitic_f_3.jpg | Bin 0 -> 2330 bytes frontend/web/images/services/design/analitic_f_4.jpg | Bin 0 -> 3815 bytes frontend/web/images/services/design/andrey.png | Bin 0 -> 204312 bytes frontend/web/images/services/design/b-audit-bg_smm.jpg | Bin 0 -> 354139 bytes frontend/web/images/services/design/design.png | Bin 0 -> 5890 bytes frontend/web/images/services/design/design_f_1.jpg | Bin 0 -> 4094 bytes frontend/web/images/services/design/design_f_1.png | Bin 0 -> 3132 bytes frontend/web/images/services/design/design_f_2.jpg | Bin 0 -> 2533 bytes frontend/web/images/services/design/design_f_2.png | Bin 0 -> 2085 bytes frontend/web/images/services/design/design_f_3.jpg | Bin 0 -> 3188 bytes frontend/web/images/services/design/design_f_3.png | Bin 0 -> 2779 bytes frontend/web/images/services/design/design_f_4.jpg | Bin 0 -> 3580 bytes frontend/web/images/services/design/line-bg-services.png | Bin 0 -> 8366 bytes frontend/web/images/services/design/line_smm.jpg | Bin 0 -> 1446 bytes frontend/web/images/services/design/reason.jpg | Bin 0 -> 47480 bytes frontend/web/images/services/design/road-design_f_1.jpg | Bin 0 -> 6570 bytes frontend/web/images/services/design/road-design_f_2.jpg | Bin 0 -> 4432 bytes frontend/web/images/services/design/road-design_f_3.jpg | Bin 0 -> 6165 bytes frontend/web/images/services/design/road-design_f_4.jpg | Bin 0 -> 4432 bytes frontend/web/images/services/design/road-design_f_5.jpg | Bin 0 -> 6020 bytes frontend/web/images/services/design/road-design_f_6.jpg | Bin 0 -> 4721 bytes frontend/web/images/services/design/road-design_f_7.jpg | Bin 0 -> 6118 bytes frontend/web/images/services/design/road-design_f_8.jpg | Bin 0 -> 4584 bytes frontend/web/images/services/design/road-segmnt.jpg | Bin 0 -> 12010 bytes frontend/web/images/services/design/road.jpg | Bin 0 -> 18429 bytes frontend/web/images/services/design/seed.jpg | Bin 0 -> 4304 bytes frontend/web/images/services/design/seti-design.jpg | Bin 0 -> 23054 bytes frontend/web/images/services/design/seti_arrow.jpg | Bin 0 -> 5025 bytes frontend/web/images/services/design/slide-1.jpg | Bin 0 -> 14714 bytes frontend/web/images/services/design/slide-2.png | Bin 0 -> 22920 bytes frontend/web/images/services/design/slide-3.png | Bin 0 -> 23103 bytes frontend/web/images/services/design/smm_arrow.jpg | Bin 0 -> 4292 bytes frontend/web/images/services/design/smm_f_2.jpg | Bin 0 -> 2330 bytes frontend/web/images/services/design/soc_f_1.jpg | Bin 0 -> 3630 bytes frontend/web/images/services/design/soc_f_2.jpg | Bin 0 -> 3972 bytes frontend/web/images/services/design/soc_f_3.jpg | Bin 0 -> 4369 bytes frontend/web/images/services/design/soc_f_4.jpg | Bin 0 -> 4099 bytes frontend/web/images/services/design/soc_f_5.jpg | Bin 0 -> 3559 bytes frontend/web/images/services/design/soc_f_6.jpg | Bin 0 -> 4225 bytes frontend/web/images/services/design/soc_f_7.jpg | Bin 0 -> 4108 bytes frontend/web/images/services/design/team-webcreat.jpg | Bin 0 -> 13850 bytes frontend/web/images/services/design/why_webdesign_f_1.jpg | Bin 0 -> 4382 bytes frontend/web/images/services/design/why_webdesign_f_2.jpg | Bin 0 -> 4079 bytes frontend/web/images/services/design/why_webdesign_f_3.jpg | Bin 0 -> 4780 bytes frontend/web/images/services/design/why_webdesign_f_4.jpg | Bin 0 -> 4933 bytes frontend/web/images/services/design/why_webdesign_f_5.jpg | Bin 0 -> 4593 bytes frontend/web/images/services/design/why_webdesign_f_6.jpg | Bin 0 -> 4245 bytes frontend/web/images/services/design/why_webdesign_f_7.jpg | Bin 0 -> 4112 bytes frontend/web/images/services/design/why_webdesign_f_8.jpg | Bin 0 -> 3339 bytes frontend/web/images/services/design/why_webdesign_f_9.jpg | Bin 0 -> 4456 bytes frontend/web/images/services/email/b-audit-bg_smm.jpg | Bin 0 -> 354139 bytes frontend/web/images/services/email/email.png | Bin 0 -> 3296 bytes frontend/web/images/services/email/line-bg-services.png | Bin 0 -> 8366 bytes frontend/web/images/services/email/line_smm.jpg | Bin 0 -> 1446 bytes frontend/web/images/services/email/reason.jpg | Bin 0 -> 47480 bytes frontend/web/images/services/email/road-email-1.jpg | Bin 0 -> 6177 bytes frontend/web/images/services/email/road-email-10.jpg | Bin 0 -> 4357 bytes frontend/web/images/services/email/road-email-11.jpg | Bin 0 -> 5020 bytes frontend/web/images/services/email/road-email-12.jpg | Bin 0 -> 5916 bytes frontend/web/images/services/email/road-email-2.jpg | Bin 0 -> 7220 bytes frontend/web/images/services/email/road-email-3.jpg | Bin 0 -> 6260 bytes frontend/web/images/services/email/road-email-4.jpg | Bin 0 -> 6750 bytes frontend/web/images/services/email/road-email-5.jpg | Bin 0 -> 4573 bytes frontend/web/images/services/email/road-email-6.jpg | Bin 0 -> 4729 bytes frontend/web/images/services/email/road-email-7.jpg | Bin 0 -> 4842 bytes frontend/web/images/services/email/road-email-8.jpg | Bin 0 -> 4371 bytes frontend/web/images/services/email/road-email-9.jpg | Bin 0 -> 5017 bytes frontend/web/images/services/email/road-email.jpg | Bin 0 -> 21272 bytes frontend/web/images/services/email/road.jpg | Bin 0 -> 18429 bytes frontend/web/images/services/email/seed_f_1.png | Bin 0 -> 967 bytes frontend/web/images/services/email/seed_f_2.png | Bin 0 -> 893 bytes frontend/web/images/services/email/seed_f_3.png | Bin 0 -> 914 bytes frontend/web/images/services/email/seti-y-2.jpg | Bin 0 -> 22046 bytes frontend/web/images/services/email/seti_arrow.jpg | Bin 0 -> 5025 bytes frontend/web/images/services/email/slide-1.jpg | Bin 0 -> 14714 bytes frontend/web/images/services/email/slide-2.png | Bin 0 -> 22920 bytes frontend/web/images/services/email/slide-3.png | Bin 0 -> 23103 bytes frontend/web/images/services/email/smm_arrow.jpg | Bin 0 -> 4292 bytes frontend/web/images/services/email/smm_f_1.jpg | Bin 0 -> 3326 bytes frontend/web/images/services/email/smm_f_2.jpg | Bin 0 -> 2616 bytes frontend/web/images/services/email/smm_f_3.jpg | Bin 0 -> 2782 bytes frontend/web/images/services/email/smm_f_4.jpg | Bin 0 -> 3122 bytes frontend/web/images/services/email/soc_f_1.jpg | Bin 0 -> 3630 bytes frontend/web/images/services/email/soc_f_2.jpg | Bin 0 -> 3972 bytes frontend/web/images/services/email/soc_f_3.jpg | Bin 0 -> 4369 bytes frontend/web/images/services/email/soc_f_4.jpg | Bin 0 -> 4099 bytes frontend/web/images/services/email/soc_f_5.jpg | Bin 0 -> 3559 bytes frontend/web/images/services/email/soc_f_6.jpg | Bin 0 -> 4225 bytes frontend/web/images/services/email/soc_f_7.jpg | Bin 0 -> 4108 bytes frontend/web/images/services/email/team.jpg | Bin 0 -> 13850 bytes frontend/web/images/services/email/why_email_f_1.jpg | Bin 0 -> 2866 bytes frontend/web/images/services/email/why_email_f_11.jpg | Bin 0 -> 2710 bytes frontend/web/images/services/email/why_email_f_12.jpg | Bin 0 -> 3129 bytes frontend/web/images/services/email/why_email_f_13.jpg | Bin 0 -> 2986 bytes frontend/web/images/services/email/why_email_f_14.jpg | Bin 0 -> 3100 bytes frontend/web/images/services/email/why_email_f_15.jpg | Bin 0 -> 2663 bytes frontend/web/images/services/email/why_email_f_2.jpg | Bin 0 -> 3516 bytes frontend/web/images/services/email/why_email_f_3.jpg | Bin 0 -> 2784 bytes frontend/web/images/services/email/why_email_f_4.jpg | Bin 0 -> 2756 bytes frontend/web/images/services/email/why_email_f_5.jpg | Bin 0 -> 2814 bytes frontend/web/images/services/email/why_email_f_6.jpg | Bin 0 -> 2502 bytes frontend/web/images/services/email/why_email_f_7.jpg | Bin 0 -> 2510 bytes frontend/web/images/services/email/why_email_f_8.jpg | Bin 0 -> 2767 bytes frontend/web/images/services/email/yulia.png | Bin 0 -> 69056 bytes frontend/web/images/services/integration/andrey.png | Bin 0 -> 204312 bytes frontend/web/images/services/integration/b-audit-bg_smm.jpg | Bin 0 -> 354139 bytes frontend/web/images/services/integration/integracia.png | Bin 0 -> 3788 bytes frontend/web/images/services/integration/integracia_f_1.jpg | Bin 0 -> 4416 bytes frontend/web/images/services/integration/integracia_f_1.png | Bin 0 -> 949 bytes frontend/web/images/services/integration/integracia_f_2.jpg | Bin 0 -> 3367 bytes frontend/web/images/services/integration/integracia_f_2.png | Bin 0 -> 1225 bytes frontend/web/images/services/integration/integracia_f_3.jpg | Bin 0 -> 3679 bytes frontend/web/images/services/integration/integracia_f_3.png | Bin 0 -> 1214 bytes frontend/web/images/services/integration/integracia_f_4.jpg | Bin 0 -> 4017 bytes frontend/web/images/services/integration/line-bg-services.png | Bin 0 -> 8366 bytes frontend/web/images/services/integration/line_smm.jpg | Bin 0 -> 1446 bytes frontend/web/images/services/integration/reason.jpg | Bin 0 -> 47480 bytes frontend/web/images/services/integration/road-integracia_f_1.jpg | Bin 0 -> 6672 bytes frontend/web/images/services/integration/road-integracia_f_2.jpg | Bin 0 -> 4432 bytes frontend/web/images/services/integration/road-integracia_f_3.jpg | Bin 0 -> 4584 bytes frontend/web/images/services/integration/road-integracia_f_4.jpg | Bin 0 -> 6118 bytes frontend/web/images/services/integration/road-integracia_f_5.jpg | Bin 0 -> 4926 bytes frontend/web/images/services/integration/road-integracia_f_6.jpg | Bin 0 -> 6359 bytes frontend/web/images/services/integration/road-integracia_f_7.jpg | Bin 0 -> 5947 bytes frontend/web/images/services/integration/road-integracia_f_8.jpg | Bin 0 -> 3593 bytes frontend/web/images/services/integration/road-segmnt.jpg | Bin 0 -> 12010 bytes frontend/web/images/services/integration/seed.jpg | Bin 0 -> 4304 bytes frontend/web/images/services/integration/seti-integracia.jpg | Bin 0 -> 25545 bytes frontend/web/images/services/integration/seti_arrow.jpg | Bin 0 -> 5025 bytes frontend/web/images/services/integration/slide-1.jpg | Bin 0 -> 14714 bytes frontend/web/images/services/integration/slide-2.png | Bin 0 -> 22920 bytes frontend/web/images/services/integration/slide-3.png | Bin 0 -> 23103 bytes frontend/web/images/services/integration/smm_arrow.jpg | Bin 0 -> 4292 bytes frontend/web/images/services/integration/smm_f_2.jpg | Bin 0 -> 2330 bytes frontend/web/images/services/integration/soc_f_1.jpg | Bin 0 -> 3630 bytes frontend/web/images/services/integration/soc_f_2.jpg | Bin 0 -> 3972 bytes frontend/web/images/services/integration/soc_f_3.jpg | Bin 0 -> 4369 bytes frontend/web/images/services/integration/soc_f_4.jpg | Bin 0 -> 4099 bytes frontend/web/images/services/integration/soc_f_5.jpg | Bin 0 -> 3559 bytes frontend/web/images/services/integration/soc_f_6.jpg | Bin 0 -> 4225 bytes frontend/web/images/services/integration/soc_f_7.jpg | Bin 0 -> 4108 bytes frontend/web/images/services/integration/team-integracia.jpg | Bin 0 -> 13940 bytes frontend/web/images/services/integration/why_integracia_f_1.jpg | Bin 0 -> 2378 bytes frontend/web/images/services/integration/why_integracia_f_10.jpg | Bin 0 -> 2750 bytes frontend/web/images/services/integration/why_integracia_f_11.jpg | Bin 0 -> 2412 bytes frontend/web/images/services/integration/why_integracia_f_2.jpg | Bin 0 -> 2547 bytes frontend/web/images/services/integration/why_integracia_f_3.jpg | Bin 0 -> 2870 bytes frontend/web/images/services/integration/why_integracia_f_4.jpg | Bin 0 -> 2330 bytes frontend/web/images/services/integration/why_integracia_f_5.jpg | Bin 0 -> 2762 bytes frontend/web/images/services/integration/why_integracia_f_6.jpg | Bin 0 -> 2185 bytes frontend/web/images/services/integration/why_integracia_f_7.jpg | Bin 0 -> 2921 bytes frontend/web/images/services/integration/why_integracia_f_8.jpg | Bin 0 -> 2673 bytes frontend/web/images/services/integration/why_integracia_f_9.jpg | Bin 0 -> 2880 bytes frontend/web/images/services/segmnt/anton.png | Bin 0 -> 50095 bytes frontend/web/images/services/segmnt/b-audit-bg_smm.jpg | Bin 0 -> 354139 bytes frontend/web/images/services/segmnt/line-bg-services.png | Bin 0 -> 8366 bytes frontend/web/images/services/segmnt/line_smm.jpg | Bin 0 -> 1446 bytes frontend/web/images/services/segmnt/reason.jpg | Bin 0 -> 47480 bytes frontend/web/images/services/segmnt/road-segmnt.jpg | Bin 0 -> 12010 bytes frontend/web/images/services/segmnt/road-segmnt_f_1.jpg | Bin 0 -> 6320 bytes frontend/web/images/services/segmnt/road-segmnt_f_2.jpg | Bin 0 -> 5547 bytes frontend/web/images/services/segmnt/road-segmnt_f_3.jpg | Bin 0 -> 5507 bytes frontend/web/images/services/segmnt/road-segmnt_f_4.jpg | Bin 0 -> 5872 bytes frontend/web/images/services/segmnt/road-segmnt_f_5.jpg | Bin 0 -> 5145 bytes frontend/web/images/services/segmnt/road-segmnt_f_6.jpg | Bin 0 -> 5381 bytes frontend/web/images/services/segmnt/road.jpg | Bin 0 -> 18429 bytes frontend/web/images/services/segmnt/seed.jpg | Bin 0 -> 4304 bytes frontend/web/images/services/segmnt/seed_f_1.png | Bin 0 -> 967 bytes frontend/web/images/services/segmnt/seed_f_2.png | Bin 0 -> 893 bytes frontend/web/images/services/segmnt/seed_f_3.png | Bin 0 -> 914 bytes frontend/web/images/services/segmnt/segmnt.png | Bin 0 -> 4733 bytes frontend/web/images/services/segmnt/segmnt_f_1.jpg | Bin 0 -> 5787 bytes frontend/web/images/services/segmnt/segmnt_f_2.jpg | Bin 0 -> 2616 bytes frontend/web/images/services/segmnt/segmnt_f_3.jpg | Bin 0 -> 4659 bytes frontend/web/images/services/segmnt/segmnt_f_4.jpg | Bin 0 -> 3122 bytes frontend/web/images/services/segmnt/seti-segmnt.jpg | Bin 0 -> 23548 bytes frontend/web/images/services/segmnt/seti_arrow.jpg | Bin 0 -> 5025 bytes frontend/web/images/services/segmnt/slide-1.jpg | Bin 0 -> 14714 bytes frontend/web/images/services/segmnt/slide-2.png | Bin 0 -> 22920 bytes frontend/web/images/services/segmnt/slide-3.png | Bin 0 -> 23103 bytes frontend/web/images/services/segmnt/smm_arrow.jpg | Bin 0 -> 4292 bytes frontend/web/images/services/segmnt/soc_f_1.jpg | Bin 0 -> 3630 bytes frontend/web/images/services/segmnt/soc_f_2.jpg | Bin 0 -> 3972 bytes frontend/web/images/services/segmnt/soc_f_3.jpg | Bin 0 -> 4369 bytes frontend/web/images/services/segmnt/soc_f_4.jpg | Bin 0 -> 4099 bytes frontend/web/images/services/segmnt/soc_f_5.jpg | Bin 0 -> 3559 bytes frontend/web/images/services/segmnt/soc_f_6.jpg | Bin 0 -> 4225 bytes frontend/web/images/services/segmnt/soc_f_7.jpg | Bin 0 -> 4108 bytes frontend/web/images/services/segmnt/team-segmnt.jpg | Bin 0 -> 10832 bytes frontend/web/images/services/segmnt/why_segmnt_f_1.jpg | Bin 0 -> 2359 bytes frontend/web/images/services/segmnt/why_segmnt_f_10.jpg | Bin 0 -> 2487 bytes frontend/web/images/services/segmnt/why_segmnt_f_2.jpg | Bin 0 -> 2385 bytes frontend/web/images/services/segmnt/why_segmnt_f_3.jpg | Bin 0 -> 2881 bytes frontend/web/images/services/segmnt/why_segmnt_f_4.jpg | Bin 0 -> 2828 bytes frontend/web/images/services/segmnt/why_segmnt_f_5.jpg | Bin 0 -> 2704 bytes frontend/web/images/services/segmnt/why_segmnt_f_6.jpg | Bin 0 -> 2526 bytes frontend/web/images/services/segmnt/why_segmnt_f_7.jpg | Bin 0 -> 2521 bytes frontend/web/images/services/segmnt/why_segmnt_f_8.jpg | Bin 0 -> 2828 bytes frontend/web/images/services/segmnt/why_segmnt_f_9.jpg | Bin 0 -> 2632 bytes frontend/web/images/services/seo/anton.png | Bin 0 -> 50095 bytes frontend/web/images/services/seo/b-audit-bg_smm.jpg | Bin 0 -> 354139 bytes frontend/web/images/services/seo/line-bg-services.png | Bin 0 -> 8366 bytes frontend/web/images/services/seo/line_smm.jpg | Bin 0 -> 1446 bytes frontend/web/images/services/seo/reason.jpg | Bin 0 -> 47480 bytes frontend/web/images/services/seo/road-analitic_f_1.jpg | Bin 0 -> 5755 bytes frontend/web/images/services/seo/road-analitic_f_2.jpg | Bin 0 -> 5779 bytes frontend/web/images/services/seo/road-analitic_f_3.jpg | Bin 0 -> 4787 bytes frontend/web/images/services/seo/road-analitic_f_4.jpg | Bin 0 -> 5381 bytes frontend/web/images/services/seo/road-analitic_f_5.jpg | Bin 0 -> 4603 bytes frontend/web/images/services/seo/road-analitic_f_6.jpg | Bin 0 -> 4924 bytes frontend/web/images/services/seo/road-seo.jpg | Bin 0 -> 14775 bytes frontend/web/images/services/seo/road-webcreat_f_1.jpg | Bin 0 -> 6672 bytes frontend/web/images/services/seo/road-webcreat_f_2.jpg | Bin 0 -> 4432 bytes frontend/web/images/services/seo/road-webcreat_f_3.jpg | Bin 0 -> 4584 bytes frontend/web/images/services/seo/road-webcreat_f_4.jpg | Bin 0 -> 6118 bytes frontend/web/images/services/seo/road-webcreat_f_5.jpg | Bin 0 -> 4591 bytes frontend/web/images/services/seo/road-webcreat_f_6.jpg | Bin 0 -> 4472 bytes frontend/web/images/services/seo/road-webcreat_f_7.jpg | Bin 0 -> 3593 bytes frontend/web/images/services/seo/road.jpg | Bin 0 -> 18429 bytes frontend/web/images/services/seo/seed.jpg | Bin 0 -> 4304 bytes frontend/web/images/services/seo/seo.png | Bin 0 -> 4718 bytes frontend/web/images/services/seo/seo_f_1.jpg | Bin 0 -> 3475 bytes frontend/web/images/services/seo/seo_f_1.png | Bin 0 -> 1147 bytes frontend/web/images/services/seo/seo_f_2.jpg | Bin 0 -> 2616 bytes frontend/web/images/services/seo/seo_f_2.png | Bin 0 -> 1107 bytes frontend/web/images/services/seo/seo_f_3.jpg | Bin 0 -> 2975 bytes frontend/web/images/services/seo/seo_f_3.png | Bin 0 -> 814 bytes frontend/web/images/services/seo/seo_f_4.jpg | Bin 0 -> 3122 bytes frontend/web/images/services/seo/seti-webcreat.jpg | Bin 0 -> 29494 bytes frontend/web/images/services/seo/seti_arrow.jpg | Bin 0 -> 5025 bytes frontend/web/images/services/seo/slide-1.jpg | Bin 0 -> 14714 bytes frontend/web/images/services/seo/slide-2.png | Bin 0 -> 22920 bytes frontend/web/images/services/seo/slide-3.png | Bin 0 -> 23103 bytes frontend/web/images/services/seo/smm_arrow.jpg | Bin 0 -> 4292 bytes frontend/web/images/services/seo/smm_f_2.jpg | Bin 0 -> 2330 bytes frontend/web/images/services/seo/soc_f_1.jpg | Bin 0 -> 3630 bytes frontend/web/images/services/seo/soc_f_2.jpg | Bin 0 -> 3972 bytes frontend/web/images/services/seo/soc_f_3.jpg | Bin 0 -> 4369 bytes frontend/web/images/services/seo/soc_f_4.jpg | Bin 0 -> 4099 bytes frontend/web/images/services/seo/soc_f_5.jpg | Bin 0 -> 3559 bytes frontend/web/images/services/seo/soc_f_6.jpg | Bin 0 -> 4225 bytes frontend/web/images/services/seo/soc_f_7.jpg | Bin 0 -> 4108 bytes frontend/web/images/services/seo/team-webcreat.jpg | Bin 0 -> 13850 bytes frontend/web/images/services/seo/why_seot_f_1.jpg | Bin 0 -> 4047 bytes frontend/web/images/services/seo/why_seot_f_10.jpg | Bin 0 -> 6862 bytes frontend/web/images/services/seo/why_seot_f_11.jpg | Bin 0 -> 5781 bytes frontend/web/images/services/seo/why_seot_f_12.jpg | Bin 0 -> 5148 bytes frontend/web/images/services/seo/why_seot_f_13.jpg | Bin 0 -> 4414 bytes frontend/web/images/services/seo/why_seot_f_14.jpg | Bin 0 -> 5289 bytes frontend/web/images/services/seo/why_seot_f_15.jpg | Bin 0 -> 5446 bytes frontend/web/images/services/seo/why_seot_f_2.jpg | Bin 0 -> 5261 bytes frontend/web/images/services/seo/why_seot_f_3.jpg | Bin 0 -> 4906 bytes frontend/web/images/services/seo/why_seot_f_4.jpg | Bin 0 -> 6884 bytes frontend/web/images/services/seo/why_seot_f_5.jpg | Bin 0 -> 4112 bytes frontend/web/images/services/seo/why_seot_f_6.jpg | Bin 0 -> 3714 bytes frontend/web/images/services/seo/why_seot_f_7.jpg | Bin 0 -> 4506 bytes frontend/web/images/services/seo/why_seot_f_8.jpg | Bin 0 -> 4830 bytes frontend/web/images/services/seo/why_seot_f_9.jpg | Bin 0 -> 4628 bytes frontend/web/images/services/serm/b-audit-bg_smm.jpg | Bin 0 -> 354139 bytes frontend/web/images/services/serm/line-bg-services.png | Bin 0 -> 8366 bytes frontend/web/images/services/serm/line_smm.jpg | Bin 0 -> 1446 bytes frontend/web/images/services/serm/reason.jpg | Bin 0 -> 47480 bytes frontend/web/images/services/serm/road.jpg | Bin 0 -> 18429 bytes frontend/web/images/services/serm/road_f_1.jpg | Bin 0 -> 7413 bytes frontend/web/images/services/serm/road_f_2.jpg | Bin 0 -> 6662 bytes frontend/web/images/services/serm/road_f_3.jpg | Bin 0 -> 6254 bytes frontend/web/images/services/serm/road_f_4.jpg | Bin 0 -> 5911 bytes frontend/web/images/services/serm/road_f_5.jpg | Bin 0 -> 7018 bytes frontend/web/images/services/serm/road_f_6.jpg | Bin 0 -> 6110 bytes frontend/web/images/services/serm/road_f_7.jpg | Bin 0 -> 5768 bytes frontend/web/images/services/serm/road_f_8.jpg | Bin 0 -> 6185 bytes frontend/web/images/services/serm/road_serm-1.jpg | Bin 0 -> 5916 bytes frontend/web/images/services/serm/road_serm-2.jpg | Bin 0 -> 5020 bytes frontend/web/images/services/serm/road_serm-3.jpg | Bin 0 -> 4398 bytes frontend/web/images/services/serm/road_serm-4.jpg | Bin 0 -> 6750 bytes frontend/web/images/services/serm/road_serm-5.jpg | Bin 0 -> 4573 bytes frontend/web/images/services/serm/road_serm-6.jpg | Bin 0 -> 4915 bytes frontend/web/images/services/serm/road_serm-7.jpg | Bin 0 -> 5017 bytes frontend/web/images/services/serm/road_serm-8.jpg | Bin 0 -> 5203 bytes frontend/web/images/services/serm/seed_f_1.png | Bin 0 -> 967 bytes frontend/web/images/services/serm/seed_f_2.png | Bin 0 -> 893 bytes frontend/web/images/services/serm/seed_f_3.png | Bin 0 -> 914 bytes frontend/web/images/services/serm/serm.png | Bin 0 -> 4667 bytes frontend/web/images/services/serm/seti-y.jpg | Bin 0 -> 27174 bytes frontend/web/images/services/serm/seti_arrow.jpg | Bin 0 -> 5025 bytes frontend/web/images/services/serm/slide-1.jpg | Bin 0 -> 14714 bytes frontend/web/images/services/serm/slide-2.png | Bin 0 -> 22920 bytes frontend/web/images/services/serm/slide-3.png | Bin 0 -> 23103 bytes frontend/web/images/services/serm/smm_arrow.jpg | Bin 0 -> 4292 bytes frontend/web/images/services/serm/smm_f_1.jpg | Bin 0 -> 3326 bytes frontend/web/images/services/serm/smm_f_2.jpg | Bin 0 -> 2616 bytes frontend/web/images/services/serm/smm_f_3.jpg | Bin 0 -> 2782 bytes frontend/web/images/services/serm/smm_f_4.jpg | Bin 0 -> 3122 bytes frontend/web/images/services/serm/soc_f_1.jpg | Bin 0 -> 3630 bytes frontend/web/images/services/serm/soc_f_2.jpg | Bin 0 -> 3972 bytes frontend/web/images/services/serm/soc_f_3.jpg | Bin 0 -> 4369 bytes frontend/web/images/services/serm/soc_f_4.jpg | Bin 0 -> 4099 bytes frontend/web/images/services/serm/soc_f_5.jpg | Bin 0 -> 3559 bytes frontend/web/images/services/serm/soc_f_6.jpg | Bin 0 -> 4225 bytes frontend/web/images/services/serm/soc_f_7.jpg | Bin 0 -> 4108 bytes frontend/web/images/services/serm/team.jpg | Bin 0 -> 13850 bytes frontend/web/images/services/serm/why_serm_f_1.jpg | Bin 0 -> 3305 bytes frontend/web/images/services/serm/why_serm_f_10.jpg | Bin 0 -> 2747 bytes frontend/web/images/services/serm/why_serm_f_11.jpg | Bin 0 -> 2294 bytes frontend/web/images/services/serm/why_serm_f_12.jpg | Bin 0 -> 3016 bytes frontend/web/images/services/serm/why_serm_f_13.jpg | Bin 0 -> 3205 bytes frontend/web/images/services/serm/why_serm_f_14.jpg | Bin 0 -> 3265 bytes frontend/web/images/services/serm/why_serm_f_2.jpg | Bin 0 -> 2921 bytes frontend/web/images/services/serm/why_serm_f_3.jpg | Bin 0 -> 2771 bytes frontend/web/images/services/serm/why_serm_f_4.jpg | Bin 0 -> 2617 bytes frontend/web/images/services/serm/why_serm_f_5.jpg | Bin 0 -> 3013 bytes frontend/web/images/services/serm/why_serm_f_6.jpg | Bin 0 -> 2905 bytes frontend/web/images/services/serm/why_serm_f_7.jpg | Bin 0 -> 2487 bytes frontend/web/images/services/serm/why_serm_f_8.jpg | Bin 0 -> 2452 bytes frontend/web/images/services/serm/why_serm_f_9.jpg | Bin 0 -> 2392 bytes frontend/web/images/services/serm/work_1.jpg | Bin 0 -> 1884 bytes frontend/web/images/services/serm/work_2.jpg | Bin 0 -> 1888 bytes frontend/web/images/services/serm/work_3.jpg | Bin 0 -> 2381 bytes frontend/web/images/services/serm/work_4.jpg | Bin 0 -> 2678 bytes frontend/web/images/services/serm/work_5.jpg | Bin 0 -> 2398 bytes frontend/web/images/services/serm/work_6.jpg | Bin 0 -> 2619 bytes frontend/web/images/services/serm/work_7.jpg | Bin 0 -> 2586 bytes frontend/web/images/services/serm/work_8.jpg | Bin 0 -> 2822 bytes frontend/web/images/services/serm/yulia.png | Bin 0 -> 69056 bytes frontend/web/images/services/smm/artem.png | Bin 0 -> 66692 bytes frontend/web/images/services/smm/b-audit-bg_smm.jpg | Bin 0 -> 354139 bytes frontend/web/images/services/smm/line-bg-services.png | Bin 0 -> 8366 bytes frontend/web/images/services/smm/line_smm.jpg | Bin 0 -> 1446 bytes frontend/web/images/services/smm/reason.jpg | Bin 0 -> 47480 bytes frontend/web/images/services/smm/road.jpg | Bin 0 -> 18429 bytes frontend/web/images/services/smm/road_f_1.jpg | Bin 0 -> 7413 bytes frontend/web/images/services/smm/road_f_2.jpg | Bin 0 -> 6662 bytes frontend/web/images/services/smm/road_f_3.jpg | Bin 0 -> 6254 bytes frontend/web/images/services/smm/road_f_4.jpg | Bin 0 -> 5911 bytes frontend/web/images/services/smm/road_f_5.jpg | Bin 0 -> 7018 bytes frontend/web/images/services/smm/road_f_6.jpg | Bin 0 -> 6110 bytes frontend/web/images/services/smm/road_f_7.jpg | Bin 0 -> 5768 bytes frontend/web/images/services/smm/road_f_8.jpg | Bin 0 -> 6185 bytes frontend/web/images/services/smm/seed.jpg | Bin 0 -> 4304 bytes frontend/web/images/services/smm/seed_f_1.png | Bin 0 -> 967 bytes frontend/web/images/services/smm/seed_f_2.png | Bin 0 -> 893 bytes frontend/web/images/services/smm/seed_f_3.png | Bin 0 -> 914 bytes frontend/web/images/services/smm/seti.jpg | Bin 0 -> 20809 bytes frontend/web/images/services/smm/seti_arrow.jpg | Bin 0 -> 5025 bytes frontend/web/images/services/smm/slide-1.jpg | Bin 0 -> 14714 bytes frontend/web/images/services/smm/slide-2.png | Bin 0 -> 22920 bytes frontend/web/images/services/smm/slide-3.png | Bin 0 -> 23103 bytes frontend/web/images/services/smm/smm.png | Bin 0 -> 4562 bytes frontend/web/images/services/smm/smm_arrow.jpg | Bin 0 -> 4292 bytes frontend/web/images/services/smm/smm_f_1.jpg | Bin 0 -> 3326 bytes frontend/web/images/services/smm/smm_f_2.jpg | Bin 0 -> 2616 bytes frontend/web/images/services/smm/smm_f_3.jpg | Bin 0 -> 2782 bytes frontend/web/images/services/smm/smm_f_4.jpg | Bin 0 -> 3122 bytes frontend/web/images/services/smm/soc_f_1.jpg | Bin 0 -> 3630 bytes frontend/web/images/services/smm/soc_f_2.jpg | Bin 0 -> 3972 bytes frontend/web/images/services/smm/soc_f_3.jpg | Bin 0 -> 4369 bytes frontend/web/images/services/smm/soc_f_4.jpg | Bin 0 -> 4099 bytes frontend/web/images/services/smm/soc_f_5.jpg | Bin 0 -> 3559 bytes frontend/web/images/services/smm/soc_f_6.jpg | Bin 0 -> 4225 bytes frontend/web/images/services/smm/soc_f_7.jpg | Bin 0 -> 4108 bytes frontend/web/images/services/smm/team.jpg | Bin 0 -> 13850 bytes frontend/web/images/services/smm/why_smm_f_1.jpg | Bin 0 -> 2568 bytes frontend/web/images/services/smm/why_smm_f_2.jpg | Bin 0 -> 2960 bytes frontend/web/images/services/smm/why_smm_f_3.jpg | Bin 0 -> 2796 bytes frontend/web/images/services/smm/why_smm_f_4.jpg | Bin 0 -> 2568 bytes frontend/web/images/services/smm/why_smm_f_5.jpg | Bin 0 -> 2691 bytes frontend/web/images/services/smm/why_smm_f_6.jpg | Bin 0 -> 2750 bytes frontend/web/images/services/smm/why_smm_f_7.jpg | Bin 0 -> 2728 bytes frontend/web/images/services/smm/why_smm_f_8.jpg | Bin 0 -> 2877 bytes frontend/web/images/services/usability/analiz-1.jpg | Bin 0 -> 4350 bytes frontend/web/images/services/usability/analiz-2.jpg | Bin 0 -> 4095 bytes frontend/web/images/services/usability/analiz-3.jpg | Bin 0 -> 4841 bytes frontend/web/images/services/usability/analiz-4.jpg | Bin 0 -> 4257 bytes frontend/web/images/services/usability/analiz-5.jpg | Bin 0 -> 4384 bytes frontend/web/images/services/usability/analiz-6.jpg | Bin 0 -> 5081 bytes frontend/web/images/services/usability/analiz-7.jpg | Bin 0 -> 3928 bytes frontend/web/images/services/usability/analiz-8.jpg | Bin 0 -> 4299 bytes frontend/web/images/services/usability/anton.png | Bin 0 -> 50095 bytes frontend/web/images/services/usability/b-audit-bg_smm.jpg | Bin 0 -> 354139 bytes frontend/web/images/services/usability/line-bg-services.png | Bin 0 -> 8366 bytes frontend/web/images/services/usability/line_smm.jpg | Bin 0 -> 1446 bytes frontend/web/images/services/usability/reason.jpg | Bin 0 -> 47480 bytes frontend/web/images/services/usability/seed.jpg | Bin 0 -> 4304 bytes frontend/web/images/services/usability/seed_f_1.png | Bin 0 -> 967 bytes frontend/web/images/services/usability/seed_f_2.png | Bin 0 -> 893 bytes frontend/web/images/services/usability/seed_f_3.png | Bin 0 -> 914 bytes frontend/web/images/services/usability/servise-1.jpg | Bin 0 -> 4719 bytes frontend/web/images/services/usability/servise-2.jpg | Bin 0 -> 3152 bytes frontend/web/images/services/usability/servise-3.jpg | Bin 0 -> 4405 bytes frontend/web/images/services/usability/seti_arrow.jpg | Bin 0 -> 5025 bytes frontend/web/images/services/usability/slide-1.jpg | Bin 0 -> 14714 bytes frontend/web/images/services/usability/slide-2.png | Bin 0 -> 22920 bytes frontend/web/images/services/usability/slide-3.png | Bin 0 -> 23103 bytes frontend/web/images/services/usability/smm_arrow.jpg | Bin 0 -> 4292 bytes frontend/web/images/services/usability/smm_f_2.jpg | Bin 0 -> 2616 bytes frontend/web/images/services/usability/smm_f_3.jpg | Bin 0 -> 2782 bytes frontend/web/images/services/usability/smm_f_4.jpg | Bin 0 -> 3122 bytes frontend/web/images/services/usability/soc_f_1.jpg | Bin 0 -> 3630 bytes frontend/web/images/services/usability/soc_f_2.jpg | Bin 0 -> 3972 bytes frontend/web/images/services/usability/soc_f_3.jpg | Bin 0 -> 4369 bytes frontend/web/images/services/usability/soc_f_4.jpg | Bin 0 -> 4099 bytes frontend/web/images/services/usability/soc_f_5.jpg | Bin 0 -> 3559 bytes frontend/web/images/services/usability/soc_f_6.jpg | Bin 0 -> 4225 bytes frontend/web/images/services/usability/soc_f_7.jpg | Bin 0 -> 4108 bytes frontend/web/images/services/usability/team.jpg | Bin 0 -> 13850 bytes frontend/web/images/services/usability/uability_f_4.jpg | Bin 0 -> 3336 bytes frontend/web/images/services/usability/usability-site.jpg | Bin 0 -> 14213 bytes frontend/web/images/services/usability/usability.jpg | Bin 0 -> 20457 bytes frontend/web/images/services/usability/usability.png | Bin 0 -> 4501 bytes frontend/web/images/services/usability/why_usability_f_1.jpg | Bin 0 -> 2629 bytes frontend/web/images/services/usability/why_usability_f_2.jpg | Bin 0 -> 2641 bytes frontend/web/images/services/usability/why_usability_f_3.jpg | Bin 0 -> 2852 bytes frontend/web/images/services/usability/why_usability_f_4.jpg | Bin 0 -> 2691 bytes frontend/web/images/services/usability/why_usability_f_5.jpg | Bin 0 -> 2600 bytes frontend/web/images/services/usability/why_usability_f_6.jpg | Bin 0 -> 2794 bytes frontend/web/images/services/usability/why_usability_f_7.jpg | Bin 0 -> 2427 bytes frontend/web/images/services/usability/why_usability_f_8.jpg | Bin 0 -> 2592 bytes frontend/web/images/services/webcreat/analitic_f_1.jpg | Bin 0 -> 2471 bytes frontend/web/images/services/webcreat/analitic_f_2.jpg | Bin 0 -> 4659 bytes frontend/web/images/services/webcreat/analitic_f_3.jpg | Bin 0 -> 2330 bytes frontend/web/images/services/webcreat/analitic_f_4.jpg | Bin 0 -> 3815 bytes frontend/web/images/services/webcreat/andrey.png | Bin 0 -> 204312 bytes frontend/web/images/services/webcreat/b-audit-bg_smm.jpg | Bin 0 -> 354139 bytes frontend/web/images/services/webcreat/line-bg-services.png | Bin 0 -> 8366 bytes frontend/web/images/services/webcreat/line_smm.jpg | Bin 0 -> 1446 bytes frontend/web/images/services/webcreat/reason.jpg | Bin 0 -> 47480 bytes frontend/web/images/services/webcreat/road-analitic_f_1.jpg | Bin 0 -> 5755 bytes frontend/web/images/services/webcreat/road-analitic_f_2.jpg | Bin 0 -> 5779 bytes frontend/web/images/services/webcreat/road-analitic_f_3.jpg | Bin 0 -> 4787 bytes frontend/web/images/services/webcreat/road-analitic_f_4.jpg | Bin 0 -> 5381 bytes frontend/web/images/services/webcreat/road-analitic_f_5.jpg | Bin 0 -> 4603 bytes frontend/web/images/services/webcreat/road-analitic_f_6.jpg | Bin 0 -> 4924 bytes frontend/web/images/services/webcreat/road-segmnt.jpg | Bin 0 -> 12010 bytes frontend/web/images/services/webcreat/road-webcreat_f_1.jpg | Bin 0 -> 6672 bytes frontend/web/images/services/webcreat/road-webcreat_f_2.jpg | Bin 0 -> 4432 bytes frontend/web/images/services/webcreat/road-webcreat_f_3.jpg | Bin 0 -> 4584 bytes frontend/web/images/services/webcreat/road-webcreat_f_4.jpg | Bin 0 -> 6118 bytes frontend/web/images/services/webcreat/road-webcreat_f_5.jpg | Bin 0 -> 4591 bytes frontend/web/images/services/webcreat/road-webcreat_f_6.jpg | Bin 0 -> 4472 bytes frontend/web/images/services/webcreat/road-webcreat_f_7.jpg | Bin 0 -> 3593 bytes frontend/web/images/services/webcreat/road.jpg | Bin 0 -> 18429 bytes frontend/web/images/services/webcreat/seed.jpg | Bin 0 -> 4304 bytes frontend/web/images/services/webcreat/seti-webcreat.jpg | Bin 0 -> 29494 bytes frontend/web/images/services/webcreat/seti_arrow.jpg | Bin 0 -> 5025 bytes frontend/web/images/services/webcreat/slide-1.jpg | Bin 0 -> 14714 bytes frontend/web/images/services/webcreat/slide-2.png | Bin 0 -> 22920 bytes frontend/web/images/services/webcreat/slide-3.png | Bin 0 -> 23103 bytes frontend/web/images/services/webcreat/smm_arrow.jpg | Bin 0 -> 4292 bytes frontend/web/images/services/webcreat/smm_f_2.jpg | Bin 0 -> 2330 bytes frontend/web/images/services/webcreat/soc_f_1.jpg | Bin 0 -> 3630 bytes frontend/web/images/services/webcreat/soc_f_2.jpg | Bin 0 -> 3972 bytes frontend/web/images/services/webcreat/soc_f_3.jpg | Bin 0 -> 4369 bytes frontend/web/images/services/webcreat/soc_f_4.jpg | Bin 0 -> 4099 bytes frontend/web/images/services/webcreat/soc_f_5.jpg | Bin 0 -> 3559 bytes frontend/web/images/services/webcreat/soc_f_6.jpg | Bin 0 -> 4225 bytes frontend/web/images/services/webcreat/soc_f_7.jpg | Bin 0 -> 4108 bytes frontend/web/images/services/webcreat/team-webcreat.jpg | Bin 0 -> 13850 bytes frontend/web/images/services/webcreat/webcreat.png | Bin 0 -> 4423 bytes frontend/web/images/services/webcreat/webcreat_f_1.png | Bin 0 -> 949 bytes frontend/web/images/services/webcreat/webcreat_f_2.png | Bin 0 -> 1003 bytes frontend/web/images/services/webcreat/webcreat_f_3.png | Bin 0 -> 864 bytes frontend/web/images/services/webcreat/why_webcreat_f_1.jpg | Bin 0 -> 4138 bytes frontend/web/images/services/webcreat/why_webcreat_f_10.jpg | Bin 0 -> 5852 bytes frontend/web/images/services/webcreat/why_webcreat_f_11.jpg | Bin 0 -> 5262 bytes frontend/web/images/services/webcreat/why_webcreat_f_2.jpg | Bin 0 -> 5938 bytes frontend/web/images/services/webcreat/why_webcreat_f_3.jpg | Bin 0 -> 4450 bytes frontend/web/images/services/webcreat/why_webcreat_f_4.jpg | Bin 0 -> 4653 bytes frontend/web/images/services/webcreat/why_webcreat_f_5.jpg | Bin 0 -> 4047 bytes frontend/web/images/services/webcreat/why_webcreat_f_6.jpg | Bin 0 -> 4691 bytes frontend/web/images/services/webcreat/why_webcreat_f_7.jpg | Bin 0 -> 3993 bytes frontend/web/images/services/webcreat/why_webcreat_f_8.jpg | Bin 0 -> 4844 bytes frontend/web/images/services/webcreat/why_webcreat_f_9.jpg | Bin 0 -> 4579 bytes frontend/web/images/skit-btn.png | Bin 0 -> 435 bytes frontend/web/images/soc-1.jpg | Bin 0 -> 1946 bytes frontend/web/images/soc-2.jpg | Bin 0 -> 1865 bytes frontend/web/images/soc-3.jpg | Bin 0 -> 2049 bytes frontend/web/images/soc-4.jpg | Bin 0 -> 1999 bytes frontend/web/images/soc-5.jpg | Bin 0 -> 1909 bytes frontend/web/images/social-ico.png | Bin 0 -> 2739 bytes frontend/web/images/team-plus-bg-2.png | Bin 0 -> 641164 bytes frontend/web/images/team-plus-bg.png | Bin 0 -> 2605 bytes frontend/web/images/team-plus-click.png | Bin 0 -> 670 bytes frontend/web/images/team-plus.png | Bin 0 -> 594 bytes frontend/web/images/teamitem/ajax-loader.gif | Bin 0 -> 723 bytes frontend/web/images/teamitem/book_1.jpg | Bin 0 -> 12823 bytes frontend/web/images/teamitem/book_2.jpg | Bin 0 -> 12727 bytes frontend/web/images/teamitem/book_3.jpg | Bin 0 -> 11193 bytes frontend/web/images/teamitem/book_4.jpg | Bin 0 -> 13393 bytes frontend/web/images/teamitem/book_5.jpg | Bin 0 -> 11289 bytes frontend/web/images/teamitem/fb.png | Bin 0 -> 325 bytes frontend/web/images/teamitem/film_1.jpg | Bin 0 -> 8819 bytes frontend/web/images/teamitem/film_2.jpg | Bin 0 -> 8149 bytes frontend/web/images/teamitem/film_3.jpg | Bin 0 -> 7596 bytes frontend/web/images/teamitem/film_4.jpg | Bin 0 -> 10671 bytes frontend/web/images/teamitem/film_5.jpg | Bin 0 -> 9447 bytes frontend/web/images/teamitem/iq.png | Bin 0 -> 903 bytes frontend/web/images/teamitem/mail.jpg | Bin 0 -> 1774 bytes frontend/web/images/teamitem/min_1.png | Bin 0 -> 570 bytes frontend/web/images/teamitem/min_2.png | Bin 0 -> 763 bytes frontend/web/images/teamitem/min_3.png | Bin 0 -> 389 bytes frontend/web/images/teamitem/min_4.png | Bin 0 -> 655 bytes frontend/web/images/teamitem/min_5.png | Bin 0 -> 948 bytes frontend/web/images/teamitem/stars 2.png | Bin 0 -> 4437 bytes frontend/web/images/teamitem/stars.png | Bin 0 -> 3524 bytes frontend/web/images/teamitem/sveta.jpg | Bin 0 -> 142441 bytes frontend/web/images/teamitem/twitter.png | Bin 0 -> 429 bytes frontend/web/images/teamitem/vk.png | Bin 0 -> 397 bytes frontend/web/images/teamitem/zodiak_vodoley.png | Bin 0 -> 674 bytes frontend/web/images/vacancies/arrow-slider-left-active.png | Bin 0 -> 606 bytes frontend/web/images/vacancies/arrow-slider-left.png | Bin 0 -> 603 bytes frontend/web/images/vacancies/arrow-slider-right-active.png | Bin 0 -> 596 bytes frontend/web/images/vacancies/arrow-slider-right.png | Bin 0 -> 579 bytes frontend/web/images/vacancies/bg-block-1.png | Bin 0 -> 234470 bytes frontend/web/images/vacancies/bg-block-last.jpg | Bin 0 -> 34794 bytes frontend/web/images/vacancies/bill.png | Bin 0 -> 31086 bytes frontend/web/images/vacancies/border-gradient.jpg | Bin 0 -> 2621 bytes frontend/web/images/vacancies/certificates-f-1.jpg | Bin 0 -> 13149 bytes frontend/web/images/vacancies/certificates.png | Bin 0 -> 96305 bytes frontend/web/images/vacancies/darts-bg.jpg | Bin 0 -> 98969 bytes frontend/web/images/vacancies/darts.png | Bin 0 -> 151414 bytes frontend/web/images/vacancies/ico-php.jpg | Bin 0 -> 8414 bytes frontend/web/images/vacancies/ico-seo.jpg | Bin 0 -> 9174 bytes frontend/web/images/vacancies/line-php.png | Bin 0 -> 2203 bytes frontend/web/images/vacancies/proposition-f-1.png | Bin 0 -> 1559 bytes frontend/web/images/vacancies/proposition-f-2.png | Bin 0 -> 1277 bytes frontend/web/images/vacancies/proposition-f-3.png | Bin 0 -> 1369 bytes frontend/web/images/vacancies/proposition-f-4.png | Bin 0 -> 631 bytes frontend/web/images/vacancies/proposition-f-5.png | Bin 0 -> 546 bytes frontend/web/images/vacancies/proposition-f-6.png | Bin 0 -> 845 bytes frontend/web/images/vacancies/proposition-f-7.png | Bin 0 -> 1101 bytes frontend/web/images/vacancies/proposition-f-8.png | Bin 0 -> 1060 bytes frontend/web/images/vacancies/proposition.jpg | Bin 0 -> 43705 bytes frontend/web/images/vacancies/qwe/slide-1.jpg | Bin 0 -> 4331 bytes frontend/web/images/vacancies/qwe/slide-2.jpg | Bin 0 -> 3417 bytes frontend/web/images/vacancies/qwe/slide-3.jpg | Bin 0 -> 3357 bytes frontend/web/images/vacancies/qwe/slide-4.jpg | Bin 0 -> 3546 bytes frontend/web/images/vacancies/qwe/slide-5.jpg | Bin 0 -> 5230 bytes frontend/web/images/vacancies/rocket-line-2.png | Bin 0 -> 434 bytes frontend/web/images/vacancies/rocket-line.png | Bin 0 -> 462 bytes frontend/web/images/vacancies/shadow-darts.png | Bin 0 -> 17726 bytes frontend/web/images/vacancies/sveta-darts.png | Bin 0 -> 88236 bytes frontend/web/images/vacancies/tallants-f-1-hover.jpg | Bin 0 -> 15705 bytes frontend/web/images/vacancies/tallants-f-1.png | Bin 0 -> 4333 bytes frontend/web/images/vacancies/tallants-f-2-hover.jpg | Bin 0 -> 16822 bytes frontend/web/images/vacancies/tallants-f-2.png | Bin 0 -> 4483 bytes frontend/web/images/vacancies/tallants-f-3-hover.jpg | Bin 0 -> 12851 bytes frontend/web/images/vacancies/tallants-f-3.png | Bin 0 -> 6464 bytes frontend/web/images/vacancies/tallants-f-line.png | Bin 0 -> 343 bytes frontend/web/images/vacancies/vacant-andrej.png | Bin 0 -> 25478 bytes frontend/web/images/vacancies/vacant-anton.png | Bin 0 -> 22754 bytes frontend/web/images/vacancies/vacant-bg.jpg | Bin 0 -> 80458 bytes frontend/web/images/vacancies/vacant-slavik.png | Bin 0 -> 23927 bytes frontend/web/images/zodiac/aquarius.png | Bin 0 -> 1710 bytes frontend/web/images/zodiac/aries.png | Bin 0 -> 1559 bytes frontend/web/images/zodiac/cancer.png | Bin 0 -> 1712 bytes frontend/web/images/zodiac/capricorn.png | Bin 0 -> 1534 bytes frontend/web/images/zodiac/gemini.png | Bin 0 -> 1494 bytes frontend/web/images/zodiac/leo.png | Bin 0 -> 1575 bytes frontend/web/images/zodiac/libra.png | Bin 0 -> 1547 bytes frontend/web/images/zodiac/pisces.png | Bin 0 -> 1616 bytes frontend/web/images/zodiac/sagittarius.png | Bin 0 -> 1618 bytes frontend/web/images/zodiac/scorpio.png | Bin 0 -> 1536 bytes frontend/web/images/zodiac/taurus.png | Bin 0 -> 1653 bytes frontend/web/images/zodiac/virgo.png | Bin 0 -> 1621 bytes frontend/web/js/addons/sliderkit.counter.1.0.js | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/addons/sliderkit.counter.1.0.pack.js | 12 ++++++++++++ frontend/web/js/addons/sliderkit.delaycaptions.1.1.js | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/addons/sliderkit.delaycaptions.1.1.pack.js | 12 ++++++++++++ frontend/web/js/addons/sliderkit.imagefx.1.0.js | 378 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/addons/sliderkit.imagefx.1.0.pack.js | 12 ++++++++++++ frontend/web/js/addons/sliderkit.timer.1.0.js | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/addons/sliderkit.timer.1.0.pack.js | 12 ++++++++++++ frontend/web/js/contact.js | 19 +++++++++++++++++++ frontend/web/js/external/jquery.easing.1.3.min.js | 27 +++++++++++++++++++++++++++ frontend/web/js/external/jquery.mousewheel.min.js | 12 ++++++++++++ frontend/web/js/external/jquery.supertoc.js | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/external/jquery.supertoc.min.js | 11 +++++++++++ frontend/web/js/external/jquery.ui.totop.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/graph.js | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/highcharts.js | 320 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jquery-ui-1.9.2.custom.min.js | 6 ++++++ frontend/web/js/jquery.maskedinput.min.js | 7 +++++++ frontend/web/js/jquery.scrollbox.min.js | 1 + frontend/web/js/jquery.sliderkit.1.9.2.js | 990 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jquery.sliderkit.1.9.2.pack.js | 8 ++++++++ frontend/web/js/main.js | 187 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/oldies.js | 28 ++++++++++++++++++++++++++++ frontend/web/js/script.js | 18 ++++++++++++++++++ frontend/web/js/services/analitic.js | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/services/content.js | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/services/context.js | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/services/cpa.js | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/services/cpc.js | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/services/design.js | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/services/email.js | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/services/integration.js | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/services/segmnt.js | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/services/seo.js | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/services/serm.js | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/services/smm.js | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/services/usability.js | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/services/webcreat.js | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/team.js | 13 +++++++++++++ frontend/web/js/teamitem/1.js | 18 ++++++++++++++++++ frontend/web/js/teamitem/highcharts.js | 320 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/teamitem/jquery-1.11.2.min (1).js | 4 ++++ frontend/web/js/teamitem/jquery-1.11.2.min.js | 4 ++++ frontend/web/js/teamitem/jquery-1.6.2.min.js | 18 ++++++++++++++++++ frontend/web/js/teamitem/jquery-ui.min.js | 5 +++++ frontend/web/js/teamitem/jquery.animate-shadow-min.js | 14 ++++++++++++++ frontend/web/js/teamitem/jquery.animate-shadow.js | 231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/teamitem/jquery.rating-2.0.min.js | 7 +++++++ frontend/web/js/teamitem/rating.js | 45 +++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/uniform/default/css/uniform.default.css | 366 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/uniform/default/css/uniform.default.min.css | 1 + frontend/web/js/uniform/default/css/uniform.default.scss | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/uniform/default/images/bg-input-focus.png | Bin 0 -> 143 bytes frontend/web/js/uniform/default/images/bg-input.png | Bin 0 -> 143 bytes frontend/web/js/uniform/default/images/sprite.png | Bin 0 -> 32968 bytes frontend/web/js/uniform/jquery.uniform.min.js | 1 + frontend/web/js/vacancies.js | 42 ++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/vacancies2.js | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/validate/jquery.validate.min.js | 2 ++ frontend/web/js/validate/messages_ru.js | 25 +++++++++++++++++++++++++ frontend/web/robots.txt | 2 ++ init | 209 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ init.bat | 20 ++++++++++++++++++++ requirements.php | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/README.md | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/codeception.yml | 11 +++++++++++ tests/codeception/_output/.gitignore | 2 ++ tests/codeception/backend/.gitignore | 4 ++++ tests/codeception/backend/_bootstrap.php | 23 +++++++++++++++++++++++ tests/codeception/backend/_output/.gitignore | 2 ++ tests/codeception/backend/acceptance.suite.yml | 28 ++++++++++++++++++++++++++++ tests/codeception/backend/acceptance/LoginCept.php | 44 ++++++++++++++++++++++++++++++++++++++++++++ tests/codeception/backend/acceptance/_bootstrap.php | 2 ++ tests/codeception/backend/codeception.yml | 17 +++++++++++++++++ tests/codeception/backend/functional.suite.yml | 17 +++++++++++++++++ tests/codeception/backend/functional/LoginCept.php | 30 ++++++++++++++++++++++++++++++ tests/codeception/backend/functional/_bootstrap.php | 2 ++ tests/codeception/backend/unit.suite.yml | 6 ++++++ tests/codeception/backend/unit/DbTestCase.php | 8 ++++++++ tests/codeception/backend/unit/TestCase.php | 8 ++++++++ tests/codeception/backend/unit/_bootstrap.php | 2 ++ tests/codeception/backend/unit/fixtures/data/.gitkeep | 0 tests/codeception/bin/_bootstrap.php | 19 +++++++++++++++++++ tests/codeception/bin/yii | 23 +++++++++++++++++++++++ tests/codeception/bin/yii.bat | 20 ++++++++++++++++++++ tests/codeception/common/.gitignore | 4 ++++ tests/codeception/common/_bootstrap.php | 15 +++++++++++++++ tests/codeception/common/_output/.gitignore | 2 ++ tests/codeception/common/_pages/LoginPage.php | 25 +++++++++++++++++++++++++ tests/codeception/common/_support/FixtureHelper.php | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/codeception/common/codeception.yml | 13 +++++++++++++ tests/codeception/common/fixtures/UserFixture.php | 13 +++++++++++++ tests/codeception/common/fixtures/data/init_login.php | 14 ++++++++++++++ tests/codeception/common/templates/fixtures/user.php | 17 +++++++++++++++++ tests/codeception/common/unit.suite.yml | 6 ++++++ tests/codeception/common/unit/DbTestCase.php | 11 +++++++++++ tests/codeception/common/unit/TestCase.php | 11 +++++++++++ tests/codeception/common/unit/_bootstrap.php | 2 ++ tests/codeception/common/unit/fixtures/data/models/user.php | 14 ++++++++++++++ tests/codeception/common/unit/models/LoginFormTest.php | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/codeception/config/acceptance.php | 7 +++++++ tests/codeception/config/backend/acceptance.php | 17 +++++++++++++++++ tests/codeception/config/backend/config.php | 5 +++++ tests/codeception/config/backend/functional.php | 18 ++++++++++++++++++ tests/codeception/config/backend/unit.php | 16 ++++++++++++++++ tests/codeception/config/common/unit.php | 14 ++++++++++++++ tests/codeception/config/config.php | 26 ++++++++++++++++++++++++++ tests/codeception/config/console/unit.php | 14 ++++++++++++++ tests/codeception/config/frontend/acceptance.php | 17 +++++++++++++++++ tests/codeception/config/frontend/config.php | 5 +++++ tests/codeception/config/frontend/functional.php | 18 ++++++++++++++++++ tests/codeception/config/frontend/unit.php | 16 ++++++++++++++++ tests/codeception/config/functional.php | 18 ++++++++++++++++++ tests/codeception/config/unit.php | 7 +++++++ tests/codeception/console/.gitignore | 2 ++ tests/codeception/console/_bootstrap.php | 16 ++++++++++++++++ tests/codeception/console/_output/.gitignore | 2 ++ tests/codeception/console/codeception.yml | 13 +++++++++++++ tests/codeception/console/unit.suite.yml | 6 ++++++ tests/codeception/console/unit/DbTestCase.php | 11 +++++++++++ tests/codeception/console/unit/TestCase.php | 11 +++++++++++ tests/codeception/console/unit/_bootstrap.php | 2 ++ tests/codeception/console/unit/fixtures/data/.gitkeep | 0 tests/codeception/frontend/.gitignore | 4 ++++ tests/codeception/frontend/_bootstrap.php | 23 +++++++++++++++++++++++ tests/codeception/frontend/_output/.gitignore | 2 ++ tests/codeception/frontend/_pages/AboutPage.php | 14 ++++++++++++++ tests/codeception/frontend/_pages/ContactPage.php | 26 ++++++++++++++++++++++++++ tests/codeception/frontend/_pages/SignupPage.php | 27 +++++++++++++++++++++++++++ tests/codeception/frontend/acceptance.suite.yml | 28 ++++++++++++++++++++++++++++ tests/codeception/frontend/acceptance/AboutCept.php | 10 ++++++++++ tests/codeception/frontend/acceptance/ContactCept.php | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/codeception/frontend/acceptance/HomeCept.php | 12 ++++++++++++ tests/codeception/frontend/acceptance/LoginCept.php | 34 ++++++++++++++++++++++++++++++++++ tests/codeception/frontend/acceptance/SignupCest.php | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/codeception/frontend/acceptance/_bootstrap.php | 2 ++ tests/codeception/frontend/codeception.yml | 17 +++++++++++++++++ tests/codeception/frontend/functional.suite.yml | 17 +++++++++++++++++ tests/codeception/frontend/functional/AboutCept.php | 10 ++++++++++ tests/codeception/frontend/functional/ContactCept.php | 47 +++++++++++++++++++++++++++++++++++++++++++++++ tests/codeception/frontend/functional/HomeCept.php | 12 ++++++++++++ tests/codeception/frontend/functional/LoginCept.php | 29 +++++++++++++++++++++++++++++ tests/codeception/frontend/functional/SignupCest.php | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/codeception/frontend/functional/_bootstrap.php | 3 +++ tests/codeception/frontend/unit.suite.yml | 6 ++++++ tests/codeception/frontend/unit/DbTestCase.php | 11 +++++++++++ tests/codeception/frontend/unit/TestCase.php | 11 +++++++++++ tests/codeception/frontend/unit/_bootstrap.php | 2 ++ tests/codeception/frontend/unit/fixtures/data/models/user.php | 23 +++++++++++++++++++++++ tests/codeception/frontend/unit/models/ContactFormTest.php | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/codeception/frontend/unit/models/PasswordResetRequestFormTest.php | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/codeception/frontend/unit/models/ResetPasswordFormTest.php | 43 +++++++++++++++++++++++++++++++++++++++++++ tests/codeception/frontend/unit/models/SignupFormTest.php | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1615 files changed, 94134 insertions(+), 0 deletions(-) create mode 100644 .bowerrc create mode 100644 .gitignore create mode 100644 .htaccess create mode 100644 LICENSE.md create mode 100644 README.md create mode 100644 backend/assets/AppAsset.php create mode 100644 backend/config/.gitignore create mode 100644 backend/config/bootstrap.php create mode 100644 backend/config/main.php create mode 100644 backend/config/params.php create mode 100755 backend/controllers/ClientsController.php create mode 100755 backend/controllers/DepartmentsController.php create mode 100755 backend/controllers/SiteController.php create mode 100644 backend/controllers/TeamController.php create mode 100644 backend/controllers/TeamSkilsController.php create mode 100755 backend/models/.gitkeep create mode 100755 backend/models/Clients.php create mode 100755 backend/models/ClientsSearch.php create mode 100755 backend/models/Departments.php create mode 100755 backend/models/DepartmentsSearch.php create mode 100644 backend/models/Team.php create mode 100644 backend/models/TeamBooks.php create mode 100644 backend/models/TeamSearch.php create mode 100644 backend/models/TeamSkils.php create mode 100644 backend/models/User.php create mode 100644 backend/runtime/.gitignore create mode 100644 backend/views/adminlte/layouts/content.php create mode 100644 backend/views/adminlte/layouts/header.php create mode 100644 backend/views/adminlte/layouts/left.php create mode 100644 backend/views/adminlte/layouts/main-login.php create mode 100644 backend/views/adminlte/layouts/main.php create mode 100644 backend/views/adminlte/site/error.php create mode 100644 backend/views/adminlte/site/login.php create mode 100755 backend/views/clients/_form.php create mode 100755 backend/views/clients/_search.php create mode 100755 backend/views/clients/create.php create mode 100755 backend/views/clients/index.php create mode 100755 backend/views/clients/update.php create mode 100755 backend/views/clients/view.php create mode 100755 backend/views/departments/_form.php create mode 100755 backend/views/departments/_search.php create mode 100755 backend/views/departments/create.php create mode 100755 backend/views/departments/index.php create mode 100755 backend/views/departments/update.php create mode 100755 backend/views/departments/view.php create mode 100755 backend/views/layouts/main.php create mode 100755 backend/views/site/error.php create mode 100755 backend/views/site/index.php create mode 100755 backend/views/site/login.php create mode 100644 backend/views/team/_form.php create mode 100644 backend/views/team/_search.php create mode 100644 backend/views/team/create.php create mode 100644 backend/views/team/index.php create mode 100644 backend/views/team/skils/_form.php create mode 100644 backend/views/team/skils/create.php create mode 100644 backend/views/team/skils/index.php create mode 100644 backend/views/team/skils/update.php create mode 100644 backend/views/team/skils/view.php create mode 100644 backend/views/team/update.php create mode 100644 backend/views/team/view.php create mode 100644 backend/web/.gitignore create mode 100644 backend/web/assets/.gitignore create mode 100644 backend/web/css/site.css create mode 100644 backend/web/favicon.ico create mode 100644 backend/web/robots.txt create mode 100644 common/components/Request.php create mode 100644 common/config/.gitignore create mode 100644 common/config/bootstrap.php create mode 100644 common/config/main.php create mode 100644 common/config/params.php create mode 100644 common/config/rules.php create mode 100644 common/mail/layouts/html.php create mode 100644 common/mail/layouts/text.php create mode 100644 common/mail/passwordResetToken-html.php create mode 100644 common/mail/passwordResetToken-text.php create mode 100644 common/models/LoginForm.php create mode 100644 common/models/OrdersAudit.php create mode 100644 common/models/User.php create mode 100644 common/widgets/Alert.php create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 console/config/.gitignore create mode 100644 console/config/bootstrap.php create mode 100644 console/config/main.php create mode 100644 console/config/params.php create mode 100644 console/controllers/.gitkeep create mode 100644 console/migrations/m130524_201442_init.php create mode 100644 console/models/.gitkeep create mode 100644 console/runtime/.gitignore create mode 100644 environments/dev/backend/config/main-local.php create mode 100644 environments/dev/backend/config/params-local.php create mode 100644 environments/dev/backend/web/index-test.php create mode 100644 environments/dev/backend/web/index.php create mode 100644 environments/dev/common/config/main-local.php create mode 100644 environments/dev/common/config/params-local.php create mode 100644 environments/dev/console/config/main-local.php create mode 100644 environments/dev/console/config/params-local.php create mode 100644 environments/dev/frontend/config/main-local.php create mode 100644 environments/dev/frontend/config/params-local.php create mode 100644 environments/dev/frontend/web/index-test.php create mode 100644 environments/dev/frontend/web/index.php create mode 100644 environments/dev/yii create mode 100644 environments/index.php create mode 100644 environments/prod/backend/config/main-local.php create mode 100644 environments/prod/backend/config/params-local.php create mode 100644 environments/prod/backend/web/index.php create mode 100644 environments/prod/common/config/main-local.php create mode 100644 environments/prod/common/config/params-local.php create mode 100644 environments/prod/console/config/main-local.php create mode 100644 environments/prod/console/config/params-local.php create mode 100644 environments/prod/frontend/config/main-local.php create mode 100644 environments/prod/frontend/config/params-local.php create mode 100644 environments/prod/frontend/web/index.php create mode 100644 environments/prod/yii create mode 100644 frontend/assets/AppAsset.php create mode 100644 frontend/config/.gitignore create mode 100644 frontend/config/bootstrap.php create mode 100644 frontend/config/main.php create mode 100644 frontend/config/params.php create mode 100644 frontend/controllers/SiteController.php create mode 100755 frontend/models/Clients.php create mode 100755 frontend/models/ClientsQuery.php create mode 100755 frontend/models/ContactForm.php create mode 100755 frontend/models/PasswordResetRequestForm.php create mode 100755 frontend/models/ResetPasswordForm.php create mode 100755 frontend/models/SignupForm.php create mode 100755 frontend/models/Team.php create mode 100644 frontend/models/TeamBooks.php create mode 100644 frontend/models/TeamFilms.php create mode 100644 frontend/models/TeamHumors.php create mode 100644 frontend/models/TeamInterests.php create mode 100644 frontend/models/TeamInterestsQuery.php create mode 100755 frontend/models/TeamQuery.php create mode 100644 frontend/models/TeamSkils.php create mode 100644 frontend/runtime/.gitignore create mode 100644 frontend/views/blocks/clients.php create mode 100644 frontend/views/blocks/orders-audit.php create mode 100644 frontend/views/blocks/portfolio.php create mode 100644 frontend/views/blocks/reviews.php create mode 100644 frontend/views/blocks/services.php create mode 100644 frontend/views/layouts/main.php create mode 100644 frontend/views/site/contact.php create mode 100644 frontend/views/site/error.php create mode 100644 frontend/views/site/frontpage.php create mode 100644 frontend/views/site/login.php create mode 100644 frontend/views/site/orders_audit.php create mode 100644 frontend/views/site/orders_audit_success.php create mode 100644 frontend/views/site/requestPasswordResetToken.php create mode 100644 frontend/views/site/resetPassword.php create mode 100644 frontend/views/site/services/analitic.php create mode 100644 frontend/views/site/services/content.php create mode 100644 frontend/views/site/services/context.php create mode 100644 frontend/views/site/services/cpa.php create mode 100644 frontend/views/site/services/cpc.php create mode 100644 frontend/views/site/services/design.php create mode 100644 frontend/views/site/services/email.php create mode 100644 frontend/views/site/services/integration.php create mode 100644 frontend/views/site/services/segmnt.php create mode 100644 frontend/views/site/services/seo.php create mode 100644 frontend/views/site/services/serm.php create mode 100644 frontend/views/site/services/smm.php create mode 100644 frontend/views/site/services/usability.php create mode 100644 frontend/views/site/services/webcreat.php create mode 100644 frontend/views/site/signup.php create mode 100644 frontend/views/site/team.php create mode 100644 frontend/views/site/teamitem.php create mode 100644 frontend/views/site/vacancies.php create mode 100644 frontend/web/.gitignore create mode 100644 frontend/web/assets/.gitignore create mode 100644 frontend/web/count_form/app/data/admin.php create mode 100644 frontend/web/count_form/app/data/form.php create mode 100644 frontend/web/count_form/app/data/login.php create mode 100644 frontend/web/count_form/app/data/sub_quest.php create mode 100644 frontend/web/count_form/app/db/Entity.php create mode 100644 frontend/web/count_form/app/db/Main.php create mode 100644 frontend/web/count_form/app/entity/question.php create mode 100644 frontend/web/count_form/app/entity/request.php create mode 100644 frontend/web/count_form/app/entity/sub_question.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/LICENSE create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/README create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/changelog.txt create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/class.phpmailer.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/class.pop3.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/class.smtp.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs.ini create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/Callback_function_notes.txt create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/DomainKeys_notes.txt create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/Note_for_SMTP_debugging.txt create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/extending.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/faq.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes.svg create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/PHPMailer.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/POP3.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/SMTP.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/phpmailerException.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap-responsive.css create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap-responsive.min.css create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap.css create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap.min.css create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/jquery.iviewer.css create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/prettify.css create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/template.css create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/deprecated.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/errors.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/graph_class.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/apple-touch-icon-114x114.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/apple-touch-icon-72x72.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/apple-touch-icon.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/favicon.ico create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/glyphicons-halflings-white.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/glyphicons-halflings.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/arrow_down.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/arrow_right.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/class.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/constant.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/favicon.ico create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/file-php.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/file.gif create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/folder.gif create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/function.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/icon-folder-open-big.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/icon-th-big.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/icon_template.svg create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/interface.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/method.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/ok.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/property.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/search.gif create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/variable.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/view_source.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/visibility_private.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/visibility_protected.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/visibility_public.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/grab.cur create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/hand.cur create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.rotate_left.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.rotate_right.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_fit.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_fit2.gif create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_in.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_in2.gif create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_out.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_out2.gif create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_zero.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_zero2.gif create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/loader.gif create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/index.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/SVGPan.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/bootstrap.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/bootstrap.min.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery-1.4.2.min.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery-1.7.1.min.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery-ui-1.8.2.custom.min.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.cookie.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.iviewer.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.iviewer.min.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.mousewheel.min.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.panzoom.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.splitter.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.tools.min.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/jquery.treeview.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/menu.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-apollo.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-clj.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-css.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-go.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-hs.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-lisp.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-lua.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-ml.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-n.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-proto.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-scala.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-sql.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-tex.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-vb.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-vhdl.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-wiki.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-xq.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/lang-yaml.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/prettify/prettify.min.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/sidebar.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/template.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/markers.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/namespaces/global.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/packages/PHPMailer.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/structure.xml create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/pop3_article.txt create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/use_gmail.txt create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/contents.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/images/phpmailer.gif create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/images/phpmailer_mini.gif create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/index.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_db_smtp_basic.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_mail_advanced.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_mail_basic.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_pop_before_smtp_advanced.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_pop_before_smtp_basic.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_sendmail_advanced.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_sendmail_basic.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_smtp_advanced.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_smtp_advanced_no_auth.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_smtp_basic.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_smtp_basic_no_auth.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_smtp_gmail_advanced.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/examples/test_smtp_gmail_basic.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/extras/class.html2text.inc create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/extras/htmlfilter.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/extras/ntlm_sasl_client.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-ar.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-br.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-ca.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-ch.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-cz.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-de.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-dk.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-es.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-et.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-fi.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-fo.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-hu.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-it.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-ja.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-nl.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-no.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-pl.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-ro.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-ru.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-se.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-sk.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-tr.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-zh.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/language/phpmailer.lang-zh_cn.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test/contents.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test/phpmailerTest.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test/test.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test/test_callback.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test/testemail.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/LGPLv3.txt create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/contents.html create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/images/aikido.gif create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/images/bkgrnd.gif create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/images/phpmailer.gif create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/index.php create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/clipboard.swf create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushBash.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushCSharp.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushCpp.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushCss.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushDelphi.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushDiff.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushGroovy.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushJScript.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushJava.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushPerl.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushPhp.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushPlain.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushPython.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushRuby.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushScala.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushSql.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushVb.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shBrushXml.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shCore.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/scripts/shLegacy.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/src/shCore.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/src/shLegacy.js create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/help.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/magnifier.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/page_white_code.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/page_white_copy.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/printer.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/shCore.css create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/shThemeDefault.css create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/shThemeDjango.css create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/shThemeEmacs.css create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/shThemeFadeToGrey.css create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/shThemeMidnight.css create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/shThemeRDark.css create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/styles/wrapping.png create mode 100644 frontend/web/count_form/app/lib/PHPMailer_5.2.4/test_script/test.html create mode 100644 frontend/web/count_form/app/view/admin/add.php create mode 100644 frontend/web/count_form/app/view/admin/edit.php create mode 100644 frontend/web/count_form/app/view/admin/index.php create mode 100644 frontend/web/count_form/app/view/form/index.php create mode 100644 frontend/web/count_form/app/view/form/select.php create mode 100644 frontend/web/count_form/app/view/login/index.php create mode 100644 frontend/web/count_form/app/view/main_page.php create mode 100644 frontend/web/count_form/app/view/sub_quest/add.php create mode 100644 frontend/web/count_form/app/view/sub_quest/edit.php create mode 100644 frontend/web/count_form/app/view/sub_quest/index.php create mode 100644 frontend/web/count_form/css/bootstrap.css create mode 100644 frontend/web/count_form/css/bootstrap.css.map create mode 100644 frontend/web/count_form/css/main.css create mode 100644 frontend/web/count_form/images/change.png create mode 100644 frontend/web/count_form/images/check-off.png create mode 100644 frontend/web/count_form/images/check-on.png create mode 100644 frontend/web/count_form/images/del.png create mode 100644 frontend/web/count_form/images/down-arrow.png create mode 100644 frontend/web/count_form/images/down-arrow2.png create mode 100644 frontend/web/count_form/images/radio-off.png create mode 100644 frontend/web/count_form/images/radio-on.png create mode 100644 frontend/web/count_form/images/save.jpg create mode 100644 frontend/web/count_form/images/up-arrow.png create mode 100644 frontend/web/count_form/images/up-arrow2.png create mode 100644 frontend/web/count_form/images/validFild.png create mode 100644 frontend/web/count_form/index.php create mode 100644 frontend/web/count_form/js/input-style.js create mode 100644 frontend/web/count_form/js/jquery-ui.js create mode 100644 frontend/web/count_form/js/jquery.js create mode 100644 frontend/web/count_form/js/jquery.validate.min.js create mode 100644 frontend/web/count_form/js/main.js create mode 100644 frontend/web/count_form/js/validate.js create mode 100644 frontend/web/css/contact.css create mode 100644 frontend/web/css/ie.css create mode 100644 frontend/web/css/service_analitic.css create mode 100644 frontend/web/css/service_content.css create mode 100644 frontend/web/css/service_context.css create mode 100644 frontend/web/css/service_cpa.css create mode 100644 frontend/web/css/service_cpc.css create mode 100644 frontend/web/css/service_design.css create mode 100644 frontend/web/css/service_email.css create mode 100644 frontend/web/css/service_integration.css create mode 100644 frontend/web/css/service_segmnt.css create mode 100644 frontend/web/css/service_seo.css create mode 100644 frontend/web/css/service_serm.css create mode 100644 frontend/web/css/service_smm.css create mode 100644 frontend/web/css/service_usability.css create mode 100644 frontend/web/css/service_webcreat.css create mode 100644 frontend/web/css/site.css create mode 100644 frontend/web/css/team.css create mode 100644 frontend/web/css/teamitem.css create mode 100644 frontend/web/css/vacancies.css create mode 100644 frontend/web/favicon.ico create mode 100755 frontend/web/files/censor_net_ua.jpg create mode 100755 frontend/web/files/cl-arenda.jpg create mode 100755 frontend/web/files/cl-arenda.png create mode 100755 frontend/web/files/cl-censor.jpg create mode 100755 frontend/web/files/cl-censor.png create mode 100755 frontend/web/files/cl-dveri.jpg create mode 100755 frontend/web/files/cl-dveri.png create mode 100755 frontend/web/files/cl-extreme.jpg create mode 100755 frontend/web/files/cl-extreme.png create mode 100755 frontend/web/files/cl-gopro.jpg create mode 100755 frontend/web/files/cl-gopro.png create mode 100755 frontend/web/files/cl-hata-laminatu.jpg create mode 100755 frontend/web/files/cl-hata-laminatu.png create mode 100755 frontend/web/files/cl-linija-svitla.jpg create mode 100755 frontend/web/files/cl-linija-svitla.png create mode 100755 frontend/web/files/cl-planetaplast.jpg create mode 100755 frontend/web/files/cl-planetaplast.png create mode 100755 frontend/web/files/cl-semena.jpg create mode 100755 frontend/web/files/cl-semena.png create mode 100755 frontend/web/files/cl-ukravtodor.jpg create mode 100755 frontend/web/files/cl-ukravtodor.png create mode 100755 frontend/web/files/cl-ventolux.jpg create mode 100755 frontend/web/files/cl-ventolux.png create mode 100755 frontend/web/files/clients/cl-arenda.png create mode 100755 frontend/web/files/clients/cl-arenda_1.png create mode 100755 frontend/web/files/clients/cl-censor.png create mode 100755 frontend/web/files/clients/cl-dveri.png create mode 100755 frontend/web/files/clients/cl-extreme.png create mode 100755 frontend/web/files/clients/cl-gopro.png create mode 100755 frontend/web/files/clients/cl-hata-laminatu.png create mode 100755 frontend/web/files/clients/cl-linija-svitla.png create mode 100755 frontend/web/files/clients/cl-planetaplast.png create mode 100755 frontend/web/files/clients/cl-semena.png create mode 100755 frontend/web/files/clients/cl-ukravtodor.png create mode 100755 frontend/web/files/google-map.jpg create mode 100755 frontend/web/files/logos_artweb_slider.rar create mode 100755 frontend/web/files/pf-avtodor.jpg create mode 100755 frontend/web/files/pf-avtodor_1.png create mode 100755 frontend/web/files/pf-avtodor_2.png create mode 100755 frontend/web/files/pf-avtodor_3.png create mode 100755 frontend/web/files/pf-censor.jpg create mode 100755 frontend/web/files/pf-censor_1.png create mode 100755 frontend/web/files/pf-censor_2.png create mode 100755 frontend/web/files/pf-censor_3.png create mode 100755 frontend/web/files/pf-extremstyle.jpg create mode 100755 frontend/web/files/pf-extremstyle_1.png create mode 100755 frontend/web/files/pf-extremstyle_2.png create mode 100755 frontend/web/files/pf-extremstyle_3.png create mode 100755 frontend/web/files/pf-medtehnika.jpg create mode 100755 frontend/web/files/pf-medtehnika_1.png create mode 100755 frontend/web/files/pf-medtehnika_2.png create mode 100755 frontend/web/files/pf-medtehnika_3.png create mode 100755 frontend/web/files/pf-semena.jpg create mode 100755 frontend/web/files/pf-semena_1.png create mode 100755 frontend/web/files/pf-semena_2.png create mode 100755 frontend/web/files/pf-semena_3.png create mode 100755 frontend/web/files/pf1-finobzor.png create mode 100755 frontend/web/files/rw-ExtremStyle_ua.jpg create mode 100755 frontend/web/files/rw-UkrAvtoDor_gov_ua.jpg create mode 100755 frontend/web/files/srv1-cpa.png create mode 100755 frontend/web/files/srv1-cpc.png create mode 100755 frontend/web/files/srv1-kontekstnaya-reklama.png create mode 100755 frontend/web/files/srv1-seo.png create mode 100755 frontend/web/files/srv2-email-marketing.png create mode 100755 frontend/web/files/srv2-kontent-marketing.png create mode 100755 frontend/web/files/srv2-serm.png create mode 100755 frontend/web/files/srv2-smm.png create mode 100755 frontend/web/files/srv3-integratsiya.png create mode 100755 frontend/web/files/srv3-redizayn.png create mode 100755 frontend/web/files/srv3-sozdaniye-saytov.png create mode 100755 frontend/web/files/srv4-nastroyka-analitiki.png create mode 100755 frontend/web/files/srv4-segmentatsiya.png create mode 100755 frontend/web/files/srv4-yuzabiliti.png create mode 100755 frontend/web/files/team/beliy.jpg create mode 100644 frontend/web/files/team/beliy_1.jpg create mode 100755 frontend/web/files/team/marek.jpg create mode 100755 frontend/web/files/team/zozulya.jpg create mode 100644 frontend/web/files/team/zozulya_1.jpg create mode 100644 frontend/web/files/team/zozulya_2.jpg create mode 100644 frontend/web/files/team/zozulya_3.jpg create mode 100755 frontend/web/files/tm1-vyacheslav-mizharev.jpg create mode 100755 frontend/web/files/tm2-andrey-belyy.jpg create mode 100755 frontend/web/files/tm3-dmitriy.jpg create mode 100755 frontend/web/files/tm4-irina.jpg create mode 100755 frontend/web/files/tm5-anton-zozulya.jpg create mode 100644 frontend/web/images/b-audit-bg.jpg create mode 100644 frontend/web/images/b-completed-bg.jpg create mode 100644 frontend/web/images/b-portfolio-arrow.png create mode 100644 frontend/web/images/b-portfolio-arrow_2.png create mode 100644 frontend/web/images/b-quality-client.png create mode 100644 frontend/web/images/b-quality-list.jpg create mode 100644 frontend/web/images/b-reviews-arrow.png create mode 100644 frontend/web/images/b-reviews-skit.png create mode 100644 frontend/web/images/b-team-ico.png create mode 100644 frontend/web/images/bg.jpg create mode 100644 frontend/web/images/bg_contacts.jpg create mode 100644 frontend/web/images/bg_contacts2.jpg create mode 100644 frontend/web/images/bg_team-shadow.png create mode 100644 frontend/web/images/bg_team-tv.png create mode 100644 frontend/web/images/bg_team.jpg create mode 100644 frontend/web/images/bg_team2.jpg create mode 100644 frontend/web/images/bg_team3.jpg create mode 100644 frontend/web/images/blog-ico.jpg create mode 100644 frontend/web/images/censor_net_ua.png create mode 100644 frontend/web/images/circle-line.png create mode 100644 frontend/web/images/company-ico-1.png create mode 100644 frontend/web/images/company-ico-2.png create mode 100644 frontend/web/images/company-ico-3.png create mode 100644 frontend/web/images/contact-ico.png create mode 100644 frontend/web/images/contact-ico2.png create mode 100644 frontend/web/images/dialog-close.png create mode 100644 frontend/web/images/f_1.png create mode 100644 frontend/web/images/f_10.png create mode 100644 frontend/web/images/f_11.png create mode 100644 frontend/web/images/f_12.png create mode 100644 frontend/web/images/f_13.png create mode 100644 frontend/web/images/f_14.png create mode 100644 frontend/web/images/f_15.png create mode 100644 frontend/web/images/f_2.jpg create mode 100644 frontend/web/images/f_3.jpg create mode 100644 frontend/web/images/f_4.png create mode 100644 frontend/web/images/f_5.png create mode 100644 frontend/web/images/f_6.png create mode 100644 frontend/web/images/f_7.png create mode 100644 frontend/web/images/f_8.png create mode 100644 frontend/web/images/f_9.png create mode 100644 frontend/web/images/form-cont-arrow.jpg create mode 100644 frontend/web/images/fotka.jpg create mode 100644 frontend/web/images/foto-1.jpg create mode 100644 frontend/web/images/foto-2.jpg create mode 100644 frontend/web/images/graph-ico-1.jpg create mode 100644 frontend/web/images/graph-ico-2.jpg create mode 100644 frontend/web/images/graph-ico-3.jpg create mode 100644 frontend/web/images/graph-ico-4.jpg create mode 100644 frontend/web/images/graph-ico-5.jpg create mode 100644 frontend/web/images/ico-mail.png create mode 100644 frontend/web/images/ico-phone.png create mode 100644 frontend/web/images/ico-skype.png create mode 100644 frontend/web/images/ico_adress.png create mode 100644 frontend/web/images/ico_team_1.jpg create mode 100644 frontend/web/images/ico_team_2.jpg create mode 100644 frontend/web/images/ico_team_3.jpg create mode 100644 frontend/web/images/ico_team_4.jpg create mode 100644 frontend/web/images/icons.png create mode 100644 frontend/web/images/line_team.png create mode 100644 frontend/web/images/logo.png create mode 100644 frontend/web/images/logo_2.png create mode 100644 frontend/web/images/mail-cont.jpg create mode 100644 frontend/web/images/mapa_shadow.png create mode 100644 frontend/web/images/mark_contacts.png create mode 100644 frontend/web/images/monitor.png create mode 100644 frontend/web/images/photo_andrey_240x315px.jpg create mode 100644 frontend/web/images/portfolio.png create mode 100644 frontend/web/images/portfolio_1.png create mode 100644 frontend/web/images/portfolio_2.png create mode 100644 frontend/web/images/portfolio_3.png create mode 100644 frontend/web/images/rw-ExtremStyle_ua.png create mode 100644 frontend/web/images/rw-UkrAvtoDor_gov_ua.png create mode 100644 frontend/web/images/service.png create mode 100644 frontend/web/images/service_2.png create mode 100644 frontend/web/images/service_3.png create mode 100644 frontend/web/images/service_4.png create mode 100644 frontend/web/images/service_5.png create mode 100644 frontend/web/images/services/analitic/analitic.jpg create mode 100644 frontend/web/images/services/analitic/analitic.png create mode 100644 frontend/web/images/services/analitic/analitic_f_1.jpg create mode 100644 frontend/web/images/services/analitic/analitic_f_1.png create mode 100644 frontend/web/images/services/analitic/analitic_f_2.jpg create mode 100644 frontend/web/images/services/analitic/analitic_f_2.png create mode 100644 frontend/web/images/services/analitic/analitic_f_3.jpg create mode 100644 frontend/web/images/services/analitic/analitic_f_3.png create mode 100644 frontend/web/images/services/analitic/analitic_f_4.jpg create mode 100644 frontend/web/images/services/analitic/anton.png create mode 100644 frontend/web/images/services/analitic/b-audit-bg_smm.jpg create mode 100644 frontend/web/images/services/analitic/line-bg-services.png create mode 100644 frontend/web/images/services/analitic/line_smm.jpg create mode 100644 frontend/web/images/services/analitic/reason.jpg create mode 100644 frontend/web/images/services/analitic/road-analitic_f_1.jpg create mode 100644 frontend/web/images/services/analitic/road-analitic_f_2.jpg create mode 100644 frontend/web/images/services/analitic/road-analitic_f_3.jpg create mode 100644 frontend/web/images/services/analitic/road-analitic_f_4.jpg create mode 100644 frontend/web/images/services/analitic/road-analitic_f_5.jpg create mode 100644 frontend/web/images/services/analitic/road-analitic_f_6.jpg create mode 100644 frontend/web/images/services/analitic/road-segmnt.jpg create mode 100644 frontend/web/images/services/analitic/road.jpg create mode 100644 frontend/web/images/services/analitic/seed.jpg create mode 100644 frontend/web/images/services/analitic/seti_arrow.jpg create mode 100644 frontend/web/images/services/analitic/slide-1.jpg create mode 100644 frontend/web/images/services/analitic/slide-2.png create mode 100644 frontend/web/images/services/analitic/slide-3.png create mode 100644 frontend/web/images/services/analitic/smm_arrow.jpg create mode 100644 frontend/web/images/services/analitic/smm_f_2.jpg create mode 100644 frontend/web/images/services/analitic/soc_f_1.jpg create mode 100644 frontend/web/images/services/analitic/soc_f_2.jpg create mode 100644 frontend/web/images/services/analitic/soc_f_3.jpg create mode 100644 frontend/web/images/services/analitic/soc_f_4.jpg create mode 100644 frontend/web/images/services/analitic/soc_f_5.jpg create mode 100644 frontend/web/images/services/analitic/soc_f_6.jpg create mode 100644 frontend/web/images/services/analitic/soc_f_7.jpg create mode 100644 frontend/web/images/services/analitic/team-segmnt.jpg create mode 100644 frontend/web/images/services/analitic/why_analitic_f_1.jpg create mode 100644 frontend/web/images/services/analitic/why_analitic_f_11.jpg create mode 100644 frontend/web/images/services/analitic/why_analitic_f_12.jpg create mode 100644 frontend/web/images/services/analitic/why_analitic_f_13.jpg create mode 100644 frontend/web/images/services/analitic/why_analitic_f_2.jpg create mode 100644 frontend/web/images/services/analitic/why_analitic_f_3.jpg create mode 100644 frontend/web/images/services/analitic/why_analitic_f_4.jpg create mode 100644 frontend/web/images/services/analitic/why_analitic_f_5.jpg create mode 100644 frontend/web/images/services/analitic/why_analitic_f_6.jpg create mode 100644 frontend/web/images/services/analitic/why_analitic_f_7.jpg create mode 100644 frontend/web/images/services/analitic/why_analitic_f_8.jpg create mode 100644 frontend/web/images/services/analitic/why_analitic_f_9.jpg create mode 100644 frontend/web/images/services/content/b-audit-bg_smm.jpg create mode 100644 frontend/web/images/services/content/burse_f_1.jpg create mode 100644 frontend/web/images/services/content/burse_f_2.jpg create mode 100644 frontend/web/images/services/content/burse_f_3.jpg create mode 100644 frontend/web/images/services/content/content-circle-1-2.jpg create mode 100644 frontend/web/images/services/content/content-circle-1.jpg create mode 100644 frontend/web/images/services/content/content-circle-2-2.jpg create mode 100644 frontend/web/images/services/content/content-circle-2.jpg create mode 100644 frontend/web/images/services/content/content-circle-3-2.jpg create mode 100644 frontend/web/images/services/content/content-circle-3.jpg create mode 100644 frontend/web/images/services/content/content.png create mode 100644 frontend/web/images/services/content/content_f_1.jpg create mode 100644 frontend/web/images/services/content/content_f_2.jpg create mode 100644 frontend/web/images/services/content/content_f_3.jpg create mode 100644 frontend/web/images/services/content/content_f_4.jpg create mode 100644 frontend/web/images/services/content/line-bg-services.png create mode 100644 frontend/web/images/services/content/line_smm.jpg create mode 100644 frontend/web/images/services/content/reason.jpg create mode 100644 frontend/web/images/services/content/road-analitic_f_1.jpg create mode 100644 frontend/web/images/services/content/road-analitic_f_2.jpg create mode 100644 frontend/web/images/services/content/road-analitic_f_3.jpg create mode 100644 frontend/web/images/services/content/road-analitic_f_4.jpg create mode 100644 frontend/web/images/services/content/road-analitic_f_5.jpg create mode 100644 frontend/web/images/services/content/road-analitic_f_6.jpg create mode 100644 frontend/web/images/services/content/road-content.jpg create mode 100644 frontend/web/images/services/content/road-cpa_f_1.jpg create mode 100644 frontend/web/images/services/content/road-cpa_f_2.jpg create mode 100644 frontend/web/images/services/content/road-cpa_f_3.jpg create mode 100644 frontend/web/images/services/content/road-cpa_f_4.jpg create mode 100644 frontend/web/images/services/content/road-cpa_f_5.jpg create mode 100644 frontend/web/images/services/content/road-cpa_f_6.jpg create mode 100644 frontend/web/images/services/content/road-cpa_f_7.jpg create mode 100644 frontend/web/images/services/content/road-cpa_f_8.jpg create mode 100644 frontend/web/images/services/content/road-webcreat_f_1.jpg create mode 100644 frontend/web/images/services/content/road-webcreat_f_2.jpg create mode 100644 frontend/web/images/services/content/road-webcreat_f_3.jpg create mode 100644 frontend/web/images/services/content/road-webcreat_f_4.jpg create mode 100644 frontend/web/images/services/content/road-webcreat_f_5.jpg create mode 100644 frontend/web/images/services/content/road-webcreat_f_6.jpg create mode 100644 frontend/web/images/services/content/road-webcreat_f_7.jpg create mode 100644 frontend/web/images/services/content/road.jpg create mode 100644 frontend/web/images/services/content/seed.jpg create mode 100644 frontend/web/images/services/content/seo_f_1.png create mode 100644 frontend/web/images/services/content/seo_f_2.png create mode 100644 frontend/web/images/services/content/seo_f_3.png create mode 100644 frontend/web/images/services/content/seti-content.jpg create mode 100644 frontend/web/images/services/content/seti_arrow.jpg create mode 100644 frontend/web/images/services/content/slide-1.jpg create mode 100644 frontend/web/images/services/content/slide-2.png create mode 100644 frontend/web/images/services/content/slide-3.png create mode 100644 frontend/web/images/services/content/smm_arrow.jpg create mode 100644 frontend/web/images/services/content/smm_f_2.jpg create mode 100644 frontend/web/images/services/content/soc_f_1.jpg create mode 100644 frontend/web/images/services/content/soc_f_2.jpg create mode 100644 frontend/web/images/services/content/soc_f_3.jpg create mode 100644 frontend/web/images/services/content/soc_f_4.jpg create mode 100644 frontend/web/images/services/content/soc_f_5.jpg create mode 100644 frontend/web/images/services/content/soc_f_6.jpg create mode 100644 frontend/web/images/services/content/soc_f_7.jpg create mode 100644 frontend/web/images/services/content/team-webcreat.jpg create mode 100644 frontend/web/images/services/content/we-work-1.jpg create mode 100644 frontend/web/images/services/content/we-work-10.jpg create mode 100644 frontend/web/images/services/content/we-work-11.jpg create mode 100644 frontend/web/images/services/content/we-work-2.jpg create mode 100644 frontend/web/images/services/content/we-work-3.jpg create mode 100644 frontend/web/images/services/content/we-work-4.jpg create mode 100644 frontend/web/images/services/content/we-work-5.jpg create mode 100644 frontend/web/images/services/content/we-work-6.jpg create mode 100644 frontend/web/images/services/content/we-work-7.jpg create mode 100644 frontend/web/images/services/content/we-work-8.jpg create mode 100644 frontend/web/images/services/content/we-work-9.jpg create mode 100644 frontend/web/images/services/content/why_content_f_1.jpg create mode 100644 frontend/web/images/services/content/why_content_f_10.jpg create mode 100644 frontend/web/images/services/content/why_content_f_11.jpg create mode 100644 frontend/web/images/services/content/why_content_f_12.jpg create mode 100644 frontend/web/images/services/content/why_content_f_13.jpg create mode 100644 frontend/web/images/services/content/why_content_f_2.jpg create mode 100644 frontend/web/images/services/content/why_content_f_3.jpg create mode 100644 frontend/web/images/services/content/why_content_f_4.jpg create mode 100644 frontend/web/images/services/content/why_content_f_5.jpg create mode 100644 frontend/web/images/services/content/why_content_f_6.jpg create mode 100644 frontend/web/images/services/content/why_content_f_7.jpg create mode 100644 frontend/web/images/services/content/why_content_f_8.jpg create mode 100644 frontend/web/images/services/content/why_content_f_9.jpg create mode 100644 frontend/web/images/services/content/yulia.png create mode 100644 frontend/web/images/services/context/b-audit-bg_smm.jpg create mode 100644 frontend/web/images/services/context/context-seed_f_1.png create mode 100644 frontend/web/images/services/context/context-seed_f_2.png create mode 100644 frontend/web/images/services/context/context-seed_f_3.png create mode 100644 frontend/web/images/services/context/context-team.jpg create mode 100644 frontend/web/images/services/context/context.png create mode 100644 frontend/web/images/services/context/context_f_1.jpg create mode 100644 frontend/web/images/services/context/context_f_2.jpg create mode 100644 frontend/web/images/services/context/context_f_3.jpg create mode 100644 frontend/web/images/services/context/context_f_4.jpg create mode 100644 frontend/web/images/services/context/line-bg-services.png create mode 100644 frontend/web/images/services/context/line_smm.jpg create mode 100644 frontend/web/images/services/context/reason.jpg create mode 100644 frontend/web/images/services/context/road-content.jpg create mode 100644 frontend/web/images/services/context/road-context_f_1.jpg create mode 100644 frontend/web/images/services/context/road-context_f_2.jpg create mode 100644 frontend/web/images/services/context/road-context_f_3.jpg create mode 100644 frontend/web/images/services/context/road-context_f_4.jpg create mode 100644 frontend/web/images/services/context/road-context_f_5.jpg create mode 100644 frontend/web/images/services/context/road-context_f_6.jpg create mode 100644 frontend/web/images/services/context/road-context_f_7.jpg create mode 100644 frontend/web/images/services/context/road-context_f_8.png create mode 100644 frontend/web/images/services/context/seed.jpg create mode 100644 frontend/web/images/services/context/seti-s.jpg create mode 100644 frontend/web/images/services/context/seti_arrow.jpg create mode 100644 frontend/web/images/services/context/slide-1.jpg create mode 100644 frontend/web/images/services/context/slide-2.png create mode 100644 frontend/web/images/services/context/slide-3.png create mode 100644 frontend/web/images/services/context/smm_arrow.jpg create mode 100644 frontend/web/images/services/context/soc_f_1.jpg create mode 100644 frontend/web/images/services/context/soc_f_2.jpg create mode 100644 frontend/web/images/services/context/soc_f_3.jpg create mode 100644 frontend/web/images/services/context/soc_f_4.jpg create mode 100644 frontend/web/images/services/context/soc_f_5.jpg create mode 100644 frontend/web/images/services/context/soc_f_6.jpg create mode 100644 frontend/web/images/services/context/soc_f_7.jpg create mode 100644 frontend/web/images/services/context/sveta.png create mode 100644 frontend/web/images/services/context/why_context_f_1.jpg create mode 100644 frontend/web/images/services/context/why_context_f_10.jpg create mode 100644 frontend/web/images/services/context/why_context_f_11.jpg create mode 100644 frontend/web/images/services/context/why_context_f_12.jpg create mode 100644 frontend/web/images/services/context/why_context_f_13.jpg create mode 100644 frontend/web/images/services/context/why_context_f_14.jpg create mode 100644 frontend/web/images/services/context/why_context_f_15.jpg create mode 100644 frontend/web/images/services/context/why_context_f_2.jpg create mode 100644 frontend/web/images/services/context/why_context_f_3.jpg create mode 100644 frontend/web/images/services/context/why_context_f_4.jpg create mode 100644 frontend/web/images/services/context/why_context_f_5.jpg create mode 100644 frontend/web/images/services/context/why_context_f_6.jpg create mode 100644 frontend/web/images/services/context/why_context_f_7.jpg create mode 100644 frontend/web/images/services/context/why_context_f_8.jpg create mode 100644 frontend/web/images/services/context/why_context_f_9.jpg create mode 100644 frontend/web/images/services/context/Íîâûé òåêñòîâûé äîêóìåíò.txt create mode 100644 frontend/web/images/services/cpa/b-audit-bg_smm.jpg create mode 100644 frontend/web/images/services/cpa/burse_f_1.jpg create mode 100644 frontend/web/images/services/cpa/burse_f_2.jpg create mode 100644 frontend/web/images/services/cpa/burse_f_3.jpg create mode 100644 frontend/web/images/services/cpa/cpa.png create mode 100644 frontend/web/images/services/cpa/cpa_f_1.jpg create mode 100644 frontend/web/images/services/cpa/cpa_f_2.jpg create mode 100644 frontend/web/images/services/cpa/cpa_f_3.jpg create mode 100644 frontend/web/images/services/cpa/cpa_f_4.jpg create mode 100644 frontend/web/images/services/cpa/line-bg-services.png create mode 100644 frontend/web/images/services/cpa/line_smm.jpg create mode 100644 frontend/web/images/services/cpa/reason.jpg create mode 100644 frontend/web/images/services/cpa/road-analitic_f_1.jpg create mode 100644 frontend/web/images/services/cpa/road-analitic_f_2.jpg create mode 100644 frontend/web/images/services/cpa/road-analitic_f_3.jpg create mode 100644 frontend/web/images/services/cpa/road-analitic_f_4.jpg create mode 100644 frontend/web/images/services/cpa/road-analitic_f_5.jpg create mode 100644 frontend/web/images/services/cpa/road-analitic_f_6.jpg create mode 100644 frontend/web/images/services/cpa/road-cpa_f_1.jpg create mode 100644 frontend/web/images/services/cpa/road-cpa_f_2.jpg create mode 100644 frontend/web/images/services/cpa/road-cpa_f_3.jpg create mode 100644 frontend/web/images/services/cpa/road-cpa_f_4.jpg create mode 100644 frontend/web/images/services/cpa/road-cpa_f_5.jpg create mode 100644 frontend/web/images/services/cpa/road-cpa_f_6.jpg create mode 100644 frontend/web/images/services/cpa/road-cpa_f_7.jpg create mode 100644 frontend/web/images/services/cpa/road-cpa_f_8.jpg create mode 100644 frontend/web/images/services/cpa/road-seo.jpg create mode 100644 frontend/web/images/services/cpa/road-webcreat_f_1.jpg create mode 100644 frontend/web/images/services/cpa/road-webcreat_f_2.jpg create mode 100644 frontend/web/images/services/cpa/road-webcreat_f_3.jpg create mode 100644 frontend/web/images/services/cpa/road-webcreat_f_4.jpg create mode 100644 frontend/web/images/services/cpa/road-webcreat_f_5.jpg create mode 100644 frontend/web/images/services/cpa/road-webcreat_f_6.jpg create mode 100644 frontend/web/images/services/cpa/road-webcreat_f_7.jpg create mode 100644 frontend/web/images/services/cpa/road.jpg create mode 100644 frontend/web/images/services/cpa/seed.jpg create mode 100644 frontend/web/images/services/cpa/seo_f_1.png create mode 100644 frontend/web/images/services/cpa/seo_f_2.png create mode 100644 frontend/web/images/services/cpa/seo_f_3.png create mode 100644 frontend/web/images/services/cpa/seti-cpa.jpg create mode 100644 frontend/web/images/services/cpa/seti_arrow.jpg create mode 100644 frontend/web/images/services/cpa/slide-1.jpg create mode 100644 frontend/web/images/services/cpa/slide-2.png create mode 100644 frontend/web/images/services/cpa/slide-3.png create mode 100644 frontend/web/images/services/cpa/smm_arrow.jpg create mode 100644 frontend/web/images/services/cpa/smm_f_2.jpg create mode 100644 frontend/web/images/services/cpa/soc_f_1.jpg create mode 100644 frontend/web/images/services/cpa/soc_f_2.jpg create mode 100644 frontend/web/images/services/cpa/soc_f_3.jpg create mode 100644 frontend/web/images/services/cpa/soc_f_4.jpg create mode 100644 frontend/web/images/services/cpa/soc_f_5.jpg create mode 100644 frontend/web/images/services/cpa/soc_f_6.jpg create mode 100644 frontend/web/images/services/cpa/soc_f_7.jpg create mode 100644 frontend/web/images/services/cpa/sveta.png create mode 100644 frontend/web/images/services/cpa/team-webcreat.jpg create mode 100644 frontend/web/images/services/cpa/why_cpa_f_1.jpg create mode 100644 frontend/web/images/services/cpa/why_cpa_f_11.jpg create mode 100644 frontend/web/images/services/cpa/why_cpa_f_2.jpg create mode 100644 frontend/web/images/services/cpa/why_cpa_f_3.jpg create mode 100644 frontend/web/images/services/cpa/why_cpa_f_4.jpg create mode 100644 frontend/web/images/services/cpa/why_cpa_f_5.jpg create mode 100644 frontend/web/images/services/cpa/why_cpa_f_6.jpg create mode 100644 frontend/web/images/services/cpa/why_cpa_f_7.jpg create mode 100644 frontend/web/images/services/cpa/why_cpa_f_8.jpg create mode 100644 frontend/web/images/services/cpc/b-audit-bg_smm.jpg create mode 100644 frontend/web/images/services/cpc/context-team.jpg create mode 100644 frontend/web/images/services/cpc/cpc-seed_f_1.png create mode 100644 frontend/web/images/services/cpc/cpc-seed_f_2.png create mode 100644 frontend/web/images/services/cpc/cpc-seed_f_3.png create mode 100644 frontend/web/images/services/cpc/cpc.png create mode 100644 frontend/web/images/services/cpc/cpc_f_1.jpg create mode 100644 frontend/web/images/services/cpc/cpc_f_2.jpg create mode 100644 frontend/web/images/services/cpc/cpc_f_3.jpg create mode 100644 frontend/web/images/services/cpc/cpc_f_4.jpg create mode 100644 frontend/web/images/services/cpc/line-bg-services.png create mode 100644 frontend/web/images/services/cpc/line_smm.jpg create mode 100644 frontend/web/images/services/cpc/reason.jpg create mode 100644 frontend/web/images/services/cpc/road-content.jpg create mode 100644 frontend/web/images/services/cpc/road-cpc_f_1.jpg create mode 100644 frontend/web/images/services/cpc/road-cpc_f_2.jpg create mode 100644 frontend/web/images/services/cpc/road-cpc_f_3.jpg create mode 100644 frontend/web/images/services/cpc/road-cpc_f_4.jpg create mode 100644 frontend/web/images/services/cpc/road-cpc_f_5.jpg create mode 100644 frontend/web/images/services/cpc/road-cpc_f_6.jpg create mode 100644 frontend/web/images/services/cpc/road-cpc_f_7.jpg create mode 100644 frontend/web/images/services/cpc/road-cpc_f_8.png create mode 100644 frontend/web/images/services/cpc/seed.jpg create mode 100644 frontend/web/images/services/cpc/seti-cpc.jpg create mode 100644 frontend/web/images/services/cpc/seti_arrow.jpg create mode 100644 frontend/web/images/services/cpc/slide-1.jpg create mode 100644 frontend/web/images/services/cpc/slide-2.png create mode 100644 frontend/web/images/services/cpc/slide-3.png create mode 100644 frontend/web/images/services/cpc/smm_arrow.jpg create mode 100644 frontend/web/images/services/cpc/soc_f_1.jpg create mode 100644 frontend/web/images/services/cpc/soc_f_2.jpg create mode 100644 frontend/web/images/services/cpc/soc_f_3.jpg create mode 100644 frontend/web/images/services/cpc/soc_f_4.jpg create mode 100644 frontend/web/images/services/cpc/soc_f_5.jpg create mode 100644 frontend/web/images/services/cpc/soc_f_6.jpg create mode 100644 frontend/web/images/services/cpc/soc_f_7.jpg create mode 100644 frontend/web/images/services/cpc/why_cpc_f_1.jpg create mode 100644 frontend/web/images/services/cpc/why_cpc_f_10.jpg create mode 100644 frontend/web/images/services/cpc/why_cpc_f_2.jpg create mode 100644 frontend/web/images/services/cpc/why_cpc_f_3.jpg create mode 100644 frontend/web/images/services/cpc/why_cpc_f_4.jpg create mode 100644 frontend/web/images/services/cpc/why_cpc_f_5.jpg create mode 100644 frontend/web/images/services/cpc/why_cpc_f_6.jpg create mode 100644 frontend/web/images/services/cpc/why_cpc_f_7.jpg create mode 100644 frontend/web/images/services/cpc/why_cpc_f_8.jpg create mode 100644 frontend/web/images/services/cpc/why_cpc_f_9.jpg create mode 100644 frontend/web/images/services/cpc/yulia.png create mode 100644 frontend/web/images/services/cpc/Íîâûé òåêñòîâûé äîêóìåíò.txt create mode 100644 frontend/web/images/services/design/analitic_f_1.jpg create mode 100644 frontend/web/images/services/design/analitic_f_2.jpg create mode 100644 frontend/web/images/services/design/analitic_f_3.jpg create mode 100644 frontend/web/images/services/design/analitic_f_4.jpg create mode 100644 frontend/web/images/services/design/andrey.png create mode 100644 frontend/web/images/services/design/b-audit-bg_smm.jpg create mode 100644 frontend/web/images/services/design/design.png create mode 100644 frontend/web/images/services/design/design_f_1.jpg create mode 100644 frontend/web/images/services/design/design_f_1.png create mode 100644 frontend/web/images/services/design/design_f_2.jpg create mode 100644 frontend/web/images/services/design/design_f_2.png create mode 100644 frontend/web/images/services/design/design_f_3.jpg create mode 100644 frontend/web/images/services/design/design_f_3.png create mode 100644 frontend/web/images/services/design/design_f_4.jpg create mode 100644 frontend/web/images/services/design/line-bg-services.png create mode 100644 frontend/web/images/services/design/line_smm.jpg create mode 100644 frontend/web/images/services/design/reason.jpg create mode 100644 frontend/web/images/services/design/road-design_f_1.jpg create mode 100644 frontend/web/images/services/design/road-design_f_2.jpg create mode 100644 frontend/web/images/services/design/road-design_f_3.jpg create mode 100644 frontend/web/images/services/design/road-design_f_4.jpg create mode 100644 frontend/web/images/services/design/road-design_f_5.jpg create mode 100644 frontend/web/images/services/design/road-design_f_6.jpg create mode 100644 frontend/web/images/services/design/road-design_f_7.jpg create mode 100644 frontend/web/images/services/design/road-design_f_8.jpg create mode 100644 frontend/web/images/services/design/road-segmnt.jpg create mode 100644 frontend/web/images/services/design/road.jpg create mode 100644 frontend/web/images/services/design/seed.jpg create mode 100644 frontend/web/images/services/design/seti-design.jpg create mode 100644 frontend/web/images/services/design/seti_arrow.jpg create mode 100644 frontend/web/images/services/design/slide-1.jpg create mode 100644 frontend/web/images/services/design/slide-2.png create mode 100644 frontend/web/images/services/design/slide-3.png create mode 100644 frontend/web/images/services/design/smm_arrow.jpg create mode 100644 frontend/web/images/services/design/smm_f_2.jpg create mode 100644 frontend/web/images/services/design/soc_f_1.jpg create mode 100644 frontend/web/images/services/design/soc_f_2.jpg create mode 100644 frontend/web/images/services/design/soc_f_3.jpg create mode 100644 frontend/web/images/services/design/soc_f_4.jpg create mode 100644 frontend/web/images/services/design/soc_f_5.jpg create mode 100644 frontend/web/images/services/design/soc_f_6.jpg create mode 100644 frontend/web/images/services/design/soc_f_7.jpg create mode 100644 frontend/web/images/services/design/team-webcreat.jpg create mode 100644 frontend/web/images/services/design/why_webdesign_f_1.jpg create mode 100644 frontend/web/images/services/design/why_webdesign_f_2.jpg create mode 100644 frontend/web/images/services/design/why_webdesign_f_3.jpg create mode 100644 frontend/web/images/services/design/why_webdesign_f_4.jpg create mode 100644 frontend/web/images/services/design/why_webdesign_f_5.jpg create mode 100644 frontend/web/images/services/design/why_webdesign_f_6.jpg create mode 100644 frontend/web/images/services/design/why_webdesign_f_7.jpg create mode 100644 frontend/web/images/services/design/why_webdesign_f_8.jpg create mode 100644 frontend/web/images/services/design/why_webdesign_f_9.jpg create mode 100644 frontend/web/images/services/email/b-audit-bg_smm.jpg create mode 100644 frontend/web/images/services/email/email.png create mode 100644 frontend/web/images/services/email/line-bg-services.png create mode 100644 frontend/web/images/services/email/line_smm.jpg create mode 100644 frontend/web/images/services/email/reason.jpg create mode 100644 frontend/web/images/services/email/road-email-1.jpg create mode 100644 frontend/web/images/services/email/road-email-10.jpg create mode 100644 frontend/web/images/services/email/road-email-11.jpg create mode 100644 frontend/web/images/services/email/road-email-12.jpg create mode 100644 frontend/web/images/services/email/road-email-2.jpg create mode 100644 frontend/web/images/services/email/road-email-3.jpg create mode 100644 frontend/web/images/services/email/road-email-4.jpg create mode 100644 frontend/web/images/services/email/road-email-5.jpg create mode 100644 frontend/web/images/services/email/road-email-6.jpg create mode 100644 frontend/web/images/services/email/road-email-7.jpg create mode 100644 frontend/web/images/services/email/road-email-8.jpg create mode 100644 frontend/web/images/services/email/road-email-9.jpg create mode 100644 frontend/web/images/services/email/road-email.jpg create mode 100644 frontend/web/images/services/email/road.jpg create mode 100644 frontend/web/images/services/email/seed_f_1.png create mode 100644 frontend/web/images/services/email/seed_f_2.png create mode 100644 frontend/web/images/services/email/seed_f_3.png create mode 100644 frontend/web/images/services/email/seti-y-2.jpg create mode 100644 frontend/web/images/services/email/seti_arrow.jpg create mode 100644 frontend/web/images/services/email/slide-1.jpg create mode 100644 frontend/web/images/services/email/slide-2.png create mode 100644 frontend/web/images/services/email/slide-3.png create mode 100644 frontend/web/images/services/email/smm_arrow.jpg create mode 100644 frontend/web/images/services/email/smm_f_1.jpg create mode 100644 frontend/web/images/services/email/smm_f_2.jpg create mode 100644 frontend/web/images/services/email/smm_f_3.jpg create mode 100644 frontend/web/images/services/email/smm_f_4.jpg create mode 100644 frontend/web/images/services/email/soc_f_1.jpg create mode 100644 frontend/web/images/services/email/soc_f_2.jpg create mode 100644 frontend/web/images/services/email/soc_f_3.jpg create mode 100644 frontend/web/images/services/email/soc_f_4.jpg create mode 100644 frontend/web/images/services/email/soc_f_5.jpg create mode 100644 frontend/web/images/services/email/soc_f_6.jpg create mode 100644 frontend/web/images/services/email/soc_f_7.jpg create mode 100644 frontend/web/images/services/email/team.jpg create mode 100644 frontend/web/images/services/email/why_email_f_1.jpg create mode 100644 frontend/web/images/services/email/why_email_f_11.jpg create mode 100644 frontend/web/images/services/email/why_email_f_12.jpg create mode 100644 frontend/web/images/services/email/why_email_f_13.jpg create mode 100644 frontend/web/images/services/email/why_email_f_14.jpg create mode 100644 frontend/web/images/services/email/why_email_f_15.jpg create mode 100644 frontend/web/images/services/email/why_email_f_2.jpg create mode 100644 frontend/web/images/services/email/why_email_f_3.jpg create mode 100644 frontend/web/images/services/email/why_email_f_4.jpg create mode 100644 frontend/web/images/services/email/why_email_f_5.jpg create mode 100644 frontend/web/images/services/email/why_email_f_6.jpg create mode 100644 frontend/web/images/services/email/why_email_f_7.jpg create mode 100644 frontend/web/images/services/email/why_email_f_8.jpg create mode 100644 frontend/web/images/services/email/yulia.png create mode 100644 frontend/web/images/services/integration/andrey.png create mode 100644 frontend/web/images/services/integration/b-audit-bg_smm.jpg create mode 100644 frontend/web/images/services/integration/integracia.png create mode 100644 frontend/web/images/services/integration/integracia_f_1.jpg create mode 100644 frontend/web/images/services/integration/integracia_f_1.png create mode 100644 frontend/web/images/services/integration/integracia_f_2.jpg create mode 100644 frontend/web/images/services/integration/integracia_f_2.png create mode 100644 frontend/web/images/services/integration/integracia_f_3.jpg create mode 100644 frontend/web/images/services/integration/integracia_f_3.png create mode 100644 frontend/web/images/services/integration/integracia_f_4.jpg create mode 100644 frontend/web/images/services/integration/line-bg-services.png create mode 100644 frontend/web/images/services/integration/line_smm.jpg create mode 100644 frontend/web/images/services/integration/reason.jpg create mode 100644 frontend/web/images/services/integration/road-integracia_f_1.jpg create mode 100644 frontend/web/images/services/integration/road-integracia_f_2.jpg create mode 100644 frontend/web/images/services/integration/road-integracia_f_3.jpg create mode 100644 frontend/web/images/services/integration/road-integracia_f_4.jpg create mode 100644 frontend/web/images/services/integration/road-integracia_f_5.jpg create mode 100644 frontend/web/images/services/integration/road-integracia_f_6.jpg create mode 100644 frontend/web/images/services/integration/road-integracia_f_7.jpg create mode 100644 frontend/web/images/services/integration/road-integracia_f_8.jpg create mode 100644 frontend/web/images/services/integration/road-segmnt.jpg create mode 100644 frontend/web/images/services/integration/seed.jpg create mode 100644 frontend/web/images/services/integration/seti-integracia.jpg create mode 100644 frontend/web/images/services/integration/seti_arrow.jpg create mode 100644 frontend/web/images/services/integration/slide-1.jpg create mode 100644 frontend/web/images/services/integration/slide-2.png create mode 100644 frontend/web/images/services/integration/slide-3.png create mode 100644 frontend/web/images/services/integration/smm_arrow.jpg create mode 100644 frontend/web/images/services/integration/smm_f_2.jpg create mode 100644 frontend/web/images/services/integration/soc_f_1.jpg create mode 100644 frontend/web/images/services/integration/soc_f_2.jpg create mode 100644 frontend/web/images/services/integration/soc_f_3.jpg create mode 100644 frontend/web/images/services/integration/soc_f_4.jpg create mode 100644 frontend/web/images/services/integration/soc_f_5.jpg create mode 100644 frontend/web/images/services/integration/soc_f_6.jpg create mode 100644 frontend/web/images/services/integration/soc_f_7.jpg create mode 100644 frontend/web/images/services/integration/team-integracia.jpg create mode 100644 frontend/web/images/services/integration/why_integracia_f_1.jpg create mode 100644 frontend/web/images/services/integration/why_integracia_f_10.jpg create mode 100644 frontend/web/images/services/integration/why_integracia_f_11.jpg create mode 100644 frontend/web/images/services/integration/why_integracia_f_2.jpg create mode 100644 frontend/web/images/services/integration/why_integracia_f_3.jpg create mode 100644 frontend/web/images/services/integration/why_integracia_f_4.jpg create mode 100644 frontend/web/images/services/integration/why_integracia_f_5.jpg create mode 100644 frontend/web/images/services/integration/why_integracia_f_6.jpg create mode 100644 frontend/web/images/services/integration/why_integracia_f_7.jpg create mode 100644 frontend/web/images/services/integration/why_integracia_f_8.jpg create mode 100644 frontend/web/images/services/integration/why_integracia_f_9.jpg create mode 100644 frontend/web/images/services/segmnt/anton.png create mode 100644 frontend/web/images/services/segmnt/b-audit-bg_smm.jpg create mode 100644 frontend/web/images/services/segmnt/line-bg-services.png create mode 100644 frontend/web/images/services/segmnt/line_smm.jpg create mode 100644 frontend/web/images/services/segmnt/reason.jpg create mode 100644 frontend/web/images/services/segmnt/road-segmnt.jpg create mode 100644 frontend/web/images/services/segmnt/road-segmnt_f_1.jpg create mode 100644 frontend/web/images/services/segmnt/road-segmnt_f_2.jpg create mode 100644 frontend/web/images/services/segmnt/road-segmnt_f_3.jpg create mode 100644 frontend/web/images/services/segmnt/road-segmnt_f_4.jpg create mode 100644 frontend/web/images/services/segmnt/road-segmnt_f_5.jpg create mode 100644 frontend/web/images/services/segmnt/road-segmnt_f_6.jpg create mode 100644 frontend/web/images/services/segmnt/road.jpg create mode 100644 frontend/web/images/services/segmnt/seed.jpg create mode 100644 frontend/web/images/services/segmnt/seed_f_1.png create mode 100644 frontend/web/images/services/segmnt/seed_f_2.png create mode 100644 frontend/web/images/services/segmnt/seed_f_3.png create mode 100644 frontend/web/images/services/segmnt/segmnt.png create mode 100644 frontend/web/images/services/segmnt/segmnt_f_1.jpg create mode 100644 frontend/web/images/services/segmnt/segmnt_f_2.jpg create mode 100644 frontend/web/images/services/segmnt/segmnt_f_3.jpg create mode 100644 frontend/web/images/services/segmnt/segmnt_f_4.jpg create mode 100644 frontend/web/images/services/segmnt/seti-segmnt.jpg create mode 100644 frontend/web/images/services/segmnt/seti_arrow.jpg create mode 100644 frontend/web/images/services/segmnt/slide-1.jpg create mode 100644 frontend/web/images/services/segmnt/slide-2.png create mode 100644 frontend/web/images/services/segmnt/slide-3.png create mode 100644 frontend/web/images/services/segmnt/smm_arrow.jpg create mode 100644 frontend/web/images/services/segmnt/soc_f_1.jpg create mode 100644 frontend/web/images/services/segmnt/soc_f_2.jpg create mode 100644 frontend/web/images/services/segmnt/soc_f_3.jpg create mode 100644 frontend/web/images/services/segmnt/soc_f_4.jpg create mode 100644 frontend/web/images/services/segmnt/soc_f_5.jpg create mode 100644 frontend/web/images/services/segmnt/soc_f_6.jpg create mode 100644 frontend/web/images/services/segmnt/soc_f_7.jpg create mode 100644 frontend/web/images/services/segmnt/team-segmnt.jpg create mode 100644 frontend/web/images/services/segmnt/why_segmnt_f_1.jpg create mode 100644 frontend/web/images/services/segmnt/why_segmnt_f_10.jpg create mode 100644 frontend/web/images/services/segmnt/why_segmnt_f_2.jpg create mode 100644 frontend/web/images/services/segmnt/why_segmnt_f_3.jpg create mode 100644 frontend/web/images/services/segmnt/why_segmnt_f_4.jpg create mode 100644 frontend/web/images/services/segmnt/why_segmnt_f_5.jpg create mode 100644 frontend/web/images/services/segmnt/why_segmnt_f_6.jpg create mode 100644 frontend/web/images/services/segmnt/why_segmnt_f_7.jpg create mode 100644 frontend/web/images/services/segmnt/why_segmnt_f_8.jpg create mode 100644 frontend/web/images/services/segmnt/why_segmnt_f_9.jpg create mode 100644 frontend/web/images/services/seo/anton.png create mode 100644 frontend/web/images/services/seo/b-audit-bg_smm.jpg create mode 100644 frontend/web/images/services/seo/line-bg-services.png create mode 100644 frontend/web/images/services/seo/line_smm.jpg create mode 100644 frontend/web/images/services/seo/reason.jpg create mode 100644 frontend/web/images/services/seo/road-analitic_f_1.jpg create mode 100644 frontend/web/images/services/seo/road-analitic_f_2.jpg create mode 100644 frontend/web/images/services/seo/road-analitic_f_3.jpg create mode 100644 frontend/web/images/services/seo/road-analitic_f_4.jpg create mode 100644 frontend/web/images/services/seo/road-analitic_f_5.jpg create mode 100644 frontend/web/images/services/seo/road-analitic_f_6.jpg create mode 100644 frontend/web/images/services/seo/road-seo.jpg create mode 100644 frontend/web/images/services/seo/road-webcreat_f_1.jpg create mode 100644 frontend/web/images/services/seo/road-webcreat_f_2.jpg create mode 100644 frontend/web/images/services/seo/road-webcreat_f_3.jpg create mode 100644 frontend/web/images/services/seo/road-webcreat_f_4.jpg create mode 100644 frontend/web/images/services/seo/road-webcreat_f_5.jpg create mode 100644 frontend/web/images/services/seo/road-webcreat_f_6.jpg create mode 100644 frontend/web/images/services/seo/road-webcreat_f_7.jpg create mode 100644 frontend/web/images/services/seo/road.jpg create mode 100644 frontend/web/images/services/seo/seed.jpg create mode 100644 frontend/web/images/services/seo/seo.png create mode 100644 frontend/web/images/services/seo/seo_f_1.jpg create mode 100644 frontend/web/images/services/seo/seo_f_1.png create mode 100644 frontend/web/images/services/seo/seo_f_2.jpg create mode 100644 frontend/web/images/services/seo/seo_f_2.png create mode 100644 frontend/web/images/services/seo/seo_f_3.jpg create mode 100644 frontend/web/images/services/seo/seo_f_3.png create mode 100644 frontend/web/images/services/seo/seo_f_4.jpg create mode 100644 frontend/web/images/services/seo/seti-webcreat.jpg create mode 100644 frontend/web/images/services/seo/seti_arrow.jpg create mode 100644 frontend/web/images/services/seo/slide-1.jpg create mode 100644 frontend/web/images/services/seo/slide-2.png create mode 100644 frontend/web/images/services/seo/slide-3.png create mode 100644 frontend/web/images/services/seo/smm_arrow.jpg create mode 100644 frontend/web/images/services/seo/smm_f_2.jpg create mode 100644 frontend/web/images/services/seo/soc_f_1.jpg create mode 100644 frontend/web/images/services/seo/soc_f_2.jpg create mode 100644 frontend/web/images/services/seo/soc_f_3.jpg create mode 100644 frontend/web/images/services/seo/soc_f_4.jpg create mode 100644 frontend/web/images/services/seo/soc_f_5.jpg create mode 100644 frontend/web/images/services/seo/soc_f_6.jpg create mode 100644 frontend/web/images/services/seo/soc_f_7.jpg create mode 100644 frontend/web/images/services/seo/team-webcreat.jpg create mode 100644 frontend/web/images/services/seo/why_seot_f_1.jpg create mode 100644 frontend/web/images/services/seo/why_seot_f_10.jpg create mode 100644 frontend/web/images/services/seo/why_seot_f_11.jpg create mode 100644 frontend/web/images/services/seo/why_seot_f_12.jpg create mode 100644 frontend/web/images/services/seo/why_seot_f_13.jpg create mode 100644 frontend/web/images/services/seo/why_seot_f_14.jpg create mode 100644 frontend/web/images/services/seo/why_seot_f_15.jpg create mode 100644 frontend/web/images/services/seo/why_seot_f_2.jpg create mode 100644 frontend/web/images/services/seo/why_seot_f_3.jpg create mode 100644 frontend/web/images/services/seo/why_seot_f_4.jpg create mode 100644 frontend/web/images/services/seo/why_seot_f_5.jpg create mode 100644 frontend/web/images/services/seo/why_seot_f_6.jpg create mode 100644 frontend/web/images/services/seo/why_seot_f_7.jpg create mode 100644 frontend/web/images/services/seo/why_seot_f_8.jpg create mode 100644 frontend/web/images/services/seo/why_seot_f_9.jpg create mode 100644 frontend/web/images/services/serm/b-audit-bg_smm.jpg create mode 100644 frontend/web/images/services/serm/line-bg-services.png create mode 100644 frontend/web/images/services/serm/line_smm.jpg create mode 100644 frontend/web/images/services/serm/reason.jpg create mode 100644 frontend/web/images/services/serm/road.jpg create mode 100644 frontend/web/images/services/serm/road_f_1.jpg create mode 100644 frontend/web/images/services/serm/road_f_2.jpg create mode 100644 frontend/web/images/services/serm/road_f_3.jpg create mode 100644 frontend/web/images/services/serm/road_f_4.jpg create mode 100644 frontend/web/images/services/serm/road_f_5.jpg create mode 100644 frontend/web/images/services/serm/road_f_6.jpg create mode 100644 frontend/web/images/services/serm/road_f_7.jpg create mode 100644 frontend/web/images/services/serm/road_f_8.jpg create mode 100644 frontend/web/images/services/serm/road_serm-1.jpg create mode 100644 frontend/web/images/services/serm/road_serm-2.jpg create mode 100644 frontend/web/images/services/serm/road_serm-3.jpg create mode 100644 frontend/web/images/services/serm/road_serm-4.jpg create mode 100644 frontend/web/images/services/serm/road_serm-5.jpg create mode 100644 frontend/web/images/services/serm/road_serm-6.jpg create mode 100644 frontend/web/images/services/serm/road_serm-7.jpg create mode 100644 frontend/web/images/services/serm/road_serm-8.jpg create mode 100644 frontend/web/images/services/serm/seed_f_1.png create mode 100644 frontend/web/images/services/serm/seed_f_2.png create mode 100644 frontend/web/images/services/serm/seed_f_3.png create mode 100644 frontend/web/images/services/serm/serm.png create mode 100644 frontend/web/images/services/serm/seti-y.jpg create mode 100644 frontend/web/images/services/serm/seti_arrow.jpg create mode 100644 frontend/web/images/services/serm/slide-1.jpg create mode 100644 frontend/web/images/services/serm/slide-2.png create mode 100644 frontend/web/images/services/serm/slide-3.png create mode 100644 frontend/web/images/services/serm/smm_arrow.jpg create mode 100644 frontend/web/images/services/serm/smm_f_1.jpg create mode 100644 frontend/web/images/services/serm/smm_f_2.jpg create mode 100644 frontend/web/images/services/serm/smm_f_3.jpg create mode 100644 frontend/web/images/services/serm/smm_f_4.jpg create mode 100644 frontend/web/images/services/serm/soc_f_1.jpg create mode 100644 frontend/web/images/services/serm/soc_f_2.jpg create mode 100644 frontend/web/images/services/serm/soc_f_3.jpg create mode 100644 frontend/web/images/services/serm/soc_f_4.jpg create mode 100644 frontend/web/images/services/serm/soc_f_5.jpg create mode 100644 frontend/web/images/services/serm/soc_f_6.jpg create mode 100644 frontend/web/images/services/serm/soc_f_7.jpg create mode 100644 frontend/web/images/services/serm/team.jpg create mode 100644 frontend/web/images/services/serm/why_serm_f_1.jpg create mode 100644 frontend/web/images/services/serm/why_serm_f_10.jpg create mode 100644 frontend/web/images/services/serm/why_serm_f_11.jpg create mode 100644 frontend/web/images/services/serm/why_serm_f_12.jpg create mode 100644 frontend/web/images/services/serm/why_serm_f_13.jpg create mode 100644 frontend/web/images/services/serm/why_serm_f_14.jpg create mode 100644 frontend/web/images/services/serm/why_serm_f_2.jpg create mode 100644 frontend/web/images/services/serm/why_serm_f_3.jpg create mode 100644 frontend/web/images/services/serm/why_serm_f_4.jpg create mode 100644 frontend/web/images/services/serm/why_serm_f_5.jpg create mode 100644 frontend/web/images/services/serm/why_serm_f_6.jpg create mode 100644 frontend/web/images/services/serm/why_serm_f_7.jpg create mode 100644 frontend/web/images/services/serm/why_serm_f_8.jpg create mode 100644 frontend/web/images/services/serm/why_serm_f_9.jpg create mode 100644 frontend/web/images/services/serm/work_1.jpg create mode 100644 frontend/web/images/services/serm/work_2.jpg create mode 100644 frontend/web/images/services/serm/work_3.jpg create mode 100644 frontend/web/images/services/serm/work_4.jpg create mode 100644 frontend/web/images/services/serm/work_5.jpg create mode 100644 frontend/web/images/services/serm/work_6.jpg create mode 100644 frontend/web/images/services/serm/work_7.jpg create mode 100644 frontend/web/images/services/serm/work_8.jpg create mode 100644 frontend/web/images/services/serm/yulia.png create mode 100644 frontend/web/images/services/smm/artem.png create mode 100644 frontend/web/images/services/smm/b-audit-bg_smm.jpg create mode 100644 frontend/web/images/services/smm/line-bg-services.png create mode 100644 frontend/web/images/services/smm/line_smm.jpg create mode 100644 frontend/web/images/services/smm/reason.jpg create mode 100644 frontend/web/images/services/smm/road.jpg create mode 100644 frontend/web/images/services/smm/road_f_1.jpg create mode 100644 frontend/web/images/services/smm/road_f_2.jpg create mode 100644 frontend/web/images/services/smm/road_f_3.jpg create mode 100644 frontend/web/images/services/smm/road_f_4.jpg create mode 100644 frontend/web/images/services/smm/road_f_5.jpg create mode 100644 frontend/web/images/services/smm/road_f_6.jpg create mode 100644 frontend/web/images/services/smm/road_f_7.jpg create mode 100644 frontend/web/images/services/smm/road_f_8.jpg create mode 100644 frontend/web/images/services/smm/seed.jpg create mode 100644 frontend/web/images/services/smm/seed_f_1.png create mode 100644 frontend/web/images/services/smm/seed_f_2.png create mode 100644 frontend/web/images/services/smm/seed_f_3.png create mode 100644 frontend/web/images/services/smm/seti.jpg create mode 100644 frontend/web/images/services/smm/seti_arrow.jpg create mode 100644 frontend/web/images/services/smm/slide-1.jpg create mode 100644 frontend/web/images/services/smm/slide-2.png create mode 100644 frontend/web/images/services/smm/slide-3.png create mode 100644 frontend/web/images/services/smm/smm.png create mode 100644 frontend/web/images/services/smm/smm_arrow.jpg create mode 100644 frontend/web/images/services/smm/smm_f_1.jpg create mode 100644 frontend/web/images/services/smm/smm_f_2.jpg create mode 100644 frontend/web/images/services/smm/smm_f_3.jpg create mode 100644 frontend/web/images/services/smm/smm_f_4.jpg create mode 100644 frontend/web/images/services/smm/soc_f_1.jpg create mode 100644 frontend/web/images/services/smm/soc_f_2.jpg create mode 100644 frontend/web/images/services/smm/soc_f_3.jpg create mode 100644 frontend/web/images/services/smm/soc_f_4.jpg create mode 100644 frontend/web/images/services/smm/soc_f_5.jpg create mode 100644 frontend/web/images/services/smm/soc_f_6.jpg create mode 100644 frontend/web/images/services/smm/soc_f_7.jpg create mode 100644 frontend/web/images/services/smm/team.jpg create mode 100644 frontend/web/images/services/smm/why_smm_f_1.jpg create mode 100644 frontend/web/images/services/smm/why_smm_f_2.jpg create mode 100644 frontend/web/images/services/smm/why_smm_f_3.jpg create mode 100644 frontend/web/images/services/smm/why_smm_f_4.jpg create mode 100644 frontend/web/images/services/smm/why_smm_f_5.jpg create mode 100644 frontend/web/images/services/smm/why_smm_f_6.jpg create mode 100644 frontend/web/images/services/smm/why_smm_f_7.jpg create mode 100644 frontend/web/images/services/smm/why_smm_f_8.jpg create mode 100644 frontend/web/images/services/usability/analiz-1.jpg create mode 100644 frontend/web/images/services/usability/analiz-2.jpg create mode 100644 frontend/web/images/services/usability/analiz-3.jpg create mode 100644 frontend/web/images/services/usability/analiz-4.jpg create mode 100644 frontend/web/images/services/usability/analiz-5.jpg create mode 100644 frontend/web/images/services/usability/analiz-6.jpg create mode 100644 frontend/web/images/services/usability/analiz-7.jpg create mode 100644 frontend/web/images/services/usability/analiz-8.jpg create mode 100644 frontend/web/images/services/usability/anton.png create mode 100644 frontend/web/images/services/usability/b-audit-bg_smm.jpg create mode 100644 frontend/web/images/services/usability/line-bg-services.png create mode 100644 frontend/web/images/services/usability/line_smm.jpg create mode 100644 frontend/web/images/services/usability/reason.jpg create mode 100644 frontend/web/images/services/usability/seed.jpg create mode 100644 frontend/web/images/services/usability/seed_f_1.png create mode 100644 frontend/web/images/services/usability/seed_f_2.png create mode 100644 frontend/web/images/services/usability/seed_f_3.png create mode 100644 frontend/web/images/services/usability/servise-1.jpg create mode 100644 frontend/web/images/services/usability/servise-2.jpg create mode 100644 frontend/web/images/services/usability/servise-3.jpg create mode 100644 frontend/web/images/services/usability/seti_arrow.jpg create mode 100644 frontend/web/images/services/usability/slide-1.jpg create mode 100644 frontend/web/images/services/usability/slide-2.png create mode 100644 frontend/web/images/services/usability/slide-3.png create mode 100644 frontend/web/images/services/usability/smm_arrow.jpg create mode 100644 frontend/web/images/services/usability/smm_f_2.jpg create mode 100644 frontend/web/images/services/usability/smm_f_3.jpg create mode 100644 frontend/web/images/services/usability/smm_f_4.jpg create mode 100644 frontend/web/images/services/usability/soc_f_1.jpg create mode 100644 frontend/web/images/services/usability/soc_f_2.jpg create mode 100644 frontend/web/images/services/usability/soc_f_3.jpg create mode 100644 frontend/web/images/services/usability/soc_f_4.jpg create mode 100644 frontend/web/images/services/usability/soc_f_5.jpg create mode 100644 frontend/web/images/services/usability/soc_f_6.jpg create mode 100644 frontend/web/images/services/usability/soc_f_7.jpg create mode 100644 frontend/web/images/services/usability/team.jpg create mode 100644 frontend/web/images/services/usability/uability_f_4.jpg create mode 100644 frontend/web/images/services/usability/usability-site.jpg create mode 100644 frontend/web/images/services/usability/usability.jpg create mode 100644 frontend/web/images/services/usability/usability.png create mode 100644 frontend/web/images/services/usability/why_usability_f_1.jpg create mode 100644 frontend/web/images/services/usability/why_usability_f_2.jpg create mode 100644 frontend/web/images/services/usability/why_usability_f_3.jpg create mode 100644 frontend/web/images/services/usability/why_usability_f_4.jpg create mode 100644 frontend/web/images/services/usability/why_usability_f_5.jpg create mode 100644 frontend/web/images/services/usability/why_usability_f_6.jpg create mode 100644 frontend/web/images/services/usability/why_usability_f_7.jpg create mode 100644 frontend/web/images/services/usability/why_usability_f_8.jpg create mode 100644 frontend/web/images/services/webcreat/analitic_f_1.jpg create mode 100644 frontend/web/images/services/webcreat/analitic_f_2.jpg create mode 100644 frontend/web/images/services/webcreat/analitic_f_3.jpg create mode 100644 frontend/web/images/services/webcreat/analitic_f_4.jpg create mode 100644 frontend/web/images/services/webcreat/andrey.png create mode 100644 frontend/web/images/services/webcreat/b-audit-bg_smm.jpg create mode 100644 frontend/web/images/services/webcreat/line-bg-services.png create mode 100644 frontend/web/images/services/webcreat/line_smm.jpg create mode 100644 frontend/web/images/services/webcreat/reason.jpg create mode 100644 frontend/web/images/services/webcreat/road-analitic_f_1.jpg create mode 100644 frontend/web/images/services/webcreat/road-analitic_f_2.jpg create mode 100644 frontend/web/images/services/webcreat/road-analitic_f_3.jpg create mode 100644 frontend/web/images/services/webcreat/road-analitic_f_4.jpg create mode 100644 frontend/web/images/services/webcreat/road-analitic_f_5.jpg create mode 100644 frontend/web/images/services/webcreat/road-analitic_f_6.jpg create mode 100644 frontend/web/images/services/webcreat/road-segmnt.jpg create mode 100644 frontend/web/images/services/webcreat/road-webcreat_f_1.jpg create mode 100644 frontend/web/images/services/webcreat/road-webcreat_f_2.jpg create mode 100644 frontend/web/images/services/webcreat/road-webcreat_f_3.jpg create mode 100644 frontend/web/images/services/webcreat/road-webcreat_f_4.jpg create mode 100644 frontend/web/images/services/webcreat/road-webcreat_f_5.jpg create mode 100644 frontend/web/images/services/webcreat/road-webcreat_f_6.jpg create mode 100644 frontend/web/images/services/webcreat/road-webcreat_f_7.jpg create mode 100644 frontend/web/images/services/webcreat/road.jpg create mode 100644 frontend/web/images/services/webcreat/seed.jpg create mode 100644 frontend/web/images/services/webcreat/seti-webcreat.jpg create mode 100644 frontend/web/images/services/webcreat/seti_arrow.jpg create mode 100644 frontend/web/images/services/webcreat/slide-1.jpg create mode 100644 frontend/web/images/services/webcreat/slide-2.png create mode 100644 frontend/web/images/services/webcreat/slide-3.png create mode 100644 frontend/web/images/services/webcreat/smm_arrow.jpg create mode 100644 frontend/web/images/services/webcreat/smm_f_2.jpg create mode 100644 frontend/web/images/services/webcreat/soc_f_1.jpg create mode 100644 frontend/web/images/services/webcreat/soc_f_2.jpg create mode 100644 frontend/web/images/services/webcreat/soc_f_3.jpg create mode 100644 frontend/web/images/services/webcreat/soc_f_4.jpg create mode 100644 frontend/web/images/services/webcreat/soc_f_5.jpg create mode 100644 frontend/web/images/services/webcreat/soc_f_6.jpg create mode 100644 frontend/web/images/services/webcreat/soc_f_7.jpg create mode 100644 frontend/web/images/services/webcreat/team-webcreat.jpg create mode 100644 frontend/web/images/services/webcreat/webcreat.png create mode 100644 frontend/web/images/services/webcreat/webcreat_f_1.png create mode 100644 frontend/web/images/services/webcreat/webcreat_f_2.png create mode 100644 frontend/web/images/services/webcreat/webcreat_f_3.png create mode 100644 frontend/web/images/services/webcreat/why_webcreat_f_1.jpg create mode 100644 frontend/web/images/services/webcreat/why_webcreat_f_10.jpg create mode 100644 frontend/web/images/services/webcreat/why_webcreat_f_11.jpg create mode 100644 frontend/web/images/services/webcreat/why_webcreat_f_2.jpg create mode 100644 frontend/web/images/services/webcreat/why_webcreat_f_3.jpg create mode 100644 frontend/web/images/services/webcreat/why_webcreat_f_4.jpg create mode 100644 frontend/web/images/services/webcreat/why_webcreat_f_5.jpg create mode 100644 frontend/web/images/services/webcreat/why_webcreat_f_6.jpg create mode 100644 frontend/web/images/services/webcreat/why_webcreat_f_7.jpg create mode 100644 frontend/web/images/services/webcreat/why_webcreat_f_8.jpg create mode 100644 frontend/web/images/services/webcreat/why_webcreat_f_9.jpg create mode 100644 frontend/web/images/skit-btn.png create mode 100644 frontend/web/images/soc-1.jpg create mode 100644 frontend/web/images/soc-2.jpg create mode 100644 frontend/web/images/soc-3.jpg create mode 100644 frontend/web/images/soc-4.jpg create mode 100644 frontend/web/images/soc-5.jpg create mode 100644 frontend/web/images/social-ico.png create mode 100644 frontend/web/images/team-plus-bg-2.png create mode 100644 frontend/web/images/team-plus-bg.png create mode 100644 frontend/web/images/team-plus-click.png create mode 100644 frontend/web/images/team-plus.png create mode 100644 frontend/web/images/teamitem/ajax-loader.gif create mode 100644 frontend/web/images/teamitem/book_1.jpg create mode 100644 frontend/web/images/teamitem/book_2.jpg create mode 100644 frontend/web/images/teamitem/book_3.jpg create mode 100644 frontend/web/images/teamitem/book_4.jpg create mode 100644 frontend/web/images/teamitem/book_5.jpg create mode 100644 frontend/web/images/teamitem/fb.png create mode 100644 frontend/web/images/teamitem/film_1.jpg create mode 100644 frontend/web/images/teamitem/film_2.jpg create mode 100644 frontend/web/images/teamitem/film_3.jpg create mode 100644 frontend/web/images/teamitem/film_4.jpg create mode 100644 frontend/web/images/teamitem/film_5.jpg create mode 100644 frontend/web/images/teamitem/iq.png create mode 100644 frontend/web/images/teamitem/mail.jpg create mode 100644 frontend/web/images/teamitem/min_1.png create mode 100644 frontend/web/images/teamitem/min_2.png create mode 100644 frontend/web/images/teamitem/min_3.png create mode 100644 frontend/web/images/teamitem/min_4.png create mode 100644 frontend/web/images/teamitem/min_5.png create mode 100644 frontend/web/images/teamitem/stars 2.png create mode 100644 frontend/web/images/teamitem/stars.png create mode 100644 frontend/web/images/teamitem/sveta.jpg create mode 100644 frontend/web/images/teamitem/twitter.png create mode 100644 frontend/web/images/teamitem/vk.png create mode 100644 frontend/web/images/teamitem/zodiak_vodoley.png create mode 100644 frontend/web/images/vacancies/arrow-slider-left-active.png create mode 100644 frontend/web/images/vacancies/arrow-slider-left.png create mode 100644 frontend/web/images/vacancies/arrow-slider-right-active.png create mode 100644 frontend/web/images/vacancies/arrow-slider-right.png create mode 100644 frontend/web/images/vacancies/bg-block-1.png create mode 100644 frontend/web/images/vacancies/bg-block-last.jpg create mode 100644 frontend/web/images/vacancies/bill.png create mode 100644 frontend/web/images/vacancies/border-gradient.jpg create mode 100644 frontend/web/images/vacancies/certificates-f-1.jpg create mode 100644 frontend/web/images/vacancies/certificates.png create mode 100644 frontend/web/images/vacancies/darts-bg.jpg create mode 100644 frontend/web/images/vacancies/darts.png create mode 100644 frontend/web/images/vacancies/ico-php.jpg create mode 100644 frontend/web/images/vacancies/ico-seo.jpg create mode 100644 frontend/web/images/vacancies/line-php.png create mode 100644 frontend/web/images/vacancies/proposition-f-1.png create mode 100644 frontend/web/images/vacancies/proposition-f-2.png create mode 100644 frontend/web/images/vacancies/proposition-f-3.png create mode 100644 frontend/web/images/vacancies/proposition-f-4.png create mode 100644 frontend/web/images/vacancies/proposition-f-5.png create mode 100644 frontend/web/images/vacancies/proposition-f-6.png create mode 100644 frontend/web/images/vacancies/proposition-f-7.png create mode 100644 frontend/web/images/vacancies/proposition-f-8.png create mode 100644 frontend/web/images/vacancies/proposition.jpg create mode 100644 frontend/web/images/vacancies/qwe/slide-1.jpg create mode 100644 frontend/web/images/vacancies/qwe/slide-2.jpg create mode 100644 frontend/web/images/vacancies/qwe/slide-3.jpg create mode 100644 frontend/web/images/vacancies/qwe/slide-4.jpg create mode 100644 frontend/web/images/vacancies/qwe/slide-5.jpg create mode 100644 frontend/web/images/vacancies/rocket-line-2.png create mode 100644 frontend/web/images/vacancies/rocket-line.png create mode 100644 frontend/web/images/vacancies/shadow-darts.png create mode 100644 frontend/web/images/vacancies/sveta-darts.png create mode 100644 frontend/web/images/vacancies/tallants-f-1-hover.jpg create mode 100644 frontend/web/images/vacancies/tallants-f-1.png create mode 100644 frontend/web/images/vacancies/tallants-f-2-hover.jpg create mode 100644 frontend/web/images/vacancies/tallants-f-2.png create mode 100644 frontend/web/images/vacancies/tallants-f-3-hover.jpg create mode 100644 frontend/web/images/vacancies/tallants-f-3.png create mode 100644 frontend/web/images/vacancies/tallants-f-line.png create mode 100644 frontend/web/images/vacancies/vacant-andrej.png create mode 100644 frontend/web/images/vacancies/vacant-anton.png create mode 100644 frontend/web/images/vacancies/vacant-bg.jpg create mode 100644 frontend/web/images/vacancies/vacant-slavik.png create mode 100644 frontend/web/images/zodiac/aquarius.png create mode 100644 frontend/web/images/zodiac/aries.png create mode 100644 frontend/web/images/zodiac/cancer.png create mode 100644 frontend/web/images/zodiac/capricorn.png create mode 100644 frontend/web/images/zodiac/gemini.png create mode 100644 frontend/web/images/zodiac/leo.png create mode 100644 frontend/web/images/zodiac/libra.png create mode 100644 frontend/web/images/zodiac/pisces.png create mode 100644 frontend/web/images/zodiac/sagittarius.png create mode 100644 frontend/web/images/zodiac/scorpio.png create mode 100644 frontend/web/images/zodiac/taurus.png create mode 100644 frontend/web/images/zodiac/virgo.png create mode 100644 frontend/web/js/addons/sliderkit.counter.1.0.js create mode 100644 frontend/web/js/addons/sliderkit.counter.1.0.pack.js create mode 100644 frontend/web/js/addons/sliderkit.delaycaptions.1.1.js create mode 100644 frontend/web/js/addons/sliderkit.delaycaptions.1.1.pack.js create mode 100644 frontend/web/js/addons/sliderkit.imagefx.1.0.js create mode 100644 frontend/web/js/addons/sliderkit.imagefx.1.0.pack.js create mode 100644 frontend/web/js/addons/sliderkit.timer.1.0.js create mode 100644 frontend/web/js/addons/sliderkit.timer.1.0.pack.js create mode 100644 frontend/web/js/contact.js create mode 100644 frontend/web/js/external/jquery.easing.1.3.min.js create mode 100644 frontend/web/js/external/jquery.mousewheel.min.js create mode 100644 frontend/web/js/external/jquery.supertoc.js create mode 100644 frontend/web/js/external/jquery.supertoc.min.js create mode 100644 frontend/web/js/external/jquery.ui.totop.js create mode 100644 frontend/web/js/graph.js create mode 100644 frontend/web/js/highcharts.js create mode 100644 frontend/web/js/jquery-ui-1.9.2.custom.min.js create mode 100644 frontend/web/js/jquery.maskedinput.min.js create mode 100644 frontend/web/js/jquery.scrollbox.min.js create mode 100644 frontend/web/js/jquery.sliderkit.1.9.2.js create mode 100644 frontend/web/js/jquery.sliderkit.1.9.2.pack.js create mode 100644 frontend/web/js/main.js create mode 100644 frontend/web/js/oldies.js create mode 100644 frontend/web/js/script.js create mode 100644 frontend/web/js/services/analitic.js create mode 100644 frontend/web/js/services/content.js create mode 100644 frontend/web/js/services/context.js create mode 100644 frontend/web/js/services/cpa.js create mode 100644 frontend/web/js/services/cpc.js create mode 100644 frontend/web/js/services/design.js create mode 100644 frontend/web/js/services/email.js create mode 100644 frontend/web/js/services/integration.js create mode 100644 frontend/web/js/services/segmnt.js create mode 100644 frontend/web/js/services/seo.js create mode 100644 frontend/web/js/services/serm.js create mode 100644 frontend/web/js/services/smm.js create mode 100644 frontend/web/js/services/usability.js create mode 100644 frontend/web/js/services/webcreat.js create mode 100644 frontend/web/js/team.js create mode 100644 frontend/web/js/teamitem/1.js create mode 100644 frontend/web/js/teamitem/highcharts.js create mode 100644 frontend/web/js/teamitem/jquery-1.11.2.min (1).js create mode 100644 frontend/web/js/teamitem/jquery-1.11.2.min.js create mode 100644 frontend/web/js/teamitem/jquery-1.6.2.min.js create mode 100644 frontend/web/js/teamitem/jquery-ui.min.js create mode 100644 frontend/web/js/teamitem/jquery.animate-shadow-min.js create mode 100644 frontend/web/js/teamitem/jquery.animate-shadow.js create mode 100644 frontend/web/js/teamitem/jquery.rating-2.0.min.js create mode 100644 frontend/web/js/teamitem/rating.js create mode 100644 frontend/web/js/uniform/default/css/uniform.default.css create mode 100644 frontend/web/js/uniform/default/css/uniform.default.min.css create mode 100644 frontend/web/js/uniform/default/css/uniform.default.scss create mode 100644 frontend/web/js/uniform/default/images/bg-input-focus.png create mode 100644 frontend/web/js/uniform/default/images/bg-input.png create mode 100644 frontend/web/js/uniform/default/images/sprite.png create mode 100644 frontend/web/js/uniform/jquery.uniform.min.js create mode 100644 frontend/web/js/vacancies.js create mode 100644 frontend/web/js/vacancies2.js create mode 100644 frontend/web/js/validate/jquery.validate.min.js create mode 100644 frontend/web/js/validate/messages_ru.js create mode 100644 frontend/web/robots.txt create mode 100755 init create mode 100644 init.bat create mode 100644 requirements.php create mode 100644 tests/README.md create mode 100644 tests/codeception.yml create mode 100644 tests/codeception/_output/.gitignore create mode 100644 tests/codeception/backend/.gitignore create mode 100644 tests/codeception/backend/_bootstrap.php create mode 100644 tests/codeception/backend/_output/.gitignore create mode 100644 tests/codeception/backend/acceptance.suite.yml create mode 100644 tests/codeception/backend/acceptance/LoginCept.php create mode 100644 tests/codeception/backend/acceptance/_bootstrap.php create mode 100644 tests/codeception/backend/codeception.yml create mode 100644 tests/codeception/backend/functional.suite.yml create mode 100644 tests/codeception/backend/functional/LoginCept.php create mode 100644 tests/codeception/backend/functional/_bootstrap.php create mode 100644 tests/codeception/backend/unit.suite.yml create mode 100644 tests/codeception/backend/unit/DbTestCase.php create mode 100644 tests/codeception/backend/unit/TestCase.php create mode 100644 tests/codeception/backend/unit/_bootstrap.php create mode 100644 tests/codeception/backend/unit/fixtures/data/.gitkeep create mode 100644 tests/codeception/bin/_bootstrap.php create mode 100755 tests/codeception/bin/yii create mode 100644 tests/codeception/bin/yii.bat create mode 100644 tests/codeception/common/.gitignore create mode 100644 tests/codeception/common/_bootstrap.php create mode 100644 tests/codeception/common/_output/.gitignore create mode 100644 tests/codeception/common/_pages/LoginPage.php create mode 100644 tests/codeception/common/_support/FixtureHelper.php create mode 100644 tests/codeception/common/codeception.yml create mode 100644 tests/codeception/common/fixtures/UserFixture.php create mode 100644 tests/codeception/common/fixtures/data/init_login.php create mode 100644 tests/codeception/common/templates/fixtures/user.php create mode 100644 tests/codeception/common/unit.suite.yml create mode 100644 tests/codeception/common/unit/DbTestCase.php create mode 100644 tests/codeception/common/unit/TestCase.php create mode 100644 tests/codeception/common/unit/_bootstrap.php create mode 100644 tests/codeception/common/unit/fixtures/data/models/user.php create mode 100644 tests/codeception/common/unit/models/LoginFormTest.php create mode 100644 tests/codeception/config/acceptance.php create mode 100644 tests/codeception/config/backend/acceptance.php create mode 100644 tests/codeception/config/backend/config.php create mode 100644 tests/codeception/config/backend/functional.php create mode 100644 tests/codeception/config/backend/unit.php create mode 100644 tests/codeception/config/common/unit.php create mode 100644 tests/codeception/config/config.php create mode 100644 tests/codeception/config/console/unit.php create mode 100644 tests/codeception/config/frontend/acceptance.php create mode 100644 tests/codeception/config/frontend/config.php create mode 100644 tests/codeception/config/frontend/functional.php create mode 100644 tests/codeception/config/frontend/unit.php create mode 100644 tests/codeception/config/functional.php create mode 100644 tests/codeception/config/unit.php create mode 100644 tests/codeception/console/.gitignore create mode 100644 tests/codeception/console/_bootstrap.php create mode 100644 tests/codeception/console/_output/.gitignore create mode 100644 tests/codeception/console/codeception.yml create mode 100644 tests/codeception/console/unit.suite.yml create mode 100644 tests/codeception/console/unit/DbTestCase.php create mode 100644 tests/codeception/console/unit/TestCase.php create mode 100644 tests/codeception/console/unit/_bootstrap.php create mode 100644 tests/codeception/console/unit/fixtures/data/.gitkeep create mode 100644 tests/codeception/frontend/.gitignore create mode 100644 tests/codeception/frontend/_bootstrap.php create mode 100644 tests/codeception/frontend/_output/.gitignore create mode 100644 tests/codeception/frontend/_pages/AboutPage.php create mode 100644 tests/codeception/frontend/_pages/ContactPage.php create mode 100644 tests/codeception/frontend/_pages/SignupPage.php create mode 100644 tests/codeception/frontend/acceptance.suite.yml create mode 100644 tests/codeception/frontend/acceptance/AboutCept.php create mode 100644 tests/codeception/frontend/acceptance/ContactCept.php create mode 100644 tests/codeception/frontend/acceptance/HomeCept.php create mode 100644 tests/codeception/frontend/acceptance/LoginCept.php create mode 100644 tests/codeception/frontend/acceptance/SignupCest.php create mode 100644 tests/codeception/frontend/acceptance/_bootstrap.php create mode 100644 tests/codeception/frontend/codeception.yml create mode 100644 tests/codeception/frontend/functional.suite.yml create mode 100644 tests/codeception/frontend/functional/AboutCept.php create mode 100644 tests/codeception/frontend/functional/ContactCept.php create mode 100644 tests/codeception/frontend/functional/HomeCept.php create mode 100644 tests/codeception/frontend/functional/LoginCept.php create mode 100644 tests/codeception/frontend/functional/SignupCest.php create mode 100644 tests/codeception/frontend/functional/_bootstrap.php create mode 100644 tests/codeception/frontend/unit.suite.yml create mode 100644 tests/codeception/frontend/unit/DbTestCase.php create mode 100644 tests/codeception/frontend/unit/TestCase.php create mode 100644 tests/codeception/frontend/unit/_bootstrap.php create mode 100644 tests/codeception/frontend/unit/fixtures/data/models/user.php create mode 100644 tests/codeception/frontend/unit/models/ContactFormTest.php create mode 100644 tests/codeception/frontend/unit/models/PasswordResetRequestFormTest.php create mode 100644 tests/codeception/frontend/unit/models/ResetPasswordFormTest.php create mode 100644 tests/codeception/frontend/unit/models/SignupFormTest.php diff --git a/.bowerrc b/.bowerrc new file mode 100644 index 0000000..1669168 --- /dev/null +++ b/.bowerrc @@ -0,0 +1,3 @@ +{ + "directory" : "vendor/bower" +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7705d6e --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ +# yii console command +/yii + +# phpstorm project files +.idea + +# netbeans project files +nbproject + +# zend studio for eclipse project files +.buildpath +.project +.settings + +# windows thumbnail cache +Thumbs.db + +# composer vendor dir +/vendor + +# composer itself is not needed +composer.phar + +# Mac DS_Store Files +.DS_Store + +# phpunit itself is not needed +phpunit.phar +# local phpunit config +/phpunit.xml + +/old \ No newline at end of file diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..3f9e710 --- /dev/null +++ b/.htaccess @@ -0,0 +1,35 @@ + + Options +FollowSymlinks + RewriteEngine On + + + + RewriteBase / + + RewriteRule ^storage/(.*)?$ /storage/$1 [L,PT] + + RewriteCond %{REQUEST_URI} ^/(admin) + RewriteRule ^admin/assets/(.*)$ backend/web/assets/$1 [L] + RewriteRule ^admin/css/(.*)$ backend/web/css/$1 [L] + RewriteRule ^admin/js/(.*)$ backend/web/js/$1 [L] + RewriteRule ^admin/images/(.*)$ backend/web/images/$1 [L] + RewriteRule ^admin/fonts/(.*)$ backend/web/fonts/$1 [L] + + RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css|js|images)/ + RewriteCond %{REQUEST_URI} ^/(admin) + RewriteRule ^.*$ backend/web/index.php [L] + + RewriteCond %{REQUEST_URI} ^/(assets|css) + RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L] + RewriteRule ^css/(.*)$ frontend/web/css/$1 [L] + RewriteRule ^js/(.*)$ frontend/web/js/$1 [L] + RewriteRule ^images/(.*)$ frontend/web/images/$1 [L] + RewriteRule ^files/(.*)$ frontend/web/files/$1 [L] + RewriteRule ^count_form/(.*)$ frontend/web/count_form/$1 [L] + + RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css|js|images|files|count_form)/ + RewriteCond %{REQUEST_URI} !index.php + RewriteCond %{REQUEST_FILENAME} !-f [OR] + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule ^.*$ frontend/web/index.php + \ No newline at end of file diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..e98f03d --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,32 @@ +The Yii framework is free software. It is released under the terms of +the following BSD License. + +Copyright © 2008 by Yii Software LLC (http://www.yiisoft.com) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of Yii Software LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..45e56ad --- /dev/null +++ b/README.md @@ -0,0 +1,54 @@ +Yii 2 Advanced Project Template +=============================== + +Yii 2 Advanced Project Template is a skeleton [Yii 2](http://www.yiiframework.com/) application best for +developing complex Web applications with multiple tiers. + +The template includes three tiers: front end, back end, and console, each of which +is a separate Yii application. + +The template is designed to work in a team development environment. It supports +deploying the application in different environments. + +Documentation is at [docs/guide/README.md](docs/guide/README.md). + +[![Latest Stable Version](https://poser.pugx.org/yiisoft/yii2-app-advanced/v/stable.png)](https://packagist.org/packages/yiisoft/yii2-app-advanced) +[![Total Downloads](https://poser.pugx.org/yiisoft/yii2-app-advanced/downloads.png)](https://packagist.org/packages/yiisoft/yii2-app-advanced) +[![Build Status](https://travis-ci.org/yiisoft/yii2-app-advanced.svg?branch=master)](https://travis-ci.org/yiisoft/yii2-app-advanced) + +DIRECTORY STRUCTURE +------------------- + +``` +common + config/ contains shared configurations + mail/ contains view files for e-mails + models/ contains model classes used in both backend and frontend +console + config/ contains console configurations + controllers/ contains console controllers (commands) + migrations/ contains database migrations + models/ contains console-specific model classes + runtime/ contains files generated during runtime +backend + assets/ contains application assets such as JavaScript and CSS + config/ contains backend configurations + controllers/ contains Web controller classes + models/ contains backend-specific model classes + runtime/ contains files generated during runtime + views/ contains view files for the Web application + web/ contains the entry script and Web resources +frontend + assets/ contains application assets such as JavaScript and CSS + config/ contains frontend configurations + controllers/ contains Web controller classes + models/ contains frontend-specific model classes + runtime/ contains files generated during runtime + views/ contains view files for the Web application + web/ contains the entry script and Web resources + widgets/ contains frontend widgets +vendor/ contains dependent 3rd-party packages +environments/ contains environment-based overrides +tests contains various tests for the advanced application + codeception/ contains tests developed with Codeception PHP Testing Framework +``` diff --git a/backend/assets/AppAsset.php b/backend/assets/AppAsset.php new file mode 100644 index 0000000..c262142 --- /dev/null +++ b/backend/assets/AppAsset.php @@ -0,0 +1,29 @@ + + * @since 2.0 + */ +class AppAsset extends AssetBundle +{ + public $basePath = '@webroot'; + public $baseUrl = '@web'; + public $css = [ + 'css/site.css', + ]; + public $js = [ + ]; + public $depends = [ + 'yii\web\YiiAsset', + 'yii\bootstrap\BootstrapAsset', + ]; +} diff --git a/backend/config/.gitignore b/backend/config/.gitignore new file mode 100644 index 0000000..20da318 --- /dev/null +++ b/backend/config/.gitignore @@ -0,0 +1,2 @@ +main-local.php +params-local.php \ No newline at end of file diff --git a/backend/config/bootstrap.php b/backend/config/bootstrap.php new file mode 100644 index 0000000..b3d9bbc --- /dev/null +++ b/backend/config/bootstrap.php @@ -0,0 +1 @@ + 'app-backend', + 'basePath' => dirname(__DIR__), + 'controllerNamespace' => 'backend\controllers', + 'bootstrap' => ['log'], + 'modules' => [], + 'components' => [ + 'user' => [ + 'identityClass' => 'common\models\User', + 'enableAutoLogin' => true, + ], + 'log' => [ + 'traceLevel' => YII_DEBUG ? 3 : 0, + 'targets' => [ + [ + 'class' => 'yii\log\FileTarget', + 'levels' => ['error', 'warning'], + ], + ], + ], + 'errorHandler' => [ + 'errorAction' => 'site/error', + ], + 'request'=>[ + 'class' => 'common\components\Request', + 'web'=> '/backend/web', + 'adminUrl' => '/admin' + ], + 'urlManagerFrontEnd' => [ + 'class' => 'yii\web\urlManager', + 'baseUrl' => '/', + 'web' => '/frontend/web', + 'enablePrettyUrl' => true, + 'showScriptName' => false, + ], + 'view' => [ + 'theme' => [ + 'pathMap' => [ + '@app/views' => '@app/views/adminlte' + ], + ], + ], + ], + 'params' => $params, + 'language' => 'ru-RU', +]; diff --git a/backend/config/params.php b/backend/config/params.php new file mode 100644 index 0000000..7f754b9 --- /dev/null +++ b/backend/config/params.php @@ -0,0 +1,4 @@ + 'admin@example.com', +]; diff --git a/backend/controllers/ClientsController.php b/backend/controllers/ClientsController.php new file mode 100755 index 0000000..17af20e --- /dev/null +++ b/backend/controllers/ClientsController.php @@ -0,0 +1,151 @@ + [ + 'class' => VerbFilter::className(), + 'actions' => [ + 'delete' => ['post'], + ], + ], + ]; + } + + /** + * Lists all Clients models. + * @return mixed + */ + public function actionIndex() + { + $searchModel = new ClientsSearch(); + $dataProvider = $searchModel->search(Yii::$app->request->queryParams); + + return $this->render('index', [ + 'searchModel' => $searchModel, + 'dataProvider' => $dataProvider, + ]); + } + + /** + * Displays a single Clients model. + * @param integer $id + * @return mixed + */ + public function actionView($id) + { + $model = $this->findModel($id); + $model->logo = Html::img('/'. $model->logo); + return $this->render('view', [ + 'model' => $model, + ]); + } + + /** + * Creates a new Clients model. + * If creation is successful, the browser will be redirected to the 'view' page. + * @return mixed + */ + public function actionCreate() + { + $model = new Clients(); + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + $this->_uploadLogo($model); + return $this->redirect(['view', 'id' => $model->id]); + } else { + return $this->render('create', [ + 'model' => $model, + ]); + } + } + + /** + * Updates an existing Clients model. + * If update is successful, the browser will be redirected to the 'view' page. + * @param integer $id + * @return mixed + */ + public function actionUpdate($id) + { + $model = $this->findModel($id); + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + $this->_uploadLogo($model); + return $this->redirect(['view', 'id' => $model->id]); + } else { + return $this->render('update', [ + 'model' => $model, + ]); + } + } + + private function _uploadLogo($model) { + $file = UploadedFile::getInstance($model, 'file'); + if (!empty($file)) { + $model->file = $file; + $fileName = 'clients/' . $model->file->basename . '.' . $model->file->extension; + $filePath = Yii::getAlias( '@filesDir' ) .'/'. $fileName; + $i = 1; + while (file_exists($filePath)) { + $fileName = 'clients/' . $model->file->basename .'_'. $i . '.' . $model->file->extension; + $filePath = Yii::getAlias( '@filesDir' ) .'/'. $fileName; + $i++; + } + $model->file->saveAs( $filePath ); + $model->logo = $fileName; + } else { +// $model->logo = null; + } + $model->save(); + } + + /** + * Deletes an existing Clients model. + * If deletion is successful, the browser will be redirected to the 'index' page. + * @param integer $id + * @return mixed + */ + public function actionDelete($id) + { + $this->findModel($id)->delete(); + + return $this->redirect(['index']); + } + + /** + * Finds the Clients model based on its primary key value. + * If the model is not found, a 404 HTTP exception will be thrown. + * @param integer $id + * @return Clients the loaded model + * @throws NotFoundHttpException if the model cannot be found + */ + protected function findModel($id) + { + if (($model = Clients::findOne($id)) !== null) { + return $model; + } else { + throw new NotFoundHttpException('The requested page does not exist.'); + } + } +} diff --git a/backend/controllers/DepartmentsController.php b/backend/controllers/DepartmentsController.php new file mode 100755 index 0000000..e466270 --- /dev/null +++ b/backend/controllers/DepartmentsController.php @@ -0,0 +1,121 @@ + [ + 'class' => VerbFilter::className(), + 'actions' => [ + 'delete' => ['post'], + ], + ], + ]; + } + + /** + * Lists all Departments models. + * @return mixed + */ + public function actionIndex() + { + $searchModel = new DepartmentsSearch(); + $dataProvider = $searchModel->search(Yii::$app->request->queryParams); + + return $this->render('index', [ + 'searchModel' => $searchModel, + 'dataProvider' => $dataProvider, + ]); + } + + /** + * Displays a single Departments model. + * @param integer $id + * @return mixed + */ + public function actionView($id) + { + return $this->render('view', [ + 'model' => $this->findModel($id), + ]); + } + + /** + * Creates a new Departments model. + * If creation is successful, the browser will be redirected to the 'view' page. + * @return mixed + */ + public function actionCreate() + { + $model = new Departments(); + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + return $this->redirect(['view', 'id' => $model->id]); + } else { + return $this->render('create', [ + 'model' => $model, + ]); + } + } + + /** + * Updates an existing Departments model. + * If update is successful, the browser will be redirected to the 'view' page. + * @param integer $id + * @return mixed + */ + public function actionUpdate($id) + { + $model = $this->findModel($id); + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + return $this->redirect(['view', 'id' => $model->id]); + } else { + return $this->render('update', [ + 'model' => $model, + ]); + } + } + + /** + * Deletes an existing Departments model. + * If deletion is successful, the browser will be redirected to the 'index' page. + * @param integer $id + * @return mixed + */ + public function actionDelete($id) + { + $this->findModel($id)->delete(); + + return $this->redirect(['index']); + } + + /** + * Finds the Departments model based on its primary key value. + * If the model is not found, a 404 HTTP exception will be thrown. + * @param integer $id + * @return Departments the loaded model + * @throws NotFoundHttpException if the model cannot be found + */ + protected function findModel($id) + { + if (($model = Departments::findOne($id)) !== null) { + return $model; + } else { + throw new NotFoundHttpException('The requested page does not exist.'); + } + } +} diff --git a/backend/controllers/SiteController.php b/backend/controllers/SiteController.php new file mode 100755 index 0000000..db3259a --- /dev/null +++ b/backend/controllers/SiteController.php @@ -0,0 +1,83 @@ + [ + 'class' => AccessControl::className(), + 'rules' => [ + [ + 'actions' => ['login', 'error'], + 'allow' => true, + ], + [ + 'actions' => ['logout', 'index'], + 'allow' => true, + 'roles' => ['@'], + ], + ], + ], + 'verbs' => [ + 'class' => VerbFilter::className(), + 'actions' => [ + 'logout' => ['post'], + ], + ], + ]; + } + + /** + * @inheritdoc + */ + public function actions() + { + return [ + 'error' => [ + 'class' => 'yii\web\ErrorAction', + ], + ]; + } + + public function actionIndex() + { + return $this->render('index'); + } + + public function actionLogin() + { + if (!\Yii::$app->user->isGuest) { + return $this->goHome(); + } + + $model = new LoginForm(); + if ($model->load(Yii::$app->request->post()) && $model->login()) { + return $this->goBack(); + } else { + return $this->render('login', [ + 'model' => $model, + ]); + } + } + + public function actionLogout() + { + Yii::$app->user->logout(); + + return $this->goHome(); + } +} diff --git a/backend/controllers/TeamController.php b/backend/controllers/TeamController.php new file mode 100644 index 0000000..f78523e --- /dev/null +++ b/backend/controllers/TeamController.php @@ -0,0 +1,302 @@ + [ + 'class' => VerbFilter::className(), + 'actions' => [ + 'delete' => ['post'], + ], + ], + ]; + } + + /** + * Lists all Team models. + * @return mixed + */ + public function actionIndex() + { + $searchModel = new TeamSearch(); + $dataProvider = $searchModel->search(Yii::$app->request->queryParams); + + return $this->render('index', [ + 'searchModel' => $searchModel, + 'dataProvider' => $dataProvider, + ]); + } + + /** + * Displays a single Team model. + * @param integer $id + * @return mixed + */ + public function actionView($id) + { + return $this->render('view', [ + 'model' => $this->findModel($id), + ]); + } + + /** + * Creates a new Team model. + * If creation is successful, the browser will be redirected to the 'view' page. + * @return mixed + */ + public function actionCreate() + { + $model = new Team(); + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + $this->_uploadFile($model, 'file', 'photo', 'team'); + $this->_uploadFile($model, 'file2', 'photo_big', 'team/big'); + return $this->redirect(['view', 'id' => $model->id]); + } else { + return $this->render('create', [ + 'model' => $model, + ]); + } + } + + /** + * Updates an existing Team model. + * If update is successful, the browser will be redirected to the 'view' page. + * @param integer $id + * @return mixed + */ + public function actionUpdate($id) + { + $model = $this->findModel($id); + + // Get skills + $skills = TeamSkils::find()->where(['team_id' => $id])->indexBy('id')->all(); + if (empty($skills)) { + $skills[] = new TeamSkils(['scenario' => 'multiFields']); + } else { + foreach ($skills as &$skill) { + $skill->scenario = 'multiFields'; + } + } + + // Get books + $books = TeamBooks::find()->where(['team_id' => $id])->indexBy('id')->all(); + if (empty($books)) { + $books[] = new TeamBooks(['scenario' => 'multiFields']); + } else { + foreach ($books as &$book) { + $book->scenario = 'multiFields'; + } + } + + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + $this->_uploadFile($model, 'file', 'photo', 'team'); + $this->_uploadFile($model, 'file2', 'photo_big', 'team/big'); + + $this->_updateSkills($model, Yii::$app->request->post('TeamSkils'), $skills); + $this->_updateBooks($model, Yii::$app->request->post('TeamBooks'), $books); + + return $this->redirect(['view', 'id' => $model->id]); + } else { + return $this->render('update', [ + 'model' => $model, + 'skills' => $skills, + 'books' => $books, + ]); + } + } + + private function _updateSkills($model, $post = [], $exists = []) { + $exists_ids = []; + foreach ( $exists as $row ) { + if ($row->id > 0) + $exists_ids[$row->id] = $row->id; + } + + foreach ($post as $id => $data) { + if ($id > 0 && in_array($id, $exists_ids)) { + unset($exists_ids[$id]); + // Exists row + $modelRow = TeamSkils::findOne($id); + if ($modelRow) { + $dataArray = [ + 'TeamSkils' => [ + 'title' => $data['title'], + 'value' => floatval(str_replace([',', ' '], ['.', ''], trim($data['value']))) + ] + ]; + $modelRow->load( $dataArray ); + $modelRow->save(); + } + } else { + // New row + if (empty($data['title'])) continue; + + $modelRow = new TeamSkils(); + $dataArray = [ + 'TeamSkils' => [ + 'team_id' => $model->id, + 'title' => $data['title'], + 'value' => floatval(str_replace([',', ' '], ['.', ''], trim($data['value']))) + ] + ]; + + $modelRow->load( $dataArray ); + $modelRow->save(); + } + } + + foreach ( $exists_ids as $id ) { + $this->findModel($id)->delete(); + } + } + + private function _updateBooks($model, $post = [], $exists = []) { + $exists_ids = []; + foreach ( $exists as $row ) { + if ($row->id > 0) + $exists_ids[$row->id] = $row->id; + } + + foreach ($post as $id => $data) { + if ($id > 0 && in_array($id, $exists_ids)) { + unset($exists_ids[$id]); + // Exists row + $modelRow = TeamBooks::findOne($id); + if ($modelRow) { + $dataArray = [ + 'TeamBooks' => [ + 'title' => $data['title'] + ] + ]; + $modelRow->load( $dataArray ); + $modelRow->save(); + + $files = UploadedFile::getInstances($model, $varnameFile); + +// $this->_uploadFiles($modelRow, 'TeamBooks[1]', 'cover', 'team/books'); + } + } else { + // New row + if (empty($data['title'])) continue; + + $modelRow = new TeamBooks(); + $dataArray = [ + 'TeamBooks' => [ + 'team_id' => $model->id, + 'title' => $data['title'], + 'cover' => '' + ] + ]; + + $modelRow->load( $dataArray ); + $modelRow->save(); + + $this->_uploadFiles($modelRow, 'TeamBooks', 'cover', 'team/books'); + } + } + + foreach ( $exists_ids as $id ) { + $this->findModel($id)->delete(); + } + } + + private function _uploadFile($model, $varnameFile, $varnameField, $dir = 'team') { + $file = UploadedFile::getInstance($model, $varnameFile); + + if (!empty($file)) { + $fileName = $dir .'/' . $file->basename . '.' . $file->extension; + $filePath = Yii::getAlias( '@filesDir' ) .'/'. $fileName; + $i = 1; + while (file_exists($filePath)) { + $fileName = $dir. '/' . $file->basename .'_'. $i . '.' . $file->extension; + $filePath = Yii::getAlias( '@filesDir' ) .'/'. $fileName; + $i++; + } + $file->saveAs( $filePath ); + $model->{$varnameField} = $fileName; + $model->save(); + } + } + + private function _uploadFiles($model, $varnameFile, $varnameField, $dir = 'team') { + $file = UploadedFile::getInstances($model, $varnameFile); + + if (!empty($file)) { + $fileName = $dir .'/' . $file->basename . '.' . $file->extension; + $filePath = Yii::getAlias( '@filesDir' ) .'/'. $fileName; + $i = 1; + while (file_exists($filePath)) { + $fileName = $dir. '/' . $file->basename .'_'. $i . '.' . $file->extension; + $filePath = Yii::getAlias( '@filesDir' ) .'/'. $fileName; + $i++; + } + $file->saveAs( $filePath ); + $model->{$varnameField} = $fileName; + $model->save(); + } + } + + /** + * Deletes an existing Team model. + * If deletion is successful, the browser will be redirected to the 'index' page. + * @param integer $id + * @return mixed + */ + public function actionDelete($id) + { + $this->findModel($id)->delete(); + + return $this->redirect(['index']); + } + + public function actionDeleteSkill() + { + $id = Yii::$app->request->post('id'); + $model = TeamSkils::findOne($id); + if ($model !== null) { + $model->delete(); + } + Yii::$app->response->format = Response::FORMAT_JSON; + return ['r' => 1]; + } + + /** + * Finds the Team model based on its primary key value. + * If the model is not found, a 404 HTTP exception will be thrown. + * @param integer $id + * @return Team the loaded model + * @throws NotFoundHttpException if the model cannot be found + */ + protected function findModel($id) + { + if (($model = Team::findOne($id)) !== null) { + return $model; + } else { + throw new NotFoundHttpException('The requested page does not exist.'); + } + } +} diff --git a/backend/controllers/TeamSkilsController.php b/backend/controllers/TeamSkilsController.php new file mode 100644 index 0000000..e0ecc0f --- /dev/null +++ b/backend/controllers/TeamSkilsController.php @@ -0,0 +1,121 @@ + [ + 'class' => VerbFilter::className(), + 'actions' => [ + 'delete' => ['post'], + ], + ], + ]; + } + + /** + * Lists all TeamSkils models. + * @return mixed + */ + public function actionIndex() + { + $dataProvider = new ActiveDataProvider([ + 'query' => TeamSkils::find(), + ]); + + return $this->render('index', [ + 'dataProvider' => $dataProvider, + ]); + } + + /** + * Displays a single TeamSkils model. + * @param integer $id + * @return mixed + */ + public function actionView($id) + { + return $this->render('view', [ + 'model' => $this->findModel($id), + ]); + } + + /** + * Creates a new TeamSkils model. + * If creation is successful, the browser will be redirected to the 'view' page. + * @return mixed + */ + public function actionCreate() + { + $model = new TeamSkils(); + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + return $this->redirect(['view', 'id' => $model->id]); + } else { + return $this->render('create', [ + 'model' => $model, + ]); + } + } + + /** + * Updates an existing TeamSkils model. + * If update is successful, the browser will be redirected to the 'view' page. + * @param integer $id + * @return mixed + */ + public function actionUpdate($id) + { + $model = $this->findModel($id); + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + return $this->redirect(['view', 'id' => $model->id]); + } else { + return $this->render('update', [ + 'model' => $model, + ]); + } + } + + /** + * Deletes an existing TeamSkils model. + * If deletion is successful, the browser will be redirected to the 'index' page. + * @param integer $id + * @return mixed + */ + public function actionDelete($id) + { + $this->findModel($id)->delete(); + + return $this->redirect(['index']); + } + + /** + * Finds the TeamSkils model based on its primary key value. + * If the model is not found, a 404 HTTP exception will be thrown. + * @param integer $id + * @return TeamSkils the loaded model + * @throws NotFoundHttpException if the model cannot be found + */ + protected function findModel($id) + { + if (($model = TeamSkils::findOne($id)) !== null) { + return $model; + } else { + throw new NotFoundHttpException('The requested page does not exist.'); + } + } +} diff --git a/backend/models/.gitkeep b/backend/models/.gitkeep new file mode 100755 index 0000000..72e8ffc --- /dev/null +++ b/backend/models/.gitkeep @@ -0,0 +1 @@ +* diff --git a/backend/models/Clients.php b/backend/models/Clients.php new file mode 100755 index 0000000..1e43d94 --- /dev/null +++ b/backend/models/Clients.php @@ -0,0 +1,59 @@ + 200], + [['file'], 'file'], + [['logo'], 'string', 'max' => 255], + [['link'], 'string', 'max' => 255] + ]; + } + + /** + * @inheritdoc + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('app', 'ID'), + 'title' => Yii::t('app', 'Title'), + 'description' => Yii::t('app', 'Description'), + 'file' => Yii::t('app', 'Logo'), + 'link' => Yii::t('app', 'Link'), + 'visible' => Yii::t('app', 'Status'), +// 'position' => Yii::t('app', 'Position'), + ]; + } +} diff --git a/backend/models/ClientsSearch.php b/backend/models/ClientsSearch.php new file mode 100755 index 0000000..8d59062 --- /dev/null +++ b/backend/models/ClientsSearch.php @@ -0,0 +1,70 @@ + $query, + ]); + + $this->load($params); + + if (!$this->validate()) { + // uncomment the following line if you do not want to return any records when validation fails + // $query->where('0=1'); + return $dataProvider; + } + + $query->andFilterWhere([ + 'id' => $this->id, + 'visible' => $this->visible, + 'position' => $this->position, + ]); + + $query->andFilterWhere(['like', 'title', $this->title]) + ->andFilterWhere(['like', 'description', $this->description]) + ->andFilterWhere(['like', 'link', $this->link]); + + return $dataProvider; + } +} diff --git a/backend/models/Departments.php b/backend/models/Departments.php new file mode 100755 index 0000000..07f7543 --- /dev/null +++ b/backend/models/Departments.php @@ -0,0 +1,60 @@ + 150] + ]; + } + + /** + * @inheritdoc + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('app', 'ID'), + 'title' => Yii::t('app', 'Title'), + 'description' => Yii::t('app', 'Description'), + 'visible' => Yii::t('app', 'Visible'), + ]; + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeams() + { + return $this->hasMany(Team::className(), ['department_id' => 'id']); + } +} diff --git a/backend/models/DepartmentsSearch.php b/backend/models/DepartmentsSearch.php new file mode 100755 index 0000000..4d265a8 --- /dev/null +++ b/backend/models/DepartmentsSearch.php @@ -0,0 +1,68 @@ + $query, + ]); + + $this->load($params); + + if (!$this->validate()) { + // uncomment the following line if you do not want to return any records when validation fails + // $query->where('0=1'); + return $dataProvider; + } + + $query->andFilterWhere([ + 'id' => $this->id, + 'visible' => $this->visible, + ]); + + $query->andFilterWhere(['like', 'title', $this->title]) + ->andFilterWhere(['like', 'description', $this->description]); + + return $dataProvider; + } +} diff --git a/backend/models/Team.php b/backend/models/Team.php new file mode 100644 index 0000000..f53fda7 --- /dev/null +++ b/backend/models/Team.php @@ -0,0 +1,144 @@ + 150], + [['file', 'file2'], 'file'], + [['email', 'soc_vk', 'soc_fb', 'soc_tw', 'soc_li'], 'string', 'max' => 255] + ]; + } + + /** + * @inheritdoc + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('app', 'ID'), + 'department_id' => Yii::t('app', 'Department ID'), + 'user_id' => Yii::t('app', 'User ID'), + 'name' => Yii::t('app', 'Name'), + 'name2' => Yii::t('app', 'Name2'), + 'email' => Yii::t('app', 'Email'), + 'job' => Yii::t('app', 'Job'), + 'zodiac' => Yii::t('app', 'Zodiac'), + 'iq' => Yii::t('app', 'Iq'), + 'soc_vk' => Yii::t('app', 'Soc Vk'), + 'soc_fb' => Yii::t('app', 'Soc Fb'), + 'soc_tw' => Yii::t('app', 'Soc Tw'), + 'soc_li' => Yii::t('app', 'Soc Li'), + 'interests_caption' => Yii::t('app', 'Interests Caption'), + 'skils_caption' => Yii::t('app', 'Skils Caption'), + 'books_caption' => Yii::t('app', 'Books Caption'), + 'films_caption' => Yii::t('app', 'Films Caption'), + 'description' => Yii::t('app', 'Description'), + 'file' => Yii::t('app', 'Photo'), + 'file2' => Yii::t('app', 'Photo Big'), + 'visible' => Yii::t('app', 'Visible'), + ]; + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getDepartment() + { + return $this->hasOne(Departments::className(), ['id' => 'department_id']); + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeamFilms() + { + return $this->hasMany(TeamFilms::className(), ['team_id' => 'id']); + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeamHumors() + { + return $this->hasMany(TeamHumors::className(), ['team_id' => 'id']); + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeamInterests() + { + return $this->hasMany(TeamInterests::className(), ['team_id' => 'id']); + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeamSkils() + { + return $this->hasMany(TeamSkils::className(), ['team_id' => 'id']); + } + + /** + * @return \yii\db\ActiveQuery + */ +// public function getUser() +// { +// return $this->hasMany(UserSkils::className(), ['user_id' => 'id']); +// } +} diff --git a/backend/models/TeamBooks.php b/backend/models/TeamBooks.php new file mode 100644 index 0000000..4ae27b3 --- /dev/null +++ b/backend/models/TeamBooks.php @@ -0,0 +1,52 @@ + 120], + [['books_file'], 'file'], + [['cover'], 'string', 'max' => 255] + ]; + } + + /** + * @inheritdoc + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('app', 'ID'), + 'team_id' => Yii::t('app', 'Team ID'), + 'title' => Yii::t('app', 'Title'), + 'books_file' => Yii::t('app', 'Cover'), + ]; + } +} diff --git a/backend/models/TeamSearch.php b/backend/models/TeamSearch.php new file mode 100644 index 0000000..00e366b --- /dev/null +++ b/backend/models/TeamSearch.php @@ -0,0 +1,85 @@ + $query, + ]); + + $this->load($params); + + if (!$this->validate()) { + // uncomment the following line if you do not want to return any records when validation fails + // $query->where('0=1'); + return $dataProvider; + } + + $query->andFilterWhere([ + 'id' => $this->id, + 'department_id' => $this->department_id, + 'user_id' => $this->user_id, + 'iq' => $this->iq, + 'visible' => $this->visible, + ]); + + $query->andFilterWhere(['like', 'name', $this->name]) + ->andFilterWhere(['like', 'name2', $this->name2]) + ->andFilterWhere(['like', 'email', $this->email]) + ->andFilterWhere(['like', 'job', $this->job]) + ->andFilterWhere(['like', 'zodiac', $this->zodiac]) + ->andFilterWhere(['like', 'soc_vk', $this->soc_vk]) + ->andFilterWhere(['like', 'soc_fb', $this->soc_fb]) + ->andFilterWhere(['like', 'soc_tw', $this->soc_tw]) + ->andFilterWhere(['like', 'soc_li', $this->soc_li]) + ->andFilterWhere(['like', 'interests_caption', $this->interests_caption]) + ->andFilterWhere(['like', 'skils_caption', $this->skils_caption]) + ->andFilterWhere(['like', 'books_caption', $this->books_caption]) + ->andFilterWhere(['like', 'films_caption', $this->films_caption]) + ->andFilterWhere(['like', 'description', $this->description]) + ->andFilterWhere(['like', 'photo', $this->photo]) + ->andFilterWhere(['like', 'photo_big', $this->photo_big]); + + return $dataProvider; + } +} diff --git a/backend/models/TeamSkils.php b/backend/models/TeamSkils.php new file mode 100644 index 0000000..3bf2d48 --- /dev/null +++ b/backend/models/TeamSkils.php @@ -0,0 +1,60 @@ + 120] + ]; + } + + /** + * @inheritdoc + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('app', 'ID'), + 'team_id' => Yii::t('app', 'Team ID'), + 'title' => Yii::t('app', 'Title'), + 'value' => Yii::t('app', 'Value'), + ]; + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeam() + { + return $this->hasOne(Team::className(), ['id' => 'team_id']); + } +} diff --git a/backend/models/User.php b/backend/models/User.php new file mode 100644 index 0000000..51325ce --- /dev/null +++ b/backend/models/User.php @@ -0,0 +1,73 @@ + 255], + [['auth_key'], 'string', 'max' => 32], + [['username'], 'unique'], + [['email'], 'unique'], + [['password_reset_token'], 'unique'] + ]; + } + + /** + * @inheritdoc + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('app', 'ID'), + 'username' => Yii::t('app', 'Username'), + 'auth_key' => Yii::t('app', 'Auth Key'), + 'password_hash' => Yii::t('app', 'Password Hash'), + 'password_reset_token' => Yii::t('app', 'Password Reset Token'), + 'email' => Yii::t('app', 'Email'), + 'status' => Yii::t('app', 'Status'), + 'created_at' => Yii::t('app', 'Created At'), + 'updated_at' => Yii::t('app', 'Updated At'), + ]; + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeams() + { + return $this->hasMany(Team::className(), ['user_id' => 'id']); + } +} diff --git a/backend/runtime/.gitignore b/backend/runtime/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/backend/runtime/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/backend/views/adminlte/layouts/content.php b/backend/views/adminlte/layouts/content.php new file mode 100644 index 0000000..38c9442 --- /dev/null +++ b/backend/views/adminlte/layouts/content.php @@ -0,0 +1,235 @@ + +
+
+ blocks['content-header'])) { ?> +

blocks['content-header'] ?>

+ +

+ title !== null) { + echo \yii\helpers\Html::encode($this->title); + } else { + echo \yii\helpers\Inflector::camel2words( + \yii\helpers\Inflector::id2camel($this->context->module->id) + ); + echo ($this->context->module->id !== \Yii::$app->id) ? 'Module' : ''; + } ?> +

+ + + isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [], + ] + ) ?> +
+ +
+ + +
+
+ + + + + + +
\ No newline at end of file diff --git a/backend/views/adminlte/layouts/header.php b/backend/views/adminlte/layouts/header.php new file mode 100644 index 0000000..177d603 --- /dev/null +++ b/backend/views/adminlte/layouts/header.php @@ -0,0 +1,284 @@ + + +
+ + ArtWeb' . Yii::$app->name . '', Yii::$app->homeUrl, ['class' => 'logo']) ?> + + +
diff --git a/backend/views/adminlte/layouts/left.php b/backend/views/adminlte/layouts/left.php new file mode 100644 index 0000000..d961e1c --- /dev/null +++ b/backend/views/adminlte/layouts/left.php @@ -0,0 +1,79 @@ + diff --git a/backend/views/adminlte/layouts/main-login.php b/backend/views/adminlte/layouts/main-login.php new file mode 100644 index 0000000..c6525db --- /dev/null +++ b/backend/views/adminlte/layouts/main-login.php @@ -0,0 +1,29 @@ + +beginPage() ?> + + + + + + + <?= Html::encode($this->title) ?> + head() ?> + + + +beginBody() ?> + + + +endBody() ?> + + +endPage() ?> diff --git a/backend/views/adminlte/layouts/main.php b/backend/views/adminlte/layouts/main.php new file mode 100644 index 0000000..1aa871f --- /dev/null +++ b/backend/views/adminlte/layouts/main.php @@ -0,0 +1,65 @@ +controller->action->id === 'login') { +/** + * Do not use this code in your template. Remove it. + * Instead, use the code $this->layout = '//main-login'; in your controller. + */ + echo $this->render( + 'main-login', + ['content' => $content] + ); +} else { + + if (class_exists('backend\assets\AppAsset')) { + backend\assets\AppAsset::register($this); + } else { + app\assets\AppAsset::register($this); + } + + dmstr\web\AdminLteAsset::register($this); + + $directoryAsset = Yii::$app->assetManager->getPublishedUrl('@vendor/almasaeed2010/adminlte/dist'); + ?> + beginPage() ?> + + + + + + + <?= Html::encode($this->title) ?> + head() ?> + + + beginBody() ?> +
+ + render( + 'header.php', + ['directoryAsset' => $directoryAsset] + ) ?> + + render( + 'left.php', + ['directoryAsset' => $directoryAsset] + ) + ?> + + render( + 'content.php', + ['content' => $content, 'directoryAsset' => $directoryAsset] + ) ?> + +
+ + endBody() ?> + + + endPage() ?> + diff --git a/backend/views/adminlte/site/error.php b/backend/views/adminlte/site/error.php new file mode 100644 index 0000000..fe51789 --- /dev/null +++ b/backend/views/adminlte/site/error.php @@ -0,0 +1,45 @@ +title = $name; +?> + +
+ +
+

+ +
+

+ +

+ +

+ +

+ The above error occurred while the Web server was processing your request. + Please contact us if you think this is a server error. Thank you. + Meanwhile, you may return to dashboard or try using the search + form. +

+ +
+
+ + +
+ +
+
+
+
+
+ +
diff --git a/backend/views/adminlte/site/login.php b/backend/views/adminlte/site/login.php new file mode 100644 index 0000000..bbe2136 --- /dev/null +++ b/backend/views/adminlte/site/login.php @@ -0,0 +1,70 @@ +title = 'Sign In'; + +$fieldOptions1 = [ + 'options' => ['class' => 'form-group has-feedback'], + 'inputTemplate' => "{input}" +]; + +$fieldOptions2 = [ + 'options' => ['class' => 'form-group has-feedback'], + 'inputTemplate' => "{input}" +]; +?> + +
+ + + + +
diff --git a/backend/views/clients/_form.php b/backend/views/clients/_form.php new file mode 100755 index 0000000..602fc8e --- /dev/null +++ b/backend/views/clients/_form.php @@ -0,0 +1,39 @@ + + +
+ + ['enctype' => 'multipart/form-data']]); ?> + + field($model, 'title')->textInput(['maxlength' => true]) ?> + + field($model, 'description')->widget(CKEditor::className(),[ + 'editorOptions' => [ + 'preset' => 'full', + 'inline' => false, + ], + ]); ?> + + field($model, 'file')->fileInput() ?> + + field($model, 'link')->textInput(['maxlength' => true]) ?> + + field($model, 'visible')->dropDownList([1=>Yii::t('app', 'Active'),0=>Yii::t('app', 'Hidden')]) ?> + + field($model, 'position')->dropDownList(range(0, 50)) ?> + +
+ isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> +
+ + + +
diff --git a/backend/views/clients/_search.php b/backend/views/clients/_search.php new file mode 100755 index 0000000..d5fdd09 --- /dev/null +++ b/backend/views/clients/_search.php @@ -0,0 +1,39 @@ + + + diff --git a/backend/views/clients/create.php b/backend/views/clients/create.php new file mode 100755 index 0000000..46b1f58 --- /dev/null +++ b/backend/views/clients/create.php @@ -0,0 +1,21 @@ +title = Yii::t('app', 'Create Clients'); +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Clients'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

title) ?>

+ + render('_form', [ + 'model' => $model, + ]) ?> + +
diff --git a/backend/views/clients/index.php b/backend/views/clients/index.php new file mode 100755 index 0000000..7d96e42 --- /dev/null +++ b/backend/views/clients/index.php @@ -0,0 +1,40 @@ +title = Yii::t('app', 'Clients'); +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

title) ?>

+ render('_search', ['model' => $searchModel]); ?> + +

+ 'btn btn-success']) ?> +

+ + $dataProvider, + 'filterModel' => $searchModel, + 'columns' => [ + ['class' => 'yii\grid\SerialColumn'], + + 'id', + 'title', + 'description:ntext', + 'logo', + 'link', + // 'visible', + // 'position', + + ['class' => 'yii\grid\ActionColumn'], + ], + ]); ?> + +
diff --git a/backend/views/clients/update.php b/backend/views/clients/update.php new file mode 100755 index 0000000..159459b --- /dev/null +++ b/backend/views/clients/update.php @@ -0,0 +1,23 @@ +title = Yii::t('app', 'Update {modelClass}: ', [ + 'modelClass' => 'Clients', +]) . ' ' . $model->title; +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Clients'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = ['label' => $model->title, 'url' => ['view', 'id' => $model->id]]; +$this->params['breadcrumbs'][] = Yii::t('app', 'Update'); +?> +
+ +

title) ?>

+ + render('_form', [ + 'model' => $model, + ]) ?> + +
diff --git a/backend/views/clients/view.php b/backend/views/clients/view.php new file mode 100755 index 0000000..fab5d21 --- /dev/null +++ b/backend/views/clients/view.php @@ -0,0 +1,41 @@ +title = $model->title; +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Clients'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

title) ?>

+ +

+ $model->id], ['class' => 'btn btn-primary']) ?> + $model->id], [ + 'class' => 'btn btn-danger', + 'data' => [ + 'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'), + 'method' => 'post', + ], + ]) ?> +

+ + $model, + 'attributes' => [ + 'id', + 'title', + 'description:ntext', + 'logo', + 'link', + 'visible', + 'position', + ], + ]) ?> + +
diff --git a/backend/views/departments/_form.php b/backend/views/departments/_form.php new file mode 100755 index 0000000..6fdd699 --- /dev/null +++ b/backend/views/departments/_form.php @@ -0,0 +1,27 @@ + + +
+ + + + field($model, 'title')->textInput(['maxlength' => true]) ?> + + field($model, 'description')->textarea(['rows' => 6]) ?> + + field($model, 'visible')->textInput() ?> + +
+ isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> +
+ + + +
diff --git a/backend/views/departments/_search.php b/backend/views/departments/_search.php new file mode 100755 index 0000000..9ca415e --- /dev/null +++ b/backend/views/departments/_search.php @@ -0,0 +1,33 @@ + + + diff --git a/backend/views/departments/create.php b/backend/views/departments/create.php new file mode 100755 index 0000000..426289e --- /dev/null +++ b/backend/views/departments/create.php @@ -0,0 +1,21 @@ +title = Yii::t('app', 'Create Departments'); +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Departments'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

title) ?>

+ + render('_form', [ + 'model' => $model, + ]) ?> + +
diff --git a/backend/views/departments/index.php b/backend/views/departments/index.php new file mode 100755 index 0000000..e3d0e0d --- /dev/null +++ b/backend/views/departments/index.php @@ -0,0 +1,36 @@ +title = Yii::t('app', 'Departments'); +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

title) ?>

+ render('_search', ['model' => $searchModel]); ?> + +

+ 'btn btn-success']) ?> +

+ + $dataProvider, + 'filterModel' => $searchModel, + 'columns' => [ + ['class' => 'yii\grid\SerialColumn'], + + 'id', + 'title', + 'visible', + + ['class' => 'yii\grid\ActionColumn'], + ], + ]); ?> + +
diff --git a/backend/views/departments/update.php b/backend/views/departments/update.php new file mode 100755 index 0000000..0d7be14 --- /dev/null +++ b/backend/views/departments/update.php @@ -0,0 +1,23 @@ +title = Yii::t('app', 'Update {modelClass}: ', [ + 'modelClass' => 'Departments', +]) . ' ' . $model->title; +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Departments'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = ['label' => $model->title, 'url' => ['view', 'id' => $model->id]]; +$this->params['breadcrumbs'][] = Yii::t('app', 'Update'); +?> +
+ +

title) ?>

+ + render('_form', [ + 'model' => $model, + ]) ?> + +
diff --git a/backend/views/departments/view.php b/backend/views/departments/view.php new file mode 100755 index 0000000..3228bbf --- /dev/null +++ b/backend/views/departments/view.php @@ -0,0 +1,38 @@ +title = $model->title; +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Departments'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

title) ?>

+ +

+ $model->id], ['class' => 'btn btn-primary']) ?> + $model->id], [ + 'class' => 'btn btn-danger', + 'data' => [ + 'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'), + 'method' => 'post', + ], + ]) ?> +

+ + $model, + 'attributes' => [ + 'id', + 'title', + 'description:ntext', + 'visible', + ], + ]) ?> + +
diff --git a/backend/views/layouts/main.php b/backend/views/layouts/main.php new file mode 100755 index 0000000..4d99660 --- /dev/null +++ b/backend/views/layouts/main.php @@ -0,0 +1,93 @@ + +beginPage() ?> + + + + + + + <?= Html::encode($this->title) ?> + head() ?> + + +beginBody() ?> + +
+ 'ArtWeb', + 'brandUrl' => Yii::$app->homeUrl, + 'options' => [ + 'class' => 'navbar-inverse navbar-fixed-top', + ], + ]); + $menuItems = + [ + [ + 'label' => 'КомпаниÑ', + 'items' => [ + [ + 'label' => 'Команда', + 'url' => ['/team'] + ], + [ + 'label' => 'Отделы', + 'url' => ['/departments'] + ] + ] + ], + [ + 'label' => 'Клиенты', + 'url' => ['/clients'] + ], + ]; + if (Yii::$app->user->isGuest) { + $menuItems[] = ['label' => 'Login', 'url' => ['/site/login']]; + } else { + $menuItems[] = [ + 'label' => 'Logout (' . Yii::$app->user->identity->username . ')', + 'url' => ['/site/logout'], + 'linkOptions' => ['data-method' => 'post'] + ]; + } + echo Nav::widget([ + 'options' => ['class' => 'navbar-nav navbar-right'], + 'items' => $menuItems, + ]); + NavBar::end(); + ?> + +
+ isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [], + ]) ?> + + +
+
+ + + +endBody() ?> + + +endPage() ?> diff --git a/backend/views/site/error.php b/backend/views/site/error.php new file mode 100755 index 0000000..0ba2574 --- /dev/null +++ b/backend/views/site/error.php @@ -0,0 +1,27 @@ +title = $name; +?> +
+ +

title) ?>

+ +
+ +
+ +

+ The above error occurred while the Web server was processing your request. +

+

+ Please contact us if you think this is a server error. Thank you. +

+ +
diff --git a/backend/views/site/index.php b/backend/views/site/index.php new file mode 100755 index 0000000..f780610 --- /dev/null +++ b/backend/views/site/index.php @@ -0,0 +1,53 @@ +title = 'My Yii Application'; +?> +
+ +
+

Congratulations!

+ +

You have successfully created your Yii-powered application.

+ +

Get started with Yii

+
+ +
+ +
+
+

Heading

+ +

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et + dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip + ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu + fugiat nulla pariatur.

+ +

Yii Documentation »

+
+
+

Heading

+ +

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et + dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip + ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu + fugiat nulla pariatur.

+ +

Yii Forum »

+
+
+

Heading

+ +

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et + dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip + ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu + fugiat nulla pariatur.

+ +

Yii Extensions »

+
+
+ +
+
diff --git a/backend/views/site/login.php b/backend/views/site/login.php new file mode 100755 index 0000000..ec9cc06 --- /dev/null +++ b/backend/views/site/login.php @@ -0,0 +1,35 @@ +title = 'Login'; +$this->params['breadcrumbs'][] = $this->title; +?> +
+

title) ?>

+ +

Please fill out the following fields to login:

+ +
+
+ 'login-form']); ?> + + field($model, 'username') ?> + + field($model, 'password')->passwordInput() ?> + + field($model, 'rememberMe')->checkbox() ?> + +
+ 'btn btn-primary', 'name' => 'login-button']) ?> +
+ + +
+
+
diff --git a/backend/views/team/_form.php b/backend/views/team/_form.php new file mode 100644 index 0000000..7def0b3 --- /dev/null +++ b/backend/views/team/_form.php @@ -0,0 +1,201 @@ + + +
+ + ['enctype' => 'multipart/form-data', 'id' => 'team-form']]); ?> + + errorSummary([$model,reset($skills)],['class' => 'alert alert-danger']); ?> + + field($model, 'department_id')->dropDownList( + ArrayHelper::map( + Departments::find()->all(), + 'id', + 'title' + ) + ) ?> + + field($model, 'user_id')->dropDownList( + ArrayHelper::map( + User::find()->all(), + 'id', + 'username' + ), ['prompt' => Yii::t('yii', '(not set)')] + ) ?> + + field($model, 'name')->textInput(['maxlength' => true]) ?> + + field($model, 'name2')->textInput(['maxlength' => true]) ?> + + field($model, 'email')->textInput(['maxlength' => true]) ?> + + field($model, 'job')->textInput(['maxlength' => true]) ?> + + field($model, 'zodiac')->dropDownList([ 'aries' => 'Aries', 'taurus' => 'Taurus', 'gemini' => 'Gemini', 'cancer' => 'Cancer', 'leo' => 'Leo', 'virgo' => 'Virgo', 'libra' => 'Libra', 'scorpio' => 'Scorpio', 'sagittarius' => 'Sagittarius', 'capricorn' => 'Capricorn', 'aquarius' => 'Aquarius', 'pisces' => 'Pisces'], ['prompt' => '']) ?> + + field($model, 'iq')->textInput() ?> + + field($model, 'soc_vk')->textInput(['maxlength' => true]) ?> + + field($model, 'soc_fb')->textInput(['maxlength' => true]) ?> + + field($model, 'soc_tw')->textInput(['maxlength' => true]) ?> + + field($model, 'soc_li')->textInput(['maxlength' => true]) ?> + + field($model, 'interests_caption')->widget(CKEditor::className(),[ + 'editorOptions' => [ + 'preset' => 'basic', + 'inline' => false, + ], + ]); + ?> + +
+ + field($model, 'skils_caption')->widget(CKEditor::className(),[ + 'editorOptions' => [ + 'preset' => 'basic', + 'inline' => false, + ], + ]); + ?> +
+ $skills, + 'form' => $form, + 'attributes' => [ + [ + 'attribute' => 'title', + 'options'=> [], + 'field' => function ($activeField, $skills, $parentClass, $closeButtonClass) { + return $activeField->textInput($skills); + }, + ], + [ + 'attribute' => 'value', + 'options'=> [], + 'field' => function ($activeField, $skills, $parentClass, $closeButtonClass) { + return $activeField->textInput($skills); + }, + ], + ], + //default + 'parentClassPrefix' => '-mf-row', + 'closeButtonClass' => 'mf-btn-close pull-right', + 'clientOptions' => [ + 'btn' => '.cloneBtn', + 'appendTo' => '', + 'confirmMessage' => Yii::t('yii' , 'Are you sure you want to delete this item?'), + 'deleteRouter' => Url::to('deleteskill'), + ], + 'template' => function($parentOptions, $closeButtonClass, $templateFields){ //default + $closeBtn = Html::tag('a', '×', ['class' => $closeButtonClass, 'href' => 'javascript:void(0)']); + return Html::tag('div', $closeBtn . $templateFields, $parentOptions); + }, + ]);?> + + 'Add skill', + 'options' => [ + 'class' => 'cloneBtn' + ] + ]);?> +
+
+ +
+ + field($model, 'films_caption')->widget(CKEditor::className(),[ + 'editorOptions' => [ + 'preset' => 'basic', + 'inline' => false, + ], + ]); + ?> +
+ $books, + 'form' => $form, + 'attributes' => [ + [ + 'attribute' => 'title', + 'options'=> [], + 'field' => function ($activeField, $books, $parentClass, $closeButtonClass) { + return $activeField->textInput($books); + }, + ], + [ + 'attribute' => 'cover', + 'options'=> [], + 'field' => function ($activeField, $books, $parentClass, $closeButtonClass) { + return $activeField->fileInput(); + }, + ], + ], + //default + 'parentClassPrefix' => '-mf-row', + 'closeButtonClass' => 'mf-btn-close pull-right', + 'clientOptions' => [ + 'btn' => '.cloneBtn', + 'appendTo' => '', + 'confirmMessage' => Yii::t('yii' , 'Are you sure you want to delete this item?'), + 'deleteRouter' => Url::to('deletebook'), + ], + 'template' => function($parentOptions, $closeButtonClass, $templateFields){ //default + $closeBtn = Html::tag('a', '×', ['class' => $closeButtonClass, 'href' => 'javascript:void(0)']); + return Html::tag('div', $closeBtn . $templateFields, $parentOptions); + }, + ]);?> + + 'Add book', + 'options' => [ + 'class' => 'cloneBtn' + ] + ]);?> +
+
+ + field($model, 'description')->widget(CKEditor::className(),[ + 'editorOptions' => [ + 'preset' => 'basic', + 'inline' => false, + ], + ]); + ?> + + field($model, 'file')->fileInput() ?> + photo)) :?> + photo, ['style' => 'max-width: 150px; max-height: 200px'])?> +

+ + + field($model, 'file2')->fileInput() ?> + photo_big)) :?> + photo_big, ['style' => 'max-width: 150px; max-height: 200px'])?> +

+ + + field($model, 'visible')->dropDownList([1=>Yii::t('app', 'Active'),0=>Yii::t('app', 'Hidden')]) ?> + +
+ isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> +
+ + + +
diff --git a/backend/views/team/_search.php b/backend/views/team/_search.php new file mode 100644 index 0000000..f3437ea --- /dev/null +++ b/backend/views/team/_search.php @@ -0,0 +1,67 @@ + + + diff --git a/backend/views/team/create.php b/backend/views/team/create.php new file mode 100644 index 0000000..92d25a0 --- /dev/null +++ b/backend/views/team/create.php @@ -0,0 +1,21 @@ +title = Yii::t('app', 'Create Team'); +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Teams'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

title) ?>

+ + render('_form', [ + 'model' => $model, + ]) ?> + +
diff --git a/backend/views/team/index.php b/backend/views/team/index.php new file mode 100644 index 0000000..8047865 --- /dev/null +++ b/backend/views/team/index.php @@ -0,0 +1,54 @@ +title = Yii::t('app', 'Teams'); +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

title) ?>

+ render('_search', ['model' => $searchModel]); ?> + +

+ 'btn btn-success']) ?> +

+ + $dataProvider, + 'filterModel' => $searchModel, + 'columns' => [ + ['class' => 'yii\grid\SerialColumn'], + +// 'id', +// 'department_id', + 'name', + 'email:email', + 'user_id', + 'job', +// 'name2', + // 'zodiac', + // 'iq', + // 'soc_vk', + // 'soc_fb', + // 'soc_tw', + // 'soc_li', + // 'interests_caption:ntext', + // 'skils_caption:ntext', + // 'books_caption:ntext', + // 'films_caption:ntext', + // 'description:ntext', + // 'photo', + // 'photo_big', + // 'visible', + + ['class' => 'yii\grid\ActionColumn'], + ], + ]); ?> + +
diff --git a/backend/views/team/skils/_form.php b/backend/views/team/skils/_form.php new file mode 100644 index 0000000..067afa4 --- /dev/null +++ b/backend/views/team/skils/_form.php @@ -0,0 +1,27 @@ + + +
+ + + + field($model, 'team_id')->textInput() ?> + + field($model, 'title')->textInput(['maxlength' => true]) ?> + + field($model, 'value')->textInput() ?> + +
+ isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> +
+ + + +
diff --git a/backend/views/team/skils/create.php b/backend/views/team/skils/create.php new file mode 100644 index 0000000..47134e2 --- /dev/null +++ b/backend/views/team/skils/create.php @@ -0,0 +1,21 @@ +title = Yii::t('app', 'Create Team Skils'); +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Team Skils'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

title) ?>

+ + render('_form', [ + 'model' => $model, + ]) ?> + +
diff --git a/backend/views/team/skils/index.php b/backend/views/team/skils/index.php new file mode 100644 index 0000000..7e75779 --- /dev/null +++ b/backend/views/team/skils/index.php @@ -0,0 +1,34 @@ +title = Yii::t('app', 'Team Skils'); +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

title) ?>

+ +

+ 'btn btn-success']) ?> +

+ + $dataProvider, + 'columns' => [ + ['class' => 'yii\grid\SerialColumn'], + + 'id', + 'team_id', + 'title', + 'value', + + ['class' => 'yii\grid\ActionColumn'], + ], + ]); ?> + +
diff --git a/backend/views/team/skils/update.php b/backend/views/team/skils/update.php new file mode 100644 index 0000000..a74610e --- /dev/null +++ b/backend/views/team/skils/update.php @@ -0,0 +1,23 @@ +title = Yii::t('app', 'Update {modelClass}: ', [ + 'modelClass' => 'Team Skils', +]) . ' ' . $model->title; +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Team Skils'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = ['label' => $model->title, 'url' => ['view', 'id' => $model->id]]; +$this->params['breadcrumbs'][] = Yii::t('app', 'Update'); +?> +
+ +

title) ?>

+ + render('_form', [ + 'model' => $model, + ]) ?> + +
diff --git a/backend/views/team/skils/view.php b/backend/views/team/skils/view.php new file mode 100644 index 0000000..2d5fe6f --- /dev/null +++ b/backend/views/team/skils/view.php @@ -0,0 +1,38 @@ +title = $model->title; +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Team Skils'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

title) ?>

+ +

+ $model->id], ['class' => 'btn btn-primary']) ?> + $model->id], [ + 'class' => 'btn btn-danger', + 'data' => [ + 'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'), + 'method' => 'post', + ], + ]) ?> +

+ + $model, + 'attributes' => [ + 'id', + 'team_id', + 'title', + 'value', + ], + ]) ?> + +
diff --git a/backend/views/team/update.php b/backend/views/team/update.php new file mode 100644 index 0000000..c661c8c --- /dev/null +++ b/backend/views/team/update.php @@ -0,0 +1,25 @@ +title = Yii::t('app', 'Update {modelClass}: ', [ + 'modelClass' => 'Team', +]) . ' ' . $model->name; +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Teams'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = ['label' => $model->name, 'url' => ['view', 'id' => $model->id]]; +$this->params['breadcrumbs'][] = Yii::t('app', 'Update'); +?> +
+ +

title) ?>

+ + render('_form', [ + 'model' => $model, + 'skills' => $skills, + 'books' => $books, + ]) ?> + +
diff --git a/backend/views/team/view.php b/backend/views/team/view.php new file mode 100644 index 0000000..1124beb --- /dev/null +++ b/backend/views/team/view.php @@ -0,0 +1,55 @@ +title = $model->name; +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Teams'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

title) ?>

+ +

+ $model->id], ['class' => 'btn btn-primary']) ?> + $model->id], [ + 'class' => 'btn btn-danger', + 'data' => [ + 'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'), + 'method' => 'post', + ], + ]) ?> +

+ + $model, + 'attributes' => [ + 'id', + 'department_id', + 'user_id', + 'name', + 'name2', + 'email:email', + 'job', + 'zodiac', + 'iq', + 'soc_vk', + 'soc_fb', + 'soc_tw', + 'soc_li', + 'interests_caption:ntext', + 'skils_caption:ntext', + 'books_caption:ntext', + 'films_caption:ntext', + 'description:ntext', + 'photo', + 'photo_big', + 'visible', + ], + ]) ?> + +
diff --git a/backend/web/.gitignore b/backend/web/.gitignore new file mode 100644 index 0000000..25c74e6 --- /dev/null +++ b/backend/web/.gitignore @@ -0,0 +1,2 @@ +/index.php +/index-test.php diff --git a/backend/web/assets/.gitignore b/backend/web/assets/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/backend/web/assets/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/backend/web/css/site.css b/backend/web/css/site.css new file mode 100644 index 0000000..698be70 --- /dev/null +++ b/backend/web/css/site.css @@ -0,0 +1,91 @@ +html, +body { + height: 100%; +} + +.wrap { + min-height: 100%; + height: auto; + margin: 0 auto -60px; + padding: 0 0 60px; +} + +.wrap > .container { + padding: 70px 15px 20px; +} + +.footer { + height: 60px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + padding-top: 20px; +} + +.jumbotron { + text-align: center; + background-color: transparent; +} + +.jumbotron .btn { + font-size: 21px; + padding: 14px 24px; +} + +.not-set { + color: #c55; + font-style: italic; +} + +/* add sorting icons to gridview sort links */ +a.asc:after, a.desc:after { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + padding-left: 5px; +} + +a.asc:after { + content: /*"\e113"*/ "\e151"; +} + +a.desc:after { + content: /*"\e114"*/ "\e152"; +} + +.sort-numerical a.asc:after { + content: "\e153"; +} + +.sort-numerical a.desc:after { + content: "\e154"; +} + +.sort-ordinal a.asc:after { + content: "\e155"; +} + +.sort-ordinal a.desc:after { + content: "\e156"; +} + +.grid-view th { + white-space: nowrap; +} + +.hint-block { + display: block; + margin-top: 5px; + color: #999; +} + +.error-summary { + color: #a94442; + background: #fdf7f7; + border-left: 3px solid #eed3d7; + padding: 10px 20px; + margin: 0 0 15px 0; +} diff --git a/backend/web/favicon.ico b/backend/web/favicon.ico new file mode 100644 index 0000000..580ed73 Binary files /dev/null and b/backend/web/favicon.ico differ diff --git a/backend/web/robots.txt b/backend/web/robots.txt new file mode 100644 index 0000000..1f53798 --- /dev/null +++ b/backend/web/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / diff --git a/common/components/Request.php b/common/components/Request.php new file mode 100644 index 0000000..6d9baad --- /dev/null +++ b/common/components/Request.php @@ -0,0 +1,22 @@ +web, "", parent::getBaseUrl()) . $this->adminUrl; + } + + public function resolvePathInfo() + { + if ($this->getUrl() === $this->adminUrl) { + return ""; + } else { + return parent::resolvePathInfo(); + } + } +} \ No newline at end of file diff --git a/common/config/.gitignore b/common/config/.gitignore new file mode 100644 index 0000000..97c0f01 --- /dev/null +++ b/common/config/.gitignore @@ -0,0 +1,2 @@ +main-local.php +params-local.php diff --git a/common/config/bootstrap.php b/common/config/bootstrap.php new file mode 100644 index 0000000..ecc13e5 --- /dev/null +++ b/common/config/bootstrap.php @@ -0,0 +1,5 @@ + dirname(dirname(__DIR__)) . '/vendor', + 'components' => [ + 'cache' => [ + 'class' => 'yii\caching\FileCache', + ], + 'urlManager' => [ + 'enablePrettyUrl' => true, + 'showScriptName' => false, + 'rules' => [ + 'module///' => '//', + ] + ], + ], + 'language' => 'ru-RU', +]; diff --git a/common/config/params.php b/common/config/params.php new file mode 100644 index 0000000..4ec9ba6 --- /dev/null +++ b/common/config/params.php @@ -0,0 +1,6 @@ + 'admin@example.com', + 'supportEmail' => 'support@example.com', + 'user.passwordResetTokenExpire' => 3600, +]; diff --git a/common/config/rules.php b/common/config/rules.php new file mode 100644 index 0000000..1d2d0da --- /dev/null +++ b/common/config/rules.php @@ -0,0 +1,7 @@ +' => '/index', + '/' => '/', + '//' => '/', +]; \ No newline at end of file diff --git a/common/mail/layouts/html.php b/common/mail/layouts/html.php new file mode 100644 index 0000000..bddbc61 --- /dev/null +++ b/common/mail/layouts/html.php @@ -0,0 +1,22 @@ + +beginPage() ?> + + + + + <?= Html::encode($this->title) ?> + head() ?> + + + beginBody() ?> + + endBody() ?> + + +endPage() ?> diff --git a/common/mail/layouts/text.php b/common/mail/layouts/text.php new file mode 100644 index 0000000..7087cea --- /dev/null +++ b/common/mail/layouts/text.php @@ -0,0 +1,12 @@ + +beginPage() ?> +beginBody() ?> + +endBody() ?> +endPage() ?> diff --git a/common/mail/passwordResetToken-html.php b/common/mail/passwordResetToken-html.php new file mode 100644 index 0000000..f3daf49 --- /dev/null +++ b/common/mail/passwordResetToken-html.php @@ -0,0 +1,15 @@ +urlManager->createAbsoluteUrl(['site/reset-password', 'token' => $user->password_reset_token]); +?> +
+

Hello username) ?>,

+ +

Follow the link below to reset your password:

+ +

+
diff --git a/common/mail/passwordResetToken-text.php b/common/mail/passwordResetToken-text.php new file mode 100644 index 0000000..244c0cb --- /dev/null +++ b/common/mail/passwordResetToken-text.php @@ -0,0 +1,12 @@ +urlManager->createAbsoluteUrl(['site/reset-password', 'token' => $user->password_reset_token]); +?> +Hello username ?>, + +Follow the link below to reset your password: + + diff --git a/common/models/LoginForm.php b/common/models/LoginForm.php new file mode 100644 index 0000000..afc1c23 --- /dev/null +++ b/common/models/LoginForm.php @@ -0,0 +1,78 @@ +hasErrors()) { + $user = $this->getUser(); + if (!$user || !$user->validatePassword($this->password)) { + $this->addError($attribute, 'Incorrect username or password.'); + } + } + } + + /** + * Logs in a user using the provided username and password. + * + * @return boolean whether the user is logged in successfully + */ + public function login() + { + if ($this->validate()) { + return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0); + } else { + return false; + } + } + + /** + * Finds user by [[username]] + * + * @return User|null + */ + protected function getUser() + { + if ($this->_user === null) { + $this->_user = User::findByUsername($this->username); + } + + return $this->_user; + } +} diff --git a/common/models/OrdersAudit.php b/common/models/OrdersAudit.php new file mode 100644 index 0000000..67ef04d --- /dev/null +++ b/common/models/OrdersAudit.php @@ -0,0 +1,64 @@ + 150], + [['ip'], 'string', 'max' => 15] + ]; + } + + /** + * @inheritdoc + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('app', 'ID'), + 'email' => Yii::t('app', 'Email'), + 'phone' => Yii::t('app', 'Phone'), + 'comment' => Yii::t('app', 'Comment'), + 'created' => Yii::t('app', 'Created'), + 'ip' => Yii::t('app', 'Ip'), + ]; + } + + public function setDefaults() { + $this->ip = Yii::$app->request->getUserIP(); + $this->created = time(); + } + + public function sendEmail($to) { + + } +} diff --git a/common/models/User.php b/common/models/User.php new file mode 100644 index 0000000..ce78fcd --- /dev/null +++ b/common/models/User.php @@ -0,0 +1,188 @@ + self::STATUS_ACTIVE], + ['status', 'in', 'range' => [self::STATUS_ACTIVE, self::STATUS_DELETED]], + ]; + } + + /** + * @inheritdoc + */ + public static function findIdentity($id) + { + return static::findOne(['id' => $id, 'status' => self::STATUS_ACTIVE]); + } + + /** + * @inheritdoc + */ + public static function findIdentityByAccessToken($token, $type = null) + { + throw new NotSupportedException('"findIdentityByAccessToken" is not implemented.'); + } + + /** + * Finds user by username + * + * @param string $username + * @return static|null + */ + public static function findByUsername($username) + { + return static::findOne(['username' => $username, 'status' => self::STATUS_ACTIVE]); + } + + /** + * Finds user by password reset token + * + * @param string $token password reset token + * @return static|null + */ + public static function findByPasswordResetToken($token) + { + if (!static::isPasswordResetTokenValid($token)) { + return null; + } + + return static::findOne([ + 'password_reset_token' => $token, + 'status' => self::STATUS_ACTIVE, + ]); + } + + /** + * Finds out if password reset token is valid + * + * @param string $token password reset token + * @return boolean + */ + public static function isPasswordResetTokenValid($token) + { + if (empty($token)) { + return false; + } + + $timestamp = (int) substr($token, strrpos($token, '_') + 1); + $expire = Yii::$app->params['user.passwordResetTokenExpire']; + return $timestamp + $expire >= time(); + } + + /** + * @inheritdoc + */ + public function getId() + { + return $this->getPrimaryKey(); + } + + /** + * @inheritdoc + */ + public function getAuthKey() + { + return $this->auth_key; + } + + /** + * @inheritdoc + */ + public function validateAuthKey($authKey) + { + return $this->getAuthKey() === $authKey; + } + + /** + * Validates password + * + * @param string $password password to validate + * @return boolean if password provided is valid for current user + */ + public function validatePassword($password) + { + return Yii::$app->security->validatePassword($password, $this->password_hash); + } + + /** + * Generates password hash from password and sets it to the model + * + * @param string $password + */ + public function setPassword($password) + { + $this->password_hash = Yii::$app->security->generatePasswordHash($password); + } + + /** + * Generates "remember me" authentication key + */ + public function generateAuthKey() + { + $this->auth_key = Yii::$app->security->generateRandomString(); + } + + /** + * Generates new password reset token + */ + public function generatePasswordResetToken() + { + $this->password_reset_token = Yii::$app->security->generateRandomString() . '_' . time(); + } + + /** + * Removes password reset token + */ + public function removePasswordResetToken() + { + $this->password_reset_token = null; + } +} diff --git a/common/widgets/Alert.php b/common/widgets/Alert.php new file mode 100644 index 0000000..8f1e590 --- /dev/null +++ b/common/widgets/Alert.php @@ -0,0 +1,79 @@ +session->setFlash('error', 'This is the message'); + * \Yii::$app->session->setFlash('success', 'This is the message'); + * \Yii::$app->session->setFlash('info', 'This is the message'); + * ``` + * + * Multiple messages could be set as follows: + * + * ```php + * \Yii::$app->session->setFlash('error', ['Error 1', 'Error 2']); + * ``` + * + * @author Kartik Visweswaran + * @author Alexander Makarov + */ +class Alert extends \yii\bootstrap\Widget +{ + /** + * @var array the alert types configuration for the flash messages. + * This array is setup as $key => $value, where: + * - $key is the name of the session flash variable + * - $value is the bootstrap alert type (i.e. danger, success, info, warning) + */ + public $alertTypes = [ + 'error' => 'alert-danger', + 'danger' => 'alert-danger', + 'success' => 'alert-success', + 'info' => 'alert-info', + 'warning' => 'alert-warning' + ]; + + /** + * @var array the options for rendering the close button tag. + */ + public $closeButton = []; + + public function init() + { + parent::init(); + + $session = \Yii::$app->session; + $flashes = $session->getAllFlashes(); + $appendCss = isset($this->options['class']) ? ' ' . $this->options['class'] : ''; + + foreach ($flashes as $type => $data) { + if (isset($this->alertTypes[$type])) { + $data = (array) $data; + foreach ($data as $i => $message) { + /* initialize css class for each alert box */ + $this->options['class'] = $this->alertTypes[$type] . $appendCss; + + /* assign unique id to each alert box */ + $this->options['id'] = $this->getId() . '-' . $type . '-' . $i; + + echo \yii\bootstrap\Alert::widget([ + 'body' => $message, + 'closeButton' => $this->closeButton, + 'options' => $this->options, + ]); + } + + $session->removeFlash($type); + } + } + } +} diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..fe2b4b5 --- /dev/null +++ b/composer.json @@ -0,0 +1,39 @@ +{ + "name": "yiisoft/yii2-app-advanced", + "description": "Yii 2 Advanced Project Template", + "keywords": ["yii2", "framework", "advanced", "project template"], + "homepage": "http://www.yiiframework.com/", + "type": "project", + "license": "BSD-3-Clause", + "support": { + "issues": "https://github.com/yiisoft/yii2/issues?state=open", + "forum": "http://www.yiiframework.com/forum/", + "wiki": "http://www.yiiframework.com/wiki/", + "irc": "irc://irc.freenode.net/yii", + "source": "https://github.com/yiisoft/yii2" + }, + "minimum-stability": "stable", + "require": { + "php": ">=5.4.0", + "yiisoft/yii2": ">=2.0.6", + "yiisoft/yii2-bootstrap": "*", + "yiisoft/yii2-swiftmailer": "*", + "pavlinter/yii2-multifields": "*", + "dmstr/yii2-adminlte-asset": "2.*" + }, + "require-dev": { + "yiisoft/yii2-codeception": "*", + "yiisoft/yii2-debug": "*", + "yiisoft/yii2-gii": "*", + "yiisoft/yii2-faker": "*" + }, + "config": { + "process-timeout": 1800 + }, + "extra": { + "asset-installer-paths": { + "npm-asset-library": "vendor/npm", + "bower-asset-library": "vendor/bower" + } + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..bfde42d --- /dev/null +++ b/composer.lock @@ -0,0 +1,1194 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "hash": "e52c5edddf09bbaefeae553d396be73c", + "content-hash": "f8b86b0265935903d07aa38f77e2aadb", + "packages": [ + { + "name": "almasaeed2010/adminlte", + "version": "v2.3.0", + "source": { + "type": "git", + "url": "https://github.com/almasaeed2010/AdminLTE.git", + "reference": "81aa879d3a4489213888e24975b073c7478f0447" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/almasaeed2010/AdminLTE/zipball/81aa879d3a4489213888e24975b073c7478f0447", + "reference": "81aa879d3a4489213888e24975b073c7478f0447", + "shasum": "" + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Abdullah Almsaeed", + "email": "support@almsaeedstudio.com" + } + ], + "description": "AdminLTE - admin control panel and dashboard that's based on Bootstrap 3", + "homepage": "http://almsaeedstudio.com/", + "keywords": [ + "JS", + "admin", + "back-end", + "css", + "less", + "responsive", + "template", + "theme", + "web" + ], + "time": "2015-08-17 01:49:41" + }, + { + "name": "bower-asset/bootstrap", + "version": "v3.3.5", + "source": { + "type": "git", + "url": "https://github.com/twbs/bootstrap.git", + "reference": "16b48259a62f576e52c903c476bd42b90ab22482" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twbs/bootstrap/zipball/16b48259a62f576e52c903c476bd42b90ab22482", + "reference": "16b48259a62f576e52c903c476bd42b90ab22482", + "shasum": "" + }, + "require": { + "bower-asset/jquery": ">=1.9.1" + }, + "type": "bower-asset-library", + "extra": { + "bower-asset-main": [ + "less/bootstrap.less", + "dist/js/bootstrap.js" + ], + "bower-asset-ignore": [ + "/.*", + "_config.yml", + "CNAME", + "composer.json", + "CONTRIBUTING.md", + "docs", + "js/tests", + "test-infra" + ] + }, + "license": [ + "MIT" + ], + "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", + "keywords": [ + "css", + "framework", + "front-end", + "js", + "less", + "mobile-first", + "responsive", + "web" + ] + }, + { + "name": "bower-asset/fontawesome", + "version": "v4.4.0", + "source": { + "type": "git", + "url": "https://github.com/FortAwesome/Font-Awesome.git", + "reference": "e554555d73a44e0a7d11b0361ad7a5325a5f551c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FortAwesome/Font-Awesome/zipball/e554555d73a44e0a7d11b0361ad7a5325a5f551c", + "reference": "e554555d73a44e0a7d11b0361ad7a5325a5f551c", + "shasum": "" + }, + "type": "bower-asset-library", + "extra": { + "bower-asset-main": [ + "less/font-awesome.less", + "scss/font-awesome.scss" + ], + "bower-asset-ignore": [ + "*/.*", + "*.json", + "src", + "*.yml", + "Gemfile", + "Gemfile.lock", + "*.md" + ] + }, + "license": [ + "OFL-1.1", + "MIT", + "CC-BY-3.0" + ], + "description": "Font Awesome" + }, + { + "name": "bower-asset/jquery", + "version": "2.1.4", + "source": { + "type": "git", + "url": "https://github.com/jquery/jquery.git", + "reference": "7751e69b615c6eca6f783a81e292a55725af6b85" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jquery/jquery/zipball/7751e69b615c6eca6f783a81e292a55725af6b85", + "reference": "7751e69b615c6eca6f783a81e292a55725af6b85", + "shasum": "" + }, + "require-dev": { + "bower-asset/qunit": "1.14.0", + "bower-asset/requirejs": "2.1.10", + "bower-asset/sinon": "1.8.1", + "bower-asset/sizzle": "2.1.1-patch2" + }, + "type": "bower-asset-library", + "extra": { + "bower-asset-main": "dist/jquery.js", + "bower-asset-ignore": [ + "**/.*", + "build", + "dist/cdn", + "speed", + "test", + "*.md", + "AUTHORS.txt", + "Gruntfile.js", + "package.json" + ] + }, + "license": [ + "MIT" + ], + "keywords": [ + "javascript", + "jquery", + "library" + ] + }, + { + "name": "bower-asset/jquery.inputmask", + "version": "3.1.63", + "source": { + "type": "git", + "url": "https://github.com/RobinHerbots/jquery.inputmask.git", + "reference": "c40c7287eadc31e341ebbf0c02352eb55b9cbc48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/RobinHerbots/jquery.inputmask/zipball/c40c7287eadc31e341ebbf0c02352eb55b9cbc48", + "reference": "c40c7287eadc31e341ebbf0c02352eb55b9cbc48", + "shasum": "" + }, + "require": { + "bower-asset/jquery": ">=1.7" + }, + "type": "bower-asset-library", + "extra": { + "bower-asset-main": [ + "./dist/inputmask/jquery.inputmask.js", + "./dist/inputmask/jquery.inputmask.extensions.js", + "./dist/inputmask/jquery.inputmask.date.extensions.js", + "./dist/inputmask/jquery.inputmask.numeric.extensions.js", + "./dist/inputmask/jquery.inputmask.phone.extensions.js", + "./dist/inputmask/jquery.inputmask.regex.extensions.js" + ], + "bower-asset-ignore": [ + "**/.*", + "qunit/", + "nuget/", + "tools/", + "js/", + "*.md", + "build.properties", + "build.xml", + "jquery.inputmask.jquery.json" + ] + }, + "license": [ + "http://opensource.org/licenses/mit-license.php" + ], + "description": "jquery.inputmask is a jquery plugin which create an input mask.", + "keywords": [ + "form", + "input", + "inputmask", + "jquery", + "mask", + "plugins" + ] + }, + { + "name": "bower-asset/punycode", + "version": "v1.3.2", + "source": { + "type": "git", + "url": "https://github.com/bestiejs/punycode.js.git", + "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bestiejs/punycode.js/zipball/38c8d3131a82567bfef18da09f7f4db68c84f8a3", + "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3", + "shasum": "" + }, + "type": "bower-asset-library", + "extra": { + "bower-asset-main": "punycode.js", + "bower-asset-ignore": [ + "coverage", + "tests", + ".*", + "component.json", + "Gruntfile.js", + "node_modules", + "package.json" + ] + } + }, + { + "name": "bower-asset/yii2-pjax", + "version": "v2.0.4", + "source": { + "type": "git", + "url": "https://github.com/yiisoft/jquery-pjax.git", + "reference": "3f20897307cca046fca5323b318475ae9dac0ca0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yiisoft/jquery-pjax/zipball/3f20897307cca046fca5323b318475ae9dac0ca0", + "reference": "3f20897307cca046fca5323b318475ae9dac0ca0", + "shasum": "" + }, + "require": { + "bower-asset/jquery": ">=1.8" + }, + "type": "bower-asset-library", + "extra": { + "bower-asset-main": "./jquery.pjax.js", + "bower-asset-ignore": [ + ".travis.yml", + "Gemfile", + "Gemfile.lock", + "vendor/", + "script/", + "test/" + ] + }, + "license": [ + "MIT" + ] + }, + { + "name": "cebe/markdown", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/cebe/markdown.git", + "reference": "54a2c49de31cc44e864ebf0500a35ef21d0010b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cebe/markdown/zipball/54a2c49de31cc44e864ebf0500a35ef21d0010b2", + "reference": "54a2c49de31cc44e864ebf0500a35ef21d0010b2", + "shasum": "" + }, + "require": { + "lib-pcre": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "cebe/indent": "*", + "facebook/xhprof": "*@dev", + "phpunit/phpunit": "4.1.*" + }, + "bin": [ + "bin/markdown" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "cebe\\markdown\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Carsten Brandt", + "email": "mail@cebe.cc", + "homepage": "http://cebe.cc/", + "role": "Creator" + } + ], + "description": "A super fast, highly extensible markdown parser for PHP", + "homepage": "https://github.com/cebe/markdown#readme", + "keywords": [ + "extensible", + "fast", + "gfm", + "markdown", + "markdown-extra" + ], + "time": "2015-03-06 05:28:07" + }, + { + "name": "cebe/yii2-gravatar", + "version": "1.1", + "target-dir": "cebe/gravatar", + "source": { + "type": "git", + "url": "https://github.com/cebe/yii2-gravatar.git", + "reference": "c9c01bd14c9bdee9e5ae1ef1aad23f80c182c057" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cebe/yii2-gravatar/zipball/c9c01bd14c9bdee9e5ae1ef1aad23f80c182c057", + "reference": "c9c01bd14c9bdee9e5ae1ef1aad23f80c182c057", + "shasum": "" + }, + "require": { + "yiisoft/yii2": "*" + }, + "type": "yii2-extension", + "autoload": { + "psr-0": { + "cebe\\gravatar\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Carsten Brandt", + "email": "mail@cebe.cc", + "homepage": "http://cebe.cc/", + "role": "Core framework development" + } + ], + "description": "Gravatar Widget for Yii 2", + "keywords": [ + "gravatar", + "yii" + ], + "time": "2013-12-10 17:49:58" + }, + { + "name": "dmstr/yii2-adminlte-asset", + "version": "2.2.3", + "source": { + "type": "git", + "url": "https://github.com/dmstr/yii2-adminlte-asset.git", + "reference": "45cffbfe90d79f3c405b4cc98f7f318ae372bb10" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dmstr/yii2-adminlte-asset/zipball/45cffbfe90d79f3c405b4cc98f7f318ae372bb10", + "reference": "45cffbfe90d79f3c405b4cc98f7f318ae372bb10", + "shasum": "" + }, + "require": { + "almasaeed2010/adminlte": "~2.0", + "cebe/yii2-gravatar": "1.*", + "rmrevin/yii2-fontawesome": "~2.9", + "yiisoft/yii2": "2.*", + "yiisoft/yii2-bootstrap": "2.*" + }, + "type": "yii2-extension", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "dmstr\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Tobias Munk", + "email": "tobias@diemeisterei.de" + }, + { + "name": "Evgeniy Tkachenko", + "email": "et.coder@gmail.com" + } + ], + "description": "Backend theme for Yii2 Framework", + "keywords": [ + "AdminLTE", + "extension", + "yii2" + ], + "time": "2015-10-07 21:31:26" + }, + { + "name": "ezyang/htmlpurifier", + "version": "v4.6.0", + "source": { + "type": "git", + "url": "https://github.com/ezyang/htmlpurifier.git", + "reference": "6f389f0f25b90d0b495308efcfa073981177f0fd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/6f389f0f25b90d0b495308efcfa073981177f0fd", + "reference": "6f389f0f25b90d0b495308efcfa073981177f0fd", + "shasum": "" + }, + "require": { + "php": ">=5.2" + }, + "type": "library", + "autoload": { + "psr-0": { + "HTMLPurifier": "library/" + }, + "files": [ + "library/HTMLPurifier.composer.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL" + ], + "authors": [ + { + "name": "Edward Z. Yang", + "email": "admin@htmlpurifier.org", + "homepage": "http://ezyang.com" + } + ], + "description": "Standards compliant HTML filter written in PHP", + "homepage": "http://htmlpurifier.org/", + "keywords": [ + "html" + ], + "time": "2013-11-30 08:25:19" + }, + { + "name": "pavlinter/yii2-multifields", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/pavlinter/yii2-multifields.git", + "reference": "160f6928c702ace93f7c6873a69e00071cfcdaea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pavlinter/yii2-multifields/zipball/160f6928c702ace93f7c6873a69e00071cfcdaea", + "reference": "160f6928c702ace93f7c6873a69e00071cfcdaea", + "shasum": "" + }, + "require": { + "yiisoft/yii2": "*" + }, + "type": "yii2-extension", + "autoload": { + "psr-4": { + "pavlinter\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD 3-Clause" + ], + "authors": [ + { + "name": "Pavels Radajevs", + "email": "pavlinter@gmail.com" + } + ], + "description": "Yii2: Multi dinamic fields", + "keywords": [ + "dinamic", + "multi", + "multifields", + "multiinput", + "yii2" + ], + "time": "2015-10-17 05:57:23" + }, + { + "name": "rmrevin/yii2-fontawesome", + "version": "2.12.0", + "source": { + "type": "git", + "url": "https://github.com/rmrevin/yii2-fontawesome.git", + "reference": "51d33ec9d1d7edab2166f1d42668c1bc8d28c068" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rmrevin/yii2-fontawesome/zipball/51d33ec9d1d7edab2166f1d42668c1bc8d28c068", + "reference": "51d33ec9d1d7edab2166f1d42668c1bc8d28c068", + "shasum": "" + }, + "require": { + "bower-asset/fontawesome": "4.4.*", + "php": ">=5.4.0", + "yiisoft/yii2": "2.0.*" + }, + "type": "yii2-extension", + "extra": { + "asset-installer-paths": { + "npm-asset-library": "vendor/npm", + "bower-asset-library": "vendor/bower" + } + }, + "autoload": { + "psr-4": { + "rmrevin\\yii\\fontawesome\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Revin", + "email": "xgismox@gmail.com", + "homepage": "http://rmrevin.ru/" + } + ], + "description": "Asset Bundle for Yii2 with Font Awesome", + "keywords": [ + "asset", + "awesome", + "bundle", + "font", + "yii" + ], + "time": "2015-08-15 16:50:16" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v5.4.1", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/0697e6aa65c83edf97bb0f23d8763f94e3f11421", + "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "mockery/mockery": "~0.9.1,<0.9.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "files": [ + "lib/swift_required.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Corbyn" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Swiftmailer, free feature-rich PHP mailer", + "homepage": "http://swiftmailer.org", + "keywords": [ + "email", + "mail", + "mailer" + ], + "time": "2015-06-06 14:19:39" + }, + { + "name": "yiisoft/yii2", + "version": "2.0.6", + "source": { + "type": "git", + "url": "https://github.com/yiisoft/yii2-framework.git", + "reference": "f42b2eb80f61992438661b01d0d74c6738e2ff38" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/f42b2eb80f61992438661b01d0d74c6738e2ff38", + "reference": "f42b2eb80f61992438661b01d0d74c6738e2ff38", + "shasum": "" + }, + "require": { + "bower-asset/jquery": "2.1.*@stable | 1.11.*@stable", + "bower-asset/jquery.inputmask": "3.1.*", + "bower-asset/punycode": "1.3.*", + "bower-asset/yii2-pjax": ">=2.0.1", + "cebe/markdown": "~1.0.0 | ~1.1.0", + "ext-mbstring": "*", + "ezyang/htmlpurifier": "4.6.*", + "lib-pcre": "*", + "php": ">=5.4.0", + "yiisoft/yii2-composer": "*" + }, + "bin": [ + "yii" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "yii\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Qiang Xue", + "email": "qiang.xue@gmail.com", + "homepage": "http://www.yiiframework.com/", + "role": "Founder and project lead" + }, + { + "name": "Alexander Makarov", + "email": "sam@rmcreative.ru", + "homepage": "http://rmcreative.ru/", + "role": "Core framework development" + }, + { + "name": "Maurizio Domba", + "homepage": "http://mdomba.info/", + "role": "Core framework development" + }, + { + "name": "Carsten Brandt", + "email": "mail@cebe.cc", + "homepage": "http://cebe.cc/", + "role": "Core framework development" + }, + { + "name": "Timur Ruziev", + "email": "resurtm@gmail.com", + "homepage": "http://resurtm.com/", + "role": "Core framework development" + }, + { + "name": "Paul Klimov", + "email": "klimov.paul@gmail.com", + "role": "Core framework development" + } + ], + "description": "Yii PHP Framework Version 2", + "homepage": "http://www.yiiframework.com/", + "keywords": [ + "framework", + "yii2" + ], + "time": "2015-08-05 22:00:30" + }, + { + "name": "yiisoft/yii2-bootstrap", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/yiisoft/yii2-bootstrap.git", + "reference": "1b6b1e61cf91c3cdd517d6a7e71d30bb212e4af0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yiisoft/yii2-bootstrap/zipball/1b6b1e61cf91c3cdd517d6a7e71d30bb212e4af0", + "reference": "1b6b1e61cf91c3cdd517d6a7e71d30bb212e4af0", + "shasum": "" + }, + "require": { + "bower-asset/bootstrap": "3.3.* | 3.2.* | 3.1.*", + "yiisoft/yii2": ">=2.0.4" + }, + "type": "yii2-extension", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + }, + "asset-installer-paths": { + "npm-asset-library": "vendor/npm", + "bower-asset-library": "vendor/bower" + } + }, + "autoload": { + "psr-4": { + "yii\\bootstrap\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Qiang Xue", + "email": "qiang.xue@gmail.com" + } + ], + "description": "The Twitter Bootstrap extension for the Yii framework", + "keywords": [ + "bootstrap", + "yii2" + ], + "time": "2015-05-10 22:08:17" + }, + { + "name": "yiisoft/yii2-composer", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/yiisoft/yii2-composer.git", + "reference": "ca8d23707ae47d20b0454e4b135c156f6da6d7be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yiisoft/yii2-composer/zipball/ca8d23707ae47d20b0454e4b135c156f6da6d7be", + "reference": "ca8d23707ae47d20b0454e4b135c156f6da6d7be", + "shasum": "" + }, + "require": { + "composer-plugin-api": "1.0.0" + }, + "type": "composer-plugin", + "extra": { + "class": "yii\\composer\\Plugin", + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "yii\\composer\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Qiang Xue", + "email": "qiang.xue@gmail.com" + } + ], + "description": "The composer plugin for Yii extension installer", + "keywords": [ + "composer", + "extension installer", + "yii2" + ], + "time": "2015-03-01 06:22:44" + }, + { + "name": "yiisoft/yii2-swiftmailer", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/yiisoft/yii2-swiftmailer.git", + "reference": "4ec435a89e30b203cea99770910fb5499cb3627a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yiisoft/yii2-swiftmailer/zipball/4ec435a89e30b203cea99770910fb5499cb3627a", + "reference": "4ec435a89e30b203cea99770910fb5499cb3627a", + "shasum": "" + }, + "require": { + "swiftmailer/swiftmailer": "~5.0", + "yiisoft/yii2": ">=2.0.4" + }, + "type": "yii2-extension", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "yii\\swiftmailer\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Paul Klimov", + "email": "klimov.paul@gmail.com" + } + ], + "description": "The SwiftMailer integration for the Yii framework", + "keywords": [ + "email", + "mail", + "mailer", + "swift", + "swiftmailer", + "yii2" + ], + "time": "2015-05-10 22:12:32" + } + ], + "packages-dev": [ + { + "name": "bower-asset/typeahead.js", + "version": "v0.10.5", + "source": { + "type": "git", + "url": "https://github.com/twitter/typeahead.js.git", + "reference": "5f198b87d1af845da502ea9df93a5e84801ce742" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twitter/typeahead.js/zipball/5f198b87d1af845da502ea9df93a5e84801ce742", + "reference": "5f198b87d1af845da502ea9df93a5e84801ce742", + "shasum": "" + }, + "require": { + "bower-asset/jquery": ">=1.7" + }, + "require-dev": { + "bower-asset/jasmine-ajax": "~1.3.1", + "bower-asset/jasmine-jquery": "~1.5.2", + "bower-asset/jquery": "~1.7" + }, + "type": "bower-asset-library", + "extra": { + "bower-asset-main": "dist/typeahead.bundle.js" + } + }, + { + "name": "fzaninotto/faker", + "version": "v1.5.0", + "source": { + "type": "git", + "url": "https://github.com/fzaninotto/Faker.git", + "reference": "d0190b156bcca848d401fb80f31f504f37141c8d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d0190b156bcca848d401fb80f31f504f37141c8d", + "reference": "d0190b156bcca848d401fb80f31f504f37141c8d", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~1.5" + }, + "suggest": { + "ext-intl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "time": "2015-05-29 06:29:14" + }, + { + "name": "phpspec/php-diff", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/phpspec/php-diff.git", + "reference": "30e103d19519fe678ae64a60d77884ef3d71b28a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/php-diff/zipball/30e103d19519fe678ae64a60d77884ef3d71b28a", + "reference": "30e103d19519fe678ae64a60d77884ef3d71b28a", + "shasum": "" + }, + "type": "library", + "autoload": { + "psr-0": { + "Diff": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Chris Boulton", + "homepage": "http://github.com/chrisboulton", + "role": "Original developer" + } + ], + "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).", + "time": "2013-11-01 13:02:21" + }, + { + "name": "yiisoft/yii2-codeception", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/yiisoft/yii2-codeception.git", + "reference": "de5007e7a99359597abbfe1c88dca3ce620061c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yiisoft/yii2-codeception/zipball/de5007e7a99359597abbfe1c88dca3ce620061c5", + "reference": "de5007e7a99359597abbfe1c88dca3ce620061c5", + "shasum": "" + }, + "require": { + "yiisoft/yii2": ">=2.0.4" + }, + "type": "yii2-extension", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "yii\\codeception\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Mark Jebri", + "email": "mark.github@yandex.ru" + } + ], + "description": "The Codeception integration for the Yii framework", + "keywords": [ + "codeception", + "yii2" + ], + "time": "2015-05-10 22:08:30" + }, + { + "name": "yiisoft/yii2-debug", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/yiisoft/yii2-debug.git", + "reference": "5c7081b2be71c61d3a50d978b31edc3e0b6f2f97" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yiisoft/yii2-debug/zipball/5c7081b2be71c61d3a50d978b31edc3e0b6f2f97", + "reference": "5c7081b2be71c61d3a50d978b31edc3e0b6f2f97", + "shasum": "" + }, + "require": { + "yiisoft/yii2": ">=2.0.4", + "yiisoft/yii2-bootstrap": "*" + }, + "type": "yii2-extension", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "yii\\debug\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Qiang Xue", + "email": "qiang.xue@gmail.com" + } + ], + "description": "The debugger extension for the Yii framework", + "keywords": [ + "debug", + "debugger", + "yii2" + ], + "time": "2015-05-10 22:08:56" + }, + { + "name": "yiisoft/yii2-faker", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/yiisoft/yii2-faker.git", + "reference": "b88ca69ee226a3610b2c26c026c3203d7ac50f6c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yiisoft/yii2-faker/zipball/b88ca69ee226a3610b2c26c026c3203d7ac50f6c", + "reference": "b88ca69ee226a3610b2c26c026c3203d7ac50f6c", + "shasum": "" + }, + "require": { + "fzaninotto/faker": "*", + "yiisoft/yii2": "*" + }, + "type": "yii2-extension", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "yii\\faker\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Mark Jebri", + "email": "mark.github@yandex.ru" + } + ], + "description": "Fixture generator. The Faker integration for the Yii framework.", + "keywords": [ + "Fixture", + "faker", + "yii2" + ], + "time": "2015-03-01 06:22:44" + }, + { + "name": "yiisoft/yii2-gii", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/yiisoft/yii2-gii.git", + "reference": "e5a023e8779bd774194842ec1b8fb4917cf04007" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yiisoft/yii2-gii/zipball/e5a023e8779bd774194842ec1b8fb4917cf04007", + "reference": "e5a023e8779bd774194842ec1b8fb4917cf04007", + "shasum": "" + }, + "require": { + "bower-asset/typeahead.js": "0.10.*", + "phpspec/php-diff": ">=1.0.2", + "yiisoft/yii2": ">=2.0.4", + "yiisoft/yii2-bootstrap": "~2.0" + }, + "type": "yii2-extension", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + }, + "asset-installer-paths": { + "npm-asset-library": "vendor/npm", + "bower-asset-library": "vendor/bower" + } + }, + "autoload": { + "psr-4": { + "yii\\gii\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Qiang Xue", + "email": "qiang.xue@gmail.com" + } + ], + "description": "The Gii extension for the Yii framework", + "keywords": [ + "code generator", + "gii", + "yii2" + ], + "time": "2015-05-10 22:09:31" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=5.4.0" + }, + "platform-dev": [] +} diff --git a/console/config/.gitignore b/console/config/.gitignore new file mode 100644 index 0000000..20da318 --- /dev/null +++ b/console/config/.gitignore @@ -0,0 +1,2 @@ +main-local.php +params-local.php \ No newline at end of file diff --git a/console/config/bootstrap.php b/console/config/bootstrap.php new file mode 100644 index 0000000..b3d9bbc --- /dev/null +++ b/console/config/bootstrap.php @@ -0,0 +1 @@ + 'app-console', + 'basePath' => dirname(__DIR__), + 'bootstrap' => ['log'], + 'controllerNamespace' => 'console\controllers', + 'components' => [ + 'log' => [ + 'targets' => [ + [ + 'class' => 'yii\log\FileTarget', + 'levels' => ['error', 'warning'], + ], + ], + ], + ], + 'params' => $params, +]; diff --git a/console/config/params.php b/console/config/params.php new file mode 100644 index 0000000..7f754b9 --- /dev/null +++ b/console/config/params.php @@ -0,0 +1,4 @@ + 'admin@example.com', +]; diff --git a/console/controllers/.gitkeep b/console/controllers/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/console/controllers/.gitkeep diff --git a/console/migrations/m130524_201442_init.php b/console/migrations/m130524_201442_init.php new file mode 100644 index 0000000..81a322a --- /dev/null +++ b/console/migrations/m130524_201442_init.php @@ -0,0 +1,34 @@ +db->driverName === 'mysql') { + // http://stackoverflow.com/questions/766809/whats-the-difference-between-utf8-general-ci-and-utf8-unicode-ci + $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB'; + } + + $this->createTable('{{%user}}', [ + 'id' => $this->primaryKey(), + 'username' => $this->string()->notNull()->unique(), + 'auth_key' => $this->string(32)->notNull(), + 'password_hash' => $this->string()->notNull(), + 'password_reset_token' => $this->string()->unique(), + 'email' => $this->string()->notNull()->unique(), + + 'status' => $this->smallInteger()->notNull()->defaultValue(10), + 'created_at' => $this->integer()->notNull(), + 'updated_at' => $this->integer()->notNull(), + ], $tableOptions); + } + + public function down() + { + $this->dropTable('{{%user}}'); + } +} diff --git a/console/models/.gitkeep b/console/models/.gitkeep new file mode 100644 index 0000000..72e8ffc --- /dev/null +++ b/console/models/.gitkeep @@ -0,0 +1 @@ +* diff --git a/console/runtime/.gitignore b/console/runtime/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/console/runtime/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/environments/dev/backend/config/main-local.php b/environments/dev/backend/config/main-local.php new file mode 100644 index 0000000..d9a8ceb --- /dev/null +++ b/environments/dev/backend/config/main-local.php @@ -0,0 +1,25 @@ + [ + 'request' => [ + // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation + 'cookieValidationKey' => '', + ], + ], +]; + +if (!YII_ENV_TEST) { + // configuration adjustments for 'dev' environment + $config['bootstrap'][] = 'debug'; + $config['modules']['debug'] = [ + 'class' => 'yii\debug\Module', + ]; + + $config['bootstrap'][] = 'gii'; + $config['modules']['gii'] = [ + 'class' => 'yii\gii\Module', + ]; +} + +return $config; diff --git a/environments/dev/backend/config/params-local.php b/environments/dev/backend/config/params-local.php new file mode 100644 index 0000000..d0b9c34 --- /dev/null +++ b/environments/dev/backend/config/params-local.php @@ -0,0 +1,3 @@ +run(); diff --git a/environments/dev/backend/web/index.php b/environments/dev/backend/web/index.php new file mode 100644 index 0000000..6038167 --- /dev/null +++ b/environments/dev/backend/web/index.php @@ -0,0 +1,18 @@ +run(); diff --git a/environments/dev/common/config/main-local.php b/environments/dev/common/config/main-local.php new file mode 100644 index 0000000..43db30e --- /dev/null +++ b/environments/dev/common/config/main-local.php @@ -0,0 +1,20 @@ + [ + 'db' => [ + 'class' => 'yii\db\Connection', + 'dsn' => 'mysql:host=localhost;dbname=yii2advanced', + 'username' => 'root', + 'password' => '', + 'charset' => 'utf8', + ], + 'mailer' => [ + 'class' => 'yii\swiftmailer\Mailer', + 'viewPath' => '@common/mail', + // send all mails to a file by default. You have to set + // 'useFileTransport' to false and configure a transport + // for the mailer to send real emails. + 'useFileTransport' => true, + ], + ], +]; diff --git a/environments/dev/common/config/params-local.php b/environments/dev/common/config/params-local.php new file mode 100644 index 0000000..d0b9c34 --- /dev/null +++ b/environments/dev/common/config/params-local.php @@ -0,0 +1,3 @@ + ['gii'], + 'modules' => [ + 'gii' => 'yii\gii\Module', + ], +]; diff --git a/environments/dev/console/config/params-local.php b/environments/dev/console/config/params-local.php new file mode 100644 index 0000000..d0b9c34 --- /dev/null +++ b/environments/dev/console/config/params-local.php @@ -0,0 +1,3 @@ + [ + 'request' => [ + // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation + 'cookieValidationKey' => '', + ], + ], +]; + +if (!YII_ENV_TEST) { + // configuration adjustments for 'dev' environment + $config['bootstrap'][] = 'debug'; + $config['modules']['debug'] = 'yii\debug\Module'; + + $config['bootstrap'][] = 'gii'; + $config['modules']['gii'] = 'yii\gii\Module'; +} + +return $config; diff --git a/environments/dev/frontend/config/params-local.php b/environments/dev/frontend/config/params-local.php new file mode 100644 index 0000000..d0b9c34 --- /dev/null +++ b/environments/dev/frontend/config/params-local.php @@ -0,0 +1,3 @@ +run(); diff --git a/environments/dev/frontend/web/index.php b/environments/dev/frontend/web/index.php new file mode 100644 index 0000000..6038167 --- /dev/null +++ b/environments/dev/frontend/web/index.php @@ -0,0 +1,18 @@ +run(); diff --git a/environments/dev/yii b/environments/dev/yii new file mode 100644 index 0000000..6f0c6d2 --- /dev/null +++ b/environments/dev/yii @@ -0,0 +1,28 @@ +#!/usr/bin/env php +run(); +exit($exitCode); diff --git a/environments/index.php b/environments/index.php new file mode 100644 index 0000000..19c989d --- /dev/null +++ b/environments/index.php @@ -0,0 +1,65 @@ + [ + * 'path' => 'directory storing the local files', + * 'skipFiles' => [ + * // list of files that should only copied once and skipped if they already exist + * ], + * 'setWritable' => [ + * // list of directories that should be set writable + * ], + * 'setExecutable' => [ + * // list of files that should be set executable + * ], + * 'setCookieValidationKey' => [ + * // list of config files that need to be inserted with automatically generated cookie validation keys + * ], + * 'createSymlink' => [ + * // list of symlinks to be created. Keys are symlinks, and values are the targets. + * ], + * ], + * ]; + * ``` + */ +return [ + 'Development' => [ + 'path' => 'dev', + 'setWritable' => [ + 'backend/runtime', + 'backend/web/assets', + 'frontend/runtime', + 'frontend/web/assets', + ], + 'setExecutable' => [ + 'yii', + 'tests/codeception/bin/yii', + ], + 'setCookieValidationKey' => [ + 'backend/config/main-local.php', + 'frontend/config/main-local.php', + ], + ], + 'Production' => [ + 'path' => 'prod', + 'setWritable' => [ + 'backend/runtime', + 'backend/web/assets', + 'frontend/runtime', + 'frontend/web/assets', + ], + 'setExecutable' => [ + 'yii', + ], + 'setCookieValidationKey' => [ + 'backend/config/main-local.php', + 'frontend/config/main-local.php', + ], + ], +]; diff --git a/environments/prod/backend/config/main-local.php b/environments/prod/backend/config/main-local.php new file mode 100644 index 0000000..af46ba3 --- /dev/null +++ b/environments/prod/backend/config/main-local.php @@ -0,0 +1,9 @@ + [ + 'request' => [ + // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation + 'cookieValidationKey' => '', + ], + ], +]; diff --git a/environments/prod/backend/config/params-local.php b/environments/prod/backend/config/params-local.php new file mode 100644 index 0000000..d0b9c34 --- /dev/null +++ b/environments/prod/backend/config/params-local.php @@ -0,0 +1,3 @@ +run(); diff --git a/environments/prod/common/config/main-local.php b/environments/prod/common/config/main-local.php new file mode 100644 index 0000000..84c4d9f --- /dev/null +++ b/environments/prod/common/config/main-local.php @@ -0,0 +1,16 @@ + [ + 'db' => [ + 'class' => 'yii\db\Connection', + 'dsn' => 'mysql:host=localhost;dbname=yii2advanced', + 'username' => 'root', + 'password' => '', + 'charset' => 'utf8', + ], + 'mailer' => [ + 'class' => 'yii\swiftmailer\Mailer', + 'viewPath' => '@common/mail', + ], + ], +]; diff --git a/environments/prod/common/config/params-local.php b/environments/prod/common/config/params-local.php new file mode 100644 index 0000000..d0b9c34 --- /dev/null +++ b/environments/prod/common/config/params-local.php @@ -0,0 +1,3 @@ + [ + 'request' => [ + // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation + 'cookieValidationKey' => '', + ], + ], +]; diff --git a/environments/prod/frontend/config/params-local.php b/environments/prod/frontend/config/params-local.php new file mode 100644 index 0000000..d0b9c34 --- /dev/null +++ b/environments/prod/frontend/config/params-local.php @@ -0,0 +1,3 @@ +run(); diff --git a/environments/prod/yii b/environments/prod/yii new file mode 100644 index 0000000..1fe0342 --- /dev/null +++ b/environments/prod/yii @@ -0,0 +1,28 @@ +#!/usr/bin/env php +run(); +exit($exitCode); diff --git a/frontend/assets/AppAsset.php b/frontend/assets/AppAsset.php new file mode 100644 index 0000000..a436aba --- /dev/null +++ b/frontend/assets/AppAsset.php @@ -0,0 +1,36 @@ + + * @since 2.0 + */ +class AppAsset extends AssetBundle +{ + public $basePath = '@webroot'; + public $baseUrl = '@web'; + public $css = [ + 'css/ie.css', + 'css/site.css', + ]; + public $js = [ + 'js/jquery-ui-1.9.2.custom.min.js', + 'js/jquery.sliderkit.1.9.2.pack.js', + 'js/validate/jquery.validate.min.js', + 'js/validate/messages_ru.js', + 'js/jquery.maskedinput.min.js', + 'js/main.js', + ]; + public $depends = [ +// 'yii\web\YiiAsset', +// 'yii\bootstrap\BootstrapAsset', + ]; +} diff --git a/frontend/config/.gitignore b/frontend/config/.gitignore new file mode 100644 index 0000000..20da318 --- /dev/null +++ b/frontend/config/.gitignore @@ -0,0 +1,2 @@ +main-local.php +params-local.php \ No newline at end of file diff --git a/frontend/config/bootstrap.php b/frontend/config/bootstrap.php new file mode 100644 index 0000000..b3d9bbc --- /dev/null +++ b/frontend/config/bootstrap.php @@ -0,0 +1 @@ + 'app-frontend', + 'basePath' => dirname(__DIR__), + 'bootstrap' => ['log'], + 'controllerNamespace' => 'frontend\controllers', + 'components' => [ + 'user' => [ + 'identityClass' => 'common\models\User', + 'enableAutoLogin' => true, + ], + 'log' => [ + 'traceLevel' => YII_DEBUG ? 3 : 0, + 'targets' => [ + [ + 'class' => 'yii\log\FileTarget', + 'levels' => ['error', 'warning'], + ], + ], + ], + 'errorHandler' => [ + 'errorAction' => 'site/error', + ], + 'request'=>[ + 'class' => 'common\components\Request', + 'web'=> '/frontend/web' + ], + 'urlManager' => [ + 'enablePrettyUrl' => true, + 'showScriptName' => false, + 'rules' => [ + 'vacancies' => 'site/vacancies', + 'contact' => 'site/contact', + 'team' => 'site/team', + 'team/' => 'site/team', + 'login' => 'site/login', + 'logout' => 'site/logout', + 'services/' => 'site/serviceitem', + 'count_form' => 'site/count_form', + 'orders/audit' => 'site/auditform', + 'orders/audit/' => 'site/auditform', + ] + ], + ], + 'params' => $params, +]; diff --git a/frontend/config/params.php b/frontend/config/params.php new file mode 100644 index 0000000..7f754b9 --- /dev/null +++ b/frontend/config/params.php @@ -0,0 +1,4 @@ + 'admin@example.com', +]; diff --git a/frontend/controllers/SiteController.php b/frontend/controllers/SiteController.php new file mode 100644 index 0000000..1a76d39 --- /dev/null +++ b/frontend/controllers/SiteController.php @@ -0,0 +1,315 @@ + [ + 'class' => AccessControl::className(), + 'only' => ['logout', 'signup'], + 'rules' => [ + [ + 'actions' => ['signup'], + 'allow' => true, + 'roles' => ['?'], + ], + [ + 'actions' => ['logout'], + 'allow' => true, + 'roles' => ['@'], + ], + ], + ], + 'verbs' => [ + 'class' => VerbFilter::className(), + 'actions' => [ + 'logout' => ['post'], + ], + ], + ]; + } + + /** + * @inheritdoc + */ + public function actions() + { + return [ + 'error' => [ + 'class' => 'yii\web\ErrorAction', + ], + 'captcha' => [ + 'class' => 'yii\captcha\CaptchaAction', + 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null, + ], + ]; + } + + /** + * Displays homepage. + * + * @return mixed + */ + public function actionIndex() + { + // Get clients + $clientsModel = new \frontend\models\Clients(); + $clients = $clientsModel->find()->all(); //(['visible'=>1]); + + $ordersAuditModel = new \common\models\OrdersAudit(); + + return $this->render('frontpage', [ + 'clients' => $clients, + 'ordersauditmodel' => $ordersAuditModel + ]); + } + + /** + * Displays team or team-member page. + * + * @return mixed + */ + public function actionTeam($id = null) + { + if (empty($id)) { + // Get team members + $teamModel = new \frontend\models\Team(); + $members = $teamModel->find()->all(); + + return $this->render( 'team', [ + 'members' => $members + ] ); + } else { + // Get team member + $teamModel = new \frontend\models\Team(); + $data = $teamModel->findOne(['id' => $id]); + return $this->render('teamitem', [ + 'member' => $data + ]); + } + } + + /** + * Displays services pages. + */ + + public function actionServiceitem($name = null) + { + $ordersAuditModel = new \common\models\OrdersAudit(); + return $this->render( + 'services/'. $name, + [ + 'ordersAuditModel' => $ordersAuditModel + ] + ); + } + + + /** + * Displays/action audit form. + */ + + public function actionAuditform($result = null) + { + $model = new OrdersAudit(); + + if ($result == 'success') { + return $this->render( + 'orders_audit_success' + ); + } + + if ($model->load(Yii::$app->request->post()) && $model->validate()) { + $model->setDefaults(); + $model->sendEmail('karnovsky.a@gmail.com'); + $model->save(); + return $this->redirect(['auditform', 'result' => 'success']); + } + + return $this->render( + 'orders_audit', + [ + 'model' => $model + ] + ); + } + + + /** + * Logs in a user. + * + * @return mixed + */ + public function actionLogin() + { + if (!\Yii::$app->user->isGuest) { + return $this->goHome(); + } + + $model = new LoginForm(); + if ($model->load(Yii::$app->request->post()) && $model->login()) { + return $this->goBack(); + } else { + return $this->render('login', [ + 'model' => $model, + ]); + } + } + + /** + * Logs out the current user. + * + * @return mixed + */ + public function actionLogout() + { + Yii::$app->user->logout(); + + return $this->goHome(); + } + + /** + * Displays contact page. + * + * @return mixed + */ + public function actionContact() + { + $model = new ContactForm(); + if ($model->load(Yii::$app->request->post()) && $model->validate()) { + if ($model->sendEmail(Yii::$app->params['adminEmail'])) { + Yii::$app->session->setFlash('success', 'Thank you for contacting us. We will respond to you as soon as possible.'); + } else { + Yii::$app->session->setFlash('error', 'There was an error sending email.'); + } + + return $this->refresh(); + } else { + return $this->render('contact', [ + 'model' => $model, + ]); + } + } + + /** + * Displays vacancies page. + * + * @return mixed + */ + public function actionVacancies() + { + // Get clients + $clientsModel = new \frontend\models\Clients(); + $clients = $clientsModel->find()->all(); //(['visible'=>1]); + return $this->render('vacancies', [ + 'clients' => $clients, + ]); + } + + public function actionCount_form() + { + if(isset($_GET)){ + $page = !empty($_GET['p']) ? $_GET['p'] : 'form'; + $subpage = !empty($_GET['sp']) ? $_GET['sp'] : 'index'; + $action = !empty($_GET['a']) ? $_GET['a'] : $subpage; + include_once __DIR__ . '/../web/count_form/app/data/'. $page .'.php'; + $class = 'count_form\app\data\\'.$page; + $object = new $class(); + $data = $object->$action(); + } + + include_once __DIR__ .'count_form/app/view/main_page.php'; + exit; + } + + /** + * Signs user up. + * + * @return mixed + */ + public function actionSignup() + { + $model = new SignupForm(); + if ($model->load(Yii::$app->request->post())) { + if ($user = $model->signup()) { + if (Yii::$app->getUser()->login($user)) { + return $this->goHome(); + } + } + } + + return $this->render('signup', [ + 'model' => $model, + ]); + } + + /** + * Requests password reset. + * + * @return mixed + */ + public function actionRequestPasswordReset() + { + $model = new PasswordResetRequestForm(); + if ($model->load(Yii::$app->request->post()) && $model->validate()) { + if ($model->sendEmail()) { + Yii::$app->session->setFlash('success', 'Check your email for further instructions.'); + + return $this->goHome(); + } else { + Yii::$app->session->setFlash('error', 'Sorry, we are unable to reset password for email provided.'); + } + } + + return $this->render('requestPasswordResetToken', [ + 'model' => $model, + ]); + } + + /** + * Resets password. + * + * @param string $token + * @return mixed + * @throws BadRequestHttpException + */ + public function actionResetPassword($token) + { + try { + $model = new ResetPasswordForm($token); + } catch (InvalidParamException $e) { + throw new BadRequestHttpException($e->getMessage()); + } + + if ($model->load(Yii::$app->request->post()) && $model->validate() && $model->resetPassword()) { + Yii::$app->session->setFlash('success', 'New password was saved.'); + + return $this->goHome(); + } + + return $this->render('resetPassword', [ + 'model' => $model, + ]); + } +} diff --git a/frontend/models/Clients.php b/frontend/models/Clients.php new file mode 100755 index 0000000..6012466 --- /dev/null +++ b/frontend/models/Clients.php @@ -0,0 +1,66 @@ + 200], + [['logo', 'link'], 'string', 'max' => 255] + ]; + } + + /** + * @inheritdoc + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('app', 'ID'), + 'title' => Yii::t('app', 'Title'), + 'description' => Yii::t('app', 'Description'), + 'logo' => Yii::t('app', 'Logo'), + 'link' => Yii::t('app', 'Link'), + 'visible' => Yii::t('app', 'Visible'), + 'position' => Yii::t('app', 'Position'), + ]; + } + + /** + * @inheritdoc + * @return ClientsQuery the active query used by this AR class. + */ + public static function find() + { + return new ClientsQuery(get_called_class()); + } +} diff --git a/frontend/models/ClientsQuery.php b/frontend/models/ClientsQuery.php new file mode 100755 index 0000000..6a3f034 --- /dev/null +++ b/frontend/models/ClientsQuery.php @@ -0,0 +1,35 @@ +andWhere('[[status]]=1'); + return $this; + }*/ + + /** + * @inheritdoc + * @return Clients[]|array + */ + public function all($db = null) + { + return parent::all($db); + } + + /** + * @inheritdoc + * @return Clients|array|null + */ + public function one($db = null) + { + return parent::one($db); + } +} \ No newline at end of file diff --git a/frontend/models/ContactForm.php b/frontend/models/ContactForm.php new file mode 100755 index 0000000..613abb5 --- /dev/null +++ b/frontend/models/ContactForm.php @@ -0,0 +1,59 @@ + 'Verification Code', + ]; + } + + /** + * Sends an email to the specified email address using the information collected by this model. + * + * @param string $email the target email address + * @return boolean whether the email was sent + */ + public function sendEmail($email) + { + return Yii::$app->mailer->compose() + ->setTo($email) + ->setFrom([$this->email => $this->name]) + ->setSubject($this->subject) + ->setTextBody($this->body) + ->send(); + } +} diff --git a/frontend/models/PasswordResetRequestForm.php b/frontend/models/PasswordResetRequestForm.php new file mode 100755 index 0000000..20c6810 --- /dev/null +++ b/frontend/models/PasswordResetRequestForm.php @@ -0,0 +1,60 @@ + 'trim'], + ['email', 'required'], + ['email', 'email'], + ['email', 'exist', + 'targetClass' => '\common\models\User', + 'filter' => ['status' => User::STATUS_ACTIVE], + 'message' => 'There is no user with such email.' + ], + ]; + } + + /** + * Sends an email with a link, for resetting the password. + * + * @return boolean whether the email was send + */ + public function sendEmail() + { + /* @var $user User */ + $user = User::findOne([ + 'status' => User::STATUS_ACTIVE, + 'email' => $this->email, + ]); + + if ($user) { + if (!User::isPasswordResetTokenValid($user->password_reset_token)) { + $user->generatePasswordResetToken(); + } + + if ($user->save()) { + return \Yii::$app->mailer->compose(['html' => 'passwordResetToken-html', 'text' => 'passwordResetToken-text'], ['user' => $user]) + ->setFrom([\Yii::$app->params['supportEmail'] => \Yii::$app->name . ' robot']) + ->setTo($this->email) + ->setSubject('Password reset for ' . \Yii::$app->name) + ->send(); + } + } + + return false; + } +} diff --git a/frontend/models/ResetPasswordForm.php b/frontend/models/ResetPasswordForm.php new file mode 100755 index 0000000..dd48f52 --- /dev/null +++ b/frontend/models/ResetPasswordForm.php @@ -0,0 +1,65 @@ +_user = User::findByPasswordResetToken($token); + if (!$this->_user) { + throw new InvalidParamException('Wrong password reset token.'); + } + parent::__construct($config); + } + + /** + * @inheritdoc + */ + public function rules() + { + return [ + ['password', 'required'], + ['password', 'string', 'min' => 6], + ]; + } + + /** + * Resets password. + * + * @return boolean if password was reset. + */ + public function resetPassword() + { + $user = $this->_user; + $user->setPassword($this->password); + $user->removePasswordResetToken(); + + return $user->save(false); + } +} diff --git a/frontend/models/SignupForm.php b/frontend/models/SignupForm.php new file mode 100755 index 0000000..e83963b --- /dev/null +++ b/frontend/models/SignupForm.php @@ -0,0 +1,59 @@ + 'trim'], + ['username', 'required'], + ['username', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This username has already been taken.'], + ['username', 'string', 'min' => 2, 'max' => 255], + + ['email', 'filter', 'filter' => 'trim'], + ['email', 'required'], + ['email', 'email'], + ['email', 'string', 'max' => 255], + ['email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This email address has already been taken.'], + + ['password', 'required'], + ['password', 'string', 'min' => 6], + ]; + } + + /** + * Signs user up. + * + * @return User|null the saved model or null if saving fails + */ + public function signup() + { + if ($this->validate()) { + $user = new User(); + $user->username = $this->username; + $user->email = $this->email; + $user->setPassword($this->password); + $user->generateAuthKey(); + if ($user->save()) { + return $user; + } + } + + return null; + } +} diff --git a/frontend/models/Team.php b/frontend/models/Team.php new file mode 100755 index 0000000..d4f2c16 --- /dev/null +++ b/frontend/models/Team.php @@ -0,0 +1,157 @@ + 150], + [['email', 'soc_vk', 'soc_fb', 'soc_tw', 'soc_li', 'photo', 'photo_big'], 'string', 'max' => 255] + ]; + } + + /** + * @inheritdoc + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('app', 'ID'), + 'department_id' => Yii::t('app', 'Department ID'), + 'user_id' => Yii::t('app', 'User ID'), + 'name' => Yii::t('app', 'Name'), + 'name2' => Yii::t('app', 'Name2'), + 'email' => Yii::t('app', 'Email'), + 'job' => Yii::t('app', 'Job'), + 'zodiac' => Yii::t('app', 'Zodiac'), + 'iq' => Yii::t('app', 'Iq'), + 'soc_vk' => Yii::t('app', 'Soc Vk'), + 'soc_fb' => Yii::t('app', 'Soc Fb'), + 'soc_tw' => Yii::t('app', 'Soc Tw'), + 'soc_li' => Yii::t('app', 'Soc Li'), + 'interests_caption' => Yii::t('app', 'Interests Caption'), + 'skils_caption' => Yii::t('app', 'Skils Caption'), + 'books_caption' => Yii::t('app', 'Books Caption'), + 'films_caption' => Yii::t('app', 'Films Caption'), + 'description' => Yii::t('app', 'Description'), + 'photo' => Yii::t('app', 'Photo'), + 'photo_big' => Yii::t('app', 'Photo Big'), + 'visible' => Yii::t('app', 'Visible'), + ]; + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getUser() + { + return $this->hasOne(User::className(), ['id' => 'user_id']); + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getDepartment() + { + return $this->hasOne(Departments::className(), ['id' => 'department_id']); + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeamFilms() + { + return $this->hasMany(TeamFilms::className(), ['team_id' => 'id']); + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeamBooks() + { + return $this->hasMany(TeamBooks::className(), ['team_id' => 'id']); + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeamHumors() + { + return $this->hasMany(TeamHumors::className(), ['team_id' => 'id']); + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeamInterests() + { + return $this->hasMany(TeamInterests::className(), ['team_id' => 'id']); + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeamSkils() + { + return $this->hasMany(TeamSkils::className(), ['team_id' => 'id']); + } + + /** + * @inheritdoc + * @return TeamQuery the active query used by this AR class. + */ + public static function find() + { + return new TeamQuery(get_called_class()); + } +} diff --git a/frontend/models/TeamBooks.php b/frontend/models/TeamBooks.php new file mode 100644 index 0000000..387572b --- /dev/null +++ b/frontend/models/TeamBooks.php @@ -0,0 +1,49 @@ + 120] + ]; + } + + /** + * @inheritdoc + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('app', 'ID'), + 'team_id' => Yii::t('app', 'Team ID'), + 'title' => Yii::t('app', 'Title'), + 'cover' => Yii::t('app', 'Cover'), + ]; + } +} diff --git a/frontend/models/TeamFilms.php b/frontend/models/TeamFilms.php new file mode 100644 index 0000000..66b45b0 --- /dev/null +++ b/frontend/models/TeamFilms.php @@ -0,0 +1,60 @@ + 120], + [['cover'], 'string', 'max' => 255] + ]; + } + + /** + * @inheritdoc + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('app', 'ID'), + 'team_id' => Yii::t('app', 'Team ID'), + 'title' => Yii::t('app', 'Title'), + 'cover' => Yii::t('app', 'Cover'), + ]; + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeam() + { + return $this->hasOne(Team::className(), ['id' => 'team_id']); + } +} diff --git a/frontend/models/TeamHumors.php b/frontend/models/TeamHumors.php new file mode 100644 index 0000000..bcb94ef --- /dev/null +++ b/frontend/models/TeamHumors.php @@ -0,0 +1,57 @@ + Yii::t('app', 'ID'), + 'team_id' => Yii::t('app', 'Team ID'), + 'body' => Yii::t('app', 'Body'), + ]; + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeam() + { + return $this->hasOne(Team::className(), ['id' => 'team_id']); + } +} diff --git a/frontend/models/TeamInterests.php b/frontend/models/TeamInterests.php new file mode 100644 index 0000000..749d978 --- /dev/null +++ b/frontend/models/TeamInterests.php @@ -0,0 +1,69 @@ + 120] + ]; + } + + /** + * @inheritdoc + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('app', 'ID'), + 'team_id' => Yii::t('app', 'Team ID'), + 'title' => Yii::t('app', 'Title'), + 'value' => Yii::t('app', 'Value'), + ]; + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeam() + { + return $this->hasOne(Team::className(), ['id' => 'team_id']); + } + + /** + * @inheritdoc + * @return TeamInterestsQuery the active query used by this AR class. + */ + public static function find() + { + return new TeamInterestsQuery(get_called_class()); + } +} diff --git a/frontend/models/TeamInterestsQuery.php b/frontend/models/TeamInterestsQuery.php new file mode 100644 index 0000000..dc54862 --- /dev/null +++ b/frontend/models/TeamInterestsQuery.php @@ -0,0 +1,35 @@ +andWhere('[[status]]=1'); + return $this; + }*/ + + /** + * @inheritdoc + * @return TeamInterests[]|array + */ + public function all($db = null) + { + return parent::all($db); + } + + /** + * @inheritdoc + * @return TeamInterests|array|null + */ + public function one($db = null) + { + return parent::one($db); + } +} \ No newline at end of file diff --git a/frontend/models/TeamQuery.php b/frontend/models/TeamQuery.php new file mode 100755 index 0000000..739a12f --- /dev/null +++ b/frontend/models/TeamQuery.php @@ -0,0 +1,35 @@ +andWhere('[[status]]=1'); + return $this; + }*/ + + /** + * @inheritdoc + * @return Team[]|array + */ + public function all($db = null) + { + return parent::all($db); + } + + /** + * @inheritdoc + * @return Team|array|null + */ + public function one($db = null) + { + return parent::one($db); + } +} \ No newline at end of file diff --git a/frontend/models/TeamSkils.php b/frontend/models/TeamSkils.php new file mode 100644 index 0000000..08fd36f --- /dev/null +++ b/frontend/models/TeamSkils.php @@ -0,0 +1,60 @@ + 120] + ]; + } + + /** + * @inheritdoc + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('app', 'ID'), + 'team_id' => Yii::t('app', 'Team ID'), + 'title' => Yii::t('app', 'Title'), + 'value' => Yii::t('app', 'Value'), + ]; + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getTeam() + { + return $this->hasOne(Team::className(), ['id' => 'team_id']); + } +} diff --git a/frontend/runtime/.gitignore b/frontend/runtime/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/frontend/runtime/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/frontend/views/blocks/clients.php b/frontend/views/blocks/clients.php new file mode 100644 index 0000000..c40f145 --- /dev/null +++ b/frontend/views/blocks/clients.php @@ -0,0 +1,34 @@ +
+
+
+

Ðаши клиенты

+

У Ð½Ð°Ñ ÐºÐ°Ð¶Ð´Ñ‹Ð¹ клиент — любимый

+ portfolio +
+
+
+
+ +
+
+ Prev +
+
+ Next +
+
+
+
+
\ No newline at end of file diff --git a/frontend/views/blocks/orders-audit.php b/frontend/views/blocks/orders-audit.php new file mode 100644 index 0000000..710f64b --- /dev/null +++ b/frontend/views/blocks/orders-audit.php @@ -0,0 +1,30 @@ + + '/orders/audit'])?> + +
+field($model, 'phone')->textInput(['maxlenth' => 7, 'placeholder' => 'Телефон'])?> + +field($model, 'email')->textInput(['maxlenth' => true, 'placeholder' => 'Email'])?> + +field($model, 'comment')->textarea(['rows' => 10, 'cols' => 8, 'placeholder' => 'Укажите, пожалуйÑта, ÑÑылку на Ñайт и уÑлугу, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ð°Ñ Ð¸Ð½Ñ‚ÐµÑ€ÐµÑует.'])?> + +
+ +
+
+ +
+
+ +
+
+ 'form-submit'])?> + +
+
+ + + \ No newline at end of file diff --git a/frontend/views/blocks/portfolio.php b/frontend/views/blocks/portfolio.php new file mode 100644 index 0000000..29ca255 --- /dev/null +++ b/frontend/views/blocks/portfolio.php @@ -0,0 +1,291 @@ +
+
+
+

Портфолио

+

УÑпехи, которыми мы гордимÑÑ

+ portfolio +
+
+ +
+
+ # +

Один из ведущих интернет-порталов «Цензор.нет» оÑнован в 2004 году и входит в ТОП-3 новоÑтных Ñайтов Украины.

+ +
+
    +
  • +
    ТОП 3
    +
    + + + + + + +
    СМИ Ñайтов Украины
    + + +
    +
  • +
  • +
    > 10 млн
    +
    + + + + + + +
    ПоÑещений из поиÑка в меÑÑц
    + + +
    +
  • +
  • +
    > 6
    +
    + + + + + + +
    Глубина проÑмотра из поиÑка
    + + +
    +
  • +
+
+
+
+
+ # +

«ПрофеÑійне наÑіннÑ» один из крупнейших на украинÑком рынке оптовых продавцов овощных и цветочных ÑемÑн, а также удобрений и газонных трав.

+ +
+ +
    +
  • +
    ТОП 3
    +
    + + + + + + +
    100% Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ñ Ð¿Ñ€Ð¾Ð´Ð°Ð¶Ð°Ð¼Ð¸
    + + +
    +
  • +
  • +
    ТОП 3
    +
    + + + + + + +
    СобÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ CMS online-marketing friendly
    + + +
    +
  • +
  • +
    ТОП 3
    +
    + + + + + + +
    Глубина проÑмотра Ñайта
    + + +
    +
  • +
+
+
+
+
+ # +

«Укравтодор» гоÑударÑтвенное агентÑтво автомобильных дорог Украины обеÑпечивает реализацию гоÑударÑтвенной политики в Ñфере дорожного хозÑйÑтва и ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð¾Ð±Ð¸Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ дорогами.

+ +
+
    +
  • +
    ТОП 3
    +
    + + + + + + +
    Онлайн-камер работает на карте
    + + +
    +
  • +
  • +
    ТОП 3
    +
    + + + + + + +
    Ðовых дефектов за неделю в обработку
    + + +
    +
  • +
  • +
    ТОП 3
    +
    + + + + + + +
    Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ñ Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð°Ð¼Ð¸
    + + +
    +
  • +
+
+
+
+
+ # +

Интернет-магазин «ЕкÑтрем Стайл» крупнейший в Украине онлайн-продавец товаров и Ð¾Ð±Ð¾Ñ€ÑƒÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ð²Ñех видов Ñпорта.

+ +
+
    +
  • +
    ТОП 3
    +
    + + + + + + +
    Лидирующих позиций в тематике
    + + +
    +
  • +
  • +
    ТОП 3
    +
    + + + + + + +
    Разделов в продвижении
    + + +
    +
  • +
  • +
    ТОП 3
    +
    + + + + + + +
    Показов рекламы в Украине в меÑÑц
    + + +
    +
  • +
+
+
+
+
+ # +

ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ÐœÐµÐ´Ñ‚ÐµÑ…Ð½Ð¸ÐºÐ°Â» более 17 лет работает на рынке медицинÑких товаров Украины и предоÑтавлÑет широкий выбор медицинÑкой техники и товаров Ð´Ð»Ñ ÐºÑ€Ð°Ñоты и здоровьÑ.

+ +
+
    +
  • +
    ТОП 3
    +
    + + + + + + +
    Топ-позиций в прайÑагрегаторах
    + + +
    +
  • +
  • +
    ТОП 3
    +
    + + + + + + +
    Показатель конверÑий Ñайта
    + + +
    +
  • +
  • +
    ТОП 3
    +
    + + + + + + +
    ROI в Google.Adwords
    + + +
    +
  • +
+
+
+
+
+
\ No newline at end of file diff --git a/frontend/views/blocks/reviews.php b/frontend/views/blocks/reviews.php new file mode 100644 index 0000000..46950ee --- /dev/null +++ b/frontend/views/blocks/reviews.php @@ -0,0 +1,74 @@ +
+
+
+

ÐÐ°Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽÑ‚

+

За результаты, а не краÑивые отчеты

+ portfolio +
+
+
+
+
+ extremstyle.ua +
+ Ð¡Ð¾Ð»Ð¾Ð¼Ñ–Ñ Ð¡Ð¸Ð²Ð¸Ðº +

Маркетинг-менеджер

+ + extremstyle.ua + +
+
+
+

ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» Ñопровождает Ð½Ð°Ñ Ñ Ñамого начала деÑтельноÑти в Ñети интернет. Ð Ñто уже более деÑÑти лет. ДолгоÑрочноÑть ÑотрудничеÑтва ÑвлÑетÑÑ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ показателем его уÑпешноÑти и Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° пути Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‰Ð¸Ñ… задач и целей. ЯвлÑÑÑÑŒ Ñоздателем наших Ñайтов, ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» обеÑпечивает не только их беÑперебойное техничеÑкое обÑлуживание и лидирующие позиции, но и полное ÑоответÑтвие новейшим тенденциÑм в интернет-технологиÑÑ…. ÐарÑду Ñ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ наших текущих задач, ÑпециалиÑты «ArtWeb» поÑтоÑнно предлагают немного больше, чем то, Ñ Ñ‡ÐµÐ¼ мы обратилиÑÑŒ, то еÑть решение задач более выÑокого уровнÑ. Внедрение, казалоÑÑŒ бы, фантаÑтичеÑких замыÑлов в развитие Ñайта, иногда опережает даже Ñамое Ñмелое планирование.

+

Важным аÑпектом нашего ÑотрудничеÑтва Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть целенаправленного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкой базой и Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐµÐµ не только количеÑтвенных, но и качеÑтвенных показателей, что непоÑредÑтвенно влиÑет на роÑÑ‚ прибыли нашей компании. ОтветÑтвенноÑть, гибкоÑть, умение работать на результат, креативноÑть мышлениÑ, оперативное реагирование на вÑе наши запроÑÑ‹, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¾ÑведомленноÑть обо вÑем проиÑходÑщем на рынке новейших интернет-технологий и отчаÑти их авторÑÐºÐ°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° – отличительные характериÑтики нашего надежного партнера – компании «ArtWeb».

+

Ðа протÑжении вÑего периода ÑотрудничеÑтва у Ð½Ð°Ñ Ð½Ðµ было повода уÑомнитьÑÑ Ð² том, что в «ArtWeb» работают лучшие web-ÑпециалиÑты. СотрудничеÑтво Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑоÑтавлÑющей лидерÑтва в Ñегменте нашей деÑтельноÑти.

+
+
+
+
+ ukravtodor.gov.ua +
+ Сергей Левицкий +

ПреÑÑ-Ñекретарь

+ + ukravtodor.gov.ua + +
+
+
+

Укравтодор Ñотрудничает Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» уже около года, в течение которого было реализовано неÑколько Ñложнейших веб-проектов - в кратчайший Ñрок Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ веб-Ñайта ГоÑагентÑва автомобильных дорог Украины, а также Ñ€Ñд интерактивных веб-приложений, информирующих о ÑоÑтоÑнии проезда и качеÑтве дорожного покрытиÑ.

+

С Ñамого начала ÑовмеÑтной работы ÑпециалиÑты компании продемонÑтрировали Ñвой выÑокий профеÑÑионализм, гибкоÑть, и оперативноÑть в решении вÑех возникающих вопроÑов, что позволило модернизировать официальное интернет-предÑтавительÑтво Укравтодора за рекордно короткий Ñрок - 3 меÑÑца. Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº предыдущую верÑию веб-Ñайта, уÑтаревшую и не функциональную, Ñ€Ñд других компаний-разработчиков пыталиÑÑŒ уÑовершенÑтвовать на протÑжении 9 лет.

+

Этот уÑпешный опыт продемонÑтрировал ÑффективноÑть ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» и потому вÑе поÑледующие интернет- проекты Укравтодора были переданы в разработку именно ей.

+

СпаÑибо руководÑтву и коллективу компании за понимание и поддержку в решении Ñложных и, как правило, чрезвычайно оперативных задач.

+

ПреÑÑ-Ñлужба Укравтодора

+
+
+
+
+ censor.net.ua +
+ Ðндрей Богатырь +

ИÑполнительный менеджер проекта

+ + censor.net.ua + +
+
+
+

Мы обратилиÑÑŒ к ArtWeb Ñ Ñ†ÐµÐ»ÑŒÑŽ улучшить качеÑтво индекÑации Ñайта поиÑковыми ÑиÑтемами и увеличить трафик от ключевых поиÑковых операторов. Ð”Ð»Ñ Ñтого «ArtWeb» нужно было провеÑти анализ наших недоработок по оптимизации и предоÑтавить план уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. Главной целью было добитьÑÑ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‚Ð¾ÐºÐ° трафика из поиÑковых ÑиÑтем до ÑƒÑ€Ð¾Ð²Ð½Ñ Ð±Ð¾Ð»ÐµÐµ 50 тыÑ. переходов в Ñутки, в итоге через год поÑле Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ кумулÑтивный Ñффект дал приток трафика более 200 тыÑÑч переходов в Ñутки.

+

Благодарим «ArtWeb» за Ñлаженную и прозрачную ÑиÑтему по взаимодейÑтвию в процеÑÑе работы. Результат ÑотрудничеÑтва Ñ Â«ArtWeb» полноÑтью оправдал ожиданиÑ. Рекомендую вÑем Ñту компанию как профеÑÑионалов в облаÑти Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта.

+
+
+
+
+
+
    +
  • 1
  • +
  • 2
  • +
  • 3
  • +
+
+
+
+
+
diff --git a/frontend/views/blocks/services.php b/frontend/views/blocks/services.php new file mode 100644 index 0000000..d06301d --- /dev/null +++ b/frontend/views/blocks/services.php @@ -0,0 +1,12 @@ + +
+
    +
  • href="/#prodvizheniye-sayta" onclick="return location.href='/#prodvizheniye-sayta'">Продвижение Ñайта
  • +
  • href="/#povysheniye-loyalnosti" onclick="return location.href='/#povysheniye-loyalnosti'">Повышение лоÑльноÑти
  • +
  • href="/#razrabotka" onclick="return location.href='/#razrabotka'">Разработка
  • +
  • href="/#analiz" onclick="return location.href='/#analiz'">Ðнализ
  • +
+
\ No newline at end of file diff --git a/frontend/views/layouts/main.php b/frontend/views/layouts/main.php new file mode 100644 index 0000000..6830c8a --- /dev/null +++ b/frontend/views/layouts/main.php @@ -0,0 +1,183 @@ + +beginPage() ?> + + + + + + + + + <?= Html::encode($this->title) ?> + + head() ?> + + + +beginBody() ?> + +
+
+
+
+ + + + +
+
+
+

Контакты

+

Будем рады Ð²Ð°Ñ Ð²Ð¸Ð´ÐµÑ‚ÑŒ

+ portfolio +
+
+
+ +
+
+ +
+
+

У Ð’Ð°Ñ ÐµÑ‰Ðµ оÑталиÑÑŒ вопроÑÑ‹?

+
+
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+
+
+
+
+
+ +
+ +
+ +
+
+
+ + +
+ + + +
+
+
+
+
+ + +
+
+ + +
+
+ +
+ +
+
+
+
+
+
+ +
+
+ +endBody() ?> + + + +endPage() ?> diff --git a/frontend/views/site/contact.php b/frontend/views/site/contact.php new file mode 100644 index 0000000..0762e73 --- /dev/null +++ b/frontend/views/site/contact.php @@ -0,0 +1,328 @@ +title = 'Контакты'; +$this->params['breadcrumbs'][] = $this->title; + +$this->registerCssFile('css/contact.css'); +$this->registerJsFile('js/contact.js'); +?> +
+
+
+
+
+

Контакты

+
+
+ + + + + + + + + + + +
+ + + + + + +
+38 (044) 593-73-76
+
+ + + + + + +
+ + + + +
artwebstudio
+
+
+ + + + + + +
+ + + + +
m@arweb.ua
+
+
+ + +
+
+
+
+
+
+
+
+
+

Готовы помочь

+

+ +
+ +
+
+ +
+
+
+ + + + + + + +
+ + + + + +
Менеджер по работе
Ñ ÐºÐ»ÑŽÑ‡ÐµÐ²Ñ‹Ð¼Ð¸ клиентами
Директор по маркетингу
+
+ + + + + +
+ + + + + + +
ÐлекÑей Марек
+
+ + + + + + +
Ðнтон ЗозулÑ
+
+
+
+
+
+
+ + + +
+ +
+
+
+ + + +
+ +
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+

ÐдреÑ

+

+ +
+
+ + + + + + + + + + + + +
+ + + + +
Ðаш Ð¾Ñ„Ð¸Ñ Ð½Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ÑÑ Ð¿Ð¾ адреÑу:
+
+ + + + + + +
г. Киев, ул. СрибнокольÑкаÑ, 2а, Ð¾Ñ„Ð¸Ñ 81а
+
+ + +
+
+
+
+
+
+
+
+ + + + diff --git a/frontend/views/site/error.php b/frontend/views/site/error.php new file mode 100644 index 0000000..0ba2574 --- /dev/null +++ b/frontend/views/site/error.php @@ -0,0 +1,27 @@ +title = $name; +?> +
+ +

title) ?>

+ +
+ +
+ +

+ The above error occurred while the Web server was processing your request. +

+

+ Please contact us if you think this is a server error. Thank you. +

+ +
diff --git a/frontend/views/site/frontpage.php b/frontend/views/site/frontpage.php new file mode 100644 index 0000000..6bc39a2 --- /dev/null +++ b/frontend/views/site/frontpage.php @@ -0,0 +1,244 @@ + +
+
+
+

Онлайн-Ð±Ð¸Ð·Ð½ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть
прибыльным!

+ beginContent('@app/views/blocks/orders-audit.php'); ?> + endContent(); ?> +

Отправьте заÑвку и получите анализ
от профеÑÑионалов

+
+
+
+
+
+ +
+
+
+
+ 12 лет +
С 2003 года
на рынке
+
+
+
+
+ клиенты +
Индивидуальный
подход к каждому
клиенту
+
+
+
+
+ top 10 +
Ðаши клиенты
в топе более 5 лет
+
+
+
+

С нами ваш Ñайт

+
    +
  • ЛюбÑÑ‚ поиÑковые ÑиÑтемы
  • +
  • БыÑтро развиваетÑÑ
  • +
  • ПриноÑит доход
  • +
+
+
+
+
+ +
+
+
+

УÑлуги

+

ПрофеÑÑионального онлайн-маркетинга

+ ................................ +
+
+ + + + + +
+
+
+ + +beginContent('@app/views/blocks/portfolio.php'); ?> + +endContent(); ?> + +beginContent('@app/views/blocks/reviews.php'); ?> + +endContent(); ?> + + + beginContent('@app/views/blocks/clients.php', ['clients' => $clients]); ?> + + endContent(); ?> + \ No newline at end of file diff --git a/frontend/views/site/login.php b/frontend/views/site/login.php new file mode 100644 index 0000000..fe67ee0 --- /dev/null +++ b/frontend/views/site/login.php @@ -0,0 +1,39 @@ +title = 'Login'; +$this->params['breadcrumbs'][] = $this->title; +?> + diff --git a/frontend/views/site/orders_audit.php b/frontend/views/site/orders_audit.php new file mode 100644 index 0000000..715d92e --- /dev/null +++ b/frontend/views/site/orders_audit.php @@ -0,0 +1,33 @@ +title = 'Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ð° Ñайта'; +$this->params['breadcrumbs'][] = $this->title; + +//$this->registerCssFile('css/xxx.css'); +//$this->registerJsFile('js/yyy.js'); +?> +
+
+
+
+

ОÐЛÐЙÐ-БИЗÐЕС ДОЛЖЕРБЫТЬ ПРИБЫЛЬÐЫМ!

+ + + field($model, 'phone')->textInput(['maxlenth' => true])?> + + field($model, 'email')->textInput(['maxlenth' => true])?> + + field($model, 'comment')->textarea(['rows' => 10, 'cols' => 8])?> + + 'form-submit'])?> + + +
Отправьте заÑвку и получите анализ от профеÑÑионалов
+
+
+
+
\ No newline at end of file diff --git a/frontend/views/site/orders_audit_success.php b/frontend/views/site/orders_audit_success.php new file mode 100644 index 0000000..168fc45 --- /dev/null +++ b/frontend/views/site/orders_audit_success.php @@ -0,0 +1,23 @@ + + +
+
+
+
+

СпаÑибо за вашу заÑвку

+

Ðаш менеджер подготовит анализ в течении Ñуток и ÑвÑжетÑÑ Ñ Ð²Ð°Ð¼Ð¸

+ +
+
+
+
\ No newline at end of file diff --git a/frontend/views/site/requestPasswordResetToken.php b/frontend/views/site/requestPasswordResetToken.php new file mode 100644 index 0000000..494ddb3 --- /dev/null +++ b/frontend/views/site/requestPasswordResetToken.php @@ -0,0 +1,31 @@ +title = 'Request password reset'; +$this->params['breadcrumbs'][] = $this->title; +?> +
+

title) ?>

+ +

Please fill out your email. A link to reset password will be sent there.

+ +
+
+ 'request-password-reset-form']); ?> + + field($model, 'email') ?> + +
+ 'btn btn-primary']) ?> +
+ + +
+
+
diff --git a/frontend/views/site/resetPassword.php b/frontend/views/site/resetPassword.php new file mode 100644 index 0000000..8e6d93f --- /dev/null +++ b/frontend/views/site/resetPassword.php @@ -0,0 +1,31 @@ +title = 'Reset password'; +$this->params['breadcrumbs'][] = $this->title; +?> +
+

title) ?>

+ +

Please choose your new password:

+ +
+
+ 'reset-password-form']); ?> + + field($model, 'password')->passwordInput() ?> + +
+ 'btn btn-primary']) ?> +
+ + +
+
+
diff --git a/frontend/views/site/services/analitic.php b/frontend/views/site/services/analitic.php new file mode 100644 index 0000000..4f8260d --- /dev/null +++ b/frontend/views/site/services/analitic.php @@ -0,0 +1,399 @@ +title = 'РаÑкрутка Ñайта Киев | SEO продвижение интернет-магазина в поиÑковых ÑиÑтемах (Google, ЯндекÑ) Ñео Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐšÐ¸ÐµÐ², Харьков, ДнепропетровÑк, Украина'; +$this->params['breadcrumbs'][] = 'ÐаÑтройка аналитики'; + +$this->registerCssFile('/css/service_analitic.css'); + +$this->registerJsFile('/js/services/analitic.js'); +?> +
+
+ beginContent('@app/views/blocks/services.php', ['tab' => 4]); ?> + endContent(); ?> + +

Сбор данных


Ð´Ð»Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¸Ð²Ð½Ñ‹Ñ…


выводов

+
+

Онлайн-Ð±Ð¸Ð·Ð½ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть
прибыльным!

+ beginContent('@app/views/blocks/orders-audit.php'); ?> + endContent(); ?> +

Отправьте заÑвку и получите анализ
от от профеÑÑионалов

+
+
+ +
+
+
+
+

Сертифицированных
+ ÑпециалиÑта +

+ +
+
+
+

Сложные
+ решениÑ

+
+
+
+

Ð’Ñе популÑрные
+ ÑиÑтемы +

+
+
+
+

Ежедневный
+ контроль + +

+
+
+
+
+
+
+
+ +

Зачем вам наÑтройка аналитики на Ñайте?

+
+
+
+

Контроль полученных + результатов +

+
+
+
+

Проверка качеÑтва + иÑточников трафика +

+
+
+
+

Работы по юзабилити +

+
+
+
+

Ð¡ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ +

+
+
+
+

Редизайн +

+
+
+
+

ПоÑтавка ÑкÑпериментов +

+
+
+
+

Увеличение продаж +

+
+
+
+ +
+
+
+

Проверка партнеров + +

+
+
+
+

Ð¡ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ +

+
+
+
+

Редизайн +

+
+
+
+

Решение бизнеÑ-задач + +

+
+
+
+

Увеличение глубины + проÑмотров +

+
+
+
+

Улучшение качеÑтва + иÑточников трафика +

+
+
+
+
+
+
+
+
+
+

КейÑ

+
+
semena.in.ua
+
+
+ +

E-commerce
Ñчитает
прибыль

+
+
+ +

Ðнализ
раÑходов из
CPC-иÑточников

+
+
+ +

СегментациÑ
пользователей

+
+
+
+
+
+

Команда на проект

+
+
    +
  • +

    Проджект-менеджер

    +
  • +
  • +

    Интернет-маркетолог

    +
  • +
  • +

    Ðналитик

    +
  • +
+
    +
  • +

    ЮзабилиÑÑ‚

    +
  • +
+
+
+
+
+

5 причин работать Ñ Ð½Ð°Ð¼Ð¸

+
+
+
+

1

+

Мы выдвигаем гипотезы
и проверÑем их проверке. +

+
+
+

2

+

ПоÑтоÑнные работы
Ñ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸ÐµÐ¼ конверÑий. +

+
+ +
+

3

+

Строгий контроль рентабельноÑти
вÑех иÑточников трафика.

+
+
+

4

+

Подключаем необходимые ÑиÑтемы
анализа в завиÑимоÑти от задач. +

+
+
+

5

+

Мы не только наÑтраиваем аналитику,
но и Ñоздаем Ñтратегию Ñ€Ð°Ð·Ð²Ð¸Ñ‚Ð¸Ñ Ð±Ð¸Ð·Ð½ÐµÑа. +

+
+
+

Реще мы поÑещаем Ñеминары, конференции, общаемÑÑ, Ñ ÐºÐ¾Ð»Ð»ÐµÐ³Ð°Ð¼Ð¸, обмениваемÑÑ Ð·Ð½Ð°Ð½Ð¸Ñми, читаем профеÑÑиональную литературу.,
ПоÑтому и информированы лучше, чем оÑтальные.

+ +
+ +
+
+
+
+

ÐаÑтройка Google.Analytics и ЯндекÑ.Метрики

+
+
+
    +
  • Ð’Ñ‹ хотите знать наÑколько Ñффективно работает онлайн-маркетинг на вашем Ñайте?
  • +
  • Вам нужны данные Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð½ÑÑ‚Ð¸Ñ ÑтратегичеÑких решений?
  • +
  • Ðеобходимо проверить качеÑтво вÑех иÑточников трафика?
  • +
  • Хотите проверить ÑффективноÑть работы подрÑдчиков?
  • +
+

Тогда вы пришли по адреÑу.

+
+
+
+

+ В чем же фишка
+ + 1. ÐаÑтройка Google Analytics - Goals, Events,
+ E-commerce, Cost Analysis, Dimensions, Metrics.
+ 2. ÐаÑтройка ЯндекÑ.Метрики - вебвизор, аналитика
+ форм, оÑтрова, целевой звонок.
+ 3. Мы обучаем - заказчик должен уметь пользоватьÑÑ
+ аналитикой.
+ 4. Ð¡Ñ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð° - выбираем ÑпоÑобы получениÑ
+ репрезентативных данных и ÑоÑтавлÑем цели, длÑ
+ которых они нужны.
+ 5. КомплекÑный подход - иÑпользуем вÑе
+ необходимые инÑтрументы от ÑервиÑов до
+ индивидуальных Ñкриптов на Ñайте.
+ 6. A/B теÑÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ - Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ð¾ юзабилити длÑ
+ вашего бизнеÑа.
+ 7. Индивидуальный подход - у каждого клиента Ñвои
+ цели, которые мы иÑÑледуем. + + +

+
+
+

Мы Ñчитаем, что клиент обÑзательно должен понимать, что он получает в результате работы подрÑдчика, а Ð´Ð»Ñ Ñтого необходима Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð°Ð½Ð°Ð»Ð¸Ñ‚Ð¸ÐºÐ°. Со Ñвоей Ñтороны без точных данных мы не можем доÑтичь макÑимальных результатов, поÑтому Ñто так важно. +

+
+
+

Ðнтон ЗозулÑ
Директор по маркетингу

+
+
+
+
+
+
+

ÐÐ°Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽÑ‚
за результаты, а не краÑивые отчеты

+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+ +

Ð¡Ð¾Ð»Ð¾Ð¼Ñ–Ñ Ð¡Ð¸Ð²Ð¸Ðº
Маркетинг-менеджер
extremstyle.ua

+
+
+

+ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» Ñопровождает Ð½Ð°Ñ Ñ Ñамого начала деÑтельноÑти в Ñети интернет. Ð Ñто уже более деÑÑти лет. ДолгоÑрочноÑть ÑотрудничеÑтва ÑвлÑетÑÑ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ показателем его уÑпешноÑти и Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° пути Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‰Ð¸Ñ… задач и целей. ЯвлÑÑÑÑŒ Ñоздателем наших Ñайтов, ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» обеÑпечивает не только их беÑперебойное техничеÑкое обÑлуживание и лидирующие позиции, но и полное ÑоответÑтвие новейшим тенденциÑм в интернет-технологиÑÑ…. ÐарÑду Ñ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ наших текущих задач, ÑпециалиÑты «ArtWeb» поÑтоÑнно предлагают немного больше, чем то, Ñ Ñ‡ÐµÐ¼ мы обратилиÑÑŒ, то еÑть решение задач более выÑокого уровнÑ. Внедрение, казалоÑÑŒ бы, фантаÑтичеÑких замыÑлов в развитие Ñайта, иногда опережает даже Ñамое Ñмелое планирование. + +

Важным аÑпектом нашего ÑотрудничеÑтва Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть целенаправленного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкой базой и Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐµÐµ не только количеÑтвенных, но и качеÑтвенных показателей, что непоÑредÑтвенно влиÑет на роÑÑ‚ прибыли нашей компании. ОтветÑтвенноÑть, гибкоÑть, умение работать на результат, креативноÑть мышлениÑ, оперативное реагирование на вÑе наши запроÑÑ‹, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¾ÑведомленноÑть обо вÑем проиÑходÑщем на рынке новейших интернет-технологий и отчаÑти их авторÑÐºÐ°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° – отличительные характериÑтики нашего надежного партнера – компании «ArtWeb». + + Ðа протÑжении вÑего периода ÑотрудничеÑтва у Ð½Ð°Ñ Ð½Ðµ было повода уÑомнитьÑÑ Ð² том, что в «ArtWeb» работают лучшие web-ÑпециалиÑты. СотрудничеÑтво Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑоÑтавлÑющей лидерÑтва в Ñегменте нашей деÑтельноÑти. +

+
+
+
+
+
+ +

Сергей Левицкий
ПреÑÑ-Ñекретарь
ukravtodor.gov.ua

+
+
+

+ Укравтодор Ñотрудничает Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» уже около года, в течение которого было реализовано неÑколько Ñложнейших веб-проектов - в кратчайший Ñрок Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ веб-Ñайта ГоÑагентÑва автомобильных дорог Украины, а также Ñ€Ñд интерактивных веб-приложений, информирующих о ÑоÑтоÑнии проезда и качеÑтве дорожного покрытиÑ. + +

С Ñамого начала ÑовмеÑтной работы ÑпециалиÑты компании продемонÑтрировали Ñвой выÑокий профеÑÑионализм, гибкоÑть, и оперативноÑть в решении вÑех возникающих вопроÑов, что позволило модернизировать официальное интернет-предÑтавительÑтво Укравтодора за рекордно короткий Ñрок - 3 меÑÑца. Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº предыдущую верÑию веб-Ñайта, уÑтаревшую и не функциональную, Ñ€Ñд других компаний-разработчиков пыталиÑÑŒ уÑовершенÑтвовать на протÑжении 9 лет. + +

Этот уÑпешный опыт продемонÑтрировал ÑффективноÑть ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» и потому вÑе поÑледующие интернет- проекты Укравтодора были переданы в разработку именно ей. + +

СпаÑибо руководÑтву и коллективу компании за понимание и поддержку в решении Ñложных и, как правило, чрезвычайно оперативных задач. + +

ПреÑÑ-Ñлужба Укравтодора + +

+
+
+
+
+
+ +

Ðндрей Богатырь
ИÑполнительный менеджер проекта
censor.net.ua

+
+
+

+ Мы обратилиÑÑŒ к ArtWeb Ñ Ñ†ÐµÐ»ÑŒÑŽ улучшить качеÑтво индекÑации Ñайта поиÑковыми ÑиÑтемами и увеличить трафик от ключевых поиÑковых операторов. Ð”Ð»Ñ Ñтого «ArtWeb» нужно было провеÑти анализ наших недоработок по оптимизации и предоÑтавить план уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. Главной целью было добитьÑÑ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‚Ð¾ÐºÐ° трафика из поиÑковых ÑиÑтем до ÑƒÑ€Ð¾Ð²Ð½Ñ Ð±Ð¾Ð»ÐµÐµ 50 тыÑ. переходов в Ñутки, в итоге через год поÑле Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ кумулÑтивный Ñффект дал приток трафика более 200 тыÑÑч переходов в Ñутки. + +

Благодарим «ArtWeb» за Ñлаженную и прозрачную ÑиÑтему по взаимодейÑтвию в процеÑÑе работы. Результат ÑотрудничеÑтва Ñ Â«ArtWeb» полноÑтью оправдал ожиданиÑ. Рекомендую вÑем Ñту компанию как профеÑÑионалов в облаÑти Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. + +

+
+
+
+
+ +
+
+
+
+

Как мы работаем

+
+
+
+
+ +

ПоÑтороение Ñтратегии
+ аналитики

+
+
+
+
+ +

Подключение оÑновных
+ ÑервиÑов + +

+
+
+
+
+ +

ÐаÑтройка
+ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…

+
+
+
+
+
+ +

Создание отчетов +

+
+
+
+
+ +

ЭкÑперименты +

+
+
+
+
+ +

Контроль и
+ отчетноÑть

+
+
+
+
+
+
+
+ diff --git a/frontend/views/site/services/content.php b/frontend/views/site/services/content.php new file mode 100644 index 0000000..bb4df13 --- /dev/null +++ b/frontend/views/site/services/content.php @@ -0,0 +1,546 @@ +title = 'РаÑкрутка Ñайта Киев | SEO продвижение интернет-магазина в поиÑковых ÑиÑтемах (Google, ЯндекÑ) Ñео Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐšÐ¸ÐµÐ², Харьков, ДнепропетровÑк, Украина'; +$this->params['breadcrumbs'][] = 'Content'; + +$this->registerCssFile('/css/service_content.css'); + +$this->registerJsFile('/js/services/content.js'); +?> +
+
+ beginContent('@app/views/blocks/services.php', ['tab' => 2]); ?> + endContent(); ?> + +

Контент-контроль

+
+

Онлайн-Ð±Ð¸Ð·Ð½ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть
прибыльным!

+ beginContent('@app/views/blocks/orders-audit.php'); ?> + endContent(); ?> +

Отправьте заÑвку и получите анализ
от от профеÑÑионалов

+
+
+ +
+
+
+
+

Индивидуальный
+ подход + +

+ +
+
+
+

ДейÑтвеннаÑ
+ ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ +

+
+
+
+

ОпытнаÑ
команда +

+
+
+
+

СвÑзи
+ в СМИ +

+
+
+
+
+
+
+
+ +

Зачем вам контент-маркетинг?

+
+
+
+

РоÑÑ‚ узнаваемоÑти
+ на рынке +

+
+
+
+

Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð»Ð¸Ð´ÐµÑ€Ð°
+ мнений

+
+
+
+

Получение
+ качеÑтвенных лидов +

+
+
+
+

Увеличение конверÑии
+ и поÑещаемоÑти

+
+
+
+

ÐœÐ¾Ñ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð¾Ð²
+ покупать продукт +

+
+
+
+

Продвижение в
+ поиÑковых ÑиÑтемах +

+
+
+
+

Получение качеÑтвенных
+ ÑÑылок Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… реÑурÑов +

+
+ +
+
+
+
+
+

Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð»Ð¸Ð´ÐµÑ€Ð°
+ мнений +

+
+
+
+

Получение качеÑтвенных
+ лидов +

+
+
+
+

Снижение ÑтоимоÑти лида
+ и раÑходов на контекÑтную + рекламу +

+
+
+
+

ÐœÐ¾Ñ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð¾Ð²
+ покупать продукты +

+
+
+
+

Ðужно быÑтро Ñобрать
+ команду маркетологов +

+
+
+
+

ПроизводÑтво разного
+ вида контента в больших
+ маÑштабах +

+
+
+
+

+
+
+
+
+
+
+
+ 90% +
+
+

+ пользователей Ñчитают, что контент полезен + (CMI) +

+
+
+
+
+ 60% +
+
+

+ пользователей менÑли Ñвоемнение на позитивное,прочитав блог компании + Endurance Marketing +

+
+
+
+
+ 80% +
+
+

+ бизнеÑменов, принимающих решение, черпают ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ компании не из рекламы, + а предварительно читают информацию на ее Ñайте (CMI) +

+
+
+
+
+

Команда на проект

+
+
    +
  • +

    Ðккаунт-менеджер

    +
  • +
  • +

    Интернет-маркетолог

    +
  • +
  • +

    СпециалиÑÑ‚ по
    + CPA-рекламе

    +
  • +
+
    +
  • +

    Дизайнер

    +
  • +
  • +

    Ðналитик

    +
  • +
+
+
+
+
+

5 причин заказать у Ð½Ð°Ñ CPA-рекламу

+
+
+
+

1

+

Мы умеем работать Ñ CPA-биржами + от наÑтройки кодов на Ñайте + до взаимодейÑÑ‚Ð²Ð¸Ñ + Ñ Ð²ÐµÐ±Ð¼Ð°Ñтерами. + +

+
+
+

2

+

Поможем проÑчитать процент, + который будет макÑимально + Ñффективным Ð´Ð»Ñ Ð²Ð°Ñ. + +

+
+ +
+

3

+

Баннеры идеально подходÑÑ‚ д + Ð»Ñ Ð²ÐµÐ±-маÑтеров + (кликабельны и продающие). + +

+
+
+

4

+

Мы знаем, как привлекать + новых партнеров. + +

+
+
+

5

+

ÐаÑтроим внутреннюю ÑиÑтему + от “Приведи друга†+ до популÑрного ÑпоÑоба + монетизации в вашей тематике. + +

+
+
+

Реще мы поÑещаем Ñеминары, конференции, общаемÑÑ, Ñ ÐºÐ¾Ð»Ð»ÐµÐ³Ð°Ð¼Ð¸, обмениваемÑÑ Ð·Ð½Ð°Ð½Ð¸Ñми, читаем профеÑÑиональную литературу.,
ПоÑтому и информированы лучше, чем оÑтальные.

+ +
+ +
+
+
+
+

Контент – вÑему голова

+
+
+

Контент- Ñамый верный и надежный ÑпоÑоб удержать + Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° Ñайте, а хороший текÑÑ‚ – залог уÑпеха. +

+ Однако одного текÑта мало: он нуждаетÑÑ Ð² иллюÑтрациÑÑ… + и видео. Рпопытки Ñделать вÑÑŽ работу Ñвоими Ñилами + превращаетÑÑ Ð² непоÑильную ношу. Тем более, что плоды + контент-маркетинг приноÑит не Ñразу. +

+
+
+
+

+ Очень чаÑто можно уÑлышать, что копирайтеры и журналиÑты не Ñмогут хорошо опиÑать Ñложный продукт (например, ÑельÑкохозÑйÑтвеннаÑ, медицинÑÐºÐ°Ñ Ñ‚ÐµÐ¼Ð°Ñ‚Ð¸ÐºÐ°, металлургиÑ). + Да, один автор не Ñможет ÑамоÑтоÑтельно разобратьÑÑ. Ðо. Мы найдем ÑкÑпертов, проведем интервью и, перед тем, как приÑтупить к работе, глубоко изучим подводные камни отраÑли. +

+ Работа будет проходить под вашим контролем, потому что никто не знает Ð±Ð¸Ð·Ð½ÐµÑ Ð»ÑƒÑ‡ÑˆÐµ, чем его владелец. +

+ Ðачните диалог Ñо Ñвоими клиентами, пока ваши конкуренты не Ñделали Ñто раньше. +

+
+
+

CPA - Ñто Ð»ÑƒÑ‡ÑˆÐ°Ñ ÑиÑтема + Ð´Ð»Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†ÐµÐ² бизнеÑа. + Ð’Ñ‹ оплачиваете только + результат (продажу) + и платите процент, который + вам выгоден. +

+
+
+

Ð®Ð»Ð¸Ñ Ð¡Ð¾Ñ‚Ð½Ð¸ÐºÐ¾Ð²Ð°
руководитель отдела лоÑльноÑти

+
+
+
+
+
+
+
+

Что мы делаем

+
+ +
+
+
+ +
+
+

Статьи

+
+
+
+
+ +
+
+

ПреÑÑ-релизы

+
+
+
+ +
+
+
+ +
+
+

Видео

+
+
+
+
+ +
+
+

КонкурÑÑ‹

+
+
+
+ +
+
+
+ +
+
+

Инфографика

+
+
+
+
+ +
+
+

Презентации

+
+
+
+ +
+
+
+ +
+
+

Интервью

+
+
+
+
+ +
+
+

ПриложениÑ

+
+
+
+ +
+
+
+ +
+
+

РуководÑтва + и инÑтрукции

+
+
+
+
+ +
+
+

White papers

+
+
+
+ +
+
+
+ +
+
+

Страницы + Ñ Ð¿Ð¾Ð´ÐºÐ°Ñтами

+
+
+
+
+
+
+

ÐÐ°Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽÑ‚
за результаты, а не краÑивые отчеты

+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+ +

Ð¡Ð¾Ð»Ð¾Ð¼Ñ–Ñ Ð¡Ð¸Ð²Ð¸Ðº
Маркетинг-менеджер
extremstyle.ua

+
+
+

+ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» Ñопровождает Ð½Ð°Ñ Ñ Ñамого начала деÑтельноÑти в Ñети интернет. Ð Ñто уже более деÑÑти лет. ДолгоÑрочноÑть ÑотрудничеÑтва ÑвлÑетÑÑ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ показателем его уÑпешноÑти и Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° пути Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‰Ð¸Ñ… задач и целей. ЯвлÑÑÑÑŒ Ñоздателем наших Ñайтов, ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» обеÑпечивает не только их беÑперебойное техничеÑкое обÑлуживание и лидирующие позиции, но и полное ÑоответÑтвие новейшим тенденциÑм в интернет-технологиÑÑ…. ÐарÑду Ñ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ наших текущих задач, ÑпециалиÑты «ArtWeb» поÑтоÑнно предлагают немного больше, чем то, Ñ Ñ‡ÐµÐ¼ мы обратилиÑÑŒ, то еÑть решение задач более выÑокого уровнÑ. Внедрение, казалоÑÑŒ бы, фантаÑтичеÑких замыÑлов в развитие Ñайта, иногда опережает даже Ñамое Ñмелое планирование. + +

Важным аÑпектом нашего ÑотрудничеÑтва Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть целенаправленного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкой базой и Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐµÐµ не только количеÑтвенных, но и качеÑтвенных показателей, что непоÑредÑтвенно влиÑет на роÑÑ‚ прибыли нашей компании. ОтветÑтвенноÑть, гибкоÑть, умение работать на результат, креативноÑть мышлениÑ, оперативное реагирование на вÑе наши запроÑÑ‹, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¾ÑведомленноÑть обо вÑем проиÑходÑщем на рынке новейших интернет-технологий и отчаÑти их авторÑÐºÐ°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° – отличительные характериÑтики нашего надежного партнера – компании «ArtWeb». + + Ðа протÑжении вÑего периода ÑотрудничеÑтва у Ð½Ð°Ñ Ð½Ðµ было повода уÑомнитьÑÑ Ð² том, что в «ArtWeb» работают лучшие web-ÑпециалиÑты. СотрудничеÑтво Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑоÑтавлÑющей лидерÑтва в Ñегменте нашей деÑтельноÑти. +

+
+
+
+
+
+ +

Сергей Левицкий
ПреÑÑ-Ñекретарь
ukravtodor.gov.ua

+
+
+

+ Укравтодор Ñотрудничает Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» уже около года, в течение которого было реализовано неÑколько Ñложнейших веб-проектов - в кратчайший Ñрок Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ веб-Ñайта ГоÑагентÑва автомобильных дорог Украины, а также Ñ€Ñд интерактивных веб-приложений, информирующих о ÑоÑтоÑнии проезда и качеÑтве дорожного покрытиÑ. + +

С Ñамого начала ÑовмеÑтной работы ÑпециалиÑты компании продемонÑтрировали Ñвой выÑокий профеÑÑионализм, гибкоÑть, и оперативноÑть в решении вÑех возникающих вопроÑов, что позволило модернизировать официальное интернет-предÑтавительÑтво Укравтодора за рекордно короткий Ñрок - 3 меÑÑца. Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº предыдущую верÑию веб-Ñайта, уÑтаревшую и не функциональную, Ñ€Ñд других компаний-разработчиков пыталиÑÑŒ уÑовершенÑтвовать на протÑжении 9 лет. + +

Этот уÑпешный опыт продемонÑтрировал ÑффективноÑть ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» и потому вÑе поÑледующие интернет- проекты Укравтодора были переданы в разработку именно ей. + +

СпаÑибо руководÑтву и коллективу компании за понимание и поддержку в решении Ñложных и, как правило, чрезвычайно оперативных задач. + +

ПреÑÑ-Ñлужба Укравтодора + +

+
+
+
+
+
+ +

Ðндрей Богатырь
ИÑполнительный менеджер проекта
censor.net.ua

+
+
+

+ Мы обратилиÑÑŒ к ArtWeb Ñ Ñ†ÐµÐ»ÑŒÑŽ улучшить качеÑтво индекÑации Ñайта поиÑковыми ÑиÑтемами и увеличить трафик от ключевых поиÑковых операторов. Ð”Ð»Ñ Ñтого «ArtWeb» нужно было провеÑти анализ наших недоработок по оптимизации и предоÑтавить план уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. Главной целью было добитьÑÑ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‚Ð¾ÐºÐ° трафика из поиÑковых ÑиÑтем до ÑƒÑ€Ð¾Ð²Ð½Ñ Ð±Ð¾Ð»ÐµÐµ 50 тыÑ. переходов в Ñутки, в итоге через год поÑле Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ кумулÑтивный Ñффект дал приток трафика более 200 тыÑÑч переходов в Ñутки. + +

Благодарим «ArtWeb» за Ñлаженную и прозрачную ÑиÑтему по взаимодейÑтвию в процеÑÑе работы. Результат ÑотрудничеÑтва Ñ Â«ArtWeb» полноÑтью оправдал ожиданиÑ. Рекомендую вÑем Ñту компанию как профеÑÑионалов в облаÑти Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. + +

+
+
+
+
+ +
+
+
+
+

Как мы работаем

+
+
+
+
+ +

Глубокое
+ изучение тематики

+
+
+
+
+ +

Ð¡Ñ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ + +

+
+
+
+
+ +

ÐапиÑание
+ контента +

+
+
+
+
+
+ +

РаÑпроÑтранение + через блоги,
+ Ñоциальные Ñети, + Ñлектронную
+ почту и внешние + иÑточники

+
+
+
+
+ +

Подготовка
+ иллюÑтрации,
+ инфографики, видео +

+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/frontend/views/site/services/context.php b/frontend/views/site/services/context.php new file mode 100644 index 0000000..6418474 --- /dev/null +++ b/frontend/views/site/services/context.php @@ -0,0 +1,386 @@ +title = 'РаÑкрутка Ñайта Киев | SEO продвижение интернет-магазина в поиÑковых ÑиÑтемах (Google, ЯндекÑ) Ñео Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐšÐ¸ÐµÐ², Харьков, ДнепропетровÑк, Украина'; +$this->params['breadcrumbs'][] = 'КонтекÑÑ‚Ð½Ð°Ñ Ñ€ÐµÐºÐ»Ð°Ð¼Ð°'; + +$this->registerCssFile('/css/service_context.css'); + +$this->registerJsFile('/js/services/context.js'); +?> + +
+
+ beginContent('@app/views/blocks/services.php', ['tab' => 1]); ?> + endContent(); ?> + +

Сбор данных


Ð´Ð»Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¸Ð²Ð½Ñ‹Ñ…


выводов

+
+

Онлайн-Ð±Ð¸Ð·Ð½ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть
прибыльным!

+ beginContent('@app/views/blocks/orders-audit.php'); ?> + endContent(); ?> +

Отправьте заÑвку и получите анализ
от от профеÑÑионалов

+
+
+ +
+
+
+
+

ROI,
вÑегда прибыльно

+
+
+
+

Индивидуальный
подход

+
+
+
+

Ñертифицированных
ÑпециалиÑтов +

+
+
+
+

Ð’Ñе виды
контекÑтной рекламы +

+
+
+
+
+
+
+
+ +

Зачем вам наÑтройка аналитики на Ñайте?

+
+
+
+

БыÑтрые продажи

+
+
+
+

УÑпешный Ñтарт бизнеÑа

+
+
+
+

Ð’Ñ‹Ñокий показатель
конверÑий

+
+
+
+

МаÑштабируемые
объемы трафика

+
+
+
+

Увеличение продаж
и прибыли

+
+
+
+ +
+
+
+

УзнаваемоÑть бренда +

+
+
+
+

РоÑÑ‚ поÑещаемоÑти
Ñайта

+
+
+
+

ÐвтоматичеÑкое
ведение кампаний

+
+
+
+

Работа под
контролем ROI

+
+
+
+

ÐаÑтройка поÑадочных
Ñтраниц на Ñайте

+
+
+
+ + +
+
+
+

БыÑтрые продажи
на новых рынках

+
+
+
+

Ðовые клиенты

+
+
+
+

ÐвтоматичеÑкое
ведение кампаний

+
+
+
+

ДиверÑификациÑ
риÑков

+
+
+
+

Стратегии продвижениÑ
в каждом регионе

+
+
+
+
+
+

КейÑ

+
+
semena.in.ua
+
+
+ +

разделов
в работе

+
+
+ +

различных
Ñтратегий
ремаркетинга +

+
+
+ +

показов рекламы
в меÑÑц +

+
+
+
+
+ +
+

Команда на проект

+
+
    +
  • +

    Ðккаунт-менеджер

    +
  • +
  • +

    Интернет-маркетолог

    +
  • +
  • +

    СпециалиÑÑ‚
    по контекÑтной
    рекламе +

    +
  • +
+
    +
  • +

    Дизайнер

    +
  • +
  • +

    Ðналитик

    +
  • +
+
+
+
+
+

5 причин работать Ñ Ð½Ð°Ð¼Ð¸

+
+
+
+

1

+

Ð’Ñе работы Ñ Ñ€ÐµÐºÐ»Ð°Ð¼Ð¾Ð¹, как в Adwords,
так и Директе, проводÑÑ‚ÑÑ
под контролем ROI. +

+
+
+

2

+

Пошагово запуÑкаем целый
ÐºÐ¾Ð¼Ð¿Ð»ÐµÐºÑ Ð¼ÐµÑ€Ð¾Ð¿Ñ€Ð¸Ñтий от наиболее
продающих запроÑов до запроÑов,
которые дают прибыль
при минимальных ценах. +

+
+ +
+

3

+

С вашим проектом работает команда
Ñертифицированных ÑпециалиÑтов
Google AdWords.

+
+
+

4

+

Мы Ñтроим ремаркетинг-Ñтратегию
на каждый проект. +

+
+
+

5

+

С нами Ð±Ð¸Ð·Ð½ÐµÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð°ÐµÑ‚ макÑимум
от контекÑтной рекламы. +

+
+
+

Реще мы поÑещаем Ñеминары, конференции, общаемÑÑ, Ñ ÐºÐ¾Ð»Ð»ÐµÐ³Ð°Ð¼Ð¸, обмениваемÑÑ Ð·Ð½Ð°Ð½Ð¸Ñми, читаем профеÑÑиональную литературу.,
ПоÑтому и информированы лучше, чем оÑтальные.

+ +
+ +
+
+
+
+

КонтекÑÑ‚Ð½Ð°Ñ Ñ€ÐµÐºÐ»Ð°Ð¼Ð° Google AdWords
или ЯндекÑ.Директ

+
+
+
    +
  • Ð’Ñ‹ уже обращалиÑÑŒ к Ñ€Ñду компаний, которые занимаютÑÑ ÐºÐ¾Ð½Ñ‚ÐµÐºÑтной рекламой, но так и не получили желаемую прибыль?
  • +
  • У Ð²Ð°Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¾Ð¹ опыт Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ€Ð°Ð¼Ð¸ и целые тома обещаний, которые так и не были выполнены?
  • +
  • Или вы никогда не заказывали контекÑтную рекламу: вÑегда боÑлиÑÑŒ, что она будет невыгодной, Ñ…Ð¾Ñ‚Ñ Ð²Ð°ÑˆÐ¸ конкуренты уже годами получают доход и новых клиентов?
  • +
+

Тогда вы пришли по адреÑу.

+
+
+
+

+ 1.Ð’Ñ‹Ñокие конверÑии - на Ñайт попадают только + потенциальные клиенты.
+ 2.ÐŸÐ¾Ð´Ñ€Ð¾Ð±Ð½Ð°Ñ ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð¾Ñ‚ + Senior-ÑпециалиÑта по контекÑтной рекламе на + каждый проект.
+ 3.Контроль ROI - производитÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкий + переÑчет цены на клик раз в 1-30 дней в + завиÑимоÑти от трафика
+ 4.Полное ÑемантичеÑкое Ñдро - 100% проработка + горÑчих, теплых и холодных ключевых запроÑов + поÑтапно.
+ 5.ÐаÑтройка аналитики - ÑвÑзываютÑÑ Ð²Ñе аккаунты, + наÑтраиваютÑÑ ÐºÐ¾Ð½Ð²ÐµÑ€Ñии.
+ 6. ЗапуÑк ремаркетинга - от обычной рекламы Ñайта + до маркетинговой Ñтратегии в переÑечении Ñ + оÑтальными маркетинговыми активноÑÑ‚Ñми.
+ 7.Ð“Ð¸Ð±ÐºÐ°Ñ Ð¾Ñ‚Ñ‡ÐµÑ‚Ð½Ð¾Ñть - помогаем вам определить + KPI, и Ñледим за ними. +

+
+
+

Рчто каÑаетÑÑ: “Где лучше контекÑÑ‚Ð½Ð°Ñ Ñ€ÐµÐºÐ»Ð°Ð¼Ð° в AdWords или Директ?†- То мы рекомендуем иÑпользовать вÑе иÑточники трафика, у которых ROI > 100%. СоответÑтвенно, мы работаем над получением результатов и Ñ Google и ЯндекÑ. +

+
+
+

Светлана БориÑюк
менеджер по контекÑтной рекламе

+
+
+
+
+
+
+

ÐÐ°Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽÑ‚
за результаты, а не краÑивые отчеты

+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+ +

Ð¡Ð¾Ð»Ð¾Ð¼Ñ–Ñ Ð¡Ð¸Ð²Ð¸Ðº
Маркетинг-менеджер
extremstyle.ua

+
+
+

+ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» Ñопровождает Ð½Ð°Ñ Ñ Ñамого начала деÑтельноÑти в Ñети интернет. Ð Ñто уже более деÑÑти лет. ДолгоÑрочноÑть ÑотрудничеÑтва ÑвлÑетÑÑ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ показателем его уÑпешноÑти и Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° пути Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‰Ð¸Ñ… задач и целей. ЯвлÑÑÑÑŒ Ñоздателем наших Ñайтов, ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» обеÑпечивает не только их беÑперебойное техничеÑкое обÑлуживание и лидирующие позиции, но и полное ÑоответÑтвие новейшим тенденциÑм в интернет-технологиÑÑ…. ÐарÑду Ñ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ наших текущих задач, ÑпециалиÑты «ArtWeb» поÑтоÑнно предлагают немного больше, чем то, Ñ Ñ‡ÐµÐ¼ мы обратилиÑÑŒ, то еÑть решение задач более выÑокого уровнÑ. Внедрение, казалоÑÑŒ бы, фантаÑтичеÑких замыÑлов в развитие Ñайта, иногда опережает даже Ñамое Ñмелое планирование. + +

Важным аÑпектом нашего ÑотрудничеÑтва Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть целенаправленного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкой базой и Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐµÐµ не только количеÑтвенных, но и качеÑтвенных показателей, что непоÑредÑтвенно влиÑет на роÑÑ‚ прибыли нашей компании. ОтветÑтвенноÑть, гибкоÑть, умение работать на результат, креативноÑть мышлениÑ, оперативное реагирование на вÑе наши запроÑÑ‹, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¾ÑведомленноÑть обо вÑем проиÑходÑщем на рынке новейших интернет-технологий и отчаÑти их авторÑÐºÐ°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° – отличительные характериÑтики нашего надежного партнера – компании «ArtWeb». + + Ðа протÑжении вÑего периода ÑотрудничеÑтва у Ð½Ð°Ñ Ð½Ðµ было повода уÑомнитьÑÑ Ð² том, что в «ArtWeb» работают лучшие web-ÑпециалиÑты. СотрудничеÑтво Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑоÑтавлÑющей лидерÑтва в Ñегменте нашей деÑтельноÑти. +

+
+
+
+
+
+ +

Сергей Левицкий
ПреÑÑ-Ñекретарь
ukravtodor.gov.ua

+
+
+

+ Укравтодор Ñотрудничает Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» уже около года, в течение которого было реализовано неÑколько Ñложнейших веб-проектов - в кратчайший Ñрок Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ веб-Ñайта ГоÑагентÑва автомобильных дорог Украины, а также Ñ€Ñд интерактивных веб-приложений, информирующих о ÑоÑтоÑнии проезда и качеÑтве дорожного покрытиÑ. + +

С Ñамого начала ÑовмеÑтной работы ÑпециалиÑты компании продемонÑтрировали Ñвой выÑокий профеÑÑионализм, гибкоÑть, и оперативноÑть в решении вÑех возникающих вопроÑов, что позволило модернизировать официальное интернет-предÑтавительÑтво Укравтодора за рекордно короткий Ñрок - 3 меÑÑца. Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº предыдущую верÑию веб-Ñайта, уÑтаревшую и не функциональную, Ñ€Ñд других компаний-разработчиков пыталиÑÑŒ уÑовершенÑтвовать на протÑжении 9 лет. + +

Этот уÑпешный опыт продемонÑтрировал ÑффективноÑть ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» и потому вÑе поÑледующие интернет- проекты Укравтодора были переданы в разработку именно ей. + +

СпаÑибо руководÑтву и коллективу компании за понимание и поддержку в решении Ñложных и, как правило, чрезвычайно оперативных задач. + +

ПреÑÑ-Ñлужба Укравтодора + +

+
+
+
+
+
+ +

Ðндрей Богатырь
ИÑполнительный менеджер проекта
censor.net.ua

+
+
+

+ Мы обратилиÑÑŒ к ArtWeb Ñ Ñ†ÐµÐ»ÑŒÑŽ улучшить качеÑтво индекÑации Ñайта поиÑковыми ÑиÑтемами и увеличить трафик от ключевых поиÑковых операторов. Ð”Ð»Ñ Ñтого «ArtWeb» нужно было провеÑти анализ наших недоработок по оптимизации и предоÑтавить план уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. Главной целью было добитьÑÑ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‚Ð¾ÐºÐ° трафика из поиÑковых ÑиÑтем до ÑƒÑ€Ð¾Ð²Ð½Ñ Ð±Ð¾Ð»ÐµÐµ 50 тыÑ. переходов в Ñутки, в итоге через год поÑле Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ кумулÑтивный Ñффект дал приток трафика более 200 тыÑÑч переходов в Ñутки. + +

Благодарим «ArtWeb» за Ñлаженную и прозрачную ÑиÑтему по взаимодейÑтвию в процеÑÑе работы. Результат ÑотрудничеÑтва Ñ Â«ArtWeb» полноÑтью оправдал ожиданиÑ. Рекомендую вÑем Ñту компанию как профеÑÑионалов в облаÑти Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. + +

+
+
+
+
+ +
+
+
+
+

Как мы работаем

+
+
+
+ +

Ðнализ тематики
и конкурентов

+
+
+ + +

Сбор
ÑемантичеÑкого
Ñдра

+ +
+
+ + +

ÐаÑтройка
аналитики

+ +
+
+ + +

ЗапуÑк
поиÑковой
контекÑтной
рекламы

+ +
+
+
+ +

ЗапуÑк
ремаркетинга

+
+
+ + +

ЗапуÑк КМС
и рекламы
на тематичеÑких
площадках

+ +
+
+ +

Работа Ñ Ð¾Ð±ÑŠÑвлениÑми,
ключевыми Ñловами
и ценами

+ + +
+
+
+ +

ОтÑлеживаем
KPI

+
+
+
+
+
+ \ No newline at end of file diff --git a/frontend/views/site/services/cpa.php b/frontend/views/site/services/cpa.php new file mode 100644 index 0000000..9f1649e --- /dev/null +++ b/frontend/views/site/services/cpa.php @@ -0,0 +1,417 @@ +title = 'РаÑкрутка Ñайта Киев | SEO продвижение интернет-магазина в поиÑковых ÑиÑтемах (Google, ЯндекÑ) Ñео Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐšÐ¸ÐµÐ², Харьков, ДнепропетровÑк, Украина'; +$this->params['breadcrumbs'][] = 'CPA'; + +$this->registerCssFile('/css/service_cpa.css'); + +$this->registerJsFile('/js/services/cpa.js'); +?> + +
+
+ beginContent('@app/views/blocks/services.php', ['tab' => 1]); ?> + endContent(); ?> + +

Ð”Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ напрÑмую


Ñ Ð²ÐµÐ±-маÑтерами

+
+

Онлайн-Ð±Ð¸Ð·Ð½ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть
прибыльным!

+ beginContent('@app/views/blocks/orders-audit.php'); ?> + endContent(); ?> +

Отправьте заÑвку и получите анализ
от от профеÑÑионалов

+
+
+ +
+
+
+
+

ROI,
+ вÑегда прибыльно + +

+ +
+
+
+

индивидуальный
+ подход +

+
+
+
+

ОÑновные
+ CPA-биржи +

+
+
+
+

ОпытнаÑ
команда +

+
+
+
+
+
+
+
+ +

Зачем вам CPA-реклама?

+
+
+
+

ПрÑмое взаимодейÑтвие
+ Ñ Ð²ÐµÐ±Ð¼Ð°Ñтерами +

+
+
+
+

Хороший Ñтарт
+ бизнеÑа

+
+
+
+

Ð’Ñ‹ не завиÑите
+ от Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ ÐºÐ¾Ð½Ð²ÐµÑ€Ñий +

+
+
+
+

Платите, только
+ за Ñовершенную покупку

+
+
+
+

Увеличение продаж
+ и прибыли +

+
+
+

Ðовые
+ клиентÑкие контакты +

+
+
+
+
+
+
+

УзнаваемоÑть
+ бренда +

+
+
+
+

РоÑÑ‚ поÑещаемоÑти
+ Ñайта +

+
+
+
+

Ðовые клиентÑкие
+ контакты +

+
+
+
+

Работа Ñ
+ вебмаÑтерами +

+
+
+
+

Ðе важен показатель
+ конверÑий +

+
+
+
+
+
+

+ ОÑновные биржи, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ мы работаем +

+
+ SalesDoubler + PrimeLead + admitad +
+
+
+

Команда на проект

+
+
    +
  • +

    Ðккаунт-менеджер

    +
  • +
  • +

    Интернет-маркетолог

    +
  • +
  • +

    СпециалиÑÑ‚ по
    + CPA-рекламе

    +
  • +
+
    +
  • +

    Дизайнер

    +
  • +
  • +

    Ðналитик

    +
  • +
+
+
+
+
+

5 причин заказать у Ð½Ð°Ñ CPA-рекламу

+
+
+
+

1

+

Мы умеем работать Ñ CPA-биржами + от наÑтройки кодов на Ñайте + до взаимодейÑÑ‚Ð²Ð¸Ñ + Ñ Ð²ÐµÐ±Ð¼Ð°Ñтерами. + +

+
+
+

2

+

Поможем проÑчитать процент, + который будет макÑимально + Ñффективным Ð´Ð»Ñ Ð²Ð°Ñ. + +

+
+ +
+

3

+

Баннеры идеально подходÑÑ‚ д + Ð»Ñ Ð²ÐµÐ±-маÑтеров + (кликабельны и продающие). + +

+
+
+

4

+

Мы знаем, как привлекать + новых партнеров. + +

+
+
+

5

+

ÐаÑтроим внутреннюю ÑиÑтему + от “Приведи друга†+ до популÑрного ÑпоÑоба + монетизации в вашей тематике. + +

+
+
+

Реще мы поÑещаем Ñеминары, конференции, общаемÑÑ, Ñ ÐºÐ¾Ð»Ð»ÐµÐ³Ð°Ð¼Ð¸, обмениваемÑÑ Ð·Ð½Ð°Ð½Ð¸Ñми, читаем профеÑÑиональную литературу.,
ПоÑтому и информированы лучше, чем оÑтальные.

+ +
+ +
+
+
+
+

Биржи CPA-рекламы: чем мы можем помочь

+
+
+

Это новое веÑние, которое приноÑит прибыль вашим конкурентам. Ð’Ñ‹ же не хотите терÑть потенциальных покупателей? Рглавное, CPA-реклама на 100% прибыльна. + ОÑновные биржи, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ мы работаем: SalesDoubler, PrimeLead, Admitad. +

+
+
+
+

+ В чем же фишка?

+ + 1. Мы знаем, что популÑрно - менеджер делает + предложение, которое дает макÑимальный отклик + веб-маÑтеров.
+ 2. Кликабельные баннеры - наш дизайнер знает, + какие объÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð´Ð°ÑŽÑ‚.
+ 3. Создание внутренней партнерÑкой программы + - работа по CPA без поÑредника.
+ 4. Ð’Ñе топовые CPA-биржи - мы налаживаем + работу Ñ Ð±Ð¸Ñ€Ð¶Ð°Ð¼Ð¸ и отÑлеживаем конверÑии.
+ 5. ÐаÑтройка аналитики - подключаем данные + трафика в Google.Analytics.
+ 6. Ð’Ñе виды прибыльного трафика - мы не + ограничиваемÑÑ Ð¸Ñключительно рекламой.
+ 7. Ð“Ð¸Ð±ÐºÐ°Ñ Ð¾Ñ‚Ñ‡ÐµÑ‚Ð½Ð¾Ñть - отдельные отчеты по каждой + бирже. + +

+
+
+

CPA - Ñто Ð»ÑƒÑ‡ÑˆÐ°Ñ ÑиÑтема + Ð´Ð»Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†ÐµÐ² бизнеÑа. + Ð’Ñ‹ оплачиваете только + результат (продажу) + и платите процент, который + вам выгоден. +

+
+
+

Светлана БориÑюк
менеджер по контекÑтной рекламе,
CPC и CPA

+
+
+
+
+
+

ÐÐ°Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽÑ‚
за результаты, а не краÑивые отчеты

+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+ +

Ð¡Ð¾Ð»Ð¾Ð¼Ñ–Ñ Ð¡Ð¸Ð²Ð¸Ðº
Маркетинг-менеджер
extremstyle.ua

+
+
+

+ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» Ñопровождает Ð½Ð°Ñ Ñ Ñамого начала деÑтельноÑти в Ñети интернет. Ð Ñто уже более деÑÑти лет. ДолгоÑрочноÑть ÑотрудничеÑтва ÑвлÑетÑÑ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ показателем его уÑпешноÑти и Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° пути Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‰Ð¸Ñ… задач и целей. ЯвлÑÑÑÑŒ Ñоздателем наших Ñайтов, ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» обеÑпечивает не только их беÑперебойное техничеÑкое обÑлуживание и лидирующие позиции, но и полное ÑоответÑтвие новейшим тенденциÑм в интернет-технологиÑÑ…. ÐарÑду Ñ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ наших текущих задач, ÑпециалиÑты «ArtWeb» поÑтоÑнно предлагают немного больше, чем то, Ñ Ñ‡ÐµÐ¼ мы обратилиÑÑŒ, то еÑть решение задач более выÑокого уровнÑ. Внедрение, казалоÑÑŒ бы, фантаÑтичеÑких замыÑлов в развитие Ñайта, иногда опережает даже Ñамое Ñмелое планирование. + +

Важным аÑпектом нашего ÑотрудничеÑтва Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть целенаправленного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкой базой и Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐµÐµ не только количеÑтвенных, но и качеÑтвенных показателей, что непоÑредÑтвенно влиÑет на роÑÑ‚ прибыли нашей компании. ОтветÑтвенноÑть, гибкоÑть, умение работать на результат, креативноÑть мышлениÑ, оперативное реагирование на вÑе наши запроÑÑ‹, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¾ÑведомленноÑть обо вÑем проиÑходÑщем на рынке новейших интернет-технологий и отчаÑти их авторÑÐºÐ°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° – отличительные характериÑтики нашего надежного партнера – компании «ArtWeb». + + Ðа протÑжении вÑего периода ÑотрудничеÑтва у Ð½Ð°Ñ Ð½Ðµ было повода уÑомнитьÑÑ Ð² том, что в «ArtWeb» работают лучшие web-ÑпециалиÑты. СотрудничеÑтво Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑоÑтавлÑющей лидерÑтва в Ñегменте нашей деÑтельноÑти. +

+
+
+
+
+
+ +

Сергей Левицкий
ПреÑÑ-Ñекретарь
ukravtodor.gov.ua

+
+
+

+ Укравтодор Ñотрудничает Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» уже около года, в течение которого было реализовано неÑколько Ñложнейших веб-проектов - в кратчайший Ñрок Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ веб-Ñайта ГоÑагентÑва автомобильных дорог Украины, а также Ñ€Ñд интерактивных веб-приложений, информирующих о ÑоÑтоÑнии проезда и качеÑтве дорожного покрытиÑ. + +

С Ñамого начала ÑовмеÑтной работы ÑпециалиÑты компании продемонÑтрировали Ñвой выÑокий профеÑÑионализм, гибкоÑть, и оперативноÑть в решении вÑех возникающих вопроÑов, что позволило модернизировать официальное интернет-предÑтавительÑтво Укравтодора за рекордно короткий Ñрок - 3 меÑÑца. Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº предыдущую верÑию веб-Ñайта, уÑтаревшую и не функциональную, Ñ€Ñд других компаний-разработчиков пыталиÑÑŒ уÑовершенÑтвовать на протÑжении 9 лет. + +

Этот уÑпешный опыт продемонÑтрировал ÑффективноÑть ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» и потому вÑе поÑледующие интернет- проекты Укравтодора были переданы в разработку именно ей. + +

СпаÑибо руководÑтву и коллективу компании за понимание и поддержку в решении Ñложных и, как правило, чрезвычайно оперативных задач. + +

ПреÑÑ-Ñлужба Укравтодора + +

+
+
+
+
+
+ +

Ðндрей Богатырь
ИÑполнительный менеджер проекта
censor.net.ua

+
+
+

+ Мы обратилиÑÑŒ к ArtWeb Ñ Ñ†ÐµÐ»ÑŒÑŽ улучшить качеÑтво индекÑации Ñайта поиÑковыми ÑиÑтемами и увеличить трафик от ключевых поиÑковых операторов. Ð”Ð»Ñ Ñтого «ArtWeb» нужно было провеÑти анализ наших недоработок по оптимизации и предоÑтавить план уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. Главной целью было добитьÑÑ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‚Ð¾ÐºÐ° трафика из поиÑковых ÑиÑтем до ÑƒÑ€Ð¾Ð²Ð½Ñ Ð±Ð¾Ð»ÐµÐµ 50 тыÑ. переходов в Ñутки, в итоге через год поÑле Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ кумулÑтивный Ñффект дал приток трафика более 200 тыÑÑч переходов в Ñутки. + +

Благодарим «ArtWeb» за Ñлаженную и прозрачную ÑиÑтему по взаимодейÑтвию в процеÑÑе работы. Результат ÑотрудничеÑтва Ñ Â«ArtWeb» полноÑтью оправдал ожиданиÑ. Рекомендую вÑем Ñту компанию как профеÑÑионалов в облаÑти Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. + +

+
+
+
+
+ +
+
+
+
+

Как мы работаем

+
+
+
+
+ +

Ðнализ
+ тематики
+ у конкурентов

+
+
+
+
+ +

Добавление Ñайта
+ в CPA-биржи + +

+
+
+
+
+ +

ÐаÑтройка
+ аналитики +

+
+
+
+
+ +

Создание Ñтратегии
+ привлечениÑ
+ веб-маÑтеров + +

+
+
+ +
+
+
+ +

Работа Ñ
объÑвлениÑми,
+ процентами,
партнерами

+
+
+
+
+ +

ВзаимодейÑтвие
+ Ñ Ð²ÐµÐ±-маÑтерами
+ и биржей +

+
+
+
+
+ +

Создание
дополнительных
материалов +

+
+
+
+
+
+ +

ОтÑлеживание
+ KPI

+
+
+
+
+
+
+ diff --git a/frontend/views/site/services/cpc.php b/frontend/views/site/services/cpc.php new file mode 100644 index 0000000..6e89a2d --- /dev/null +++ b/frontend/views/site/services/cpc.php @@ -0,0 +1,375 @@ +title = 'РаÑкрутка Ñайта Киев | SEO продвижение интернет-магазина в поиÑковых ÑиÑтемах (Google, ЯндекÑ) Ñео Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐšÐ¸ÐµÐ², Харьков, ДнепропетровÑк, Украина'; +$this->params['breadcrumbs'][] = 'CPC'; + +$this->registerCssFile('/css/service_cpc.css'); + +$this->registerJsFile('/js/services/cpc.js'); +?> + +
+
+ beginContent('@app/views/blocks/services.php', ['tab' => 1]); ?> + endContent(); ?> + +

Ð’Ñе прибыльные


иÑточники трафика

+
+

Онлайн-Ð±Ð¸Ð·Ð½ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть
прибыльным!

+ beginContent('@app/views/blocks/orders-audit.php'); ?> + endContent(); ?> +

Отправьте заÑвку и получите анализ
от профеÑÑионалов

+
+
+
+
+
+ +
+
+
+
+

ROI,
вÑегда прибыльно

+
+
+
+

Индивидуальный
подход

+
+
+
+

Дополнительных
иÑточников

+
+
+
+

ПрайÑ-агрегаторы,
маркетплейÑÑ‹,
тизерные Ñети

+
+
+
+
+
+
+
+ +

Зачем вам наÑтройка аналитики на Ñайте?

+
+
+
+

Ðовые иÑточники
клиентов

+
+
+
+

РоÑÑ‚ узнаваемоÑти
бренда

+
+
+
+

РоÑÑ‚ поÑещаемоÑти
Ñайта

+
+
+
+

Работа под контролем
ROI

+
+
+
+

Дополнительный
ремаркетинг

+
+
+
+ +
+
+
+

Работа под контролем
ROI

+
+
+
+

Большие объемы
трафика

+
+
+
+

Размещение
на крупных порталах

+
+
+
+

Проработка
тематичеÑких доноров

+
+
+
+

ÐвтоматизациÑ
процеÑÑов

+
+
+
+ +
+
+

КейÑ

+
+
semena.in.ua
+
+
+ +

конверÑии

+
+
+ +

Прибыльных
иÑточников
трафика

+
+
+
+ +

ТОП позиций в
прайÑ-
агрегаторах

+
+
+
+
+
+ +
+

Команда на проект

+
+
    +
  • +

    Ðккаунт-менеджер

    +
  • +
  • +

    Интернет-маркетолог

    +
  • +
  • +

    СпециалиÑÑ‚ по
    покликовой рекламе

    +
  • +
+
    +
  • +

    Дизайнер

    +
  • +
  • +

    Ðналитик

    +
  • +
+
+
+
+
+

5 причин заказать у наÑ

+ покликовую (CPC) рекламу +

+
+
+
+

1

+

Ваш Ñайт получает
+ макÑимальный охват в интернете. + +

+
+
+

2

+

Вы получаете новых клиентов.
+ И главное:
+ получаете их Ñ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼
+ ROI. + +

+
+ +
+

3

+

Ðовые иÑточники ремаркетинга.
+ Ваши клиенты точно не забудут о ваÑ.

+
+
+

4

+

Мы прорабатываем вÑе
+ возможные иÑточники,
+ в том чиÑле информационные
+ Ñайты в тематике. + +

+
+
+

5

+

С нами вы уверены,
+ что получаете прибыль.
+ +

+
+
+

Реще мы поÑещаем Ñеминары, конференции, общаемÑÑ, Ñ ÐºÐ¾Ð»Ð»ÐµÐ³Ð°Ð¼Ð¸, обмениваемÑÑ Ð·Ð½Ð°Ð½Ð¸Ñми, читаем профеÑÑиональную литературу.,
ПоÑтому и информированы лучше, чем оÑтальные.

+ +
+ +
+
+
+
+

ÐŸÐ¾ÐºÐ»Ð¸ÐºÐ¾Ð²Ð°Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ð° рекламы -
лидогенератор нового Ð¿Ð¾ÐºÐ¾Ð»ÐµÐ½Ð¸Ñ +

+
+
+

Сколько иÑточников трафика вы знаете? Как показывает практика, Ñто 3-6 наиболее популÑрных иÑточника. Ðо в онлайне Ñтот ÑпиÑок намного больше. Это прайÑ-агрегаторы (Yandex.Market, Hotline, Price и др.), маркетплейÑÑ‹ (Prom, Tiu, All.biz, Wikimart и др.), тизерные Ñети (MarketGid, TrafMag, RedTram и др.), реклама у прÑмых рекламодателей (Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑким подÑчетом). Ð’Ñ‹ вероÑтно видели ваших конкурентов на других Ñайтах и думали, а как же они Ñюда попали, а Ñамое главное - выгодно ли тут находитьÑÑ.

+

Тогда вы пришли по адреÑу.

+
+
+
+

В чем же фишка?

+

+ 1. Мы отлично Ñчитаем - в Ñтой работе нужно + поÑтоÑнно проÑчитывать затраты и прибыли.
+ 2. Ðнализ конкурентов - перед запуÑком работ, + мы находим вÑе иÑточники, которые приноÑÑÑ‚ + прибыль вашим конкурентам.
+ 3. Контроль ROI - производитÑÑ Ð¿ÐµÑ€ÐµÑчет цены на + клик раз в 1-30 дней в завиÑимоÑти от трафика.
+ 4. Полный подбор доноров - 100% проработка + ключевых запроÑов на тему видимоÑти + возможных доноров.
+ 5. ÐаÑтройка аналитики - подключение конверÑий + и затрат в один отчет.
+ 6. Ремаркетинг - Ñ€Ð¾Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑких товаров и + объÑвлений там, где Ñто возможно.
+ 7. Ð“Ð¸Ð±ÐºÐ°Ñ Ð¾Ñ‚Ñ‡ÐµÑ‚Ð½Ð¾Ñть - по каждому ÑервиÑу + готовитÑÑ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ñ‹Ð¹ отчет. +

+
+
+

Ðаша ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚
+ обеÑпечить вам 100%
+ лидогенерацию из вÑех
+ возможных иÑточников. +

+
+
+

Ð®Ð»Ð¸Ñ Ð¡Ð¾Ñ‚Ð½Ð¸ÐºÐ¾Ð²Ð°
руководитель отдела лоÑльноÑти

+
+
+
+
+
+
+

ÐÐ°Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽÑ‚
за результаты, а не краÑивые отчеты

+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+ +

Ð¡Ð¾Ð»Ð¾Ð¼Ñ–Ñ Ð¡Ð¸Ð²Ð¸Ðº
Маркетинг-менеджер
extremstyle.ua

+
+
+

+ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» Ñопровождает Ð½Ð°Ñ Ñ Ñамого начала деÑтельноÑти в Ñети интернет. Ð Ñто уже более деÑÑти лет. ДолгоÑрочноÑть ÑотрудничеÑтва ÑвлÑетÑÑ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ показателем его уÑпешноÑти и Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° пути Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‰Ð¸Ñ… задач и целей. ЯвлÑÑÑÑŒ Ñоздателем наших Ñайтов, ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» обеÑпечивает не только их беÑперебойное техничеÑкое обÑлуживание и лидирующие позиции, но и полное ÑоответÑтвие новейшим тенденциÑм в интернет-технологиÑÑ…. ÐарÑду Ñ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ наших текущих задач, ÑпециалиÑты «ArtWeb» поÑтоÑнно предлагают немного больше, чем то, Ñ Ñ‡ÐµÐ¼ мы обратилиÑÑŒ, то еÑть решение задач более выÑокого уровнÑ. Внедрение, казалоÑÑŒ бы, фантаÑтичеÑких замыÑлов в развитие Ñайта, иногда опережает даже Ñамое Ñмелое планирование. + +

Важным аÑпектом нашего ÑотрудничеÑтва Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть целенаправленного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкой базой и Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐµÐµ не только количеÑтвенных, но и качеÑтвенных показателей, что непоÑредÑтвенно влиÑет на роÑÑ‚ прибыли нашей компании. ОтветÑтвенноÑть, гибкоÑть, умение работать на результат, креативноÑть мышлениÑ, оперативное реагирование на вÑе наши запроÑÑ‹, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¾ÑведомленноÑть обо вÑем проиÑходÑщем на рынке новейших интернет-технологий и отчаÑти их авторÑÐºÐ°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° – отличительные характериÑтики нашего надежного партнера – компании «ArtWeb». + + Ðа протÑжении вÑего периода ÑотрудничеÑтва у Ð½Ð°Ñ Ð½Ðµ было повода уÑомнитьÑÑ Ð² том, что в «ArtWeb» работают лучшие web-ÑпециалиÑты. СотрудничеÑтво Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑоÑтавлÑющей лидерÑтва в Ñегменте нашей деÑтельноÑти. +

+
+
+
+
+
+ +

Сергей Левицкий
ПреÑÑ-Ñекретарь
ukravtodor.gov.ua

+
+
+

+ Укравтодор Ñотрудничает Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» уже около года, в течение которого было реализовано неÑколько Ñложнейших веб-проектов - в кратчайший Ñрок Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ веб-Ñайта ГоÑагентÑва автомобильных дорог Украины, а также Ñ€Ñд интерактивных веб-приложений, информирующих о ÑоÑтоÑнии проезда и качеÑтве дорожного покрытиÑ. + +

С Ñамого начала ÑовмеÑтной работы ÑпециалиÑты компании продемонÑтрировали Ñвой выÑокий профеÑÑионализм, гибкоÑть, и оперативноÑть в решении вÑех возникающих вопроÑов, что позволило модернизировать официальное интернет-предÑтавительÑтво Укравтодора за рекордно короткий Ñрок - 3 меÑÑца. Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº предыдущую верÑию веб-Ñайта, уÑтаревшую и не функциональную, Ñ€Ñд других компаний-разработчиков пыталиÑÑŒ уÑовершенÑтвовать на протÑжении 9 лет. + +

Этот уÑпешный опыт продемонÑтрировал ÑффективноÑть ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» и потому вÑе поÑледующие интернет- проекты Укравтодора были переданы в разработку именно ей. + +

СпаÑибо руководÑтву и коллективу компании за понимание и поддержку в решении Ñложных и, как правило, чрезвычайно оперативных задач. + +

ПреÑÑ-Ñлужба Укравтодора + +

+
+
+
+
+
+ +

Ðндрей Богатырь
ИÑполнительный менеджер проекта
censor.net.ua

+
+
+

+ Мы обратилиÑÑŒ к ArtWeb Ñ Ñ†ÐµÐ»ÑŒÑŽ улучшить качеÑтво индекÑации Ñайта поиÑковыми ÑиÑтемами и увеличить трафик от ключевых поиÑковых операторов. Ð”Ð»Ñ Ñтого «ArtWeb» нужно было провеÑти анализ наших недоработок по оптимизации и предоÑтавить план уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. Главной целью было добитьÑÑ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‚Ð¾ÐºÐ° трафика из поиÑковых ÑиÑтем до ÑƒÑ€Ð¾Ð²Ð½Ñ Ð±Ð¾Ð»ÐµÐµ 50 тыÑ. переходов в Ñутки, в итоге через год поÑле Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ кумулÑтивный Ñффект дал приток трафика более 200 тыÑÑч переходов в Ñутки. + +

Благодарим «ArtWeb» за Ñлаженную и прозрачную ÑиÑтему по взаимодейÑтвию в процеÑÑе работы. Результат ÑотрудничеÑтва Ñ Â«ArtWeb» полноÑтью оправдал ожиданиÑ. Рекомендую вÑем Ñту компанию как профеÑÑионалов в облаÑти Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. + +

+
+
+
+
+ +
+
+
+
+

Как мы работаем

+
+
+
+ +

Ðнализ тематики
и конкурентов

+
+
+ + +

ПоиÑк
иÑточников
Ñ Ð²Ñ‹Ñокой
видимоÑтью +

+
+
+ + +

ÐаÑтройка
аналитики

+
+
+ + +

ЗапуÑк
прайÑ-
агрегаторов +

+ +
+
+
+ +

ЗапуÑк
плейÑмаркетов +

+
+
+ + +

ЗапуÑк
тизерных Ñетей +

+
+
+ +

Работа Ñ Ð¾Ð±ÑŠÑвлениÑми,
ключевыми Ñловами и
ценами +

+
+
+
+ + +

ОтÑлеживаем
KPI

+ +
+
+
+
+
diff --git a/frontend/views/site/services/design.php b/frontend/views/site/services/design.php new file mode 100644 index 0000000..6162d11 --- /dev/null +++ b/frontend/views/site/services/design.php @@ -0,0 +1,395 @@ +title = 'РаÑкрутка Ñайта Киев | SEO продвижение интернет-магазина в поиÑковых ÑиÑтемах (Google, ЯндекÑ) Ñео Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐšÐ¸ÐµÐ², Харьков, ДнепропетровÑк, Украина'; +$this->params['breadcrumbs'][] = 'Дизайн'; + +$this->registerCssFile('/css/service_design.css'); + +$this->registerJsFile('/js/services/design.js'); +?> +
+
+ beginContent('@app/views/blocks/services.php', ['tab' => 3]); ?> + endContent(); ?> + +

Трендово, юзабельно,


результативно

+
+

Онлайн-Ð±Ð¸Ð·Ð½ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть
прибыльным!

+ beginContent('@app/views/blocks/orders-audit.php'); ?> + endContent(); ?> +

Отправьте заÑвку и получите анализ
от от профеÑÑионалов

+
+
+ +
+
+
+
+

Макетов
Ñайтов +

+ +
+
+
+

индивидуальный
подход +

+
+
+
+

Ð’Ñ‹Ñокие
конверÑии +

+
+
+
+

От баннера
+ до портала + +

+
+
+
+
+
+
+
+ +

Зачем вам крутой дизайн Ñайта?

+
+
+
+

Ð’Ñ‹Ñокие конверÑии

+
+
+
+

ЛоÑльноÑть
поÑетителей

+
+
+
+

УдобÑтво
Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð¾Ð²

+
+
+
+

Брендинг

+
+
+
+

Ð’Ñ‹Ñокий ÑтатуÑ

+
+
+
+

ЦелоÑтноÑть дизайна
от SMM до email

+
+
+
+

Кликабельные баннеры

+
+
+
+
+
+
+

Создание бренд-бука

+
+
+
+

Разработка логотипа

+
+
+
+

ÐŸÑ€Ð¾Ð´Ð°ÑŽÑ‰Ð°Ñ Ñ€ÐµÐºÐ»Ð°Ð¼Ð°

+
+
+
+

Оформление товаров

+
+
+
+

+
+
+
+

+
+
+
+
+
+

КейÑ

+
+
semena.in.ua
+
+
+ +

Создание Ñайта

+
+
+ +

Видеоканал
компании

+
+
+ +

Email-маркетинг

+
+
+
+
+
+

Команда на проект

+
+
    +
  • +

    Проджект-менеджер

    +
  • +
  • +

    Интернет-маркетолог

    +
  • +
  • +

    ЮзабилиÑÑ‚

    +
  • +
+
    +
  • +

    Дизайнер

    +
  • +
  • +

    ПрограммиÑÑ‚

    +
  • +
+
+
+
+
+

5 причин заказать у Ð½Ð°Ñ Ñ€ÐµÐ´Ð¸Ð·Ð°Ð¹Ð½ Ñайта

+
+
+
+

1

+

ДоÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ñ†ÐµÐ½Ð° дизайна Ñайта.

+
+
+

2

+

Ð’Ñ‹Ñокие конверÑии готового продукта.

+
+ +
+

3

+

СоÑтавление Ñтруктуры Ñайта + на первом Ñтапе - Ð´ÐµÑ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ð¿Ñ€Ð¾Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° + задач по дизайну.

+
+
+

4

+

Индивидуальные Ñ€ÐµÑˆÐµÐ½Ð¸Ñ - делаем то, + что нужно именно вашему проекту.

+
+
+

5

+

Полный ÐºÐ¾Ð¼Ð¿Ð»ÐµÐºÑ Ñ€Ð°Ð±Ð¾Ñ‚ + от ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñайта, до вывода его + в ТОП-1 тематики. +

+
+
+

Реще мы поÑещаем Ñеминары, конференции, общаемÑÑ, Ñ ÐºÐ¾Ð»Ð»ÐµÐ³Ð°Ð¼Ð¸, обмениваемÑÑ Ð·Ð½Ð°Ð½Ð¸Ñми, читаем профеÑÑиональную литературу.,
ПоÑтому и информированы лучше, чем оÑтальные.

+ +
+ +
+
+
+
+

Дизайн Ñайта Ð´Ð»Ñ Ð»Ð¸Ð´ÐµÑ€Ð¾Ð² +

+
+
+
    +
  • Вам нужно качеÑтвенное меÑто продаж, которое будет + решать задачи бизнеÑа, но кроме Ñтого вы хотите, чтобы + оно было трендовым, запоминающимÑÑ Ð¸ ÑтатуÑным?
  • +
  • Ð’Ñ‹ хотите, чтобы любой ваш конкурент и клиент, только + взглÑнув на Ñайт, Ñразу понÑл, что вы лидер тематики?
  • +
  • Вам нужна целоÑтноÑть и запоминаемоÑть бренда на вÑех + иÑточниках информации от рекламы до пиÑем?
  • +
+

Тогда вы пришли по адреÑу.

+
+
+
+

+ 1. Мы Ñтавим и решаем задачи - наши ÑпециалиÑты помогут выбрать ключевые показатели Ð´Ð»Ñ Ð´Ð¸Ð·Ð°Ð¹Ð½Ð°.
+ 2. Сделаем лидером тематики - у Ð½Ð°Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¾Ð¹ опыт разработки дизайнов Ð´Ð»Ñ Ð¢ÐžÐŸ-Ñайтов.
+ 3. Современный дизайн - мы в тренде.
+ 4. Ðнализ конкурентов - ваш Ñайт получет вÑе “вкуÑные†решениÑ, которые еÑть в тематике.
+ 5. КомплекÑный подход - делаем один Ñтиль Ð´Ð»Ñ Ð²Ñех продуктов от логотипа и бренд-бука до email-раÑÑылки и дизайн групп в Ñоциальных ÑетÑÑ….
+ 6. Юзабилити-Ñ€ÐµÑˆÐµÐ½Ð¸Ñ - Ñайт решает вÑе поÑтавленные задачи и при Ñтом удобный Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹.
+ 7. Индивидуальный подход - не иÑпользуем шаблонные дизайны. + +

+
+
+

Ðаши дизайны Ð´Ð»Ñ Ñайтов вÑегда
Ñделаны Ñ Ð»ÑŽÐ±Ð¾Ð²ÑŒÑŽ, мы умеем делать клаÑÑные проекты, которые любÑÑ‚ не только поиÑковые ÑиÑтемы, но и ваши клиенты. СреднÑÑ Ð³Ð»ÑƒÐ±Ð¸Ð½Ð° по вÑем коммерчеÑким проектам больше деÑÑти проÑмотров на поÑетителÑ, ÑреднÑÑ ÐºÐ¾Ð½Ð²ÐµÑ€ÑÐ¸Ñ Ð±Ð¾Ð»ÑŒÑˆÐµ 2,5%. Вам Ñтоит доверитьÑÑ Ð¿Ñ€Ð¾Ñ„ÐµÑÑионалам. + +

+
+
+

Ðндрей Белый
руководитель отдела разработки

+
+
+
+
+
+
+

ÐÐ°Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽÑ‚
за результаты, а не краÑивые отчеты

+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+ +

Ð¡Ð¾Ð»Ð¾Ð¼Ñ–Ñ Ð¡Ð¸Ð²Ð¸Ðº
Маркетинг-менеджер
extremstyle.ua

+
+
+

+ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» Ñопровождает Ð½Ð°Ñ Ñ Ñамого начала деÑтельноÑти в Ñети интернет. Ð Ñто уже более деÑÑти лет. ДолгоÑрочноÑть ÑотрудничеÑтва ÑвлÑетÑÑ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ показателем его уÑпешноÑти и Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° пути Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‰Ð¸Ñ… задач и целей. ЯвлÑÑÑÑŒ Ñоздателем наших Ñайтов, ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» обеÑпечивает не только их беÑперебойное техничеÑкое обÑлуживание и лидирующие позиции, но и полное ÑоответÑтвие новейшим тенденциÑм в интернет-технологиÑÑ…. ÐарÑду Ñ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ наших текущих задач, ÑпециалиÑты «ArtWeb» поÑтоÑнно предлагают немного больше, чем то, Ñ Ñ‡ÐµÐ¼ мы обратилиÑÑŒ, то еÑть решение задач более выÑокого уровнÑ. Внедрение, казалоÑÑŒ бы, фантаÑтичеÑких замыÑлов в развитие Ñайта, иногда опережает даже Ñамое Ñмелое планирование. + +

Важным аÑпектом нашего ÑотрудничеÑтва Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть целенаправленного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкой базой и Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐµÐµ не только количеÑтвенных, но и качеÑтвенных показателей, что непоÑредÑтвенно влиÑет на роÑÑ‚ прибыли нашей компании. ОтветÑтвенноÑть, гибкоÑть, умение работать на результат, креативноÑть мышлениÑ, оперативное реагирование на вÑе наши запроÑÑ‹, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¾ÑведомленноÑть обо вÑем проиÑходÑщем на рынке новейших интернет-технологий и отчаÑти их авторÑÐºÐ°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° – отличительные характериÑтики нашего надежного партнера – компании «ArtWeb». + + Ðа протÑжении вÑего периода ÑотрудничеÑтва у Ð½Ð°Ñ Ð½Ðµ было повода уÑомнитьÑÑ Ð² том, что в «ArtWeb» работают лучшие web-ÑпециалиÑты. СотрудничеÑтво Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑоÑтавлÑющей лидерÑтва в Ñегменте нашей деÑтельноÑти. +

+
+
+
+
+
+ +

Сергей Левицкий
ПреÑÑ-Ñекретарь
ukravtodor.gov.ua

+
+
+

+ Укравтодор Ñотрудничает Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» уже около года, в течение которого было реализовано неÑколько Ñложнейших веб-проектов - в кратчайший Ñрок Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ веб-Ñайта ГоÑагентÑва автомобильных дорог Украины, а также Ñ€Ñд интерактивных веб-приложений, информирующих о ÑоÑтоÑнии проезда и качеÑтве дорожного покрытиÑ. + +

С Ñамого начала ÑовмеÑтной работы ÑпециалиÑты компании продемонÑтрировали Ñвой выÑокий профеÑÑионализм, гибкоÑть, и оперативноÑть в решении вÑех возникающих вопроÑов, что позволило модернизировать официальное интернет-предÑтавительÑтво Укравтодора за рекордно короткий Ñрок - 3 меÑÑца. Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº предыдущую верÑию веб-Ñайта, уÑтаревшую и не функциональную, Ñ€Ñд других компаний-разработчиков пыталиÑÑŒ уÑовершенÑтвовать на протÑжении 9 лет. + +

Этот уÑпешный опыт продемонÑтрировал ÑффективноÑть ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» и потому вÑе поÑледующие интернет- проекты Укравтодора были переданы в разработку именно ей. + +

СпаÑибо руководÑтву и коллективу компании за понимание и поддержку в решении Ñложных и, как правило, чрезвычайно оперативных задач. + +

ПреÑÑ-Ñлужба Укравтодора + +

+
+
+
+
+
+ +

Ðндрей Богатырь
ИÑполнительный менеджер проекта
censor.net.ua

+
+
+

+ Мы обратилиÑÑŒ к ArtWeb Ñ Ñ†ÐµÐ»ÑŒÑŽ улучшить качеÑтво индекÑации Ñайта поиÑковыми ÑиÑтемами и увеличить трафик от ключевых поиÑковых операторов. Ð”Ð»Ñ Ñтого «ArtWeb» нужно было провеÑти анализ наших недоработок по оптимизации и предоÑтавить план уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. Главной целью было добитьÑÑ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‚Ð¾ÐºÐ° трафика из поиÑковых ÑиÑтем до ÑƒÑ€Ð¾Ð²Ð½Ñ Ð±Ð¾Ð»ÐµÐµ 50 тыÑ. переходов в Ñутки, в итоге через год поÑле Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ кумулÑтивный Ñффект дал приток трафика более 200 тыÑÑч переходов в Ñутки. + +

Благодарим «ArtWeb» за Ñлаженную и прозрачную ÑиÑтему по взаимодейÑтвию в процеÑÑе работы. Результат ÑотрудничеÑтва Ñ Â«ArtWeb» полноÑтью оправдал ожиданиÑ. Рекомендую вÑем Ñту компанию как профеÑÑионалов в облаÑти Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. + +

+
+
+
+
+ +
+
+
+
+

Как мы работаем

+
+
+
+
+ +

Ðнализ
+ тематики
+ у конкурентов

+
+
+
+
+ +

ÐапиÑание
+ бизнеÑ-целей +

+
+
+
+
+ +

Выбор
типичных
+ аудиторий +

+
+
+
+
+ +

ÐапиÑание целей
+ каждой из
+ аудиторий +

+
+
+
+
+ +

Передача
+ готового
+ продукта +

+
+
+
+
+ +

Создание
+ дизайна
+ Ñайта + +

+
+
+
+
+ +

Создание
+ Ñтруктуры
+ Ñайта + +

+ +
+
+
+
+ +

Юзабилити-
+ макетирование +

+
+
+
+
+
+
+ \ No newline at end of file diff --git a/frontend/views/site/services/email.php b/frontend/views/site/services/email.php new file mode 100644 index 0000000..f8bd43c --- /dev/null +++ b/frontend/views/site/services/email.php @@ -0,0 +1,391 @@ +title = 'РаÑкрутка Ñайта Киев | SEO продвижение интернет-магазина в поиÑковых ÑиÑтемах (Google, ЯндекÑ) Ñео Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐšÐ¸ÐµÐ², Харьков, ДнепропетровÑк, Украина'; +$this->params['breadcrumbs'][] = 'EMAIL'; + +$this->registerCssFile('/css/service_email.css'); + +$this->registerJsFile('/js/services/email.js'); +?> +
+
+ beginContent('@app/views/blocks/services.php', ['tab' => 2]); ?> + endContent(); ?> + +

ПиÑьма,


которые продают

+
+

Онлайн-Ð±Ð¸Ð·Ð½ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть
прибыльным!

+ beginContent('@app/views/blocks/orders-audit.php'); ?> + endContent(); ?> +

Отправьте заÑвку и получите анализ
от профеÑÑионалов

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

Индивидуальный
подход

+
+
+
+
+
+

ДейÑтвеннаÑ
ÑтратегиÑ

+
+
+
+
+
+

ОпытнаÑ
команда

+
+
+
+
+
+
+
+
+ +

Зачем вам Email?

+
+
+
+

ÐœÐ¸Ð»Ð»Ð¸Ð¾Ð½Ð½Ð°Ñ Ð±Ð°Ð·Ð°
подпиÑчиков

+
+
+
+

Ð­ÐºÐ¾Ð½Ð¾Ð¼Ð¸Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ + на раÑÑылку

+
+
+
+

Ð•Ð¶ÐµÐ´Ð½ÐµÐ²Ð½Ð°Ñ Ð²ÐµÑ€Ñтка + новых пиÑем

+
+
+
+

Повторные продажи

+
+
+
+

Оперативное
информирование об
акциÑÑ… и Ñкидках

+
+
+
+

ÐžÐ±Ñ€Ð°Ñ‚Ð½Ð°Ñ ÑвÑзь
Ñ Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»Ñми

+
+
+
+

Удержание текущих
клиентов

+
+
+
+

ЛоÑльноÑть подпиÑчиков

+
+
+
+ +
+
+
+

Повторные продажи

+
+
+
+

Ð­ÐºÐ¾Ð½Ð¾Ð¼Ð¸Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸
на раÑÑылку

+
+
+
+

ПоÑтроение базы
подпиÑчиков

+
+
+
+

Работа Ñ Ñегментами

+
+
+
+

Диалог Ñ
покупателÑми

+
+
+
+

Big data

+
+
+
+

Создание имиджа
ÑкÑперта

+
+
+
+

Удержание текущих
клиентов

+
+
+
+ + +
+
+
+

Формирование имиджа
ÑкÑперта

+
+
+
+

ÐžÐ±Ñ€Ð°Ñ‚Ð½Ð°Ñ ÑвÑзь
Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð°Ð¼Ð¸

+
+
+
+

Информирование
об акциÑÑ… и конкурÑах

+
+
+
+

ПерÑонализациÑ
клиентов

+
+
+
+

Повторные
продажи

+
+
+
+ + +
+ +
+

Команда на проект

+
+
    +
  • +

    Ðккаунт-менеджер

    +
  • +
  • +

    Интернет-маркетолог

    +
  • +
  • +

    SMM-менеджер

    +
  • +
+
    +
  • +

    Дизайнер

    +
  • +
  • +

    Ðналитик

    +
  • +
+
+
+
+
+

5 причин работать Ñ Ð½Ð°Ð¼Ð¸

+
+
+
+

1. Польза+продажи

+

Мы знаем, что такое Ñпам и не любим
его также как и вы, поÑтому
наши пиÑьма читают: Они
полезные, как шиповник
при проÑтуде.

+
+
+

2. Экономим ваше времÑ

+

Отправим миллионную раÑÑылку за
неÑколько чаÑов. С нами легко работать,
мы не Ñрываем Ñроки
и укладываемÑÑ Ð² три
ÑоглаÑованиÑ.

+
+ +
+

3. ПеÑонализациÑ

+

Подходим к клиентам индивидуально
и Ñегментируем предложениÑ.

+
+
+

4. ДелимÑÑ Ð¾Ð¿Ñ‹Ñ‚Ð¾Ð¼

+

ЕÑли у Ð²Ð°Ñ ÑƒÐ¶Ðµ еÑть раÑÑылка,
то мы поможем ее наÑтроить
и уÑовершенÑтвовать.
Ðам не жалко
времени, чтобы научить ваÑ.

+
+
+

5. КраÑиво пишем

+

Хороший копирайтинг – Ñто общатьÑÑ Ñ Ð»ÑŽÐ´ÑŒÐ¼Ð¸ на их Ñзыке. КраÑиво риÑуем.УделÑем макÑимум вниманиÑ, как будут выглÑдеть пиÑьма, потому что от Ñтого завиÑÑÑ‚ ваши продажи.

+
+
+

Реще мы поÑещаем Ñеминары, конференции, общаемÑÑ, Ñ ÐºÐ¾Ð»Ð»ÐµÐ³Ð°Ð¼Ð¸, обмениваемÑÑ Ð·Ð½Ð°Ð½Ð¸Ñми, читаем профеÑÑиональную литературу.,
ПоÑтому и информированы лучше, чем оÑтальные.

+ +
+ +
+
+
+
+

Забудьте о брошенных корзинах

+
+

По ÑтатиÑтике в интернет-магазинах оÑтаютÑÑ Ð½Ðµ + оформленными 50-60% покупок. Email-маркетинг + решает проблему брошенных корзин и повторных + продаж, а еще дает бизнеÑу «ÑнергетичеÑкий коктейль» + из лоÑльноÑти, брендинга и диалога Ñ Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»Ñми.

+ ЕÑли диалог налажен правильно, то у Ð²Ð°Ñ Ð±ÑƒÐ´ÑƒÑ‚ + преданные клиенты и продажи, а еÑли ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ð¿Ð»Ð¾Ñ…Ð°, +

+ Мы избавим Ð²Ð°Ñ Ð¾Ñ‚ головной боли, а кроме того: +

+
+
+

+ + • Сократим раÑходы на привлечение покупателей

+ + • СверÑтаем краÑивые пиÑьма

+ + • Выдержим Ð±Ð°Ð»Ð°Ð½Ñ Ð¼ÐµÐ¶Ð´Ñƒ пользой и рекламой
+ Ð´Ð»Ñ Ð²Ð°ÑˆÐ¸Ñ… клиентов

+ + • ÐаÑтроим аналитику и будем отÑлеживать
+ продажи

+ + • Сохраним ваше Ð²Ñ€ÐµÐ¼Ñ Ð¸ нервы – вам оÑтанетÑÑ
+ только Ñледить за результатами работы.

+
+

+
+
+

Ð®Ð»Ð¸Ñ Ð¡Ð¾Ñ‚Ð½Ð¸ÐºÐ¾Ð²Ð°
руководитель отдела лоÑльноÑти

+
+
+
+
+
+
+
+

ÐÐ°Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽÑ‚
за результаты, а не краÑивые отчеты

+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+ +

Ð¡Ð¾Ð»Ð¾Ð¼Ñ–Ñ Ð¡Ð¸Ð²Ð¸Ðº
Маркетинг-менеджер
extremstyle.ua

+
+
+

+ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» Ñопровождает Ð½Ð°Ñ Ñ Ñамого начала деÑтельноÑти в Ñети интернет. Ð Ñто уже более деÑÑти лет. ДолгоÑрочноÑть ÑотрудничеÑтва ÑвлÑетÑÑ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ показателем его уÑпешноÑти и Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° пути Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‰Ð¸Ñ… задач и целей. ЯвлÑÑÑÑŒ Ñоздателем наших Ñайтов, ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» обеÑпечивает не только их беÑперебойное техничеÑкое обÑлуживание и лидирующие позиции, но и полное ÑоответÑтвие новейшим тенденциÑм в интернет-технологиÑÑ…. ÐарÑду Ñ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ наших текущих задач, ÑпециалиÑты «ArtWeb» поÑтоÑнно предлагают немного больше, чем то, Ñ Ñ‡ÐµÐ¼ мы обратилиÑÑŒ, то еÑть решение задач более выÑокого уровнÑ. Внедрение, казалоÑÑŒ бы, фантаÑтичеÑких замыÑлов в развитие Ñайта, иногда опережает даже Ñамое Ñмелое планирование. + +

Важным аÑпектом нашего ÑотрудничеÑтва Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть целенаправленного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкой базой и Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐµÐµ не только количеÑтвенных, но и качеÑтвенных показателей, что непоÑредÑтвенно влиÑет на роÑÑ‚ прибыли нашей компании. ОтветÑтвенноÑть, гибкоÑть, умение работать на результат, креативноÑть мышлениÑ, оперативное реагирование на вÑе наши запроÑÑ‹, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¾ÑведомленноÑть обо вÑем проиÑходÑщем на рынке новейших интернет-технологий и отчаÑти их авторÑÐºÐ°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° – отличительные характериÑтики нашего надежного партнера – компании «ArtWeb». + + Ðа протÑжении вÑего периода ÑотрудничеÑтва у Ð½Ð°Ñ Ð½Ðµ было повода уÑомнитьÑÑ Ð² том, что в «ArtWeb» работают лучшие web-ÑпециалиÑты. СотрудничеÑтво Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑоÑтавлÑющей лидерÑтва в Ñегменте нашей деÑтельноÑти. +

+
+
+
+
+
+ +

Сергей Левицкий
ПреÑÑ-Ñекретарь
ukravtodor.gov.ua

+
+
+

+ Укравтодор Ñотрудничает Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» уже около года, в течение которого было реализовано неÑколько Ñложнейших веб-проектов - в кратчайший Ñрок Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ веб-Ñайта ГоÑагентÑва автомобильных дорог Украины, а также Ñ€Ñд интерактивных веб-приложений, информирующих о ÑоÑтоÑнии проезда и качеÑтве дорожного покрытиÑ. + +

С Ñамого начала ÑовмеÑтной работы ÑпециалиÑты компании продемонÑтрировали Ñвой выÑокий профеÑÑионализм, гибкоÑть, и оперативноÑть в решении вÑех возникающих вопроÑов, что позволило модернизировать официальное интернет-предÑтавительÑтво Укравтодора за рекордно короткий Ñрок - 3 меÑÑца. Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº предыдущую верÑию веб-Ñайта, уÑтаревшую и не функциональную, Ñ€Ñд других компаний-разработчиков пыталиÑÑŒ уÑовершенÑтвовать на протÑжении 9 лет. + +

Этот уÑпешный опыт продемонÑтрировал ÑффективноÑть ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» и потому вÑе поÑледующие интернет- проекты Укравтодора были переданы в разработку именно ей. + +

СпаÑибо руководÑтву и коллективу компании за понимание и поддержку в решении Ñложных и, как правило, чрезвычайно оперативных задач. + +

ПреÑÑ-Ñлужба Укравтодора + +

+
+
+
+
+
+ +

Ðндрей Богатырь
ИÑполнительный менеджер проекта
censor.net.ua

+
+
+

+ Мы обратилиÑÑŒ к ArtWeb Ñ Ñ†ÐµÐ»ÑŒÑŽ улучшить качеÑтво индекÑации Ñайта поиÑковыми ÑиÑтемами и увеличить трафик от ключевых поиÑковых операторов. Ð”Ð»Ñ Ñтого «ArtWeb» нужно было провеÑти анализ наших недоработок по оптимизации и предоÑтавить план уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. Главной целью было добитьÑÑ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‚Ð¾ÐºÐ° трафика из поиÑковых ÑиÑтем до ÑƒÑ€Ð¾Ð²Ð½Ñ Ð±Ð¾Ð»ÐµÐµ 50 тыÑ. переходов в Ñутки, в итоге через год поÑле Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ кумулÑтивный Ñффект дал приток трафика более 200 тыÑÑч переходов в Ñутки. + +

Благодарим «ArtWeb» за Ñлаженную и прозрачную ÑиÑтему по взаимодейÑтвию в процеÑÑе работы. Результат ÑотрудничеÑтва Ñ Â«ArtWeb» полноÑтью оправдал ожиданиÑ. Рекомендую вÑем Ñту компанию как профеÑÑионалов в облаÑти Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. + +

+
+
+
+
+ + +
+
+
+

Как мы работаем

+
+
+
+ +

Разработка
Ñтратегии

+
+
+ +

Каналы
получениÑ
подпиÑчиков

+
+
+ +

ÐаÑтройка
триггеров

+
+
+ +

СегментациÑ
базы

+
+
+
+ +

ÐаÑтройка Ñайта
под Ñбор лидов,
разработка
продающих
Ñтраниц

+
+
+ +

План
раÑÑылки

+
+
+ +

Копирайтинг

+
+
+ +

Дизайн
и верÑтка

+
+
+
+ +

Ð/Ð’
теÑтирование

+
+
+ +

Отправка
пиÑем

+
+
+ +

Ðнализ

+
+
+ +

ОптимизациÑ
раÑÑылки

+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/frontend/views/site/services/integration.php b/frontend/views/site/services/integration.php new file mode 100644 index 0000000..682b149 --- /dev/null +++ b/frontend/views/site/services/integration.php @@ -0,0 +1,434 @@ +title = 'РаÑкрутка Ñайта Киев | SEO продвижение интернет-магазина в поиÑковых ÑиÑтемах (Google, ЯндекÑ) Ñео Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐšÐ¸ÐµÐ², Харьков, ДнепропетровÑк, Украина'; +$this->params['breadcrumbs'][] = 'Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð¾Ð²'; + +$this->registerCssFile('/css/service_integration.css'); + +$this->registerJsFile('/js/services/integration.js'); +?> +
+
+ beginContent('@app/views/blocks/services.php', ['tab' => 3]); ?> + endContent(); ?> + +

Сложные решениÑ


Ð´Ð»Ñ Ð±Ð¸Ð·Ð½ÐµÑа

+
+

Онлайн-Ð±Ð¸Ð·Ð½ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть
прибыльным!

+ beginContent('@app/views/blocks/orders-audit.php'); ?> + endContent(); ?> +

Отправьте заÑвку и получите анализ
от от профеÑÑионалов

+
+
+ +
+
+
+
+

100% Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ +

+ +
+
+
+

ПривÑзка CRM
+ ÑиÑтем и API +

+
+
+
+

Онлайн-оплаты
+

+
+
+
+

API - Ñоциальных
+ Ñетей + +

+
+
+
+
+
+
+
+ +

Что может быть интегрировано в Ñайт

+
+
+
+

Социальные кнопки + и виджеты +

+
+
+
+

CRM-ÑиÑтема +

+
+
+
+

Онлайн-оплата +

+
+
+
+

API ÑиÑтем аналитики +

+
+
+
+

Онлайн-конÑультант +

+
+
+
+

Call-трекинг + +

+
+
+
+

Email и SMS раÑÑылки +

+
+
+
+

СервиÑÑ‹ Big Data +

+
+
+
+ +
+
+
+

СервиÑÑ‹ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ + рекламы +

+
+
+
+

КурÑÑ‹ валют / + биржевые индекÑÑ‹ +

+
+
+
+

Социальные + кнопки и виджеты +

+
+
+
+

API ÑиÑтем аналитики +

+
+
+
+

Email-раÑÑылки +

+
+
+
+

СервиÑÑ‹ Big Data + +

+
+
+
+
+
+
+
+

КейÑ

+
+
semena.in.ua
+
+
+ +

100% интеграциÑ
+ Ñ Ð¿Ñ€Ð¾Ð´Ð°Ð¶Ð°Ð¼Ð¸

+
+
+ +

Онлайн-оплаты
+

+
+
+ +

Социальные
+ кнопки и виджеты

+
+
+
+
+
+

Команда на проект

+
+
    +
  • +

    Ðккаунт-менеджер

    +
  • +
  • +

    Интернет-маркетолог

    +
  • +
  • +

    ЮзабилиÑÑ‚

    +
  • +
+
    +
  • +

    Дизайнер

    +
  • +
  • +

    ПрограммиÑÑ‚

    +
  • +
+
+
+
+
+

5 причин работать Ñ Ð½Ð°Ð¼Ð¸

+
+
+
+

1

+

Мы гибкие и любим Ñложные задачи. +

+
+
+

2

+

Ð’Ñ‹ можете быть уверены, + что задачи будут Ñданы в Ñрок. + +

+
+ +
+

3

+

Ðаши ÑпециалиÑты подÑкажут, + что вам иÑпользовать и помогут + Ñто интегрировать. + Большой опыт + результативных решений. +

+
+
+

4

+

СтоимоÑть интеграций в нашей Ñтудии + очень лоÑльна Ð´Ð»Ñ Ñ‚ÐµÑ…, кто заказывает + Ñоздание Ñайта или продвижение. + +

+
+
+

5

+

Мы ценим ваши вложениÑ, + поÑтому Ñчитаем рентабельноÑть + заданий на Ñтапе планированиÑ. + +

+
+
+

Реще мы поÑещаем Ñеминары, конференции, общаемÑÑ, Ñ ÐºÐ¾Ð»Ð»ÐµÐ³Ð°Ð¼Ð¸, обмениваемÑÑ Ð·Ð½Ð°Ð½Ð¸Ñми, читаем профеÑÑиональную литературу.,
ПоÑтому и информированы лучше, чем оÑтальные.

+ +
+ +
+
+
+
+

Любые Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ проекта

+
+
+

+ Ð’Ñ‹ хотите Ñделать Ñовременный Ñайт Ñ Ñ‚Ñ€ÐµÐ½Ð´Ð¾Ð²Ñ‹Ð¼ функционалом, качеÑтвенной аналитикой, выÑокими конверÑиÑми и макÑимальным взаимодейÑтвием Ñ Ð¿Ð¾ÑетителÑми? + ЕÑть большое количеÑтво ÑервиÑов в онлайне, которые оптимизируют работу. Ð’Ñ‹ их не знаете?

+ Тогда вы обратилиÑÑŒ по адреÑу.

+
+
+
+

+ В чем же фишка

+ 1. Мы вам поÑоветуем - большой опыт работы и + отличное     Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ðµ инÑтрументов, которые + решают задачи.
+ 2. Оптимизируем процеÑÑÑ‹ - подÑкажем, какие + Ñ€ÐµÑˆÐµÐ½Ð¸Ñ     Ð¿Ð¾Ð¼Ð¾Ð³ÑƒÑ‚ Ñнизить затраты.
+ 3. ВлиÑние на продвижение - поиÑковые ÑиÑтемы + любÑÑ‚     Ñайты Ñ Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¼Ð¸ ÑиÑтемами.
+ 4. Ð’Ñ‹Ñокий коÑффициент конверÑий - многие + ÑервиÑÑ‹     Ð¸Ð¼ÐµÑŽÑ‚ прÑмое влиÑние на уровень + конверÑий.
+ 5. Повторные продажи - анализ и + Ñегментирование     Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚елей влиÑÑŽÑ‚ на + роÑÑ‚ повторных продаж.
+ 6. Внедрение нашими ÑпециалиÑтами - + комплекÑÐ½Ð°Ñ     Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ от ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñайта и + поддержки до     Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ.
+ 7. Индивидуальный подход - у Ð½Ð°Ñ Ð½ÐµÑ‚ + конвейерных     Ñ€ÐµÑˆÐµÐ½Ð¸Ð¹. + +

+
+
+

Ðаш опыт будет вам полезен. Мы ÑÑкономим значительную Ñумму денег, а Ñамое главное увеличим количеÑтво продаж. Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ - Ñто Ñложный процеÑÑ, который необходим практичеÑки каждому проекту. + + +

+
+
+

Ðндрей Белый
руководитель отдела разработки

+
+
+
+
+
+
+

ÐÐ°Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽÑ‚
за результаты, а не краÑивые отчеты

+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+ +

Ð¡Ð¾Ð»Ð¾Ð¼Ñ–Ñ Ð¡Ð¸Ð²Ð¸Ðº
Маркетинг-менеджер
extremstyle.ua

+
+
+

+ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» Ñопровождает Ð½Ð°Ñ Ñ Ñамого начала деÑтельноÑти в Ñети интернет. Ð Ñто уже более деÑÑти лет. ДолгоÑрочноÑть ÑотрудничеÑтва ÑвлÑетÑÑ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ показателем его уÑпешноÑти и Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° пути Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‰Ð¸Ñ… задач и целей. ЯвлÑÑÑÑŒ Ñоздателем наших Ñайтов, ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» обеÑпечивает не только их беÑперебойное техничеÑкое обÑлуживание и лидирующие позиции, но и полное ÑоответÑтвие новейшим тенденциÑм в интернет-технологиÑÑ…. ÐарÑду Ñ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ наших текущих задач, ÑпециалиÑты «ArtWeb» поÑтоÑнно предлагают немного больше, чем то, Ñ Ñ‡ÐµÐ¼ мы обратилиÑÑŒ, то еÑть решение задач более выÑокого уровнÑ. Внедрение, казалоÑÑŒ бы, фантаÑтичеÑких замыÑлов в развитие Ñайта, иногда опережает даже Ñамое Ñмелое планирование. + +

Важным аÑпектом нашего ÑотрудничеÑтва Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть целенаправленного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкой базой и Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐµÐµ не только количеÑтвенных, но и качеÑтвенных показателей, что непоÑредÑтвенно влиÑет на роÑÑ‚ прибыли нашей компании. ОтветÑтвенноÑть, гибкоÑть, умение работать на результат, креативноÑть мышлениÑ, оперативное реагирование на вÑе наши запроÑÑ‹, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¾ÑведомленноÑть обо вÑем проиÑходÑщем на рынке новейших интернет-технологий и отчаÑти их авторÑÐºÐ°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° – отличительные характериÑтики нашего надежного партнера – компании «ArtWeb». + + Ðа протÑжении вÑего периода ÑотрудничеÑтва у Ð½Ð°Ñ Ð½Ðµ было повода уÑомнитьÑÑ Ð² том, что в «ArtWeb» работают лучшие web-ÑпециалиÑты. СотрудничеÑтво Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑоÑтавлÑющей лидерÑтва в Ñегменте нашей деÑтельноÑти. +

+
+
+
+
+
+ +

Сергей Левицкий
ПреÑÑ-Ñекретарь
ukravtodor.gov.ua

+
+
+

+ Укравтодор Ñотрудничает Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» уже около года, в течение которого было реализовано неÑколько Ñложнейших веб-проектов - в кратчайший Ñрок Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ веб-Ñайта ГоÑагентÑва автомобильных дорог Украины, а также Ñ€Ñд интерактивных веб-приложений, информирующих о ÑоÑтоÑнии проезда и качеÑтве дорожного покрытиÑ. + +

С Ñамого начала ÑовмеÑтной работы ÑпециалиÑты компании продемонÑтрировали Ñвой выÑокий профеÑÑионализм, гибкоÑть, и оперативноÑть в решении вÑех возникающих вопроÑов, что позволило модернизировать официальное интернет-предÑтавительÑтво Укравтодора за рекордно короткий Ñрок - 3 меÑÑца. Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº предыдущую верÑию веб-Ñайта, уÑтаревшую и не функциональную, Ñ€Ñд других компаний-разработчиков пыталиÑÑŒ уÑовершенÑтвовать на протÑжении 9 лет. + +

Этот уÑпешный опыт продемонÑтрировал ÑффективноÑть ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» и потому вÑе поÑледующие интернет- проекты Укравтодора были переданы в разработку именно ей. + +

СпаÑибо руководÑтву и коллективу компании за понимание и поддержку в решении Ñложных и, как правило, чрезвычайно оперативных задач. + +

ПреÑÑ-Ñлужба Укравтодора + +

+
+
+
+
+
+ +

Ðндрей Богатырь
ИÑполнительный менеджер проекта
censor.net.ua

+
+
+

+ Мы обратилиÑÑŒ к ArtWeb Ñ Ñ†ÐµÐ»ÑŒÑŽ улучшить качеÑтво индекÑации Ñайта поиÑковыми ÑиÑтемами и увеличить трафик от ключевых поиÑковых операторов. Ð”Ð»Ñ Ñтого «ArtWeb» нужно было провеÑти анализ наших недоработок по оптимизации и предоÑтавить план уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. Главной целью было добитьÑÑ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‚Ð¾ÐºÐ° трафика из поиÑковых ÑиÑтем до ÑƒÑ€Ð¾Ð²Ð½Ñ Ð±Ð¾Ð»ÐµÐµ 50 тыÑ. переходов в Ñутки, в итоге через год поÑле Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ кумулÑтивный Ñффект дал приток трафика более 200 тыÑÑч переходов в Ñутки. + +

Благодарим «ArtWeb» за Ñлаженную и прозрачную ÑиÑтему по взаимодейÑтвию в процеÑÑе работы. Результат ÑотрудничеÑтва Ñ Â«ArtWeb» полноÑтью оправдал ожиданиÑ. Рекомендую вÑем Ñту компанию как профеÑÑионалов в облаÑти Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. + +

+
+
+
+
+ +
+
+
+
+

Как мы работаем

+
+
+
+
+ +

Ðнализ
+ тематики
+ у конкурентов

+
+
+
+
+ +

ÐапиÑание
+ ÑовмеÑтного
ТЗ +

+
+
+
+
+ +

СоÑтавление
труктуры
Ñайта +

+
+
+
+
+ +

Создание
макетов
+ виджетов

+
+
+
+
+ +

ЗапуÑкv
+ интеграции +

+
+
+
+
+ +

ÐаÑтройка
+ анализа +

+
+
+
+
+ +

Обучение
+ работе
+ Ñ Ñайтом +

+
+
+
+
+ +

ТеÑтирование +

+
+
+
+
+
+
+ \ No newline at end of file diff --git a/frontend/views/site/services/segmnt.php b/frontend/views/site/services/segmnt.php new file mode 100644 index 0000000..f640192 --- /dev/null +++ b/frontend/views/site/services/segmnt.php @@ -0,0 +1,335 @@ +title = 'РаÑкрутка Ñайта Киев | SEO продвижение интернет-магазина в поиÑковых ÑиÑтемах (Google, ЯндекÑ) Ñео Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐšÐ¸ÐµÐ², Харьков, ДнепропетровÑк, Украина'; +$this->params['breadcrumbs'][] = 'Ð¡ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ð¾Ñ€Ð¸Ð¸'; + +$this->registerCssFile('/css/service_segmnt.css'); + +$this->registerJsFile('/js/services/segmnt.js'); +?> +
+
+ beginContent('@app/views/blocks/services.php', ['tab' => 4]); ?> + endContent(); ?> + +

Путь развитиÑ


в VIP-клиентов

+
+

Онлайн-Ð±Ð¸Ð·Ð½ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть
прибыльным!

+ beginContent('@app/views/blocks/orders-audit.php'); ?> + endContent(); ?> +

Отправьте заÑвку и получите анализ
от от профеÑÑионалов

+
+
+ +
+
+
+

Более:

+
+
+
+

продажи приноÑÑÑ‚
VIP-клиенты +

+ +
+
+
+

Индивидуальный
подход

+
+
+
+

ОпытнаÑ
команда +

+
+
+
+

Big Data
Ñ€ÐµÑˆÐµÐ½Ð¸Ñ +

+
+
+
+
+
+
+
+ +

Зачем вам наÑтройка аналитики на Ñайте?

+
+
+
+

5 видов аудитории +

+
+
+
+

ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾Ð´Ð°Ð¶ +

+
+
+
+

Увеличение
Ñреднего чека +

+
+
+
+

Работы над
роÑтом CLTV +

+
+
+
+

МакÑимальнаÑ
ÑффективноÑть продаж +

+
+
+
+ +
+
+
+

Создание ÑообщеÑтва
+ проекта

+
+
+
+

ИндивидуальнаÑ
+ выдача

+
+
+
+

СегментациÑ
+ иÑточников

+
+
+
+

Увеличение лоÑльноÑти
+ к бренду +

+
+
+
+

ВзаимодейÑтвие Ñ + VIP-пользователÑми
+

+
+
+
+ +
+
+

Команда на проект

+
+
    +
  • +

    Проджект-менеджер

    +
  • +
  • +

    Интернет-маркетолог

    +
  • +
  • +

    Ðналитик

    +
  • +
+
    +
  • +

    Email-маркетолог

    +
  • +
+
+
+
+
+

5 причин работать Ñ Ð½Ð°Ð¼Ð¸

+
+
+
+

1

+

Мы умеем Ñчитать прибыль
от каждого клиента.

+
+
+

2

+

Увеличиваем Ñредний чек и первичные
продажи за Ñчет индивидуализации
Ñайта под клиентов.

+
+ +
+

3

+

Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ вида целевой аудитории
готовитÑÑ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ñ‹Ð¹ план взаимодейÑтвиÑ.

+
+
+

4

+

Ð’Ñ‹ получаете лоÑльное ÑообщеÑтво, которое приноÑит вам
макÑимальную прибыль.

+
+
+

5

+

Мы не только Ñегментируем целевую
аудиторию, а проводим комплекÑный
онлайн-маркетинг вашего проекта.

+
+
+

Реще мы поÑещаем Ñеминары, конференции, общаемÑÑ, Ñ ÐºÐ¾Ð»Ð»ÐµÐ³Ð°Ð¼Ð¸, обмениваемÑÑ Ð·Ð½Ð°Ð½Ð¸Ñми, читаем профеÑÑиональную литературу.,
ПоÑтому и информированы лучше, чем оÑтальные.

+ +
+ +
+
+
+
+

Ð¡ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ñ†ÐµÐ»ÐµÐ²Ð¾Ð¹
аудитории правильно

+
+

• Ð’Ñ‹ хотите развивать VIP-клиентов Ñреди Ñвоей аудитории?
+ • Вам нужно узнать, ÐºÐ°ÐºÐ°Ñ Ð¿Ð¾Ð¶Ð¸Ð·Ð½ÐµÐ½Ð½Ð°Ñ Ñ†ÐµÐ½Ð½Ð¾Ñть клиента?
+ • Ð’Ñ‹ хотите повыÑить лоÑльноÑть Ñреди “ВÐШИХ†клиентов?


+ Тогда вы пришли по адреÑу. +

+
+
+

+ 1. Big Data - Ñоберем нужные метрики и наÑтроим
+ алгоритм обработки данных.
+ 2. VIP-клиенты - закон Парето работает - 10%
+ клиентов дают 60% продаж .
+ 3. МакÑимум Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ - Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð¾Ð², которые
+ решают ваши задачи.
+ 4. Email-маркетинг - ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ñ
+ каждой аудиторией.
+ 5. SMM - близкое общение Ñ Ð¦Ð.
+ 6. Индивидуальный вывод информации -
+ подходÑщие товары, интереÑные материалы,
+ перÑональные акции.
+ 7. РоÑÑ‚ CLTV - работы над увеличением
+ пожизненной ценноÑти клиента. + +

+
+
+

Ð’Ñ‹ тратите 90% уÑилий на привлечение
трафика, который не Ñделает ни одной
покупки, вмеÑто того чтобы работать Ñ
VIP-клиентами, которые делают 90%
продаж. Мы поможем вам решить Ñту
задачу Ñффективно. +

+
+
+

Ðнтон ЗозулÑ
Директор по маркетингу

+
+
+
+
+
+
+

ÐÐ°Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽÑ‚
за результаты, а не краÑивые отчеты

+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+ +

Ð¡Ð¾Ð»Ð¾Ð¼Ñ–Ñ Ð¡Ð¸Ð²Ð¸Ðº
Маркетинг-менеджер
extremstyle.ua

+
+
+

+ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» Ñопровождает Ð½Ð°Ñ Ñ Ñамого начала деÑтельноÑти в Ñети интернет. Ð Ñто уже более деÑÑти лет. ДолгоÑрочноÑть ÑотрудничеÑтва ÑвлÑетÑÑ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ показателем его уÑпешноÑти и Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° пути Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‰Ð¸Ñ… задач и целей. ЯвлÑÑÑÑŒ Ñоздателем наших Ñайтов, ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» обеÑпечивает не только их беÑперебойное техничеÑкое обÑлуживание и лидирующие позиции, но и полное ÑоответÑтвие новейшим тенденциÑм в интернет-технологиÑÑ…. ÐарÑду Ñ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ наших текущих задач, ÑпециалиÑты «ArtWeb» поÑтоÑнно предлагают немного больше, чем то, Ñ Ñ‡ÐµÐ¼ мы обратилиÑÑŒ, то еÑть решение задач более выÑокого уровнÑ. Внедрение, казалоÑÑŒ бы, фантаÑтичеÑких замыÑлов в развитие Ñайта, иногда опережает даже Ñамое Ñмелое планирование. + +

Важным аÑпектом нашего ÑотрудничеÑтва Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть целенаправленного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкой базой и Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐµÐµ не только количеÑтвенных, но и качеÑтвенных показателей, что непоÑредÑтвенно влиÑет на роÑÑ‚ прибыли нашей компании. ОтветÑтвенноÑть, гибкоÑть, умение работать на результат, креативноÑть мышлениÑ, оперативное реагирование на вÑе наши запроÑÑ‹, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¾ÑведомленноÑть обо вÑем проиÑходÑщем на рынке новейших интернет-технологий и отчаÑти их авторÑÐºÐ°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° – отличительные характериÑтики нашего надежного партнера – компании «ArtWeb». + + Ðа протÑжении вÑего периода ÑотрудничеÑтва у Ð½Ð°Ñ Ð½Ðµ было повода уÑомнитьÑÑ Ð² том, что в «ArtWeb» работают лучшие web-ÑпециалиÑты. СотрудничеÑтво Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑоÑтавлÑющей лидерÑтва в Ñегменте нашей деÑтельноÑти. +

+
+
+
+
+
+ +

Сергей Левицкий
ПреÑÑ-Ñекретарь
ukravtodor.gov.ua

+
+
+

+ Укравтодор Ñотрудничает Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» уже около года, в течение которого было реализовано неÑколько Ñложнейших веб-проектов - в кратчайший Ñрок Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ веб-Ñайта ГоÑагентÑва автомобильных дорог Украины, а также Ñ€Ñд интерактивных веб-приложений, информирующих о ÑоÑтоÑнии проезда и качеÑтве дорожного покрытиÑ. + +

С Ñамого начала ÑовмеÑтной работы ÑпециалиÑты компании продемонÑтрировали Ñвой выÑокий профеÑÑионализм, гибкоÑть, и оперативноÑть в решении вÑех возникающих вопроÑов, что позволило модернизировать официальное интернет-предÑтавительÑтво Укравтодора за рекордно короткий Ñрок - 3 меÑÑца. Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº предыдущую верÑию веб-Ñайта, уÑтаревшую и не функциональную, Ñ€Ñд других компаний-разработчиков пыталиÑÑŒ уÑовершенÑтвовать на протÑжении 9 лет. + +

Этот уÑпешный опыт продемонÑтрировал ÑффективноÑть ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» и потому вÑе поÑледующие интернет- проекты Укравтодора были переданы в разработку именно ей. + +

СпаÑибо руководÑтву и коллективу компании за понимание и поддержку в решении Ñложных и, как правило, чрезвычайно оперативных задач. + +

ПреÑÑ-Ñлужба Укравтодора + +

+
+
+
+
+
+ +

Ðндрей Богатырь
ИÑполнительный менеджер проекта
censor.net.ua

+
+
+

+ Мы обратилиÑÑŒ к ArtWeb Ñ Ñ†ÐµÐ»ÑŒÑŽ улучшить качеÑтво индекÑации Ñайта поиÑковыми ÑиÑтемами и увеличить трафик от ключевых поиÑковых операторов. Ð”Ð»Ñ Ñтого «ArtWeb» нужно было провеÑти анализ наших недоработок по оптимизации и предоÑтавить план уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. Главной целью было добитьÑÑ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‚Ð¾ÐºÐ° трафика из поиÑковых ÑиÑтем до ÑƒÑ€Ð¾Ð²Ð½Ñ Ð±Ð¾Ð»ÐµÐµ 50 тыÑ. переходов в Ñутки, в итоге через год поÑле Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ кумулÑтивный Ñффект дал приток трафика более 200 тыÑÑч переходов в Ñутки. + +

Благодарим «ArtWeb» за Ñлаженную и прозрачную ÑиÑтему по взаимодейÑтвию в процеÑÑе работы. Результат ÑотрудничеÑтва Ñ Â«ArtWeb» полноÑтью оправдал ожиданиÑ. Рекомендую вÑем Ñту компанию как профеÑÑионалов в облаÑти Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. + +

+
+
+
+
+ +
+
+
+
+

Как мы работаем

+
+
+
+
+ +

Изучение
+ аудитории

+
+
+
+
+ +

ÐаÑтройка
аналитики +

+
+
+
+
+ +

Сегментирование
аудитории

+
+
+
+
+ +

Контроль и
отчетноÑть

+
+
+
+
+ +

ÐапиÑание
Ñтратегии +

+
+
+
+
+ +

Создание материалов
Ð´Ð»Ñ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹Ñтвий +

+
+
+
+
+
+
+ \ No newline at end of file diff --git a/frontend/views/site/services/seo.php b/frontend/views/site/services/seo.php new file mode 100644 index 0000000..2b82f0d --- /dev/null +++ b/frontend/views/site/services/seo.php @@ -0,0 +1,447 @@ +title = 'РаÑкрутка Ñайта Киев | SEO продвижение интернет-магазина в поиÑковых ÑиÑтемах (Google, ЯндекÑ) Ñео Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐšÐ¸ÐµÐ², Харьков, ДнепропетровÑк, Украина'; +$this->params['breadcrumbs'][] = 'SEO'; + +$this->registerCssFile('/css/service_seo.css'); + +$this->registerJsFile('/js/services/seo.js'); +?> + +
+
+ beginContent('@app/views/blocks/services.php', ['tab' => 1]); ?> + endContent(); ?> + +

Знаем как удвоить


+ Ð±Ð¸Ð·Ð½ÐµÑ Ð·Ð° год

+
+

Онлайн-Ð±Ð¸Ð·Ð½ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть
прибыльным!

+ beginContent('@app/views/blocks/orders-audit.php'); ?> + endContent(); ?> +

Отправьте заÑвку и получите анализ
от от профеÑÑионалов

+
+
+ +
+
+
+
+

уÑпешных
проектов +

+ +
+
+
+

индивидуальный
+ подход +

+
+
+
+

клиенты в
+ ТОПе +

+
+
+
+

профи
+ команда +

+
+
+
+
+
+
+
+ +

Зачем вам SEO?

+
+
+
+

Ð’Ñ‹Ñокий показатель
+ конверÑий +

+
+
+
+

МаÑштабируемые
+ объемы трафика

+
+
+
+

Гибкие результаты
+ под ваши KPI +

+
+
+
+

РоÑÑ‚ узнаваемоÑти
+ бренда

+
+
+
+

Увеличение продаж
+ и прибыли +

+
+
+
+ +
+
+
+

РоÑÑ‚ поÑещаемоÑти
+ Ñайта

+
+
+
+

РаÑширение Ñтруктуры
+ Ñайта

+
+
+
+

Эффективный
+ контент

+
+
+
+

ÐвтоматичеÑÐºÐ°Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ
+ новых Ñтраниц

+
+
+
+

УзнаваемоÑть бренда

+
+
+
+
+
+
+

Выход на новые
+ рынки

+
+
+
+

Ðовые клиенты

+
+
+
+

Повышение уровнÑ
+ бизнеÑа +

+
+
+
+

ДиверÑификациÑ
+ риÑков

+
+
+
+

Стратегии продвижениÑ
+ под каждый регион +

+
+
+
+
+
+

КейÑ

+
+
semena.in.ua
+
+
+ +

Ñайтов Украины

+
+
+ +

поÑещений из поиÑка + в меÑÑц

+
+
+ +

глубина проÑмотра + из поиÑка

+
+
+
+
+
+

Команда на проект

+
+
    +
  • +

    Проджект-менеджер

    +
  • +
  • +

    Интернет-маркетолог

    +
  • +
  • +

    SEO-ÑпециалиÑÑ‚

    +
  • +
+
    +
  • +

    Копирайтер

    +
  • +
  • +

    Ðналитик

    +
  • +
+
+
+
+
+

5 причин заказать у Ð½Ð°Ñ SEO

+
+
+
+

1

+

Мы ориентируемÑÑ Ð½Ð° результат. + Вам придетÑÑ Ð´Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒÑÑ Ð¿Ñ€Ð¾Ñ„ÐµÑÑионалам + и мы заÑтавим поиÑковые ÑиÑтемы + работать на ваÑ! +

+
+
+

2

+

Ðаши клиенты находÑÑ‚ÑÑ + в ТОП-10 более деÑÑти лет. +

+
+ +
+

3

+

Огромный багаж ÑкÑпериментально + доказанных знаний о работе + поиÑковых ÑиÑтем. +

+
+
+

4

+

ÐаÑтроенные процеÑÑÑ‹ работы + (делегирование): + в каждом проекте обÑзательно принимает + учаÑтие SeniorSEO-specialist. +

+
+
+

5

+

Мы ценим ваши вложениÑ, + поÑтому Ñчитаем рентабельноÑть + заданий на Ñтапе планированиÑ. +

+
+
+

Реще мы поÑещаем Ñеминары, конференции, общаемÑÑ, Ñ ÐºÐ¾Ð»Ð»ÐµÐ³Ð°Ð¼Ð¸, обмениваемÑÑ Ð·Ð½Ð°Ð½Ð¸Ñми, читаем профеÑÑиональную литературу.,
ПоÑтому и информированы лучше, чем оÑтальные.

+ +
+ +
+
+
+
+

SEO как фактор Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта

+
+
+

Ð’Ñ‹ решили развивать Ð±Ð¸Ð·Ð½ÐµÑ Ð² интернете и ищите партнеров, которые помогут вам в Ñтом вопроÑе? Мы будем рады пройти Ñ Ð²Ð°Ð¼Ð¸ веÑÑŒ путь и доÑтичь ТОП-1 вашей тематики в поиÑковой выдаче. Ð SEO - Ñто ключевой “китâ€, на котором цель базируетÑÑ. +

ПоиÑÐºÐ¾Ð²Ð°Ñ Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñайта - вÑе еще Ñамый + выÑокоприбыльный иÑточник трафика. +

+
+
+
+

+ В чем же фишка?

+ + 1. Ð’Ñ‹Ñокие конверÑии - на Ñайт попадают только + потенциальные клиенты.
+ 2. ÐŸÐ¾Ð´Ñ€Ð¾Ð±Ð½Ð°Ñ ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð¾Ñ‚ Senior-SEO + на каждый проект.
+ 3. ÐÐ¸Ð·ÐºÐ°Ñ Ñ†ÐµÐ½Ð° за клик - обычно дешевле в 2-5 раз, + чем контекÑÑ‚Ð½Ð°Ñ Ñ€ÐµÐºÐ»Ð°Ð¼Ð°
+ 4. Полный охват тематики - 100% проработка + ÑемантичеÑкого Ñдра.
+ 5. Ðовые разделы - мы рекомендуем Ð½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ + раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð±Ð¸Ð·Ð½ÐµÑа.
+ 6. Контроль полученных результатов - вы получаете + наÑтроенную аналитику.
+ 7. ПоÑтоÑнный роÑÑ‚ продаж - продвижение вашего + бизнеÑа не оÑтанавливаетÑÑ Ð½Ð¸ на день.
+ 8. Ð“Ð¸Ð±ÐºÐ°Ñ Ð¾Ñ‚Ñ‡ÐµÑ‚Ð½Ð¾Ñть - помогаем вам определить KPI, + за которыми будем Ñледить. +

+
+
+

ПоиÑÐºÐ¾Ð²Ð°Ñ Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ - + Ñто ваша уверенноÑть + в завтрашнем дне. + Рмы делаем вÑе, + чтобы вы доÑтигли ТОП-1 + в вашей тематике. +

+
+
+

Ðнтон ЗозулÑ
Директор по маркетингу

+
+
+
+
+
+
+

ÐÐ°Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽÑ‚
за результаты, а не краÑивые отчеты

+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+ +

Ð¡Ð¾Ð»Ð¾Ð¼Ñ–Ñ Ð¡Ð¸Ð²Ð¸Ðº
Маркетинг-менеджер
extremstyle.ua

+
+
+

+ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» Ñопровождает Ð½Ð°Ñ Ñ Ñамого начала деÑтельноÑти в Ñети интернет. Ð Ñто уже более деÑÑти лет. ДолгоÑрочноÑть ÑотрудничеÑтва ÑвлÑетÑÑ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ показателем его уÑпешноÑти и Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° пути Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‰Ð¸Ñ… задач и целей. ЯвлÑÑÑÑŒ Ñоздателем наших Ñайтов, ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» обеÑпечивает не только их беÑперебойное техничеÑкое обÑлуживание и лидирующие позиции, но и полное ÑоответÑтвие новейшим тенденциÑм в интернет-технологиÑÑ…. ÐарÑду Ñ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ наших текущих задач, ÑпециалиÑты «ArtWeb» поÑтоÑнно предлагают немного больше, чем то, Ñ Ñ‡ÐµÐ¼ мы обратилиÑÑŒ, то еÑть решение задач более выÑокого уровнÑ. Внедрение, казалоÑÑŒ бы, фантаÑтичеÑких замыÑлов в развитие Ñайта, иногда опережает даже Ñамое Ñмелое планирование. + +

Важным аÑпектом нашего ÑотрудничеÑтва Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть целенаправленного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкой базой и Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐµÐµ не только количеÑтвенных, но и качеÑтвенных показателей, что непоÑредÑтвенно влиÑет на роÑÑ‚ прибыли нашей компании. ОтветÑтвенноÑть, гибкоÑть, умение работать на результат, креативноÑть мышлениÑ, оперативное реагирование на вÑе наши запроÑÑ‹, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¾ÑведомленноÑть обо вÑем проиÑходÑщем на рынке новейших интернет-технологий и отчаÑти их авторÑÐºÐ°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° – отличительные характериÑтики нашего надежного партнера – компании «ArtWeb». + + Ðа протÑжении вÑего периода ÑотрудничеÑтва у Ð½Ð°Ñ Ð½Ðµ было повода уÑомнитьÑÑ Ð² том, что в «ArtWeb» работают лучшие web-ÑпециалиÑты. СотрудничеÑтво Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑоÑтавлÑющей лидерÑтва в Ñегменте нашей деÑтельноÑти. +

+
+
+
+
+
+ +

Сергей Левицкий
ПреÑÑ-Ñекретарь
ukravtodor.gov.ua

+
+
+

+ Укравтодор Ñотрудничает Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» уже около года, в течение которого было реализовано неÑколько Ñложнейших веб-проектов - в кратчайший Ñрок Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ веб-Ñайта ГоÑагентÑва автомобильных дорог Украины, а также Ñ€Ñд интерактивных веб-приложений, информирующих о ÑоÑтоÑнии проезда и качеÑтве дорожного покрытиÑ. + +

С Ñамого начала ÑовмеÑтной работы ÑпециалиÑты компании продемонÑтрировали Ñвой выÑокий профеÑÑионализм, гибкоÑть, и оперативноÑть в решении вÑех возникающих вопроÑов, что позволило модернизировать официальное интернет-предÑтавительÑтво Укравтодора за рекордно короткий Ñрок - 3 меÑÑца. Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº предыдущую верÑию веб-Ñайта, уÑтаревшую и не функциональную, Ñ€Ñд других компаний-разработчиков пыталиÑÑŒ уÑовершенÑтвовать на протÑжении 9 лет. + +

Этот уÑпешный опыт продемонÑтрировал ÑффективноÑть ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» и потому вÑе поÑледующие интернет- проекты Укравтодора были переданы в разработку именно ей. + +

СпаÑибо руководÑтву и коллективу компании за понимание и поддержку в решении Ñложных и, как правило, чрезвычайно оперативных задач. + +

ПреÑÑ-Ñлужба Укравтодора + +

+
+
+
+
+
+ +

Ðндрей Богатырь
ИÑполнительный менеджер проекта
censor.net.ua

+
+
+

+ Мы обратилиÑÑŒ к ArtWeb Ñ Ñ†ÐµÐ»ÑŒÑŽ улучшить качеÑтво индекÑации Ñайта поиÑковыми ÑиÑтемами и увеличить трафик от ключевых поиÑковых операторов. Ð”Ð»Ñ Ñтого «ArtWeb» нужно было провеÑти анализ наших недоработок по оптимизации и предоÑтавить план уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. Главной целью было добитьÑÑ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‚Ð¾ÐºÐ° трафика из поиÑковых ÑиÑтем до ÑƒÑ€Ð¾Ð²Ð½Ñ Ð±Ð¾Ð»ÐµÐµ 50 тыÑ. переходов в Ñутки, в итоге через год поÑле Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ кумулÑтивный Ñффект дал приток трафика более 200 тыÑÑч переходов в Ñутки. + +

Благодарим «ArtWeb» за Ñлаженную и прозрачную ÑиÑтему по взаимодейÑтвию в процеÑÑе работы. Результат ÑотрудничеÑтва Ñ Â«ArtWeb» полноÑтью оправдал ожиданиÑ. Рекомендую вÑем Ñту компанию как профеÑÑионалов в облаÑти Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. + +

+
+
+
+
+ +
+
+
+
+

Как мы работаем

+
+
+
+
+ +

Ðнализ
+ тематики
+ у конкурентов

+
+
+
+
+ +

Сбор
+ ÑемантичеÑкого
+ Ñдра +

+
+
+
+
+ +

ВнутреннÑÑ
+ Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ + +

+
+
+
+
+ +

ПоÑтроение
+ SEO-Ñтруктуры
+ проекта +

+
+
+
+
+
+ +

Продвижение
+ Ñайта в локальном
+ поиÑке

+
+
+
+
+ +

ПоÑтроение
+ ÑÑылочной
+ маÑÑÑ‹

+
+
+
+
+ +

Работа над
+ поведенчеÑкими
+ факторами +

+
+
+
+
+
+ +

ОтÑлеживание
+ KPI

+
+
+
+
+
+
\ No newline at end of file diff --git a/frontend/views/site/services/serm.php b/frontend/views/site/services/serm.php new file mode 100644 index 0000000..e751b7e --- /dev/null +++ b/frontend/views/site/services/serm.php @@ -0,0 +1,405 @@ +title = 'РаÑкрутка Ñайта Киев | SEO продвижение интернет-магазина в поиÑковых ÑиÑтемах (Google, ЯндекÑ) Ñео Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐšÐ¸ÐµÐ², Харьков, ДнепропетровÑк, Украина'; +$this->params['breadcrumbs'][] = 'SERM'; + +$this->registerCssFile('/css/service_serm.css'); + +$this->registerJsFile('/js/services/serm.js'); +?> +
+
+ beginContent('@app/views/blocks/services.php', ['tab' => 2]); ?> + endContent(); ?> + +

Ð¥Ð¾Ñ€Ð¾ÑˆÐ°Ñ Ñ€ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ñ â€“


залог здоровьÑ

+
+

Онлайн-Ð±Ð¸Ð·Ð½ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть
прибыльным!

+ beginContent('@app/views/blocks/orders-audit.php'); ?> + endContent(); ?> +

Отправьте заÑвку и получите анализ
от от профеÑÑионалов

+
+
+ +
+
+
+
+
+

Индивидуальный
подход

+
+
+
+
+
+

ДейÑтвеннаÑ
ÑтратегиÑ

+
+
+
+
+
+

ОпытнаÑ
команда

+
+
+
+
+
+
+
+
+ +

Зачем вам SERM?

+
+
+
+

УÑтранение
негативных отзывов

+
+
+
+

ЕÑтеÑтвенное
продвижение Ñайта
в поиÑке

+
+
+
+

Повышение
лоÑльноÑти

+
+
+
+

СотрудничеÑтво
Ñо СМИ

+
+
+
+

Увеличение
ÑÑылочной маÑÑÑ‹

+
+
+
+

Положительные
отзывы на Ñайтах
ТОР10

+
+
+
+ +
+
+
+

УÑтранение
негативных отзывов

+
+
+
+

Доверие
избирателей

+
+
+
+

Формирование
общеÑтвенного
мнениÑ

+
+
+
+

Борьба
Ñ ÐºÐ¾Ð½ÐºÑƒÑ€ÐµÐ½Ñ‚Ð°Ð¼Ð¸

+
+
+
+

Укрепление
авторитета

+
+
+
+

Диалог
Ñ Ð½Ð°Ñелением

+
+
+
+ + +
+
+
+

Формирование
положительного
имиджа

+
+
+
+

Повышение
Ð´Ð¾Ð²ÐµÑ€Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð¾Ð²

+
+
+
+

Работа Ñ
негативными
отзывами

+
+
+
+

Размещение
имиджевых материалов
в профильных СМИ

+
+
+
+

УÑиление
положительных
+ отзывов

+
+
+
+

Ðет ни одного
отзыва о ваÑ

+
+
+
+ + +
+ +
+

Команда на проект

+
+
    +
  • +

    Ðккаунт-менеджер

    +
  • +
  • +

    Интернет-маркетолог

    +
  • +
  • +

    SEO-ÑпециалиÑÑ‚

    +
  • +
+
    +
  • +

    Копирайтер

    +
  • +
  • +

    Редактор

    +
  • +
+
+
+
+
+

5 причин работать Ñ Ð½Ð°Ð¼Ð¸

+
+
+
+

1

+

ПоÑтоÑнный мониторинг новоÑтных Ñайтов, блогов и Ñоциальных Ñетей. Мы держим руку на пульÑе Ñобытий, оперативно и Ñпокойно
реагируем на негатив.

+
+
+

2

+

Ðапишем имиджевые Ñтатьи и комментарии Ñ Ð´ÑƒÑˆÐ¾Ð¹ и в Ñтиле ваших клиентов.

+
+ +
+

3

+

ЕÑли возникнет необходимоÑть, поÑтавим конкурентов на меÑто. Да, мы можем быть и не такими уж добрыми.

+
+
+

4

+

ЕÑли о Ð²Ð°Ñ Ð½Ðµ знает интернет, Ñоздадим Ñтратегию поÑÑ‚Ñ€Ð¾ÐµÐ½Ð¸Ñ Ð¸Ð¼Ð¸Ð´Ð¶Ð°, бренда.

+
+
+

5

+

У Ð½Ð°Ñ ÐµÑть ÑвÑзи в СМИ.

+
+
+

Реще мы поÑещаем Ñеминары, конференции, общаемÑÑ, Ñ ÐºÐ¾Ð»Ð»ÐµÐ³Ð°Ð¼Ð¸, обмениваемÑÑ Ð·Ð½Ð°Ð½Ð¸Ñми, читаем профеÑÑиональную литературу.,
ПоÑтому и информированы лучше, чем оÑтальные.

+ +
+ +
+
+
+
+

Ð ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ñ Ð² поиÑковых ÑиÑтемах

+
+

Ð’Ñ‹ знаете, о ком говорÑÑ‚ либо хорошо, либо ничего. Ð’ + Ñлучае уÑпешно развивающегоÑÑ Ð±Ð¸Ð·Ð½ÐµÑа или карьеры + избежать негативных отзывов проÑто невозможно. Ð’ Ñтом + Ñлучае молчание – не золото. И придетÑÑ Ð·Ð°Ð´ÐµÐ¹Ñтвовать вÑÑŽ артиллерию Ð´Ð»Ñ Ð±Ð¾Ñ€ÑŒÐ±Ñ‹ Ñ ÐºÐ¾Ð½ÐºÑƒÑ€ÐµÐ½Ñ‚Ð°Ð¼Ð¸ и отÑтаивание доброго имени в интернете.

+
+
+

+ Отзывы читают, отзывам верÑÑ‚, прежде чем купить товар, + изучают комментарии других покупателей.

+ + SERM - управление репутацией в поиÑковых ÑиÑтемах – один из оÑновных Ñлементов поиÑкового маркетинга и включает неÑколько методов: белый, Ñерый и черный.

+ + Белый метод – чеÑтноÑть и открытоÑть, Ð´ÐµÐ»Ð¸ÐºÐ°Ñ‚Ð½Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð° Ñ Ð½ÐµÐ³Ð°Ñ‚Ð¸Ð²Ð½Ñ‹Ð¼Ð¸ отзывами, диалог Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð°Ð¼Ð¸, решение их проблем.

+ + Серый метод – удаление негативных отзывов, наполнение поиÑковой выдачи положительными комментариÑми. Этот метод не решает проблем клиентов. Ðо решает проблему бизнеÑа, ведь не вÑегда плохие комментарии оÑтавлÑÑŽÑ‚ клиенты – Ñтим грешат конкуренты.

+ + Черный метод – Ñто черный пиар – борьба Ñ ÐºÐ¾Ð½ÐºÑƒÑ€ÐµÐ½Ñ‚Ð°Ð¼Ð¸ и показ ÑÐµÐ±Ñ Ð² лучшем Ñвете. Этот метод дает быÑтрые результаты, но он деÑтруктивен и опаÑен Ð´Ð»Ñ Ñ€Ñ‹Ð½ÐºÐ°. + + +

+
+
+

Ð’ борьбе за результат вÑе методы
хороши. В первую очередь мы
разрабатываем индивидуальную
Ñтратегию, ведь одного
дейÑтвенного рецепта Ð´Ð»Ñ Ð²Ñех не
ÑущеÑтвует.

+
+
+

Ð®Ð»Ð¸Ñ Ð¡Ð¾Ñ‚Ð½Ð¸ÐºÐ¾Ð²Ð°
руководитель отдела лоÑльноÑти

+
+
+
+
+
+
+

Где мы работаем

+
+
+ +

ÐовоÑтные Ñайты

+
+
+ +

Блоги

+
+
+ +

Форумы

+
+
+ +

ТематичеÑкие Ñайты
и порталы

+
+
+ +

Социальные Ñети

+
+
+ +

СервиÑÑ‹ отзывов

+
+
+ +

СервиÑÑ‹
вопроÑов-ответов

+
+
+ +

ЯндекÑ.Карты
и Google.Maps

+
+
+
+
+
+
+

ÐÐ°Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽÑ‚
за результаты, а не краÑивые отчеты

+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+ +

Ð¡Ð¾Ð»Ð¾Ð¼Ñ–Ñ Ð¡Ð¸Ð²Ð¸Ðº
Маркетинг-менеджер
extremstyle.ua

+
+
+

+ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» Ñопровождает Ð½Ð°Ñ Ñ Ñамого начала деÑтельноÑти в Ñети интернет. Ð Ñто уже более деÑÑти лет. ДолгоÑрочноÑть ÑотрудничеÑтва ÑвлÑетÑÑ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ показателем его уÑпешноÑти и Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° пути Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‰Ð¸Ñ… задач и целей. ЯвлÑÑÑÑŒ Ñоздателем наших Ñайтов, ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» обеÑпечивает не только их беÑперебойное техничеÑкое обÑлуживание и лидирующие позиции, но и полное ÑоответÑтвие новейшим тенденциÑм в интернет-технологиÑÑ…. ÐарÑду Ñ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ наших текущих задач, ÑпециалиÑты «ArtWeb» поÑтоÑнно предлагают немного больше, чем то, Ñ Ñ‡ÐµÐ¼ мы обратилиÑÑŒ, то еÑть решение задач более выÑокого уровнÑ. Внедрение, казалоÑÑŒ бы, фантаÑтичеÑких замыÑлов в развитие Ñайта, иногда опережает даже Ñамое Ñмелое планирование. + +

Важным аÑпектом нашего ÑотрудничеÑтва Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть целенаправленного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкой базой и Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐµÐµ не только количеÑтвенных, но и качеÑтвенных показателей, что непоÑредÑтвенно влиÑет на роÑÑ‚ прибыли нашей компании. ОтветÑтвенноÑть, гибкоÑть, умение работать на результат, креативноÑть мышлениÑ, оперативное реагирование на вÑе наши запроÑÑ‹, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¾ÑведомленноÑть обо вÑем проиÑходÑщем на рынке новейших интернет-технологий и отчаÑти их авторÑÐºÐ°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° – отличительные характериÑтики нашего надежного партнера – компании «ArtWeb». + + Ðа протÑжении вÑего периода ÑотрудничеÑтва у Ð½Ð°Ñ Ð½Ðµ было повода уÑомнитьÑÑ Ð² том, что в «ArtWeb» работают лучшие web-ÑпециалиÑты. СотрудничеÑтво Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑоÑтавлÑющей лидерÑтва в Ñегменте нашей деÑтельноÑти. +

+
+
+
+
+
+ +

Сергей Левицкий
ПреÑÑ-Ñекретарь
ukravtodor.gov.ua

+
+
+

+ Укравтодор Ñотрудничает Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» уже около года, в течение которого было реализовано неÑколько Ñложнейших веб-проектов - в кратчайший Ñрок Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ веб-Ñайта ГоÑагентÑва автомобильных дорог Украины, а также Ñ€Ñд интерактивных веб-приложений, информирующих о ÑоÑтоÑнии проезда и качеÑтве дорожного покрытиÑ. + +

С Ñамого начала ÑовмеÑтной работы ÑпециалиÑты компании продемонÑтрировали Ñвой выÑокий профеÑÑионализм, гибкоÑть, и оперативноÑть в решении вÑех возникающих вопроÑов, что позволило модернизировать официальное интернет-предÑтавительÑтво Укравтодора за рекордно короткий Ñрок - 3 меÑÑца. Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº предыдущую верÑию веб-Ñайта, уÑтаревшую и не функциональную, Ñ€Ñд других компаний-разработчиков пыталиÑÑŒ уÑовершенÑтвовать на протÑжении 9 лет. + +

Этот уÑпешный опыт продемонÑтрировал ÑффективноÑть ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» и потому вÑе поÑледующие интернет- проекты Укравтодора были переданы в разработку именно ей. + +

СпаÑибо руководÑтву и коллективу компании за понимание и поддержку в решении Ñложных и, как правило, чрезвычайно оперативных задач. + +

ПреÑÑ-Ñлужба Укравтодора + +

+
+
+
+
+
+ +

Ðндрей Богатырь
ИÑполнительный менеджер проекта
censor.net.ua

+
+
+

+ Мы обратилиÑÑŒ к ArtWeb Ñ Ñ†ÐµÐ»ÑŒÑŽ улучшить качеÑтво индекÑации Ñайта поиÑковыми ÑиÑтемами и увеличить трафик от ключевых поиÑковых операторов. Ð”Ð»Ñ Ñтого «ArtWeb» нужно было провеÑти анализ наших недоработок по оптимизации и предоÑтавить план уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. Главной целью было добитьÑÑ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‚Ð¾ÐºÐ° трафика из поиÑковых ÑиÑтем до ÑƒÑ€Ð¾Ð²Ð½Ñ Ð±Ð¾Ð»ÐµÐµ 50 тыÑ. переходов в Ñутки, в итоге через год поÑле Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ кумулÑтивный Ñффект дал приток трафика более 200 тыÑÑч переходов в Ñутки. + +

Благодарим «ArtWeb» за Ñлаженную и прозрачную ÑиÑтему по взаимодейÑтвию в процеÑÑе работы. Результат ÑотрудничеÑтва Ñ Â«ArtWeb» полноÑтью оправдал ожиданиÑ. Рекомендую вÑем Ñту компанию как профеÑÑионалов в облаÑти Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. + +

+
+
+
+
+ + +
+
+
+

Как мы работаем

+
+
+
+
+ +

Ðнализ выдачи
в поиÑковых
ÑиÑтемах

+
+
+
+
+ +

Мониторинг
Ñоциальных Ñетей

+
+
+
+
+ +

Карта
негативных
отзывов

+
+
+
+
+ +

Ð¡Ñ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ð¸ выбор
площадок длÑ
размещениÑ

+
+
+
+
+ +

Размещение
контента

+
+
+
+
+ +

Удаление
(еÑли возможно)

+
+
+
+
+ +

ПоÑтроение
диалога Ñ
клиентами

+
+
+
+
+ +

ПоÑтоÑнный
мониторинг
и отчетноÑть

+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/frontend/views/site/services/smm.php b/frontend/views/site/services/smm.php new file mode 100644 index 0000000..65215c0 --- /dev/null +++ b/frontend/views/site/services/smm.php @@ -0,0 +1,365 @@ +title = 'РаÑкрутка Ñайта Киев | SEO продвижение интернет-магазина в поиÑковых ÑиÑтемах (Google, ЯндекÑ) Ñео Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐšÐ¸ÐµÐ², Харьков, ДнепропетровÑк, Украина'; +$this->params['breadcrumbs'][] = 'SMM'; + +$this->registerCssFile('/css/service_smm.css'); + +$this->registerJsFile('/js/services/smm.js'); +?> +
+
+ beginContent('@app/views/blocks/services.php', ['tab' => 2]); ?> + endContent(); ?> + +

Ðайдем и приведем


вашу ЦРна Ñайт

+
+

Онлайн-Ð±Ð¸Ð·Ð½ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть
прибыльным!

+ beginContent('@app/views/blocks/orders-audit.php'); ?> + endContent(); ?> +

Отправьте заÑвку и получите анализ
от профеÑÑионалов

+
+
+
+
+
+ +
+
+
+

Более:

+
+
+
+

30

+

уÑпешных
проектов

+ +
+
+
+

Индивидуальный
подход

+
+
+
+

ДейÑтвеннаÑ
ÑтратегиÑ

+
+
+
+

ОпытнаÑ
команда

+
+
+
+
+
+
+
+ +

Зачем вам SMM?

+
+
+
+

Хотите привлечь
клиентов из новых
иÑточников

+
+
+
+

ТребуетÑÑ Ð±Ñ€ÐµÐ½Ð´Ð¸Ð½Ð³ по качеÑтвенной ЦÐ

+
+
+
+

Ðужно меÑто длÑ
Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ Ð»Ð¾Ñльной
аудиторией

+
+
+
+

ТребуетÑÑ Ð²Ñ‹ÑокаÑ
конверÑÐ¸Ñ Ñ Ñоциального
ремаркетинга

+
+
+
+

Ðужно продавать
излишки акционных
товаров

+
+
+
+

ПовыÑить траÑтовоÑть
Ñайта

+
+
+
+ +
+
+
+

Площадка длÑ
коммуникации

+
+
+
+

РоÑÑ‚
поÑещаемоÑти
Ñайта

+
+
+
+

Повышение
траÑтовоÑти
Ñайта

+
+
+
+

БыÑтрое
индекÑирование
новых Ñтраниц

+
+
+
+

Брендинг

+
+
+
+
+
+

КейÑ

+
+
semena.in.ua
+
+
+ +

+35000%

+

репоÑтов

+
+
+ +

> в 2 раза

+

поÑещаемоÑть
Ñайта Ñ Facebook

+
+
+ +

+150%

+

подпиÑчиков

+
+
+
+
+ +
+

Команда на проект

+
+
    +
  • +

    Ðккаунт-менеджер

    +
  • +
  • +

    Интернет-маркетолог

    +
  • +
  • +

    SMM-менеджер

    +
  • +
+
    +
  • +

    Дизайнер

    +
  • +
  • +

    Ðналитик

    +
  • +
+
+
+
+
+

5 причин работать Ñ Ð½Ð°Ð¼Ð¸

+
+
+
+

1

+

Работаем не Ñ 9 до 18, а тогда,
когда ваша Ñ†ÐµÐ»ÐµÐ²Ð°Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ
находитÑÑ Ð² ÑоцÑетÑÑ…. мы будет поÑтить
тогда, когда Ñта наиболее
Ñффективно.

+
+
+

2

+

У Ð½Ð°Ñ Ð³Ð¸Ð±ÐºÐ¸Ðµ цены и открытый бюджет.
Ðам нечего Ñкрывать - вы Ñами
увидите, наÑколько Ñффективно
раÑходуютÑÑ Ð²Ð°ÑˆÐ¸ деньги.

+
+ +
+

3

+

Охватываем вÑе популÑрные
ÑообщеÑтва, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð±Ð»Ð¾Ð³Ð¸ и форумы.
Видео, инфографика, Ñтатьи
и иллюÑтрации –
любой каприз.

+
+
+

4

+

Мы любим SMM и знаем о нем больше,
чем бабушки на лавочке
о ÑоÑедÑÑ….

+
+
+

5

+

Ðаша команда уважает
и Ñоблюдает Ñроки.
Ðам не нужно напоминать,
мы заинтереÑованы в результате
больше ваÑ.

+
+
+

Реще мы поÑещаем Ñеминары, конференции, общаемÑÑ, Ñ ÐºÐ¾Ð»Ð»ÐµÐ³Ð°Ð¼Ð¸, обмениваемÑÑ Ð·Ð½Ð°Ð½Ð¸Ñми, читаем профеÑÑиональную литературу.,
ПоÑтому и информированы лучше, чем оÑтальные.

+ +
+ +
+
+
+
+

ВзаимодейÑтвуйте Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ð¾Ñ€Ð¸ÐµÐ¹
Ñоциальных Ñетей

+
+

Социальные Ñети Ñамый быÑтрораÑтущий Ñегмент
интернет-рынка. Миллионы пользователей в Facebook,
Вконтактемогут Ñтать вашими клиентами. Ðеплохо,
правда. Плохо то, что интернет-магазины зачаÑтую
ограничиваютÑÑ Ð½ÐµÑколькими рекламными публикациÑми
и, не получив результата, заÑвлÑÑŽÑ‚, что ÑоцÑети
неÑффективны. Мы идем другим путем и работаем
комплекÑно.

+
+

В чем же фишка

+
+

+ 1. Ð¢Ð°Ñ€Ð³ÐµÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ€ÐµÐºÐ»Ð°Ð¼Ð° – макÑимум Ñффекта даже Ñ
+     Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ñ‹Ð¼ бюджетом.
+ 2. ÐŸÐ¾Ð´Ñ€Ð¾Ð±Ð½Ð°Ñ ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ.
+ 3. ÐžÑ€Ð³Ð°Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐºÐ¾Ð½ÐºÑƒÑ€Ñов.
+ 4. Продвижение мероприÑтий.
+ 5. Создание вируÑного контента.
+ 6. Дизайн Ñтраниц. Wiki-разметка ВКонтакте.
+ 7. ÐœÐ¾Ð´ÐµÑ€Ð°Ñ†Ð¸Ñ ÑообщеÑтв и общение Ñ ÑƒÑ‡Ð°Ñтниками.
+ 8. ПоÑтоÑнный роÑÑ‚ лидов и повторных продаж.
+ 9. Ðналитика и отчетноÑть.
+

+
+
+

Работа Ñ ÑоцÑетÑми –
долгий и кропотливый труд,
доверьтеÑÑŒ профеÑÑионалам
и получайте новых клиентов
и лоÑльную аудиторию.

+
+
+

Ðртем ДоброÑовеÑтный
SMM-ÑпециалиÑÑ‚

+
+
+
+
+
+
+

СоцÑети, в которых мы работаем

+
+ vk.com + vimeo.com + pinterest.com + youtube.com + fb.com + twitter.com + plus.google.com +
+
+
+

ÐÐ°Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽÑ‚
за результаты, а не краÑивые отчеты

+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+ +

Ð¡Ð¾Ð»Ð¾Ð¼Ñ–Ñ Ð¡Ð¸Ð²Ð¸Ðº
Маркетинг-менеджер
extremstyle.ua

+
+
+

+ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» Ñопровождает Ð½Ð°Ñ Ñ Ñамого начала деÑтельноÑти в Ñети интернет. Ð Ñто уже более деÑÑти лет. ДолгоÑрочноÑть ÑотрудничеÑтва ÑвлÑетÑÑ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ показателем его уÑпешноÑти и Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° пути Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‰Ð¸Ñ… задач и целей. ЯвлÑÑÑÑŒ Ñоздателем наших Ñайтов, ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» обеÑпечивает не только их беÑперебойное техничеÑкое обÑлуживание и лидирующие позиции, но и полное ÑоответÑтвие новейшим тенденциÑм в интернет-технологиÑÑ…. ÐарÑду Ñ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ наших текущих задач, ÑпециалиÑты «ArtWeb» поÑтоÑнно предлагают немного больше, чем то, Ñ Ñ‡ÐµÐ¼ мы обратилиÑÑŒ, то еÑть решение задач более выÑокого уровнÑ. Внедрение, казалоÑÑŒ бы, фантаÑтичеÑких замыÑлов в развитие Ñайта, иногда опережает даже Ñамое Ñмелое планирование. + +

Важным аÑпектом нашего ÑотрудничеÑтва Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть целенаправленного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкой базой и Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐµÐµ не только количеÑтвенных, но и качеÑтвенных показателей, что непоÑредÑтвенно влиÑет на роÑÑ‚ прибыли нашей компании. ОтветÑтвенноÑть, гибкоÑть, умение работать на результат, креативноÑть мышлениÑ, оперативное реагирование на вÑе наши запроÑÑ‹, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¾ÑведомленноÑть обо вÑем проиÑходÑщем на рынке новейших интернет-технологий и отчаÑти их авторÑÐºÐ°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° – отличительные характериÑтики нашего надежного партнера – компании «ArtWeb». + + Ðа протÑжении вÑего периода ÑотрудничеÑтва у Ð½Ð°Ñ Ð½Ðµ было повода уÑомнитьÑÑ Ð² том, что в «ArtWeb» работают лучшие web-ÑпециалиÑты. СотрудничеÑтво Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑоÑтавлÑющей лидерÑтва в Ñегменте нашей деÑтельноÑти. +

+
+
+
+
+
+ +

Сергей Левицкий
ПреÑÑ-Ñекретарь
ukravtodor.gov.ua

+
+
+

+ Укравтодор Ñотрудничает Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» уже около года, в течение которого было реализовано неÑколько Ñложнейших веб-проектов - в кратчайший Ñрок Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ веб-Ñайта ГоÑагентÑва автомобильных дорог Украины, а также Ñ€Ñд интерактивных веб-приложений, информирующих о ÑоÑтоÑнии проезда и качеÑтве дорожного покрытиÑ. + +

С Ñамого начала ÑовмеÑтной работы ÑпециалиÑты компании продемонÑтрировали Ñвой выÑокий профеÑÑионализм, гибкоÑть, и оперативноÑть в решении вÑех возникающих вопроÑов, что позволило модернизировать официальное интернет-предÑтавительÑтво Укравтодора за рекордно короткий Ñрок - 3 меÑÑца. Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº предыдущую верÑию веб-Ñайта, уÑтаревшую и не функциональную, Ñ€Ñд других компаний-разработчиков пыталиÑÑŒ уÑовершенÑтвовать на протÑжении 9 лет. + +

Этот уÑпешный опыт продемонÑтрировал ÑффективноÑть ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» и потому вÑе поÑледующие интернет- проекты Укравтодора были переданы в разработку именно ей. + +

СпаÑибо руководÑтву и коллективу компании за понимание и поддержку в решении Ñложных и, как правило, чрезвычайно оперативных задач. + +

ПреÑÑ-Ñлужба Укравтодора + +

+
+
+
+
+
+ +

Ðндрей Богатырь
ИÑполнительный менеджер проекта
censor.net.ua

+
+
+

+ Мы обратилиÑÑŒ к ArtWeb Ñ Ñ†ÐµÐ»ÑŒÑŽ улучшить качеÑтво индекÑации Ñайта поиÑковыми ÑиÑтемами и увеличить трафик от ключевых поиÑковых операторов. Ð”Ð»Ñ Ñтого «ArtWeb» нужно было провеÑти анализ наших недоработок по оптимизации и предоÑтавить план уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. Главной целью было добитьÑÑ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‚Ð¾ÐºÐ° трафика из поиÑковых ÑиÑтем до ÑƒÑ€Ð¾Ð²Ð½Ñ Ð±Ð¾Ð»ÐµÐµ 50 тыÑ. переходов в Ñутки, в итоге через год поÑле Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ кумулÑтивный Ñффект дал приток трафика более 200 тыÑÑч переходов в Ñутки. + +

Благодарим «ArtWeb» за Ñлаженную и прозрачную ÑиÑтему по взаимодейÑтвию в процеÑÑе работы. Результат ÑотрудничеÑтва Ñ Â«ArtWeb» полноÑтью оправдал ожиданиÑ. Рекомендую вÑем Ñту компанию как профеÑÑионалов в облаÑти Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. + +

+
+
+
+
+ +
+
+
+
+

Как мы работаем

+
+
+
+
+ +

Ðнализ ЦÐ
и конкурентов

+
+
+
+
+ +

Выбор площадок
Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ

+
+
+
+
+ +

Создание
ÑообщеÑтва

+
+
+
+
+ +

Ðаполнение,
модерациÑ, поддержка

+
+
+
+
+ +

Дизайн
и контент-план

+
+
+
+
+ +

Проводим конкурÑÑ‹,
акции, голоÑованиÑ

+
+
+
+
+ +

ОтчетноÑть

+
+
+
+
+ +

ОтÑлеживаем
KPI

+
+
+
+
+
+
+ \ No newline at end of file diff --git a/frontend/views/site/services/usability.php b/frontend/views/site/services/usability.php new file mode 100644 index 0000000..1912c8e --- /dev/null +++ b/frontend/views/site/services/usability.php @@ -0,0 +1,365 @@ +title = 'РаÑкрутка Ñайта Киев | SEO продвижение интернет-магазина в поиÑковых ÑиÑтемах (Google, ЯндекÑ) Ñео Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐšÐ¸ÐµÐ², Харьков, ДнепропетровÑк, Украина'; +$this->params['breadcrumbs'][] = 'Юзабилити'; + +$this->registerCssFile('/css/service_usability.css'); + +$this->registerJsFile('/js/services/usability.js'); +?> +
+
+ beginContent('@app/views/blocks/services.php', ['tab' => 4]); ?> + endContent(); ?> + +

Ðайдем и приведем


вашу ЦРна Ñайт

+
+

Онлайн-Ð±Ð¸Ð·Ð½ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть
прибыльным!

+ beginContent('@app/views/blocks/orders-audit.php'); ?> + endContent(); ?> +

Отправьте заÑвку и получите анализ
от от профеÑÑионалов

+
+
+ +
+
+
+
+

Индивидуальный
подход

+ +
+
+
+

ДейÑтвеннаÑ
ÑтратегиÑ

+
+
+
+

ОпытнаÑ
команда

+
+
+
+

Глубокий
анализ

+
+
+
+
+
+
+
+ +

Зачем вам Usability?

+
+
+
+

Увеличить количеÑтво
+ заÑвок

+
+
+
+

Уменьшить процент
+ отказов

+
+
+
+

Снизить времÑ
+ загрузки Ñтраницы

+
+
+
+

Улучшить ПФ и
+ прибыльноÑть Ñайта

+
+
+
+

Снизить ÑтоимоÑть Ð¿Ñ€Ð¸Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð°
+ за Ñчет роÑта конверÑии

+
+
+
+ +
+
+
+

Увеличить
+ глубину проÑмотров

+
+
+
+

ПравильноразмеÑтить
+ рекламные блоки

+
+
+
+

ПовыÑить CTR
+ и подпиÑку

+
+
+
+

РоÑÑ‚ поÑтоÑнных
+ читателей

+
+
+
+
+
+
+

Команда на проект

+
+
    +
  • +

    Ðккаунт-менеджер

    +
  • +
  • +

    Интернет-маркетолог

    +
  • +
  • +

    Web-аналитик

    +
  • +
+
    +
  • +

    Дизайнер

    +
  • +
  • +

    ПрограммиÑÑ‚

    +
  • +
+
+
+
+
+
+

С Ñтой уÑлугой чаÑто заказывают

+
+
+ +
+
+

+ ПоиÑÐºÐ¾Ð²Ð°Ñ Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ +

+
+
+
+
+ +
+
+

+ Продвижение в
Ñоциальных ÑетÑÑ… +

+
+
+
+
+ +
+
+

+ Редизайн +

+
+
+
+
+
+
+
+

Что мы анализируем

+
+
+
+ +
+
+

Ð“Ð»Ð°Ð²Ð½Ð°Ñ Ñтраница

+
+
+
+
+ +
+
+

ÐавигациÑ

+
+
+
+
+ +
+
+

Логика меню

+
+
+
+
+ +
+
+

Форма заказа
+ и обратной ÑвÑзи

+
+
+
+
+ +
+
+

СервиÑÑ‹

+
+
+
+
+ +
+
+

Контент:
+ текÑÑ‚, фото, видео

+
+
+
+
+ +
+
+

Отображение
+ в разных браузерах

+
+
+
+
+ +
+
+

Дизайн

+
+
+
+
+
+
+
+

+ Под понÑтием «юзабилити Ñайта» + подразумеваетÑÑ Ð¿Ñ€Ð¾Ñтота и удобÑтво его + иÑпользованиÑ, ÑпоÑобноÑть удержать + Ñ‡Ð¸Ñ‚Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ клиента. Юзабилити решает + ключевые проблемы интернет-проектов: + лоÑльноть поÑетителей, выÑÐ¾ÐºÐ°Ñ ÐºÐ¾Ð½Ð²ÐµÑ€ÑÐ¸Ñ Ð¸ + прибыльноÑть. +

+
+
+
+

Довольные клиенты и выÑÐ¾ÐºÐ°Ñ ÐºÐ¾Ð½Ð²ÐµÑ€ÑиÑ

+
+

Ð’Ñ‹ Ñделали краÑивый дизайн, наполнили Ñайт информацией, + но глубина проÑмотров Ð½Ð¸Ð·ÐºÐ°Ñ Ð¸ заказов практичеÑки нет. + Возможно, клиентам неудобно на Ñайте: Ð·Ð°Ð¿ÑƒÑ‚Ð°Ð½Ð½Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð° + заказа, корзина и контактные данные ÑпрÑтаны лучше + ÑтратегичеÑкого запаÑа, нет гарантий Ð´Ð»Ñ Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»ÐµÐ¹. + И Ñто только вершина айÑберга.

+
+
+

+ Чтобы определить, удобен ли Ñайт ответьте на три вопроÑа:
+ 1.Легко ли поÑетителÑм на Ñайте?
+ 2.Почему оÑтаютÑÑ Ð±Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ‹Ðµ корзины?
+ 3.Решает ли Ñайт проблему клиентов?
+ ЗатруднÑетеÑÑŒ Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ Ñ Ð¾Ð´Ð½Ð¸Ð¼ ответом, тогда обратитеÑÑŒ к ÑпециалиÑтам. +

+
+
+

Что мы делаем:

+ + • Тщательно анализируем ÑтатиÑтику
+    Ð¿Ð¾Ñещений.
+ • С помощью ГРи ЯМ определÑем
+    Ñлабые меÑта Ñайта.
+ • Создаем тепловые карты.
+ • ОпределÑем идеальный Ñценарий
+    Ð¿Ð¾ÑещениÑ.
+ • Оцениваем Ñтруктуру Ñайта.

+
+
+

Ðнтон ЗозулÑ
руководитель отдела лоÑльноÑти

+
+
+
+
+
+
+

ÐÐ°Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽÑ‚
за результаты, а не краÑивые отчеты

+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+ +

Ð¡Ð¾Ð»Ð¾Ð¼Ñ–Ñ Ð¡Ð¸Ð²Ð¸Ðº
Маркетинг-менеджер
extremstyle.ua

+
+
+

+ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» Ñопровождает Ð½Ð°Ñ Ñ Ñамого начала деÑтельноÑти в Ñети интернет. Ð Ñто уже более деÑÑти лет. ДолгоÑрочноÑть ÑотрудничеÑтва ÑвлÑетÑÑ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ показателем его уÑпешноÑти и Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° пути Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‰Ð¸Ñ… задач и целей. ЯвлÑÑÑÑŒ Ñоздателем наших Ñайтов, ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» обеÑпечивает не только их беÑперебойное техничеÑкое обÑлуживание и лидирующие позиции, но и полное ÑоответÑтвие новейшим тенденциÑм в интернет-технологиÑÑ…. ÐарÑду Ñ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ наших текущих задач, ÑпециалиÑты «ArtWeb» поÑтоÑнно предлагают немного больше, чем то, Ñ Ñ‡ÐµÐ¼ мы обратилиÑÑŒ, то еÑть решение задач более выÑокого уровнÑ. Внедрение, казалоÑÑŒ бы, фантаÑтичеÑких замыÑлов в развитие Ñайта, иногда опережает даже Ñамое Ñмелое планирование. + +

Важным аÑпектом нашего ÑотрудничеÑтва Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть целенаправленного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкой базой и Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐµÐµ не только количеÑтвенных, но и качеÑтвенных показателей, что непоÑредÑтвенно влиÑет на роÑÑ‚ прибыли нашей компании. ОтветÑтвенноÑть, гибкоÑть, умение работать на результат, креативноÑть мышлениÑ, оперативное реагирование на вÑе наши запроÑÑ‹, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¾ÑведомленноÑть обо вÑем проиÑходÑщем на рынке новейших интернет-технологий и отчаÑти их авторÑÐºÐ°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° – отличительные характериÑтики нашего надежного партнера – компании «ArtWeb». + + Ðа протÑжении вÑего периода ÑотрудничеÑтва у Ð½Ð°Ñ Ð½Ðµ было повода уÑомнитьÑÑ Ð² том, что в «ArtWeb» работают лучшие web-ÑпециалиÑты. СотрудничеÑтво Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑоÑтавлÑющей лидерÑтва в Ñегменте нашей деÑтельноÑти. +

+
+
+
+
+
+ +

Сергей Левицкий
ПреÑÑ-Ñекретарь
ukravtodor.gov.ua

+
+
+

+ Укравтодор Ñотрудничает Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» уже около года, в течение которого было реализовано неÑколько Ñложнейших веб-проектов - в кратчайший Ñрок Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ веб-Ñайта ГоÑагентÑва автомобильных дорог Украины, а также Ñ€Ñд интерактивных веб-приложений, информирующих о ÑоÑтоÑнии проезда и качеÑтве дорожного покрытиÑ. + +

С Ñамого начала ÑовмеÑтной работы ÑпециалиÑты компании продемонÑтрировали Ñвой выÑокий профеÑÑионализм, гибкоÑть, и оперативноÑть в решении вÑех возникающих вопроÑов, что позволило модернизировать официальное интернет-предÑтавительÑтво Укравтодора за рекордно короткий Ñрок - 3 меÑÑца. Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº предыдущую верÑию веб-Ñайта, уÑтаревшую и не функциональную, Ñ€Ñд других компаний-разработчиков пыталиÑÑŒ уÑовершенÑтвовать на протÑжении 9 лет. + +

Этот уÑпешный опыт продемонÑтрировал ÑффективноÑть ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» и потому вÑе поÑледующие интернет- проекты Укравтодора были переданы в разработку именно ей. + +

СпаÑибо руководÑтву и коллективу компании за понимание и поддержку в решении Ñложных и, как правило, чрезвычайно оперативных задач. + +

ПреÑÑ-Ñлужба Укравтодора + +

+
+
+
+
+
+ +

Ðндрей Богатырь
ИÑполнительный менеджер проекта
censor.net.ua

+
+
+

+ Мы обратилиÑÑŒ к ArtWeb Ñ Ñ†ÐµÐ»ÑŒÑŽ улучшить качеÑтво индекÑации Ñайта поиÑковыми ÑиÑтемами и увеличить трафик от ключевых поиÑковых операторов. Ð”Ð»Ñ Ñтого «ArtWeb» нужно было провеÑти анализ наших недоработок по оптимизации и предоÑтавить план уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. Главной целью было добитьÑÑ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‚Ð¾ÐºÐ° трафика из поиÑковых ÑиÑтем до ÑƒÑ€Ð¾Ð²Ð½Ñ Ð±Ð¾Ð»ÐµÐµ 50 тыÑ. переходов в Ñутки, в итоге через год поÑле Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ кумулÑтивный Ñффект дал приток трафика более 200 тыÑÑч переходов в Ñутки. + +

Благодарим «ArtWeb» за Ñлаженную и прозрачную ÑиÑтему по взаимодейÑтвию в процеÑÑе работы. Результат ÑотрудничеÑтва Ñ Â«ArtWeb» полноÑтью оправдал ожиданиÑ. Рекомендую вÑем Ñту компанию как профеÑÑионалов в облаÑти Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. + +

+
+
+
+
+ +
+
+ \ No newline at end of file diff --git a/frontend/views/site/services/webcreat.php b/frontend/views/site/services/webcreat.php new file mode 100644 index 0000000..fbe091c --- /dev/null +++ b/frontend/views/site/services/webcreat.php @@ -0,0 +1,414 @@ +title = 'РаÑкрутка Ñайта Киев | SEO продвижение интернет-магазина в поиÑковых ÑиÑтемах (Google, ЯндекÑ) Ñео Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐšÐ¸ÐµÐ², Харьков, ДнепропетровÑк, Украина'; +$this->params['breadcrumbs'][] = 'Создание Ñайтов'; + +$this->registerCssFile('/css/service_webcreat.css'); + +$this->registerJsFile('/js/services/webcreat.js'); +?> +
+
+ beginContent('@app/views/blocks/services.php', ['tab' => 3]); ?> + endContent(); ?> + +

Лучшее решение


Ð´Ð»Ñ Ð±Ð¸Ð·Ð½ÐµÑа

+
+

Онлайн-Ð±Ð¸Ð·Ð½ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть
прибыльным!

+ beginContent('@app/views/blocks/orders-audit.php'); ?> + endContent(); ?> +

Отправьте заÑвку и получите анализ
от от профеÑÑионалов

+
+
+ +
+
+
+
+

Созданных
+ проектов +

+ +
+
+
+

индивидуальный
подход +

+
+
+
+

От визитки до
портала +

+
+
+
+

ОпытнаÑ
команда +

+
+
+
+
+
+
+
+ +

Зачем вам наÑтройка аналитики на Ñайте?

+
+
+
+

Ðовый иÑточник
прибыли

+
+
+
+

БыÑÑ‚Ñ€Ð°Ñ Ð¾ÐºÑƒÐ¿Ð°ÐµÐ¼Ð¾Ñть
затрат

+
+
+
+

Дешевый Ñтарт
нового бизнеÑа

+
+
+
+

Современный дизайн

+
+
+
+

ОриентированноÑть
на конверÑии

+
+
+
+

User-friendly
Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ +

+
+
+
+ +
+
+
+

Ð’Ñ‹ планируете выÑоко
нагруженный проект

+
+
+
+

Команда на проект

+
+
+
+

Поддержка поÑле
запуÑка

+
+
+
+

БыÑтрое реагирование

+
+
+
+
+
+
+
+
+
+
+

БыÑтрый запуÑк

+
+
+
+

ОриентированноÑть
на конверÑии +

+
+
+
+

Дешевый Ñтарт
нового бизнеÑа +

+
+
+
+

Юзабилити
теÑÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ + +

+
+
+
+

Тренд на рынке + +

+
+
+
+
+
+

КейÑ

+
+
semena.in.ua
+
+
+ +

100% интеграциÑ
+ Ñ Ð¿Ñ€Ð¾Ð´Ð°Ð¶Ð°Ð¼Ð¸

+
+
+ +

СобÑтвеннаÑ
+ CMS online
+ marcketing friendly

+
+
+ +

Глубина проÑмотра
+ Ñайта

+
+
+
+
+
+

Команда на проект

+
+
    +
  • +

    Проджект-менеджер

    +
  • +
  • +

    Интернет-маркетолог

    +
  • +
  • +

    ЮзабилиÑÑ‚

    +
  • +
+
    +
  • +

    Дизайнер

    +
  • +
  • +

    ПрограммиÑÑ‚

    +
  • +
+
+
+
+
+

5 причин заказать у Ð½Ð°Ñ Ñоздание Ñайта

+
+
+
+

1

+

Делаем уÑпешные проекты, + которые ÑтановÑÑ‚ÑÑ Ð»Ð¸Ð´ÐµÑ€Ð°Ð¼Ð¸ + в Ñвоих направлениÑÑ…. +

+
+
+

2

+

Ð’Ñ‹ получаете полный ÐºÐ¾Ð¼Ð¿Ð»ÐµÐºÑ Ñ€Ð°Ð±Ð¾Ñ‚ + по развитию бизнеÑа в одном меÑте - + Ñоздание и продвижение Ñайта + от одного иÑполнителÑ. + +

+
+ +
+

3

+

С проектом работают + профеÑÑиональные иÑполнители, + которые знают что такое Ñроки. +

+
+
+

4

+

СтоимоÑть ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñайта в нашей Ñтудии + очень лоÑльна Ð´Ð»Ñ Ñ‚ÐµÑ…, кто хочет заказать + дальнейшее продвижение Ñайта. + +

+
+
+

5

+

Мы поможем ÑоÑтавить правильное ТЗ, + и поÑтавить задачи, которые дейÑтвительно + важны бизнеÑу. + + +

+
+
+

Реще мы поÑещаем Ñеминары, конференции, общаемÑÑ, Ñ ÐºÐ¾Ð»Ð»ÐµÐ³Ð°Ð¼Ð¸, обмениваемÑÑ Ð·Ð½Ð°Ð½Ð¸Ñми, читаем профеÑÑиональную литературу.,
ПоÑтому и информированы лучше, чем оÑтальные.

+ +
+ +
+
+
+
+

Создание Ñайтов - задача Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ„ÐµÑÑионалов +

+
+
+
    +
  • Вам нужен быÑтрый функциональный Ñайт Ñ Ñовременным + дизайном и грамотной Ñтруктурой на PHP?
  • +
  • Ð’Ñ‹ хотите выÑоких конверÑий?
  • +
  • Вам нужна ÑƒÐ´Ð¾Ð±Ð½Ð°Ñ Ð°Ð´Ð¼Ð¸Ð½ÐºÐ°, в которой будет функционал + от анализа продаж до Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… на Ñайте?
  • +
+

И вÑе Ñто нужно в Ñтрогие Ñроки?

+
+
+
+

+ Тогда вы пришли по адреÑу.

+ + 1. ÐžÐ¿Ñ‹Ñ‚Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° - над Ñайтом работают юзабилиÑÑ‚, дизайнер, программиÑÑ‚ под контролем маркетолога и проджект-менеджера.
+ 2. Контроль Ñтапов иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ - во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð»Ð°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ - точные Ñроки по каждому Ñтапу.
+ 3. Онлайн-маркетинг friendly CMS - разработка нашей Ñтудии, отвечает Ñовременным тенденциÑм, ÑƒÐ´Ð¾Ð±Ð½Ð°Ñ Ð´Ð»Ñ Ð´Ð°Ð»ÑŒÐ½ÐµÐ¹ÑˆÐµÐ³Ð¾ продвижениÑ.
+ 4. Ð’Ñ‹Ñокий коÑффициент конверÑий - Ñайт Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° работ делаетÑÑ Ð¿Ð¾Ð´ оÑновные KPI вашего Ñайта (продажи, глубину, CTR-рекламы и др.).
+ 5. Выдерживает выÑокие нагрузки - еÑть опыт работы Ñ ÐºÑ€ÑƒÐ¿Ð½Ñ‹Ð¼Ð¸ порталами.
+ 6. Ð”ÐµÑˆÐµÐ²Ð°Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ° проекта - низкие цены на дальнейшую поддержку проекта при заказе продвижениÑ.
+ 7. Индивидуальный подход - у Ð½Ð°Ñ Ð½ÐµÑ‚ конвейерных решений.
+ 8. Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ñ Ñайтом - внедрÑем на Ñайте любые задачи: от Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ 1С до Ð½Ð°Ð»Ð°Ð¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ CRM, Ñоциальных кнопок или онлайн-оплат и Ñ‚.д. +

+
+
+

Ñоздание Ñайтов и интернет-магазинов в чаÑтноÑти. ОбратившиÑÑŒ к нам, можете быть уверены Ñ Ð¿ÐµÑ€Ð²Ð¾Ð³Ð¾ днÑ, что продукт, который вы получите, ÑоответÑтвует Ñовременным тенденциÑм и решает поÑтавленные задачи, будь то продажи, получение новых контактов или Ñнижение нагрузки Ñall-центра. + +

+
+
+

Ðндрей Белый
руководитель отдела разработки

+
+
+
+
+
+
+

ÐÐ°Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽÑ‚
за результаты, а не краÑивые отчеты

+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+ +

Ð¡Ð¾Ð»Ð¾Ð¼Ñ–Ñ Ð¡Ð¸Ð²Ð¸Ðº
Маркетинг-менеджер
extremstyle.ua

+
+
+

+ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» Ñопровождает Ð½Ð°Ñ Ñ Ñамого начала деÑтельноÑти в Ñети интернет. Ð Ñто уже более деÑÑти лет. ДолгоÑрочноÑть ÑотрудничеÑтва ÑвлÑетÑÑ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ показателем его уÑпешноÑти и Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð½Ð° пути Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‰Ð¸Ñ… задач и целей. ЯвлÑÑÑÑŒ Ñоздателем наших Ñайтов, ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Â«ArtWeb» обеÑпечивает не только их беÑперебойное техничеÑкое обÑлуживание и лидирующие позиции, но и полное ÑоответÑтвие новейшим тенденциÑм в интернет-технологиÑÑ…. ÐарÑду Ñ Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ наших текущих задач, ÑпециалиÑты «ArtWeb» поÑтоÑнно предлагают немного больше, чем то, Ñ Ñ‡ÐµÐ¼ мы обратилиÑÑŒ, то еÑть решение задач более выÑокого уровнÑ. Внедрение, казалоÑÑŒ бы, фантаÑтичеÑких замыÑлов в развитие Ñайта, иногда опережает даже Ñамое Ñмелое планирование. + +

Важным аÑпектом нашего ÑотрудничеÑтва Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть целенаправленного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкой базой и Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐµÐµ не только количеÑтвенных, но и качеÑтвенных показателей, что непоÑредÑтвенно влиÑет на роÑÑ‚ прибыли нашей компании. ОтветÑтвенноÑть, гибкоÑть, умение работать на результат, креативноÑть мышлениÑ, оперативное реагирование на вÑе наши запроÑÑ‹, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¾ÑведомленноÑть обо вÑем проиÑходÑщем на рынке новейших интернет-технологий и отчаÑти их авторÑÐºÐ°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° – отличительные характериÑтики нашего надежного партнера – компании «ArtWeb». + + Ðа протÑжении вÑего периода ÑотрудничеÑтва у Ð½Ð°Ñ Ð½Ðµ было повода уÑомнитьÑÑ Ð² том, что в «ArtWeb» работают лучшие web-ÑпециалиÑты. СотрудничеÑтво Ñ Â«ArtWeb» ÑвлÑетÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑоÑтавлÑющей лидерÑтва в Ñегменте нашей деÑтельноÑти. +

+
+
+
+
+
+ +

Сергей Левицкий
ПреÑÑ-Ñекретарь
ukravtodor.gov.ua

+
+
+

+ Укравтодор Ñотрудничает Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» уже около года, в течение которого было реализовано неÑколько Ñложнейших веб-проектов - в кратчайший Ñрок Ñоздана Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ веб-Ñайта ГоÑагентÑва автомобильных дорог Украины, а также Ñ€Ñд интерактивных веб-приложений, информирующих о ÑоÑтоÑнии проезда и качеÑтве дорожного покрытиÑ. + +

С Ñамого начала ÑовмеÑтной работы ÑпециалиÑты компании продемонÑтрировали Ñвой выÑокий профеÑÑионализм, гибкоÑть, и оперативноÑть в решении вÑех возникающих вопроÑов, что позволило модернизировать официальное интернет-предÑтавительÑтво Укравтодора за рекордно короткий Ñрок - 3 меÑÑца. Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº предыдущую верÑию веб-Ñайта, уÑтаревшую и не функциональную, Ñ€Ñд других компаний-разработчиков пыталиÑÑŒ уÑовершенÑтвовать на протÑжении 9 лет. + +

Этот уÑпешный опыт продемонÑтрировал ÑффективноÑть ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ «ArtWeb» и потому вÑе поÑледующие интернет- проекты Укравтодора были переданы в разработку именно ей. + +

СпаÑибо руководÑтву и коллективу компании за понимание и поддержку в решении Ñложных и, как правило, чрезвычайно оперативных задач. + +

ПреÑÑ-Ñлужба Укравтодора + +

+
+
+
+
+
+ +

Ðндрей Богатырь
ИÑполнительный менеджер проекта
censor.net.ua

+
+
+

+ Мы обратилиÑÑŒ к ArtWeb Ñ Ñ†ÐµÐ»ÑŒÑŽ улучшить качеÑтво индекÑации Ñайта поиÑковыми ÑиÑтемами и увеличить трафик от ключевых поиÑковых операторов. Ð”Ð»Ñ Ñтого «ArtWeb» нужно было провеÑти анализ наших недоработок по оптимизации и предоÑтавить план уÑовершенÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. Главной целью было добитьÑÑ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‚Ð¾ÐºÐ° трафика из поиÑковых ÑиÑтем до ÑƒÑ€Ð¾Ð²Ð½Ñ Ð±Ð¾Ð»ÐµÐµ 50 тыÑ. переходов в Ñутки, в итоге через год поÑле Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ кумулÑтивный Ñффект дал приток трафика более 200 тыÑÑч переходов в Ñутки. + +

Благодарим «ArtWeb» за Ñлаженную и прозрачную ÑиÑтему по взаимодейÑтвию в процеÑÑе работы. Результат ÑотрудничеÑтва Ñ Â«ArtWeb» полноÑтью оправдал ожиданиÑ. Рекомендую вÑем Ñту компанию как профеÑÑионалов в облаÑти Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñайта. + +

+
+
+
+
+ +
+
+
+
+

Как мы работаем

+
+
+
+
+ +

Ðнализ
+ тематики
+ у конкурентов

+
+
+
+
+ +

ÐапиÑание
+ ÑовмеÑтного
ТЗ +

+
+
+
+
+ +

СоÑтавление
Ñтруктуры
Ñайта +

+
+
+
+
+ +

Создание
макетов
+ виджетов

+
+
+ +
+
+ +

ВерÑтка проекта

+
+
+
+
+ +

Обучение
работе
Ñ Ñайтом

+
+
+
+
+ +

ПривÑзка
Ñайта к CMS

+
+
+
+
+
+
+ \ No newline at end of file diff --git a/frontend/views/site/signup.php b/frontend/views/site/signup.php new file mode 100644 index 0000000..58ccd8e --- /dev/null +++ b/frontend/views/site/signup.php @@ -0,0 +1,35 @@ +title = 'Signup'; +$this->params['breadcrumbs'][] = $this->title; +?> + diff --git a/frontend/views/site/team.php b/frontend/views/site/team.php new file mode 100644 index 0000000..44523d0 --- /dev/null +++ b/frontend/views/site/team.php @@ -0,0 +1,255 @@ +title = 'Команда'; +$this->params['breadcrumbs'][] = $this->title; + +$this->registerCssFile('css/team.css'); +$this->registerJsFile('js/team.js'); +$this->registerJsFile('js/highcharts.js'); +$this->registerJsFile('js/graph.js'); +?> +
+
+
+
+
+
+
+

СреднÑÑ Ð¾ÐºÑƒÐ¿Ð°ÐµÐ¼Ð¾Ñть инвеÑтиций в онлайн меньше года

+

Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð²Ñ‹ думаете, что Ñто Ñмелое утверждение? Ðо Ñто только пока вы не начали Ñотрудничать Ñ ÐртВеб. Эффективные Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ñложных проблем и роÑÑ‚ бизнеÑа клиента – главные ценноÑти компании. И вот лишь некоторые из наших преимущеÑтв

+
+
+
+
+
+
+
+
+
+
+

Ðнализ и иÑÑледованиÑ

+
+

+ Мы вÑегда «в тренде» и знаем ваших конкурентов лучше, чем вы, поÑтому Ñ Ð½Ð°Ð¼Ð¸ вы будете на шаг впереди. +

+
+
+
+
+

Обучение и развитие

+
+

+ За более чем 11-летний опыт работы в маркетинге, мы нашли где зарыта не только Ñобака, но и ключ к уÑпеху клиентов. +

+
+
+
+
+

Огромный опыт работы

+
+

+ За более чем 11-летний опыт работы в маркетинге, мы нашли где зарыта не только Ñобака, но и ключ к уÑпеху клиентов. +

+
+
+
+
+

Команда профеÑÑионалов

+
+

+ Мы берем в Ñвой дружный + коллектив только Ñамых лучших. +

+
+
+
+
+
+
+
+
+
+

Давайте знакомитьÑÑ

+

Мы поможем вам Ñтать уÑпешнее

+ +
+
+

+ Команда, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð·Ð½Ð°ÐµÑ‚, как делать не только на «Ок», но и «ПревоÑходно».
+ ПрактичеÑки каждый Ñотрудник может похваÑтатьÑÑ Ñертификатами и уÑпешными кейÑами.
+ Реще поÑоветовать интереÑные фильмы, книги и раÑÑказать о Ñвоем хобби.
+ Итак, знакомьтеÑÑŒ: коллектив ÐртВеб! +

+
+ +
+
+
+ +
+
+
+
+
+
+ +
+
+ photo)?> +
+
+
+
+
name?>
+
job?>
+
id])?>
+
+
+
+ +
+
+
+ +
+
+
+
+

Мы ищем таланты

+

+ +
+
+

+ Ð’Ñ‹ чувÑтвуете, что PHP-программирование, онлайн-маркетинг, продажи то, чему вы хотите поÑвÑтить Ñвою жизнь?
+ ОтправлÑйте резюме. +

+
+ +
+
+
+
+
+
+
+

Главные ценноÑти компании

+

+ +
+
+
+
+
+
+
+
+
+ Клиенты +

+ Мы работаем Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы Ð±Ð¸Ð·Ð½ÐµÑ Ð½Ð°ÑˆÐ¸Ñ… клиентов Ñ€Ð¾Ñ Ð¸ развивалÑÑ, только поÑтоÑнные Ñимбиоз обеÑпечивает роÑÑ‚ и нашей компании. +

+
+
+
+
+
+
+
+
+
+ Доходы +

+ Прибыль компании – Ð²Ñ‚Ð¾Ñ€Ð°Ñ Ñ†ÐµÐ½Ð½Ð¾Ñть, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð·Ð°Ð²Ð¸Ñит от наших Ñотрудников. И те, кто в большей Ñтепени влиÑет на роÑÑ‚ прибыли, получает быÑтрое продвижение по карьерной леÑтнице. +

+
+
+
+
+
+
+
+
+
+ Команда +

+ Ðаши Ñотрудники Ð³Ð»Ð°Ð²Ð½Ð°Ñ Ñ†ÐµÐ½Ð½Ð¾Ñть.
У каждого работника еÑть личный план развитиÑ, вÑе работники читают книги, поÑещают Ñеминары, учаÑтвуют в вебинарах и вÑеÑторонне развиваютÑÑ. +

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

Кто наши клиенты

+

+ +
+
+
+
+
+
+
+
+
+
УÑлуги
+
+
+
+
Интернет-магазины
+
+
+
+
Контентные проекты
+
+
+
+
СервиÑÑ‹
+
+
+
+
ÐекоммерчеÑкие проекты
+
+
+
+
+
+
+
+
+
+
+

Давайте знакомитьÑÑ

+

Мы поможем вам Ñтать уÑпешнее

+ +
+
+
    +
  • +
  • +
  • +
  • +
  • +
+
+
Заходите в наш блог
+
+
+
+
+ diff --git a/frontend/views/site/teamitem.php b/frontend/views/site/teamitem.php new file mode 100644 index 0000000..e175d3b --- /dev/null +++ b/frontend/views/site/teamitem.php @@ -0,0 +1,261 @@ +title = 'Команда'; +$this->params['breadcrumbs'][] = $this->title; + +$this->registerCssFile('/css/teamitem.css'); + +if ($member->teamInterests) { + $graph_js = " +jQuery(function($) { + $('#container').highcharts({ + chart: { + plotBackgroundColor: null, + plotBorderWidth: null, + height:280, + width:432 + }, + + tooltip: { + //pointFormat: '{point.percentage:.1f}%', + enabled: false + }, + plotOptions: { + pie: { + allowPointSelect: true, + size:160, + borderWidth: 0, + cursor: 'pointer', + dataLabels: { + //distance: 30, + //softConnector: false, // by default + connectorColor: 'black', + connectorPadding: 10, + color: '#464646', + enabled: true, + format: '{point.name}: {point.percentage:.1f} %', + style: { + width:85 + } + } + } + }, + series: [{ + type: 'pie', + name: '" . Yii::t( 'app', 'Interests' ) . "', + data: ["; + + foreach ( $member->teamInterests as $interest ) { + $graph_js .= " + ['" . $interest->title . "', " . $interest->value . "],"; + } + + $graph_js .= " + ] + }] +}); +});"; + + $this->registerJs( $graph_js, 3 ); +} +$this->registerJsFile('/js/teamitem/jquery.rating-2.0.min.js'); +$this->registerJsFile('/js/teamitem/rating.js'); +$this->registerJsFile('/js/teamitem/highcharts.js'); +?> + +
+
+
+
+ +
+
+
+

name?>

+

job?>

+
+
+
+
zodiac))?>
+
vodoley
+
+
+
iq
+
IQ iq?>
+
+
+ email)) :?> + + + + soc_vk) || !empty($member->soc_fb) || !empty($member->soc_tw)) :?> + + +
+
+ + teamInterests) :?> +
+
+
+ interests +
+
ИнтереÑÑ‹
+
+
+
+
+
+
+
+
+
+
+
+ + interests_caption)) :?> +
+
+ interests_caption?> +
+
+
+
+
+ + + teamSkils) || !empty($member->skils_caption)) :?> +
+
+
+
+ skills +
+
+
Скилы
+
+
+
+ teamSkils as $skill) :?> +
+
+ +
+
+

title?>

+
+
+ +
+
+ + + skils_caption)) :?> +
+
+
+
+
+
+
+ skils_caption?> +
+
+
+
+
+ + + teamBooks) || !empty($member->books_caption)) :?> +
+
+
skills
+
Книги
+
+
+
+ books_caption?> + teamBooks)) :?> +
+ name)[0]?> рекомендует прочитать: +
+
+ teamBooks as $book) :?> + <?= $book->title?> + +
+ +
+
+
+
+
+ + + teamFilms) || !empty($member->films_caption)) :?> +
+
+
skills
+
Фильмы
+
+
+
+ films_caption?> + teamFilms)) :?> +
+ name)[0]?> рекомендует поÑмотреть: +
+
+ teamFilms as $film) :?> + <?= $film->title?> + +
+ +
+
+
+
+
+ + + humors) || !empty($member->humors_caption)) :?> +
+
+
skills
+
Ðнекдоты
+
+
+
+ teamHumors as $humor) :?> +

+ + +
+
+ +
+
\ No newline at end of file diff --git a/frontend/views/site/vacancies.php b/frontend/views/site/vacancies.php new file mode 100644 index 0000000..d25438f --- /dev/null +++ b/frontend/views/site/vacancies.php @@ -0,0 +1,436 @@ +title = 'ВаканÑии'; +$this->params['breadcrumbs'][] = $this->title; + +$this->registerCssFile('/css/vacancies.css'); + +$this->registerJsFile('/js/jquery.scrollbox.min.js'); +$this->registerJsFile('/js/vacancies.js'); +//$this->registerJsFile('/js/vacancies2.js'); +$this->registerJs(" +$(function () { + $('#demo5').scrollbox({ + direction: 'h', + distance: 150, + autoPlay: false + }); + $('#prew').click(function () { + $('#demo5').trigger('backward'); + }); + $('#next').click(function () { + $('#demo5').trigger('forward'); + }); + });", 3); +?> + +
+
+
+ +
+
+
+

+ Умные люди Ð´Ð»Ñ ÑƒÑпешных проектов + + Мы ищем крутых ÑпециалиÑтов в Ñфере онлайн-маркетинга, будущих гуру PHP-кодинга и Ñейлзов, которые могут продать пеÑок африканцам. Выберите Ñвое направление и Ñтройте карьеру Ñ Ð½Ð°Ð¼Ð¸. +

+
+
+
+
+
+
+ +
+

Маркетинг

+
+
+
+ +
+

Разработка

+
+
+
+ +
+

Продажи

+
+
+
+
+
+
+
+

У Ð²Ð°Ñ Ð¾Ñобенные таланты?

+
+
+ +
+
+
+
+

Мы ценим креативноÑть и не шаблонное мышление.
+ ЕÑли ваши таланты выходÑÑ‚ за рамки Ñтандартного предложениÑ, то раÑÑкажите о Ñебе.

+ + РаÑÑказать о Ñебе + +
+
+
+
+
+
+ + + + +
+
+
+ +
+
+

+ artweb Ñто не только профеÑÑионалы онлайн-маркетинга, но и Ð¾Ñ‚Ð»Ð¸Ñ‡Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° креативных ребÑÑ‚, которые желают развиватьÑÑ Ð¸ умеют веÑело проводить времÑ. ЕÑли утром хочетÑÑ Ð¸Ð´Ñ‚Ð¸ на работу, значит, ты на Ñвоем меÑте! + +

+
+
+

“

+
+
+
+

+ Светлана БориÑюк
+ менеджер по контекÑтной рекламе +

+
+
+
+
+ +
+
+

+ 2artweb Ñто не только профеÑÑионалы онлайн-маркетинга, но и Ð¾Ñ‚Ð»Ð¸Ñ‡Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° креативных ребÑÑ‚, которые желают развиватьÑÑ Ð¸ умеют веÑело проводить времÑ. ЕÑли утром хочетÑÑ Ð¸Ð´Ñ‚Ð¸ на работу, значит, ты на Ñвоем меÑте! + +

+
+
+

“

+
+
+
+

+ Светлана БориÑюк
+ менеджер по контекÑтной рекламе +

+
+
+
+
+ +
+
+

+ 3artweb Ñто не только профеÑÑионалы онлайн-маркетинга, но и Ð¾Ñ‚Ð»Ð¸Ñ‡Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° креативных ребÑÑ‚, которые желают развиватьÑÑ Ð¸ умеют веÑело проводить времÑ. ЕÑли утром хочетÑÑ Ð¸Ð´Ñ‚Ð¸ на работу, значит, ты на Ñвоем меÑте! + +

+
+
+

“

+
+
+
+

+ Светлана БориÑюк
+ менеджер по контекÑтной рекламе +

+
+
+
+
+ +
+
+

+ 4artweb Ñто не только профеÑÑионалы онлайн-маркетинга, но и Ð¾Ñ‚Ð»Ð¸Ñ‡Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° креативных ребÑÑ‚, которые желают развиватьÑÑ Ð¸ умеют веÑело проводить времÑ. ЕÑли утром хочетÑÑ Ð¸Ð´Ñ‚Ð¸ на работу, значит, ты на Ñвоем меÑте! + +

+
+
+

“

+
+
+
+

+ Светлана БориÑюк
+ менеджер по контекÑтной рекламе +

+
+
+
+
+
+
+
+
+
+
+

Что мы можем предложить

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

Рабочий день Ñ 10 до 18

+
+
+
+
+ +
+
+

Ðдекватное руководÑтво

+
+
+
+
+ +
+
+

Клевый коллектив

+
+
+
+
+ +
+
+

ИнтереÑные проекты

+
+
+
+
+
+ +
+
+

ÐаÑтольный тенниÑ

+
+
+
+
+ +
+
+

Чай, кофе, печеньки

+
+
+
+
+ +
+
+

Обучение

+
+
+
+
+ +
+
+

Пиво по пÑтницам

+
+
+
+
+
+
+
+
+
+

Открытые ваканÑии

+
+
+ +
+
+
+
+ +
+
+

РÐР-разработчик

+
+
+

+ Ð£Â Ð²Ð°Ñ Ð½ÐµÂ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ‚ проблем Ñ техничеÑкими заданиÑми — заказчик знает, что ему нужно и учитывает вÑе тонкоÑти в ТЗ. + Ðаши клиенты пользуютÑÑ, практичеÑки вÑеми коммерчеÑкими CMS. Знание и опыт работы Ñ определенными из них приветÑтвуютÑÑ.
+ Задачи комплекÑные, много каÑтомизации и онлайн-маркетинг наÑтроек Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð¾Ð². Ð”Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ вам придетÑÑ Ñтать профеÑÑионалом Ñвоей CMS, а мы поможем вам Ñто доÑтичь. +
+ Ð£Â Ð²Ð°Ñ Ð½ÐµÂ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ‚ проблем Ñ техничеÑкими заданиÑми — заказчик знает, что ему нужно и учитывает вÑе тонкоÑти в ТЗ. + Ðаши клиенты пользуютÑÑ, практичеÑки вÑеми коммерчеÑкими CMS. Знание и опыт работы Ñ определенными из них приветÑтвуютÑÑ.
+ Задачи комплекÑные, много каÑтомизации и онлайн-маркетинг наÑтроек Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð¾Ð². Ð”Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ вам придетÑÑ Ñтать профеÑÑионалом Ñвоей CMS, а мы поможем вам Ñто доÑтичь. + +

+
+
+ +
+
+
+
+ +
+
+

SEO-ÑпециалиÑÑ‚

+
+
+

+ Задачи покрывают веÑÑŒ Ñпектр техничеÑкого SEO. Ðо в первую очередь Ñто будут задачи по Ñбору ÑемантичеÑкого Ñдра. + Мы будем рады, еÑли вы будете быÑтро обучатьÑÑ Ð¸ проÑвлÑть инициативу и Ñтанете лидером. Карьерный роÑÑ‚ завиÑит только от ваÑ, Ñо Ñвоей Ñтороны, мы будем вÑÑчеÑки ÑодейÑтвовать вашему обучению. +
+ Задачи покрывают веÑÑŒ Ñпектр техничеÑкого SEO. Ðо в первую очередь Ñто будут задачи по Ñбору ÑемантичеÑкого Ñдра. + Мы будем рады, еÑли вы будете быÑтро обучатьÑÑ Ð¸ проÑвлÑть инициативу и Ñтанете лидером. Карьерный роÑÑ‚ завиÑит только от ваÑ, Ñо Ñвоей Ñтороны, мы будем вÑÑчеÑки ÑодейÑтвовать вашему обучению. + +

+
+
+ +
+
+
+
+
+
+
+

+ Задача организации, в оÑобенноÑти же конÑÑƒÐ»ÑŒÑ‚Ð°Ñ†Ð¸Ñ Ñ ÑˆÐ¸Ñ€Ð¾ÐºÐ¸Ð¼ активом играет важную роль в формировании ÑиÑтем маÑÑового учаÑтиÑ. Ðе Ñледует, однако забывать, что дальнейшее развитие различных форм деÑтельноÑти позволÑет выполнÑть важные Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾ разработке ÑиÑтем маÑÑового учаÑтиÑ. +

+

+ Ð’ÑчеÑлав Мижарев, директор +

+ + + + + + +
skype:
artwebstudio
e-mail:
mail@artweb.ua
+ + + + +
+38 044 5937376
+
+
+
+
+
+

+ Задача организации, в оÑобенноÑти же конÑÑƒÐ»ÑŒÑ‚Ð°Ñ†Ð¸Ñ Ñ ÑˆÐ¸Ñ€Ð¾ÐºÐ¸Ð¼ активом играет важную роль в формировании ÑиÑтем маÑÑового учаÑтиÑ. Ðе Ñледует, однако забывать, что дальнейшее развитие различных форм деÑтельноÑти позволÑет выполнÑть важные Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾ разработке ÑиÑтем маÑÑового учаÑтиÑ. +

+

+ Ðнтона ЗозулÑ, директор по маркетингу +

+ + + + + + +
skype:
artwebstudio
e-mail:
mail@artweb.ua
+ + + + +
+38 044 5937376
+
+
+
+
+
+

+ Задача организации, в оÑобенноÑти же конÑÑƒÐ»ÑŒÑ‚Ð°Ñ†Ð¸Ñ Ñ ÑˆÐ¸Ñ€Ð¾ÐºÐ¸Ð¼ активом играет важную роль в формировании ÑиÑтем маÑÑового учаÑтиÑ. Ðе Ñледует, однако забывать, что дальнейшее развитие различных форм деÑтельноÑти позволÑет выполнÑть важные Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾ разработке ÑиÑтем маÑÑового учаÑтиÑ. +

+

+ Ðндрей Белый, начальник отдела разработки +

+ + + + + + +
skype:
artwebstudio
e-mail:
mail@artweb.ua
+ + + + +
+38 044 5937376
+
+
+
+
+
+
+
+
+
+

Сертификаты

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

Клиенты
+ У Ð½Ð°Ñ ÐºÐ°Ð¶Ð´Ñ‹Ð¹ клиент — любимый +

+
+
+ +
+
+
+
+ +
+
+
+
    + +
  • + +
+
+
+
+ +
+
+
+
diff --git a/frontend/web/.gitignore b/frontend/web/.gitignore new file mode 100644 index 0000000..25c74e6 --- /dev/null +++ b/frontend/web/.gitignore @@ -0,0 +1,2 @@ +/index.php +/index-test.php diff --git a/frontend/web/assets/.gitignore b/frontend/web/assets/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/frontend/web/assets/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/frontend/web/count_form/app/data/admin.php b/frontend/web/count_form/app/data/admin.php new file mode 100644 index 0000000..e81388f --- /dev/null +++ b/frontend/web/count_form/app/data/admin.php @@ -0,0 +1,109 @@ +ip = $_SERVER['REMOTE_ADDR']; + $this->my_ip = '109.251.238.123'; + if($this->ip != $this->my_ip){ + header("Location:/count_form.php/"); + } + } + function index(){ + $model = new \count_form\app\db\Entity(); + + $entity = $model->getInstance('question'); + + $sub_question = $model->getInstance('sub_question'); + + $sub_data = $sub_question->getAllData(); + + $data = $entity->getAllData(); + + $result = array('data'=>$data, 'sub_data'=>$sub_data); + + return $result; + } + + function add(){ + + $model = new \count_form\app\db\Entity(); + $questions = $model->getInstance('question'); + if(isset($_POST)&&!empty($_POST)){ + $question['text'] = $_POST['question_text']; + $question['input_type'] = $_POST['question_input_type']; + $question['status'] = empty( $_POST['question_status'] ) ? 0 : 1; + $question['required'] = empty( $_POST['question_required'] ) ? 0 : 1; + $question['weight'] = $_POST['question_weight']; + $question['parent_id'] = isset($_POST['question_parent_id']) && !empty($_POST['question_parent_id']) ? $_POST['question_parent_id']: '0'; + + $questions->addData($question); + header("Location:/count_form.php/?p=admin"); + } + + $data = $questions->getAllData(); + + $result = array('data'=>$data); + + return $result; + } + + + function edit(){ + + + $model = new \count_form\app\db\Entity(); + $questions = $model->getInstance('question'); + $sub = $model->getInstance('sub_question'); + $id = $_GET['id']; + + if(isset($_POST)&&!empty($_POST)){ + + + $question['text'] = $_POST['question_text']; + $question['input_type'] = $_POST['question_input_type']; + $question['weight'] = $_POST['question_weight']; + $question['status'] = empty( $_POST['question_status'] ) ? 0 : 1; + $question['required'] = empty( $_POST['question_required'] ) ? 0 : 1; + $question['parent_id'] = isset($_POST['question_parent_id']) && !empty($_POST['question_parent_id']) ? $_POST['question_parent_id']: '0'; + $questions->UpdateData($question, $id); + + + header("Location:/count_form.php/?p=admin"); + + } + + $data = $questions->getAllData(); + $quest = $questions->getOneData($id); + $sub_quest = $sub->getOneData($id); + $result = array('data'=>$data, 'question'=>$quest, 'sub_question'=>$sub_quest); + + return $result; + } + + function delete() + { + if(isset($_GET['id'])){ + + $id = $_GET['id']; + + $model = new \count_form\app\db\Entity(); + + $entity = $model->getInstance('question'); + + $entity->deleteData($id); + + header("Location:/count_form.php/?p=admin"); + } + + + } + + +} \ No newline at end of file diff --git a/frontend/web/count_form/app/data/form.php b/frontend/web/count_form/app/data/form.php new file mode 100644 index 0000000..ba6cc95 --- /dev/null +++ b/frontend/web/count_form/app/data/form.php @@ -0,0 +1,414 @@ +getInstance('question'); + + $sub_question = $model->getInstance('sub_question'); + + + + $sub_data = $sub_question->getAllData(); + + $data = $entity->getAllActiveData(); + + $result = array('data'=>$data, 'sub_data'=>$sub_data); + + return $result; + } + + + function select() + { + if(isset($_POST)&&!empty($_POST)){ + $model = new \count_form\app\db\Entity(); + $email = $_POST['email']; + if(!empty($email)){ + $entity = $model->getInstance('question'); + $exceptions = $this->getExceptions(); + $sub_question = $model->getInstance('sub_question'); + + $data = $this->getData($_POST,$entity, $sub_question); + + $text = $this->getText($data); + + if(!in_array($email, $exceptions)) { + $this->saveData($model, $email, $text); + $this->sendData($email, $text); + } + session_start(); + $_SESSION['success'] = 'callback'; + + print ""; + } + + }else{ + header("Location:/count_form.php/?p=form"); + } + + } + + function findSubQuestion($question, $sub_array) + { + foreach($sub_array as $row){ + if($row['question_id'] == $question['id']){ + return $row; + } + } + return false; + } + + function getData($_POST,$entity, $sub_question) + { + $post = $_POST['role']; + $answers = $_POST['question']; + $comment = htmlspecialchars($_POST['comment']); + $email = htmlspecialchars($_POST['email']); + + + + $questionId = array(); + + foreach($post as $row) { + + foreach($row as $key => $val ){ + + $questionId[] = $val; + + } + } + + $sub_quest_id = array(); + $sub_quest_data = array(); + foreach($answers as $quest => $val){ + + $val = preg_replace('/\s+/', '', $val); + + if(!empty($val)){ + $sub_quest_id[] = $quest; + $sub_quest_data[$quest]['answer'] = $val; + } + } + + + $questionId = implode(",", $questionId); + + $data = $entity->getSelectData($questionId); + + if(!empty($sub_quest_id)){ + $sub_quest = implode(",", $sub_quest_id); + $sub_data = $sub_question->getSelectData($sub_quest); + + foreach($sub_data as $quest){ + $sub_quest_data[$quest['question_id']]['text'] = $quest['text']; + } + } + + + $result = array('data'=>$data, 'sub_data'=>$sub_quest_data, 'comment'=>$comment); + + return $result; + + } + + function sendData($email, $text) + { + require_once "count_form/app/lib/PHPMailer_5.2.4/class.phpmailer.php"; + $mail = new \PHPMailer; + + $mail->IsSMTP(); + + $mail->CharSet = 'UTF-8'; + + $mail->Username = "seodevartweb@gmail.com"; + $mail->Password = "respublika2014"; + $mail->SetFrom($email, 'ArtWeb'); + $mail->Subject = '[AtrWeb] ЗаÑвка раÑÑчет ÑтоимоÑти Ð´Ð»Ñ '.$email; + $mail->MsgHTML($text); + $address = "seodevartweb@gmail.com"; + $mail->AddAddress($address); + $mail->AddAddress('slava.up@gmail.com'); + $mail->AddAddress('m@artweb.ua'); + $mail->AddAddress('seo@artweb.ua'); + + $mail->Send(); + + + } + + function saveData($model, $email, $text) + { + + $entity = $model->getInstance('request'); + + $entity->addData($email, $text); + $this->sendRequestToSEO($email, $text); + + + } + + function sendRequestToSEO($email, $text){ + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, 'http://backend.seo.dev.artwebua.com.ua/set_message'); + curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); + curl_setopt($curl, CURLOPT_POST, true); + curl_setopt($curl, CURLOPT_POSTFIELDS, "email=$email&text=$text&type=calculate"); + $out = curl_exec($curl); + // echo $out; + curl_close($curl); + } + + function getText($data){ + $filename = "count_form/app/view/form/select.php"; + + + if (is_file($filename)) { + ob_start(); + include $filename; + $text = ob_get_contents(); + ob_get_clean(); + return $text; + + } + return false; + + } + + function selectChosenData(){ + + if(isset($_POST['parent_id'])&& !empty($_POST['parent_id'])){ + $parent_id = (int)$_POST['parent_id']; + + $model = new \count_form\app\db\Entity(); + + $entity = $model->getInstance('question'); + + $sub_question = $model->getInstance('sub_question'); + + + + $sub_data = $sub_question->getAllData(); + + $data = $entity->getChosenData($parent_id); + header('Content-type: text/html; charset=utf-8'); + foreach($data as $array){?> + +
    +
  • + + findSubQuestion($array,$sub_data)){?> +
    +

    + + поле обÑзательно Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ':'' ?> + + поле обÑзательно Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ':'' ?> +
    +
"; + } + die(); + } + } + + function getExceptions(){ + return array('boss@cialisonline-20mg.com', + 'reckonzr@hotmail.com', + 'past@genericcialis-usa.net', + 'hosannaas@hotmail.com', + 'systemaist@yandex.com', + 'frostydemi@hotmail.com', + 'saloret@mail.com', + 'larisadiz@mail.ru', + 'anthonyvahp@yandex.ru', + 'nekitt9@daufond.ru', + 'robertote@yandex.ru', + 'saloret@mail.com', + 'matthewtex@yandex.ru', + 'williamlype@yandex.ru', + 'qzfcdtnabo@roixog.com', + 'qzfcdtnabo@roixog.com', + 'scheiern175alecia@hotmail.com', + 'otitismit@hotmail.com', + 'blitheover@yahoo.com', + 'schmeichel499donelle@hotmail.com', + 'daryamof@mail.ru', + 'voxxo@mail.com', + 'anneguiguibin@aol.com', + 'woodhull240leona@hotmail.com', + 'kirstybodiamlla@aol.com', + 'josephol@yandex.ru', + 'michaelsrp@yandex.ru', + 'mellish095sonia@hotmail.com', + 'katyasern@mail.ru', + 'komperdell@wegas.ru', + 'robertmrt@yandex.ru', + 'lenniecackettumu@aol.com', + 'jeffreyrom@yandex.ru', + 'eugenefup@yandex.ru', + 'normanusex@yandex.ru', + 'aprilosborneat@aol.com', + 'subnetmab@hotmail.com', + 'stevenvome@yandex.ru', + 'colorulya@hotmail.com', + 'vtoroy@tattvavit.com', + '123abc.hui@gmail.com', + 'charlesboxrt@yandex.ru', + 'tretiy@tattvavit.com', + 'duncedfeilg@hotmail.com', + 'ronaldorr@yandex.ru', + 'ranmercyei@hotmail.com', + 'chenjinhuayi@yandex.com', + 'emanuelei@yandex.ru', + 'miltonsog@yandex.ru', + 'charlesverae@yandex.ru', + 'ravispox@yandex.ru', + 'pi2erre24g7y@yandex.ru', + 'klarakappcou@aol.com', + 'kennethot@yandex.ru', + 'manuelknot@yandex.ru', + 'amenitybv@hotmail.com', + 'samuelot@yandex.ru', + 'thomascorn@yandex.ru', + 'uhhpoxa361@yandex.ru', + 'klemen148barclay@hotmail.com', + 'avans149olimpia@hotmail.com', + 'campione165margit@hotmail.com', + 'crebs959myesha@hotmail.com', + 'campione165margit@hotmail.com', + 'sarahem@mail.ru', + 'athirstour@hotmail.com', + 'andrewsif47@yandex.ru', + 'francissiper@yandex.ru', + 'normantutt@yandex.ru', + 'novosti-bitcoin@ro.ru', + 'albertenshtein77@yandex.ru', + 'durley848demetria@hotmail.com', + 'marvinsr@yandex.ru', + 'justinbom@yandex.ru', + 'susbnetmab@gmail.com', + 'douglasped@yandex.ru', + 'aer1os1oly@gmail.com', + 'jeremyseri@yandex.ru', + 'adessa016bertie@hotmail.com', + 'hectorgype@yandex.ru', + 'norbertma@yandex.ru', + 'siegers244sherilyn@hotmail.com', + 'williamfah@yandex.ru', + 'kennethlit@yandex.ru', + 'fernandobromes@gmail.com', + 'aerosoly@hotmail.com', + 'darrelmlt@yandex.ru', + 'bartonpier@yandex.ru', + 'danielpi@yandex.ru', + 'ronaldsalyu@yandex.ru', + 'williamptn@yandex.ru', + 'alfonsozowern@yandex.ru', + 'samuelceser@yandex.ru', + 'foucraftyau@hotmail.com', + 'antoniocicyer@yandex.ru', + 'josephmup@yandex.ru', + 'mike_omike@aol.com', + 'pehowic655judith@hotmail.com', + 'michaelrive@mail.ru', + 'robertkirl@yandex.ru', + 'matzen436katey@hotmail.com', + 'josephjulk@mail.ru', + 'hyesos-artem@teem-k.com', + 'richardfar@yandex.ru', + 'fill659janey@hotmail.com', + 'charlesmole@yandex.ru', + 'mashaklr@mail.ru', + 'renattosutti@gmail.com', + 'reheblis@gmail.com', + 'stephensr@yandex.ru', + 'michaelkek@yandex.ru', + 'gormally129dre@hotmail.com', + 'edwardmrt@yandex.ru', + 'michaelhelo@yandex.ru', + 'thomasmubs@yandex.ru', + 'claytoncand@yandex.ru', + 'curableinfra@hotmail.com', + 'samuelscot@yandex.ru', + 'fa1212fn@rostov-perimetr.ru', + 'phpfoxblognine@163.com', + 'lubricatejust@hotmail.com', + 'tik@cialisonline-20mg.com', + 'andrewhalk@yandex.ru', + 'luker106ema@hotmail.com', + 'galyakaf@mail.ru', + 'whyman864rozella@hotmail.com', + 'burgun295ngan@hotmail.com', + 'ryoteensseding1980@yandex.ru', + 'forumlurennine@163.com', + 'bonnievam@yandex.ru', + 'imagistzixfgp@hotmail.com', + 'cantorrupt@hotmail.com', + 'en@genericcialisusa.net', + 'veronikamaster@outlook.com', + 'mccallister444russ@hotmail.com', + 'renschler744nancey@hotmail.com', + 'fedoreytrewq@yandex.ru', + 'forumlrthree@163.com', + 'daggs044alyse@hotmail.com', + 'czar553filomena@hotmail.com', + 'ingwell033carolin@hotmail.com', + 'yeaney580kayleigh@hotmail.com', + 'jesspurlingcuc@aol.com', + 'wesch266kennith@hotmail.com', + 'colleenbaeziy@aol.com', + 'utrera607svetlana@hotmail.com', + 'marktelepuzik@yandex.ru', + 'richarddror@yandex.ru', + 'arthurmr@yandex.ru', + 'pyscher799emelda@hotmail.com', + 'singleterry385eireann@hotmail.com', + 'getz202sydney@hotmail.com', + 'georgepak@yandex.ru', + 'ackmann200corliss@hotmail.com', + 'lax@cialisonline-20mg.com', + 'user13@smmok-700nm.ru', + 'danielsip@yandex.ru', + 'edwardsag@yandex.ru', + 'gazzara587lacresha@hotmail.com', + 'carland661shelby@hotmail.com', + 'menucci584pa@hotmail.com', + 'gertruda@mail.com', + 'nitzkowski740barney@hotmail.com', + 'shorthandess@hotmail.com', + 'admixscope@hotmail.com', + 'cunliffe271taneka@hotmail.com', + 'nightetktk@outlook.com', + 'julialic@mail.ru', + 'nighte2tktk@mail.ru', + 'stevencich@yandex.ru', + 'kapitosha@wegas.ru', + 'pigmymubnpqke@hotmail.com', + 'vkk1@yourmoneybinary.com', + 'bandytzbxus@hotmail.com', + 'fpoej4374@yandex.ru', + 'lofty311jorja@hotmail.com', + 'krytha@wbskcw.com', + 'john@hotmail.com', + 'anthonymrk@yandex.ru', + 'lorenzokn@yandex.ru', + 'danielnawn@yandex.ru', + 'brandennity@yandex.ru', + 'patrickvus@yandex.ru', + 'michaelhopew@yandex.ru', + 'hututu0324@163.com', + 'tyhthyjhhhh@mixbox.pl', + 'nightetktk@hotmail.com', + 'georgeole@yandex.ru'); + } + + +} diff --git a/frontend/web/count_form/app/data/login.php b/frontend/web/count_form/app/data/login.php new file mode 100644 index 0000000..cb91307 --- /dev/null +++ b/frontend/web/count_form/app/data/login.php @@ -0,0 +1,56 @@ +checkUser($name, $password); + if($check){ + $this->regUser(); + } else { + header("Location:/count_form.php/?p=login"); + } + } + + } + + function createUser() + { + $this->name = 'form_admin'; + $this->password = 'qwerty'; + } + + function checkUser($name, $password) + { + $this->createUser(); + if($this->name = $name){ + if($this->password = $password) + { + return true; + + } else { + return false; + } + } else { + return false; + } + } + + function regUser(){ + if(session_id()){ + $_SESSION['form_admin'] = true; + } else { + + session_start(); + $_SESSION['form_admin'] = true; + } + } + + +} \ No newline at end of file diff --git a/frontend/web/count_form/app/data/sub_quest.php b/frontend/web/count_form/app/data/sub_quest.php new file mode 100644 index 0000000..401b230 --- /dev/null +++ b/frontend/web/count_form/app/data/sub_quest.php @@ -0,0 +1,104 @@ +getInstance('sub_question'); + + $sub_data = $sub_question->getAllData(); + + + $result = array('data'=>$sub_data); + + return $result; + } + + function add(){ + + $model = new \count_form\app\db\Entity(); + $questions = $model->getInstance('question'); + $sub = $model->getInstance('sub_question'); + if(isset($_POST)&&!empty($_POST)){ + $sub_question['text'] = $_POST['sub_question_text']; + $sub_question['input'] = $_POST['sub_question_input']; + $sub_question['required'] = empty( $_POST['sub_question_required']) ? 0 : 1; + $sub_question['key'] = $_POST['key']; + $question_id = $_POST['question_parent_id']; + + if($sub_question['text']){ + + + foreach($question_id as $id) { + $sub_question['question_id'] = $id; + $sub->addData($sub_question); + } + + } + header("Location:/count_form.php/?p=sub_quest"); + } + + $data = $questions->getAllData(); + + $result = array('data'=>$data); + + return $result; + } + + + function edit(){ + + + $model = new \count_form\app\db\Entity(); + $questions = $model->getInstance('question'); + $sub = $model->getInstance('sub_question'); + $id = $_GET['id']; + + if(isset($_POST)&&!empty($_POST)){ + $sub_question['text'] = isset($_POST['sub_question_text'])&&!empty($_POST['sub_question_text']) ? $_POST['sub_question_text'] : null; + $sub_question['input'] = $_POST['sub_question_input']; + $sub_question['required'] = empty( $_POST['sub_question_required']) ? 0 : 1; + $sub_question['key'] = $_POST['key']; + + if($sub_question['text']) + { + $sub->updateData($sub_question, $id); + } + + header("Location:/count_form.php/?p=sub_quest"); + + } + + $data = $questions->getAllData(); + $sub_quest = $sub->getOneData($id); + $result = array('data'=>$data, 'sub_question'=>$sub_quest); + + return $result; + } + + function delete() + { + if(isset($_GET['id'])){ + + $id = $_GET['id']; + + $model = new \count_form\app\db\Entity(); + + $entity = $model->getInstance('sub_question'); + + $entity->deleteData($id); + + header("Location:/count_form.php/?p=sub_quest"); + } + + + } + + +} \ No newline at end of file diff --git a/frontend/web/count_form/app/db/Entity.php b/frontend/web/count_form/app/db/Entity.php new file mode 100644 index 0000000..a149681 --- /dev/null +++ b/frontend/web/count_form/app/db/Entity.php @@ -0,0 +1,55 @@ +getEntity($name);*/ + + $this->instance = new $class(); + + + /*$this->instance->props = $this->props;*/ + + + return $this->instance; + + } + + + + function setProperty($key, $val) + { + $this->props[$key] = $val; + } + + public function getProperty($key) + { + return $this->props[$key]; + } + + + /*function getEntity($name) + { + $sql = "SHOW COLUMNS FROM ".$name; + + $result = $this->db->query($sql); + + foreach($result->fetchAll(\PDO::FETCH_ASSOC) as $row){ + + $this->setProperty($row['Field'],null); + + } + + return $this->row; + }*/ +} \ No newline at end of file diff --git a/frontend/web/count_form/app/db/Main.php b/frontend/web/count_form/app/db/Main.php new file mode 100644 index 0000000..6aa210b --- /dev/null +++ b/frontend/web/count_form/app/db/Main.php @@ -0,0 +1,12 @@ +db = new \PDO('mysql: host=localhost; dbname=artweb_seo', 'artweb_seo','cB3YWtqp'); + } +} \ No newline at end of file diff --git a/frontend/web/count_form/app/entity/question.php b/frontend/web/count_form/app/entity/question.php new file mode 100644 index 0000000..a9fa1a8 --- /dev/null +++ b/frontend/web/count_form/app/entity/question.php @@ -0,0 +1,175 @@ +db->query($sql); + + return $result->fetchAll(\PDO::FETCH_ASSOC); + } + + public function getAllActiveData() + { + + $sql = + ' + SELECT * FROM + question + WHERE + status = 1 + AND + parent_id = 0 + ORDER BY + weight ASC'; + $result = $this->db->query($sql); + + return $result->fetchAll(\PDO::FETCH_ASSOC); + } + + + + + + + public function getOneData($id) + { + + $sql = + ' + SELECT * FROM + question + WHERE + id = :id + '; + $stmt = $this->db->prepare($sql); + $stmt->bindValue(":id", $id); + $stmt->execute(); + return $stmt->fetch(\PDO::FETCH_ASSOC); + } + + public function deleteData($id){ + $sql = + ' DELETE + FROM + question + WHERE + id = :id + '; + $stmt = $this->db->prepare($sql); + $stmt->bindValue(":id", $id); + $stmt->execute(); + } + + public function addData($data) + { + + $sql = + ' + INSERT INTO + question + ( + text, + input_type, + weight, + status, + required, + parent_id + ) + VALUES + ( + :text, + :input_type, + :weight, + :status, + :required, + :parent_id + ) + '; + $stmt = $this->db->prepare($sql); + $stmt->bindValue(":text", $data['text']); + $stmt->bindValue(":input_type", $data['input_type']); + $stmt->bindValue(":weight", $data['weight']); + $stmt->bindValue(":status", $data['status']); + $stmt->bindValue(":required", $data['required']); + $stmt->bindValue(":parent_id", $data['parent_id']); + $stmt->execute(); + return $this->db->lastInsertId(); + + + + } + + public function UpdateData($data,$id) + { + $sql = + ' + UPDATE + question + SET + text = :text, + input_type = :input_type, + weight = :weight, + status = :status, + required = :required, + parent_id = :parent_id + WHERE + id = :id + '; + $stmt = $this->db->prepare($sql); + $stmt->bindValue(":id", $id); + $stmt->bindValue(":text", $data['text']); + $stmt->bindValue(":input_type", $data['input_type']); + $stmt->bindValue(":weight", $data['weight']); + $stmt->bindValue(":status", $data['status']); + $stmt->bindValue(":required", $data['required']); + $stmt->bindValue(":parent_id", $data['parent_id']); + $stmt->execute(); + } + + function getSelectData($id) + { + $sql = + ' + SELECT * FROM + question + WHERE + id IN ('.$id.') + ORDER BY + weight ASC'; + $result = $this->db->query($sql); + + return $result->fetchAll(\PDO::FETCH_ASSOC); + } + + function getChosenData($parent_id){ + + $sql = + ' + SELECT * FROM + question + WHERE + status = 1 + AND + parent_id = :parent_id + ORDER BY + weight ASC'; + $stmt = $this->db->prepare($sql); + $stmt->bindValue(":parent_id", $parent_id); + $stmt->execute(); + return $stmt->fetchAll(\PDO::FETCH_ASSOC); + + } + + +} \ No newline at end of file diff --git a/frontend/web/count_form/app/entity/request.php b/frontend/web/count_form/app/entity/request.php new file mode 100644 index 0000000..69d6c76 --- /dev/null +++ b/frontend/web/count_form/app/entity/request.php @@ -0,0 +1,109 @@ +db->query($sql); + + return $result->fetchAll(\PDO::FETCH_ASSOC); + } + + + + + + + + public function getOneData($id) + { + + $sql = + ' + SELECT * FROM + request + WHERE + id = :id + '; + $stmt = $this->db->prepare($sql); + $stmt->bindValue(":id", $id); + $stmt->execute(); + return $stmt->fetch(\PDO::FETCH_ASSOC); + } + + public function deleteData($id){ + $sql = + ' DELETE + FROM + request + WHERE + id = :id + '; + $stmt = $this->db->prepare($sql); + $stmt->bindValue(":id", $id); + $stmt->execute(); + } + + public function addData($email, $text) + { + $sql = + ' + INSERT INTO + request + ( + text, + email + ) + VALUES + ( + :text, + :email + ) + '; + + $stmt = $this->db->prepare($sql); + $stmt->bindValue(":text", $text); + $stmt->bindValue(":email", $email); + $stmt->execute(); + return $this->db->lastInsertId(); + + + + } + + public function UpdateData($data,$id) + { + + $sql = + ' + UPDATE + request + SET + text = :text, + email = :email + WHERE + id = :id + '; + $stmt = $this->db->prepare($sql); + $stmt->bindValue(":id", $id); + $stmt->bindValue(":text", $data['text']); + $stmt->bindValue(":email", $data['email']); + $stmt->execute(); + } + + + + + + +} \ No newline at end of file diff --git a/frontend/web/count_form/app/entity/sub_question.php b/frontend/web/count_form/app/entity/sub_question.php new file mode 100644 index 0000000..5d2cde1 --- /dev/null +++ b/frontend/web/count_form/app/entity/sub_question.php @@ -0,0 +1,126 @@ +db->query($sql); + + return $result->fetchAll(\PDO::FETCH_ASSOC); + } + + public function getOneData($id) + { + + $sql = + ' + SELECT * FROM + sub_question + WHERE + id = :id + '; + $stmt = $this->db->prepare($sql); + $stmt->bindValue(":id", $id); + $stmt->execute(); + return $stmt->fetch(\PDO::FETCH_ASSOC); + } + + public function deleteData($id){ + $sql = + ' DELETE + FROM + sub_question + WHERE + id = :id + '; + $stmt = $this->db->prepare($sql); + $stmt->bindValue(":id", $id); + $stmt->execute(); + } + + public function addData($data) + { + + $sql = + ' + INSERT INTO + sub_question + ( + text, + input, + required, + question_id, + key_num + ) + VALUES + ( + :text, + :input, + :required, + :question_id, + :key + ) + '; + $stmt = $this->db->prepare($sql); + $stmt->bindValue(":text", $data['text']); + $stmt->bindValue(":input", $data['input']); + $stmt->bindValue(":required", $data['required']); + $stmt->bindValue(":question_id", $data['question_id']); + $stmt->bindValue(":key", $data['key']); + $stmt->execute(); + + } + + public function UpdateData($data,$id) + { + + $sql = + ' + UPDATE + sub_question + SET + text = :text, + input = :input, + required = :required, + key_num = :key + WHERE + id = :id + '; + $stmt = $this->db->prepare($sql); + $stmt->bindValue(":id", $id); + $stmt->bindValue(":text", $data['text']); + $stmt->bindValue(":input", $data['input']); + $stmt->bindValue(":required", $data['required']); + $stmt->bindValue(":key", $data['key']); + $stmt->execute(); + } + + + function getSelectData($id) + { + $sql = + ' + SELECT * FROM + sub_question + WHERE + question_id IN ('.$id.') + ORDER BY + id ASC'; + $result = $this->db->query($sql); + + return $result->fetchAll(\PDO::FETCH_ASSOC); + } + + + +} \ No newline at end of file diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/LICENSE b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/LICENSE new file mode 100644 index 0000000..f3f1b3b --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/LICENSE @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/README b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/README new file mode 100644 index 0000000..a28dd52 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/README @@ -0,0 +1,137 @@ +# PHPMailer - A full-featured email creation and transfer class for PHP + +## Class Features + +- Probably the world's most popular code for sending email from PHP! +- Used by many open-source projects: Drupal, SugarCRM, Yii, Joomla! + and many more +- Send emails with multiple TOs, CCs, BCCs and REPLY-TOs +- Redundant SMTP servers +- Multipart/alternative emails for mail clients that do not read HTML email +- Support for 8bit, base64, binary, and quoted-printable encoding +- Uses the same methods as the very popular AspEmail active server (COM) + component +- SMTP authentication +- Native language support +- Word wrap +- Compatible with PHP 5.0 and later +- Much more! + +## Why you might need it + +Many PHP developers utilize email in their code. The only PHP function that +supports this is the mail() function. However, it does not provide any +assistance for making use of popular features such as HTML-based emails and +attachments. + +Formatting email correctly is surprisingly difficult. There are myriad +overlapping RFCs, requiring tight adherence to horribly complicated +formatting and encoding rules - the vast majority of code that you'll find +online that uses the mail() function directly is just plain wrong! *Please* +don't be tempted to do it yourself - if you don't use PHPMailer, there are +many other excellent libraries that you should look at before rolling your +own - try SwiftMailer, Zend_Mail, eZcomponents etc. + +The PHP mail() function usually sends via a local mail server, typically +fronted by a `sendmail` binary on Linux, BSD and OS X platforms, however, +Windows usually doesn't include a local mail server; PHPMailer's integrated +SMTP implementation allows email sending on Windows platforms without a +local mail server. + +## License + +This software is licenced under the +[LGPL](http://www.gnu.org/licenses/lgpl-2.1.html). Please read LICENSE for +information on the software availability and distribution. + +## Installation + +Copy the contents of the PHPMailer folder into somewhere that's in your PHP +include_path setting. + +## A Simple Example + +```php +IsSMTP(); // Set mailer to use SMTP +$mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup server +$mail->SMTPAuth = true; // Enable SMTP authentication +$mail->Username = 'jswan'; // SMTP username +$mail->Password = 'secret'; // SMTP password +$mail->SMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted + +$mail->From = 'from@example.com'; +$mail->FromName = 'Mailer'; +$mail->AddAddress('josh@example.net', 'Josh Adams'); // Add a recipient +$mail->AddAddress('ellen@example.com'); // Name is optional +$mail->AddReplyTo('info@example.com', 'Information'); +$mail->AddCC('cc@example.com'); +$mail->AddBCC('bcc@example.com'); + +$mail->WordWrap = 50; // Set word wrap to 50 characters +$mail->AddAttachment('/var/tmp/file.tar.gz'); // Add attachments +$mail->AddAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name +$mail->IsHTML(true); // Set email format to HTML + +$mail->Subject = 'Here is the subject'; +$mail->Body = 'This is the HTML message body in bold!'; +$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; + +if(!$mail->Send()) { + echo 'Message could not be sent.'; + echo 'Mailer Error: ' . $mail->ErrorInfo; + exit; +} + +echo 'Message has been sent'; +``` + +You'll find plenty more to play with in the `examples` folder. + +That's it. You should now be ready to use PHPMailer! + +## Localization +PHPMailer defaults to English, but in the `languages` folder you'll find +numerous translations for PHPMailer error messages that you may encounter. +Their filenames contain [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) +language code for the translations, for example `fr` for French. To specify +a language, you need to tell PHPMailer which one to use, like this: + +```php +// To load the French version +$mail->SetLanguage('fr', '/optional/path/to/language/directory/'); +``` + +## Documentation + +You'll find some basic user-level docs in the docs folder, and you can +re-generate complete API-level documentation using the `makedocs2.sh` shell +script in the docs folder, though you'll need to install +[PHPDocumentor](http://www.phpdoc.org) first. + +## Tests + +You'll find a PHPUnit test script in the `test` folder. + +## Contributing + +Please submit bug reports, suggestions and pull requests to the [Google Code +tracker](https://code.google.com/a/apache-extras.org/p/phpmailer/issues/list). + +We're particularly interested in fixing edge-cases, expanding test coverage +and updating translations. + +Please *don't* use the sourceforge project any more. + +## Changelog + +See changelog.txt + +## History +- PHPMailer was originally written in 2001 by Brent R. Matzelle as a [SourceForge project](http://sourceforge.net/projects/phpmailer/). +- Marcus Bointon (coolbru on SF) and Andy Prevost (codeworxtech) took over the project in 2004. +- The project became an [Apache Extras project on Google Code](https://code.google.com/a/apache-extras.org/p/phpmailer/) in 2010, managed by Jim Jagielski diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/changelog.txt b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/changelog.txt new file mode 100644 index 0000000..f8cd0d1 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/changelog.txt @@ -0,0 +1,483 @@ +ChangeLog + +NOTE: THIS VERSION OF PHPMAILER IS DESIGNED FOR PHP5/PHP6. + IT WILL NOT WORK WITH PHP4. + +Version 5.2.4 (February 19, 2013) + * Fix tag and version bug. + * un-deprecate isSMTP(), isMail(), IsSendmail() and + isQmail(). + +Version 5.2.3 (February 8, 2013) + * Fix issue with older PCREs and ValidateAddress() (Bugz: 124) + +Version 5.2.2 (December 3, 2012) + * Some fixes and syncs from https://github.com/Synchro/PHPMailer + +Version 5.2.2-rc2 (November 6, 2012) + * Fix SMTP server rotation (Bugz: 118) + * Allow override of autogen'ed 'Date' header (for Drupal's + og_mailinglist module) + * No whitespace after '-f' option (Bugz: 116) + * Work around potential warning (Bugz: 114) + +Version 5.2.2-rc1 (September 28, 2012) + * Header encoding works with long lines (Bugz: 93) + * Turkish language update (Bugz: 94) + * undefined $pattern in EncodeQ bug squashed (Bugz: 98) + * use of mail() in safe_mode now works (Bugz: 96) + * ValidateAddress() now 'public static' so people can override the + default and use their own validation scheme. + * ValidateAddress() no longer uses broken FILTER_VALIDATE_EMAIL + * Added in AUTH PLAIN SMTP authentication + +Version 5.2.2-beta2 (August 17, 2012) + * Fixed Postfix VERP support (Bugz: 92) + * Allow action_function callbacks to pass/use + the From address (passed as final param) + * Prevent inf look for get_lines() (Bugz: 77) + * New public var ($UseSendmailOptions). Only pass sendmail() + options iff we really are using sendmail or something sendmail + compatible. (Bugz: 75) + * default setting for LE returned to "\n" due to popular demand. + +Version 5.2.2-beta1 (July 13, 2012) + * Expose PreSend() and PostSend() as public methods to allow + for more control if serializing message sending. + * GetSentMIMEMessage() only constructs the message copy when + needed. Save memory. + * Only pass params to mail() if the underlying MTA is + "sendmail" (as defined as "having the string sendmail + in its pathname") [#69] + * Attachments now work with Amazon SES and others [Bugz#70] + * Debug output now sent to stdout (via echo) or error_log [Bugz#5] + * New var: Debugoutput (for above) [Bugz#5] + * SMTP reads now Timeout aware (new var: Timeout=15) [Bugz#71] + * SMTP reads now can have a Timelimit associated with them + (new var: Timelimit=30)[Bugz#71] + * Fix quoting issue associated with charsets + * default setting for LE is now RFC compliant: "\r\n" + * Return-Path can now be user defined (new var: ReturnPath) + (the default is "" which implies no change from previous + behavior, which was to use either From or Sender) [Bugz#46] + * X-Mailer header can now be disabled (by setting to a + whitespace string, eg " ") [Bugz#66] + * Bugz closed: #68, #60, #42, #43, #59, #55, #66, #48, #49, + #52, #31, #41, #5. #70, #69 + +Version 5.2.1 (January 16, 2012) + * Closed several bugs#5 + * Performance improvements + * MsgHTML() now returns the message as required. + * New method: GetSentMIMEMessage() (returns full copy of sent message) + +Version 5.2 (July 19, 2011) + * protected MIME body and header + * better DKIM DNS Resource Record support + * better aly handling + * htmlfilter class added to extras + * moved to Apache Extras + +Version 5.1 (October 20, 2009) + * fixed filename issue with AddStringAttachment (thanks to Tony) + * fixed "SingleTo" property, now works with Senmail, Qmail, and SMTP in + addition to PHP mail() + * added DKIM digital signing functionality + New properties: + - DKIM_domain (sets the domain name) + - DKIM_private (holds DKIM private key) + - DKIM_passphrase (holds your DKIM passphrase) + - DKIM_selector (holds the DKIM "selector") + - DKIM_identity (holds the identifying email address) + * added callback function support + - callback function parameters include: + result, to, cc, bcc, subject and body + * see the test/test_callback.php file for usage. + * added "auto" identity functionality + - can automatically add: + - Return-path (if Sender not set) + - Reply-To (if ReplyTo not set) + - can be disabled: + - $mail->SetFrom('yourname@yourdomain.com','First Last',false); + - or by adding the $mail->Sender and/or $mail->ReplyTo properties + Note: "auto" identity added to help with emails ending up in spam + or junk boxes because of missing headers + +Version 5.0.2 (May 24, 2009) + * Fix for missing attachments when inline graphics are present + * Fix for missing Cc in header when using SMTP (mail was sent, + but not displayed in header -- Cc receiver only saw email To: + line and no Cc line, but did get the email (To receiver + saw same) + +Version 5.0.1 (April 05, 2009) + * Temporary fix for missing attachments + +Version 5.0.0 (April 02, 2009) + + * With the release of this version, we are initiating a new version numbering + system to differentiate from the PHP4 version of PHPMailer. + * Most notable in this release is fully object oriented code. + class.smtp.php: + * Refactored class.smtp.php to support new exception handling + code size reduced from 29.2 Kb to 25.6 Kb + * Removed unnecessary functions from class.smtp.php: + public function Expand($name) { + public function Help($keyword="") { + public function Noop() { + public function Send($from) { + public function SendOrMail($from) { + public function Verify($name) { + class.phpmailer.php: + * Refactored class.phpmailer.php with new exception handling + * Changed processing functionality of Sendmail and Qmail so they cannot be + inadvertently used + * removed getFile() function, just became a simple wrapper for + file_get_contents() + * added check for PHP version (will gracefully exit if not at least PHP 5.0) + class.phpmailer.php enhancements + * enhanced code to check if an attachment source is the same as an embedded or + inline graphic source to eliminate duplicate attachments + New /test_script + * We have written a test script you can use to test the script as part of your + installation. Once you press submit, the test script will send a multi-mime + email with either the message you type in or an HTML email with an inline + graphic. Two attachments are included in the email (one of the attachments + is also the inline graphic so you can see that only one copy of the graphic + is sent in the email). The test script will also display the functional + script that you can copy/paste to your editor to duplicate the functionality. + New examples + * All new examples in both basic and advanced modes. Advanced examples show + Exception handling. + PHPDocumentator (phpdocs) documentation for PHPMailer version 5.0.0 + * all new documentation + + Please note: the website has been updated to reflect the changes in PHPMailer +Version 5.0.0. http://phpmailer.codeworxtech.com/ + +Version 2.3 (November 06, 2008) + + * added Arabic language (many thanks to Bahjat Al Mostafa) + * removed English language from language files and made it a default within + class.phpmailer.php - if no language is found, it will default to use + the english language translation + * fixed public/private declarations + * corrected line 1728, $basedir to $directory + * added $sign_cert_file to avoid improper duplicate use of $sign_key_file + * corrected $this->Hello on line 612 to $this->Helo + * changed default of $LE to "\r\n" to comply with RFC 2822. Can be set by the user + if default is not acceptable + * removed trim() from return results in EncodeQP + * /test and three files it contained are removed from version 2.3 + * fixed phpunit.php for compliance with PHP5 + * changed $this->AltBody = $textMsg; to $this->AltBody = html_entity_decode($textMsg); + * We have removed the /phpdoc from the downloads. All documentation is now on + the http://phpmailer.codeworxtech.com website. + +Version 2.2.1 () July 19 2008 + + * fixed line 1092 in class.smtp.php (my apologies, error on my part) + +Version 2.2 () July 15 2008 + + * Fixed redirect issue (display of UTF-8 in thank you redirect) + * fixed error in getResponse function declaration (class.pop3.php) + * PHPMailer now PHP6 compliant + * fixed line 1092 in class.smtp.php (endless loop from missing = sign) + +Version 2.1 (Wed, June 04 2008) + + ** NOTE: WE HAVE A NEW LANGUAGE VARIABLE FOR DIGITALLY SIGNED S/MIME EMAILS. + IF YOU CAN HELP WITH LANGUAGES OTHER THAN ENGLISH AND SPANISH, IT WOULD BE + APPRECIATED. + + * added S/MIME functionality (ability to digitally sign emails) + BIG THANKS TO "sergiocambra" for posting this patch back in November 2007. + The "Signed Emails" functionality adds the Sign method to pass the private key + filename and the password to read it, and then email will be sent with + content-type multipart/signed and with the digital signature attached. + * fully compatible with E_STRICT error level + - Please note: + In about half the test environments this development version was subjected + to, an error was thrown for the date() functions used (line 1565 and 1569). + This is NOT a PHPMailer error, it is the result of an incorrectly configured + PHP5 installation. The fix is to modify your 'php.ini' file and include the + date.timezone = America/New York + directive, to your own server timezone + - If you do get this error, and are unable to access your php.ini file: + In your PHP script, add + date_default_timezone_set('America/Toronto'); + - do not try to use + $myVar = date_default_timezone_get(); + as a test, it will throw an error. + * added ability to define path (mainly for embedded images) + function MsgHTML($message,$basedir='') ... where: + $basedir is the fully qualified path + * fixed MsgHTML() function: + - Embedded Images where images are specified by :// will not be altered or embedded + * fixed the return value of SMTP exit code ( pclose ) + * addressed issue of multibyte characters in subject line and truncating + * added ability to have user specified Message ID + (default is still that PHPMailer create a unique Message ID) + * corrected unidentified message type to 'application/octet-stream' + * fixed chunk_split() multibyte issue (thanks to Colin Brown, et al). + * added check for added attachments + * enhanced conversion of HTML to text in MsgHTML (thanks to "brunny") + +Version 2.1.0beta2 (Sun, Dec 02 2007) + * implemented updated EncodeQP (thanks to coolbru, aka Marcus Bointon) + * finished all testing, all known bugs corrected, enhancements tested + - note: will NOT work with PHP4. + + please note, this is BETA software + ** DO NOT USE THIS IN PRODUCTION OR LIVE PROJECTS + INTENDED STRICTLY FOR TESTING + +Version 2.1.0beta1 + please note, this is BETA software + ** DO NOT USE THIS IN PRODUCTION OR LIVE PROJECTS + INTENDED STRICTLY FOR TESTING + +Version 2.0.0 rc2 (Fri, Nov 16 2007), interim release + * implements new property to control VERP in class.smtp.php + example (requires instantiating class.smtp.php): + $mail->do_verp = true; + * POP-before-SMTP functionality included, thanks to Richard Davey + (see class.pop3.php & pop3_before_smtp_test.php for examples) + * included example showing how to use PHPMailer with GMAIL + * fixed the missing Cc in SendMail() and Mail() + + ****************** + A note on sending bulk emails: + + If the email you are sending is not personalized, consider using the + "undisclosed-recipient:;" strategy. That is, put all of your recipients + in the Bcc field and set the To field to "undisclosed-recipients:;". + It's a lot faster (only one send) and saves quite a bit on resources. + Contrary to some opinions, this will not get you listed in spam engines - + it's a legitimate way for you to send emails. + + A partial example for use with PHPMailer: + + $mail->AddAddress("undisclosed-recipients:;"); + $mail->AddBCC("email1@anydomain.com,email2@anyotherdomain.com,email3@anyalternatedomain.com"); + + Many email service providers restrict the number of emails that can be sent + in any given time period. Often that is between 50 - 60 emails maximum + per hour or per send session. + + If that's the case, then break up your Bcc lists into chunks that are one + less than your limit, and put a pause in your script. + ******************* + +Version 2.0.0 rc1 (Thu, Nov 08 2007), interim release + * dramatically simplified using inline graphics ... it's fully automated and requires no user input + * added automatic document type detection for attachments and pictures + * added MsgHTML() function to replace Body tag for HTML emails + * fixed the SendMail security issues (input validation vulnerability) + * enhanced the AddAddresses functionality so that the "Name" portion is used in the email address + * removed the need to use the AltBody method (set from the HTML, or default text used) + * set the PHP Mail() function as the default (still support SendMail, SMTP Mail) + * removed the need to set the IsHTML property (set automatically) + * added Estonian language file by Indrek Päri + * added header injection patch + * added "set" method to permit users to create their own pseudo-properties like 'X-Headers', etc. + example of use: + $mail->set('X-Priority', '3'); + $mail->set('X-MSMail-Priority', 'Normal'); + * fixed warning message in SMTP get_lines method + * added TLS/SSL SMTP support + example of use: + $mail = new PHPMailer(); + $mail->Mailer = "smtp"; + $mail->Host = "smtp.example.com"; + $mail->SMTPSecure = "tls"; // option + //$mail->SMTPSecure = "ssl"; // option + ... + $mail->Send(); + * PHPMailer has been tested with PHP4 (4.4.7) and PHP5 (5.2.7) + * Works with PHP installed as a module or as CGI-PHP + - NOTE: will NOT work with PHP5 in E_STRICT error mode + +Version 1.73 (Sun, Jun 10 2005) + * Fixed denial of service bug: http://www.cybsec.com/vuln/PHPMailer-DOS.pdf + * Now has a total of 20 translations + * Fixed alt attachments bug: http://tinyurl.com/98u9k + +Version 1.72 (Wed, May 25 2004) + * Added Dutch, Swedish, Czech, Norwegian, and Turkish translations. + * Received: Removed this method because spam filter programs like + SpamAssassin reject this header. + * Fixed error count bug. + * SetLanguage default is now "language/". + * Fixed magic_quotes_runtime bug. + +Version 1.71 (Tue, Jul 28 2003) + * Made several speed enhancements + * Added German and Italian translation files + * Fixed HELO/AUTH bugs on keep-alive connects + * Now provides an error message if language file does not load + * Fixed attachment EOL bug + * Updated some unclear documentation + * Added additional tests and improved others + +Version 1.70 (Mon, Jun 20 2003) + * Added SMTP keep-alive support + * Added IsError method for error detection + * Added error message translation support (SetLanguage) + * Refactored many methods to increase library performance + * Hello now sends the newer EHLO message before HELO as per RFC 2821 + * Removed the boundary class and replaced it with GetBoundary + * Removed queue support methods + * New $Hostname variable + * New Message-ID header + * Received header reformat + * Helo variable default changed to $Hostname + * Removed extra spaces in Content-Type definition (#667182) + * Return-Path should be set to Sender when set + * Adds Q or B encoding to headers when necessary + * quoted-encoding should now encode NULs \000 + * Fixed encoding of body/AltBody (#553370) + * Adds "To: undisclosed-recipients:;" when all recipients are hidden (BCC) + * Multiple bug fixes + +Version 1.65 (Fri, Aug 09 2002) + * Fixed non-visible attachment bug (#585097) for Outlook + * SMTP connections are now closed after each transaction + * Fixed SMTP::Expand return value + * Converted SMTP class documentation to phpDocumentor format + +Version 1.62 (Wed, Jun 26 2002) + * Fixed multi-attach bug + * Set proper word wrapping + * Reduced memory use with attachments + * Added more debugging + * Changed documentation to phpDocumentor format + +Version 1.60 (Sat, Mar 30 2002) + * Sendmail pipe and address patch (Christian Holtje) + * Added embedded image and read confirmation support (A. Ognio) + * Added unit tests + * Added SMTP timeout support (*nix only) + * Added possibly temporary PluginDir variable for SMTP class + * Added LE message line ending variable + * Refactored boundary and attachment code + * Eliminated SMTP class warnings + * Added SendToQueue method for future queuing support + +Version 1.54 (Wed, Dec 19 2001) + * Add some queuing support code + * Fixed a pesky multi/alt bug + * Messages are no longer forced to have "To" addresses + +Version 1.50 (Thu, Nov 08 2001) + * Fix extra lines when not using SMTP mailer + * Set WordWrap variable to int with a zero default + +Version 1.47 (Tue, Oct 16 2001) + * Fixed Received header code format + * Fixed AltBody order error + * Fixed alternate port warning + +Version 1.45 (Tue, Sep 25 2001) + * Added enhanced SMTP debug support + * Added support for multiple ports on SMTP + * Added Received header for tracing + * Fixed AddStringAttachment encoding + * Fixed possible header name quote bug + * Fixed wordwrap() trim bug + * Couple other small bug fixes + +Version 1.41 (Wed, Aug 22 2001) + * Fixed AltBody bug w/o attachments + * Fixed rfc_date() for certain mail servers + +Version 1.40 (Sun, Aug 12 2001) + * Added multipart/alternative support (AltBody) + * Documentation update + * Fixed bug in Mercury MTA + +Version 1.29 (Fri, Aug 03 2001) + * Added AddStringAttachment() method + * Added SMTP authentication support + +Version 1.28 (Mon, Jul 30 2001) + * Fixed a typo in SMTP class + * Fixed header issue with Imail (win32) SMTP server + * Made fopen() calls for attachments use "rb" to fix win32 error + +Version 1.25 (Mon, Jul 02 2001) + * Added RFC 822 date fix (Patrice) + * Added improved error handling by adding a $ErrorInfo variable + * Removed MailerDebug variable (obsolete with new error handler) + +Version 1.20 (Mon, Jun 25 2001) + * Added quoted-printable encoding (Patrice) + * Set Version as public and removed PrintVersion() + * Changed phpdoc to only display public variables and methods + +Version 1.19 (Thu, Jun 21 2001) + * Fixed MS Mail header bug + * Added fix for Bcc problem with mail(). *Does not work on Win32* + (See PHP bug report: http://www.php.net/bugs.php?id=11616) + * mail() no longer passes a fifth parameter when not needed + +Version 1.15 (Fri, Jun 15 2001) + [Note: these changes contributed by Patrice Fournier] + * Changed all remaining \n to \r\n + * Bcc: header no longer writen to message except + when sent directly to sendmail + * Added a small message to non-MIME compliant mail reader + * Added Sender variable to change the Sender email + used in -f for sendmail/mail and in 'MAIL FROM' for smtp mode + * Changed boundary setting to a place it will be set only once + * Removed transfer encoding for whole message when using multipart + * Message body now uses Encoding in multipart messages + * Can set encoding and type to attachments 7bit, 8bit + and binary attachment are sent as is, base64 are encoded + * Can set Encoding to base64 to send 8 bits body + through 7 bits servers + +Version 1.10 (Tue, Jun 12 2001) + * Fixed win32 mail header bug (printed out headers in message body) + +Version 1.09 (Fri, Jun 08 2001) + * Changed date header to work with Netscape mail programs + * Altered phpdoc documentation + +Version 1.08 (Tue, Jun 05 2001) + * Added enhanced error-checking + * Added phpdoc documentation to source + +Version 1.06 (Fri, Jun 01 2001) + * Added optional name for file attachments + +Version 1.05 (Tue, May 29 2001) + * Code cleanup + * Eliminated sendmail header warning message + * Fixed possible SMTP error + +Version 1.03 (Thu, May 24 2001) + * Fixed problem where qmail sends out duplicate messages + +Version 1.02 (Wed, May 23 2001) + * Added multiple recipient and attachment Clear* methods + * Added Sendmail public variable + * Fixed problem with loading SMTP library multiple times + +Version 0.98 (Tue, May 22 2001) + * Fixed problem with redundant mail hosts sending out multiple messages + * Added additional error handler code + * Added AddCustomHeader() function + * Added support for Microsoft mail client headers (affects priority) + * Fixed small bug with Mailer variable + * Added PrintVersion() function + +Version 0.92 (Tue, May 15 2001) + * Changed file names to class.phpmailer.php and class.smtp.php to match + current PHP class trend. + * Fixed problem where body not being printed when a message is attached + * Several small bug fixes + +Version 0.90 (Tue, April 17 2001) + * Intial public release diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/class.phpmailer.php b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/class.phpmailer.php new file mode 100644 index 0000000..99c0d78 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/class.phpmailer.php @@ -0,0 +1,2826 @@ +UseSendmailOptions) ) { + $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($subject)), $body, $header); + } else { + $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($subject)), $body, $header, $params); + } + return $rt; + } + + /** + * Outputs debugging info via user-defined method + * @param string $str + */ + private function edebug($str) { + if ($this->Debugoutput == "error_log") { + error_log($str); + } else { + echo $str; + } + } + + /** + * Constructor + * @param boolean $exceptions Should we throw external exceptions? + */ + public function __construct($exceptions = false) { + $this->exceptions = ($exceptions == true); + } + + /** + * Sets message type to HTML. + * @param bool $ishtml + * @return void + */ + public function IsHTML($ishtml = true) { + if ($ishtml) { + $this->ContentType = 'text/html'; + } else { + $this->ContentType = 'text/plain'; + } + } + + /** + * Sets Mailer to send message using SMTP. + * @return void + */ + public function IsSMTP() { + $this->Mailer = 'smtp'; + } + + /** + * Sets Mailer to send message using PHP mail() function. + * @return void + */ + public function IsMail() { + $this->Mailer = 'mail'; + } + + /** + * Sets Mailer to send message using the $Sendmail program. + * @return void + */ + public function IsSendmail() { + if (!stristr(ini_get('sendmail_path'), 'sendmail')) { + $this->Sendmail = '/var/qmail/bin/sendmail'; + } + $this->Mailer = 'sendmail'; + } + + /** + * Sets Mailer to send message using the qmail MTA. + * @return void + */ + public function IsQmail() { + if (stristr(ini_get('sendmail_path'), 'qmail')) { + $this->Sendmail = '/var/qmail/bin/sendmail'; + } + $this->Mailer = 'sendmail'; + } + + ///////////////////////////////////////////////// + // METHODS, RECIPIENTS + ///////////////////////////////////////////////// + + /** + * Adds a "To" address. + * @param string $address + * @param string $name + * @return boolean true on success, false if address already used + */ + public function AddAddress($address, $name = '') { + return $this->AddAnAddress('to', $address, $name); + } + + /** + * Adds a "Cc" address. + * Note: this function works with the SMTP mailer on win32, not with the "mail" mailer. + * @param string $address + * @param string $name + * @return boolean true on success, false if address already used + */ + public function AddCC($address, $name = '') { + return $this->AddAnAddress('cc', $address, $name); + } + + /** + * Adds a "Bcc" address. + * Note: this function works with the SMTP mailer on win32, not with the "mail" mailer. + * @param string $address + * @param string $name + * @return boolean true on success, false if address already used + */ + public function AddBCC($address, $name = '') { + return $this->AddAnAddress('bcc', $address, $name); + } + + /** + * Adds a "Reply-to" address. + * @param string $address + * @param string $name + * @return boolean + */ + public function AddReplyTo($address, $name = '') { + return $this->AddAnAddress('Reply-To', $address, $name); + } + + /** + * Adds an address to one of the recipient arrays + * Addresses that have been added already return false, but do not throw exceptions + * @param string $kind One of 'to', 'cc', 'bcc', 'ReplyTo' + * @param string $address The email address to send to + * @param string $name + * @throws phpmailerException + * @return boolean true on success, false if address already used or invalid in some way + * @access protected + */ + protected function AddAnAddress($kind, $address, $name = '') { + if (!preg_match('/^(to|cc|bcc|Reply-To)$/', $kind)) { + $this->SetError($this->Lang('Invalid recipient array').': '.$kind); + if ($this->exceptions) { + throw new phpmailerException('Invalid recipient array: ' . $kind); + } + if ($this->SMTPDebug) { + $this->edebug($this->Lang('Invalid recipient array').': '.$kind); + } + return false; + } + $address = trim($address); + $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim + if (!$this->ValidateAddress($address)) { + $this->SetError($this->Lang('invalid_address').': '. $address); + if ($this->exceptions) { + throw new phpmailerException($this->Lang('invalid_address').': '.$address); + } + if ($this->SMTPDebug) { + $this->edebug($this->Lang('invalid_address').': '.$address); + } + return false; + } + if ($kind != 'Reply-To') { + if (!isset($this->all_recipients[strtolower($address)])) { + array_push($this->$kind, array($address, $name)); + $this->all_recipients[strtolower($address)] = true; + return true; + } + } else { + if (!array_key_exists(strtolower($address), $this->ReplyTo)) { + $this->ReplyTo[strtolower($address)] = array($address, $name); + return true; + } + } + return false; +} + +/** + * Set the From and FromName properties + * @param string $address + * @param string $name + * @param int $auto Also set Reply-To and Sender + * @throws phpmailerException + * @return boolean + */ + public function SetFrom($address, $name = '', $auto = 1) { + $address = trim($address); + $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim + if (!$this->ValidateAddress($address)) { + $this->SetError($this->Lang('invalid_address').': '. $address); + if ($this->exceptions) { + throw new phpmailerException($this->Lang('invalid_address').': '.$address); + } + if ($this->SMTPDebug) { + $this->edebug($this->Lang('invalid_address').': '.$address); + } + return false; + } + $this->From = $address; + $this->FromName = $name; + if ($auto) { + if (empty($this->ReplyTo)) { + $this->AddAnAddress('Reply-To', $address, $name); + } + if (empty($this->Sender)) { + $this->Sender = $address; + } + } + return true; + } + + /** + * Check that a string looks roughly like an email address should + * Static so it can be used without instantiation, public so people can overload + * Conforms to RFC5322: Uses *correct* regex on which FILTER_VALIDATE_EMAIL is + * based; So why not use FILTER_VALIDATE_EMAIL? Because it was broken to + * not allow a@b type valid addresses :( + * Some Versions of PHP break on the regex though, likely due to PCRE, so use + * the older validation method for those users. (http://php.net/manual/en/pcre.installation.php) + * @link http://squiloople.com/2009/12/20/email-address-validation/ + * @copyright regex Copyright Michael Rushton 2009-10 | http://squiloople.com/ | Feel free to use and redistribute this code. But please keep this copyright notice. + * @param string $address The email address to check + * @return boolean + * @static + * @access public + */ + public static function ValidateAddress($address) { + if ((defined('PCRE_VERSION')) && (version_compare(PCRE_VERSION, '8.0') >= 0)) { + return preg_match('/^(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){255,})(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){65,}@)((?>(?>(?>((?>(?>(?>\x0D\x0A)?[ ])+|(?>[ ]*\x0D\x0A)?[ ]+)?)(\((?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-\'*-\[\]-\x7F]|\\\[\x00-\x7F]|(?3)))*(?2)\)))+(?2))|(?2))?)([!#-\'*+\/-9=?^-~-]+|"(?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\x7F]))*(?2)")(?>(?1)\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)(?>(?1)\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}|(?!(?:.*[a-f0-9][:\]]){7,})((?6)(?>:(?6)){0,5})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:|(?!(?:.*[a-f0-9]:){5,})(?8)?::(?>((?6)(?>:(?6)){0,3}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(?>\.(?9)){3}))\])(?1)$/isD', $address); + } elseif (function_exists('filter_var')) { //Introduced in PHP 5.2 + if(filter_var($address, FILTER_VALIDATE_EMAIL) === FALSE) { + return false; + } else { + return true; + } + } else { + return preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $address); + } + } + + ///////////////////////////////////////////////// + // METHODS, MAIL SENDING + ///////////////////////////////////////////////// + + /** + * Creates message and assigns Mailer. If the message is + * not sent successfully then it returns false. Use the ErrorInfo + * variable to view description of the error. + * @throws phpmailerException + * @return bool + */ + public function Send() { + try { + if(!$this->PreSend()) return false; + return $this->PostSend(); + } catch (phpmailerException $e) { + $this->mailHeader = ''; + $this->SetError($e->getMessage()); + if ($this->exceptions) { + throw $e; + } + return false; + } + } + + /** + * Prep mail by constructing all message entities + * @throws phpmailerException + * @return bool + */ + public function PreSend() { + try { + $this->mailHeader = ""; + if ((count($this->to) + count($this->cc) + count($this->bcc)) < 1) { + throw new phpmailerException($this->Lang('provide_address'), self::STOP_CRITICAL); + } + + // Set whether the message is multipart/alternative + if(!empty($this->AltBody)) { + $this->ContentType = 'multipart/alternative'; + } + + $this->error_count = 0; // reset errors + $this->SetMessageType(); + //Refuse to send an empty message + if (empty($this->Body)) { + throw new phpmailerException($this->Lang('empty_message'), self::STOP_CRITICAL); + } + + $this->MIMEHeader = $this->CreateHeader(); + $this->MIMEBody = $this->CreateBody(); + + // To capture the complete message when using mail(), create + // an extra header list which CreateHeader() doesn't fold in + if ($this->Mailer == 'mail') { + if (count($this->to) > 0) { + $this->mailHeader .= $this->AddrAppend("To", $this->to); + } else { + $this->mailHeader .= $this->HeaderLine("To", "undisclosed-recipients:;"); + } + $this->mailHeader .= $this->HeaderLine('Subject', $this->EncodeHeader($this->SecureHeader(trim($this->Subject)))); + // if(count($this->cc) > 0) { + // $this->mailHeader .= $this->AddrAppend("Cc", $this->cc); + // } + } + + // digitally sign with DKIM if enabled + if (!empty($this->DKIM_domain) && !empty($this->DKIM_private) && !empty($this->DKIM_selector) && !empty($this->DKIM_domain) && file_exists($this->DKIM_private)) { + $header_dkim = $this->DKIM_Add($this->MIMEHeader, $this->EncodeHeader($this->SecureHeader($this->Subject)), $this->MIMEBody); + $this->MIMEHeader = str_replace("\r\n", "\n", $header_dkim) . $this->MIMEHeader; + } + + return true; + + } catch (phpmailerException $e) { + $this->SetError($e->getMessage()); + if ($this->exceptions) { + throw $e; + } + return false; + } + } + + /** + * Actual Email transport function + * Send the email via the selected mechanism + * @throws phpmailerException + * @return bool + */ + public function PostSend() { + try { + // Choose the mailer and send through it + switch($this->Mailer) { + case 'sendmail': + return $this->SendmailSend($this->MIMEHeader, $this->MIMEBody); + case 'smtp': + return $this->SmtpSend($this->MIMEHeader, $this->MIMEBody); + case 'mail': + return $this->MailSend($this->MIMEHeader, $this->MIMEBody); + default: + return $this->MailSend($this->MIMEHeader, $this->MIMEBody); + } + } catch (phpmailerException $e) { + $this->SetError($e->getMessage()); + if ($this->exceptions) { + throw $e; + } + if ($this->SMTPDebug) { + $this->edebug($e->getMessage()."\n"); + } + } + return false; + } + + /** + * Sends mail using the $Sendmail program. + * @param string $header The message headers + * @param string $body The message body + * @throws phpmailerException + * @access protected + * @return bool + */ + protected function SendmailSend($header, $body) { + if ($this->Sender != '') { + $sendmail = sprintf("%s -oi -f%s -t", escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender)); + } else { + $sendmail = sprintf("%s -oi -t", escapeshellcmd($this->Sendmail)); + } + if ($this->SingleTo === true) { + foreach ($this->SingleToArray as $val) { + if(!@$mail = popen($sendmail, 'w')) { + throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + fputs($mail, "To: " . $val . "\n"); + fputs($mail, $header); + fputs($mail, $body); + $result = pclose($mail); + // implement call back function if it exists + $isSent = ($result == 0) ? 1 : 0; + $this->doCallback($isSent, $val, $this->cc, $this->bcc, $this->Subject, $body); + if($result != 0) { + throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + } + } else { + if(!@$mail = popen($sendmail, 'w')) { + throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + fputs($mail, $header); + fputs($mail, $body); + $result = pclose($mail); + // implement call back function if it exists + $isSent = ($result == 0) ? 1 : 0; + $this->doCallback($isSent, $this->to, $this->cc, $this->bcc, $this->Subject, $body); + if($result != 0) { + throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + } + return true; + } + + /** + * Sends mail using the PHP mail() function. + * @param string $header The message headers + * @param string $body The message body + * @throws phpmailerException + * @access protected + * @return bool + */ + protected function MailSend($header, $body) { + $toArr = array(); + foreach($this->to as $t) { + $toArr[] = $this->AddrFormat($t); + } + $to = implode(', ', $toArr); + + if (empty($this->Sender)) { + $params = "-oi "; + } else { + $params = sprintf("-oi -f%s", $this->Sender); + } + if ($this->Sender != '' and !ini_get('safe_mode')) { + $old_from = ini_get('sendmail_from'); + ini_set('sendmail_from', $this->Sender); + } + $rt = false; + if ($this->SingleTo === true && count($toArr) > 1) { + foreach ($toArr as $val) { + $rt = $this->mail_passthru($val, $this->Subject, $body, $header, $params); + // implement call back function if it exists + $isSent = ($rt == 1) ? 1 : 0; + $this->doCallback($isSent, $val, $this->cc, $this->bcc, $this->Subject, $body); + } + } else { + $rt = $this->mail_passthru($to, $this->Subject, $body, $header, $params); + // implement call back function if it exists + $isSent = ($rt == 1) ? 1 : 0; + $this->doCallback($isSent, $to, $this->cc, $this->bcc, $this->Subject, $body); + } + if (isset($old_from)) { + ini_set('sendmail_from', $old_from); + } + if(!$rt) { + throw new phpmailerException($this->Lang('instantiate'), self::STOP_CRITICAL); + } + return true; + } + + /** + * Sends mail via SMTP using PhpSMTP + * Returns false if there is a bad MAIL FROM, RCPT, or DATA input. + * @param string $header The message headers + * @param string $body The message body + * @throws phpmailerException + * @uses SMTP + * @access protected + * @return bool + */ + protected function SmtpSend($header, $body) { + require_once $this->PluginDir . 'class.smtp.php'; + $bad_rcpt = array(); + + if(!$this->SmtpConnect()) { + throw new phpmailerException($this->Lang('smtp_connect_failed'), self::STOP_CRITICAL); + } + $smtp_from = ($this->Sender == '') ? $this->From : $this->Sender; + if(!$this->smtp->Mail($smtp_from)) { + $this->SetError($this->Lang('from_failed') . $smtp_from . " : " . implode(",",$this->smtp->getError())) ; + throw new phpmailerException($this->ErrorInfo, self::STOP_CRITICAL); + } + + // Attempt to send attach all recipients + foreach($this->to as $to) { + if (!$this->smtp->Recipient($to[0])) { + $bad_rcpt[] = $to[0]; + // implement call back function if it exists + $isSent = 0; + $this->doCallback($isSent, $to[0], '', '', $this->Subject, $body); + } else { + // implement call back function if it exists + $isSent = 1; + $this->doCallback($isSent, $to[0], '', '', $this->Subject, $body); + } + } + foreach($this->cc as $cc) { + if (!$this->smtp->Recipient($cc[0])) { + $bad_rcpt[] = $cc[0]; + // implement call back function if it exists + $isSent = 0; + $this->doCallback($isSent, '', $cc[0], '', $this->Subject, $body); + } else { + // implement call back function if it exists + $isSent = 1; + $this->doCallback($isSent, '', $cc[0], '', $this->Subject, $body); + } + } + foreach($this->bcc as $bcc) { + if (!$this->smtp->Recipient($bcc[0])) { + $bad_rcpt[] = $bcc[0]; + // implement call back function if it exists + $isSent = 0; + $this->doCallback($isSent, '', '', $bcc[0], $this->Subject, $body); + } else { + // implement call back function if it exists + $isSent = 1; + $this->doCallback($isSent, '', '', $bcc[0], $this->Subject, $body); + } + } + + + if (count($bad_rcpt) > 0 ) { //Create error message for any bad addresses + $badaddresses = implode(', ', $bad_rcpt); + throw new phpmailerException($this->Lang('recipients_failed') . $badaddresses); + } + if(!$this->smtp->Data($header . $body)) { + throw new phpmailerException($this->Lang('data_not_accepted'), self::STOP_CRITICAL); + } + if($this->SMTPKeepAlive == true) { + $this->smtp->Reset(); + } else { + $this->smtp->Quit(); + $this->smtp->Close(); + } + return true; + } + + /** + * Initiates a connection to an SMTP server. + * Returns false if the operation failed. + * @uses SMTP + * @access public + * @throws phpmailerException + * @return bool + */ + public function SmtpConnect() { + if(is_null($this->smtp)) { + $this->smtp = new SMTP; + } + + $this->smtp->Timeout = $this->Timeout; + $this->smtp->do_debug = $this->SMTPDebug; + $hosts = explode(';', $this->Host); + $index = 0; + $connection = $this->smtp->Connected(); + + // Retry while there is no connection + try { + while($index < count($hosts) && !$connection) { + $hostinfo = array(); + if (preg_match('/^(.+):([0-9]+)$/', $hosts[$index], $hostinfo)) { + $host = $hostinfo[1]; + $port = $hostinfo[2]; + } else { + $host = $hosts[$index]; + $port = $this->Port; + } + + $tls = ($this->SMTPSecure == 'tls'); + $ssl = ($this->SMTPSecure == 'ssl'); + + if ($this->smtp->Connect(($ssl ? 'ssl://':'').$host, $port, $this->Timeout)) { + + $hello = ($this->Helo != '' ? $this->Helo : $this->ServerHostname()); + $this->smtp->Hello($hello); + + if ($tls) { + if (!$this->smtp->StartTLS()) { + throw new phpmailerException($this->Lang('connect_host')); + } + + //We must resend HELO after tls negotiation + $this->smtp->Hello($hello); + } + + $connection = true; + if ($this->SMTPAuth) { + if (!$this->smtp->Authenticate($this->Username, $this->Password, $this->AuthType, + $this->Realm, $this->Workstation)) { + throw new phpmailerException($this->Lang('authenticate')); + } + } + } + $index++; + if (!$connection) { + throw new phpmailerException($this->Lang('connect_host')); + } + } + } catch (phpmailerException $e) { + $this->smtp->Reset(); + if ($this->exceptions) { + throw $e; + } + } + return true; + } + + /** + * Closes the active SMTP session if one exists. + * @return void + */ + public function SmtpClose() { + if ($this->smtp !== null) { + if($this->smtp->Connected()) { + $this->smtp->Quit(); + $this->smtp->Close(); + } + } + } + + /** + * Sets the language for all class error messages. + * Returns false if it cannot load the language file. The default language is English. + * @param string $langcode ISO 639-1 2-character language code (e.g. Portuguese: "br") + * @param string $lang_path Path to the language file directory + * @return bool + * @access public + */ + function SetLanguage($langcode = 'en', $lang_path = 'language/') { + //Define full set of translatable strings + $PHPMAILER_LANG = array( + 'authenticate' => 'SMTP Error: Could not authenticate.', + 'connect_host' => 'SMTP Error: Could not connect to SMTP host.', + 'data_not_accepted' => 'SMTP Error: Data not accepted.', + 'empty_message' => 'Message body empty', + 'encoding' => 'Unknown encoding: ', + 'execute' => 'Could not execute: ', + 'file_access' => 'Could not access file: ', + 'file_open' => 'File Error: Could not open file: ', + 'from_failed' => 'The following From address failed: ', + 'instantiate' => 'Could not instantiate mail function.', + 'invalid_address' => 'Invalid address', + 'mailer_not_supported' => ' mailer is not supported.', + 'provide_address' => 'You must provide at least one recipient email address.', + 'recipients_failed' => 'SMTP Error: The following recipients failed: ', + 'signing' => 'Signing Error: ', + 'smtp_connect_failed' => 'SMTP Connect() failed.', + 'smtp_error' => 'SMTP server error: ', + 'variable_set' => 'Cannot set or reset variable: ' + ); + //Overwrite language-specific strings. This way we'll never have missing translations - no more "language string failed to load"! + $l = true; + if ($langcode != 'en') { //There is no English translation file + $l = @include $lang_path.'phpmailer.lang-'.$langcode.'.php'; + } + $this->language = $PHPMAILER_LANG; + return ($l == true); //Returns false if language not found + } + + /** + * Return the current array of language strings + * @return array + */ + public function GetTranslations() { + return $this->language; + } + + ///////////////////////////////////////////////// + // METHODS, MESSAGE CREATION + ///////////////////////////////////////////////// + + /** + * Creates recipient headers. + * @access public + * @param string $type + * @param array $addr + * @return string + */ + public function AddrAppend($type, $addr) { + $addr_str = $type . ': '; + $addresses = array(); + foreach ($addr as $a) { + $addresses[] = $this->AddrFormat($a); + } + $addr_str .= implode(', ', $addresses); + $addr_str .= $this->LE; + + return $addr_str; + } + + /** + * Formats an address correctly. + * @access public + * @param string $addr + * @return string + */ + public function AddrFormat($addr) { + if (empty($addr[1])) { + return $this->SecureHeader($addr[0]); + } else { + return $this->EncodeHeader($this->SecureHeader($addr[1]), 'phrase') . " <" . $this->SecureHeader($addr[0]) . ">"; + } + } + + /** + * Wraps message for use with mailers that do not + * automatically perform wrapping and for quoted-printable. + * Original written by philippe. + * @param string $message The message to wrap + * @param integer $length The line length to wrap to + * @param boolean $qp_mode Whether to run in Quoted-Printable mode + * @access public + * @return string + */ + public function WrapText($message, $length, $qp_mode = false) { + $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE; + // If utf-8 encoding is used, we will need to make sure we don't + // split multibyte characters when we wrap + $is_utf8 = (strtolower($this->CharSet) == "utf-8"); + $lelen = strlen($this->LE); + $crlflen = strlen(self::CRLF); + + $message = $this->FixEOL($message); + if (substr($message, -$lelen) == $this->LE) { + $message = substr($message, 0, -$lelen); + } + + $line = explode($this->LE, $message); // Magic. We know FixEOL uses $LE + $message = ''; + for ($i = 0 ;$i < count($line); $i++) { + $line_part = explode(' ', $line[$i]); + $buf = ''; + for ($e = 0; $e $length)) { + $space_left = $length - strlen($buf) - $crlflen; + if ($e != 0) { + if ($space_left > 20) { + $len = $space_left; + if ($is_utf8) { + $len = $this->UTF8CharBoundary($word, $len); + } elseif (substr($word, $len - 1, 1) == "=") { + $len--; + } elseif (substr($word, $len - 2, 1) == "=") { + $len -= 2; + } + $part = substr($word, 0, $len); + $word = substr($word, $len); + $buf .= ' ' . $part; + $message .= $buf . sprintf("=%s", self::CRLF); + } else { + $message .= $buf . $soft_break; + } + $buf = ''; + } + while (strlen($word) > 0) { + $len = $length; + if ($is_utf8) { + $len = $this->UTF8CharBoundary($word, $len); + } elseif (substr($word, $len - 1, 1) == "=") { + $len--; + } elseif (substr($word, $len - 2, 1) == "=") { + $len -= 2; + } + $part = substr($word, 0, $len); + $word = substr($word, $len); + + if (strlen($word) > 0) { + $message .= $part . sprintf("=%s", self::CRLF); + } else { + $buf = $part; + } + } + } else { + $buf_o = $buf; + $buf .= ($e == 0) ? $word : (' ' . $word); + + if (strlen($buf) > $length and $buf_o != '') { + $message .= $buf_o . $soft_break; + $buf = $word; + } + } + } + $message .= $buf . self::CRLF; + } + + return $message; + } + + /** + * Finds last character boundary prior to maxLength in a utf-8 + * quoted (printable) encoded string. + * Original written by Colin Brown. + * @access public + * @param string $encodedText utf-8 QP text + * @param int $maxLength find last character boundary prior to this length + * @return int + */ + public function UTF8CharBoundary($encodedText, $maxLength) { + $foundSplitPos = false; + $lookBack = 3; + while (!$foundSplitPos) { + $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack); + $encodedCharPos = strpos($lastChunk, "="); + if ($encodedCharPos !== false) { + // Found start of encoded character byte within $lookBack block. + // Check the encoded byte value (the 2 chars after the '=') + $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2); + $dec = hexdec($hex); + if ($dec < 128) { // Single byte character. + // If the encoded char was found at pos 0, it will fit + // otherwise reduce maxLength to start of the encoded char + $maxLength = ($encodedCharPos == 0) ? $maxLength : + $maxLength - ($lookBack - $encodedCharPos); + $foundSplitPos = true; + } elseif ($dec >= 192) { // First byte of a multi byte character + // Reduce maxLength to split at start of character + $maxLength = $maxLength - ($lookBack - $encodedCharPos); + $foundSplitPos = true; + } elseif ($dec < 192) { // Middle byte of a multi byte character, look further back + $lookBack += 3; + } + } else { + // No encoded character found + $foundSplitPos = true; + } + } + return $maxLength; + } + + + /** + * Set the body wrapping. + * @access public + * @return void + */ + public function SetWordWrap() { + if($this->WordWrap < 1) { + return; + } + + switch($this->message_type) { + case 'alt': + case 'alt_inline': + case 'alt_attach': + case 'alt_inline_attach': + $this->AltBody = $this->WrapText($this->AltBody, $this->WordWrap); + break; + default: + $this->Body = $this->WrapText($this->Body, $this->WordWrap); + break; + } + } + + /** + * Assembles message header. + * @access public + * @return string The assembled header + */ + public function CreateHeader() { + $result = ''; + + // Set the boundaries + $uniq_id = md5(uniqid(time())); + $this->boundary[1] = 'b1_' . $uniq_id; + $this->boundary[2] = 'b2_' . $uniq_id; + $this->boundary[3] = 'b3_' . $uniq_id; + + if ($this->MessageDate == '') { + $result .= $this->HeaderLine('Date', self::RFCDate()); + } else { + $result .= $this->HeaderLine('Date', $this->MessageDate); + } + + if ($this->ReturnPath) { + $result .= $this->HeaderLine('Return-Path', trim($this->ReturnPath)); + } elseif ($this->Sender == '') { + $result .= $this->HeaderLine('Return-Path', trim($this->From)); + } else { + $result .= $this->HeaderLine('Return-Path', trim($this->Sender)); + } + + // To be created automatically by mail() + if($this->Mailer != 'mail') { + if ($this->SingleTo === true) { + foreach($this->to as $t) { + $this->SingleToArray[] = $this->AddrFormat($t); + } + } else { + if(count($this->to) > 0) { + $result .= $this->AddrAppend('To', $this->to); + } elseif (count($this->cc) == 0) { + $result .= $this->HeaderLine('To', 'undisclosed-recipients:;'); + } + } + } + + $from = array(); + $from[0][0] = trim($this->From); + $from[0][1] = $this->FromName; + $result .= $this->AddrAppend('From', $from); + + // sendmail and mail() extract Cc from the header before sending + if(count($this->cc) > 0) { + $result .= $this->AddrAppend('Cc', $this->cc); + } + + // sendmail and mail() extract Bcc from the header before sending + if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->bcc) > 0)) { + $result .= $this->AddrAppend('Bcc', $this->bcc); + } + + if(count($this->ReplyTo) > 0) { + $result .= $this->AddrAppend('Reply-To', $this->ReplyTo); + } + + // mail() sets the subject itself + if($this->Mailer != 'mail') { + $result .= $this->HeaderLine('Subject', $this->EncodeHeader($this->SecureHeader($this->Subject))); + } + + if($this->MessageID != '') { + $result .= $this->HeaderLine('Message-ID', $this->MessageID); + } else { + $result .= sprintf("Message-ID: <%s@%s>%s", $uniq_id, $this->ServerHostname(), $this->LE); + } + $result .= $this->HeaderLine('X-Priority', $this->Priority); + if ($this->XMailer == '') { + $result .= $this->HeaderLine('X-Mailer', 'PHPMailer '.$this->Version.' (http://code.google.com/a/apache-extras.org/p/phpmailer/)'); + } else { + $myXmailer = trim($this->XMailer); + if ($myXmailer) { + $result .= $this->HeaderLine('X-Mailer', $myXmailer); + } + } + + if($this->ConfirmReadingTo != '') { + $result .= $this->HeaderLine('Disposition-Notification-To', '<' . trim($this->ConfirmReadingTo) . '>'); + } + + // Add custom headers + for($index = 0; $index < count($this->CustomHeader); $index++) { + $result .= $this->HeaderLine(trim($this->CustomHeader[$index][0]), $this->EncodeHeader(trim($this->CustomHeader[$index][1]))); + } + if (!$this->sign_key_file) { + $result .= $this->HeaderLine('MIME-Version', '1.0'); + $result .= $this->GetMailMIME(); + } + + return $result; + } + + /** + * Returns the message MIME. + * @access public + * @return string + */ + public function GetMailMIME() { + $result = ''; + switch($this->message_type) { + case 'inline': + $result .= $this->HeaderLine('Content-Type', 'multipart/related;'); + $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); + break; + case 'attach': + case 'inline_attach': + case 'alt_attach': + case 'alt_inline_attach': + $result .= $this->HeaderLine('Content-Type', 'multipart/mixed;'); + $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); + break; + case 'alt': + case 'alt_inline': + $result .= $this->HeaderLine('Content-Type', 'multipart/alternative;'); + $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); + break; + default: + // Catches case 'plain': and case '': + $result .= $this->HeaderLine('Content-Transfer-Encoding', $this->Encoding); + $result .= $this->TextLine('Content-Type: '.$this->ContentType.'; charset='.$this->CharSet); + break; + } + + if($this->Mailer != 'mail') { + $result .= $this->LE; + } + + return $result; + } + + /** + * Returns the MIME message (headers and body). Only really valid post PreSend(). + * @access public + * @return string + */ + public function GetSentMIMEMessage() { + return $this->MIMEHeader . $this->mailHeader . self::CRLF . $this->MIMEBody; + } + + + /** + * Assembles the message body. Returns an empty string on failure. + * @access public + * @throws phpmailerException + * @return string The assembled message body + */ + public function CreateBody() { + $body = ''; + + if ($this->sign_key_file) { + $body .= $this->GetMailMIME().$this->LE; + } + + $this->SetWordWrap(); + + switch($this->message_type) { + case 'inline': + $body .= $this->GetBoundary($this->boundary[1], '', '', ''); + $body .= $this->EncodeString($this->Body, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->AttachAll("inline", $this->boundary[1]); + break; + case 'attach': + $body .= $this->GetBoundary($this->boundary[1], '', '', ''); + $body .= $this->EncodeString($this->Body, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->AttachAll("attachment", $this->boundary[1]); + break; + case 'inline_attach': + $body .= $this->TextLine("--" . $this->boundary[1]); + $body .= $this->HeaderLine('Content-Type', 'multipart/related;'); + $body .= $this->TextLine("\tboundary=\"" . $this->boundary[2] . '"'); + $body .= $this->LE; + $body .= $this->GetBoundary($this->boundary[2], '', '', ''); + $body .= $this->EncodeString($this->Body, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->AttachAll("inline", $this->boundary[2]); + $body .= $this->LE; + $body .= $this->AttachAll("attachment", $this->boundary[1]); + break; + case 'alt': + $body .= $this->GetBoundary($this->boundary[1], '', 'text/plain', ''); + $body .= $this->EncodeString($this->AltBody, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->GetBoundary($this->boundary[1], '', 'text/html', ''); + $body .= $this->EncodeString($this->Body, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->EndBoundary($this->boundary[1]); + break; + case 'alt_inline': + $body .= $this->GetBoundary($this->boundary[1], '', 'text/plain', ''); + $body .= $this->EncodeString($this->AltBody, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->TextLine("--" . $this->boundary[1]); + $body .= $this->HeaderLine('Content-Type', 'multipart/related;'); + $body .= $this->TextLine("\tboundary=\"" . $this->boundary[2] . '"'); + $body .= $this->LE; + $body .= $this->GetBoundary($this->boundary[2], '', 'text/html', ''); + $body .= $this->EncodeString($this->Body, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->AttachAll("inline", $this->boundary[2]); + $body .= $this->LE; + $body .= $this->EndBoundary($this->boundary[1]); + break; + case 'alt_attach': + $body .= $this->TextLine("--" . $this->boundary[1]); + $body .= $this->HeaderLine('Content-Type', 'multipart/alternative;'); + $body .= $this->TextLine("\tboundary=\"" . $this->boundary[2] . '"'); + $body .= $this->LE; + $body .= $this->GetBoundary($this->boundary[2], '', 'text/plain', ''); + $body .= $this->EncodeString($this->AltBody, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->GetBoundary($this->boundary[2], '', 'text/html', ''); + $body .= $this->EncodeString($this->Body, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->EndBoundary($this->boundary[2]); + $body .= $this->LE; + $body .= $this->AttachAll("attachment", $this->boundary[1]); + break; + case 'alt_inline_attach': + $body .= $this->TextLine("--" . $this->boundary[1]); + $body .= $this->HeaderLine('Content-Type', 'multipart/alternative;'); + $body .= $this->TextLine("\tboundary=\"" . $this->boundary[2] . '"'); + $body .= $this->LE; + $body .= $this->GetBoundary($this->boundary[2], '', 'text/plain', ''); + $body .= $this->EncodeString($this->AltBody, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->TextLine("--" . $this->boundary[2]); + $body .= $this->HeaderLine('Content-Type', 'multipart/related;'); + $body .= $this->TextLine("\tboundary=\"" . $this->boundary[3] . '"'); + $body .= $this->LE; + $body .= $this->GetBoundary($this->boundary[3], '', 'text/html', ''); + $body .= $this->EncodeString($this->Body, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->AttachAll("inline", $this->boundary[3]); + $body .= $this->LE; + $body .= $this->EndBoundary($this->boundary[2]); + $body .= $this->LE; + $body .= $this->AttachAll("attachment", $this->boundary[1]); + break; + default: + // catch case 'plain' and case '' + $body .= $this->EncodeString($this->Body, $this->Encoding); + break; + } + + if ($this->IsError()) { + $body = ''; + } elseif ($this->sign_key_file) { + try { + $file = tempnam('', 'mail'); + file_put_contents($file, $body); //TODO check this worked + $signed = tempnam("", "signed"); + if (@openssl_pkcs7_sign($file, $signed, "file://".$this->sign_cert_file, array("file://".$this->sign_key_file, $this->sign_key_pass), NULL)) { + @unlink($file); + $body = file_get_contents($signed); + @unlink($signed); + } else { + @unlink($file); + @unlink($signed); + throw new phpmailerException($this->Lang("signing").openssl_error_string()); + } + } catch (phpmailerException $e) { + $body = ''; + if ($this->exceptions) { + throw $e; + } + } + } + + return $body; + } + + /** + * Returns the start of a message boundary. + * @access protected + * @param string $boundary + * @param string $charSet + * @param string $contentType + * @param string $encoding + * @return string + */ + protected function GetBoundary($boundary, $charSet, $contentType, $encoding) { + $result = ''; + if($charSet == '') { + $charSet = $this->CharSet; + } + if($contentType == '') { + $contentType = $this->ContentType; + } + if($encoding == '') { + $encoding = $this->Encoding; + } + $result .= $this->TextLine('--' . $boundary); + $result .= sprintf("Content-Type: %s; charset=%s", $contentType, $charSet); + $result .= $this->LE; + $result .= $this->HeaderLine('Content-Transfer-Encoding', $encoding); + $result .= $this->LE; + + return $result; + } + + /** + * Returns the end of a message boundary. + * @access protected + * @param string $boundary + * @return string + */ + protected function EndBoundary($boundary) { + return $this->LE . '--' . $boundary . '--' . $this->LE; + } + + /** + * Sets the message type. + * @access protected + * @return void + */ + protected function SetMessageType() { + $this->message_type = array(); + if($this->AlternativeExists()) $this->message_type[] = "alt"; + if($this->InlineImageExists()) $this->message_type[] = "inline"; + if($this->AttachmentExists()) $this->message_type[] = "attach"; + $this->message_type = implode("_", $this->message_type); + if($this->message_type == "") $this->message_type = "plain"; + } + + /** + * Returns a formatted header line. + * @access public + * @param string $name + * @param string $value + * @return string + */ + public function HeaderLine($name, $value) { + return $name . ': ' . $value . $this->LE; + } + + /** + * Returns a formatted mail line. + * @access public + * @param string $value + * @return string + */ + public function TextLine($value) { + return $value . $this->LE; + } + + ///////////////////////////////////////////////// + // CLASS METHODS, ATTACHMENTS + ///////////////////////////////////////////////// + + /** + * Adds an attachment from a path on the filesystem. + * Returns false if the file could not be found + * or accessed. + * @param string $path Path to the attachment. + * @param string $name Overrides the attachment name. + * @param string $encoding File encoding (see $Encoding). + * @param string $type File extension (MIME) type. + * @throws phpmailerException + * @return bool + */ + public function AddAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream') { + try { + if ( !@is_file($path) ) { + throw new phpmailerException($this->Lang('file_access') . $path, self::STOP_CONTINUE); + } + $filename = basename($path); + if ( $name == '' ) { + $name = $filename; + } + + $this->attachment[] = array( + 0 => $path, + 1 => $filename, + 2 => $name, + 3 => $encoding, + 4 => $type, + 5 => false, // isStringAttachment + 6 => 'attachment', + 7 => 0 + ); + + } catch (phpmailerException $e) { + $this->SetError($e->getMessage()); + if ($this->exceptions) { + throw $e; + } + if ($this->SMTPDebug) { + $this->edebug($e->getMessage()."\n"); + } + if ( $e->getCode() == self::STOP_CRITICAL ) { + return false; + } + } + return true; + } + + /** + * Return the current array of attachments + * @return array + */ + public function GetAttachments() { + return $this->attachment; + } + + /** + * Attaches all fs, string, and binary attachments to the message. + * Returns an empty string on failure. + * @access protected + * @param string $disposition_type + * @param string $boundary + * @return string + */ + protected function AttachAll($disposition_type, $boundary) { + // Return text of body + $mime = array(); + $cidUniq = array(); + $incl = array(); + + // Add all attachments + foreach ($this->attachment as $attachment) { + // CHECK IF IT IS A VALID DISPOSITION_FILTER + if($attachment[6] == $disposition_type) { + // Check for string attachment + $string = ''; + $path = ''; + $bString = $attachment[5]; + if ($bString) { + $string = $attachment[0]; + } else { + $path = $attachment[0]; + } + + $inclhash = md5(serialize($attachment)); + if (in_array($inclhash, $incl)) { continue; } + $incl[] = $inclhash; + $filename = $attachment[1]; + $name = $attachment[2]; + $encoding = $attachment[3]; + $type = $attachment[4]; + $disposition = $attachment[6]; + $cid = $attachment[7]; + if ( $disposition == 'inline' && isset($cidUniq[$cid]) ) { continue; } + $cidUniq[$cid] = true; + + $mime[] = sprintf("--%s%s", $boundary, $this->LE); + $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $this->EncodeHeader($this->SecureHeader($name)), $this->LE); + $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE); + + if($disposition == 'inline') { + $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE); + } + + $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", $disposition, $this->EncodeHeader($this->SecureHeader($name)), $this->LE.$this->LE); + + // Encode as string attachment + if($bString) { + $mime[] = $this->EncodeString($string, $encoding); + if($this->IsError()) { + return ''; + } + $mime[] = $this->LE.$this->LE; + } else { + $mime[] = $this->EncodeFile($path, $encoding); + if($this->IsError()) { + return ''; + } + $mime[] = $this->LE.$this->LE; + } + } + } + + $mime[] = sprintf("--%s--%s", $boundary, $this->LE); + + return implode("", $mime); + } + + /** + * Encodes attachment in requested format. + * Returns an empty string on failure. + * @param string $path The full path to the file + * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable' + * @throws phpmailerException + * @see EncodeFile() + * @access protected + * @return string + */ + protected function EncodeFile($path, $encoding = 'base64') { + try { + if (!is_readable($path)) { + throw new phpmailerException($this->Lang('file_open') . $path, self::STOP_CONTINUE); + } + // if (!function_exists('get_magic_quotes')) { + // function get_magic_quotes() { + // return false; + // } + // } + $magic_quotes = get_magic_quotes_runtime(); + if ($magic_quotes) { + if (version_compare(PHP_VERSION, '5.3.0', '<')) { + set_magic_quotes_runtime(0); + } else { + ini_set('magic_quotes_runtime', 0); + } + } + $file_buffer = file_get_contents($path); + $file_buffer = $this->EncodeString($file_buffer, $encoding); + if ($magic_quotes) { + if (version_compare(PHP_VERSION, '5.3.0', '<')) { + set_magic_quotes_runtime($magic_quotes); + } else { + ini_set('magic_quotes_runtime', $magic_quotes); + } + } + return $file_buffer; + } catch (Exception $e) { + $this->SetError($e->getMessage()); + return ''; + } + } + + /** + * Encodes string to requested format. + * Returns an empty string on failure. + * @param string $str The text to encode + * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable' + * @access public + * @return string + */ + public function EncodeString($str, $encoding = 'base64') { + $encoded = ''; + switch(strtolower($encoding)) { + case 'base64': + $encoded = chunk_split(base64_encode($str), 76, $this->LE); + break; + case '7bit': + case '8bit': + $encoded = $this->FixEOL($str); + //Make sure it ends with a line break + if (substr($encoded, -(strlen($this->LE))) != $this->LE) + $encoded .= $this->LE; + break; + case 'binary': + $encoded = $str; + break; + case 'quoted-printable': + $encoded = $this->EncodeQP($str); + break; + default: + $this->SetError($this->Lang('encoding') . $encoding); + break; + } + return $encoded; + } + + /** + * Encode a header string to best (shortest) of Q, B, quoted or none. + * @access public + * @param string $str + * @param string $position + * @return string + */ + public function EncodeHeader($str, $position = 'text') { + $x = 0; + + switch (strtolower($position)) { + case 'phrase': + if (!preg_match('/[\200-\377]/', $str)) { + // Can't use addslashes as we don't know what value has magic_quotes_sybase + $encoded = addcslashes($str, "\0..\37\177\\\""); + if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) { + return ($encoded); + } else { + return ("\"$encoded\""); + } + } + $x = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches); + break; + case 'comment': + $x = preg_match_all('/[()"]/', $str, $matches); + // Fall-through + case 'text': + default: + $x += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches); + break; + } + + if ($x == 0) { + return ($str); + } + + $maxlen = 75 - 7 - strlen($this->CharSet); + // Try to select the encoding which should produce the shortest output + if (strlen($str)/3 < $x) { + $encoding = 'B'; + if (function_exists('mb_strlen') && $this->HasMultiBytes($str)) { + // Use a custom function which correctly encodes and wraps long + // multibyte strings without breaking lines within a character + $encoded = $this->Base64EncodeWrapMB($str, "\n"); + } else { + $encoded = base64_encode($str); + $maxlen -= $maxlen % 4; + $encoded = trim(chunk_split($encoded, $maxlen, "\n")); + } + } else { + $encoding = 'Q'; + $encoded = $this->EncodeQ($str, $position); + $encoded = $this->WrapText($encoded, $maxlen, true); + $encoded = str_replace('='.self::CRLF, "\n", trim($encoded)); + } + + $encoded = preg_replace('/^(.*)$/m', " =?".$this->CharSet."?$encoding?\\1?=", $encoded); + $encoded = trim(str_replace("\n", $this->LE, $encoded)); + + return $encoded; + } + + /** + * Checks if a string contains multibyte characters. + * @access public + * @param string $str multi-byte text to wrap encode + * @return bool + */ + public function HasMultiBytes($str) { + if (function_exists('mb_strlen')) { + return (strlen($str) > mb_strlen($str, $this->CharSet)); + } else { // Assume no multibytes (we can't handle without mbstring functions anyway) + return false; + } + } + + /** + * Correctly encodes and wraps long multibyte strings for mail headers + * without breaking lines within a character. + * Adapted from a function by paravoid at http://uk.php.net/manual/en/function.mb-encode-mimeheader.php + * @access public + * @param string $str multi-byte text to wrap encode + * @param string $lf string to use as linefeed/end-of-line + * @return string + */ + public function Base64EncodeWrapMB($str, $lf=null) { + $start = "=?".$this->CharSet."?B?"; + $end = "?="; + $encoded = ""; + if ($lf === null) { + $lf = $this->LE; + } + + $mb_length = mb_strlen($str, $this->CharSet); + // Each line must have length <= 75, including $start and $end + $length = 75 - strlen($start) - strlen($end); + // Average multi-byte ratio + $ratio = $mb_length / strlen($str); + // Base64 has a 4:3 ratio + $offset = $avgLength = floor($length * $ratio * .75); + + for ($i = 0; $i < $mb_length; $i += $offset) { + $lookBack = 0; + + do { + $offset = $avgLength - $lookBack; + $chunk = mb_substr($str, $i, $offset, $this->CharSet); + $chunk = base64_encode($chunk); + $lookBack++; + } + while (strlen($chunk) > $length); + + $encoded .= $chunk . $lf; + } + + // Chomp the last linefeed + $encoded = substr($encoded, 0, -strlen($lf)); + return $encoded; + } + + /** + * Encode string to quoted-printable. + * Only uses standard PHP, slow, but will always work + * @access public + * @param string $input + * @param integer $line_max Number of chars allowed on a line before wrapping + * @param bool $space_conv + * @internal param string $string the text to encode + * @return string + */ + public function EncodeQPphp( $input = '', $line_max = 76, $space_conv = false) { + $hex = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'); + $lines = preg_split('/(?:\r\n|\r|\n)/', $input); + $eol = "\r\n"; + $escape = '='; + $output = ''; + while( list(, $line) = each($lines) ) { + $linlen = strlen($line); + $newline = ''; + for($i = 0; $i < $linlen; $i++) { + $c = substr( $line, $i, 1 ); + $dec = ord( $c ); + if ( ( $i == 0 ) && ( $dec == 46 ) ) { // convert first point in the line into =2E + $c = '=2E'; + } + if ( $dec == 32 ) { + if ( $i == ( $linlen - 1 ) ) { // convert space at eol only + $c = '=20'; + } else if ( $space_conv ) { + $c = '=20'; + } + } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required + $h2 = (integer)floor($dec/16); + $h1 = (integer)floor($dec%16); + $c = $escape.$hex[$h2].$hex[$h1]; + } + if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted + $output .= $newline.$escape.$eol; // soft line break; " =\r\n" is okay + $newline = ''; + // check if newline first character will be point or not + if ( $dec == 46 ) { + $c = '=2E'; + } + } + $newline .= $c; + } // end of for + $output .= $newline.$eol; + } // end of while + return $output; + } + + /** + * Encode string to RFC2045 (6.7) quoted-printable format + * Uses a PHP5 stream filter to do the encoding about 64x faster than the old version + * Also results in same content as you started with after decoding + * @see EncodeQPphp() + * @access public + * @param string $string the text to encode + * @param integer $line_max Number of chars allowed on a line before wrapping + * @param boolean $space_conv Dummy param for compatibility with existing EncodeQP function + * @return string + * @author Marcus Bointon + */ + public function EncodeQP($string, $line_max = 76, $space_conv = false) { + if (function_exists('quoted_printable_encode')) { //Use native function if it's available (>= PHP5.3) + return quoted_printable_encode($string); + } + $filters = stream_get_filters(); + if (!in_array('convert.*', $filters)) { //Got convert stream filter? + return $this->EncodeQPphp($string, $line_max, $space_conv); //Fall back to old implementation + } + $fp = fopen('php://temp/', 'r+'); + $string = preg_replace('/\r\n?/', $this->LE, $string); //Normalise line breaks + $params = array('line-length' => $line_max, 'line-break-chars' => $this->LE); + $s = stream_filter_append($fp, 'convert.quoted-printable-encode', STREAM_FILTER_READ, $params); + fputs($fp, $string); + rewind($fp); + $out = stream_get_contents($fp); + stream_filter_remove($s); + $out = preg_replace('/^\./m', '=2E', $out); //Encode . if it is first char on a line, workaround for bug in Exchange + fclose($fp); + return $out; + } + + /** + * Encode string to q encoding. + * @link http://tools.ietf.org/html/rfc2047 + * @param string $str the text to encode + * @param string $position Where the text is going to be used, see the RFC for what that means + * @access public + * @return string + */ + public function EncodeQ($str, $position = 'text') { + //There should not be any EOL in the string + $pattern=""; + $encoded = str_replace(array("\r", "\n"), '', $str); + switch (strtolower($position)) { + case 'phrase': + $pattern = '^A-Za-z0-9!*+\/ -'; + break; + + case 'comment': + $pattern = '\(\)"'; + //note that we dont break here! + //for this reason we build the $pattern withoud including delimiters and [] + + case 'text': + default: + //Replace every high ascii, control =, ? and _ characters + //We put \075 (=) as first value to make sure it's the first one in being converted, preventing double encode + $pattern = '\075\000-\011\013\014\016-\037\077\137\177-\377' . $pattern; + break; + } + + if (preg_match_all("/[{$pattern}]/", $encoded, $matches)) { + foreach (array_unique($matches[0]) as $char) { + $encoded = str_replace($char, '=' . sprintf('%02X', ord($char)), $encoded); + } + } + + //Replace every spaces to _ (more readable than =20) + return str_replace(' ', '_', $encoded); +} + + + /** + * Adds a string or binary attachment (non-filesystem) to the list. + * This method can be used to attach ascii or binary data, + * such as a BLOB record from a database. + * @param string $string String attachment data. + * @param string $filename Name of the attachment. + * @param string $encoding File encoding (see $Encoding). + * @param string $type File extension (MIME) type. + * @return void + */ + public function AddStringAttachment($string, $filename, $encoding = 'base64', $type = 'application/octet-stream') { + // Append to $attachment array + $this->attachment[] = array( + 0 => $string, + 1 => $filename, + 2 => basename($filename), + 3 => $encoding, + 4 => $type, + 5 => true, // isStringAttachment + 6 => 'attachment', + 7 => 0 + ); + } + + /** + * Adds an embedded attachment. This can include images, sounds, and + * just about any other document. Make sure to set the $type to an + * image type. For JPEG images use "image/jpeg" and for GIF images + * use "image/gif". + * @param string $path Path to the attachment. + * @param string $cid Content ID of the attachment. Use this to identify + * the Id for accessing the image in an HTML form. + * @param string $name Overrides the attachment name. + * @param string $encoding File encoding (see $Encoding). + * @param string $type File extension (MIME) type. + * @return bool + */ + public function AddEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') { + + if ( !@is_file($path) ) { + $this->SetError($this->Lang('file_access') . $path); + return false; + } + + $filename = basename($path); + if ( $name == '' ) { + $name = $filename; + } + + // Append to $attachment array + $this->attachment[] = array( + 0 => $path, + 1 => $filename, + 2 => $name, + 3 => $encoding, + 4 => $type, + 5 => false, // isStringAttachment + 6 => 'inline', + 7 => $cid + ); + + return true; + } + + /** + * Adds an embedded stringified attachment. This can include images, sounds, and + * just about any other document. Make sure to set the $type to an + * image type. For JPEG images use "image/jpeg" and for GIF images + * use "image/gif". + * @param string $string The attachment. + * @param string $cid Content ID of the attachment. Use this to identify + * the Id for accessing the image in an HTML form. + * @param string $name Overrides the attachment name. + * @param string $encoding File encoding (see $Encoding). + * @param string $type File extension (MIME) type. + * @return bool + */ + public function AddStringEmbeddedImage($string, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') { + // Append to $attachment array + $this->attachment[] = array( + 0 => $string, + 1 => $name, + 2 => $name, + 3 => $encoding, + 4 => $type, + 5 => true, // isStringAttachment + 6 => 'inline', + 7 => $cid + ); + } + + /** + * Returns true if an inline attachment is present. + * @access public + * @return bool + */ + public function InlineImageExists() { + foreach($this->attachment as $attachment) { + if ($attachment[6] == 'inline') { + return true; + } + } + return false; + } + + /** + * Returns true if an attachment (non-inline) is present. + * @return bool + */ + public function AttachmentExists() { + foreach($this->attachment as $attachment) { + if ($attachment[6] == 'attachment') { + return true; + } + } + return false; + } + + /** + * Does this message have an alternative body set? + * @return bool + */ + public function AlternativeExists() { + return !empty($this->AltBody); + } + + ///////////////////////////////////////////////// + // CLASS METHODS, MESSAGE RESET + ///////////////////////////////////////////////// + + /** + * Clears all recipients assigned in the TO array. Returns void. + * @return void + */ + public function ClearAddresses() { + foreach($this->to as $to) { + unset($this->all_recipients[strtolower($to[0])]); + } + $this->to = array(); + } + + /** + * Clears all recipients assigned in the CC array. Returns void. + * @return void + */ + public function ClearCCs() { + foreach($this->cc as $cc) { + unset($this->all_recipients[strtolower($cc[0])]); + } + $this->cc = array(); + } + + /** + * Clears all recipients assigned in the BCC array. Returns void. + * @return void + */ + public function ClearBCCs() { + foreach($this->bcc as $bcc) { + unset($this->all_recipients[strtolower($bcc[0])]); + } + $this->bcc = array(); + } + + /** + * Clears all recipients assigned in the ReplyTo array. Returns void. + * @return void + */ + public function ClearReplyTos() { + $this->ReplyTo = array(); + } + + /** + * Clears all recipients assigned in the TO, CC and BCC + * array. Returns void. + * @return void + */ + public function ClearAllRecipients() { + $this->to = array(); + $this->cc = array(); + $this->bcc = array(); + $this->all_recipients = array(); + } + + /** + * Clears all previously set filesystem, string, and binary + * attachments. Returns void. + * @return void + */ + public function ClearAttachments() { + $this->attachment = array(); + } + + /** + * Clears all custom headers. Returns void. + * @return void + */ + public function ClearCustomHeaders() { + $this->CustomHeader = array(); + } + + ///////////////////////////////////////////////// + // CLASS METHODS, MISCELLANEOUS + ///////////////////////////////////////////////// + + /** + * Adds the error message to the error container. + * @access protected + * @param string $msg + * @return void + */ + protected function SetError($msg) { + $this->error_count++; + if ($this->Mailer == 'smtp' and !is_null($this->smtp)) { + $lasterror = $this->smtp->getError(); + if (!empty($lasterror) and array_key_exists('smtp_msg', $lasterror)) { + $msg .= '

' . $this->Lang('smtp_error') . $lasterror['smtp_msg'] . "

\n"; + } + } + $this->ErrorInfo = $msg; + } + + /** + * Returns the proper RFC 822 formatted date. + * @access public + * @return string + * @static + */ + public static function RFCDate() { + $tz = date('Z'); + $tzs = ($tz < 0) ? '-' : '+'; + $tz = abs($tz); + $tz = (int)($tz/3600)*100 + ($tz%3600)/60; + $result = sprintf("%s %s%04d", date('D, j M Y H:i:s'), $tzs, $tz); + + return $result; + } + + /** + * Returns the server hostname or 'localhost.localdomain' if unknown. + * @access protected + * @return string + */ + protected function ServerHostname() { + if (!empty($this->Hostname)) { + $result = $this->Hostname; + } elseif (isset($_SERVER['SERVER_NAME'])) { + $result = $_SERVER['SERVER_NAME']; + } else { + $result = 'localhost.localdomain'; + } + + return $result; + } + + /** + * Returns a message in the appropriate language. + * @access protected + * @param string $key + * @return string + */ + protected function Lang($key) { + if(count($this->language) < 1) { + $this->SetLanguage('en'); // set the default language + } + + if(isset($this->language[$key])) { + return $this->language[$key]; + } else { + return 'Language string failed to load: ' . $key; + } + } + + /** + * Returns true if an error occurred. + * @access public + * @return bool + */ + public function IsError() { + return ($this->error_count > 0); + } + + /** + * Changes every end of line from CRLF, CR or LF to $this->LE. + * @access public + * @param string $str String to FixEOL + * @return string + */ + public function FixEOL($str) { + // condense down to \n + $nstr = str_replace(array("\r\n", "\r"), "\n", $str); + // Now convert LE as needed + if ($this->LE !== "\n") { + $nstr = str_replace("\n", $this->LE, $nstr); + } + return $nstr; + } + + /** + * Adds a custom header. $name value can be overloaded to contain + * both header name and value (name:value) + * @access public + * @param string $name custom header name + * @param string $value header value + * @return void + */ + public function AddCustomHeader($name, $value=null) { + if ($value === null) { + // Value passed in as name:value + $this->CustomHeader[] = explode(':', $name, 2); + } else { + $this->CustomHeader[] = array($name, $value); + } + } + + /** + * Evaluates the message and returns modifications for inline images and backgrounds + * @access public + * @param string $message Text to be HTML modified + * @param string $basedir baseline directory for path + * @return string $message + */ + public function MsgHTML($message, $basedir = '') { + preg_match_all("/(src|background)=[\"'](.*)[\"']/Ui", $message, $images); + if(isset($images[2])) { + foreach($images[2] as $i => $url) { + // do not change urls for absolute images (thanks to corvuscorax) + if (!preg_match('#^[A-z]+://#', $url)) { + $filename = basename($url); + $directory = dirname($url); + if ($directory == '.') { + $directory = ''; + } + $cid = 'cid:' . md5($url); + $ext = pathinfo($filename, PATHINFO_EXTENSION); + $mimeType = self::_mime_types($ext); + if ( strlen($basedir) > 1 && substr($basedir, -1) != '/') { $basedir .= '/'; } + if ( strlen($directory) > 1 && substr($directory, -1) != '/') { $directory .= '/'; } + if ( $this->AddEmbeddedImage($basedir.$directory.$filename, md5($url), $filename, 'base64', $mimeType) ) { + $message = preg_replace("/".$images[1][$i]."=[\"']".preg_quote($url, '/')."[\"']/Ui", $images[1][$i]."=\"".$cid."\"", $message); + } + } + } + } + $this->IsHTML(true); + $this->Body = $message; + if (empty($this->AltBody)) { + $textMsg = trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/s', '', $message))); + if (!empty($textMsg)) { + $this->AltBody = html_entity_decode($textMsg, ENT_QUOTES, $this->CharSet); + } + } + if (empty($this->AltBody)) { + $this->AltBody = 'To view this email message, open it in a program that understands HTML!' . "\n\n"; + } + return $message; + } + + /** + * Gets the MIME type of the embedded or inline image + * @param string $ext File extension + * @access public + * @return string MIME type of ext + * @static + */ + public static function _mime_types($ext = '') { + $mimes = array( + 'xl' => 'application/excel', + 'hqx' => 'application/mac-binhex40', + 'cpt' => 'application/mac-compactpro', + 'bin' => 'application/macbinary', + 'doc' => 'application/msword', + 'word' => 'application/msword', + 'class' => 'application/octet-stream', + 'dll' => 'application/octet-stream', + 'dms' => 'application/octet-stream', + 'exe' => 'application/octet-stream', + 'lha' => 'application/octet-stream', + 'lzh' => 'application/octet-stream', + 'psd' => 'application/octet-stream', + 'sea' => 'application/octet-stream', + 'so' => 'application/octet-stream', + 'oda' => 'application/oda', + 'pdf' => 'application/pdf', + 'ai' => 'application/postscript', + 'eps' => 'application/postscript', + 'ps' => 'application/postscript', + 'smi' => 'application/smil', + 'smil' => 'application/smil', + 'mif' => 'application/vnd.mif', + 'xls' => 'application/vnd.ms-excel', + 'ppt' => 'application/vnd.ms-powerpoint', + 'wbxml' => 'application/vnd.wap.wbxml', + 'wmlc' => 'application/vnd.wap.wmlc', + 'dcr' => 'application/x-director', + 'dir' => 'application/x-director', + 'dxr' => 'application/x-director', + 'dvi' => 'application/x-dvi', + 'gtar' => 'application/x-gtar', + 'php3' => 'application/x-httpd-php', + 'php4' => 'application/x-httpd-php', + 'php' => 'application/x-httpd-php', + 'phtml' => 'application/x-httpd-php', + 'phps' => 'application/x-httpd-php-source', + 'js' => 'application/x-javascript', + 'swf' => 'application/x-shockwave-flash', + 'sit' => 'application/x-stuffit', + 'tar' => 'application/x-tar', + 'tgz' => 'application/x-tar', + 'xht' => 'application/xhtml+xml', + 'xhtml' => 'application/xhtml+xml', + 'zip' => 'application/zip', + 'mid' => 'audio/midi', + 'midi' => 'audio/midi', + 'mp2' => 'audio/mpeg', + 'mp3' => 'audio/mpeg', + 'mpga' => 'audio/mpeg', + 'aif' => 'audio/x-aiff', + 'aifc' => 'audio/x-aiff', + 'aiff' => 'audio/x-aiff', + 'ram' => 'audio/x-pn-realaudio', + 'rm' => 'audio/x-pn-realaudio', + 'rpm' => 'audio/x-pn-realaudio-plugin', + 'ra' => 'audio/x-realaudio', + 'wav' => 'audio/x-wav', + 'bmp' => 'image/bmp', + 'gif' => 'image/gif', + 'jpeg' => 'image/jpeg', + 'jpe' => 'image/jpeg', + 'jpg' => 'image/jpeg', + 'png' => 'image/png', + 'tiff' => 'image/tiff', + 'tif' => 'image/tiff', + 'eml' => 'message/rfc822', + 'css' => 'text/css', + 'html' => 'text/html', + 'htm' => 'text/html', + 'shtml' => 'text/html', + 'log' => 'text/plain', + 'text' => 'text/plain', + 'txt' => 'text/plain', + 'rtx' => 'text/richtext', + 'rtf' => 'text/rtf', + 'xml' => 'text/xml', + 'xsl' => 'text/xml', + 'mpeg' => 'video/mpeg', + 'mpe' => 'video/mpeg', + 'mpg' => 'video/mpeg', + 'mov' => 'video/quicktime', + 'qt' => 'video/quicktime', + 'rv' => 'video/vnd.rn-realvideo', + 'avi' => 'video/x-msvideo', + 'movie' => 'video/x-sgi-movie' + ); + return (!isset($mimes[strtolower($ext)])) ? 'application/octet-stream' : $mimes[strtolower($ext)]; + } + + /** + * Set (or reset) Class Objects (variables) + * + * Usage Example: + * $page->set('X-Priority', '3'); + * + * @access public + * @param string $name Parameter Name + * @param mixed $value Parameter Value + * NOTE: will not work with arrays, there are no arrays to set/reset + * @throws phpmailerException + * @return bool + * @todo Should this not be using __set() magic function? + */ + public function set($name, $value = '') { + try { + if (isset($this->$name) ) { + $this->$name = $value; + } else { + throw new phpmailerException($this->Lang('variable_set') . $name, self::STOP_CRITICAL); + } + } catch (Exception $e) { + $this->SetError($e->getMessage()); + if ($e->getCode() == self::STOP_CRITICAL) { + return false; + } + } + return true; + } + + /** + * Strips newlines to prevent header injection. + * @access public + * @param string $str String + * @return string + */ + public function SecureHeader($str) { + return trim(str_replace(array("\r", "\n"), '', $str)); + } + + /** + * Set the private key file and password to sign the message. + * + * @access public + * @param $cert_filename + * @param string $key_filename Parameter File Name + * @param string $key_pass Password for private key + */ + public function Sign($cert_filename, $key_filename, $key_pass) { + $this->sign_cert_file = $cert_filename; + $this->sign_key_file = $key_filename; + $this->sign_key_pass = $key_pass; + } + + /** + * Set the private key file and password to sign the message. + * + * @access public + * @param string $txt + * @return string + */ + public function DKIM_QP($txt) { + $line = ''; + for ($i = 0; $i < strlen($txt); $i++) { + $ord = ord($txt[$i]); + if ( ((0x21 <= $ord) && ($ord <= 0x3A)) || $ord == 0x3C || ((0x3E <= $ord) && ($ord <= 0x7E)) ) { + $line .= $txt[$i]; + } else { + $line .= "=".sprintf("%02X", $ord); + } + } + return $line; + } + + /** + * Generate DKIM signature + * + * @access public + * @param string $s Header + * @return string + */ + public function DKIM_Sign($s) { + $privKeyStr = file_get_contents($this->DKIM_private); + if ($this->DKIM_passphrase != '') { + $privKey = openssl_pkey_get_private($privKeyStr, $this->DKIM_passphrase); + } else { + $privKey = $privKeyStr; + } + if (openssl_sign($s, $signature, $privKey)) { + return base64_encode($signature); + } + return ''; + } + + /** + * Generate DKIM Canonicalization Header + * + * @access public + * @param string $s Header + * @return string + */ + public function DKIM_HeaderC($s) { + $s = preg_replace("/\r\n\s+/", " ", $s); + $lines = explode("\r\n", $s); + foreach ($lines as $key => $line) { + list($heading, $value) = explode(":", $line, 2); + $heading = strtolower($heading); + $value = preg_replace("/\s+/", " ", $value) ; // Compress useless spaces + $lines[$key] = $heading.":".trim($value) ; // Don't forget to remove WSP around the value + } + $s = implode("\r\n", $lines); + return $s; + } + + /** + * Generate DKIM Canonicalization Body + * + * @access public + * @param string $body Message Body + * @return string + */ + public function DKIM_BodyC($body) { + if ($body == '') return "\r\n"; + // stabilize line endings + $body = str_replace("\r\n", "\n", $body); + $body = str_replace("\n", "\r\n", $body); + // END stabilize line endings + while (substr($body, strlen($body) - 4, 4) == "\r\n\r\n") { + $body = substr($body, 0, strlen($body) - 2); + } + return $body; + } + + /** + * Create the DKIM header, body, as new header + * + * @access public + * @param string $headers_line Header lines + * @param string $subject Subject + * @param string $body Body + * @return string + */ + public function DKIM_Add($headers_line, $subject, $body) { + $DKIMsignatureType = 'rsa-sha1'; // Signature & hash algorithms + $DKIMcanonicalization = 'relaxed/simple'; // Canonicalization of header/body + $DKIMquery = 'dns/txt'; // Query method + $DKIMtime = time() ; // Signature Timestamp = seconds since 00:00:00 - Jan 1, 1970 (UTC time zone) + $subject_header = "Subject: $subject"; + $headers = explode($this->LE, $headers_line); + $from_header = ""; + $to_header = ""; + foreach($headers as $header) { + if (strpos($header, 'From:') === 0) { + $from_header = $header; + } elseif (strpos($header, 'To:') === 0) { + $to_header = $header; + } + } + $from = str_replace('|', '=7C', $this->DKIM_QP($from_header)); + $to = str_replace('|', '=7C', $this->DKIM_QP($to_header)); + $subject = str_replace('|', '=7C', $this->DKIM_QP($subject_header)) ; // Copied header fields (dkim-quoted-printable + $body = $this->DKIM_BodyC($body); + $DKIMlen = strlen($body) ; // Length of body + $DKIMb64 = base64_encode(pack("H*", sha1($body))) ; // Base64 of packed binary SHA-1 hash of body + $ident = ($this->DKIM_identity == '')? '' : " i=" . $this->DKIM_identity . ";"; + $dkimhdrs = "DKIM-Signature: v=1; a=" . $DKIMsignatureType . "; q=" . $DKIMquery . "; l=" . $DKIMlen . "; s=" . $this->DKIM_selector . ";\r\n". + "\tt=" . $DKIMtime . "; c=" . $DKIMcanonicalization . ";\r\n". + "\th=From:To:Subject;\r\n". + "\td=" . $this->DKIM_domain . ";" . $ident . "\r\n". + "\tz=$from\r\n". + "\t|$to\r\n". + "\t|$subject;\r\n". + "\tbh=" . $DKIMb64 . ";\r\n". + "\tb="; + $toSign = $this->DKIM_HeaderC($from_header . "\r\n" . $to_header . "\r\n" . $subject_header . "\r\n" . $dkimhdrs); + $signed = $this->DKIM_Sign($toSign); + return "X-PHPMAILER-DKIM: code.google.com/a/apache-extras.org/p/phpmailer/\r\n".$dkimhdrs.$signed."\r\n"; + } + + /** + * Perform callback + * @param boolean $isSent + * @param string $to + * @param string $cc + * @param string $bcc + * @param string $subject + * @param string $body + * @param string $from + */ + protected function doCallback($isSent, $to, $cc, $bcc, $subject, $body, $from=null) { + if (!empty($this->action_function) && is_callable($this->action_function)) { + $params = array($isSent, $to, $cc, $bcc, $subject, $body, $from); + call_user_func_array($this->action_function, $params); + } + } +} + +/** + * Exception handler for PHPMailer + * @package PHPMailer + */ +class phpmailerException extends Exception { + /** + * Prettify error message output + * @return string + */ + public function errorMessage() { + $errorMsg = '' . $this->getMessage() . "
\n"; + return $errorMsg; + } +} +?> diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/class.pop3.php b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/class.pop3.php new file mode 100644 index 0000000..506b599 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/class.pop3.php @@ -0,0 +1,418 @@ + + * @author Andy Prevost + * @author Jim Jagielski + */ + +class POP3 { + /** + * Default POP3 port + * @var int + */ + public $POP3_PORT = 110; + + /** + * Default Timeout + * @var int + */ + public $POP3_TIMEOUT = 30; + + /** + * POP3 Carriage Return + Line Feed + * @var string + */ + public $CRLF = "\r\n"; + + /** + * Displaying Debug warnings? (0 = now, 1+ = yes) + * @var int + */ + public $do_debug = 2; + + /** + * POP3 Mail Server + * @var string + */ + public $host; + + /** + * POP3 Port + * @var int + */ + public $port; + + /** + * POP3 Timeout Value + * @var int + */ + public $tval; + + /** + * POP3 Username + * @var string + */ + public $username; + + /** + * POP3 Password + * @var string + */ + public $password; + + /** + * Sets the POP3 PHPMailer Version number + * @var string + */ + public $Version = '5.2.4'; + + ///////////////////////////////////////////////// + // PROPERTIES, PRIVATE AND PROTECTED + ///////////////////////////////////////////////// + + /** + * @var resource Resource handle for the POP connection socket + */ + private $pop_conn; + /** + * @var boolean Are we connected? + */ + private $connected; + /** + * @var array Error container + */ + private $error; // Error log array + + /** + * Constructor, sets the initial values + * @access public + * @return POP3 + */ + public function __construct() { + $this->pop_conn = 0; + $this->connected = false; + $this->error = null; + } + + /** + * Combination of public events - connect, login, disconnect + * @access public + * @param string $host + * @param bool|int $port + * @param bool|int $tval + * @param string $username + * @param string $password + * @param int $debug_level + * @return bool + */ + public function Authorise ($host, $port = false, $tval = false, $username, $password, $debug_level = 0) { + $this->host = $host; + + // If no port value is passed, retrieve it + if ($port == false) { + $this->port = $this->POP3_PORT; + } else { + $this->port = $port; + } + + // If no port value is passed, retrieve it + if ($tval == false) { + $this->tval = $this->POP3_TIMEOUT; + } else { + $this->tval = $tval; + } + + $this->do_debug = $debug_level; + $this->username = $username; + $this->password = $password; + + // Refresh the error log + $this->error = null; + + // Connect + $result = $this->Connect($this->host, $this->port, $this->tval); + + if ($result) { + $login_result = $this->Login($this->username, $this->password); + + if ($login_result) { + $this->Disconnect(); + + return true; + } + + } + + // We need to disconnect regardless if the login succeeded + $this->Disconnect(); + + return false; + } + + /** + * Connect to the POP3 server + * @access public + * @param string $host + * @param bool|int $port + * @param integer $tval + * @return boolean + */ + public function Connect ($host, $port = false, $tval = 30) { + // Are we already connected? + if ($this->connected) { + return true; + } + + /* + On Windows this will raise a PHP Warning error if the hostname doesn't exist. + Rather than supress it with @fsockopen, let's capture it cleanly instead + */ + + set_error_handler(array(&$this, 'catchWarning')); + + // Connect to the POP3 server + $this->pop_conn = fsockopen($host, // POP3 Host + $port, // Port # + $errno, // Error Number + $errstr, // Error Message + $tval); // Timeout (seconds) + + // Restore the error handler + restore_error_handler(); + + // Does the Error Log now contain anything? + if ($this->error && $this->do_debug >= 1) { + $this->displayErrors(); + } + + // Did we connect? + if ($this->pop_conn == false) { + // It would appear not... + $this->error = array( + 'error' => "Failed to connect to server $host on port $port", + 'errno' => $errno, + 'errstr' => $errstr + ); + + if ($this->do_debug >= 1) { + $this->displayErrors(); + } + + return false; + } + + // Increase the stream time-out + + // Check for PHP 4.3.0 or later + if (version_compare(phpversion(), '5.0.0', 'ge')) { + stream_set_timeout($this->pop_conn, $tval, 0); + } else { + // Does not work on Windows + if (substr(PHP_OS, 0, 3) !== 'WIN') { + socket_set_timeout($this->pop_conn, $tval, 0); + } + } + + // Get the POP3 server response + $pop3_response = $this->getResponse(); + + // Check for the +OK + if ($this->checkResponse($pop3_response)) { + // The connection is established and the POP3 server is talking + $this->connected = true; + return true; + } + return false; + } + + /** + * Login to the POP3 server (does not support APOP yet) + * @access public + * @param string $username + * @param string $password + * @return boolean + */ + public function Login ($username = '', $password = '') { + if ($this->connected == false) { + $this->error = 'Not connected to POP3 server'; + + if ($this->do_debug >= 1) { + $this->displayErrors(); + } + } + + if (empty($username)) { + $username = $this->username; + } + + if (empty($password)) { + $password = $this->password; + } + + $pop_username = "USER $username" . $this->CRLF; + $pop_password = "PASS $password" . $this->CRLF; + + // Send the Username + $this->sendString($pop_username); + $pop3_response = $this->getResponse(); + + if ($this->checkResponse($pop3_response)) { + // Send the Password + $this->sendString($pop_password); + $pop3_response = $this->getResponse(); + + if ($this->checkResponse($pop3_response)) { + return true; + } + } + return false; + } + + /** + * Disconnect from the POP3 server + * @access public + */ + public function Disconnect () { + $this->sendString('QUIT'); + + fclose($this->pop_conn); + } + + ///////////////////////////////////////////////// + // Private Methods + ///////////////////////////////////////////////// + + /** + * Get the socket response back. + * $size is the maximum number of bytes to retrieve + * @access private + * @param integer $size + * @return string + */ + private function getResponse ($size = 128) { + $pop3_response = fgets($this->pop_conn, $size); + + return $pop3_response; + } + + /** + * Send a string down the open socket connection to the POP3 server + * @access private + * @param string $string + * @return integer + */ + private function sendString ($string) { + $bytes_sent = fwrite($this->pop_conn, $string, strlen($string)); + + return $bytes_sent; + } + + /** + * Checks the POP3 server response for +OK or -ERR + * @access private + * @param string $string + * @return boolean + */ + private function checkResponse ($string) { + if (substr($string, 0, 3) !== '+OK') { + $this->error = array( + 'error' => "Server reported an error: $string", + 'errno' => 0, + 'errstr' => '' + ); + + if ($this->do_debug >= 1) { + $this->displayErrors(); + } + + return false; + } else { + return true; + } + + } + + /** + * If debug is enabled, display the error message array + * @access private + */ + private function displayErrors () { + echo '
';
+
+    foreach ($this->error as $single_error) {
+      print_r($single_error);
+    }
+
+    echo '
'; + } + + /** + * Takes over from PHP for the socket warning handler + * @access private + * @param integer $errno + * @param string $errstr + * @param string $errfile + * @param integer $errline + */ + private function catchWarning ($errno, $errstr, $errfile, $errline) { + $this->error[] = array( + 'error' => "Connecting to the POP3 server raised a PHP warning: ", + 'errno' => $errno, + 'errstr' => $errstr + ); + } + + // End of class +} +?> diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/class.smtp.php b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/class.smtp.php new file mode 100644 index 0000000..72361bb --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/class.smtp.php @@ -0,0 +1,1003 @@ +Debugoutput == "error_log") { + error_log($str); + } else { + echo $str; + } + } + + /** + * Initialize the class so that the data is in a known state. + * @access public + * @return SMTP + */ + public function __construct() { + $this->smtp_conn = 0; + $this->error = null; + $this->helo_rply = null; + + $this->do_debug = 0; + } + + ///////////////////////////////////////////////// + // CONNECTION FUNCTIONS + ///////////////////////////////////////////////// + + /** + * Connect to the server specified on the port specified. + * If the port is not specified use the default SMTP_PORT. + * If tval is specified then a connection will try and be + * established with the server for that number of seconds. + * If tval is not specified the default is 30 seconds to + * try on the connection. + * + * SMTP CODE SUCCESS: 220 + * SMTP CODE FAILURE: 421 + * @access public + * @param string $host + * @param int $port + * @param int $tval + * @return bool + */ + public function Connect($host, $port = 0, $tval = 30) { + // set the error val to null so there is no confusion + $this->error = null; + + // make sure we are __not__ connected + if($this->connected()) { + // already connected, generate error + $this->error = array("error" => "Already connected to a server"); + return false; + } + + if(empty($port)) { + $port = $this->SMTP_PORT; + } + + // connect to the smtp server + $this->smtp_conn = @fsockopen($host, // the host of the server + $port, // the port to use + $errno, // error number if any + $errstr, // error message if any + $tval); // give up after ? secs + // verify we connected properly + if(empty($this->smtp_conn)) { + $this->error = array("error" => "Failed to connect to server", + "errno" => $errno, + "errstr" => $errstr); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": $errstr ($errno)" . $this->CRLF . '
'); + } + return false; + } + + // SMTP server can take longer to respond, give longer timeout for first read + // Windows does not have support for this timeout function + if(substr(PHP_OS, 0, 3) != "WIN") { + $max = ini_get('max_execution_time'); + if ($max != 0 && $tval > $max) { // don't bother if unlimited + @set_time_limit($tval); + } + stream_set_timeout($this->smtp_conn, $tval, 0); + } + + // get any announcement + $announce = $this->get_lines(); + + if($this->do_debug >= 2) { + $this->edebug("SMTP -> FROM SERVER:" . $announce . $this->CRLF . '
'); + } + + return true; + } + + /** + * Initiate a TLS communication with the server. + * + * SMTP CODE 220 Ready to start TLS + * SMTP CODE 501 Syntax error (no parameters allowed) + * SMTP CODE 454 TLS not available due to temporary reason + * @access public + * @return bool success + */ + public function StartTLS() { + $this->error = null; # to avoid confusion + + if(!$this->connected()) { + $this->error = array("error" => "Called StartTLS() without being connected"); + return false; + } + + fputs($this->smtp_conn,"STARTTLS" . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + $this->edebug("SMTP -> FROM SERVER:" . $rply . $this->CRLF . '
'); + } + + if($code != 220) { + $this->error = + array("error" => "STARTTLS not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'); + } + return false; + } + + // Begin encrypted connection + if(!stream_socket_enable_crypto($this->smtp_conn, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { + return false; + } + + return true; + } + + /** + * Performs SMTP authentication. Must be run after running the + * Hello() method. Returns true if successfully authenticated. + * @access public + * @param string $username + * @param string $password + * @param string $authtype + * @param string $realm + * @param string $workstation + * @return bool + */ + public function Authenticate($username, $password, $authtype='LOGIN', $realm='', $workstation='') { + if (empty($authtype)) { + $authtype = 'LOGIN'; + } + + switch ($authtype) { + case 'PLAIN': + // Start authentication + fputs($this->smtp_conn,"AUTH PLAIN" . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($code != 334) { + $this->error = + array("error" => "AUTH not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'); + } + return false; + } + // Send encoded username and password + fputs($this->smtp_conn, base64_encode("\0".$username."\0".$password) . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($code != 235) { + $this->error = + array("error" => "Authentication not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'); + } + return false; + } + break; + case 'LOGIN': + // Start authentication + fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($code != 334) { + $this->error = + array("error" => "AUTH not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'); + } + return false; + } + + // Send encoded username + fputs($this->smtp_conn, base64_encode($username) . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($code != 334) { + $this->error = + array("error" => "Username not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'); + } + return false; + } + + // Send encoded password + fputs($this->smtp_conn, base64_encode($password) . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($code != 235) { + $this->error = + array("error" => "Password not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'); + } + return false; + } + break; + case 'NTLM': + /* + * ntlm_sasl_client.php + ** Bundled with Permission + ** + ** How to telnet in windows: http://technet.microsoft.com/en-us/library/aa995718%28EXCHG.65%29.aspx + ** PROTOCOL Documentation http://curl.haxx.se/rfc/ntlm.html#ntlmSmtpAuthentication + */ + require_once('ntlm_sasl_client.php'); + $temp = new stdClass(); + $ntlm_client = new ntlm_sasl_client_class; + if(! $ntlm_client->Initialize($temp)){//let's test if every function its available + $this->error = array("error" => $temp->error); + if($this->do_debug >= 1) { + $this->edebug("You need to enable some modules in your php.ini file: " . $this->error["error"] . $this->CRLF); + } + return false; + } + $msg1 = $ntlm_client->TypeMsg1($realm, $workstation);//msg1 + + fputs($this->smtp_conn,"AUTH NTLM " . base64_encode($msg1) . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + + if($code != 334) { + $this->error = + array("error" => "AUTH not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF); + } + return false; + } + + $challange = substr($rply,3);//though 0 based, there is a white space after the 3 digit number....//msg2 + $challange = base64_decode($challange); + $ntlm_res = $ntlm_client->NTLMResponse(substr($challange,24,8),$password); + $msg3 = $ntlm_client->TypeMsg3($ntlm_res,$username,$realm,$workstation);//msg3 + // Send encoded username + fputs($this->smtp_conn, base64_encode($msg3) . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($code != 235) { + $this->error = + array("error" => "Could not authenticate", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF); + } + return false; + } + break; + } + return true; + } + + /** + * Returns true if connected to a server otherwise false + * @access public + * @return bool + */ + public function Connected() { + if(!empty($this->smtp_conn)) { + $sock_status = socket_get_status($this->smtp_conn); + if($sock_status["eof"]) { + // the socket is valid but we are not connected + if($this->do_debug >= 1) { + $this->edebug("SMTP -> NOTICE:" . $this->CRLF . "EOF caught while checking if connected"); + } + $this->Close(); + return false; + } + return true; // everything looks good + } + return false; + } + + /** + * Closes the socket and cleans up the state of the class. + * It is not considered good to use this function without + * first trying to use QUIT. + * @access public + * @return void + */ + public function Close() { + $this->error = null; // so there is no confusion + $this->helo_rply = null; + if(!empty($this->smtp_conn)) { + // close the connection and cleanup + fclose($this->smtp_conn); + $this->smtp_conn = 0; + } + } + + ///////////////////////////////////////////////// + // SMTP COMMANDS + ///////////////////////////////////////////////// + + /** + * Issues a data command and sends the msg_data to the server + * finializing the mail transaction. $msg_data is the message + * that is to be send with the headers. Each header needs to be + * on a single line followed by a with the message headers + * and the message body being seperated by and additional . + * + * Implements rfc 821: DATA + * + * SMTP CODE INTERMEDIATE: 354 + * [data] + * . + * SMTP CODE SUCCESS: 250 + * SMTP CODE FAILURE: 552,554,451,452 + * SMTP CODE FAILURE: 451,554 + * SMTP CODE ERROR : 500,501,503,421 + * @access public + * @param string $msg_data + * @return bool + */ + public function Data($msg_data) { + $this->error = null; // so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Data() without being connected"); + return false; + } + + fputs($this->smtp_conn,"DATA" . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + $this->edebug("SMTP -> FROM SERVER:" . $rply . $this->CRLF . '
'); + } + + if($code != 354) { + $this->error = + array("error" => "DATA command not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'); + } + return false; + } + + /* the server is ready to accept data! + * according to rfc 821 we should not send more than 1000 + * including the CRLF + * characters on a single line so we will break the data up + * into lines by \r and/or \n then if needed we will break + * each of those into smaller lines to fit within the limit. + * in addition we will be looking for lines that start with + * a period '.' and append and additional period '.' to that + * line. NOTE: this does not count towards limit. + */ + + // normalize the line breaks so we know the explode works + $msg_data = str_replace("\r\n","\n",$msg_data); + $msg_data = str_replace("\r","\n",$msg_data); + $lines = explode("\n",$msg_data); + + /* we need to find a good way to determine is headers are + * in the msg_data or if it is a straight msg body + * currently I am assuming rfc 822 definitions of msg headers + * and if the first field of the first line (':' sperated) + * does not contain a space then it _should_ be a header + * and we can process all lines before a blank "" line as + * headers. + */ + + $field = substr($lines[0],0,strpos($lines[0],":")); + $in_headers = false; + if(!empty($field) && !strstr($field," ")) { + $in_headers = true; + } + + $max_line_length = 998; // used below; set here for ease in change + + while(list(,$line) = @each($lines)) { + $lines_out = null; + if($line == "" && $in_headers) { + $in_headers = false; + } + // ok we need to break this line up into several smaller lines + while(strlen($line) > $max_line_length) { + $pos = strrpos(substr($line,0,$max_line_length)," "); + + // Patch to fix DOS attack + if(!$pos) { + $pos = $max_line_length - 1; + $lines_out[] = substr($line,0,$pos); + $line = substr($line,$pos); + } else { + $lines_out[] = substr($line,0,$pos); + $line = substr($line,$pos + 1); + } + + /* if processing headers add a LWSP-char to the front of new line + * rfc 822 on long msg headers + */ + if($in_headers) { + $line = "\t" . $line; + } + } + $lines_out[] = $line; + + // send the lines to the server + while(list(,$line_out) = @each($lines_out)) { + if(strlen($line_out) > 0) + { + if(substr($line_out, 0, 1) == ".") { + $line_out = "." . $line_out; + } + } + fputs($this->smtp_conn,$line_out . $this->CRLF); + } + } + + // message data has been sent + fputs($this->smtp_conn, $this->CRLF . "." . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + $this->edebug("SMTP -> FROM SERVER:" . $rply . $this->CRLF . '
'); + } + + if($code != 250) { + $this->error = + array("error" => "DATA not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'); + } + return false; + } + return true; + } + + /** + * Sends the HELO command to the smtp server. + * This makes sure that we and the server are in + * the same known state. + * + * Implements from rfc 821: HELO + * + * SMTP CODE SUCCESS: 250 + * SMTP CODE ERROR : 500, 501, 504, 421 + * @access public + * @param string $host + * @return bool + */ + public function Hello($host = '') { + $this->error = null; // so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Hello() without being connected"); + return false; + } + + // if hostname for HELO was not specified send default + if(empty($host)) { + // determine appropriate default to send to server + $host = "localhost"; + } + + // Send extended hello first (RFC 2821) + if(!$this->SendHello("EHLO", $host)) { + if(!$this->SendHello("HELO", $host)) { + return false; + } + } + + return true; + } + + /** + * Sends a HELO/EHLO command. + * @access private + * @param string $hello + * @param string $host + * @return bool + */ + private function SendHello($hello, $host) { + fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + $this->edebug("SMTP -> FROM SERVER: " . $rply . $this->CRLF . '
'); + } + + if($code != 250) { + $this->error = + array("error" => $hello . " not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'); + } + return false; + } + + $this->helo_rply = $rply; + + return true; + } + + /** + * Starts a mail transaction from the email address specified in + * $from. Returns true if successful or false otherwise. If True + * the mail transaction is started and then one or more Recipient + * commands may be called followed by a Data command. + * + * Implements rfc 821: MAIL FROM: + * + * SMTP CODE SUCCESS: 250 + * SMTP CODE SUCCESS: 552,451,452 + * SMTP CODE SUCCESS: 500,501,421 + * @access public + * @param string $from + * @return bool + */ + public function Mail($from) { + $this->error = null; // so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Mail() without being connected"); + return false; + } + + $useVerp = ($this->do_verp ? " XVERP" : ""); + fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $useVerp . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + $this->edebug("SMTP -> FROM SERVER:" . $rply . $this->CRLF . '
'); + } + + if($code != 250) { + $this->error = + array("error" => "MAIL not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'); + } + return false; + } + return true; + } + + /** + * Sends the quit command to the server and then closes the socket + * if there is no error or the $close_on_error argument is true. + * + * Implements from rfc 821: QUIT + * + * SMTP CODE SUCCESS: 221 + * SMTP CODE ERROR : 500 + * @access public + * @param bool $close_on_error + * @return bool + */ + public function Quit($close_on_error = true) { + $this->error = null; // so there is no confusion + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Quit() without being connected"); + return false; + } + + // send the quit command to the server + fputs($this->smtp_conn,"quit" . $this->CRLF); + + // get any good-bye messages + $byemsg = $this->get_lines(); + + if($this->do_debug >= 2) { + $this->edebug("SMTP -> FROM SERVER:" . $byemsg . $this->CRLF . '
'); + } + + $rval = true; + $e = null; + + $code = substr($byemsg,0,3); + if($code != 221) { + // use e as a tmp var cause Close will overwrite $this->error + $e = array("error" => "SMTP server rejected quit command", + "smtp_code" => $code, + "smtp_rply" => substr($byemsg,4)); + $rval = false; + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $e["error"] . ": " . $byemsg . $this->CRLF . '
'); + } + } + + if(empty($e) || $close_on_error) { + $this->Close(); + } + + return $rval; + } + + /** + * Sends the command RCPT to the SMTP server with the TO: argument of $to. + * Returns true if the recipient was accepted false if it was rejected. + * + * Implements from rfc 821: RCPT TO: + * + * SMTP CODE SUCCESS: 250,251 + * SMTP CODE FAILURE: 550,551,552,553,450,451,452 + * SMTP CODE ERROR : 500,501,503,421 + * @access public + * @param string $to + * @return bool + */ + public function Recipient($to) { + $this->error = null; // so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Recipient() without being connected"); + return false; + } + + fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + $this->edebug("SMTP -> FROM SERVER:" . $rply . $this->CRLF . '
'); + } + + if($code != 250 && $code != 251) { + $this->error = + array("error" => "RCPT not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'); + } + return false; + } + return true; + } + + /** + * Sends the RSET command to abort and transaction that is + * currently in progress. Returns true if successful false + * otherwise. + * + * Implements rfc 821: RSET + * + * SMTP CODE SUCCESS: 250 + * SMTP CODE ERROR : 500,501,504,421 + * @access public + * @return bool + */ + public function Reset() { + $this->error = null; // so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Reset() without being connected"); + return false; + } + + fputs($this->smtp_conn,"RSET" . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + $this->edebug("SMTP -> FROM SERVER:" . $rply . $this->CRLF . '
'); + } + + if($code != 250) { + $this->error = + array("error" => "RSET failed", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'); + } + return false; + } + + return true; + } + + /** + * Starts a mail transaction from the email address specified in + * $from. Returns true if successful or false otherwise. If True + * the mail transaction is started and then one or more Recipient + * commands may be called followed by a Data command. This command + * will send the message to the users terminal if they are logged + * in and send them an email. + * + * Implements rfc 821: SAML FROM: + * + * SMTP CODE SUCCESS: 250 + * SMTP CODE SUCCESS: 552,451,452 + * SMTP CODE SUCCESS: 500,501,502,421 + * @access public + * @param string $from + * @return bool + */ + public function SendAndMail($from) { + $this->error = null; // so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called SendAndMail() without being connected"); + return false; + } + + fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + $this->edebug("SMTP -> FROM SERVER:" . $rply . $this->CRLF . '
'); + } + + if($code != 250) { + $this->error = + array("error" => "SAML not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'); + } + return false; + } + return true; + } + + /** + * This is an optional command for SMTP that this class does not + * support. This method is here to make the RFC821 Definition + * complete for this class and __may__ be implimented in the future + * + * Implements from rfc 821: TURN + * + * SMTP CODE SUCCESS: 250 + * SMTP CODE FAILURE: 502 + * SMTP CODE ERROR : 500, 503 + * @access public + * @return bool + */ + public function Turn() { + $this->error = array("error" => "This method, TURN, of the SMTP ". + "is not implemented"); + if($this->do_debug >= 1) { + $this->edebug("SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF . '
'); + } + return false; + } + + /** + * Get the current error + * @access public + * @return array + */ + public function getError() { + return $this->error; + } + + ///////////////////////////////////////////////// + // INTERNAL FUNCTIONS + ///////////////////////////////////////////////// + + /** + * Read in as many lines as possible + * either before eof or socket timeout occurs on the operation. + * With SMTP we can tell if we have more lines to read if the + * 4th character is '-' symbol. If it is a space then we don't + * need to read anything else. + * @access private + * @return string + */ + private function get_lines() { + $data = ""; + $endtime = 0; + /* If for some reason the fp is bad, don't inf loop */ + if (!is_resource($this->smtp_conn)) { + return $data; + } + stream_set_timeout($this->smtp_conn, $this->Timeout); + if ($this->Timelimit > 0) { + $endtime = time() + $this->Timelimit; + } + while(is_resource($this->smtp_conn) && !feof($this->smtp_conn)) { + $str = @fgets($this->smtp_conn,515); + if($this->do_debug >= 4) { + $this->edebug("SMTP -> get_lines(): \$data was \"$data\"" . $this->CRLF . '
'); + $this->edebug("SMTP -> get_lines(): \$str is \"$str\"" . $this->CRLF . '
'); + } + $data .= $str; + if($this->do_debug >= 4) { + $this->edebug("SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF . '
'); + } + // if 4th character is a space, we are done reading, break the loop + if(substr($str,3,1) == " ") { break; } + // Timed-out? Log and break + $info = stream_get_meta_data($this->smtp_conn); + if ($info['timed_out']) { + if($this->do_debug >= 4) { + $this->edebug("SMTP -> get_lines(): timed-out (" . $this->Timeout . " seconds)
"); + } + break; + } + // Now check if reads took too long + if ($endtime) { + if (time() > $endtime) { + if($this->do_debug >= 4) { + $this->edebug("SMTP -> get_lines(): timelimit reached (" . $this->Timelimit . " seconds)
"); + } + break; + } + } + } + return $data; + } + +} +?> diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs.ini b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs.ini new file mode 100644 index 0000000..6906eb0 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs.ini @@ -0,0 +1,92 @@ +;; phpDocumentor parse configuration file +;; +;; This file is designed to cut down on repetitive typing on the command-line or web interface +;; You can copy this file to create a number of configuration files that can be used with the +;; command-line switch -c, as in phpdoc -c default.ini or phpdoc -c myini.ini. The web +;; interface will automatically generate a list of .ini files that can be used. +;; +;; default.ini is used to generate the online manual at http://www.phpdoc.org/docs +;; +;; ALL .ini files must be in the user subdirectory of phpDocumentor with an extension of .ini +;; +;; Copyright 2002, Greg Beaver +;; +;; WARNING: do not change the name of any command-line parameters, phpDocumentor will ignore them + +[Parse Data] +;; title of all the documentation +;; legal values: any string +title = PHPMailer Documentation + +;; parse files that start with a . like .bash_profile +;; legal values: true, false +hidden = false + +;; show elements marked @access private in documentation by setting this to on +;; legal values: on, off +parseprivate = on + +;; parse with javadoc-like description (first sentence is always the short description) +;; legal values: on, off +javadocdesc = off + +;; add any custom @tags separated by commas here +;; legal values: any legal tagname separated by commas. +;customtags = mytag1,mytag2 + +;; This is only used by the XML:DocBook/peardoc2 converter +defaultcategoryname = Documentation + +;; what is the main package? +;; legal values: alphanumeric string plus - and _ +defaultpackagename = PHPMailer + +;; output any parsing information? set to on for cron jobs +;; legal values: on +;quiet = on + +;; parse a PEAR-style repository. Do not turn this on if your project does +;; not have a parent directory named "pear" +;; legal values: on/off +;pear = on + +;; where should the documentation be written? +;; legal values: a legal path +target = ./phpdoc + +;; limit output to the specified packages, even if others are parsed +;; legal values: package names separated by commas +;packageoutput = package1,package2 + +;; comma-separated list of files to parse +;; legal values: paths separated by commas +;filename = /path/to/file1,/path/to/file2,fileincurrentdirectory +filename = *.php + +;; comma-separated list of directories to parse +;; legal values: directory paths separated by commas +;directory = /path1,/path2,.,..,subdirectory +;directory = /home/jeichorn/cvs/pear +;;directory = . + +;; template base directory (the equivalent directory of /phpDocumentor) +;templatebase = /path/to/my/templates + +;; comma-separated list of files, directories or wildcards ? and * (any wildcard) to ignore +;; legal values: any wildcard strings separated by commas +;ignore = /path/to/ignore*,*list.php,myfile.php,subdirectory/ +ignore = templates_c/,*HTML/default/*,spec/,*CVS*,*.txt,docs/,phpdoc/,examples/,test/ + +;; comma-separated list of Converters to use in outputformat:Convertername:templatedirectory format +;; legal values: HTML:frames:default,HTML:frames:l0l33t,HTML:frames:phpdoc.de,HTML:frames:phphtmllib, +;; HTML:frames:earthli, +;; HTML:frames:DOM/default,HTML:frames:DOM/l0l33t,HTML:frames:DOM/phpdoc.de, +;; HTML:frames:DOM/phphtmllib,HTML:frames:DOM/earthli +;; HTML:Smarty:default,HTML:Smarty:PHP,HTML:Smarty:HandS +;; PDF:default:default,CHM:default:default,XML:DocBook/peardoc2:default +;;output=HTML:frames:earthli +output=HTML:Smarty:HandS + +;; turn this option on if you want highlighted source code for every file +;; legal values: on/off +sourcecode = on diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/Callback_function_notes.txt b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/Callback_function_notes.txt new file mode 100644 index 0000000..461ea50 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/Callback_function_notes.txt @@ -0,0 +1,17 @@ +NEW CALLBACK FUNCTION: +====================== + +We have had requests for a method to process the results of sending emails +through PHPMailer. In this new release, we have implemented a callback +function that passes the results of each email sent (to, cc, and/or bcc). +We have provided an example that echos the results back to the screen. The +callback function can be used for any purpose. With minor modifications, the +callback function can be used to create CSV logs, post results to databases, +etc. + +Please review the test.php script for the example. + +It's pretty straight forward. + +Enjoy! +Andy diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/DomainKeys_notes.txt b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/DomainKeys_notes.txt new file mode 100644 index 0000000..2ad10f1 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/DomainKeys_notes.txt @@ -0,0 +1,55 @@ +CREATE DKIM KEYS and DNS Resource Record: +========================================= + +To create DomainKeys Identified Mail keys, visit: +http://dkim.worxware.com/ +... read the information, fill in the form, and download the ZIP file +containing the public key, private key, DNS Resource Record and instructions +to add to your DNS Zone Record, and the PHPMailer code to enable DKIM +digital signing. + +/*** PROTECT YOUR PRIVATE & PUBLIC KEYS ***/ + +You need to protect your DKIM private and public keys from being viewed or +accessed. Add protection to your .htaccess file as in this example: + +# secure htkeyprivate file + + order allow,deny + deny from all + + +# secure htkeypublic file + + order allow,deny + deny from all + + +(the actual .htaccess additions are in the ZIP file sent back to you from +http://dkim.worxware.com/ + +A few notes on using DomainKey Identified Mail (DKIM): + +You do not need to use PHPMailer to DKIM sign emails IF: +- you enable DomainKey support and add the DNS resource record +- you use your outbound mail server + +If you are a third-party emailer that works on behalf of domain owners to +send their emails from your own server: +- you absolutely have to DKIM sign outbound emails +- the domain owner has to add the DNS resource record to match the + private key, public key, selector, identity, and domain that you create +- use caution with the "selector" ... at least one "selector" will already + exist in the DNS Zone Record of the domain at the domain owner's server + you need to ensure that the "selector" you use is unique +Note: since the IP address will not match the domain owner's DNS Zone record +you can be certain that email providers that validate based on DomainKey will +check the domain owner's DNS Zone record for your DNS resource record. Before +sending out emails on behalf of domain owners, ensure they have entered the +DNS resource record you provided them. + +Enjoy! +Andy + +PS. if you need additional information about DKIM, please see: +http://www.dkim.org/info/dkim-faq.html diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/Note_for_SMTP_debugging.txt b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/Note_for_SMTP_debugging.txt new file mode 100644 index 0000000..afb5b58 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/Note_for_SMTP_debugging.txt @@ -0,0 +1,23 @@ +If you are having problems connecting or sending emails through your SMTP server, please note: + +1. The new rewrite of class.smtp.php provides more information about the processing/errors taking place +2. Use the debug functionality of class.smtp.php. To do that, in your own script add the debug level you wish to use. An example of that is: + +$mail->SMTPDebug = 1; +$mail->IsSMTP(); // telling the class to use SMTP +$mail->SMTPAuth = true; // enable SMTP authentication +$mail->Port = 26; // set the SMTP port +$mail->Host = "mail.yourhost.com"; // SMTP server +$mail->Username = "name@yourhost.com"; // SMTP account username +$mail->Password = "your password"; // SMTP account password + +Notes on this: +$mail->SMTPDebug = 0; ... will disable debugging (you can also leave this out completely, 0 is the default +$mail->SMTPDebug = 1; ... will echo errors and messages +$mail->SMTPDebug = 2; ... will echo messages only +... and finally, the options are 0, 1, and 2 ... any number greater than 2 will be interpreted as 2 + +And finally, don't forget to disable debugging before going into production. + +Enjoy! +Andy \ No newline at end of file diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/extending.html b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/extending.html new file mode 100644 index 0000000..310f97a --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/extending.html @@ -0,0 +1,148 @@ + + +Examples using phpmailer + + + + +

Examples using phpmailer

+ +

1. Advanced Example

+

+ +This demonstrates sending out multiple email messages with binary attachments +from a MySQL database with multipart/alternative support.

+ + + + +
+
+require("class.phpmailer.php");
+
+$mail = new phpmailer();
+
+$mail->From     = "list@example.com";
+$mail->FromName = "List manager";
+$mail->Host     = "smtp1.example.com;smtp2.example.com";
+$mail->Mailer   = "smtp";
+
+@MYSQL_CONNECT("localhost","root","password");
+@mysql_select_db("my_company");
+$query  = "SELECT full_name, email, photo FROM employee WHERE id=$id";
+$result = @MYSQL_QUERY($query);
+
+while ($row = mysql_fetch_array ($result))
+{
+    // HTML body
+    $body  = "Hello <font size=\"4\">" . $row["full_name"] . "</font>, <p>";
+    $body .= "<i>Your</i> personal photograph to this message.<p>";
+    $body .= "Sincerely, <br>";
+    $body .= "phpmailer List manager";
+
+    // Plain text body (for mail clients that cannot read HTML)
+    $text_body  = "Hello " . $row["full_name"] . ", \n\n";
+    $text_body .= "Your personal photograph to this message.\n\n";
+    $text_body .= "Sincerely, \n";
+    $text_body .= "phpmailer List manager";
+
+    $mail->Body    = $body;
+    $mail->AltBody = $text_body;
+    $mail->AddAddress($row["email"], $row["full_name"]);
+    $mail->AddStringAttachment($row["photo"], "YourPhoto.jpg");
+
+    if(!$mail->Send())
+        echo "There has been a mail error sending to " . $row["email"] . "<br>";
+
+    // Clear all addresses and attachments for next loop
+    $mail->ClearAddresses();
+    $mail->ClearAttachments();
+}
+
+
+

+ +

2. Extending phpmailer

+

+ +Extending classes with inheritance is one of the most +powerful features of object-oriented +programming. It allows you to make changes to the +original class for your +own personal use without hacking the original +classes. Plus, it is very +easy to do. I've provided an example: + +

+Here's a class that extends the phpmailer class and sets the defaults +for the particular site:
+PHP include file: mail.inc.php +

+ + + + + +
+
+require("class.phpmailer.php");
+
+class my_phpmailer extends phpmailer {
+    // Set default variables for all new objects
+    var $From     = "from@example.com";
+    var $FromName = "Mailer";
+    var $Host     = "smtp1.example.com;smtp2.example.com";
+    var $Mailer   = "smtp";                         // Alternative to IsSMTP()
+    var $WordWrap = 75;
+
+    // Replace the default error_handler
+    function error_handler($msg) {
+        print("My Site Error");
+        print("Description:");
+        printf("%s", $msg);
+        exit;
+    }
+
+    // Create an additional function
+    function do_something($something) {
+        // Place your new code here
+    }
+}
+
+
+ +Now here's a normal PHP page in the site, which will have all the defaults set +above:
+Normal PHP file: mail_test.php +

+ + + + + +
+
+require("mail.inc.php");
+
+// Instantiate your new class
+$mail = new my_phpmailer;
+
+// Now you only need to add the necessary stuff
+$mail->AddAddress("josh@example.com", "Josh Adams");
+$mail->Subject = "Here is the subject";
+$mail->Body    = "This is the message body";
+$mail->AddAttachment("c:/temp/11-10-00.zip", "new_name.zip");  // optional name
+
+if(!$mail->Send())
+{
+   echo "There was an error sending the message";
+   exit;
+}
+
+echo "Message was sent successfully";
+
+
+

+ + + diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/faq.html b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/faq.html new file mode 100644 index 0000000..f71c6c8 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/faq.html @@ -0,0 +1,67 @@ + + +PHPMailer FAQ + + + +
+
+

PHPMailer FAQ

+
    + +
  • Q: I'm using the SMTP mailer and I keep on getting a timeout message + well before the X seconds I set it for. What gives?
    + A: PHP versions 4.0.4pl1 and earlier have a bug in which sockets timeout + early. You can fix this by re-compiling PHP 4.0.4pl1 with this fix: + timeoutfix.diff. Otherwise you can wait for the new PHP release.

  • + +
  • Q: I am concerned that using include files will take up too much + processing time on my computer. How can I make it run faster?
    + A: PHP by itself is very fast. Much faster than ASP or JSP running on + the same type of server. This is because it has very little overhead compared + to its competitors and it pre-compiles all of + its code before it runs each script (in PHP4). However, all of + this compiling and re-compiling can take up a lot of valuable + computer resources. However, there are programs out there that compile + PHP code and store it in memory (or on mmaped files) to reduce the + processing immensely. Two of these: APC + (Alternative PHP Cache) and Afterburner + (Win32 download) + are excellent free tools that do just this. If you have the money + you might also try Zend Cache, it is + even faster than the open source varieties. All of these tools make your + scripts run faster while also reducing the load on your server. I have tried + them myself and they are quite stable too.

  • + +
  • Q: What mailer gives me the best performance?
    + A: On a single machine the sendmail (or Qmail) is fastest overall. + Next fastest is mail() to give you the best performance. Both do not have the overhead of SMTP. + If you have you have your mail server on a another machine then + SMTP is your only option, but you do get the benefit of redundant mail servers.
    + If you are running a mailing list with thousands of names, the fastest mailers in order are: SMTP, sendmail (or Qmail), mail().

  • + +
  • Q: When I try to attach a file with on my server I get a + "Could not find {file} on filesystem error". Why is this?
    + A: If you are using a Unix machine this is probably because the user + running your web server does not have read access to the directory in question. If you are using Windows, + then the problem probably is that you have used single backslashes to denote directories (\). + A single backslash has a special meaning to PHP so these are not + valid. Instead use double backslashes ("\\") or a single forward + slash ("/").

  • + +
+ +
+
+ + + diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes.svg b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes.svg new file mode 100644 index 0000000..5083289 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes.svg @@ -0,0 +1,59 @@ + + + + + + +G + +cluster_global + +global + + +\\PHPMailer + + +PHPMailer + + + + +\\phpmailerException + + +phpmailerException + + + + +\\Exception + +\Exception + + +\\phpmailerException->\\Exception + + + + +\\POP3 + + +POP3 + + + + +\\SMTP + + +SMTP + + + + + diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/PHPMailer.html b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/PHPMailer.html new file mode 100644 index 0000000..056b427 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/PHPMailer.html @@ -0,0 +1,2420 @@ + + + + + +PHPMailer version 5.2.4 » \PHPMailer + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+ +
+

PHP email creation and transport class

+
+

+ + + +
packagePHPMailer
+

+ Methods

+
+

Adds a "To" address.

+
AddAddress(string $address, string $name) : boolean
+
+
+

+

Parameters

+
+

$address

+string +
+
+

$name

+string +
+

Returns

+
+booleantrue on success, false if address already used
+
+
+
+

Adds an attachment from a path on the filesystem.

+
AddAttachment(string $path, string $name, string $encoding, string $type) : bool
+
+
+

Returns false if the file could not be found +or accessed.

+

Parameters

+
+

$path

+string

Path to the attachment.

+
+

$name

+string

Overrides the attachment name.

+
+

$encoding

+string

File encoding (see $Encoding).

+
+
+

$type

+string

File extension (MIME) type.

+
+

Exceptions

+ + + +
\phpmailerException
+

Returns

+
bool
+
+
+
+

Adds a "Bcc" address.

+
AddBCC(string $address, string $name) : boolean
+
+
+

Note: this function works with the SMTP mailer on win32, not with the "mail" mailer.

+

Parameters

+
+

$address

+string +
+
+

$name

+string +
+

Returns

+
+booleantrue on success, false if address already used
+
+
+
+

Adds a "Cc" address.

+
AddCC(string $address, string $name) : boolean
+
+
+

Note: this function works with the SMTP mailer on win32, not with the "mail" mailer.

+

Parameters

+
+

$address

+string +
+
+

$name

+string +
+

Returns

+
+booleantrue on success, false if address already used
+
+
+
+

Adds a custom header.

+
AddCustomHeader(string $name, string $value) : void
+
+
+

$name value can be overloaded to contain +both header name and value (name:value)

+ + + +
accesspublic
+

Parameters

+
+

$name

+string

custom header name

+
+

$value

+string

header value

+
+
+
+

Adds an embedded attachment.

+
AddEmbeddedImage(string $path, string $cid, string $name, string $encoding, string $type) : bool
+
+
+

This can include images, sounds, and +just about any other document. Make sure to set the $type to an +image type. For JPEG images use "image/jpeg" and for GIF images +use "image/gif".

+

Parameters

+
+

$path

+string

Path to the attachment.

+
+

$cid

+string

Content ID of the attachment. Use this to identify the Id for accessing the image in an HTML form.

+
+

$name

+string

Overrides the attachment name.

+
+

$encoding

+string

File encoding (see $Encoding).

+
+
+

$type

+string

File extension (MIME) type.

+
+

Returns

+
bool
+
+
+
+

Adds a "Reply-to" address.

+
AddReplyTo(string $address, string $name) : boolean
+
+
+

+

Parameters

+
+

$address

+string +
+
+

$name

+string +
+

Returns

+
boolean
+
+
+
+

Adds a string or binary attachment (non-filesystem) to the list.

+
AddStringAttachment(string $string, string $filename, string $encoding, string $type) : void
+
+
+

This method can be used to attach ascii or binary data, +such as a BLOB record from a database.

+

Parameters

+
+

$string

+string

String attachment data.

+
+

$filename

+string

Name of the attachment.

+
+

$encoding

+string

File encoding (see $Encoding).

+
+
+

$type

+string

File extension (MIME) type.

+
+
+
+
+

Adds an embedded stringified attachment.

+
AddStringEmbeddedImage(string $string, string $cid, string $name, string $encoding, string $type) : bool
+
+
+

This can include images, sounds, and +just about any other document. Make sure to set the $type to an +image type. For JPEG images use "image/jpeg" and for GIF images +use "image/gif".

+

Parameters

+
+

$string

+string

The attachment.

+
+

$cid

+string

Content ID of the attachment. Use this to identify the Id for accessing the image in an HTML form.

+
+

$name

+string

Overrides the attachment name.

+
+

$encoding

+string

File encoding (see $Encoding).

+
+
+

$type

+string

File extension (MIME) type.

+
+

Returns

+
bool
+
+
+
+

Creates recipient headers.

+
AddrAppend(string $type, array $addr) : string
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$type

+string +
+
+

$addr

+array +
+

Returns

+
string
+
+
+
+

Formats an address correctly.

+
AddrFormat(string $addr) : string
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$addr

+string +
+

Returns

+
string
+
+
+
+

Does this message have an alternative body set?

+
AlternativeExists() : bool
+
+
+

+

Returns

+
bool
+
+
+
+

Returns true if an attachment (non-inline) is present.

+
AttachmentExists() : bool
+
+
+

+

Returns

+
bool
+
+
+
+

Correctly encodes and wraps long multibyte strings for mail headers +without breaking lines within a character.

+
Base64EncodeWrapMB(string $str, string $lf) : string
+
+
+

Adapted from a function by paravoid at http://uk.php.net/manual/en/function.mb-encode-mimeheader.php

+ + + +
accesspublic
+

Parameters

+
+

$str

+string

multi-byte text to wrap encode

+
+
+

$lf

+string

string to use as linefeed/end-of-line

+
+

Returns

+
string
+
+
+
+

Clears all recipients assigned in the TO array.

+
ClearAddresses() : void
+
+

Returns void.

+
+
+

Clears all recipients assigned in the TO, CC and BCC +array.

+
ClearAllRecipients() : void
+
+

Returns void.

+
+
+

Clears all previously set filesystem, string, and binary +attachments.

+
ClearAttachments() : void
+
+

Returns void.

+
+
+

Clears all recipients assigned in the BCC array.

+
ClearBCCs() : void
+
+

Returns void.

+
+
+

Clears all recipients assigned in the CC array.

+
ClearCCs() : void
+
+

Returns void.

+
+
+

Clears all custom headers.

+
ClearCustomHeaders() : void
+
+

Returns void.

+
+
+

Clears all recipients assigned in the ReplyTo array.

+
ClearReplyTos() : void
+
+

Returns void.

+
+
+

Assembles the message body.

+
CreateBody() : string
+
+
+

Returns an empty string on failure.

+ + + +
accesspublic
+

Exceptions

+ + + +
\phpmailerException
+

Returns

+
+stringThe assembled message body
+
+
+
+

Assembles message header.

+
CreateHeader() : string
+
+
+

+ + + +
accesspublic
+

Returns

+
+stringThe assembled header
+
+
+
+

Create the DKIM header, body, as new header

+
DKIM_Add(string $headers_line, string $subject, string $body) : string
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$headers_line

+string

Header lines

+
+

$subject

+string

Subject

+
+

$body

+string

Body

+

Returns

+
string
+
+
+
+

Generate DKIM Canonicalization Body

+
DKIM_BodyC(string $body) : string
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$body

+string

Message Body

+

Returns

+
string
+
+
+
+

Generate DKIM Canonicalization Header

+
DKIM_HeaderC(string $s) : string
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$s

+string

Header

+

Returns

+
string
+
+
+
+

Set the private key file and password to sign the message.

+
DKIM_QP(string $txt) : string
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$txt

+string +
+

Returns

+
string
+
+
+
+

Generate DKIM signature

+
DKIM_Sign(string $s) : string
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$s

+string

Header

+

Returns

+
string
+
+
+
+

Encode a header string to best (shortest) of Q, B, quoted or none.

+
EncodeHeader(string $str, string $position) : string
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$str

+string +
+
+

$position

+string +
+

Returns

+
string
+
+
+
+

Encode string to q encoding.

+
EncodeQ(string $str, string $position) : string
+
+
+

+ + + + + + + + + +
linkhttp://tools.ietf.org/html/rfc2047
accesspublic
+

Parameters

+
+

$str

+string

the text to encode

+
+

$position

+string

Where the text is going to be used, see the RFC for what that means

+

Returns

+
string
+
+
+
+

Encode string to RFC2045 (6.7) quoted-printable format +Uses a PHP5 stream filter to do the encoding about 64x faster than the old version +Also results in same content as you started with after decoding

+
EncodeQP(string $string, integer $line_max, boolean $space_conv) : string
+
+
+

+ + + + + + + + + + + + + +
see\global\EncodeQPphp()
accesspublic
authorMarcus Bointon
+

Parameters

+
+

$string

+string

the text to encode

+
+

$line_max

+integer

Number of chars allowed on a line before wrapping

+
+

$space_conv

+boolean

Dummy param for compatibility with existing EncodeQP function

+

Returns

+
string
+
+
+
+

Encodes string to requested format.

+
EncodeString(string $str, string $encoding) : string
+
+
+

Returns an empty string on failure.

+ + + +
accesspublic
+

Parameters

+
+

$str

+string

The text to encode

+
+

$encoding

+string

The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable'

+
+

Returns

+
string
+
+
+
+

Changes every end of line from CRLF, CR or LF to $this->LE.

+
FixEOL(string $str) : string
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$str

+string

String to FixEOL

+

Returns

+
string
+
+
+
+

Return the current array of attachments

+
GetAttachments() : array
+
+
+

+

Returns

+
array
+
+
+
+

Returns the message MIME.

+
GetMailMIME() : string
+
+
+

+ + + +
accesspublic
+

Returns

+
string
+
+
+
+

Returns the MIME message (headers and body).

+
GetSentMIMEMessage() : string
+
+
+

Only really valid post PreSend().

+ + + +
accesspublic
+

Returns

+
string
+
+
+
+

Return the current array of language strings

+
GetTranslations() : array
+
+
+

+

Returns

+
array
+
+
+
+

Checks if a string contains multibyte characters.

+
HasMultiBytes(string $str) : bool
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$str

+string

multi-byte text to wrap encode

+
+

Returns

+
bool
+
+
+
+

Returns a formatted header line.

+
HeaderLine(string $name, string $value) : string
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$name

+string +
+
+

$value

+string +
+

Returns

+
string
+
+
+
+

Returns true if an inline attachment is present.

+
InlineImageExists() : bool
+
+
+

+ + + +
accesspublic
+

Returns

+
bool
+
+
+
+

Returns true if an error occurred.

+
IsError() : bool
+
+
+

+ + + +
accesspublic
+

Returns

+
bool
+
+
+
+

Sets message type to HTML.

+
IsHTML(bool $ishtml) : void
+
+
+

+

Parameters

+
+

$ishtml

+bool +
+
+
+
+

Sets Mailer to send message using PHP mail() function.

+
IsMail() : void
+
+

+
+
+

Sets Mailer to send message using the qmail MTA.

+
IsQmail() : void
+
+

+
+
+

Sets Mailer to send message using SMTP.

+
IsSMTP() : void
+
+

+
+
+

Sets Mailer to send message using the $Sendmail program.

+
IsSendmail() : void
+
+

+
+
+

Evaluates the message and returns modifications for inline images and backgrounds

+
MsgHTML(string $message, string $basedir) : string
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$message

+string

Text to be HTML modified

+
+

$basedir

+string

baseline directory for path

+

Returns

+
+string$message
+
+
+
+

Actual Email transport function +Send the email via the selected mechanism

+
PostSend() : bool
+
+
+

+

Exceptions

+ + + +
\phpmailerException
+

Returns

+
bool
+
+
+
+

Prep mail by constructing all message entities

+
PreSend() : bool
+
+
+

+

Exceptions

+ + + +
\phpmailerException
+

Returns

+
bool
+
+
+
+

Returns the proper RFC 822 formatted date.

+
RFCDate() : string
+
+
+

+ + + + + + + + + +
accesspublic
static
+

Returns

+
string
+
+
+
+

Strips newlines to prevent header injection.

+
SecureHeader(string $str) : string
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$str

+string

String

+

Returns

+
string
+
+
+
+

Creates message and assigns Mailer.

+
Send() : bool
+
+
+

If the message is +not sent successfully then it returns false. Use the ErrorInfo +variable to view description of the error.

+

Exceptions

+ + + +
\phpmailerException
+

Returns

+
bool
+
+
+
+

Set the From and FromName properties

+
SetFrom(string $address, string $name, int $auto) : boolean
+
+
+

+

Parameters

+
+

$address

+string +
+
+

$name

+string +
+
+

$auto

+int

Also set Reply-To and Sender

+
+

Exceptions

+ + + +
\phpmailerException
+

Returns

+
boolean
+
+
+
+

Sets the language for all class error messages.

+
SetLanguage(string $langcode, string $lang_path) : bool
+
+
+

Returns false if it cannot load the language file. The default language is English.

+ + + +
accesspublic
+

Parameters

+
+

$langcode

+string

ISO 639-1 2-character language code (e.g. Portuguese: "br")

+
+
+

$lang_path

+string

Path to the language file directory

+

Returns

+
bool
+
+
+
+

Set the body wrapping.

+
SetWordWrap() : void
+
+
+

+ + + +
accesspublic
+
+
+
+

Set the private key file and password to sign the message.

+
Sign($cert_filename, string $key_filename, string $key_pass) 
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$cert_filename

+ +
+
+

$key_filename

+string

Parameter File Name

+
+

$key_pass

+string

Password for private key

+
+
+
+

Closes the active SMTP session if one exists.

+
SmtpClose() : void
+
+

+
+
+

Initiates a connection to an SMTP server.

+
SmtpConnect() : bool
+
+
+

Returns false if the operation failed.

+ + + + + + + + + +
uses\global\SMTP
accesspublic
+

Exceptions

+ + + +
\phpmailerException
+

Returns

+
bool
+
+
+
+

Returns a formatted mail line.

+
TextLine(string $value) : string
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$value

+string +
+

Returns

+
string
+
+
+
+

Finds last character boundary prior to maxLength in a utf-8 +quoted (printable) encoded string.

+
UTF8CharBoundary(string $encodedText, int $maxLength) : int
+
+
+

Original written by Colin Brown.

+ + + +
accesspublic
+

Parameters

+
+

$encodedText

+string

utf-8 QP text

+
+
+

$maxLength

+int

find last character boundary prior to this length

+

Returns

+
int
+
+
+
+

Check that a string looks roughly like an email address should +Static so it can be used without instantiation, public so people can overload +Conforms to RFC5322: Uses *correct* regex on which FILTER_VALIDATE_EMAIL is +based; So why not use FILTER_VALIDATE_EMAIL? Because it was broken to +not allow a@b type valid addresses :( +Some Versions of PHP break on the regex though, likely due to PCRE, so use +the older validation method for those users.

+
ValidateAddress(string $address) : boolean
+
+
+

(http://php.net/manual/en/pcre.installation.php)

+ + + + + + + + + + + + + + + + + +
linkhttp://squiloople.com/2009/12/20/email-address-validation/
copyrightregex Copyright Michael Rushton 2009-10 | http://squiloople.com/ | Feel free to use and redistribute this code. But please keep this copyright notice.
static
accesspublic
+

Parameters

+
+

$address

+string

The email address to check

+

Returns

+
boolean
+
+
+
+

Wraps message for use with mailers that do not +automatically perform wrapping and for quoted-printable.

+
WrapText(string $message, integer $length, boolean $qp_mode) : string
+
+
+

Original written by philippe.

+ + + +
accesspublic
+

Parameters

+
+

$message

+string

The message to wrap

+
+

$length

+integer

The line length to wrap to

+
+

$qp_mode

+boolean

Whether to run in Quoted-Printable mode

+
+

Returns

+
string
+
+
+
+

Constructor

+
__construct(boolean $exceptions) 
+
+
+

+

Parameters

+
+

$exceptions

+boolean

Should we throw external exceptions?

+
+
+
+
+

Gets the MIME type of the embedded or inline image

+
_mime_types(string $ext) : string
+
+
+

+ + + + + + + + + +
accesspublic
static
+

Parameters

+
+

$ext

+string

File extension

+

Returns

+
+stringMIME type of ext
+
+
+
+

Set (or reset) Class Objects (variables)

+
set(string $name, mixed $value) : bool
+
+
+

Usage Example: +$page->set('X-Priority', '3');

+ + + + + + + + + +
accesspublic
todoShould this not be using __set() magic function?
+

Parameters

+
+

$name

+string

Parameter Name

+
+

$value

+mixed

Parameter Value NOTE: will not work with arrays, there are no arrays to set/reset

+
+

Exceptions

+ + + +
\phpmailerException
+

Returns

+
bool
+
+
+
+

Adds an address to one of the recipient arrays +Addresses that have been added already return false, but do not throw exceptions

+
AddAnAddress(string $kind, string $address, string $name) : boolean
+
+
+

+ + + +
accessprotected
+

Parameters

+
+

$kind

+string

One of 'to', 'cc', 'bcc', 'ReplyTo'

+
+
+

$address

+string

The email address to send to

+
+

$name

+string +
+

Exceptions

+ + + +
\phpmailerException
+

Returns

+
+booleantrue on success, false if address already used or invalid in some way
+
+
+
+

Attaches all fs, string, and binary attachments to the message.

+
AttachAll(string $disposition_type, string $boundary) : string
+
+
+

Returns an empty string on failure.

+ + + +
accessprotected
+

Parameters

+
+

$disposition_type

+string +
+
+

$boundary

+string +
+

Returns

+
string
+
+
+
+

Encodes attachment in requested format.

+
EncodeFile(string $path, string $encoding) : string
+
+
+

Returns an empty string on failure.

+ + + + + + + + + +
see\global\EncodeFile()
accessprotected
+

Parameters

+
+

$path

+string

The full path to the file

+
+

$encoding

+string

The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable'

+
+

Exceptions

+ + + +
\phpmailerException
+

Returns

+
string
+
+
+
+

Returns the end of a message boundary.

+
EndBoundary(string $boundary) : string
+
+
+

+ + + +
accessprotected
+

Parameters

+
+

$boundary

+string +
+

Returns

+
string
+
+
+
+

Returns the start of a message boundary.

+
GetBoundary(string $boundary, string $charSet, string $contentType, string $encoding) : string
+
+
+

+ + + +
accessprotected
+

Parameters

+
+

$boundary

+string +
+
+

$charSet

+string +
+
+

$contentType

+string +
+
+

$encoding

+string +
+

Returns

+
string
+
+
+
+

Returns a message in the appropriate language.

+
Lang(string $key) : string
+
+
+

+ + + +
accessprotected
+

Parameters

+
+

$key

+string +
+

Returns

+
string
+
+
+
+

Sends mail using the PHP mail() function.

+
MailSend(string $header, string $body) : bool
+
+
+

+ + + +
accessprotected
+

Parameters

+
+

$header

+string

The message headers

+
+

$body

+string

The message body

+

Exceptions

+ + + +
\phpmailerException
+

Returns

+
bool
+
+
+
+

Sends mail using the $Sendmail program.

+
SendmailSend(string $header, string $body) : bool
+
+
+

+ + + +
accessprotected
+

Parameters

+
+

$header

+string

The message headers

+
+

$body

+string

The message body

+

Exceptions

+ + + +
\phpmailerException
+

Returns

+
bool
+
+
+
+

Returns the server hostname or 'localhost.localdomain' if unknown.

+
ServerHostname() : string
+
+
+

+ + + +
accessprotected
+

Returns

+
string
+
+
+
+

Adds the error message to the error container.

+
SetError(string $msg) : void
+
+
+

+ + + +
accessprotected
+

Parameters

+
+

$msg

+string +
+
+
+
+

Sets the message type.

+
SetMessageType() : void
+
+
+

+ + + +
accessprotected
+
+
+
+

Sends mail via SMTP using PhpSMTP +Returns false if there is a bad MAIL FROM, RCPT, or DATA input.

+
SmtpSend(string $header, string $body) : bool
+
+
+

+ + + + + + + + + +
uses\global\SMTP
accessprotected
+

Parameters

+
+

$header

+string

The message headers

+
+

$body

+string

The message body

+

Exceptions

+ + + +
\phpmailerException
+

Returns

+
bool
+
+
+
+

Perform callback

+
doCallback(boolean $isSent, string $to, string $cc, string $bcc, string $subject, string $body, string $from) 
+
+
+

+

Parameters

+
+

$isSent

+boolean +
+
+

$to

+string +
+
+

$cc

+string +
+
+

$bcc

+string +
+
+

$subject

+string +
+
+

$body

+string +
+
+

$from

+string +
+
+
+
+

Outputs debugging info via user-defined method

+
edebug(string $str) 
+
+
+

+

Parameters

+
+

$str

+string +
+
+
+
+

Calls actual mail() function, but in a safe_mode aware fashion +Also, unless sendmail_path points to sendmail (or something that +claims to be sendmail), don't pass params (not a perfect fix, +but it will do)

+
mail_passthru(string $to, string $subject, string $body, string $header, string $params) : bool
+
+
+

+ + + +
accessprivate
+

Parameters

+
+

$to

+string

To

+
+

$subject

+string

Subject

+
+

$body

+string

Message Body

+
+

$header

+string

Additional Header(s)

+
+
+

$params

+string

Params

+

Returns

+
bool
+
+
+

+ Properties

+ 
+

Sets the text-only body of the message.

+
$AltBody : string
+
+

This automatically sets the +email to multipart/alternative. This body can be read by mail +clients that do not have HTML email capability such as mutt. Clients +that can read HTML will view the normal Body.

+
+ 
+

Sets SMTP auth type.

+
$AuthType : string
+
+

Options are LOGIN | PLAIN | NTLM (default LOGIN)

+
+ 
+

Sets the Body of the message.

+
$Body : string
+
+

This can be either an HTML or text body. +If HTML then run IsHTML(true).

+
+ 
+

Sets the CharSet of the message.

+
$CharSet : string
+
+

+
+ 
+

Sets the email address that a reading confirmation will be sent.

+
$ConfirmReadingTo : string
+
+

+
+ 
+

Sets the Content-type of the message.

+
$ContentType : string
+
+

+
+ 
+

Used with DKIM Singing +required if DKIM is enabled, in format of email address 'domain.com'

+
$DKIM_domain : string
+
+

+
+ 
+

Used with DKIM Signing +required if DKIM is enabled, in format of email address 'you@yourdomain.com' typically used as the source of the email

+
$DKIM_identity : string
+
+

+
+ 
+

Used with DKIM Signing +optional parameter if your private key requires a passphras

+
$DKIM_passphrase : string
+
+

+
+ 
+

Used with DKIM Signing +required if DKIM is enabled, path to private key file

+
$DKIM_private : string
+
+

+
+ 
+

Used with DKIM Signing +required parameter if DKIM is enabled

+
$DKIM_selector : string
+
+

domain selector example domainkey

+
+ 
+

Sets the function/method to use for debugging output.

+
$Debugoutput : string
+
+

Right now we only honor "echo" or "error_log"

+
+ 
+

Sets the Encoding of the message.

+
$Encoding : string
+
+

Options for this are + "8bit", "7bit", "binary", "base64", and "quoted-printable".

+
+ 
+

Holds the most recent mailer error message.

+
$ErrorInfo : string
+
+

+
+ 
+

Sets the From email address for the message.

+
$From : string
+
+

+
+ 
+

Sets the From name of the message.

+
$FromName : string
+
+

+
+ 
+

Sets the SMTP HELO of the message (Default is $Hostname).

+
$Helo : string
+
+

+
+ 
+

Sets the SMTP hosts.

+
$Host : string
+
+

All hosts must be separated by a +semicolon. You can also specify a different port +for each host by using this format: [hostname:port] +(e.g. "smtp1.example.com:25;smtp2.example.com"). +Hosts will be tried in order.

+
+ 
+

Sets the hostname to use in Message-Id and Received headers +and as default HELO string.

+
$Hostname : string
+
+

If empty, the value returned +by SERVER_NAME is used or 'localhost.localdomain'.

+
+ 
+

Provides the ability to change the generic line ending +NOTE: The default remains '\n'.

+
$LE : string
+
+

We force CRLF where we KNOW + it must be used via self::CRLF

+
+ 
+

Method to send mail: ("mail", "sendmail", or "smtp").

+
$Mailer : string
+
+

+
+ 
+

Sets the message Date to be used in the Date header.

+
$MessageDate : string
+
+

If empty, the current date will be added.

+
+ 
+

Sets the message ID to be used in the Message-Id header.

+
$MessageID : string
+
+

If empty, a unique id will be generated.

+
+ 
+

Sets SMTP password.

+
$Password : string
+
+

+
+ 
+

Path to PHPMailer plugins.

+
$PluginDir : string
+
+

Useful if the SMTP class +is in a different directory than the PHP include path.

+
+ 
+

Sets the default SMTP server port.

+
$Port : int
+
+

+
+ 
+

Email priority (1 = High, 3 = Normal, 5 = low).

+
$Priority : int
+
+

+
+ 
+

Sets SMTP realm.

+
$Realm 
+
+

@var string

+
+ 
+

Sets the Return-Path of the message.

+
$ReturnPath : string
+
+

If empty, it will +be set to either From or Sender.

+
+ 
+

Sets SMTP authentication.

+
$SMTPAuth : bool
+
+

Utilizes the Username and Password variables.

+
+ 
+

Sets SMTP class debugging on or off.

+
$SMTPDebug : bool
+
+

+
+ 
+

Prevents the SMTP connection from being closed after each mail +sending.

+
$SMTPKeepAlive : bool
+
+

If this is set to true then to close the connection +requires an explicit call to SmtpClose().

+
+ 
+

Sets connection prefix.

+
$SMTPSecure : string
+
+

Options are "", "ssl" or "tls"

+
+ 
+

Sets the Sender email (Return-Path) of the message.

+
$Sender : string
+
+

If not empty, +will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.

+
+ 
+

Sets the path of the sendmail program.

+
$Sendmail : string
+
+

+
+ 
+

Provides the ability to have the TO field process individual +emails, instead of sending to entire TO addresses

+
$SingleTo : bool
+
+

+
+ 
+

If SingleTo is true, this provides the array to hold the email addresses

+
$SingleToArray : bool
+
+

+
+ 
+

Sets the Subject of the message.

+
$Subject : string
+
+

+
+ 
+

Sets the SMTP server timeout in seconds.

+
$Timeout : int
+
+

This function will not work with the win32 version.

+
+ 
+

Determine if mail() uses a fully sendmail compatible MTA that +supports sendmail's "-oi -f" options

+
$UseSendmailOptions : boolean
+
+

+
+ 
+

Sets SMTP username.

+
$Username : string
+
+

+
+ 
+

Sets the PHPMailer Version number

+
$Version : string
+
+

+
+ 
+

Sets word wrapping on the body of the message to a given number of +characters.

+
$WordWrap : int
+
+

+
+ 
+

Sets SMTP workstation.

+
$Workstation 
+
+

@var string

+
+ 
+

What to use in the X-Mailer header

+
$XMailer : string
+
+

+
+ 
+

Callback Action function name.

+
$action_function : string
+
+

The function that handles the result of the send email action. +It is called out by Send() for each email sent.

+ +

Value can be: +- 'function_name' for function names +- 'Class::Method' for static method calls +- array($object, 'Method') for calling methods on $object +See http://php.net/is_callable manual page for more details.

+ +

Parameters: + bool $result result of the send action + string $to email address of the recipient + string $cc cc email addresses + string $bcc bcc email addresses + string $subject the subject + string $body the email body + string $from email address of sender

+
+ 
+

<p>An array of custom headers</p>

+
$CustomHeader : array
+
+
+

+ + + +
accessprotected
+
+
+ 
+

Stores the complete compiled MIME message body.

+
$MIMEBody : string
+
+
+

+ + + +
accessprotected
+
+
+ 
+

Stores the complete compiled MIME message headers.

+
$MIMEHeader : string
+
+
+

+ + + +
accessprotected
+
+
+ 
+

<p>An array of reply-to name and address</p> +

+
$ReplyTo : array
+
+
+

+ + + +
accessprotected
+
+
+ 
+

<p>An array of all kinds of addresses: to, cc, bcc, replyto</p>

+
$all_recipients : array
+
+
+

+ + + +
accessprotected
+
+
+ 
+

<p>An array of attachments</p>

+
$attachment : array
+
+
+

+ + + +
accessprotected
+
+
+ 
+

<p>An array of 'bcc' addresses</p> +

+
$bcc : array
+
+
+

+ + + +
accessprotected
+
+
+ 
+

<p>An array of MIME boundary strings</p>

+
$boundary : array
+
+
+

+ + + +
accessprotected
+
+
+ 
+

<p>An array of 'cc' addresses</p> +

+
$cc : array
+
+
+

+ + + +
accessprotected
+
+
+ 
+

<p>The number of errors encountered</p>

+
$error_count : integer
+
+
+

+ + + +
accessprotected
+
+
+ 
+

<p>Whether to throw exceptions for errors</p>

+
$exceptions : boolean
+
+
+

+ + + +
accessprotected
+
+
+ 
+

<p>An array of available languages</p>

+
$language : array
+
+
+

+ + + +
accessprotected
+
+
+ 
+

Stores the extra header list which CreateHeader() doesn't fold in

+
$mailHeader : string
+
+
+

+ + + +
accessprotected
+
+
+ 
+

<p>The message's MIME type</p> +

+
$message_type : string
+
+
+

+ + + +
accessprotected
+
+
+ 
+

<p>The filename of a DKIM certificate file</p>

+
$sign_cert_file : string
+
+
+

+ + + +
accessprotected
+
+
+ 
+

<p>The filename of a DKIM key file</p>

+
$sign_key_file : string
+
+
+

+ + + +
accessprotected
+
+
+ 
+

<p>The password of a DKIM key</p>

+
$sign_key_pass : string
+
+
+

+ + + +
accessprotected
+
+
+ 
+

<p>An instance of the SMTP sender class</p>

+
$smtp : \SMTP
+
+
+

+ + + +
accessprotected
+
+
+ 
+

<p>An array of 'to' addresses</p> +

+
$to : array
+
+
+

+ + + +
accessprotected
+
+
+

+ Constants

+ 
+

CRLF

+
CRLF 
+
+

+
+ 
+

STOP_CONTINUE

+
STOP_CONTINUE 
+
+

+
+ 
+

STOP_CRITICAL

+
STOP_CRITICAL 
+
+

+
+ 
+

STOP_MESSAGE

+
STOP_MESSAGE 
+
+

+
+
+
+
+
+
+
+ + diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/POP3.html b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/POP3.html new file mode 100644 index 0000000..5fb1a1b --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/POP3.html @@ -0,0 +1,435 @@ + + + + + +PHPMailer version 5.2.4 » \POP3 + + + + + + + + + + +
+ +
+ +
+ +
+

PHP POP-Before-SMTP Authentication Class

+
+

Version 5.2.4

+ + + + + + + + + + + + + + + + + + + + + +
license: LGPL, see PHPMailer License +Specifically for PHPMailer to allow POP before SMTP authentication. +Does not yet work with APOP - if you have an APOP account, contact Jim Jagielski +and we can test changes to this script. +This class is based on the structure of the SMTP class originally authored by Chris Ryan +This class is rfc 1939 compliant and implements all the commands +required for POP3 connection, authentication and disconnection.
packagePHPMailer
authorRichard Davey (orig)
authorAndy Prevost
authorJim Jagielski
+

+ Methods

+
+

Combination of public events - connect, login, disconnect

+
Authorise(string $host, bool | int $port, bool | int $tval, string $username, string $password, int $debug_level) : bool
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$host

+string +
+
+

$port

+boolint +
+
+

$tval

+boolint +
+
+

$username

+string +
+
+

$password

+string +
+
+

$debug_level

+int +
+

Returns

+
bool
+
+
+
+

Connect to the POP3 server

+
Connect(string $host, bool | int $port, integer $tval) : boolean
+
+
+

+ + + +
accesspublic
+

Parameters

+
+

$host

+string +
+
+

$port

+boolint +
+
+

$tval

+integer +
+

Returns

+
boolean
+
+
+
+

Disconnect from the POP3 server

+
Disconnect() 
+
+
+

+ + + +
accesspublic
+
+
+ +
+

Constructor, sets the initial values

+
__construct() : \POP3
+
+
+

+ + + +
accesspublic
+

Returns

+ +
+
+
+

Takes over from PHP for the socket warning handler

+
catchWarning(integer $errno, string $errstr, string $errfile, integer $errline) 
+
+
+

+ + + +
accessprivate
+

Parameters

+
+

$errno

+integer +
+
+

$errstr

+string +
+
+

$errfile

+string +
+
+

$errline

+integer +
+
+
+
+

Checks the POP3 server response for +OK or -ERR

+
checkResponse(string $string) : boolean
+
+
+

+ + + +
accessprivate
+

Parameters

+
+

$string

+string +
+

Returns

+
boolean
+
+
+
+

If debug is enabled, display the error message array

+
displayErrors() 
+
+
+

+ + + +
accessprivate
+
+
+
+

Get the socket response back.

+
getResponse(integer $size) : string
+
+
+

$size is the maximum number of bytes to retrieve

+ + + +
accessprivate
+

Parameters

+
+

$size

+integer +
+

Returns

+
string
+
+
+
+

Send a string down the open socket connection to the POP3 server

+
sendString(string $string) : integer
+
+
+

+ + + +
accessprivate
+

Parameters

+
+

$string

+string +
+

Returns

+
integer
+
+
+

+ Properties

+ 
+

POP3 Carriage Return + Line Feed

+
$CRLF : string
+
+

+
+ 
+

Default POP3 port

+
$POP3_PORT : int
+
+

+
+ 
+

Default Timeout

+
$POP3_TIMEOUT : int
+
+

+
+ 
+

Sets the POP3 PHPMailer Version number

+
$Version : string
+
+

+
+ 
+

Displaying Debug warnings? (0 = now, 1+ = yes)

+
$do_debug : int
+
+

+
+ 
+

POP3 Mail Server

+
$host : string
+
+

+
+ 
+

POP3 Password

+
$password : string
+
+

+
+ 
+

POP3 Port

+
$port : int
+
+

+
+ 
+

POP3 Timeout Value

+
$tval : int
+
+

+
+ 
+

POP3 Username

+
$username : string
+
+

+
+ 
+

<p>Are we connected?</p> +

+
$connected : boolean
+
+

+
+ 
+

<p>Error container</p>

+
$error : array
+
+

+
+ 
+

<p>Resource handle for the POP connection socket</p>

+
$pop_conn : resource
+
+

+
+
+
+
+
+
+
+ + diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/SMTP.html b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/SMTP.html new file mode 100644 index 0000000..99b588b --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/SMTP.html @@ -0,0 +1,613 @@ + + + + + +PHPMailer version 5.2.4 » \SMTP + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+ +
+

PHP RFC821 SMTP client

+
+

Implements all the RFC 821 SMTP commands except TURN which will always return a not implemented error. +SMTP also provides some utility methods for sending mail to an SMTP server.

+ + + + + + + + + +
authorChris Ryan
packagePHPMailer
+

+ Methods

+
+

Performs SMTP authentication.

+
Authenticate(string $username, string $password, string $authtype, string $realm, string $workstation) : bool
+
+
+

Must be run after running the +Hello() method. Returns true if successfully authenticated.

+ + + +
accesspublic
+

Parameters

+
+

$username

+string +
+
+

$password

+string +
+
+

$authtype

+string +
+
+

$realm

+string +
+
+

$workstation

+string +
+

Returns

+
bool
+
+
+
+

Closes the socket and cleans up the state of the class.

+
Close() : void
+
+
+

It is not considered good to use this function without +first trying to use QUIT.

+ + + +
accesspublic
+
+
+
+

Connect to the server specified on the port specified.

+
Connect(string $host, int $port, int $tval) : bool
+
+
+

If the port is not specified use the default SMTP_PORT. +If tval is specified then a connection will try and be +established with the server for that number of seconds. +If tval is not specified the default is 30 seconds to +try on the connection.

+ +

SMTP CODE SUCCESS: 220 +SMTP CODE FAILURE: 421

+ + + +
accesspublic
+

Parameters

+
+

$host

+string +
+
+

$port

+int +
+
+

$tval

+int +
+

Returns

+
bool
+
+
+
+

Returns true if connected to a server otherwise false

+
Connected() : bool
+
+
+

+ + + +
accesspublic
+

Returns

+
bool
+
+
+
+

Issues a data command and sends the msg_data to the server +finializing the mail transaction.

+
Data(string $msg_data) : bool
+
+
+

$msg_data is the message +that is to be send with the headers. Each header needs to be +on a single line followed by a with the message headers +and the message body being seperated by and additional .

+ +

Implements rfc 821: DATA

+ +

SMTP CODE INTERMEDIATE: 354 + [data] + . + SMTP CODE SUCCESS: 250 + SMTP CODE FAILURE: 552,554,451,452 +SMTP CODE FAILURE: 451,554 +SMTP CODE ERROR : 500,501,503,421

+ + + +
accesspublic
+

Parameters

+
+

$msg_data

+string +
+

Returns

+
bool
+
+
+
+

Sends the HELO command to the smtp server.

+
Hello(string $host) : bool
+
+
+

This makes sure that we and the server are in +the same known state.

+ +

Implements from rfc 821: HELO

+ +

SMTP CODE SUCCESS: 250 +SMTP CODE ERROR : 500, 501, 504, 421

+ + + +
accesspublic
+

Parameters

+
+

$host

+string +
+

Returns

+
bool
+
+
+
+

Starts a mail transaction from the email address specified in +$from.

+
Mail(string $from) : bool
+
+
+

Returns true if successful or false otherwise. If True +the mail transaction is started and then one or more Recipient +commands may be called followed by a Data command.

+ +

Implements rfc 821: MAIL FROM:

+ +

SMTP CODE SUCCESS: 250 +SMTP CODE SUCCESS: 552,451,452 +SMTP CODE SUCCESS: 500,501,421

+ + + +
accesspublic
+

Parameters

+
+

$from

+string +
+

Returns

+
bool
+
+
+
+

Sends the quit command to the server and then closes the socket +if there is no error or the $close_on_error argument is true.

+
Quit(bool $close_on_error) : bool
+
+
+

Implements from rfc 821: QUIT

+ +

SMTP CODE SUCCESS: 221 +SMTP CODE ERROR : 500

+ + + +
accesspublic
+

Parameters

+
+

$close_on_error

+bool +
+

Returns

+
bool
+
+
+
+

Sends the command RCPT to the SMTP server with the TO: argument of $to.

+
Recipient(string $to) : bool
+
+
+

Returns true if the recipient was accepted false if it was rejected.

+ +

Implements from rfc 821: RCPT TO:

+ +

SMTP CODE SUCCESS: 250,251 +SMTP CODE FAILURE: 550,551,552,553,450,451,452 +SMTP CODE ERROR : 500,501,503,421

+ + + +
accesspublic
+

Parameters

+
+

$to

+string +
+

Returns

+
bool
+
+
+
+

Sends the RSET command to abort and transaction that is +currently in progress.

+
Reset() : bool
+
+
+

Returns true if successful false +otherwise.

+ +

Implements rfc 821: RSET

+ +

SMTP CODE SUCCESS: 250 +SMTP CODE ERROR : 500,501,504,421

+ + + +
accesspublic
+

Returns

+
bool
+
+
+
+

Starts a mail transaction from the email address specified in +$from.

+
SendAndMail(string $from) : bool
+
+
+

Returns true if successful or false otherwise. If True +the mail transaction is started and then one or more Recipient +commands may be called followed by a Data command. This command +will send the message to the users terminal if they are logged +in and send them an email.

+ +

Implements rfc 821: SAML FROM:

+ +

SMTP CODE SUCCESS: 250 +SMTP CODE SUCCESS: 552,451,452 +SMTP CODE SUCCESS: 500,501,502,421

+ + + +
accesspublic
+

Parameters

+
+

$from

+string +
+

Returns

+
bool
+
+
+
+

Initiate a TLS communication with the server.

+
StartTLS() : bool
+
+
+

SMTP CODE 220 Ready to start TLS +SMTP CODE 501 Syntax error (no parameters allowed) +SMTP CODE 454 TLS not available due to temporary reason

+ + + +
accesspublic
+

Returns

+
+boolsuccess
+
+
+
+

This is an optional command for SMTP that this class does not +support.

+
Turn() : bool
+
+
+

This method is here to make the RFC821 Definition +complete for this class and may be implimented in the future

+ +

Implements from rfc 821: TURN

+ +

SMTP CODE SUCCESS: 250 +SMTP CODE FAILURE: 502 +SMTP CODE ERROR : 500, 503

+ + + +
accesspublic
+

Returns

+
bool
+
+
+
+

Initialize the class so that the data is in a known state.

+
__construct() : \SMTP
+
+
+

+ + + +
accesspublic
+

Returns

+ +
+
+
+

Get the current error

+
getError() : array
+
+
+

+ + + +
accesspublic
+

Returns

+
array
+
+
+
+

Sends a HELO/EHLO command.

+
SendHello(string $hello, string $host) : bool
+
+
+

+ + + +
accessprivate
+

Parameters

+
+

$hello

+string +
+
+

$host

+string +
+

Returns

+
bool
+
+
+
+

Outputs debugging info via user-defined method

+
edebug(string $str) 
+
+
+

+

Parameters

+
+

$str

+string +
+
+
+
+

Read in as many lines as possible +either before eof or socket timeout occurs on the operation.

+
get_lines() : string
+
+
+

With SMTP we can tell if we have more lines to read if the +4th character is '-' symbol. If it is a space then we don't +need to read anything else.

+ + + +
accessprivate
+

Returns

+
string
+
+
+

+ Properties

+ 
+

SMTP reply line ending (don't change)

+
$CRLF 
+
+

@var string

+
+ 
+

Sets the function/method to use for debugging output.

+
$Debugoutput : string
+
+

Right now we only honor "echo" or "error_log"

+
+ 
+

SMTP server port

+
$SMTP_PORT 
+
+

@var int

+
+ 
+

Sets the SMTP timelimit value for reads, in seconds

+
$Timelimit : int
+
+

+
+ 
+

Sets the SMTP timeout value for reads, in seconds

+
$Timeout : int
+
+

+
+ 
+

Sets the SMTP PHPMailer Version number

+
$Version : string
+
+

+
+ 
+

Sets whether debugging is turned on

+
$do_debug 
+
+

@var bool

+
+ 
+

Sets VERP use on/off (default is off)

+
$do_verp 
+
+

@var bool

+
+ 
+

<p>Error message, if any, for the last call</p>

+
$error : string
+
+

+
+ 
+

<p>The reply the server sent to us for HELO</p>

+
$helo_rply : string
+
+

+
+ 
+

<p>The socket to the server</p>

+
$smtp_conn : resource
+
+

+
+
+
+
+
+
+
+ + diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/phpmailerException.html b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/phpmailerException.html new file mode 100644 index 0000000..424c0e8 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/classes/phpmailerException.html @@ -0,0 +1,235 @@ + + + + + +PHPMailer version 5.2.4 » \phpmailerException + + + + + + + + + + +
+ +
+ +
+ +
+

Exception handler for PHPMailer

+
+

+ + + +
packagePHPMailer
+

+ Methods

+
+

__construct() +

+
__construct() 
+
+
+

+ + + +
inherited_fromException::__construct()
+
+
+
+

__toString() +

+
__toString() 
+
+
+

+ + + +
inherited_fromException::__toString()
+
+
+
+

Prettify error message output

+
errorMessage() : string
+
+
+

+

Returns

+
string
+
+
+
+

getCode() +

+
getCode() 
+
+
+

+ + + +
inherited_fromException::getCode()
+
+
+
+

getFile() +

+
getFile() 
+
+
+

+ + + +
inherited_fromException::getFile()
+
+
+
+

getLine() +

+
getLine() 
+
+
+

+ + + +
inherited_fromException::getLine()
+
+
+
+

getMessage() +

+
getMessage() 
+
+
+

+ + + +
inherited_fromException::getMessage()
+
+
+
+

getPrevious() +

+
getPrevious() 
+
+
+

+ + + +
inherited_fromException::getPrevious()
+
+
+
+

getTrace() +

+
getTrace() 
+
+
+

+ + + +
inherited_fromException::getTrace()
+
+
+
+

getTraceAsString() +

+
getTraceAsString() 
+
+
+

+ + + +
inherited_fromException::getTraceAsString()
+
+
+
+
+
+
+
+
+ + diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap-responsive.css b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap-responsive.css new file mode 100644 index 0000000..4b032cd --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap-responsive.css @@ -0,0 +1,567 @@ +/*! + * Bootstrap Responsive v2.0.0 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +.hidden { + display: none; + visibility: hidden; +} +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 18px; + } + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + height: 28px; + /* Make inputs at least the height of their button counterpart */ + + /* Makes inputs behave like true block-level elements */ + + -webkit-box-sizing: border-box; + /* Older Webkit */ + + -moz-box-sizing: border-box; + /* Older FF */ + + -ms-box-sizing: border-box; + /* IE8 */ + + box-sizing: border-box; + /* CSS3 spec*/ + + } + .input-prepend input[class*="span"], .input-append input[class*="span"] { + width: auto; + } + input[type="checkbox"], input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-group > label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-left: 10px; + padding-right: 10px; + } + .modal { + position: absolute; + top: 10px; + left: 10px; + right: 10px; + width: auto; + margin: 0; + } + .modal.fade.in { + top: auto; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} +@media (max-width: 768px) { + .container { + width: auto; + padding: 0 20px; + } + .row-fluid { + width: 100%; + } + .row { + margin-left: 0; + } + .row > [class*="span"], .row-fluid > [class*="span"] { + float: none; + display: block; + width: auto; + margin: 0; + } +} +@media (min-width: 768px) and (max-width: 980px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 20px; + } + .span1 { + width: 42px; + } + .span2 { + width: 104px; + } + .span3 { + width: 166px; + } + .span4 { + width: 228px; + } + .span5 { + width: 290px; + } + .span6 { + width: 352px; + } + .span7 { + width: 414px; + } + .span8 { + width: 476px; + } + .span9 { + width: 538px; + } + .span10 { + width: 600px; + } + .span11 { + width: 662px; + } + .span12, .container { + width: 724px; + } + .offset1 { + margin-left: 82px; + } + .offset2 { + margin-left: 144px; + } + .offset3 { + margin-left: 206px; + } + .offset4 { + margin-left: 268px; + } + .offset5 { + margin-left: 330px; + } + .offset6 { + margin-left: 392px; + } + .offset7 { + margin-left: 454px; + } + .offset8 { + margin-left: 516px; + } + .offset9 { + margin-left: 578px; + } + .offset10 { + margin-left: 640px; + } + .offset11 { + margin-left: 702px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid > [class*="span"] { + float: left; + margin-left: 2.762430939%; + } + .row-fluid > [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span1 { + width: 5.801104972%; + } + .row-fluid .span2 { + width: 14.364640883%; + } + .row-fluid .span3 { + width: 22.928176794%; + } + .row-fluid .span4 { + width: 31.491712705%; + } + .row-fluid .span5 { + width: 40.055248616%; + } + .row-fluid .span6 { + width: 48.618784527%; + } + .row-fluid .span7 { + width: 57.182320438000005%; + } + .row-fluid .span8 { + width: 65.74585634900001%; + } + .row-fluid .span9 { + width: 74.30939226%; + } + .row-fluid .span10 { + width: 82.87292817100001%; + } + .row-fluid .span11 { + width: 91.436464082%; + } + .row-fluid .span12 { + width: 99.999999993%; + } + input.span1, textarea.span1, .uneditable-input.span1 { + width: 32px; + } + input.span2, textarea.span2, .uneditable-input.span2 { + width: 94px; + } + input.span3, textarea.span3, .uneditable-input.span3 { + width: 156px; + } + input.span4, textarea.span4, .uneditable-input.span4 { + width: 218px; + } + input.span5, textarea.span5, .uneditable-input.span5 { + width: 280px; + } + input.span6, textarea.span6, .uneditable-input.span6 { + width: 342px; + } + input.span7, textarea.span7, .uneditable-input.span7 { + width: 404px; + } + input.span8, textarea.span8, .uneditable-input.span8 { + width: 466px; + } + input.span9, textarea.span9, .uneditable-input.span9 { + width: 528px; + } + input.span10, textarea.span10, .uneditable-input.span10 { + width: 590px; + } + input.span11, textarea.span11, .uneditable-input.span11 { + width: 652px; + } + input.span12, textarea.span12, .uneditable-input.span12 { + width: 714px; + } +} +@media (max-width: 980px) { + body { + padding-top: 0; + } + .navbar-fixed-top { + position: static; + margin-bottom: 18px; + } + .navbar-fixed-top .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-left: 10px; + padding-right: 10px; + margin: 0 0 0 -5px; + } + .navbar .nav-collapse { + clear: left; + } + .navbar .nav { + float: none; + margin: 0 0 9px; + } + .navbar .nav > li { + float: none; + } + .navbar .nav > li > a { + margin-bottom: 2px; + } + .navbar .nav > .divider-vertical { + display: none; + } + .navbar .nav > li > a, .navbar .dropdown-menu a { + padding: 6px 15px; + font-weight: bold; + color: #999999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .navbar .dropdown-menu li + li a { + margin-bottom: 2px; + } + .navbar .nav > li > a:hover, .navbar .dropdown-menu a:hover { + background-color: #222222; + } + .navbar .dropdown-menu { + position: static; + top: auto; + left: auto; + float: none; + display: block; + max-width: none; + margin: 0 15px; + padding: 0; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .navbar .dropdown-menu:before, .navbar .dropdown-menu:after { + display: none; + } + .navbar .dropdown-menu .divider { + display: none; + } + .navbar-form, .navbar-search { + float: none; + padding: 9px 15px; + margin: 9px 0; + border-top: 1px solid #222222; + border-bottom: 1px solid #222222; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + } + .navbar .nav.pull-right { + float: none; + margin-left: 0; + } + .navbar-static .navbar-inner { + padding-left: 10px; + padding-right: 10px; + } + .btn-navbar { + display: block; + } + .nav-collapse { + overflow: hidden; + height: 0; + } +} +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + } +} +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 30px; + } + .span1 { + width: 70px; + } + .span2 { + width: 170px; + } + .span3 { + width: 270px; + } + .span4 { + width: 370px; + } + .span5 { + width: 470px; + } + .span6 { + width: 570px; + } + .span7 { + width: 670px; + } + .span8 { + width: 770px; + } + .span9 { + width: 870px; + } + .span10 { + width: 970px; + } + .span11 { + width: 1070px; + } + .span12, .container { + width: 1170px; + } + .offset1 { + margin-left: 130px; + } + .offset2 { + margin-left: 230px; + } + .offset3 { + margin-left: 330px; + } + .offset4 { + margin-left: 430px; + } + .offset5 { + margin-left: 530px; + } + .offset6 { + margin-left: 630px; + } + .offset7 { + margin-left: 730px; + } + .offset8 { + margin-left: 830px; + } + .offset9 { + margin-left: 930px; + } + .offset10 { + margin-left: 1030px; + } + .offset11 { + margin-left: 1130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid > [class*="span"] { + float: left; + margin-left: 2.564102564%; + } + .row-fluid > [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span1 { + width: 5.982905983%; + } + .row-fluid .span2 { + width: 14.529914530000001%; + } + .row-fluid .span3 { + width: 23.076923077%; + } + .row-fluid .span4 { + width: 31.623931624%; + } + .row-fluid .span5 { + width: 40.170940171000005%; + } + .row-fluid .span6 { + width: 48.717948718%; + } + .row-fluid .span7 { + width: 57.264957265%; + } + .row-fluid .span8 { + width: 65.81196581200001%; + } + .row-fluid .span9 { + width: 74.358974359%; + } + .row-fluid .span10 { + width: 82.905982906%; + } + .row-fluid .span11 { + width: 91.45299145300001%; + } + .row-fluid .span12 { + width: 100%; + } + input.span1, textarea.span1, .uneditable-input.span1 { + width: 60px; + } + input.span2, textarea.span2, .uneditable-input.span2 { + width: 160px; + } + input.span3, textarea.span3, .uneditable-input.span3 { + width: 260px; + } + input.span4, textarea.span4, .uneditable-input.span4 { + width: 360px; + } + input.span5, textarea.span5, .uneditable-input.span5 { + width: 460px; + } + input.span6, textarea.span6, .uneditable-input.span6 { + width: 560px; + } + input.span7, textarea.span7, .uneditable-input.span7 { + width: 660px; + } + input.span8, textarea.span8, .uneditable-input.span8 { + width: 760px; + } + input.span9, textarea.span9, .uneditable-input.span9 { + width: 860px; + } + input.span10, textarea.span10, .uneditable-input.span10 { + width: 960px; + } + input.span11, textarea.span11, .uneditable-input.span11 { + width: 1060px; + } + input.span12, textarea.span12, .uneditable-input.span12 { + width: 1160px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } +} diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap-responsive.min.css b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap-responsive.min.css new file mode 100644 index 0000000..bc3f2ab --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap-responsive.min.css @@ -0,0 +1,3 @@ + +.hidden{display:none;visibility:hidden;} +@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:18px;} input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} .input-prepend input[class*="span"],.input-append input[class*="span"]{width:auto;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .modal{position:absolute;top:10px;left:10px;right:10px;width:auto;margin:0;}.modal.fade.in{top:auto;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:768px){.container{width:auto;padding:0 20px;} .row-fluid{width:100%;} .row{margin-left:0;} .row>[class*="span"],.row-fluid>[class*="span"]{float:none;display:block;width:auto;margin:0;}}@media (min-width:768px) and (max-width:980px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:20px;} .span1{width:42px;} .span2{width:104px;} .span3{width:166px;} .span4{width:228px;} .span5{width:290px;} .span6{width:352px;} .span7{width:414px;} .span8{width:476px;} .span9{width:538px;} .span10{width:600px;} .span11{width:662px;} .span12,.container{width:724px;} .offset1{margin-left:82px;} .offset2{margin-left:144px;} .offset3{margin-left:206px;} .offset4{margin-left:268px;} .offset5{margin-left:330px;} .offset6{margin-left:392px;} .offset7{margin-left:454px;} .offset8{margin-left:516px;} .offset9{margin-left:578px;} .offset10{margin-left:640px;} .offset11{margin-left:702px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.762430939%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid .span1{width:5.801104972%;} .row-fluid .span2{width:14.364640883%;} .row-fluid .span3{width:22.928176794%;} .row-fluid .span4{width:31.491712705%;} .row-fluid .span5{width:40.055248616%;} .row-fluid .span6{width:48.618784527%;} .row-fluid .span7{width:57.182320438000005%;} .row-fluid .span8{width:65.74585634900001%;} .row-fluid .span9{width:74.30939226%;} .row-fluid .span10{width:82.87292817100001%;} .row-fluid .span11{width:91.436464082%;} .row-fluid .span12{width:99.999999993%;} input.span1,textarea.span1,.uneditable-input.span1{width:32px;} input.span2,textarea.span2,.uneditable-input.span2{width:94px;} input.span3,textarea.span3,.uneditable-input.span3{width:156px;} input.span4,textarea.span4,.uneditable-input.span4{width:218px;} input.span5,textarea.span5,.uneditable-input.span5{width:280px;} input.span6,textarea.span6,.uneditable-input.span6{width:342px;} input.span7,textarea.span7,.uneditable-input.span7{width:404px;} input.span8,textarea.span8,.uneditable-input.span8{width:466px;} input.span9,textarea.span9,.uneditable-input.span9{width:528px;} input.span10,textarea.span10,.uneditable-input.span10{width:590px;} input.span11,textarea.span11,.uneditable-input.span11{width:652px;} input.span12,textarea.span12,.uneditable-input.span12{width:714px;}}@media (max-width:980px){body{padding-top:0;} .navbar-fixed-top{position:static;margin-bottom:18px;} .navbar-fixed-top .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .navbar .nav-collapse{clear:left;} .navbar .nav{float:none;margin:0 0 9px;} .navbar .nav>li{float:none;} .navbar .nav>li>a{margin-bottom:2px;} .navbar .nav>.divider-vertical{display:none;} .navbar .nav>li>a,.navbar .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .navbar .dropdown-menu li+li a{margin-bottom:2px;} .navbar .nav>li>a:hover,.navbar .dropdown-menu a:hover{background-color:#222222;} .navbar .dropdown-menu{position:static;top:auto;left:auto;float:none;display:block;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .navbar .dropdown-menu:before,.navbar .dropdown-menu:after{display:none;} .navbar .dropdown-menu .divider{display:none;} .navbar-form,.navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222222;border-bottom:1px solid #222222;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);} .navbar .nav.pull-right{float:none;margin-left:0;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;} .btn-navbar{display:block;} .nav-collapse{overflow:hidden;height:0;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:30px;} .span1{width:70px;} .span2{width:170px;} .span3{width:270px;} .span4{width:370px;} .span5{width:470px;} .span6{width:570px;} .span7{width:670px;} .span8{width:770px;} .span9{width:870px;} .span10{width:970px;} .span11{width:1070px;} .span12,.container{width:1170px;} .offset1{margin-left:130px;} .offset2{margin-left:230px;} .offset3{margin-left:330px;} .offset4{margin-left:430px;} .offset5{margin-left:530px;} .offset6{margin-left:630px;} .offset7{margin-left:730px;} .offset8{margin-left:830px;} .offset9{margin-left:930px;} .offset10{margin-left:1030px;} .offset11{margin-left:1130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.564102564%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid .span1{width:5.982905983%;} .row-fluid .span2{width:14.529914530000001%;} .row-fluid .span3{width:23.076923077%;} .row-fluid .span4{width:31.623931624%;} .row-fluid .span5{width:40.170940171000005%;} .row-fluid .span6{width:48.717948718%;} .row-fluid .span7{width:57.264957265%;} .row-fluid .span8{width:65.81196581200001%;} .row-fluid .span9{width:74.358974359%;} .row-fluid .span10{width:82.905982906%;} .row-fluid .span11{width:91.45299145300001%;} .row-fluid .span12{width:100%;} input.span1,textarea.span1,.uneditable-input.span1{width:60px;} input.span2,textarea.span2,.uneditable-input.span2{width:160px;} input.span3,textarea.span3,.uneditable-input.span3{width:260px;} input.span4,textarea.span4,.uneditable-input.span4{width:360px;} input.span5,textarea.span5,.uneditable-input.span5{width:460px;} input.span6,textarea.span6,.uneditable-input.span6{width:560px;} input.span7,textarea.span7,.uneditable-input.span7{width:660px;} input.span8,textarea.span8,.uneditable-input.span8{width:760px;} input.span9,textarea.span9,.uneditable-input.span9{width:860px;} input.span10,textarea.span10,.uneditable-input.span10{width:960px;} input.span11,textarea.span11,.uneditable-input.span11{width:1060px;} input.span12,textarea.span12,.uneditable-input.span12{width:1160px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;}} diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap.css b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap.css new file mode 100644 index 0000000..a90e319 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap.css @@ -0,0 +1,3365 @@ +/*! + * Bootstrap v2.0.0 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} +audio, canvas, video { + display: inline-block; + *display: inline; + *zoom: 1; +} +audio:not([controls]) { + display: none; +} +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +a:hover, a:active { + outline: 0; +} +sub, sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + max-width: 100%; + height: auto; + border: 0; + -ms-interpolation-mode: bicubic; +} +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} +button, input { + *overflow: visible; + line-height: normal; +} +button::-moz-focus-inner, input::-moz-focus-inner { + padding: 0; + border: 0; +} +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} +input[type="search"] { + -webkit-appearance: textfield; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} +textarea { + overflow: auto; + vertical-align: top; +} +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + line-height: 18px; + color: #333333; + background-color: #ffffff; +} +a { + color: #0088cc; + text-decoration: none; +} +a:hover { + color: #005580; + text-decoration: underline; +} +.row { + margin-left: -20px; + *zoom: 1; +} +.row:before, .row:after { + display: table; + content: ""; +} +.row:after { + clear: both; +} +[class*="span"] { + float: left; + margin-left: 20px; +} +.span1 { + width: 60px; +} +.span2 { + width: 140px; +} +.span3 { + width: 220px; +} +.span4 { + width: 300px; +} +.span5 { + width: 380px; +} +.span6 { + width: 460px; +} +.span7 { + width: 540px; +} +.span8 { + width: 620px; +} +.span9 { + width: 700px; +} +.span10 { + width: 780px; +} +.span11 { + width: 860px; +} +.span12, .container { + width: 940px; +} +.offset1 { + margin-left: 100px; +} +.offset2 { + margin-left: 180px; +} +.offset3 { + margin-left: 260px; +} +.offset4 { + margin-left: 340px; +} +.offset5 { + margin-left: 420px; +} +.offset6 { + margin-left: 500px; +} +.offset7 { + margin-left: 580px; +} +.offset8 { + margin-left: 660px; +} +.offset9 { + margin-left: 740px; +} +.offset10 { + margin-left: 820px; +} +.offset11 { + margin-left: 900px; +} +.row-fluid { + width: 100%; + *zoom: 1; +} +.row-fluid:before, .row-fluid:after { + display: table; + content: ""; +} +.row-fluid:after { + clear: both; +} +.row-fluid > [class*="span"] { + float: left; + margin-left: 2.127659574%; +} +.row-fluid > [class*="span"]:first-child { + margin-left: 0; +} +.row-fluid .span1 { + width: 6.382978723%; +} +.row-fluid .span2 { + width: 14.89361702%; +} +.row-fluid .span3 { + width: 23.404255317%; +} +.row-fluid .span4 { + width: 31.914893614%; +} +.row-fluid .span5 { + width: 40.425531911%; +} +.row-fluid .span6 { + width: 48.93617020799999%; +} +.row-fluid .span7 { + width: 57.446808505%; +} +.row-fluid .span8 { + width: 65.95744680199999%; +} +.row-fluid .span9 { + width: 74.468085099%; +} +.row-fluid .span10 { + width: 82.97872339599999%; +} +.row-fluid .span11 { + width: 91.489361693%; +} +.row-fluid .span12 { + width: 99.99999998999999%; +} +.container { + width: 940px; + margin-left: auto; + margin-right: auto; + *zoom: 1; +} +.container:before, .container:after { + display: table; + content: ""; +} +.container:after { + clear: both; +} +.container-fluid { + padding-left: 20px; + padding-right: 20px; + *zoom: 1; +} +.container-fluid:before, .container-fluid:after { + display: table; + content: ""; +} +.container-fluid:after { + clear: both; +} +p { + margin: 0 0 9px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + line-height: 18px; +} +p small { + font-size: 11px; + color: #999999; +} +.lead { + margin-bottom: 18px; + font-size: 20px; + font-weight: 200; + line-height: 27px; +} +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + font-weight: bold; + color: #333333; + text-rendering: optimizelegibility; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + color: #999999; +} +h1 { + font-size: 30px; + line-height: 36px; +} +h1 small { + font-size: 18px; +} +h2 { + font-size: 24px; + line-height: 36px; +} +h2 small { + font-size: 18px; +} +h3 { + line-height: 27px; + font-size: 18px; +} +h3 small { + font-size: 14px; +} +h4, h5, h6 { + line-height: 18px; +} +h4 { + font-size: 14px; +} +h4 small { + font-size: 12px; +} +h5 { + font-size: 12px; +} +h6 { + font-size: 11px; + color: #999999; + text-transform: uppercase; +} +.page-header { + padding-bottom: 17px; + margin: 18px 0; + border-bottom: 1px solid #eeeeee; +} +.page-header h1 { + line-height: 1; +} +ul, ol { + padding: 0; + margin: 0 0 9px 25px; +} +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} +ul { + list-style: disc; +} +ol { + list-style: decimal; +} +li { + line-height: 18px; +} +ul.unstyled { + margin-left: 0; + list-style: none; +} +dl { + margin-bottom: 18px; +} +dt, dd { + line-height: 18px; +} +dt { + font-weight: bold; +} +dd { + margin-left: 9px; +} +hr { + margin: 18px 0; + border: 0; + border-top: 1px solid #e5e5e5; + border-bottom: 1px solid #ffffff; +} +strong { + font-weight: bold; +} +em { + font-style: italic; +} +.muted { + color: #999999; +} +abbr { + font-size: 90%; + text-transform: uppercase; + border-bottom: 1px dotted #ddd; + cursor: help; +} +blockquote { + padding: 0 0 0 15px; + margin: 0 0 18px; + border-left: 5px solid #eeeeee; +} +blockquote p { + margin-bottom: 0; + font-size: 16px; + font-weight: 300; + line-height: 22.5px; +} +blockquote small { + display: block; + line-height: 18px; + color: #999999; +} +blockquote small:before { + content: '\2014 \00A0'; +} +blockquote.pull-right { + float: right; + padding-left: 0; + padding-right: 15px; + border-left: 0; + border-right: 5px solid #eeeeee; +} +blockquote.pull-right p, blockquote.pull-right small { + text-align: right; +} +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} +address { + display: block; + margin-bottom: 18px; + line-height: 18px; + font-style: normal; +} +small { + font-size: 100%; +} +cite { + font-style: normal; +} +code, pre { + padding: 0 3px 2px; + font-family: Menlo, Monaco, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +code { + padding: 3px 4px; + color: #d14; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} +pre { + display: block; + padding: 8.5px; + margin: 0 0 9px; + font-size: 12px; + line-height: 18px; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + white-space: pre; + white-space: pre-wrap; + word-break: break-all; +} +pre.prettyprint { + margin-bottom: 18px; +} +pre code { + padding: 0; + background-color: transparent; +} +form { + margin: 0 0 18px; +} +fieldset { + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 27px; + font-size: 19.5px; + line-height: 36px; + color: #333333; + border: 0; + border-bottom: 1px solid #eee; +} +label, +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 18px; +} +label { + display: block; + margin-bottom: 5px; + color: #333333; +} +input, +textarea, +select, +.uneditable-input { + display: inline-block; + width: 210px; + height: 18px; + padding: 4px; + margin-bottom: 9px; + font-size: 13px; + line-height: 18px; + color: #555555; + border: 1px solid #ccc; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.uneditable-textarea { + width: auto; + height: auto; +} +label input, label textarea, label select { + display: block; +} +input[type="image"], input[type="checkbox"], input[type="radio"] { + width: auto; + height: auto; + padding: 0; + margin: 3px 0; + *margin-top: 0; + /* IE7 */ + + line-height: normal; + border: 0; + cursor: pointer; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +input[type="file"] { + padding: initial; + line-height: initial; + border: initial; + background-color: #ffffff; + background-color: initial; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +input[type="button"], input[type="reset"], input[type="submit"] { + width: auto; + height: auto; +} +select, input[type="file"] { + height: 28px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 28px; +} +select { + width: 220px; + background-color: #ffffff; +} +select[multiple], select[size] { + height: auto; +} +input[type="image"] { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +textarea { + height: auto; +} +input[type="hidden"] { + display: none; +} +.radio, .checkbox { + padding-left: 18px; +} +.radio input[type="radio"], .checkbox input[type="checkbox"] { + float: left; + margin-left: -18px; +} +.controls > .radio:first-child, .controls > .checkbox:first-child { + padding-top: 5px; +} +.radio.inline, .checkbox.inline { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; +} +.radio.inline + .radio.inline, .checkbox.inline + .checkbox.inline { + margin-left: 10px; +} +.controls > .radio.inline:first-child, .controls > .checkbox.inline:first-child { + padding-top: 0; +} +input, textarea { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -ms-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} +input:focus, textarea:focus { + border-color: rgba(82, 168, 236, 0.8); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + outline: 0; + outline: thin dotted \9; + /* IE6-8 */ + +} +input[type="file"]:focus, input[type="checkbox"]:focus, select:focus { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.input-mini { + width: 60px; +} +.input-small { + width: 90px; +} +.input-medium { + width: 150px; +} +.input-large { + width: 210px; +} +.input-xlarge { + width: 270px; +} +.input-xxlarge { + width: 530px; +} +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input { + float: none; + margin-left: 0; +} +input.span1, textarea.span1, .uneditable-input.span1 { + width: 50px; +} +input.span2, textarea.span2, .uneditable-input.span2 { + width: 130px; +} +input.span3, textarea.span3, .uneditable-input.span3 { + width: 210px; +} +input.span4, textarea.span4, .uneditable-input.span4 { + width: 290px; +} +input.span5, textarea.span5, .uneditable-input.span5 { + width: 370px; +} +input.span6, textarea.span6, .uneditable-input.span6 { + width: 450px; +} +input.span7, textarea.span7, .uneditable-input.span7 { + width: 530px; +} +input.span8, textarea.span8, .uneditable-input.span8 { + width: 610px; +} +input.span9, textarea.span9, .uneditable-input.span9 { + width: 690px; +} +input.span10, textarea.span10, .uneditable-input.span10 { + width: 770px; +} +input.span11, textarea.span11, .uneditable-input.span11 { + width: 850px; +} +input.span12, textarea.span12, .uneditable-input.span12 { + width: 930px; +} +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + background-color: #f5f5f5; + border-color: #ddd; + cursor: not-allowed; +} +.control-group.warning > label, .control-group.warning .help-block, .control-group.warning .help-inline { + color: #c09853; +} +.control-group.warning input, .control-group.warning select, .control-group.warning textarea { + color: #c09853; + border-color: #c09853; +} +.control-group.warning input:focus, .control-group.warning select:focus, .control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: 0 0 6px #dbc59e; + -moz-box-shadow: 0 0 6px #dbc59e; + box-shadow: 0 0 6px #dbc59e; +} +.control-group.warning .input-prepend .add-on, .control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} +.control-group.error > label, .control-group.error .help-block, .control-group.error .help-inline { + color: #b94a48; +} +.control-group.error input, .control-group.error select, .control-group.error textarea { + color: #b94a48; + border-color: #b94a48; +} +.control-group.error input:focus, .control-group.error select:focus, .control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: 0 0 6px #d59392; + -moz-box-shadow: 0 0 6px #d59392; + box-shadow: 0 0 6px #d59392; +} +.control-group.error .input-prepend .add-on, .control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} +.control-group.success > label, .control-group.success .help-block, .control-group.success .help-inline { + color: #468847; +} +.control-group.success input, .control-group.success select, .control-group.success textarea { + color: #468847; + border-color: #468847; +} +.control-group.success input:focus, .control-group.success select:focus, .control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: 0 0 6px #7aba7b; + -moz-box-shadow: 0 0 6px #7aba7b; + box-shadow: 0 0 6px #7aba7b; +} +.control-group.success .input-prepend .add-on, .control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} +input:focus:required:invalid, textarea:focus:required:invalid, select:focus:required:invalid { + color: #b94a48; + border-color: #ee5f5b; +} +input:focus:required:invalid:focus, textarea:focus:required:invalid:focus, select:focus:required:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} +.form-actions { + padding: 17px 20px 18px; + margin-top: 18px; + margin-bottom: 18px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; +} +.uneditable-input { + display: block; + background-color: #ffffff; + border-color: #eee; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + cursor: not-allowed; +} +:-moz-placeholder { + color: #999999; +} +::-webkit-input-placeholder { + color: #999999; +} +.help-block { + margin-top: 5px; + margin-bottom: 0; + color: #999999; +} +.help-inline { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + margin-bottom: 9px; + vertical-align: middle; + padding-left: 5px; +} +.input-prepend, .input-append { + margin-bottom: 5px; + *zoom: 1; +} +.input-prepend:before, +.input-append:before, +.input-prepend:after, +.input-append:after { + display: table; + content: ""; +} +.input-prepend:after, .input-append:after { + clear: both; +} +.input-prepend input, +.input-append input, +.input-prepend .uneditable-input, +.input-append .uneditable-input { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.input-prepend input:focus, +.input-append input:focus, +.input-prepend .uneditable-input:focus, +.input-append .uneditable-input:focus { + position: relative; + z-index: 2; +} +.input-prepend .uneditable-input, .input-append .uneditable-input { + border-left-color: #ccc; +} +.input-prepend .add-on, .input-append .add-on { + float: left; + display: block; + width: auto; + min-width: 16px; + height: 18px; + margin-right: -1px; + padding: 4px 5px; + font-weight: normal; + line-height: 18px; + color: #999999; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #f5f5f5; + border: 1px solid #ccc; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-prepend .active, .input-append .active { + background-color: #a9dba9; + border-color: #46a546; +} +.input-prepend .add-on { + *margin-top: 1px; + /* IE6-7 */ + +} +.input-append input, .input-append .uneditable-input { + float: left; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-append .uneditable-input { + border-right-color: #ccc; +} +.input-append .add-on { + margin-right: 0; + margin-left: -1px; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.input-append input:first-child { + *margin-left: -160px; +} +.input-append input:first-child + .add-on { + *margin-left: -21px; +} +.search-query { + padding-left: 14px; + padding-right: 14px; + margin-bottom: 0; + -webkit-border-radius: 14px; + -moz-border-radius: 14px; + border-radius: 14px; +} +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input { + display: inline-block; + margin-bottom: 0; +} +.form-search label, +.form-inline label, +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + display: inline-block; +} +.form-search .input-append .add-on, +.form-inline .input-prepend .add-on, +.form-search .input-append .add-on, +.form-inline .input-prepend .add-on { + vertical-align: middle; +} +.control-group { + margin-bottom: 9px; +} +.form-horizontal legend + .control-group { + margin-top: 18px; + -webkit-margin-top-collapse: separate; +} +.form-horizontal .control-group { + margin-bottom: 18px; + *zoom: 1; +} +.form-horizontal .control-group:before, .form-horizontal .control-group:after { + display: table; + content: ""; +} +.form-horizontal .control-group:after { + clear: both; +} +.form-horizontal .control-group > label { + float: left; + width: 140px; + padding-top: 5px; + text-align: right; +} +.form-horizontal .controls { + margin-left: 160px; +} +.form-horizontal .form-actions { + padding-left: 160px; +} +table { + max-width: 100%; + border-collapse: collapse; + border-spacing: 0; +} +.table { + width: 100%; + margin-bottom: 18px; +} +.table th, .table td { + padding: 8px; + line-height: 18px; + text-align: left; + border-top: 1px solid #ddd; +} +.table th { + font-weight: bold; + vertical-align: bottom; +} +.table td { + vertical-align: top; +} +.table thead:first-child tr th, .table thead:first-child tr td { + border-top: 0; +} +.table tbody + tbody { + border-top: 2px solid #ddd; +} +.table-condensed th, .table-condensed td { + padding: 4px 5px; +} +.table-bordered { + border: 1px solid #ddd; + border-collapse: separate; + *border-collapse: collapsed; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.table-bordered th + th, +.table-bordered td + td, +.table-bordered th + td, +.table-bordered td + th { + border-left: 1px solid #ddd; +} +.table-bordered thead:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} +.table-bordered thead:first-child tr:first-child th:first-child, .table-bordered tbody:first-child tr:first-child td:first-child { + -webkit-border-radius: 4px 0 0 0; + -moz-border-radius: 4px 0 0 0; + border-radius: 4px 0 0 0; +} +.table-bordered thead:first-child tr:first-child th:last-child, .table-bordered tbody:first-child tr:first-child td:last-child { + -webkit-border-radius: 0 4px 0 0; + -moz-border-radius: 0 4px 0 0; + border-radius: 0 4px 0 0; +} +.table-bordered thead:last-child tr:last-child th:first-child, .table-bordered tbody:last-child tr:last-child td:first-child { + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px; +} +.table-bordered thead:last-child tr:last-child th:last-child, .table-bordered tbody:last-child tr:last-child td:last-child { + -webkit-border-radius: 0 0 4px 0; + -moz-border-radius: 0 0 4px 0; + border-radius: 0 0 4px 0; +} +.table-striped tbody tr:nth-child(odd) td, .table-striped tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} +table .span1 { + float: none; + width: 44px; + margin-left: 0; +} +table .span2 { + float: none; + width: 124px; + margin-left: 0; +} +table .span3 { + float: none; + width: 204px; + margin-left: 0; +} +table .span4 { + float: none; + width: 284px; + margin-left: 0; +} +table .span5 { + float: none; + width: 364px; + margin-left: 0; +} +table .span6 { + float: none; + width: 444px; + margin-left: 0; +} +table .span7 { + float: none; + width: 524px; + margin-left: 0; +} +table .span8 { + float: none; + width: 604px; + margin-left: 0; +} +table .span9 { + float: none; + width: 684px; + margin-left: 0; +} +table .span10 { + float: none; + width: 764px; + margin-left: 0; +} +table .span11 { + float: none; + width: 844px; + margin-left: 0; +} +table .span12 { + float: none; + width: 924px; + margin-left: 0; +} +[class^="icon-"] { + display: inline-block; + width: 14px; + height: 14px; + vertical-align: text-top; + background-image: url(../img/glyphicons-halflings.png); + background-position: 14px 14px; + background-repeat: no-repeat; + *margin-right: .3em; +} +[class^="icon-"]:last-child { + *margin-left: 0; +} +.icon-white { + background-image: url(../img/glyphicons-halflings-white.png); +} +.icon-glass { + background-position: 0 0; +} +.icon-music { + background-position: -24px 0; +} +.icon-search { + background-position: -48px 0; +} +.icon-envelope { + background-position: -72px 0; +} +.icon-heart { + background-position: -96px 0; +} +.icon-star { + background-position: -120px 0; +} +.icon-star-empty { + background-position: -144px 0; +} +.icon-user { + background-position: -168px 0; +} +.icon-film { + background-position: -192px 0; +} +.icon-th-large { + background-position: -216px 0; +} +.icon-th { + background-position: -240px 0; +} +.icon-th-list { + background-position: -264px 0; +} +.icon-ok { + background-position: -288px 0; +} +.icon-remove { + background-position: -312px 0; +} +.icon-zoom-in { + background-position: -336px 0; +} +.icon-zoom-out { + background-position: -360px 0; +} +.icon-off { + background-position: -384px 0; +} +.icon-signal { + background-position: -408px 0; +} +.icon-cog { + background-position: -432px 0; +} +.icon-trash { + background-position: -456px 0; +} +.icon-home { + background-position: 0 -24px; +} +.icon-file { + background-position: -24px -24px; +} +.icon-time { + background-position: -48px -24px; +} +.icon-road { + background-position: -72px -24px; +} +.icon-download-alt { + background-position: -96px -24px; +} +.icon-download { + background-position: -120px -24px; +} +.icon-upload { + background-position: -144px -24px; +} +.icon-inbox { + background-position: -168px -24px; +} +.icon-play-circle { + background-position: -192px -24px; +} +.icon-repeat { + background-position: -216px -24px; +} +.icon-refresh { + background-position: -240px -24px; +} +.icon-list-alt { + background-position: -264px -24px; +} +.icon-lock { + background-position: -287px -24px; +} +.icon-flag { + background-position: -312px -24px; +} +.icon-headphones { + background-position: -336px -24px; +} +.icon-volume-off { + background-position: -360px -24px; +} +.icon-volume-down { + background-position: -384px -24px; +} +.icon-volume-up { + background-position: -408px -24px; +} +.icon-qrcode { + background-position: -432px -24px; +} +.icon-barcode { + background-position: -456px -24px; +} +.icon-tag { + background-position: 0 -48px; +} +.icon-tags { + background-position: -25px -48px; +} +.icon-book { + background-position: -48px -48px; +} +.icon-bookmark { + background-position: -72px -48px; +} +.icon-print { + background-position: -96px -48px; +} +.icon-camera { + background-position: -120px -48px; +} +.icon-font { + background-position: -144px -48px; +} +.icon-bold { + background-position: -167px -48px; +} +.icon-italic { + background-position: -192px -48px; +} +.icon-text-height { + background-position: -216px -48px; +} +.icon-text-width { + background-position: -240px -48px; +} +.icon-align-left { + background-position: -264px -48px; +} +.icon-align-center { + background-position: -288px -48px; +} +.icon-align-right { + background-position: -312px -48px; +} +.icon-align-justify { + background-position: -336px -48px; +} +.icon-list { + background-position: -360px -48px; +} +.icon-indent-left { + background-position: -384px -48px; +} +.icon-indent-right { + background-position: -408px -48px; +} +.icon-facetime-video { + background-position: -432px -48px; +} +.icon-picture { + background-position: -456px -48px; +} +.icon-pencil { + background-position: 0 -72px; +} +.icon-map-marker { + background-position: -24px -72px; +} +.icon-adjust { + background-position: -48px -72px; +} +.icon-tint { + background-position: -72px -72px; +} +.icon-edit { + background-position: -96px -72px; +} +.icon-share { + background-position: -120px -72px; +} +.icon-check { + background-position: -144px -72px; +} +.icon-move { + background-position: -168px -72px; +} +.icon-step-backward { + background-position: -192px -72px; +} +.icon-fast-backward { + background-position: -216px -72px; +} +.icon-backward { + background-position: -240px -72px; +} +.icon-play { + background-position: -264px -72px; +} +.icon-pause { + background-position: -288px -72px; +} +.icon-stop { + background-position: -312px -72px; +} +.icon-forward { + background-position: -336px -72px; +} +.icon-fast-forward { + background-position: -360px -72px; +} +.icon-step-forward { + background-position: -384px -72px; +} +.icon-eject { + background-position: -408px -72px; +} +.icon-chevron-left { + background-position: -432px -72px; +} +.icon-chevron-right { + background-position: -456px -72px; +} +.icon-plus-sign { + background-position: 0 -96px; +} +.icon-minus-sign { + background-position: -24px -96px; +} +.icon-remove-sign { + background-position: -48px -96px; +} +.icon-ok-sign { + background-position: -72px -96px; +} +.icon-question-sign { + background-position: -96px -96px; +} +.icon-info-sign { + background-position: -120px -96px; +} +.icon-screenshot { + background-position: -144px -96px; +} +.icon-remove-circle { + background-position: -168px -96px; +} +.icon-ok-circle { + background-position: -192px -96px; +} +.icon-ban-circle { + background-position: -216px -96px; +} +.icon-arrow-left { + background-position: -240px -96px; +} +.icon-arrow-right { + background-position: -264px -96px; +} +.icon-arrow-up { + background-position: -289px -96px; +} +.icon-arrow-down { + background-position: -312px -96px; +} +.icon-share-alt { + background-position: -336px -96px; +} +.icon-resize-full { + background-position: -360px -96px; +} +.icon-resize-small { + background-position: -384px -96px; +} +.icon-plus { + background-position: -408px -96px; +} +.icon-minus { + background-position: -433px -96px; +} +.icon-asterisk { + background-position: -456px -96px; +} +.icon-exclamation-sign { + background-position: 0 -120px; +} +.icon-gift { + background-position: -24px -120px; +} +.icon-leaf { + background-position: -48px -120px; +} +.icon-fire { + background-position: -72px -120px; +} +.icon-eye-open { + background-position: -96px -120px; +} +.icon-eye-close { + background-position: -120px -120px; +} +.icon-warning-sign { + background-position: -144px -120px; +} +.icon-plane { + background-position: -168px -120px; +} +.icon-calendar { + background-position: -192px -120px; +} +.icon-random { + background-position: -216px -120px; +} +.icon-comment { + background-position: -240px -120px; +} +.icon-magnet { + background-position: -264px -120px; +} +.icon-chevron-up { + background-position: -288px -120px; +} +.icon-chevron-down { + background-position: -313px -119px; +} +.icon-retweet { + background-position: -336px -120px; +} +.icon-shopping-cart { + background-position: -360px -120px; +} +.icon-folder-close { + background-position: -384px -120px; +} +.icon-folder-open { + background-position: -408px -120px; +} +.icon-resize-vertical { + background-position: -432px -119px; +} +.icon-resize-horizontal { + background-position: -456px -118px; +} +.dropdown { + position: relative; +} +.dropdown-toggle { + *margin-bottom: -3px; +} +.dropdown-toggle:active, .open .dropdown-toggle { + outline: 0; +} +.caret { + display: inline-block; + width: 0; + height: 0; + text-indent: -99999px; + *text-indent: 0; + vertical-align: top; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #000000; + opacity: 0.3; + filter: alpha(opacity=30); + content: "\2193"; +} +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} +.dropdown:hover .caret, .open.dropdown .caret { + opacity: 1; + filter: alpha(opacity=100); +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + float: left; + display: none; + min-width: 160px; + max-width: 220px; + _width: 160px; + padding: 4px 0; + margin: 0; + list-style: none; + background-color: #ffffff; + border-color: #ccc; + border-color: rgba(0, 0, 0, 0.2); + border-style: solid; + border-width: 1px; + -webkit-border-radius: 0 0 5px 5px; + -moz-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + *border-right-width: 2px; + *border-bottom-width: 2px; +} +.dropdown-menu.bottom-up { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +.dropdown-menu .divider { + height: 1px; + margin: 5px 1px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; + *width: 100%; + *margin: -5px 0 5px; +} +.dropdown-menu a { + display: block; + padding: 3px 15px; + clear: both; + font-weight: normal; + line-height: 18px; + color: #555555; + white-space: nowrap; +} +.dropdown-menu li > a:hover, .dropdown-menu .active > a, .dropdown-menu .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #0088cc; +} +.dropdown.open { + *z-index: 1000; +} +.dropdown.open .dropdown-toggle { + color: #ffffff; + background: #ccc; + background: rgba(0, 0, 0, 0.3); +} +.dropdown.open .dropdown-menu { + display: block; +} +.typeahead { + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #eee; + border: 1px solid rgba(0, 0, 0, 0.05); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.fade { + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -ms-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; + opacity: 0; +} +.fade.in { + opacity: 1; +} +.collapse { + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -ms-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; + position: relative; + overflow: hidden; + height: 0; +} +.collapse.in { + height: auto; +} +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 18px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} +.close:hover { + color: #000000; + text-decoration: none; + opacity: 0.4; + filter: alpha(opacity=40); + cursor: pointer; +} +.btn { + display: inline-block; + padding: 4px 10px 4px; + font-size: 13px; + line-height: 18px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + background-color: #fafafa; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6); + background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-repeat: no-repeat; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); + border: 1px solid #ccc; + border-bottom-color: #bbb; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + cursor: pointer; + *margin-left: .3em; +} +.btn:first-child { + *margin-left: 0; +} +.btn:hover { + color: #333333; + text-decoration: none; + background-color: #e6e6e6; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -ms-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} +.btn:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn.active, .btn:active { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + background-color: #e6e6e6; + background-color: #d9d9d9 \9; + color: rgba(0, 0, 0, 0.5); + outline: 0; +} +.btn.disabled, .btn[disabled] { + cursor: default; + background-image: none; + background-color: #e6e6e6; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.btn-large { + padding: 9px 14px; + font-size: 15px; + line-height: normal; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.btn-large .icon { + margin-top: 1px; +} +.btn-small { + padding: 5px 9px; + font-size: 11px; + line-height: 16px; +} +.btn-small .icon { + margin-top: -1px; +} +.btn-primary, +.btn-primary:hover, +.btn-warning, +.btn-warning:hover, +.btn-danger, +.btn-danger:hover, +.btn-success, +.btn-success:hover, +.btn-info, +.btn-info:hover { + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + color: #ffffff; +} +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active { + color: rgba(255, 255, 255, 0.75); +} +.btn-primary { + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -ms-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(top, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-primary:hover, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + background-color: #0044cc; +} +.btn-primary:active, .btn-primary.active { + background-color: #003399 \9; +} +.btn-warning { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -ms-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(top, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-warning:hover, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + background-color: #f89406; +} +.btn-warning:active, .btn-warning.active { + background-color: #c67605 \9; +} +.btn-danger { + background-color: #da4f49; + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(top, #ee5f5b, #bd362f); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0); + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-danger:hover, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + background-color: #bd362f; +} +.btn-danger:active, .btn-danger.active { + background-color: #942a25 \9; +} +.btn-success { + background-color: #5bb75b; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -ms-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(top, #62c462, #51a351); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0); + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-success:hover, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + background-color: #51a351; +} +.btn-success:active, .btn-success.active { + background-color: #408140 \9; +} +.btn-info { + background-color: #49afcd; + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(top, #5bc0de, #2f96b4); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0); + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-info:hover, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + background-color: #2f96b4; +} +.btn-info:active, .btn-info.active { + background-color: #24748c \9; +} +button.btn, input[type="submit"].btn { + *padding-top: 2px; + *padding-bottom: 2px; +} +button.btn::-moz-focus-inner, input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} +button.btn.large, input[type="submit"].btn.large { + *padding-top: 7px; + *padding-bottom: 7px; +} +button.btn.small, input[type="submit"].btn.small { + *padding-top: 3px; + *padding-bottom: 3px; +} +.btn-group { + position: relative; + *zoom: 1; + *margin-left: .3em; +} +.btn-group:before, .btn-group:after { + display: table; + content: ""; +} +.btn-group:after { + clear: both; +} +.btn-group:first-child { + *margin-left: 0; +} +.btn-group + .btn-group { + margin-left: 5px; +} +.btn-toolbar { + margin-top: 9px; + margin-bottom: 9px; +} +.btn-toolbar .btn-group { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} +.btn-group .btn { + position: relative; + float: left; + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-group .btn:first-child { + margin-left: 0; + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} +.btn-group .btn:last-child, .btn-group .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; +} +.btn-group .btn.large:first-child { + margin-left: 0; + -webkit-border-top-left-radius: 6px; + -moz-border-radius-topleft: 6px; + border-top-left-radius: 6px; + -webkit-border-bottom-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + border-bottom-left-radius: 6px; +} +.btn-group .btn.large:last-child, .btn-group .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + -moz-border-radius-topright: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + -moz-border-radius-bottomright: 6px; + border-bottom-right-radius: 6px; +} +.btn-group .btn:hover, +.btn-group .btn:focus, +.btn-group .btn:active, +.btn-group .btn.active { + z-index: 2; +} +.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + *padding-top: 5px; + *padding-bottom: 5px; +} +.btn-group.open { + *z-index: 1000; +} +.btn-group.open .dropdown-menu { + display: block; + margin-top: 1px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} +.btn .caret { + margin-top: 7px; + margin-left: 0; +} +.btn:hover .caret, .open.btn-group .caret { + opacity: 1; + filter: alpha(opacity=100); +} +.btn-primary .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret { + border-top-color: #ffffff; + opacity: 0.75; + filter: alpha(opacity=75); +} +.btn-small .caret { + margin-top: 4px; +} +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 18px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.alert, .alert-heading { + color: #c09853; +} +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 18px; +} +.alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; +} +.alert-success, .alert-success .alert-heading { + color: #468847; +} +.alert-danger, .alert-error { + background-color: #f2dede; + border-color: #eed3d7; +} +.alert-danger, +.alert-error, +.alert-danger .alert-heading, +.alert-error .alert-heading { + color: #b94a48; +} +.alert-info { + background-color: #d9edf7; + border-color: #bce8f1; +} +.alert-info, .alert-info .alert-heading { + color: #3a87ad; +} +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} +.alert-block > p, .alert-block > ul { + margin-bottom: 0; +} +.alert-block p + p { + margin-top: 5px; +} +.nav { + margin-left: 0; + margin-bottom: 18px; + list-style: none; +} +.nav > li > a { + display: block; +} +.nav > li > a:hover { + text-decoration: none; + background-color: #eeeeee; +} +.nav-list { + padding-left: 14px; + padding-right: 14px; + margin-bottom: 0; +} +.nav-list > li > a, .nav-list .nav-header { + display: block; + padding: 3px 15px; + margin-left: -15px; + margin-right: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} +.nav-list .nav-header { + font-size: 11px; + font-weight: bold; + line-height: 18px; + color: #999999; + text-transform: uppercase; +} +.nav-list > li + .nav-header { + margin-top: 9px; +} +.nav-list .active > a, .nav-list .active > a:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} +.nav-list [class^="icon-"] { + margin-right: 2px; +} +.nav-tabs, .nav-pills { + *zoom: 1; +} +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + content: ""; +} +.nav-tabs:after, .nav-pills:after { + clear: both; +} +.nav-tabs > li, .nav-pills > li { + float: left; +} +.nav-tabs > li > a, .nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} +.nav-tabs { + border-bottom: 1px solid #ddd; +} +.nav-tabs > li { + margin-bottom: -1px; +} +.nav-tabs > li > a { + padding-top: 9px; + padding-bottom: 9px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} +.nav-tabs > .active > a, .nav-tabs > .active > a:hover { + color: #555555; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; +} +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.nav-pills .active > a, .nav-pills .active > a:hover { + color: #ffffff; + background-color: #0088cc; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li > a { + margin-right: 0; +} +.nav-tabs.nav-stacked { + border-bottom: 0; +} +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.nav-tabs.nav-stacked > li > a:hover { + border-color: #ddd; + z-index: 2; +} +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} +.nav-tabs .dropdown-menu, .nav-pills .dropdown-menu { + margin-top: 1px; + border-width: 1px; +} +.nav-pills .dropdown-menu { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.nav-tabs .dropdown-toggle .caret, .nav-pills .dropdown-toggle .caret { + border-top-color: #0088cc; + margin-top: 6px; +} +.nav-tabs .dropdown-toggle:hover .caret, .nav-pills .dropdown-toggle:hover .caret { + border-top-color: #005580; +} +.nav-tabs .active .dropdown-toggle .caret, .nav-pills .active .dropdown-toggle .caret { + border-top-color: #333333; +} +.nav > .dropdown.active > a:hover { + color: #000000; + cursor: pointer; +} +.nav-tabs .open .dropdown-toggle, .nav-pills .open .dropdown-toggle, .nav > .open.active > a:hover { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} +.nav .open .caret, .nav .open.active .caret, .nav .open a:hover .caret { + border-top-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} +.tabs-stacked .open > a:hover { + border-color: #999999; +} +.tabbable { + *zoom: 1; +} +.tabbable:before, .tabbable:after { + display: table; + content: ""; +} +.tabbable:after { + clear: both; +} +.tabs-below .nav-tabs, .tabs-right .nav-tabs, .tabs-left .nav-tabs { + border-bottom: 0; +} +.tab-content > .tab-pane, .pill-content > .pill-pane { + display: none; +} +.tab-content > .active, .pill-content > .active { + display: block; +} +.tabs-below .nav-tabs { + border-top: 1px solid #ddd; +} +.tabs-below .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} +.tabs-below .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.tabs-below .nav-tabs > li > a:hover { + border-bottom-color: transparent; + border-top-color: #ddd; +} +.tabs-below .nav-tabs .active > a, .tabs-below .nav-tabs .active > a:hover { + border-color: transparent #ddd #ddd #ddd; +} +.tabs-left .nav-tabs > li, .tabs-right .nav-tabs > li { + float: none; +} +.tabs-left .nav-tabs > li > a, .tabs-right .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} +.tabs-left .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} +.tabs-left .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.tabs-left .nav-tabs > li > a:hover { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} +.tabs-left .nav-tabs .active > a, .tabs-left .nav-tabs .active > a:hover { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} +.tabs-right .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} +.tabs-right .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.tabs-right .nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} +.tabs-right .nav-tabs .active > a, .tabs-right .nav-tabs .active > a:hover { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} +.navbar { + overflow: visible; + margin-bottom: 18px; +} +.navbar-inner { + padding-left: 20px; + padding-right: 20px; + background-color: #2c2c2c; + background-image: -moz-linear-gradient(top, #333333, #222222); + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); +} +.btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-left: 5px; + margin-right: 5px; + background-color: #2c2c2c; + background-image: -moz-linear-gradient(top, #333333, #222222); + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} +.btn-navbar:hover, +.btn-navbar:active, +.btn-navbar.active, +.btn-navbar.disabled, +.btn-navbar[disabled] { + background-color: #222222; +} +.btn-navbar:active, .btn-navbar.active { + background-color: #080808 \9; +} +.btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} +.nav-collapse.collapse { + height: auto; +} +.navbar .brand:hover { + text-decoration: none; +} +.navbar .brand { + float: left; + display: block; + padding: 8px 20px 12px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + line-height: 1; + color: #ffffff; +} +.navbar .navbar-text { + margin-bottom: 0; + line-height: 40px; + color: #999999; +} +.navbar .navbar-text a:hover { + color: #ffffff; + background-color: transparent; +} +.navbar .btn, .navbar .btn-group { + margin-top: 5px; +} +.navbar .btn-group .btn { + margin-top: 0; +} +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} +.navbar-form:before, .navbar-form:after { + display: table; + content: ""; +} +.navbar-form:after { + clear: both; +} +.navbar-form input, .navbar-form select { + display: inline-block; + margin-top: 5px; + margin-bottom: 0; +} +.navbar-form .radio, .navbar-form .checkbox { + margin-top: 5px; +} +.navbar-form input[type="image"], .navbar-form input[type="checkbox"], .navbar-form input[type="radio"] { + margin-top: 3px; +} +.navbar-search { + position: relative; + float: left; + margin-top: 6px; + margin-bottom: 0; +} +.navbar-search .search-query { + padding: 4px 9px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + color: #ffffff; + color: rgba(255, 255, 255, 0.75); + background: #666; + background: rgba(255, 255, 255, 0.3); + border: 1px solid #111; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; +} +.navbar-search .search-query :-moz-placeholder { + color: #eeeeee; +} +.navbar-search .search-query::-webkit-input-placeholder { + color: #eeeeee; +} +.navbar-search .search-query:hover { + color: #ffffff; + background-color: #999999; + background-color: rgba(255, 255, 255, 0.5); +} +.navbar-search .search-query:focus, .navbar-search .search-query.focused { + padding: 5px 10px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + outline: 0; +} +.navbar-fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} +.navbar-fixed-top .navbar-inner { + padding-left: 0; + padding-right: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} +.navbar .nav.pull-right { + float: right; +} +.navbar .nav > li { + display: block; + float: left; +} +.navbar .nav > li > a { + float: none; + padding: 10px 10px 11px; + line-height: 19px; + color: #999999; + text-decoration: none; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.navbar .nav > li > a:hover { + background-color: transparent; + color: #ffffff; + text-decoration: none; +} +.navbar .nav .active > a, .navbar .nav .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #222222; + background-color: rgba(0, 0, 0, 0.5); +} +.navbar .divider-vertical { + height: 40px; + width: 1px; + margin: 0 9px; + overflow: hidden; + background-color: #222222; + border-right: 1px solid #333333; +} +.navbar .nav.pull-right { + margin-left: 10px; + margin-right: 0; +} +.navbar .dropdown-menu { + margin-top: 1px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.navbar .dropdown-menu:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: -7px; + left: 9px; +} +.navbar .dropdown-menu:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + position: absolute; + top: -6px; + left: 10px; +} +.navbar .nav .dropdown-toggle .caret, .navbar .nav .open.dropdown .caret { + border-top-color: #ffffff; +} +.navbar .nav .active .caret { + opacity: 1; + filter: alpha(opacity=100); +} +.navbar .nav .open > .dropdown-toggle, .navbar .nav .active > .dropdown-toggle, .navbar .nav .open.active > .dropdown-toggle { + background-color: transparent; +} +.navbar .nav .active > .dropdown-toggle:hover { + color: #ffffff; +} +.navbar .nav.pull-right .dropdown-menu { + left: auto; + right: 0; +} +.navbar .nav.pull-right .dropdown-menu:before { + left: auto; + right: 12px; +} +.navbar .nav.pull-right .dropdown-menu:after { + left: auto; + right: 13px; +} +.breadcrumb { + padding: 7px 14px; + margin: 0 0 18px; + background-color: #fbfbfb; + background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5)); + background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -o-linear-gradient(top, #ffffff, #f5f5f5); + background-image: linear-gradient(top, #ffffff, #f5f5f5); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); + border: 1px solid #ddd; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} +.breadcrumb li { + display: inline; + text-shadow: 0 1px 0 #ffffff; +} +.breadcrumb .divider { + padding: 0 5px; + color: #999999; +} +.breadcrumb .active a { + color: #333333; +} +.pagination { + height: 36px; + margin: 18px 0; +} +.pagination ul { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + margin-left: 0; + margin-bottom: 0; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} +.pagination li { + display: inline; +} +.pagination a { + float: left; + padding: 0 14px; + line-height: 34px; + text-decoration: none; + border: 1px solid #ddd; + border-left-width: 0; +} +.pagination a:hover, .pagination .active a { + background-color: #f5f5f5; +} +.pagination .active a { + color: #999999; + cursor: default; +} +.pagination .disabled a, .pagination .disabled a:hover { + color: #999999; + background-color: transparent; + cursor: default; +} +.pagination li:first-child a { + border-left-width: 1px; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.pagination li:last-child a { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.pagination-centered { + text-align: center; +} +.pagination-right { + text-align: right; +} +.pager { + margin-left: 0; + margin-bottom: 18px; + list-style: none; + text-align: center; + *zoom: 1; +} +.pager:before, .pager:after { + display: table; + content: ""; +} +.pager:after { + clear: both; +} +.pager li { + display: inline; +} +.pager a { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} +.pager a:hover { + text-decoration: none; + background-color: #f5f5f5; +} +.pager .next a { + float: right; +} +.pager .previous a { + float: left; +} +.modal-open .dropdown-menu { + z-index: 2050; +} +.modal-open .dropdown.open { + *z-index: 2050; +} +.modal-open .popover { + z-index: 2060; +} +.modal-open .tooltip { + z-index: 2070; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop, .modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.modal { + position: fixed; + top: 50%; + left: 50%; + z-index: 1050; + max-height: 500px; + overflow: auto; + width: 560px; + margin: -250px 0 0 -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + /* IE6-7 */ + + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} +.modal.fade { + -webkit-transition: opacity .3s linear, top .3s ease-out; + -moz-transition: opacity .3s linear, top .3s ease-out; + -ms-transition: opacity .3s linear, top .3s ease-out; + -o-transition: opacity .3s linear, top .3s ease-out; + transition: opacity .3s linear, top .3s ease-out; + top: -25%; +} +.modal.fade.in { + top: 50%; +} +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} +.modal-header .close { + margin-top: 2px; +} +.modal-body { + padding: 15px; +} +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; + *zoom: 1; +} +.modal-footer:before, .modal-footer:after { + display: table; + content: ""; +} +.modal-footer:after { + clear: both; +} +.modal-footer .btn { + float: right; + margin-left: 5px; + margin-bottom: 0; +} +.tooltip { + position: absolute; + z-index: 1020; + display: block; + visibility: visible; + padding: 5px; + font-size: 11px; + opacity: 0; + filter: alpha(opacity=0); +} +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.tooltip.top { + margin-top: -2px; +} +.tooltip.right { + margin-left: 2px; +} +.tooltip.bottom { + margin-top: 2px; +} +.tooltip.left { + margin-left: -2px; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-right: 5px solid #000000; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + padding: 5px; +} +.popover.top { + margin-top: -5px; +} +.popover.right { + margin-left: 5px; +} +.popover.bottom { + margin-top: 5px; +} +.popover.left { + margin-left: -5px; +} +.popover.top .arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} +.popover.right .arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-right: 5px solid #000000; +} +.popover.bottom .arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; +} +.popover.left .arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} +.popover .arrow { + position: absolute; + width: 0; + height: 0; +} +.popover-inner { + padding: 3px; + width: 280px; + overflow: hidden; + background: #000000; + background: rgba(0, 0, 0, 0.8); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); +} +.popover-title { + padding: 9px 15px; + line-height: 1; + background-color: #f5f5f5; + border-bottom: 1px solid #eee; + -webkit-border-radius: 3px 3px 0 0; + -moz-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; +} +.popover-content { + padding: 14px; + background-color: #ffffff; + -webkit-border-radius: 0 0 3px 3px; + -moz-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} +.popover-content p, .popover-content ul, .popover-content ol { + margin-bottom: 0; +} +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} +.thumbnails:before, .thumbnails:after { + display: table; + content: ""; +} +.thumbnails:after { + clear: both; +} +.thumbnails > li { + float: left; + margin: 0 0 18px 20px; +} +.thumbnail { + display: block; + padding: 4px; + line-height: 1; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); +} +a.thumbnail:hover { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} +.thumbnail > img { + display: block; + max-width: 100%; + margin-left: auto; + margin-right: auto; +} +.thumbnail .caption { + padding: 9px; +} +.label { + padding: 1px 3px 2px; + font-size: 9.75px; + font-weight: bold; + color: #ffffff; + text-transform: uppercase; + background-color: #999999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.label-important { + background-color: #b94a48; +} +.label-warning { + background-color: #f89406; +} +.label-success { + background-color: #468847; +} +.label-info { + background-color: #3a87ad; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@-moz-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +.progress { + overflow: hidden; + height: 18px; + margin-bottom: 18px; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(top, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.progress .bar { + width: 0%; + height: 18px; + color: #ffffff; + font-size: 12px; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -ms-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(top, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -ms-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress-striped .bar { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-danger .bar { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(top, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); +} +.progress-danger.progress-striped .bar { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-success .bar { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -ms-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(top, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); +} +.progress-success.progress-striped .bar { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-info .bar { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -ms-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(top, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); +} +.progress-info.progress-striped .bar { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.accordion { + margin-bottom: 18px; +} +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.accordion-heading { + border-bottom: 0; +} +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} +.carousel { + position: relative; + margin-bottom: 18px; + line-height: 1; +} +.carousel-inner { + overflow: hidden; + width: 100%; + position: relative; +} +.carousel .item { + display: none; + position: relative; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -ms-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.carousel .item > img { + display: block; + line-height: 1; +} +.carousel .active, .carousel .next, .carousel .prev { + display: block; +} +.carousel .active { + left: 0; +} +.carousel .next, .carousel .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel .next { + left: 100%; +} +.carousel .prev { + left: -100%; +} +.carousel .next.left, .carousel .prev.right { + left: 0; +} +.carousel .active.left { + left: -100%; +} +.carousel .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} +.carousel-control.right { + left: auto; + right: 15px; +} +.carousel-control:hover { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.carousel-caption { + position: absolute; + left: 0; + right: 0; + bottom: 0; + padding: 10px 15px 5px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} +.carousel-caption h4, .carousel-caption p { + color: #ffffff; +} +.hero-unit { + padding: 60px; + margin-bottom: 30px; + background-color: #f5f5f5; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; +} +.hero-unit p { + font-size: 18px; + font-weight: 200; + line-height: 27px; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.hide { + display: none; +} +.show { + display: block; +} +.invisible { + visibility: hidden; +} diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap.min.css b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap.min.css new file mode 100644 index 0000000..b01f92e --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/bootstrap.min.css @@ -0,0 +1,610 @@ +article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;} +audio,canvas,video{display:inline-block;*display:inline;*zoom:1;} +audio:not([controls]){display:none;} +html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;} +a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +a:hover,a:active{outline:0;} +sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;} +sup{top:-0.5em;} +sub{bottom:-0.25em;} +img{max-width:100%;height:auto;border:0;-ms-interpolation-mode:bicubic;} +button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;} +button,input{*overflow:visible;line-height:normal;} +button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;} +button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;} +input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;} +input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;} +textarea{overflow:auto;vertical-align:top;} +body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333333;background-color:#ffffff;} +a{color:#0088cc;text-decoration:none;} +a:hover{color:#005580;text-decoration:underline;} +.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} +.row:after{clear:both;} +[class*="span"]{float:left;margin-left:20px;} +.span1{width:60px;} +.span2{width:140px;} +.span3{width:220px;} +.span4{width:300px;} +.span5{width:380px;} +.span6{width:460px;} +.span7{width:540px;} +.span8{width:620px;} +.span9{width:700px;} +.span10{width:780px;} +.span11{width:860px;} +.span12,.container{width:940px;} +.offset1{margin-left:100px;} +.offset2{margin-left:180px;} +.offset3{margin-left:260px;} +.offset4{margin-left:340px;} +.offset5{margin-left:420px;} +.offset6{margin-left:500px;} +.offset7{margin-left:580px;} +.offset8{margin-left:660px;} +.offset9{margin-left:740px;} +.offset10{margin-left:820px;} +.offset11{margin-left:900px;} +.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} +.row-fluid:after{clear:both;} +.row-fluid>[class*="span"]{float:left;margin-left:2.127659574%;} +.row-fluid>[class*="span"]:first-child{margin-left:0;} +.row-fluid .span1{width:6.382978723%;} +.row-fluid .span2{width:14.89361702%;} +.row-fluid .span3{width:23.404255317%;} +.row-fluid .span4{width:31.914893614%;} +.row-fluid .span5{width:40.425531911%;} +.row-fluid .span6{width:48.93617020799999%;} +.row-fluid .span7{width:57.446808505%;} +.row-fluid .span8{width:65.95744680199999%;} +.row-fluid .span9{width:74.468085099%;} +.row-fluid .span10{width:82.97872339599999%;} +.row-fluid .span11{width:91.489361693%;} +.row-fluid .span12{width:99.99999998999999%;} +.container{width:940px;margin-left:auto;margin-right:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";} +.container:after{clear:both;} +.container-fluid{padding-left:20px;padding-right:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";} +.container-fluid:after{clear:both;} +p{margin:0 0 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;}p small{font-size:11px;color:#999999;} +.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px;} +h1,h2,h3,h4,h5,h6{margin:0;font-weight:bold;color:#333333;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999999;} +h1{font-size:30px;line-height:36px;}h1 small{font-size:18px;} +h2{font-size:24px;line-height:36px;}h2 small{font-size:18px;} +h3{line-height:27px;font-size:18px;}h3 small{font-size:14px;} +h4,h5,h6{line-height:18px;} +h4{font-size:14px;}h4 small{font-size:12px;} +h5{font-size:12px;} +h6{font-size:11px;color:#999999;text-transform:uppercase;} +.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eeeeee;} +.page-header h1{line-height:1;} +ul,ol{padding:0;margin:0 0 9px 25px;} +ul ul,ul ol,ol ol,ol ul{margin-bottom:0;} +ul{list-style:disc;} +ol{list-style:decimal;} +li{line-height:18px;} +ul.unstyled{margin-left:0;list-style:none;} +dl{margin-bottom:18px;} +dt,dd{line-height:18px;} +dt{font-weight:bold;} +dd{margin-left:9px;} +hr{margin:18px 0;border:0;border-top:1px solid #e5e5e5;border-bottom:1px solid #ffffff;} +strong{font-weight:bold;} +em{font-style:italic;} +.muted{color:#999999;} +abbr{font-size:90%;text-transform:uppercase;border-bottom:1px dotted #ddd;cursor:help;} +blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px;} +blockquote small{display:block;line-height:18px;color:#999999;}blockquote small:before{content:'\2014 \00A0';} +blockquote.pull-right{float:right;padding-left:0;padding-right:15px;border-left:0;border-right:5px solid #eeeeee;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;} +q:before,q:after,blockquote:before,blockquote:after{content:"";} +address{display:block;margin-bottom:18px;line-height:18px;font-style:normal;} +small{font-size:100%;} +cite{font-style:normal;} +code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +code{padding:3px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;} +pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:18px;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;white-space:pre;white-space:pre-wrap;word-break:break-all;}pre.prettyprint{margin-bottom:18px;} +pre code{padding:0;background-color:transparent;} +form{margin:0 0 18px;} +fieldset{padding:0;margin:0;border:0;} +legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333333;border:0;border-bottom:1px solid #eee;} +label,input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:18px;} +label{display:block;margin-bottom:5px;color:#333333;} +input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555555;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.uneditable-textarea{width:auto;height:auto;} +label input,label textarea,label select{display:block;} +input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;border:0;cursor:pointer;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +input[type="file"]{padding:initial;line-height:initial;border:initial;background-color:#ffffff;background-color:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto;} +select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px;} +select{width:220px;background-color:#ffffff;} +select[multiple],select[size]{height:auto;} +input[type="image"]{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +textarea{height:auto;} +input[type="hidden"]{display:none;} +.radio,.checkbox{padding-left:18px;} +.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px;} +.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;} +.radio.inline,.checkbox.inline{display:inline-block;margin-bottom:0;vertical-align:middle;} +.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;} +.controls>.radio.inline:first-child,.controls>.checkbox.inline:first-child{padding-top:0;} +input,textarea{-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-ms-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;} +input:focus,textarea:focus{border-color:rgba(82, 168, 236, 0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);outline:0;outline:thin dotted \9;} +input[type="file"]:focus,input[type="checkbox"]:focus,select:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.input-mini{width:60px;} +.input-small{width:90px;} +.input-medium{width:150px;} +.input-large{width:210px;} +.input-xlarge{width:270px;} +.input-xxlarge{width:530px;} +input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{float:none;margin-left:0;} +input.span1,textarea.span1,.uneditable-input.span1{width:50px;} +input.span2,textarea.span2,.uneditable-input.span2{width:130px;} +input.span3,textarea.span3,.uneditable-input.span3{width:210px;} +input.span4,textarea.span4,.uneditable-input.span4{width:290px;} +input.span5,textarea.span5,.uneditable-input.span5{width:370px;} +input.span6,textarea.span6,.uneditable-input.span6{width:450px;} +input.span7,textarea.span7,.uneditable-input.span7{width:530px;} +input.span8,textarea.span8,.uneditable-input.span8{width:610px;} +input.span9,textarea.span9,.uneditable-input.span9{width:690px;} +input.span10,textarea.span10,.uneditable-input.span10{width:770px;} +input.span11,textarea.span11,.uneditable-input.span11{width:850px;} +input.span12,textarea.span12,.uneditable-input.span12{width:930px;} +input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#f5f5f5;border-color:#ddd;cursor:not-allowed;} +.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;} +.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853;}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:0 0 6px #dbc59e;-moz-box-shadow:0 0 6px #dbc59e;box-shadow:0 0 6px #dbc59e;} +.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;} +.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;} +.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48;}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow:0 0 6px #d59392;} +.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;} +.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;} +.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847;}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:0 0 6px #7aba7b;-moz-box-shadow:0 0 6px #7aba7b;box-shadow:0 0 6px #7aba7b;} +.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;} +input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;} +.form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#f5f5f5;border-top:1px solid #ddd;} +.uneditable-input{display:block;background-color:#ffffff;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;} +:-moz-placeholder{color:#999999;} +::-webkit-input-placeholder{color:#999999;} +.help-block{margin-top:5px;margin-bottom:0;color:#999999;} +.help-inline{display:inline-block;*display:inline;*zoom:1;margin-bottom:9px;vertical-align:middle;padding-left:5px;} +.input-prepend,.input-append{margin-bottom:5px;*zoom:1;}.input-prepend:before,.input-append:before,.input-prepend:after,.input-append:after{display:table;content:"";} +.input-prepend:after,.input-append:after{clear:both;} +.input-prepend input,.input-append input,.input-prepend .uneditable-input,.input-append .uneditable-input{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}.input-prepend input:focus,.input-append input:focus,.input-prepend .uneditable-input:focus,.input-append .uneditable-input:focus{position:relative;z-index:2;} +.input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc;} +.input-prepend .add-on,.input-append .add-on{float:left;display:block;width:auto;min-width:16px;height:18px;margin-right:-1px;padding:4px 5px;font-weight:normal;line-height:18px;color:#999999;text-align:center;text-shadow:0 1px 0 #ffffff;background-color:#f5f5f5;border:1px solid #ccc;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.input-prepend .active,.input-append .active{background-color:#a9dba9;border-color:#46a546;} +.input-prepend .add-on{*margin-top:1px;} +.input-append input,.input-append .uneditable-input{float:left;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.input-append .uneditable-input{border-right-color:#ccc;} +.input-append .add-on{margin-right:0;margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} +.input-append input:first-child{*margin-left:-160px;}.input-append input:first-child+.add-on{*margin-left:-21px;} +.search-query{padding-left:14px;padding-right:14px;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px;} +.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input{display:inline-block;margin-bottom:0;} +.form-search label,.form-inline label,.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{display:inline-block;} +.form-search .input-append .add-on,.form-inline .input-prepend .add-on,.form-search .input-append .add-on,.form-inline .input-prepend .add-on{vertical-align:middle;} +.control-group{margin-bottom:9px;} +.form-horizontal legend+.control-group{margin-top:18px;-webkit-margin-top-collapse:separate;} +.form-horizontal .control-group{margin-bottom:18px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";} +.form-horizontal .control-group:after{clear:both;} +.form-horizontal .control-group>label{float:left;width:140px;padding-top:5px;text-align:right;} +.form-horizontal .controls{margin-left:160px;} +.form-horizontal .form-actions{padding-left:160px;} +table{max-width:100%;border-collapse:collapse;border-spacing:0;} +.table{width:100%;margin-bottom:18px;}.table th,.table td{padding:8px;line-height:18px;text-align:left;border-top:1px solid #ddd;} +.table th{font-weight:bold;vertical-align:bottom;} +.table td{vertical-align:top;} +.table thead:first-child tr th,.table thead:first-child tr td{border-top:0;} +.table tbody+tbody{border-top:2px solid #ddd;} +.table-condensed th,.table-condensed td{padding:4px 5px;} +.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapsed;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th+th,.table-bordered td+td,.table-bordered th+td,.table-bordered td+th{border-left:1px solid #ddd;} +.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;} +.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0;} +.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0;} +.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;} +.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0;} +.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;} +table .span1{float:none;width:44px;margin-left:0;} +table .span2{float:none;width:124px;margin-left:0;} +table .span3{float:none;width:204px;margin-left:0;} +table .span4{float:none;width:284px;margin-left:0;} +table .span5{float:none;width:364px;margin-left:0;} +table .span6{float:none;width:444px;margin-left:0;} +table .span7{float:none;width:524px;margin-left:0;} +table .span8{float:none;width:604px;margin-left:0;} +table .span9{float:none;width:684px;margin-left:0;} +table .span10{float:none;width:764px;margin-left:0;} +table .span11{float:none;width:844px;margin-left:0;} +table .span12{float:none;width:924px;margin-left:0;} +[class^="icon-"]{display:inline-block;width:14px;height:14px;vertical-align:text-top;background-image:url(../img/glyphicons-halflings.png);background-position:14px 14px;background-repeat:no-repeat;*margin-right:.3em;}[class^="icon-"]:last-child{*margin-left:0;} +.icon-white{background-image:url(../img/glyphicons-halflings-white.png);} +.icon-glass{background-position:0 0;} +.icon-music{background-position:-24px 0;} +.icon-search{background-position:-48px 0;} +.icon-envelope{background-position:-72px 0;} +.icon-heart{background-position:-96px 0;} +.icon-star{background-position:-120px 0;} +.icon-star-empty{background-position:-144px 0;} +.icon-user{background-position:-168px 0;} +.icon-film{background-position:-192px 0;} +.icon-th-large{background-position:-216px 0;} +.icon-th{background-position:-240px 0;} +.icon-th-list{background-position:-264px 0;} +.icon-ok{background-position:-288px 0;} +.icon-remove{background-position:-312px 0;} +.icon-zoom-in{background-position:-336px 0;} +.icon-zoom-out{background-position:-360px 0;} +.icon-off{background-position:-384px 0;} +.icon-signal{background-position:-408px 0;} +.icon-cog{background-position:-432px 0;} +.icon-trash{background-position:-456px 0;} +.icon-home{background-position:0 -24px;} +.icon-file{background-position:-24px -24px;} +.icon-time{background-position:-48px -24px;} +.icon-road{background-position:-72px -24px;} +.icon-download-alt{background-position:-96px -24px;} +.icon-download{background-position:-120px -24px;} +.icon-upload{background-position:-144px -24px;} +.icon-inbox{background-position:-168px -24px;} +.icon-play-circle{background-position:-192px -24px;} +.icon-repeat{background-position:-216px -24px;} +.icon-refresh{background-position:-240px -24px;} +.icon-list-alt{background-position:-264px -24px;} +.icon-lock{background-position:-287px -24px;} +.icon-flag{background-position:-312px -24px;} +.icon-headphones{background-position:-336px -24px;} +.icon-volume-off{background-position:-360px -24px;} +.icon-volume-down{background-position:-384px -24px;} +.icon-volume-up{background-position:-408px -24px;} +.icon-qrcode{background-position:-432px -24px;} +.icon-barcode{background-position:-456px -24px;} +.icon-tag{background-position:0 -48px;} +.icon-tags{background-position:-25px -48px;} +.icon-book{background-position:-48px -48px;} +.icon-bookmark{background-position:-72px -48px;} +.icon-print{background-position:-96px -48px;} +.icon-camera{background-position:-120px -48px;} +.icon-font{background-position:-144px -48px;} +.icon-bold{background-position:-167px -48px;} +.icon-italic{background-position:-192px -48px;} +.icon-text-height{background-position:-216px -48px;} +.icon-text-width{background-position:-240px -48px;} +.icon-align-left{background-position:-264px -48px;} +.icon-align-center{background-position:-288px -48px;} +.icon-align-right{background-position:-312px -48px;} +.icon-align-justify{background-position:-336px -48px;} +.icon-list{background-position:-360px -48px;} +.icon-indent-left{background-position:-384px -48px;} +.icon-indent-right{background-position:-408px -48px;} +.icon-facetime-video{background-position:-432px -48px;} +.icon-picture{background-position:-456px -48px;} +.icon-pencil{background-position:0 -72px;} +.icon-map-marker{background-position:-24px -72px;} +.icon-adjust{background-position:-48px -72px;} +.icon-tint{background-position:-72px -72px;} +.icon-edit{background-position:-96px -72px;} +.icon-share{background-position:-120px -72px;} +.icon-check{background-position:-144px -72px;} +.icon-move{background-position:-168px -72px;} +.icon-step-backward{background-position:-192px -72px;} +.icon-fast-backward{background-position:-216px -72px;} +.icon-backward{background-position:-240px -72px;} +.icon-play{background-position:-264px -72px;} +.icon-pause{background-position:-288px -72px;} +.icon-stop{background-position:-312px -72px;} +.icon-forward{background-position:-336px -72px;} +.icon-fast-forward{background-position:-360px -72px;} +.icon-step-forward{background-position:-384px -72px;} +.icon-eject{background-position:-408px -72px;} +.icon-chevron-left{background-position:-432px -72px;} +.icon-chevron-right{background-position:-456px -72px;} +.icon-plus-sign{background-position:0 -96px;} +.icon-minus-sign{background-position:-24px -96px;} +.icon-remove-sign{background-position:-48px -96px;} +.icon-ok-sign{background-position:-72px -96px;} +.icon-question-sign{background-position:-96px -96px;} +.icon-info-sign{background-position:-120px -96px;} +.icon-screenshot{background-position:-144px -96px;} +.icon-remove-circle{background-position:-168px -96px;} +.icon-ok-circle{background-position:-192px -96px;} +.icon-ban-circle{background-position:-216px -96px;} +.icon-arrow-left{background-position:-240px -96px;} +.icon-arrow-right{background-position:-264px -96px;} +.icon-arrow-up{background-position:-289px -96px;} +.icon-arrow-down{background-position:-312px -96px;} +.icon-share-alt{background-position:-336px -96px;} +.icon-resize-full{background-position:-360px -96px;} +.icon-resize-small{background-position:-384px -96px;} +.icon-plus{background-position:-408px -96px;} +.icon-minus{background-position:-433px -96px;} +.icon-asterisk{background-position:-456px -96px;} +.icon-exclamation-sign{background-position:0 -120px;} +.icon-gift{background-position:-24px -120px;} +.icon-leaf{background-position:-48px -120px;} +.icon-fire{background-position:-72px -120px;} +.icon-eye-open{background-position:-96px -120px;} +.icon-eye-close{background-position:-120px -120px;} +.icon-warning-sign{background-position:-144px -120px;} +.icon-plane{background-position:-168px -120px;} +.icon-calendar{background-position:-192px -120px;} +.icon-random{background-position:-216px -120px;} +.icon-comment{background-position:-240px -120px;} +.icon-magnet{background-position:-264px -120px;} +.icon-chevron-up{background-position:-288px -120px;} +.icon-chevron-down{background-position:-313px -119px;} +.icon-retweet{background-position:-336px -120px;} +.icon-shopping-cart{background-position:-360px -120px;} +.icon-folder-close{background-position:-384px -120px;} +.icon-folder-open{background-position:-408px -120px;} +.icon-resize-vertical{background-position:-432px -119px;} +.icon-resize-horizontal{background-position:-456px -118px;} +.dropdown{position:relative;} +.dropdown-toggle{*margin-bottom:-3px;} +.dropdown-toggle:active,.open .dropdown-toggle{outline:0;} +.caret{display:inline-block;width:0;height:0;text-indent:-99999px;*text-indent:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000000;opacity:0.3;filter:alpha(opacity=30);content:"\2193";} +.dropdown .caret{margin-top:8px;margin-left:2px;} +.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100);} +.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;max-width:220px;_width:160px;padding:4px 0;margin:0;list-style:none;background-color:#ffffff;border-color:#ccc;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px;}.dropdown-menu.bottom-up{top:auto;bottom:100%;margin-bottom:2px;} +.dropdown-menu .divider{height:1px;margin:5px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;*width:100%;*margin:-5px 0 5px;} +.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#555555;white-space:nowrap;} +.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#ffffff;text-decoration:none;background-color:#0088cc;} +.dropdown.open{*z-index:1000;}.dropdown.open .dropdown-toggle{color:#ffffff;background:#ccc;background:rgba(0, 0, 0, 0.3);} +.dropdown.open .dropdown-menu{display:block;} +.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0, 0, 0, 0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);} +.fade{-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;opacity:0;}.fade.in{opacity:1;} +.collapse{-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-ms-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;position:relative;overflow:hidden;height:0;}.collapse.in{height:auto;} +.close{float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;opacity:0.4;filter:alpha(opacity=40);cursor:pointer;} +.btn{display:inline-block;padding:4px 10px 4px;font-size:13px;line-height:18px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#fafafa;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);background-image:-ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border:1px solid #ccc;border-bottom-color:#bbb;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);cursor:pointer;*margin-left:.3em;}.btn:first-child{*margin-left:0;} +.btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;} +.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.btn.active,.btn:active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);background-color:#e6e6e6;background-color:#d9d9d9 \9;color:rgba(0, 0, 0, 0.5);outline:0;} +.btn.disabled,.btn[disabled]{cursor:default;background-image:none;background-color:#e6e6e6;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.btn-large .icon{margin-top:1px;} +.btn-small{padding:5px 9px;font-size:11px;line-height:16px;} +.btn-small .icon{margin-top:-1px;} +.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover{text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);color:#ffffff;} +.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active{color:rgba(255, 255, 255, 0.75);} +.btn-primary{background-color:#006dcc;background-image:-moz-linear-gradient(top, #0088cc, #0044cc);background-image:-ms-linear-gradient(top, #0088cc, #0044cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));background-image:-webkit-linear-gradient(top, #0088cc, #0044cc);background-image:-o-linear-gradient(top, #0088cc, #0044cc);background-image:linear-gradient(top, #0088cc, #0044cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);border-color:#0044cc #0044cc #002a80;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0044cc;} +.btn-primary:active,.btn-primary.active{background-color:#003399 \9;} +.btn-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;} +.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;} +.btn-danger{background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-ms-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(top, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;} +.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;} +.btn-success{background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-ms-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(top, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;} +.btn-success:active,.btn-success.active{background-color:#408140 \9;} +.btn-info{background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-ms-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(top, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;} +.btn-info:active,.btn-info.active{background-color:#24748c \9;} +button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;} +button.btn.large,input[type="submit"].btn.large{*padding-top:7px;*padding-bottom:7px;} +button.btn.small,input[type="submit"].btn.small{*padding-top:3px;*padding-bottom:3px;} +.btn-group{position:relative;*zoom:1;*margin-left:.3em;}.btn-group:before,.btn-group:after{display:table;content:"";} +.btn-group:after{clear:both;} +.btn-group:first-child{*margin-left:0;} +.btn-group+.btn-group{margin-left:5px;} +.btn-toolbar{margin-top:9px;margin-bottom:9px;}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1;} +.btn-group .btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.btn-group .btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;} +.btn-group .btn:last-child,.btn-group .dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;} +.btn-group .btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;} +.btn-group .btn.large:last-child,.btn-group .large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;} +.btn-group .btn:hover,.btn-group .btn:focus,.btn-group .btn:active,.btn-group .btn.active{z-index:2;} +.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;} +.btn-group .dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);*padding-top:5px;*padding-bottom:5px;} +.btn-group.open{*z-index:1000;}.btn-group.open .dropdown-menu{display:block;margin-top:1px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);} +.btn .caret{margin-top:7px;margin-left:0;} +.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100);} +.btn-primary .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret{border-top-color:#ffffff;opacity:0.75;filter:alpha(opacity=75);} +.btn-small .caret{margin-top:4px;} +.alert{padding:8px 35px 8px 14px;margin-bottom:18px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.alert,.alert-heading{color:#c09853;} +.alert .close{position:relative;top:-2px;right:-21px;line-height:18px;} +.alert-success{background-color:#dff0d8;border-color:#d6e9c6;} +.alert-success,.alert-success .alert-heading{color:#468847;} +.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;} +.alert-danger,.alert-error,.alert-danger .alert-heading,.alert-error .alert-heading{color:#b94a48;} +.alert-info{background-color:#d9edf7;border-color:#bce8f1;} +.alert-info,.alert-info .alert-heading{color:#3a87ad;} +.alert-block{padding-top:14px;padding-bottom:14px;} +.alert-block>p,.alert-block>ul{margin-bottom:0;} +.alert-block p+p{margin-top:5px;} +.nav{margin-left:0;margin-bottom:18px;list-style:none;} +.nav>li>a{display:block;} +.nav>li>a:hover{text-decoration:none;background-color:#eeeeee;} +.nav-list{padding-left:14px;padding-right:14px;margin-bottom:0;} +.nav-list>li>a,.nav-list .nav-header{display:block;padding:3px 15px;margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);} +.nav-list .nav-header{font-size:11px;font-weight:bold;line-height:18px;color:#999999;text-transform:uppercase;} +.nav-list>li+.nav-header{margin-top:9px;} +.nav-list .active>a,.nav-list .active>a:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;} +.nav-list [class^="icon-"]{margin-right:2px;} +.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";} +.nav-tabs:after,.nav-pills:after{clear:both;} +.nav-tabs>li,.nav-pills>li{float:left;} +.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;} +.nav-tabs{border-bottom:1px solid #ddd;} +.nav-tabs>li{margin-bottom:-1px;} +.nav-tabs>li>a{padding-top:9px;padding-bottom:9px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;} +.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;} +.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.nav-pills .active>a,.nav-pills .active>a:hover{color:#ffffff;background-color:#0088cc;} +.nav-stacked>li{float:none;} +.nav-stacked>li>a{margin-right:0;} +.nav-tabs.nav-stacked{border-bottom:0;} +.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;} +.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;} +.nav-tabs.nav-stacked>li>a:hover{border-color:#ddd;z-index:2;} +.nav-pills.nav-stacked>li>a{margin-bottom:3px;} +.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;} +.nav-tabs .dropdown-menu,.nav-pills .dropdown-menu{margin-top:1px;border-width:1px;} +.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{border-top-color:#0088cc;margin-top:6px;} +.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;} +.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333333;} +.nav>.dropdown.active>a:hover{color:#000000;cursor:pointer;} +.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;} +.nav .open .caret,.nav .open.active .caret,.nav .open a:hover .caret{border-top-color:#ffffff;opacity:1;filter:alpha(opacity=100);} +.tabs-stacked .open>a:hover{border-color:#999999;} +.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";} +.tabbable:after{clear:both;} +.tabs-below .nav-tabs,.tabs-right .nav-tabs,.tabs-left .nav-tabs{border-bottom:0;} +.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;} +.tab-content>.active,.pill-content>.active{display:block;} +.tabs-below .nav-tabs{border-top:1px solid #ddd;} +.tabs-below .nav-tabs>li{margin-top:-1px;margin-bottom:0;} +.tabs-below .nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below .nav-tabs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd;} +.tabs-below .nav-tabs .active>a,.tabs-below .nav-tabs .active>a:hover{border-color:transparent #ddd #ddd #ddd;} +.tabs-left .nav-tabs>li,.tabs-right .nav-tabs>li{float:none;} +.tabs-left .nav-tabs>li>a,.tabs-right .nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;} +.tabs-left .nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;} +.tabs-left .nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;} +.tabs-left .nav-tabs>li>a:hover{border-color:#eeeeee #dddddd #eeeeee #eeeeee;} +.tabs-left .nav-tabs .active>a,.tabs-left .nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;} +.tabs-right .nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;} +.tabs-right .nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.tabs-right .nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #eeeeee #dddddd;} +.tabs-right .nav-tabs .active>a,.tabs-right .nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;} +.navbar{overflow:visible;margin-bottom:18px;} +.navbar-inner{padding-left:20px;padding-right:20px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);} +.btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);}.btn-navbar:hover,.btn-navbar:active,.btn-navbar.active,.btn-navbar.disabled,.btn-navbar[disabled]{background-color:#222222;} +.btn-navbar:active,.btn-navbar.active{background-color:#080808 \9;} +.btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);} +.btn-navbar .icon-bar+.icon-bar{margin-top:3px;} +.nav-collapse.collapse{height:auto;} +.navbar .brand:hover{text-decoration:none;} +.navbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#ffffff;} +.navbar .navbar-text{margin-bottom:0;line-height:40px;color:#999999;}.navbar .navbar-text a:hover{color:#ffffff;background-color:transparent;} +.navbar .btn,.navbar .btn-group{margin-top:5px;} +.navbar .btn-group .btn{margin-top:0;} +.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";} +.navbar-form:after{clear:both;} +.navbar-form input,.navbar-form select{display:inline-block;margin-top:5px;margin-bottom:0;} +.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;} +.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;} +.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0;}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#ffffff;color:rgba(255, 255, 255, 0.75);background:#666;background:rgba(255, 255, 255, 0.3);border:1px solid #111;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.navbar-search .search-query :-moz-placeholder{color:#eeeeee;} +.navbar-search .search-query::-webkit-input-placeholder{color:#eeeeee;} +.navbar-search .search-query:hover{color:#ffffff;background-color:#999999;background-color:rgba(255, 255, 255, 0.5);} +.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;} +.navbar-fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030;} +.navbar-fixed-top .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;} +.navbar .nav.pull-right{float:right;} +.navbar .nav>li{display:block;float:left;} +.navbar .nav>li>a{float:none;padding:10px 10px 11px;line-height:19px;color:#999999;text-decoration:none;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);} +.navbar .nav>li>a:hover{background-color:transparent;color:#ffffff;text-decoration:none;} +.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#ffffff;text-decoration:none;background-color:#222222;background-color:rgba(0, 0, 0, 0.5);} +.navbar .divider-vertical{height:40px;width:1px;margin:0 9px;overflow:hidden;background-color:#222222;border-right:1px solid #333333;} +.navbar .nav.pull-right{margin-left:10px;margin-right:0;} +.navbar .dropdown-menu{margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.navbar .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;} +.navbar .dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;} +.navbar .nav .dropdown-toggle .caret,.navbar .nav .open.dropdown .caret{border-top-color:#ffffff;} +.navbar .nav .active .caret{opacity:1;filter:alpha(opacity=100);} +.navbar .nav .open>.dropdown-toggle,.navbar .nav .active>.dropdown-toggle,.navbar .nav .open.active>.dropdown-toggle{background-color:transparent;} +.navbar .nav .active>.dropdown-toggle:hover{color:#ffffff;} +.navbar .nav.pull-right .dropdown-menu{left:auto;right:0;}.navbar .nav.pull-right .dropdown-menu:before{left:auto;right:12px;} +.navbar .nav.pull-right .dropdown-menu:after{left:auto;right:13px;} +.breadcrumb{padding:7px 14px;margin:0 0 18px;background-color:#fbfbfb;background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline;text-shadow:0 1px 0 #ffffff;} +.breadcrumb .divider{padding:0 5px;color:#999999;} +.breadcrumb .active a{color:#333333;} +.pagination{height:36px;margin:18px 0;} +.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);} +.pagination li{display:inline;} +.pagination a{float:left;padding:0 14px;line-height:34px;text-decoration:none;border:1px solid #ddd;border-left-width:0;} +.pagination a:hover,.pagination .active a{background-color:#f5f5f5;} +.pagination .active a{color:#999999;cursor:default;} +.pagination .disabled a,.pagination .disabled a:hover{color:#999999;background-color:transparent;cursor:default;} +.pagination li:first-child a{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.pagination li:last-child a{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} +.pagination-centered{text-align:center;} +.pagination-right{text-align:right;} +.pager{margin-left:0;margin-bottom:18px;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";} +.pager:after{clear:both;} +.pager li{display:inline;} +.pager a{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;} +.pager a:hover{text-decoration:none;background-color:#f5f5f5;} +.pager .next a{float:right;} +.pager .previous a{float:left;} +.modal-open .dropdown-menu{z-index:2050;} +.modal-open .dropdown.open{*z-index:2050;} +.modal-open .popover{z-index:2060;} +.modal-open .tooltip{z-index:2070;} +.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;} +.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);} +.modal{position:fixed;top:50%;left:50%;z-index:1050;max-height:500px;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;} +.modal.fade.in{top:50%;} +.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;} +.modal-body{padding:15px;} +.modal-footer{padding:14px 15px 15px;margin-bottom:0;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";} +.modal-footer:after{clear:both;} +.modal-footer .btn{float:right;margin-left:5px;margin-bottom:0;} +.tooltip{position:absolute;z-index:1020;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);} +.tooltip.top{margin-top:-2px;} +.tooltip.right{margin-left:2px;} +.tooltip.bottom{margin-top:2px;} +.tooltip.left{margin-left:-2px;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.tooltip-arrow{position:absolute;width:0;height:0;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px;}.popover.top{margin-top:-5px;} +.popover.right{margin-left:5px;} +.popover.bottom{margin-top:5px;} +.popover.left{margin-left:-5px;} +.popover.top .arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} +.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} +.popover.bottom .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} +.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} +.popover .arrow{position:absolute;width:0;height:0;} +.popover-inner{padding:3px;width:280px;overflow:hidden;background:#000000;background:rgba(0, 0, 0, 0.8);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);} +.popover-title{padding:9px 15px;line-height:1;background-color:#f5f5f5;border-bottom:1px solid #eee;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;} +.popover-content{padding:14px;background-color:#ffffff;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;} +.thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";} +.thumbnails:after{clear:both;} +.thumbnails>li{float:left;margin:0 0 18px 20px;} +.thumbnail{display:block;padding:4px;line-height:1;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);} +a.thumbnail:hover{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);} +.thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;} +.thumbnail .caption{padding:9px;} +.label{padding:1px 3px 2px;font-size:9.75px;font-weight:bold;color:#ffffff;text-transform:uppercase;background-color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.label-important{background-color:#b94a48;} +.label-warning{background-color:#f89406;} +.label-success{background-color:#468847;} +.label-info{background-color:#3a87ad;} +@-webkit-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-ms-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(top, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.progress .bar{width:0%;height:18px;color:#ffffff;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-ms-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(top, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-ms-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;} +.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;} +.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;} +.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);} +.progress-danger.progress-striped .bar{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-ms-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(top, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);} +.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-ms-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(top, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);} +.progress-info.progress-striped .bar{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.accordion{margin-bottom:18px;} +.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.accordion-heading{border-bottom:0;} +.accordion-heading .accordion-toggle{display:block;padding:8px 15px;} +.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;} +.carousel{position:relative;margin-bottom:18px;line-height:1;} +.carousel-inner{overflow:hidden;width:100%;position:relative;} +.carousel .item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-ms-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;} +.carousel .item>img{display:block;line-height:1;} +.carousel .active,.carousel .next,.carousel .prev{display:block;} +.carousel .active{left:0;} +.carousel .next,.carousel .prev{position:absolute;top:0;width:100%;} +.carousel .next{left:100%;} +.carousel .prev{left:-100%;} +.carousel .next.left,.carousel .prev.right{left:0;} +.carousel .active.left{left:-100%;} +.carousel .active.right{left:100%;} +.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#ffffff;text-align:center;background:#222222;border:3px solid #ffffff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:0.5;filter:alpha(opacity=50);}.carousel-control.right{left:auto;right:15px;} +.carousel-control:hover{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);} +.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 15px 5px;background:#333333;background:rgba(0, 0, 0, 0.75);} +.carousel-caption h4,.carousel-caption p{color:#ffffff;} +.hero-unit{padding:60px;margin-bottom:30px;background-color:#f5f5f5;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;} +.hero-unit p{font-size:18px;font-weight:200;line-height:27px;} +.pull-right{float:right;} +.pull-left{float:left;} +.hide{display:none;} +.show{display:block;} +.invisible{visibility:hidden;} diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/jquery.iviewer.css b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/jquery.iviewer.css new file mode 100644 index 0000000..d68c642 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/jquery.iviewer.css @@ -0,0 +1,91 @@ +.iviewer_common { + position:absolute; + bottom:10px; + border: 1px solid #000; + height: 28px; + z-index: 5000; +} + +.iviewer_cursor { + cursor: url(../img/iviewer/hand.cur) 6 8, pointer; +} + +.iviewer_drag_cursor { + cursor: url(../img/iviewer/grab.cur) 6 8, pointer; +} + +.iviewer_button { + width: 28px; + cursor: pointer; + background-position: center center; + background-repeat: no-repeat; +} + +.iviewer_zoom_in { + left: 20px; + background: url(../img/iviewer/iviewer.zoom_in.png); +} + +.iviewer_zoom_out { + left: 55px; + background: url(../img/iviewer/iviewer.zoom_out.png); +} + +.iviewer_zoom_zero { + left: 90px; + background: url(../img/iviewer/iviewer.zoom_zero.png); +} + +.iviewer_zoom_fit { + left: 125px; + background: url(../img/iviewer/iviewer.zoom_fit.png); +} + +.iviewer_zoom_status { + left: 160px; + font: 1em/28px Sans; + color: #000; + background-color: #fff; + text-align: center; + width: 60px; +} + +.iviewer_rotate_left { + left: 227px; + background: #fff url(../img/iviewer/iviewer.rotate_left.png) center center no-repeat; +} + +.iviewer_rotate_right { + left: 262px; + background: #fff url(../img/iviewer/iviewer.rotate_right.png) center center no-repeat; +} + +.viewer +{ + width: 100%; + height: 500px; + position: relative; + background: transparent url('../img/loader.gif') no-repeat center center; +} + +.viewer img +{ + max-width: none; +} + +.wrapper +{ + overflow: hidden; +} + +.iviewer_common +{ + border: 0; + bottom: auto; + top: 10px; +} + +.iviewer_zoom_status +{ + border: 1px solid black; +} diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/prettify.css b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/prettify.css new file mode 100644 index 0000000..d44b3a2 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/template.css b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/template.css new file mode 100644 index 0000000..74889d8 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/css/template.css @@ -0,0 +1,505 @@ +@import url(bootstrap.min.css); +@import url(bootstrap-responsive.css); +@import url(prettify.css); +@import url(jquery.iviewer.css); +@import url(http://fonts.googleapis.com/css?family=Crimson+Text|Philosopher|Forum); + +body +{ + padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */ + background: #f9f9f9; + color: #444; +} + +a +{ + color: #55A72F; +} + +li.l0, li.l1, li.l2, li.l3, li.l5, li.l6, li.l7, li.l8 +{ + list-style-type: decimal; +} + +a.brand, h2, .hero-unit h1 +{ + font-family: 'Forum', "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +.element .span4 +{ + width: 275px; +} + +.namespace-contents hr, .package-contents hr +{ + border-top: 3px dotted silver; +} + +.namespace-indent, .package-indent +{ + padding-left: 10px; border-left: 1px dashed #f0f0f0; +} + +.element h3 i, .namespace-contents h3 i, .package-contents h3 i +{ + margin-top: 2px; + margin-right: 5px; +} + +.element h3, .namespace-contents h3, .package-contents h3 +{ + margin-top: 25px; + margin-bottom: 20px; + border-bottom: 1px solid silver; +} + +.element h3:first-of-type, .namespace-contents h3:first-of-type, +.package-contents h3:first-of-type +{ + margin-top: 30px; +} + +.element h2 +{ + font-family: inherit; + font-size: 1.2em; + color: black; +} + +.element .type +{ + font-weight: bold; +} + +#search-query +{ + height: auto; +} + +.hero-unit, div.element, .well +{ + border: 1px solid #e0e0e0; + background: white; +} + +h2 +{ + border-bottom: 1px dashed #55A72F; + margin-bottom: 10px; + padding-bottom: 0; + padding-left: 5px; + color: #e9e9e9; + font-weight: normal; + margin-top: 40px; +} + +h2:first-of-type +{ + margin-top: 0; +} + +.hero-unit +{ + background: #75a70d; /* Old browsers */ + background: -moz-radial-gradient(center, ellipse cover, #bfd255 0%, #8eb92a 72%, #72aa00 96%, #9ecb2d 100%); /* FF3.6+ */ + background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,#bfd255), color-stop(72%,#8eb92a), color-stop(96%,#72aa00), color-stop(100%,#9ecb2d)); /* Chrome,Safari4+ */ + background: -webkit-radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* Chrome10+,Safari5.1+ */ + background: -o-radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* Opera 12+ */ + background: -ms-radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* IE10+ */ + background: radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bfd255', endColorstr='#9ecb2d',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */ + + padding: 40px 0 15px 0; + box-shadow: inset 0 0 10px gray; +} + +.hero-unit h1 +{ + text-align: center; + font-weight: normal; + text-align: center; + color: white; + text-shadow: black 0px 0px 15px; +} + +.hero-unit h2 +{ + border: none; + color: white; + background: rgba(48, 48, 48, 0.5); + padding: 0; + margin: 0; + margin-top: 15px; + text-align: center; +} + +.namespace-contents h2, .package-contents h2 +{ + padding-left: 44px; + background: transparent url('../img/icons/icon-th-big.png') no-repeat 3px center; +} + +.package-contents h2 +{ + background-image: url('../img/icons/icon-folder-open-big.png'); +} + +.namespace-contents .element h2, .package-contents .element h2 +{ + padding-left: 0; + background: none; +} + +div.element +{ + border-left: 10px solid #55A72F; + border-radius: 5px; + padding: 7px 7px 2px 7px; + margin-bottom: 15px; + margin-left: 0; +} + +div.element.protected +{ + border-left-color: orange; +} + +div.element.private +{ + border-left-color: red; +} + +div.element.class, div.element.interface +{ + border-left-color: #e0e0e0; +} + +div.element.class.abstract h1, div.element.interface.abstract h1 +{ + font-style: italic; +} + +div.element h1 +{ + font-size: 1.2em; + line-height: 1.5em; + margin-bottom: 10px; + padding-left: 22px; + background: transparent no-repeat left 2px; + word-wrap: break-word; +} + +div.element h1 a +{ + color: transparent; + margin-left: 10px; +} + +div.element h1:hover a +{ + color: silver; +} + +div.element h1 a:hover +{ + color: navy; +} + +div.element a.more:hover +{ + background: #f0f0f0; + color: #444; + text-decoration: none; +} + +div.element a.more +{ + font-weight: bold; + text-align: center; + color: gray; + border-top: 1px dashed silver; + display: block; + margin-top: 5px; + padding: 5px 0; + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; +} + +div.element p +{ + font-size: 0.9em; +} + +div.element .table +{ + font-size: 0.9em; +} + +div.element .table th +{ + text-transform: capitalize; +} + +div.detail-description +{ + padding-left: 30px; +} + +body.invert +{ + background: white; +} + +body.invert div.element +{ + background: #f9f9f9; +} + +ul.side-nav +{ + clear: both; +} + +ul.side-nav li +{ + word-wrap: break-word; + padding-left: 10px; + text-indent: -10px; +} + +ul.side-nav li a +{ + background: transparent no-repeat 5px 3px; + padding-bottom: 10px; + font-style: italic; +} + +ul.side-nav li pre +{ + font-size: 0.8em; + margin: 5px 15px 0 15px; + padding: 2px 5px; + background-color: #f8f8f8; + color: gray; + font-style: normal; + word-wrap: break-word; + text-indent: 0; +} + +ul.side-nav li.view-simple span.description +{ + display: none; +} + +ul.side-nav li.view-simple pre +{ + font-size: inherit; + margin: inherit; + padding: inherit; + background-color: inherit; + border: none; + color: inherit; + font-family: inherit; + font-style: inherit; + padding-bottom: 0; + padding-left: 5px; +} + +ul.side-nav li.view-simple a +{ + padding-bottom: 0px; +} + +i.icon-custom +{ + width: 16px; + height: 16px; + background-position: 0; +} + +.table.markers +{ + background: white; +} + +/* JS only functionality; disable by default */ +.btn-group.visibility, .btn-group.view, .btn-group.type-filter +{ + display: none; +} + +.btn-group.view +{ + margin-left: 20px; + margin-bottom: 20px; +} + +.visibility button +{ + height: 24px; +} + +div.element.constant h1, +i.icon-constant { background-image: url('../img/icons/constant.png'); } + +div.element.function h1, +i.icon-function { background-image: url('../img/icons/function.png'); } + +div.element.method h1, +i.icon-method { background-image: url('../img/icons/method.png'); } + +div.element.class h1, +i.icon-class { background-image: url('../img/icons/class.png'); } + +div.element.interface h1, +i.icon-interface { background-image: url('../img/icons/interface.png'); } + +div.element.property h1, +i.icon-property { background-image: url('../img/icons/property.png'); } + +i.icon-show-public { background-image: url('../img/icons/visibility_public.png'); } +i.icon-show-protected { background-image: url('../img/icons/visibility_protected.png'); } +i.icon-show-private { background-image: url('../img/icons/visibility_private.png'); } + +span.empty-namespace +{ + color: silver; +} + +footer +{ + text-align: right; + font-size: 0.8em; + opacity: 0.5; +} + +#mapHolder +{ + border: 4px solid #555; + padding: 0 !important; + overflow: hidden +} + +div.element div.subelement +{ + margin-left: 10px; + padding-bottom: 5px; +} + +pre code +{ + border: none; +} + +div.element div.subelement > code +{ + font-size: 0.8em; + float: left; + margin-right: 10px; + padding: 0 5px; + line-height: 16px; +} + +div.element div.subelement > p +{ + margin-left: 20px; + margin-right: 40px; +} + +div.element div.subelement h4 +{ + color: #666; + margin-bottom: 5px; +} + +div.element div.subelement.response +{ + padding-bottom: 15px; +} + +div.labels +{ + text-align: right; +} + +.nav-list .nav-header +{ + font-size: 13px; +} + +.go_to_top +{ + float: right; + margin-right: 20px; + background: #2C2C2C; + color: #999; + padding: 3px 10px; + border-bottom-right-radius: 5px; + border-bottom-left-radius: 5px; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + line-height: 19px; +} + +.visibility .btn { + text-transform: uppercase; + font-size: 0.7em; + font-weight: bold; +} + +@media (min-width: 980px) +{ + a[name] + { + margin-top: -50px; + position: absolute; + } +} + +@media (min-width: 1200px) +{ + .method .span4 + { + width: 345px; + } +} + +/* redefined because twitter bootstrap assumes that bootstrap-responsive.css */ +@media (max-width: 980px) +{ + body + { + padding-top: 0; + } + + .go_to_top + { + display: none; + } + + .btn-group.visibility + { + font-size: 0.80em; + margin-bottom: 7px; + display: block; + float: right; + } +} + +@media (max-width: 768px) +{ + .hero-unit h1 { + font-size: 30px; + } + .hero-unit h2 { + font-size: 19px; + } + +} +@media (min-width: 768px) and (max-width: 980px) +{ + .method .span4 + { + width: 203px; + } +} diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/deprecated.html b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/deprecated.html new file mode 100644 index 0000000..a75952b --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/deprecated.html @@ -0,0 +1,70 @@ + + + + + +PHPMailer version 5.2.4 + + + + + + + + + + +
+ +
+
+
+ +
No deprecated elements have been + found in this project. +
+
+
+
+
+
+ + diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/errors.html b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/errors.html new file mode 100644 index 0000000..4f2d7cb --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/errors.html @@ -0,0 +1,227 @@ + + + + + +PHPMailer version 5.2.4 + + + + + + + + + + +
+ +
+
+
+ +
+

+class.phpmailer.php16 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical405No short description for property $smtp
critical410No short description for property $to
critical415No short description for property $cc
critical420No short description for property $bcc
critical425No short description for property $ReplyTo
critical430No short description for property $all_recipients
critical435No short description for property $attachment
critical440No short description for property $CustomHeader
critical445No short description for property $message_type
critical450No short description for property $boundary
critical455No short description for property $language
critical460No short description for property $error_count
critical465No short description for property $sign_cert_file
critical470No short description for property $sign_key_file
critical475No short description for property $sign_key_pass
critical480No short description for property $exceptions
+
+
+

+class.pop3.php3 +

+
+ + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical124No short description for property $pop_conn
critical128No short description for property $connected
critical132No short description for property $error
+
+
+

+class.smtp.php3 +

+
+ + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical100No short description for property $smtp_conn
critical104No short description for property $error
critical108No short description for property $helo_rply
+
+
+
+
+
+ + diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/graph_class.html b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/graph_class.html new file mode 100644 index 0000000..395c2d1 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/graph_class.html @@ -0,0 +1,67 @@ + + + + + +PHPMailer version 5.2.4 + + + + + + + + + + +
+ +
+
+
+ + diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/apple-touch-icon-114x114.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/apple-touch-icon-114x114.png new file mode 100644 index 0000000..1506f6a Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/apple-touch-icon-114x114.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/apple-touch-icon-72x72.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/apple-touch-icon-72x72.png new file mode 100644 index 0000000..d813259 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/apple-touch-icon-72x72.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/apple-touch-icon.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/apple-touch-icon.png new file mode 100644 index 0000000..2d320cb Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/apple-touch-icon.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/favicon.ico b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/favicon.ico new file mode 100644 index 0000000..9575ac8 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/favicon.ico differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/glyphicons-halflings-white.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/glyphicons-halflings-white.png new file mode 100644 index 0000000..a20760b Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/glyphicons-halflings-white.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/glyphicons-halflings.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/glyphicons-halflings.png new file mode 100644 index 0000000..92d4445 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/glyphicons-halflings.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/arrow_down.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/arrow_down.png new file mode 100644 index 0000000..61505ad Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/arrow_down.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/arrow_right.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/arrow_right.png new file mode 100644 index 0000000..60c5927 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/arrow_right.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/class.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/class.png new file mode 100644 index 0000000..87c2107 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/class.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/constant.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/constant.png new file mode 100644 index 0000000..f5f180d Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/constant.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/favicon.ico b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/favicon.ico new file mode 100644 index 0000000..df28db3 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/favicon.ico differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/file-php.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/file-php.png new file mode 100644 index 0000000..c323f09 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/file-php.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/file.gif b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/file.gif new file mode 100644 index 0000000..7e62167 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/file.gif differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/folder.gif b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/folder.gif new file mode 100644 index 0000000..2b31631 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/folder.gif differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/function.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/function.png new file mode 100644 index 0000000..c430902 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/function.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/icon-folder-open-big.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/icon-folder-open-big.png new file mode 100644 index 0000000..fae384e Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/icon-folder-open-big.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/icon-th-big.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/icon-th-big.png new file mode 100644 index 0000000..04b0ad8 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/icon-th-big.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/icon_template.svg b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/icon_template.svg new file mode 100644 index 0000000..b0428aa --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/icon_template.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + Co + + diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/interface.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/interface.png new file mode 100644 index 0000000..51a3a17 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/interface.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/method.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/method.png new file mode 100644 index 0000000..a7cc004 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/method.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/ok.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/ok.png new file mode 100644 index 0000000..39f287a Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/ok.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/property.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/property.png new file mode 100644 index 0000000..e76d52b Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/property.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/search.gif b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/search.gif new file mode 100644 index 0000000..eef46fc Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/search.gif differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/variable.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/variable.png new file mode 100644 index 0000000..a39bc19 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/variable.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/view_source.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/view_source.png new file mode 100644 index 0000000..0c76bd1 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/view_source.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/visibility_private.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/visibility_private.png new file mode 100644 index 0000000..386dc2d Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/visibility_private.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/visibility_protected.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/visibility_protected.png new file mode 100644 index 0000000..d3bd8e7 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/visibility_protected.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/visibility_public.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/visibility_public.png new file mode 100644 index 0000000..4e10063 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/icons/visibility_public.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/grab.cur b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/grab.cur new file mode 100644 index 0000000..ef540be Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/grab.cur differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/hand.cur b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/hand.cur new file mode 100644 index 0000000..1a5bafb Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/hand.cur differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.rotate_left.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.rotate_left.png new file mode 100644 index 0000000..df0956d Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.rotate_left.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.rotate_right.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.rotate_right.png new file mode 100644 index 0000000..7a6c829 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.rotate_right.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_fit.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_fit.png new file mode 100644 index 0000000..364e01d Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_fit.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_fit2.gif b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_fit2.gif new file mode 100644 index 0000000..3199a1e Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_fit2.gif differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_in.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_in.png new file mode 100644 index 0000000..7899332 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_in.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_in2.gif b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_in2.gif new file mode 100644 index 0000000..5d59618 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_in2.gif differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_out.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_out.png new file mode 100644 index 0000000..893f350 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_out.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_out2.gif b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_out2.gif new file mode 100644 index 0000000..77ec19a Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_out2.gif differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_zero.png b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_zero.png new file mode 100644 index 0000000..c981db6 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_zero.png differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_zero2.gif b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_zero2.gif new file mode 100644 index 0000000..e56c670 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/iviewer/iviewer.zoom_zero2.gif differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/loader.gif b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/loader.gif new file mode 100644 index 0000000..1209425 Binary files /dev/null and b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/img/loader.gif differ diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/index.html b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/index.html new file mode 100644 index 0000000..e667adc --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/index.html @@ -0,0 +1,89 @@ + + + + + +PHPMailer version 5.2.4 + + + + + + + + + + +
+ +
+

PHPMailer version 5.2.4

+

Documentation

+
+ +
+
+ + diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/SVGPan.js b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/SVGPan.js new file mode 100644 index 0000000..4966b99 --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/SVGPan.js @@ -0,0 +1,232 @@ +/** + * SVGPan library 1.2 - phpDocumentor1 + * ==================== + * + * Given an unique existing element with id "viewport", including the + * the library into any SVG adds the following capabilities: + * + * - Mouse panning + * - Mouse zooming (using the wheel) + * - Object dargging + * + * Known issues: + * + * - Zooming (while panning) on Safari has still some issues + * + * Releases: + * + * 1.2 - phpDocumentor1, Fri Apr 08 19:19:00 CET 2011, Mike van Riel + * Increased zoom speed with 20% + * Disabled element moving functionality + * + * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui + * Fixed a bug with browser mouse handler interaction + * + * 1.1, Wed Feb 3 17:39:33 GMT 2010, Zeng Xiaohui + * Updated the zoom code to support the mouse wheel on Safari/Chrome + * + * 1.0, Andrea Leofreddi + * First release + * + * This code is licensed under the following BSD license: + * + * Copyright 2009-2010 Andrea Leofreddi . All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of Andrea Leofreddi. + */ + +var root = document.documentElement; + +var state = 'none', stateTarget, stateOrigin, stateTf; + +setupHandlers(root); + +/** + * Register handlers + */ +function setupHandlers(root){ + setAttributes(root, { + "onmouseup" : "add(evt)", + "onmousedown" : "handleMouseDown(evt)", + "onmousemove" : "handleMouseMove(evt)", + "onmouseup" : "handleMouseUp(evt)", +// "onmouseout" : "handleMouseUp(evt)" // Decomment this to stop the pan functionality when dragging out of the SVG element + }); + + if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0) + window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari + else + window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others +} + +/** + * Instance an SVGPoint object with given event coordinates. + */ +function getEventPoint(evt) { + var p = root.createSVGPoint(); + + p.x = evt.clientX; + p.y = evt.clientY; + + return p; +} + +/** + * Sets the current transform matrix of an element. + */ +function setCTM(element, matrix) { + var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")"; + + element.setAttribute("transform", s); +} + +/** + * Dumps a matrix to a string (useful for debug). + */ +function dumpMatrix(matrix) { + var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n 0, 0, 1 ]"; + + return s; +} + +/** + * Sets attributes of an element. + */ +function setAttributes(element, attributes){ + for (i in attributes) + element.setAttributeNS(null, i, attributes[i]); +} + +/** + * Handle mouse move event. + */ +function handleMouseWheel(evt) { + if(evt.preventDefault) + evt.preventDefault(); + + evt.returnValue = false; + + var svgDoc = evt.target.ownerDocument; + + var delta; + + if(evt.wheelDelta) + delta = evt.wheelDelta / 3600; // Chrome/Safari + else + delta = evt.detail / -90; // Mozilla + + var z = 1 + (delta * 1.2); // Zoom factor: 0.9/1.1 + + var g = svgDoc.getElementById("viewport"); + + var p = getEventPoint(evt); + + p = p.matrixTransform(g.getCTM().inverse()); + + // Compute new scale matrix in current mouse position + var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y); + + setCTM(g, g.getCTM().multiply(k)); + + stateTf = stateTf.multiply(k.inverse()); +} + +/** + * Handle mouse move event. + */ +function handleMouseMove(evt) { + if(evt.preventDefault) + evt.preventDefault(); + + evt.returnValue = false; + + var svgDoc = evt.target.ownerDocument; + + var g = svgDoc.getElementById("viewport"); + + if(state == 'pan') { + // Pan mode + var p = getEventPoint(evt).matrixTransform(stateTf); + + setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y)); + } else if(state == 'move') { + // Move mode + var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse()); + + setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM())); + + stateOrigin = p; + } +} + +/** + * Handle click event. + */ +function handleMouseDown(evt) { + if(evt.preventDefault) + evt.preventDefault(); + + evt.returnValue = false; + + var svgDoc = evt.target.ownerDocument; + + var g = svgDoc.getElementById("viewport"); + +// if(evt.target.tagName == "svg") { + // Pan mode + state = 'pan'; + + stateTf = g.getCTM().inverse(); + + stateOrigin = getEventPoint(evt).matrixTransform(stateTf); +// } else { + // Move mode +// state = 'move'; +// +// stateTarget = evt.target; +// +// stateTf = g.getCTM().inverse(); +// +// stateOrigin = getEventPoint(evt).matrixTransform(stateTf); +// } +} + +/** + * Handle mouse button release event. + */ +function handleMouseUp(evt) { + if(evt.preventDefault) + evt.preventDefault(); + + evt.returnValue = false; + + var svgDoc = evt.target.ownerDocument; + + if(state == 'pan' || state == 'move') { + // Quit pan mode + state = ''; + } +} + diff --git a/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/bootstrap.js b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/bootstrap.js new file mode 100644 index 0000000..c832ccb --- /dev/null +++ b/frontend/web/count_form/app/lib/PHPMailer_5.2.4/docs/phpdoc/js/bootstrap.js @@ -0,0 +1,1722 @@ +/* =================================================== + * bootstrap-transition.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * Copyright 2012 Twitter, Inc. + * + * 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( $ ) { + + $(function () { + + "use strict" + + /* CSS TRANSITION SUPPORT (https://gist.github.com/373874) + * ======================================================= */ + + $.support.transition = (function () { + var thisBody = document.body || document.documentElement + , thisStyle = thisBody.style + , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined + + return support && { + end: (function () { + var transitionEnd = "TransitionEnd" + if ( $.browser.webkit ) { + transitionEnd = "webkitTransitionEnd" + } else if ( $.browser.mozilla ) { + transitionEnd = "transitionend" + } else if ( $.browser.opera ) { + transitionEnd = "oTransitionEnd" + } + return transitionEnd + }()) + } + })() + + }) + +}( window.jQuery ) +/* ========================================================== + * bootstrap-alert.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#alerts + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * 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( $ ){ + + "use strict" + + /* ALERT CLASS DEFINITION + * ====================== */ + + var dismiss = '[data-dismiss="alert"]' + , Alert = function ( el ) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype = { + + constructor: Alert + + , close: function ( e ) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.trigger('close') + + e && e.preventDefault() + + $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) + + $parent.removeClass('in') + + function removeElement() { + $parent.remove() + $parent.trigger('closed') + } + + $.support.transition && $parent.hasClass('fade') ? + $parent.on($.support.transition.end, removeElement) : + removeElement() + } + + } + + + /* ALERT PLUGIN DEFINITION + * ======================= */ + + $.fn.alert = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('alert') + if (!data) $this.data('alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + /* ALERT DATA-API + * ============== */ + + $(function () { + $('body').on('click.alert.data-api', dismiss, Alert.prototype.close) + }) + +}( window.jQuery ) +/* ============================================================ + * bootstrap-button.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#buttons + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * 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( $ ){ + + "use strict" + + /* BUTTON PUBLIC CLASS DEFINITION + * ============================== */ + + var Button = function ( element, options ) { + this.$element = $(element) + this.options = $.extend({}, $.fn.button.defaults, options) + } + + Button.prototype = { + + constructor: Button + + , setState: function ( state ) { + var d = 'disabled' + , $el = this.$element + , data = $el.data() + , val = $el.is('input') ? 'val' : 'html' + + state = state + 'Text' + data.resetText || $el.data('resetText', $el[val]()) + + $el[val](data[state] || this.options[state]) + + // push to event loop to allow forms to submit + setTimeout(function () { + state == 'loadingText' ? + $el.addClass(d).attr(d, d) : + $el.removeClass(d).removeAttr(d) + }, 0) + } + + , toggle: function () { + var $parent = this.$element.parent('[data-toggle="buttons-radio"]') + + $parent && $parent + .find('.active') + .removeClass('active') + + this.$element.toggleClass('active') + } + + } + + + /* BUTTON PLUGIN DEFINITION + * ======================== */ + + $.fn.button = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('button') + , options = typeof option == 'object' && option + if (!data) $this.data('button', (data = new Button(this, options))) + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + $.fn.button.defaults = { + loadingText: 'loading...' + } + + $.fn.button.Constructor = Button + + + /* BUTTON DATA-API + * =============== */ + + $(function () { + $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) { + $(e.target).button('toggle') + }) + }) + +}( window.jQuery ) +/* ========================================================== + * bootstrap-carousel.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#carousel + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * 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( $ ){ + + "use strict" + + /* CAROUSEL CLASS DEFINITION + * ========================= */ + + var Carousel = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.carousel.defaults, options) + this.options.slide && this.slide(this.options.slide) + } + + Carousel.prototype = { + + cycle: function () { + this.interval = setInterval($.proxy(this.next, this), this.options.interval) + return this + } + + , to: function (pos) { + var $active = this.$element.find('.active') + , children = $active.parent().children() + , activePos = children.index($active) + , that = this + + if (pos > (children.length - 1) || pos < 0) return + + if (this.sliding) { + return this.$element.one('slid', function () { + that.to(pos) + }) + } + + if (activePos == pos) { + return this.pause().cycle() + } + + return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) + } + + , pause: function () { + clearInterval(this.interval) + return this + } + + , next: function () { + if (this.sliding) return + return this.slide('next') + } + + , prev: function () { + if (this.sliding) return + return this.slide('prev') + } + + , slide: function (type, next) { + var $active = this.$element.find('.active') + , $next = next || $active[type]() + , isCycling = this.interval + , direction = type == 'next' ? 'left' : 'right' + , fallback = type == 'next' ? 'first' : 'last' + , that = this + + this.sliding = true + + isCycling && this.pause() + + $next = $next.length ? $next : this.$element.find('.item')[fallback]() + + if (!$.support.transition && this.$element.hasClass('slide')) { + this.$element.trigger('slide') + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger('slid') + } else { + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + this.$element.trigger('slide') + this.$element.one($.support.transition.end, function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { that.$element.trigger('slid') }, 0) + }) + } + + isCycling && this.cycle() + + return this + } + + } + + + /* CAROUSEL PLUGIN DEFINITION + * ========================== */ + + $.fn.carousel = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('carousel') + , options = typeof option == 'object' && option + if (!data) $this.data('carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (typeof option == 'string' || (option = options.slide)) data[option]() + else data.cycle() + }) + } + + $.fn.carousel.defaults = { + interval: 5000 + } + + $.fn.carousel.Constructor = Carousel + + + /* CAROUSEL DATA-API + * ================= */ + + $(function () { + $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) + $target.carousel(options) + e.preventDefault() + }) + }) + +}( window.jQuery ) +/* ============================================================= + * bootstrap-collapse.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#collapse + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * 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( $ ){ + + "use strict" + + var Collapse = function ( element, options ) { + this.$element = $(element) + this.options = $.extend({}, $.fn.collapse.defaults, options) + + if (this.options["parent"]) { + this.$parent = $(this.options["parent"]) + } + + this.options.toggle && this.toggle() + } + + Collapse.prototype = { + + constructor: Collapse + + , dimension: function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + , show: function () { + var dimension = this.dimension() + , scroll = $.camelCase(['scroll', dimension].join('-')) + , actives = this.$parent && this.$parent.find('.in') + , hasData + + if (actives && actives.length) { + hasData = actives.data('collapse') + actives.collapse('hide') + hasData || actives.data('collapse', null) + } + + this.$element[dimension](0) + this.transition('addClass', 'show', 'shown') + this.$element[dimension](this.$element[0][scroll]) + + } + + , hide: function () { + var dimension = this.dimension() + this.reset(this.$element[dimension]()) + this.transition('removeClass', 'hide', 'hidden') + this.$element[dimension](0) + } + + , reset: function ( size ) { + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + [dimension](size || 'auto') + [0].offsetWidth + + this.$element.addClass('collapse') + } + + , transition: function ( method, startEvent, completeEvent ) { + var that = this + , complete = function () { + if (startEvent == 'show') that.reset() + that.$element.trigger(completeEvent) + } + + this.$element + .trigger(startEvent) + [method]('in') + + $.support.transition && this.$element.hasClass('collapse') ? + this.$element.one($.support.transition.end, complete) : + complete() + } + + , toggle: function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + } + + /* COLLAPSIBLE PLUGIN DEFINITION + * ============================== */ + + $.fn.collapse = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('collapse') + , options = typeof option == 'object' && option + if (!data) $this.data('collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.defaults = { + toggle: true + } + + $.fn.collapse.Constructor = Collapse + + + /* COLLAPSIBLE DATA-API + * ==================== */ + + $(function () { + $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) { + var $this = $(this), href + , target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + , option = $(target).data('collapse') ? 'toggle' : $this.data() + $(target).collapse(option) + }) + }) + +}( window.jQuery ) +/* ============================================================ + * bootstrap-dropdown.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * 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( $ ){ + + "use strict" + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = '[data-toggle="dropdown"]' + , Dropdown = function ( element ) { + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) + } + + Dropdown.prototype = { + + constructor: Dropdown + + , toggle: function ( e ) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + , isActive + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.length || ($parent = $this.parent()) + + isActive = $parent.hasClass('open') + + clearMenus() + !isActive && $parent.toggleClass('open') + + return false + } + + } + + function clearMenus() { + $(toggle).parent().removeClass('open') + } + + + /* DROPDOWN PLUGIN DEFINITION + * ========================== */ + + $.fn.dropdown = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('dropdown') + if (!data) $this.data('dropdown', (data = new Dropdown(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.dropdown.Constructor = Dropdown + + + /* APPLY TO STANDARD DROPDOWN ELEMENTS + * =================================== */ + + $(function () { + $('html').on('click.dropdown.data-api', clearMenus) + $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) + }) + +}( window.jQuery ) +/* ========================================================= + * bootstrap-modal.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#modals + * ========================================================= + * Copyright 2012 Twitter, Inc. + * + * 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( $ ){ + + "use strict" + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function ( content, options ) { + this.options = $.extend({}, $.fn.modal.defaults, options) + this.$element = $(content) + .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) + } + + Modal.prototype = { + + constructor: Modal + + , toggle: function () { + return this[!this.isShown ? 'show' : 'hide']() + } + + , show: function () { + var that = this + + if (this.isShown) return + + $('body').addClass('modal-open') + + this.isShown = true + this.$element.trigger('show') + + escape.call(this) + backdrop.call(this, function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + !that.$element.parent().length && that.$element.appendTo(document.body) //don't move modals dom position + + that.$element + .show() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element.addClass('in') + + transition ? + that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : + that.$element.trigger('shown') + + }) + } + + , hide: function ( e ) { + e && e.preventDefault() + + if (!this.isShown) return + + var that = this + this.isShown = false + + $('body').removeClass('modal-open') + + escape.call(this) + + this.$element + .trigger('hide') + .removeClass('in') + + $.support.transition && this.$element.hasClass('fade') ? + hideWithTransition.call(this) : + hideModal.call(this) + } + + } + + + /* MODAL PRIVATE METHODS + * ===================== */ + + function hideWithTransition() { + var that = this + , timeout = setTimeout(function () { + that.$element.off($.support.transition.end) + hideModal.call(that) + }, 500) + + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout) + hideModal.call(that) + }) + } + + function hideModal( that ) { + this.$element + .hide() + .trigger('hidden') + + backdrop.call(this) + } + + function backdrop( callback ) { + var that = this + , animate = this.$element.hasClass('fade') ? 'fade' : '' + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $('