├── README.md ├── composer.json ├── composer.lock ├── composer.phar ├── config ├── application.config.php └── autoload │ ├── .gitignore │ ├── README.md │ ├── global.php │ └── local.php.dist ├── data └── cache │ └── .gitignore ├── init_autoloader.php ├── module ├── Album │ ├── Module.php │ ├── autoload_classmap.php │ ├── config │ │ └── module.config.php │ ├── data │ │ └── album.sql │ ├── src │ │ └── Album │ │ │ ├── Controller │ │ │ └── AlbumController.php │ │ │ ├── Form │ │ │ └── AlbumForm.php │ │ │ └── Model │ │ │ ├── Album.php │ │ │ └── AlbumTable.php │ ├── test │ │ ├── AlbumTest │ │ │ ├── Controller │ │ │ │ └── AlbumControllerTest.php │ │ │ └── Model │ │ │ │ ├── AlbumTableTest.php │ │ │ │ └── AlbumTest.php │ │ ├── Bootstrap.php │ │ ├── TestConfig.php.dist │ │ └── phpunit.xml │ └── view │ │ └── album │ │ └── album │ │ ├── add.phtml │ │ ├── delete.phtml │ │ ├── edit.phtml │ │ └── index.phtml └── Application │ ├── Module.php │ ├── config │ └── module.config.php │ ├── language │ ├── ar_SY.mo │ ├── ar_SY.po │ ├── cs_CZ.mo │ ├── cs_CZ.po │ ├── de_DE.mo │ ├── de_DE.po │ ├── en_US.mo │ ├── en_US.mo.old │ ├── en_US.po │ ├── es_ES.mo │ ├── es_ES.po │ ├── fr_CA.mo │ ├── fr_CA.po │ ├── fr_FR.mo │ ├── fr_FR.po │ ├── ja_JP.mo │ ├── ja_JP.po │ ├── tr_TR.mo │ └── tr_TR.po │ ├── src │ └── Application │ │ └── Controller │ │ └── IndexController.php │ └── view │ ├── application │ └── index │ │ └── index.phtml │ ├── error │ ├── 404.phtml │ └── index.phtml │ └── layout │ ├── languages.phtml │ └── layout.phtml ├── public ├── .htaccess ├── css │ ├── bootstrap-responsive.min.css │ ├── bootstrap.min.css │ └── style.css ├── images │ ├── favicon.ico │ └── zf2-logo.png ├── index.php └── js │ ├── html5.js │ └── jquery-1.7.2.min.js └── vendor ├── .gitignore └── README.md /README.md: -------------------------------------------------------------------------------- 1 | ZF2 tutorial application 2 | 3 | > ## Repository abandoned 2019-12-05 4 | > 5 | > This repository is no longer maintained. 6 | 7 | See [http://akrabat.com/zend-framework-2-tutorial/](http://akrabat.com/zend-framework-2-tutorial/) -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "zendframework/zf2-tutorial", 3 | "description": "Tutorial Application for ZF2", 4 | "license": "BSD-3-Clause", 5 | "keywords": [ 6 | "framework", 7 | "zf2" 8 | ], 9 | "homepage": "http://framework.zend.com/", 10 | "require": { 11 | "php": ">=5.3.3", 12 | "zendframework/zendframework": "*" 13 | }, 14 | "require-dev": { 15 | "phpunit/phpunit": "~3.7" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "hash": "f0cef498553487d8cd23d83053667777", 3 | "packages": [ 4 | { 5 | "name": "zendframework/zendframework", 6 | "version": "2.0.6", 7 | "source": { 8 | "type": "git", 9 | "url": "git://github.com/zendframework/zf2.git", 10 | "reference": "release-2.0.6" 11 | }, 12 | "dist": { 13 | "type": "zip", 14 | "url": "https://github.com/zendframework/zf2/archive/release-2.0.6.zip", 15 | "reference": "release-2.0.6", 16 | "shasum": "" 17 | }, 18 | "require": { 19 | "php": ">=5.3.3" 20 | }, 21 | "replace": { 22 | "zendframework/zend-acl": "self.version", 23 | "zendframework/zend-authentication": "self.version", 24 | "zendframework/zend-barcode": "self.version", 25 | "zendframework/zend-cache": "self.version", 26 | "zendframework/zend-captcha": "self.version", 27 | "zendframework/zend-code": "self.version", 28 | "zendframework/zend-config": "self.version", 29 | "zendframework/zend-console": "self.version", 30 | "zendframework/zend-crypt": "self.version", 31 | "zendframework/zend-db": "self.version", 32 | "zendframework/zend-di": "self.version", 33 | "zendframework/zend-dom": "self.version", 34 | "zendframework/zend-escaper": "self.version", 35 | "zendframework/zend-eventmanager": "self.version", 36 | "zendframework/zend-feed": "self.version", 37 | "zendframework/zend-file": "self.version", 38 | "zendframework/zend-filter": "self.version", 39 | "zendframework/zend-form": "self.version", 40 | "zendframework/zend-http": "self.version", 41 | "zendframework/zend-i18n": "self.version", 42 | "zendframework/zend-inputfilter": "self.version", 43 | "zendframework/zend-json": "self.version", 44 | "zendframework/zend-ldap": "self.version", 45 | "zendframework/zend-loader": "self.version", 46 | "zendframework/zend-log": "self.version", 47 | "zendframework/zend-mail": "self.version", 48 | "zendframework/zend-markup": "self.version", 49 | "zendframework/zend-math": "self.version", 50 | "zendframework/zend-memory": "self.version", 51 | "zendframework/zend-mime": "self.version", 52 | "zendframework/zend-modulemanager": "self.version", 53 | "zendframework/zend-mvc": "self.version", 54 | "zendframework/zend-navigation": "self.version", 55 | "zendframework/zend-paginator": "self.version", 56 | "zendframework/zend-progressbar": "self.version", 57 | "zendframework/zend-serializer": "self.version", 58 | "zendframework/zend-server": "self.version", 59 | "zendframework/zend-servicemanager": "self.version", 60 | "zendframework/zend-session": "self.version", 61 | "zendframework/zend-soap": "self.version", 62 | "zendframework/zend-stdlib": "self.version", 63 | "zendframework/zend-tag": "self.version", 64 | "zendframework/zend-text": "self.version", 65 | "zendframework/zend-uri": "self.version", 66 | "zendframework/zend-validator": "self.version", 67 | "zendframework/zend-view": "self.version", 68 | "zendframework/zend-xmlrpc": "self.version" 69 | }, 70 | "require-dev": { 71 | "doctrine/common": ">=2.1", 72 | "phpunit/phpunit": "3.7.*" 73 | }, 74 | "suggest": { 75 | "doctrine/common": "Doctrine\\Common >=2.1 for annotation features", 76 | "ext-intl": "ext/intl for i18n features", 77 | "pecl-weakref": "Implementation of weak references for Zend\\Stdlib\\CallbackHandler", 78 | "zendframework/zendpdf": "ZendPdf for creating PDF representations of barcodes", 79 | "zendframework/zendservice-recaptcha": "ZendService\\ReCaptcha for rendering ReCaptchas in Zend\\Captcha and/or Zend\\Form" 80 | }, 81 | "time": "2012-12-19 21:14:25", 82 | "bin": [ 83 | "bin/classmap_generator.php" 84 | ], 85 | "type": "library", 86 | "extra": { 87 | "branch-alias": { 88 | "dev-master": "2.0-dev", 89 | "dev-develop": "2.1-dev" 90 | } 91 | }, 92 | "autoload": { 93 | "psr-0": { 94 | "Zend\\": "library/", 95 | "ZendTest\\": "tests/" 96 | } 97 | }, 98 | "notification-url": "https://packagist.org/downloads/", 99 | "license": [ 100 | "BSD-3-Clause" 101 | ], 102 | "description": "Zend Framework 2", 103 | "homepage": "http://framework.zend.com/", 104 | "keywords": [ 105 | "framework", 106 | "zf2" 107 | ] 108 | } 109 | ], 110 | "packages-dev": [ 111 | { 112 | "name": "phpunit/php-code-coverage", 113 | "version": "1.2.7", 114 | "source": { 115 | "type": "git", 116 | "url": "git://github.com/sebastianbergmann/php-code-coverage.git", 117 | "reference": "1.2.7" 118 | }, 119 | "dist": { 120 | "type": "zip", 121 | "url": "https://github.com/sebastianbergmann/php-code-coverage/archive/1.2.7.zip", 122 | "reference": "1.2.7", 123 | "shasum": "" 124 | }, 125 | "require": { 126 | "php": ">=5.3.3", 127 | "phpunit/php-file-iterator": ">=1.3.0@stable", 128 | "phpunit/php-token-stream": ">=1.1.3@stable", 129 | "phpunit/php-text-template": ">=1.1.1@stable" 130 | }, 131 | "suggest": { 132 | "ext-dom": "*", 133 | "ext-xdebug": ">=2.0.5" 134 | }, 135 | "time": "2012-12-02 14:54:55", 136 | "type": "library", 137 | "autoload": { 138 | "classmap": [ 139 | "PHP/" 140 | ] 141 | }, 142 | "notification-url": "https://packagist.org/downloads/", 143 | "include-path": [ 144 | "" 145 | ], 146 | "license": [ 147 | "BSD-3-Clause" 148 | ], 149 | "authors": [ 150 | { 151 | "name": "Sebastian Bergmann", 152 | "email": "sb@sebastian-bergmann.de", 153 | "role": "lead" 154 | } 155 | ], 156 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 157 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 158 | "keywords": [ 159 | "testing", 160 | "coverage", 161 | "xunit" 162 | ] 163 | }, 164 | { 165 | "name": "phpunit/php-file-iterator", 166 | "version": "1.3.3", 167 | "source": { 168 | "type": "git", 169 | "url": "git://github.com/sebastianbergmann/php-file-iterator.git", 170 | "reference": "1.3.3" 171 | }, 172 | "dist": { 173 | "type": "zip", 174 | "url": "https://github.com/sebastianbergmann/php-file-iterator/zipball/1.3.3", 175 | "reference": "1.3.3", 176 | "shasum": "" 177 | }, 178 | "require": { 179 | "php": ">=5.3.3" 180 | }, 181 | "time": "2012-10-11 04:44:38", 182 | "type": "library", 183 | "autoload": { 184 | "classmap": [ 185 | "File/" 186 | ] 187 | }, 188 | "notification-url": "https://packagist.org/downloads/", 189 | "include-path": [ 190 | "" 191 | ], 192 | "license": [ 193 | "BSD-3-Clause" 194 | ], 195 | "authors": [ 196 | { 197 | "name": "Sebastian Bergmann", 198 | "email": "sb@sebastian-bergmann.de", 199 | "role": "lead" 200 | } 201 | ], 202 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 203 | "homepage": "http://www.phpunit.de/", 204 | "keywords": [ 205 | "filesystem", 206 | "iterator" 207 | ] 208 | }, 209 | { 210 | "name": "phpunit/php-text-template", 211 | "version": "1.1.4", 212 | "source": { 213 | "type": "git", 214 | "url": "git://github.com/sebastianbergmann/php-text-template.git", 215 | "reference": "1.1.4" 216 | }, 217 | "dist": { 218 | "type": "zip", 219 | "url": "https://github.com/sebastianbergmann/php-text-template/zipball/1.1.4", 220 | "reference": "1.1.4", 221 | "shasum": "" 222 | }, 223 | "require": { 224 | "php": ">=5.3.3" 225 | }, 226 | "time": "2012-10-31 11:15:28", 227 | "type": "library", 228 | "autoload": { 229 | "classmap": [ 230 | "Text/" 231 | ] 232 | }, 233 | "notification-url": "https://packagist.org/downloads/", 234 | "include-path": [ 235 | "" 236 | ], 237 | "license": [ 238 | "BSD-3-Clause" 239 | ], 240 | "authors": [ 241 | { 242 | "name": "Sebastian Bergmann", 243 | "email": "sb@sebastian-bergmann.de", 244 | "role": "lead" 245 | } 246 | ], 247 | "description": "Simple template engine.", 248 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 249 | "keywords": [ 250 | "template" 251 | ] 252 | }, 253 | { 254 | "name": "phpunit/php-timer", 255 | "version": "1.0.4", 256 | "source": { 257 | "type": "git", 258 | "url": "git://github.com/sebastianbergmann/php-timer.git", 259 | "reference": "1.0.4" 260 | }, 261 | "dist": { 262 | "type": "zip", 263 | "url": "https://github.com/sebastianbergmann/php-timer/zipball/1.0.4", 264 | "reference": "1.0.4", 265 | "shasum": "" 266 | }, 267 | "require": { 268 | "php": ">=5.3.3" 269 | }, 270 | "time": "2012-10-11 04:45:58", 271 | "type": "library", 272 | "autoload": { 273 | "classmap": [ 274 | "PHP/" 275 | ] 276 | }, 277 | "notification-url": "https://packagist.org/downloads/", 278 | "include-path": [ 279 | "" 280 | ], 281 | "license": [ 282 | "BSD-3-Clause" 283 | ], 284 | "authors": [ 285 | { 286 | "name": "Sebastian Bergmann", 287 | "email": "sb@sebastian-bergmann.de", 288 | "role": "lead" 289 | } 290 | ], 291 | "description": "Utility class for timing", 292 | "homepage": "http://www.phpunit.de/", 293 | "keywords": [ 294 | "timer" 295 | ] 296 | }, 297 | { 298 | "name": "phpunit/php-token-stream", 299 | "version": "1.1.5", 300 | "source": { 301 | "type": "git", 302 | "url": "git://github.com/sebastianbergmann/php-token-stream.git", 303 | "reference": "1.1.5" 304 | }, 305 | "dist": { 306 | "type": "zip", 307 | "url": "https://github.com/sebastianbergmann/php-token-stream/zipball/1.1.5", 308 | "reference": "1.1.5", 309 | "shasum": "" 310 | }, 311 | "require": { 312 | "ext-tokenizer": "*", 313 | "php": ">=5.3.3" 314 | }, 315 | "time": "2012-10-11 04:47:14", 316 | "type": "library", 317 | "autoload": { 318 | "classmap": [ 319 | "PHP/" 320 | ] 321 | }, 322 | "notification-url": "https://packagist.org/downloads/", 323 | "include-path": [ 324 | "" 325 | ], 326 | "license": [ 327 | "BSD-3-Clause" 328 | ], 329 | "authors": [ 330 | { 331 | "name": "Sebastian Bergmann", 332 | "email": "sb@sebastian-bergmann.de", 333 | "role": "lead" 334 | } 335 | ], 336 | "description": "Wrapper around PHP's tokenizer extension.", 337 | "homepage": "http://www.phpunit.de/", 338 | "keywords": [ 339 | "tokenizer" 340 | ] 341 | }, 342 | { 343 | "name": "phpunit/phpunit", 344 | "version": "3.7.13", 345 | "source": { 346 | "type": "git", 347 | "url": "git://github.com/sebastianbergmann/phpunit.git", 348 | "reference": "3.7.13" 349 | }, 350 | "dist": { 351 | "type": "zip", 352 | "url": "https://github.com/sebastianbergmann/phpunit/archive/3.7.13.zip", 353 | "reference": "3.7.13", 354 | "shasum": "" 355 | }, 356 | "require": { 357 | "php": ">=5.3.3", 358 | "phpunit/php-file-iterator": ">=1.3.1", 359 | "phpunit/php-text-template": ">=1.1.1", 360 | "phpunit/php-code-coverage": ">=1.2.1", 361 | "phpunit/php-timer": ">=1.0.2", 362 | "phpunit/phpunit-mock-objects": ">=1.2.0,<1.3.0", 363 | "symfony/yaml": ">=2.1.0,<2.2.0", 364 | "ext-dom": "*", 365 | "ext-pcre": "*", 366 | "ext-reflection": "*", 367 | "ext-spl": "*" 368 | }, 369 | "suggest": { 370 | "phpunit/php-invoker": ">=1.1.0", 371 | "ext-json": "*", 372 | "ext-simplexml": "*", 373 | "ext-tokenizer": "*" 374 | }, 375 | "time": "2013-01-13 10:21:19", 376 | "bin": [ 377 | "composer/bin/phpunit" 378 | ], 379 | "type": "library", 380 | "extra": { 381 | "branch-alias": { 382 | "dev-master": "3.7.x-dev" 383 | } 384 | }, 385 | "autoload": { 386 | "classmap": [ 387 | "PHPUnit/" 388 | ] 389 | }, 390 | "notification-url": "https://packagist.org/downloads/", 391 | "include-path": [ 392 | "", 393 | "../../symfony/yaml/" 394 | ], 395 | "license": [ 396 | "BSD-3-Clause" 397 | ], 398 | "authors": [ 399 | { 400 | "name": "Sebastian Bergmann", 401 | "email": "sebastian@phpunit.de", 402 | "role": "lead" 403 | } 404 | ], 405 | "description": "The PHP Unit Testing framework.", 406 | "homepage": "http://www.phpunit.de/", 407 | "keywords": [ 408 | "testing", 409 | "phpunit", 410 | "xunit" 411 | ] 412 | }, 413 | { 414 | "name": "phpunit/phpunit-mock-objects", 415 | "version": "1.2.3", 416 | "source": { 417 | "type": "git", 418 | "url": "git://github.com/sebastianbergmann/phpunit-mock-objects.git", 419 | "reference": "1.2.3" 420 | }, 421 | "dist": { 422 | "type": "zip", 423 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects/archive/1.2.3.zip", 424 | "reference": "1.2.3", 425 | "shasum": "" 426 | }, 427 | "require": { 428 | "php": ">=5.3.3", 429 | "phpunit/php-text-template": ">=1.1.1@stable" 430 | }, 431 | "suggest": { 432 | "ext-soap": "*" 433 | }, 434 | "time": "2013-01-13 10:24:48", 435 | "type": "library", 436 | "autoload": { 437 | "classmap": [ 438 | "PHPUnit/" 439 | ] 440 | }, 441 | "notification-url": "https://packagist.org/downloads/", 442 | "include-path": [ 443 | "" 444 | ], 445 | "license": [ 446 | "BSD-3-Clause" 447 | ], 448 | "authors": [ 449 | { 450 | "name": "Sebastian Bergmann", 451 | "email": "sb@sebastian-bergmann.de", 452 | "role": "lead" 453 | } 454 | ], 455 | "description": "Mock Object library for PHPUnit", 456 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", 457 | "keywords": [ 458 | "mock", 459 | "xunit" 460 | ] 461 | }, 462 | { 463 | "name": "symfony/yaml", 464 | "version": "v2.1.7", 465 | "target-dir": "Symfony/Component/Yaml", 466 | "source": { 467 | "type": "git", 468 | "url": "https://github.com/symfony/Yaml", 469 | "reference": "v2.1.7" 470 | }, 471 | "dist": { 472 | "type": "zip", 473 | "url": "https://github.com/symfony/Yaml/archive/v2.1.7.zip", 474 | "reference": "v2.1.7", 475 | "shasum": "" 476 | }, 477 | "require": { 478 | "php": ">=5.3.3" 479 | }, 480 | "time": "2013-01-17 21:21:51", 481 | "type": "library", 482 | "autoload": { 483 | "psr-0": { 484 | "Symfony\\Component\\Yaml": "" 485 | } 486 | }, 487 | "notification-url": "https://packagist.org/downloads/", 488 | "license": [ 489 | "MIT" 490 | ], 491 | "authors": [ 492 | { 493 | "name": "Fabien Potencier", 494 | "email": "fabien@symfony.com" 495 | }, 496 | { 497 | "name": "Symfony Community", 498 | "homepage": "http://symfony.com/contributors" 499 | } 500 | ], 501 | "description": "Symfony Yaml Component", 502 | "homepage": "http://symfony.com" 503 | } 504 | ], 505 | "aliases": [ 506 | 507 | ], 508 | "minimum-stability": "stable", 509 | "stability-flags": [ 510 | 511 | ] 512 | } 513 | -------------------------------------------------------------------------------- /composer.phar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendframework/zf2-tutorial/02971f3a370830f271a4fd9b128399646c26442f/composer.phar -------------------------------------------------------------------------------- /config/application.config.php: -------------------------------------------------------------------------------- 1 | array( 4 | 'Application', 5 | 'Album', 6 | ), 7 | 'module_listener_options' => array( 8 | 'config_glob_paths' => array( 9 | 'config/autoload/{,*.}{global,local}.php', 10 | ), 11 | 'module_paths' => array( 12 | './module', 13 | './vendor', 14 | ), 15 | ), 16 | ); 17 | -------------------------------------------------------------------------------- /config/autoload/.gitignore: -------------------------------------------------------------------------------- 1 | local.php 2 | *.local.php 3 | -------------------------------------------------------------------------------- /config/autoload/README.md: -------------------------------------------------------------------------------- 1 | About this directory: 2 | ===================== 3 | 4 | By default, this application is configured to load all configs in 5 | `./config/autoload/{,*.}{global,local}.php`. Doing this provides a 6 | location for a developer to drop in configuration override files provided by 7 | modules, as well as cleanly provide individual, application-wide config files 8 | for things like database connections, etc. 9 | -------------------------------------------------------------------------------- /config/autoload/global.php: -------------------------------------------------------------------------------- 1 | array( 16 | 'factories' => array( 17 | 'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory', 18 | ), 19 | ), 20 | ); -------------------------------------------------------------------------------- /config/autoload/local.php.dist: -------------------------------------------------------------------------------- 1 | array( 16 | 'driver' => 'Pdo', 17 | 'dsn' => 'mysql:dbname=zf2tutorial;host=localhost', 18 | 'username' => 'rob', 19 | 'password' => '123456', 20 | 'driver_options' => array( 21 | PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'' 22 | ), 23 | ), 24 | ); 25 | -------------------------------------------------------------------------------- /data/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /init_autoloader.php: -------------------------------------------------------------------------------- 1 | add('Zend', $zf2Path . '/Zend'); 21 | } else { 22 | include $zf2Path . '/Zend/Loader/AutoloaderFactory.php'; 23 | Zend\Loader\AutoloaderFactory::factory(array( 24 | 'Zend\Loader\StandardAutoloader' => array( 25 | 'autoregister_zf' => true 26 | ) 27 | )); 28 | } 29 | } 30 | 31 | if (!class_exists('Zend\Loader\AutoloaderFactory')) { 32 | throw new RuntimeException('Unable to load ZF2. Run `php composer.phar install` or define a ZF2_PATH environment variable.'); 33 | } 34 | -------------------------------------------------------------------------------- /module/Album/Module.php: -------------------------------------------------------------------------------- 1 | array( 16 | __DIR__ . '/autoload_classmap.php', 17 | ), 18 | 'Zend\Loader\StandardAutoloader' => array( 19 | 'namespaces' => array( 20 | __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, 21 | ), 22 | ), 23 | ); 24 | } 25 | 26 | public function getServiceConfig() 27 | { 28 | return array( 29 | 'factories' => array( 30 | 'Album\Model\AlbumTable' => function($sm) { 31 | $tableGateway = $sm->get('AlbumTableGateway'); 32 | $table = new AlbumTable($tableGateway); 33 | return $table; 34 | }, 35 | 'AlbumTableGateway' => function ($sm) { 36 | $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); 37 | $resultSetPrototype = new ResultSet(); 38 | $resultSetPrototype->setArrayObjectPrototype(new Album()); 39 | return new TableGateway('album', $dbAdapter, null, $resultSetPrototype); 40 | }, 41 | ), 42 | ); 43 | } 44 | 45 | public function getConfig() 46 | { 47 | return include __DIR__ . '/config/module.config.php'; 48 | } 49 | } -------------------------------------------------------------------------------- /module/Album/autoload_classmap.php: -------------------------------------------------------------------------------- 1 | array( 4 | 'invokables' => array( 5 | 'Album\Controller\Album' => 'Album\Controller\AlbumController', 6 | ), 7 | ), 8 | // The following section is new and should be added to your file 9 | 'router' => array( 10 | 'routes' => array( 11 | 'album' => array( 12 | 'type' => 'segment', 13 | 'options' => array( 14 | 'route' => '/album[/:action][/:id]', 15 | 'constraints' => array( 16 | 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 17 | 'id' => '[0-9]+', 18 | ), 19 | 'defaults' => array( 20 | 'controller' => 'Album\Controller\Album', 21 | 'action' => 'index', 22 | ), 23 | ), 24 | ), 25 | ), 26 | ), 27 | 'view_manager' => array( 28 | 'template_path_stack' => array( 29 | 'album' => __DIR__ . '/../view', 30 | ), 31 | ), 32 | ); -------------------------------------------------------------------------------- /module/Album/data/album.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE album ( 2 | id int(11) NOT NULL auto_increment, 3 | artist varchar(100) NOT NULL, 4 | title varchar(100) NOT NULL, 5 | PRIMARY KEY (id) 6 | ); 7 | INSERT INTO album (artist, title) 8 | VALUES ('The Military Wives', 'In My Dreams'); 9 | INSERT INTO album (artist, title) 10 | VALUES ('Adele', '21'); 11 | INSERT INTO album (artist, title) 12 | VALUES ('Bruce Springsteen', 'Wrecking Ball (Deluxe)'); 13 | INSERT INTO album (artist, title) 14 | VALUES ('Lana Del Rey', 'Born To Die'); 15 | INSERT INTO album (artist, title) 16 | VALUES ('Gotye', 'Making Mirrors'); -------------------------------------------------------------------------------- /module/Album/src/Album/Controller/AlbumController.php: -------------------------------------------------------------------------------- 1 | $this->getAlbumTable()->fetchAll(), 18 | )); 19 | } 20 | 21 | public function addAction() 22 | { 23 | $form = new AlbumForm(); 24 | $form->get('submit')->setValue('Add'); 25 | 26 | $request = $this->getRequest(); 27 | if ($request->isPost()) { 28 | $album = new Album(); 29 | $form->setInputFilter($album->getInputFilter()); 30 | $form->setData($request->getPost()); 31 | 32 | if ($form->isValid()) { 33 | $album->exchangeArray($form->getData()); 34 | $this->getAlbumTable()->saveAlbum($album); 35 | 36 | // Redirect to list of albums 37 | return $this->redirect()->toRoute('album'); 38 | } 39 | } 40 | return array('form' => $form); 41 | } 42 | 43 | public function editAction() 44 | { 45 | $id = (int) $this->params()->fromRoute('id', 0); 46 | if (!$id) { 47 | return $this->redirect()->toRoute('album', array( 48 | 'action' => 'add' 49 | )); 50 | } 51 | $album = $this->getAlbumTable()->getAlbum($id); 52 | 53 | $form = new AlbumForm(); 54 | $form->bind($album); 55 | $form->get('submit')->setAttribute('value', 'Edit'); 56 | 57 | $request = $this->getRequest(); 58 | if ($request->isPost()) { 59 | $form->setInputFilter($album->getInputFilter()); 60 | $form->setData($request->getPost()); 61 | 62 | if ($form->isValid()) { 63 | $this->getAlbumTable()->saveAlbum($form->getData()); 64 | 65 | // Redirect to list of albums 66 | return $this->redirect()->toRoute('album'); 67 | } 68 | } 69 | 70 | return array( 71 | 'id' => $id, 72 | 'form' => $form, 73 | ); 74 | } 75 | 76 | public function deleteAction() 77 | { 78 | $id = (int) $this->params()->fromRoute('id', 0); 79 | if (!$id) { 80 | return $this->redirect()->toRoute('album'); 81 | } 82 | 83 | $request = $this->getRequest(); 84 | if ($request->isPost()) { 85 | $del = $request->getPost('del', 'No'); 86 | 87 | if ($del == 'Yes') { 88 | $id = (int) $request->getPost('id'); 89 | $this->getAlbumTable()->deleteAlbum($id); 90 | } 91 | 92 | // Redirect to list of albums 93 | return $this->redirect()->toRoute('album'); 94 | } 95 | 96 | return array( 97 | 'id' => $id, 98 | 'album' => $this->getAlbumTable()->getAlbum($id) 99 | ); 100 | } 101 | 102 | public function getAlbumTable() 103 | { 104 | if (!$this->albumTable) { 105 | $sm = $this->getServiceLocator(); 106 | $this->albumTable = $sm->get('Album\Model\AlbumTable'); 107 | } 108 | return $this->albumTable; 109 | } 110 | } -------------------------------------------------------------------------------- /module/Album/src/Album/Form/AlbumForm.php: -------------------------------------------------------------------------------- 1 | setAttribute('method', 'post'); 14 | $this->add(array( 15 | 'name' => 'id', 16 | 'attributes' => array( 17 | 'type' => 'hidden', 18 | ), 19 | )); 20 | $this->add(array( 21 | 'name' => 'artist', 22 | 'attributes' => array( 23 | 'type' => 'text', 24 | ), 25 | 'options' => array( 26 | 'label' => 'Artist', 27 | ), 28 | )); 29 | $this->add(array( 30 | 'name' => 'title', 31 | 'attributes' => array( 32 | 'type' => 'text', 33 | ), 34 | 'options' => array( 35 | 'label' => 'Title', 36 | ), 37 | )); 38 | $this->add(array( 39 | 'name' => 'submit', 40 | 'attributes' => array( 41 | 'type' => 'submit', 42 | 'value' => 'Go', 43 | 'id' => 'submitbutton', 44 | ), 45 | )); 46 | } 47 | } -------------------------------------------------------------------------------- /module/Album/src/Album/Model/Album.php: -------------------------------------------------------------------------------- 1 | id = (isset($data['id'])) ? $data['id'] : null; 20 | $this->artist = (isset($data['artist'])) ? $data['artist'] : null; 21 | $this->title = (isset($data['title'])) ? $data['title'] : null; 22 | } 23 | 24 | // Add the following method: 25 | public function getArrayCopy() 26 | { 27 | return get_object_vars($this); 28 | } 29 | 30 | public function setInputFilter(InputFilterInterface $inputFilter) 31 | { 32 | throw new \Exception("Not used"); 33 | } 34 | 35 | public function getInputFilter() 36 | { 37 | if (!$this->inputFilter) { 38 | $inputFilter = new InputFilter(); 39 | $factory = new InputFactory(); 40 | 41 | $inputFilter->add($factory->createInput(array( 42 | 'name' => 'id', 43 | 'required' => true, 44 | 'filters' => array( 45 | array('name' => 'Int'), 46 | ), 47 | ))); 48 | 49 | $inputFilter->add($factory->createInput(array( 50 | 'name' => 'artist', 51 | 'required' => true, 52 | 'filters' => array( 53 | array('name' => 'StripTags'), 54 | array('name' => 'StringTrim'), 55 | ), 56 | 'validators' => array( 57 | array( 58 | 'name' => 'StringLength', 59 | 'options' => array( 60 | 'encoding' => 'UTF-8', 61 | 'min' => 1, 62 | 'max' => 100, 63 | ), 64 | ), 65 | ), 66 | ))); 67 | 68 | $inputFilter->add($factory->createInput(array( 69 | 'name' => 'title', 70 | 'required' => true, 71 | 'filters' => array( 72 | array('name' => 'StripTags'), 73 | array('name' => 'StringTrim'), 74 | ), 75 | 'validators' => array( 76 | array( 77 | 'name' => 'StringLength', 78 | 'options' => array( 79 | 'encoding' => 'UTF-8', 80 | 'min' => 1, 81 | 'max' => 100, 82 | ), 83 | ), 84 | ), 85 | ))); 86 | 87 | $this->inputFilter = $inputFilter; 88 | } 89 | 90 | return $this->inputFilter; 91 | } 92 | } -------------------------------------------------------------------------------- /module/Album/src/Album/Model/AlbumTable.php: -------------------------------------------------------------------------------- 1 | tableGateway = $tableGateway; 14 | } 15 | 16 | public function fetchAll() 17 | { 18 | $resultSet = $this->tableGateway->select(); 19 | return $resultSet; 20 | } 21 | 22 | public function getAlbum($id) 23 | { 24 | $id = (int) $id; 25 | $rowset = $this->tableGateway->select(array('id' => $id)); 26 | $row = $rowset->current(); 27 | if (!$row) { 28 | throw new \Exception("Could not find row $id"); 29 | } 30 | return $row; 31 | } 32 | 33 | public function saveAlbum(Album $album) 34 | { 35 | $data = array( 36 | 'artist' => $album->artist, 37 | 'title' => $album->title, 38 | ); 39 | 40 | $id = (int)$album->id; 41 | if ($id == 0) { 42 | $this->tableGateway->insert($data); 43 | } else { 44 | if ($this->getAlbum($id)) { 45 | $this->tableGateway->update($data, array('id' => $id)); 46 | } else { 47 | throw new \Exception('Form id does not exist'); 48 | } 49 | } 50 | } 51 | 52 | public function deleteAlbum($id) 53 | { 54 | $this->tableGateway->delete(array('id' => $id)); 55 | } 56 | } -------------------------------------------------------------------------------- /module/Album/test/AlbumTest/Controller/AlbumControllerTest.php: -------------------------------------------------------------------------------- 1 | controller = new AlbumController(); 27 | $this->request = new Request(); 28 | $this->routeMatch = new RouteMatch(array('controller' => 'index')); 29 | $this->event = new MvcEvent(); 30 | 31 | $config = $serviceManager->get('Config'); 32 | $routerConfig = isset($config['router']) ? $config['router'] : array(); 33 | $router = HttpRouter::factory($routerConfig); 34 | 35 | $this->event->setRouter($router); 36 | $this->event->setRouteMatch($this->routeMatch); 37 | $this->controller->setEvent($this->event); 38 | $this->controller->setServiceLocator($serviceManager); 39 | } 40 | 41 | public function testAddActionCanBeAccessed() 42 | { 43 | $this->routeMatch->setParam('action', 'add'); 44 | 45 | $result = $this->controller->dispatch($this->request); 46 | $response = $this->controller->getResponse(); 47 | 48 | $this->assertEquals(200, $response->getStatusCode()); 49 | } 50 | 51 | public function testDeleteActionCanBeAccessed() 52 | { 53 | $this->routeMatch->setParam('action', 'delete'); 54 | $this->routeMatch->setParam('id', '1'); 55 | 56 | $result = $this->controller->dispatch($this->request); 57 | $response = $this->controller->getResponse(); 58 | 59 | $this->assertEquals(200, $response->getStatusCode()); 60 | } 61 | 62 | public function testDeleteActionRedirect() 63 | { 64 | $this->routeMatch->setParam('action', 'delete'); 65 | 66 | $result = $this->controller->dispatch($this->request); 67 | $response = $this->controller->getResponse(); 68 | 69 | $this->assertEquals(302, $response->getStatusCode()); 70 | } 71 | 72 | public function testEditActionCanBeAccessed() 73 | { 74 | $this->routeMatch->setParam('action', 'edit'); 75 | $this->routeMatch->setParam('id', '1');//Add this Row 76 | 77 | $result = $this->controller->dispatch($this->request); 78 | $response = $this->controller->getResponse(); 79 | 80 | $this->assertEquals(200, $response->getStatusCode()); 81 | } 82 | 83 | public function testEditActionRedirect() 84 | { 85 | $this->routeMatch->setParam('action', 'edit'); 86 | 87 | $result = $this->controller->dispatch($this->request); 88 | $response = $this->controller->getResponse(); 89 | 90 | $this->assertEquals(302, $response->getStatusCode()); 91 | } 92 | 93 | public function testIndexActionCanBeAccessed() 94 | { 95 | $this->routeMatch->setParam('action', 'index'); 96 | 97 | $result = $this->controller->dispatch($this->request); 98 | $response = $this->controller->getResponse(); 99 | 100 | $this->assertEquals(200, $response->getStatusCode()); 101 | } 102 | 103 | public function testGetAlbumTableReturnsAnInstanceOfAlbumTable() 104 | { 105 | $this->assertInstanceOf('Album\Model\AlbumTable', $this->controller->getAlbumTable()); 106 | } 107 | } -------------------------------------------------------------------------------- /module/Album/test/AlbumTest/Model/AlbumTableTest.php: -------------------------------------------------------------------------------- 1 | getMock('Zend\Db\TableGateway\TableGateway', 14 | array('select'), array(), '', false); 15 | $mockTableGateway->expects($this->once()) 16 | ->method('select') 17 | ->with() 18 | ->will($this->returnValue($resultSet)); 19 | 20 | $albumTable = new AlbumTable($mockTableGateway); 21 | 22 | $this->assertSame($resultSet, $albumTable->fetchAll()); 23 | } 24 | public function testCanRetrieveAnAlbumByItsId() 25 | { 26 | $album = new Album(); 27 | $album->exchangeArray(array('id' => 123, 28 | 'artist' => 'The Military Wives', 29 | 'title' => 'In My Dreams')); 30 | 31 | $resultSet = new ResultSet(); 32 | $resultSet->setArrayObjectPrototype(new Album()); 33 | $resultSet->initialize(array($album)); 34 | 35 | $mockTableGateway = $this->getMock('Zend\Db\TableGateway\TableGateway', array('select'), array(), '', false); 36 | $mockTableGateway->expects($this->once()) 37 | ->method('select') 38 | ->with(array('id' => 123)) 39 | ->will($this->returnValue($resultSet)); 40 | 41 | $albumTable = new AlbumTable($mockTableGateway); 42 | 43 | $this->assertSame($album, $albumTable->getAlbum(123)); 44 | } 45 | 46 | public function testCanDeleteAnAlbumByItsId() 47 | { 48 | $mockTableGateway = $this->getMock('Zend\Db\TableGateway\TableGateway', array('delete'), array(), '', false); 49 | $mockTableGateway->expects($this->once()) 50 | ->method('delete') 51 | ->with(array('id' => 123)); 52 | 53 | $albumTable = new AlbumTable($mockTableGateway); 54 | $albumTable->deleteAlbum(123); 55 | } 56 | 57 | public function testSaveAlbumWillInsertNewAlbumsIfTheyDontAlreadyHaveAnId() 58 | { 59 | $albumData = array('artist' => 'The Military Wives', 'title' => 'In My Dreams'); 60 | $album = new Album(); 61 | $album->exchangeArray($albumData); 62 | 63 | $mockTableGateway = $this->getMock('Zend\Db\TableGateway\TableGateway', array('insert'), array(), '', false); 64 | $mockTableGateway->expects($this->once()) 65 | ->method('insert') 66 | ->with($albumData); 67 | 68 | $albumTable = new AlbumTable($mockTableGateway); 69 | $albumTable->saveAlbum($album); 70 | } 71 | 72 | public function testSaveAlbumWillUpdateExistingAlbumsIfTheyAlreadyHaveAnId() 73 | { 74 | $albumData = array('id' => 123, 'artist' => 'The Military Wives', 'title' => 'In My Dreams'); 75 | $album = new Album(); 76 | $album->exchangeArray($albumData); 77 | 78 | $resultSet = new ResultSet(); 79 | $resultSet->setArrayObjectPrototype(new Album()); 80 | $resultSet->initialize(array($album)); 81 | 82 | $mockTableGateway = $this->getMock('Zend\Db\TableGateway\TableGateway', 83 | array('select', 'update'), array(), '', false); 84 | $mockTableGateway->expects($this->once()) 85 | ->method('select') 86 | ->with(array('id' => 123)) 87 | ->will($this->returnValue($resultSet)); 88 | $mockTableGateway->expects($this->once()) 89 | ->method('update') 90 | ->with(array('artist' => 'The Military Wives', 'title' => 'In My Dreams'), 91 | array('id' => 123)); 92 | 93 | $albumTable = new AlbumTable($mockTableGateway); 94 | $albumTable->saveAlbum($album); 95 | } 96 | 97 | public function testExceptionIsThrownWhenGettingNonexistentAlbum() 98 | { 99 | $resultSet = new ResultSet(); 100 | $resultSet->setArrayObjectPrototype(new Album()); 101 | $resultSet->initialize(array()); 102 | 103 | $mockTableGateway = $this->getMock('Zend\Db\TableGateway\TableGateway', array('select'), array(), '', false); 104 | $mockTableGateway->expects($this->once()) 105 | ->method('select') 106 | ->with(array('id' => 123)) 107 | ->will($this->returnValue($resultSet)); 108 | 109 | $albumTable = new AlbumTable($mockTableGateway); 110 | 111 | try 112 | { 113 | $albumTable->getAlbum(123); 114 | } 115 | catch (\Exception $e) 116 | { 117 | $this->assertSame('Could not find row 123', $e->getMessage()); 118 | return; 119 | } 120 | 121 | $this->fail('Expected exception was not thrown'); 122 | } 123 | } -------------------------------------------------------------------------------- /module/Album/test/AlbumTest/Model/AlbumTest.php: -------------------------------------------------------------------------------- 1 | assertNull($album->artist, '"artist" should initially be null'); 16 | $this->assertNull($album->id, '"id" should initially be null'); 17 | $this->assertNull($album->title, '"title" should initially be null'); 18 | } 19 | 20 | public function testExchangeArraySetsPropertiesCorrectly() 21 | { 22 | $album = new Album(); 23 | $data = array('artist' => 'some artist', 24 | 'id' => 123, 25 | 'title' => 'some title'); 26 | 27 | $album->exchangeArray($data); 28 | 29 | $this->assertSame($data['artist'], $album->artist, '"artist" was not set correctly'); 30 | $this->assertSame($data['id'], $album->id, '"title" was not set correctly'); 31 | $this->assertSame($data['title'], $album->title, '"title" was not set correctly'); 32 | } 33 | 34 | public function testExchangeArraySetsPropertiesToNullIfKeysAreNotPresent() 35 | { 36 | $album = new Album(); 37 | 38 | $album->exchangeArray(array('artist' => 'some artist', 39 | 'id' => 123, 40 | 'title' => 'some title')); 41 | $album->exchangeArray(array()); 42 | 43 | $this->assertNull($album->artist, '"artist" should have defaulted to null'); 44 | $this->assertNull($album->id, '"title" should have defaulted to null'); 45 | $this->assertNull($album->title, '"title" should have defaulted to null'); 46 | } 47 | } -------------------------------------------------------------------------------- /module/Album/test/Bootstrap.php: -------------------------------------------------------------------------------- 1 | array( 47 | 'module_paths' => explode(PATH_SEPARATOR, $zf2ModulePaths), 48 | ), 49 | ); 50 | 51 | $config = ArrayUtils::merge($baseConfig, $testConfig); 52 | 53 | $serviceManager = new ServiceManager(new ServiceManagerConfig()); 54 | $serviceManager->setService('ApplicationConfig', $config); 55 | $serviceManager->get('ModuleManager')->loadModules(); 56 | 57 | static::$serviceManager = $serviceManager; 58 | static::$config = $config; 59 | } 60 | 61 | public static function getServiceManager() 62 | { 63 | return static::$serviceManager; 64 | } 65 | 66 | public static function getConfig() 67 | { 68 | return static::$config; 69 | } 70 | 71 | 72 | 73 | protected static function initAutoloader() 74 | { 75 | $vendorPath = static::findParentPath('vendor'); 76 | 77 | if (is_readable($vendorPath . '/autoload.php')) { 78 | $loader = include $vendorPath . '/autoload.php'; 79 | } else { 80 | $zf2Path = getenv('ZF2_PATH') ?: (defined('ZF2_PATH') ? ZF2_PATH : (is_dir($vendorPath . '/ZF2/library') ? $vendorPath . '/ZF2/library' : false)); 81 | 82 | if (!$zf2Path) { 83 | throw new RuntimeException('Unable to load ZF2. Run `php composer.phar install` or define a ZF2_PATH environment variable.'); 84 | } 85 | 86 | include $zf2Path . '/Zend/Loader/AutoloaderFactory.php'; 87 | 88 | } 89 | 90 | AutoloaderFactory::factory(array( 91 | 'Zend\Loader\StandardAutoloader' => array( 92 | 'autoregister_zf' => true, 93 | 'namespaces' => array( 94 | __NAMESPACE__ => __DIR__ . '/' . __NAMESPACE__, 95 | ), 96 | ), 97 | )); 98 | } 99 | 100 | protected static function findParentPath($path) 101 | { 102 | $dir = __DIR__; 103 | $previousDir = '.'; 104 | while (!is_dir($dir . '/' . $path)) { 105 | $dir = dirname($dir); 106 | if ($previousDir === $dir) return false; 107 | $previousDir = $dir; 108 | } 109 | return $dir . '/' . $path; 110 | } 111 | } 112 | 113 | Bootstrap::init(); -------------------------------------------------------------------------------- /module/Album/test/TestConfig.php.dist: -------------------------------------------------------------------------------- 1 | array( 4 | 'Album', 5 | ), 6 | 'module_listener_options' => array( 7 | 'config_glob_paths' => array( 8 | '../../../config/autoload/{,*.}{global,local}.php', 9 | ), 10 | 'module_paths' => array( 11 | 'module', 12 | 'vendor', 13 | ), 14 | ), 15 | ); -------------------------------------------------------------------------------- /module/Album/test/phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | ./ 7 | 8 | 9 | -------------------------------------------------------------------------------- /module/Album/view/album/album/add.phtml: -------------------------------------------------------------------------------- 1 | headTitle($title); 6 | ?> 7 |

escapeHtml($title); ?>

8 | form; 10 | $form->setAttribute('action', $this->url('album', array('action' => 'add'))); 11 | $form->prepare(); 12 | 13 | echo $this->form()->openTag($form); 14 | echo $this->formCollection($form); 15 | echo $this->form()->closeTag(); -------------------------------------------------------------------------------- /module/Album/view/album/album/delete.phtml: -------------------------------------------------------------------------------- 1 | headTitle($title); 6 | ?> 7 |

escapeHtml($title); ?>

8 | 9 |

Are you sure that you want to delete 10 | 'escapeHtml($album->title); ?>' by 11 | 'escapeHtml($album->artist); ?>'? 12 |

13 | url('album', array( 15 | 'action' => 'delete', 16 | 'id' => $this->id, 17 | )); 18 | ?> 19 |
20 |
21 | 22 | 23 | 24 |
25 |
-------------------------------------------------------------------------------- /module/Album/view/album/album/edit.phtml: -------------------------------------------------------------------------------- 1 | headTitle($title); 6 | ?> 7 |

escapeHtml($title); ?>

8 | 9 | form; 11 | $form->setAttribute('action', $this->url( 12 | 'album', 13 | array( 14 | 'action' => 'edit', 15 | 'id' => $this->id, 16 | ) 17 | )); 18 | $form->prepare(); 19 | 20 | echo $this->form()->openTag($form); 21 | echo $this->formHidden($form->get('id')); 22 | echo $this->formRow($form->get('title')); 23 | echo $this->formRow($form->get('artist')); 24 | echo $this->formSubmit($form->get('submit')); 25 | echo $this->form()->closeTag(); -------------------------------------------------------------------------------- /module/Album/view/album/album/index.phtml: -------------------------------------------------------------------------------- 1 | headTitle($title); 6 | ?> 7 |

escapeHtml($title); ?>

8 |

9 | Add new album 10 |

11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 28 | 29 | 30 |
TitleArtist 
escapeHtml($album->title);?>escapeHtml($album->artist);?> 23 | Edit 25 | Delete 27 |
-------------------------------------------------------------------------------- /module/Application/Module.php: -------------------------------------------------------------------------------- 1 | getApplication()->getServiceManager()->get('session'); 12 | if (isset($session->lang)) { 13 | $translator = $e->getApplication()->getServiceManager()->get('translator'); 14 | $translator->setLocale($session->lang); 15 | 16 | $viewModel = $e->getViewModel(); 17 | $viewModel->lang = str_replace('_', '-', $session->lang); 18 | } 19 | $eventManager = $e->getApplication()->getEventManager(); 20 | 21 | $eventManager->attach('route', function ($e) { 22 | $lang = $e->getRouteMatch()->getParam('lang'); 23 | 24 | // If there is no lang parameter in the route, nothing to do 25 | if (empty($lang)) { 26 | return; 27 | } 28 | 29 | $services = $e->getApplication()->getServiceManager(); 30 | 31 | // If the session language is the same, nothing to do 32 | $session = $services->get('session'); 33 | if (isset($session->lang) && ($session->lang == $lang)) { 34 | return; 35 | } 36 | 37 | $viewModel = $e->getViewModel(); 38 | $translator = $services->get('translator'); 39 | 40 | $viewModel->lang = $lang; 41 | $lang = str_replace('-', '_', $lang); 42 | $translator->setLocale($lang); 43 | $session->lang = $lang; 44 | }, -10); 45 | 46 | $moduleRouteListener = new ModuleRouteListener(); 47 | $moduleRouteListener->attach($eventManager); 48 | } 49 | 50 | public function getConfig() 51 | { 52 | return include __DIR__ . '/config/module.config.php'; 53 | } 54 | 55 | public function getAutoloaderConfig() 56 | { 57 | return array( 58 | 'Zend\Loader\StandardAutoloader' => array( 59 | 'namespaces' => array( 60 | __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, 61 | ), 62 | ), 63 | ); 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /module/Application/config/module.config.php: -------------------------------------------------------------------------------- 1 | array( 4 | 'routes' => array( 5 | 'home' => array( 6 | 'type' => 'Zend\Mvc\Router\Http\Segment', 7 | 'options' => array( 8 | 'route' => '/[:lang]', 9 | 'constraints' => array( 10 | 'lang' => '[a-z]{2}(-[A-Z]{2}){0,1}' 11 | ), 12 | 'defaults' => array( 13 | 'controller' => 'Album\Controller\Album', 14 | 'action' => 'index' 15 | ), 16 | ), 17 | ), 18 | // The following is a route to simplify getting started creating 19 | // new controllers and actions without needing to create a new 20 | // module. Simply drop new controllers in, and you can access them 21 | // using the path /application/:controller/:action 22 | 'application' => array( 23 | 'type' => 'Segment', 24 | 'options' => array( 25 | 'route' => '[/:lang]/application', 26 | 'constraints' => array( 27 | 'lang' => '[a-z]{2}(-[A-Z]{2}){0,1}' 28 | ), 29 | 'defaults' => array( 30 | '__NAMESPACE__' => 'Application\Controller', 31 | 'controller' => 'Index', 32 | 'action' => 'index', 33 | ), 34 | ), 35 | 'may_terminate' => true, 36 | 'child_routes' => array( 37 | 'default' => array( 38 | 'type' => 'Segment', 39 | 'options' => array( 40 | 'route' => '[/:controller[/:action]]', 41 | 'constraints' => array( 42 | 'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 43 | 'action' => '[a-zA-Z][a-zA-Z0-9_-]*' 44 | ), 45 | 'defaults' => array( 46 | ), 47 | ), 48 | ), 49 | ), 50 | ), 51 | ), 52 | ), 53 | 'service_manager' => array( 54 | 'factories' => array( 55 | 'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory', 56 | ), 57 | 'services' => array( 58 | 'session' => new Zend\Session\Container('zf2tutorial'), 59 | ), 60 | ), 61 | 'translator' => array( 62 | 'locale' => 'en_US', 63 | 'translation_file_patterns' => array( 64 | array( 65 | 'type' => 'gettext', 66 | 'base_dir' => __DIR__ . '/../language', 67 | 'pattern' => '%s.mo', 68 | ), 69 | ), 70 | ), 71 | 'controllers' => array( 72 | 'invokables' => array( 73 | 'Application\Controller\Index' => 'Application\Controller\IndexController' 74 | ), 75 | ), 76 | 'view_manager' => array( 77 | 'display_not_found_reason' => true, 78 | 'display_exceptions' => true, 79 | 'doctype' => 'HTML5', 80 | 'not_found_template' => 'error/404', 81 | 'exception_template' => 'error/index', 82 | 'template_map' => array( 83 | 'layout/layout' => __DIR__ . '/../view/layout/layout.phtml', 84 | 'application/index/index' => __DIR__ . '/../view/application/index/index.phtml', 85 | 'error/404' => __DIR__ . '/../view/error/404.phtml', 86 | 'error/index' => __DIR__ . '/../view/error/index.phtml', 87 | ), 88 | 'template_path_stack' => array( 89 | __DIR__ . '/../view', 90 | ), 91 | ), 92 | ); 93 | -------------------------------------------------------------------------------- /module/Application/language/ar_SY.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendframework/zf2-tutorial/02971f3a370830f271a4fd9b128399646c26442f/module/Application/language/ar_SY.mo -------------------------------------------------------------------------------- /module/Application/language/ar_SY.po: -------------------------------------------------------------------------------- 1 | # 2 | # tawfek daghistani , 2012. 3 | # Tawfek Daghistani , 2012. 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: ZendSkeletonApplication\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "POT-Creation-Date: 2012-07-05 22:17-0700\n" 10 | "PO-Revision-Date: 2012-07-07 13:58+0300\n" 11 | "Last-Translator: Tawfek Daghistani \n" 12 | "Language-Team: Arabic <>\n" 13 | "Language: \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Poedit-KeywordsList: translate\n" 18 | "X-Poedit-Language: English\n" 19 | "X-Poedit-Country: UNITED STATES\n" 20 | "X-Poedit-Basepath: .\n" 21 | "X-Poedit-SearchPath-0: ..\n" 22 | "Plural-Forms: nplurals=2; plural=(n!=1);\n" 23 | 24 | #: ../view/layout/layout.phtml:6 ../view/layout/layout.phtml:33 25 | msgid "Skeleton Application" 26 | msgstr "Skeleton Application" 27 | 28 | #: ../view/layout/layout.phtml:36 29 | msgid "Home" 30 | msgstr "الصفحة الرئيسية" 31 | 32 | #: ../view/layout/layout.phtml:50 33 | msgid "All rights reserved." 34 | msgstr "جميع الحقوق محفوظة" 35 | 36 | #: ../view/application/index/index.phtml:2 37 | #, php-format 38 | msgid "Welcome to %sZend Framework 2%s" 39 | msgstr "أهلا بك في %sZend Framework 2%s" 40 | 41 | #: ../view/application/index/index.phtml:3 42 | #, php-format 43 | msgid "" 44 | "Congratulations! You have successfully installed the %sZF2 Skeleton " 45 | "Application%s. You are currently running Zend Framework version %s. This " 46 | "skeleton can serve as a simple starting point for you to begin building your " 47 | "application on ZF2." 48 | msgstr "" 49 | "تهانينا! لقد قمت بتنصيب %sZF2 Skeleton Application%s . أنت الآن تستخدم مكتبة " 50 | "زيند الإصدار %s . هذا التطبيق يمكن أن يكون لك نقطة بداية سهلة في بناء " 51 | "برامجك الخاصة على مكتبة زيند " 52 | 53 | #: ../view/application/index/index.phtml:4 54 | msgid "Fork Zend Framework 2 on GitHub" 55 | msgstr "اشتق مكتبة زيند على GitHub " 56 | 57 | #: ../view/application/index/index.phtml:10 58 | msgid "Follow Development" 59 | msgstr "تابع أخر التطورات" 60 | 61 | #: ../view/application/index/index.phtml:11 62 | #, php-format 63 | msgid "" 64 | "Zend Framework 2 is under active development. If you are interested in " 65 | "following the development of ZF2, there is a special ZF2 portal on the " 66 | "official Zend Framework webiste which provides links to the ZF2 %swiki%s, " 67 | "%sdev blog%s, %sissue tracker%s, and much more. This is a great resource for " 68 | "staying up to date with the latest developments!" 69 | msgstr "" 70 | "مكتبة زيند تخضع للتطوير المستمر , إذا كان لديك الرغبة في متابعة التطورات , " 71 | "بإمكانك تصفح الموقع الرسمي للمكتبة الذي يحتوي على روابط إلى %swiki%s, %sdev " 72 | "blog%s, %sissue tracker%s, ,و المزيد . هذه مصادر رائعة لمتابعة أخر التطورات" 73 | 74 | #: ../view/application/index/index.phtml:12 75 | msgid "ZF2 Development Portal" 76 | msgstr "بوابة التطوير الخاصة ب زيند" 77 | 78 | #: ../view/application/index/index.phtml:16 79 | msgid "Discover Modules" 80 | msgstr "تعرف على الإضافات" 81 | 82 | #: ../view/application/index/index.phtml:17 83 | #, php-format 84 | msgid "" 85 | "The community is working on developing a community site to serve as a " 86 | "repository and gallery for ZF2 modules. The project is available %son GitHub" 87 | "%s. The site is currently live and currently contains a list of some of the " 88 | "modules already available for ZF2." 89 | msgstr "" 90 | "المجتمع البرمجي يعمل على تطوير موقع خاص به ليكون كمصدر و معرض لإضافات ZF2 . " 91 | "هذا المشروع موجود على %son GitHub%s . هذا الموقع يخضع للتطوير المستمر و " 92 | "يحتوي على قائمة من الإضافات الخاصة ب ZF2 " 93 | 94 | #: ../view/application/index/index.phtml:18 95 | msgid "Explore ZF2 Modules" 96 | msgstr "إكتشف إضافات ZF2 " 97 | 98 | #: ../view/application/index/index.phtml:22 99 | msgid "Help & Support" 100 | msgstr "الدعم و المساعدة " 101 | 102 | #: ../view/application/index/index.phtml:23 103 | #, php-format 104 | msgid "" 105 | "If you need any help or support while developing with ZF2, you may reach us " 106 | "via IRC: %s#zftalk.2 on Freenode%s. We'd love to hear any questions or " 107 | "feedback you may have regarding the beta releases. Alternatively, you may " 108 | "subscribe and post questions to the %smailing lists%s." 109 | msgstr "" 110 | "إذا كنت تريد الحصول على دعم فني أو مساعدة في تطوير ZF2 , بإمكانك التواصل عبر " 111 | "IRC: %s#zftalk.2 on Freenode%s. نحن نريد أن نسمع منك المزيد من الأسئلة , " 112 | "الأراء و الملاحظات على النسخة التجربية من المكتبة , أو بإمكانك الإشتراك و " 113 | "التفاعل أو وضع الأسئلة في القائمة البريدية %smailing lists%s." 114 | 115 | #: ../view/application/index/index.phtml:24 116 | msgid "Ping us on IRC" 117 | msgstr "تواصل معنا في IRC" 118 | 119 | #: ../view/error/index.phtml:1 120 | msgid "An error occurred" 121 | msgstr "حصل خطأ ما " 122 | 123 | #: ../view/error/index.phtml:8 124 | msgid "Additional information" 125 | msgstr "مزيد من المعلومات" 126 | 127 | #: ../view/error/index.phtml:11 ../view/error/index.phtml:35 128 | msgid "File" 129 | msgstr "ملف" 130 | 131 | #: ../view/error/index.phtml:15 ../view/error/index.phtml:39 132 | msgid "Message" 133 | msgstr "الرسالة" 134 | 135 | #: ../view/error/index.phtml:19 ../view/error/index.phtml:43 136 | #: ../view/error/404.phtml:55 137 | msgid "Stack trace" 138 | msgstr "تفاصيل الخطأ" 139 | 140 | #: ../view/error/index.phtml:29 141 | msgid "Previous exceptions" 142 | msgstr "الأخطاء السابقة" 143 | 144 | #: ../view/error/index.phtml:58 145 | msgid "No Exception available" 146 | msgstr "لايوجد خطأ" 147 | 148 | #: ../view/error/404.phtml:1 149 | msgid "A 404 error occurred" 150 | msgstr "حصل خطأ 404 , الصفحة غير موجودة" 151 | 152 | #: ../view/error/404.phtml:10 153 | msgid "The requested controller was unable to dispatch the request." 154 | msgstr "المتحكم المطلوب غير قادر على إجابة الطلب" 155 | 156 | #: ../view/error/404.phtml:13 157 | msgid "" 158 | "The requested controller could not be mapped to an existing controller class." 159 | msgstr "لا يمكن ربط المتحكم المطلوب بأي من المتحكمات الموجودة حالياًَ" 160 | 161 | #: ../view/error/404.phtml:16 162 | msgid "The requested controller was not dispatchable." 163 | msgstr "المتحكم المطلوب غير قادر على الإجابة " 164 | 165 | #: ../view/error/404.phtml:19 166 | msgid "The requested URL could not be matched by routing." 167 | msgstr "الرابط المطلوب غير معرف لدى الموجه" 168 | 169 | #: ../view/error/404.phtml:22 170 | msgid "We cannot determine at this time why a 404 was generated." 171 | msgstr "لا يمكنني التحديد لماذا حصل الخطأ 404 في هذا الوقت " 172 | 173 | #: ../view/error/404.phtml:34 174 | msgid "Controller" 175 | msgstr "المتحكم " 176 | 177 | #: ../view/error/404.phtml:41 178 | #, php-format 179 | msgid "resolves to %s" 180 | msgstr "يوصل إلى %s" 181 | 182 | #: ../view/error/404.phtml:51 183 | msgid "Exception" 184 | msgstr "خطأ برمجي" 185 | -------------------------------------------------------------------------------- /module/Application/language/cs_CZ.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendframework/zf2-tutorial/02971f3a370830f271a4fd9b128399646c26442f/module/Application/language/cs_CZ.mo -------------------------------------------------------------------------------- /module/Application/language/cs_CZ.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ZendSkeletonApplication\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2012-07-05 22:17-0700\n" 6 | "PO-Revision-Date: 2012-07-06 13:05+0100\n" 7 | "Last-Translator: David Lukas \n" 8 | "Language-Team: ZF Contibutors \n" 9 | "Language: \n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "X-Poedit-KeywordsList: translate\n" 14 | "X-Poedit-Language: Czech\n" 15 | "X-Poedit-Country: CZECH REPUBLIC\n" 16 | "X-Poedit-Basepath: .\n" 17 | "X-Poedit-SearchPath-0: ..\n" 18 | 19 | #: ../view/layout/layout.phtml:6 20 | #: ../view/layout/layout.phtml:33 21 | msgid "Skeleton Application" 22 | msgstr "Skeleton aplikace" 23 | 24 | #: ../view/layout/layout.phtml:36 25 | msgid "Home" 26 | msgstr "Úvod" 27 | 28 | #: ../view/layout/layout.phtml:50 29 | msgid "All rights reserved." 30 | msgstr "Všechna práva vyhrazena." 31 | 32 | #: ../view/application/index/index.phtml:2 33 | #, php-format 34 | msgid "Welcome to %sZend Framework 2%s" 35 | msgstr "Vítejte v %sZend Framework 2%s" 36 | 37 | #: ../view/application/index/index.phtml:3 38 | #, php-format 39 | msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." 40 | msgstr "Blahopřejeme! Úspěšně jste nainstalovali %sZF2 Skeleton Application%s. Právě používáte Zend Framework verze %s. Tato kostra aplikace vám poslouží jako jednoduchý výchozí bod, ze kterého můžete vyjít při tvorbě vlastní aplikace nad ZF2." 41 | 42 | #: ../view/application/index/index.phtml:4 43 | msgid "Fork Zend Framework 2 on GitHub" 44 | msgstr "Fork Zend Framework 2 na GitHub" 45 | 46 | #: ../view/application/index/index.phtml:10 47 | msgid "Follow Development" 48 | msgstr "Sledujte vývoj" 49 | 50 | #: ../view/application/index/index.phtml:11 51 | #, php-format 52 | msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework webiste which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" 53 | msgstr "Zend Framework 2 je aktivně vyvíjen. Chcete-li sledovat vývoj ZF2, máte na oficiálních webových stránkách Zend Framework k dispozici zvláštní portál ZF2, na kterém najdete odkazy na ZF2 %swiki%s, %svývojářský blog%s, %sissue tracker%s a mnoho dalšího. Tento portál je skvělý zdroj aktuálních informací o nejnovějším vývoji!" 54 | 55 | #: ../view/application/index/index.phtml:12 56 | msgid "ZF2 Development Portal" 57 | msgstr "Vývojářský portál ZF2" 58 | 59 | #: ../view/application/index/index.phtml:16 60 | msgid "Discover Modules" 61 | msgstr "Objevte Moduly" 62 | 63 | #: ../view/application/index/index.phtml:17 64 | #, php-format 65 | msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." 66 | msgstr "Komunita pracuje na vývoji komunitního webu, který bude sloužit jako archiv a galerie modulů ZF2. Tento projekt je dostupný %sna GitHub%s. Web je aktuálně v provozu a obsahuje seznam některých již dostupných modulů ZF2." 67 | 68 | #: ../view/application/index/index.phtml:18 69 | msgid "Explore ZF2 Modules" 70 | msgstr "Prozkoumejte Moduly ZF2" 71 | 72 | #: ../view/application/index/index.phtml:22 73 | msgid "Help & Support" 74 | msgstr "Pomoc & Podpora" 75 | 76 | #: ../view/application/index/index.phtml:23 77 | #, php-format 78 | msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk.2 on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." 79 | msgstr "Budete-li při vývoji se ZF2 potřebovat jakoukoli pomoc nebo podporu, můžete nás zastihnout přes IRC: %s#zftalk.2 na Freenode%s. Budeme rádi za jakékoli vaše otázky nebo připomínky týkající se beta verzí. Případně se také můžete přihlásit k odběru a posílat otázky na naše %se-mailové distribuční seznamy%s." 80 | 81 | #: ../view/application/index/index.phtml:24 82 | msgid "Ping us on IRC" 83 | msgstr "Ozvěte se nám na IRC" 84 | 85 | #: ../view/error/index.phtml:1 86 | msgid "An error occurred" 87 | msgstr "Vyskytla se chyba" 88 | 89 | #: ../view/error/index.phtml:8 90 | msgid "Additional information" 91 | msgstr "Další informace" 92 | 93 | #: ../view/error/index.phtml:11 94 | #: ../view/error/index.phtml:35 95 | msgid "File" 96 | msgstr "Soubor" 97 | 98 | #: ../view/error/index.phtml:15 99 | #: ../view/error/index.phtml:39 100 | msgid "Message" 101 | msgstr "Zpráva" 102 | 103 | #: ../view/error/index.phtml:19 104 | #: ../view/error/index.phtml:43 105 | #: ../view/error/404.phtml:55 106 | msgid "Stack trace" 107 | msgstr "Trasování zásobníku (Stack trace)" 108 | 109 | #: ../view/error/index.phtml:29 110 | msgid "Previous exceptions" 111 | msgstr "Předchozí výjimky" 112 | 113 | #: ../view/error/index.phtml:58 114 | msgid "No Exception available" 115 | msgstr "Žádná výjimka není k dispozici" 116 | 117 | #: ../view/error/404.phtml:1 118 | msgid "A 404 error occurred" 119 | msgstr "Vyskytla se chyba 404" 120 | 121 | #: ../view/error/404.phtml:10 122 | msgid "The requested controller was unable to dispatch the request." 123 | msgstr "Požadovaný controller nemohl vyřídit požadavek." 124 | 125 | #: ../view/error/404.phtml:13 126 | msgid "The requested controller could not be mapped to an existing controller class." 127 | msgstr "Požadovaný controller se nepodařilo namapovat na žádnou existující třídu controlleru." 128 | 129 | #: ../view/error/404.phtml:16 130 | msgid "The requested controller was not dispatchable." 131 | msgstr "Požadovaný controller nepodporuje vyřízení (controller not dispatchable)." 132 | 133 | #: ../view/error/404.phtml:19 134 | msgid "The requested URL could not be matched by routing." 135 | msgstr "S požadovaným URL nebyla při směrování (routing) nalezena shoda." 136 | 137 | #: ../view/error/404.phtml:22 138 | msgid "We cannot determine at this time why a 404 was generated." 139 | msgstr "Momentálně nedokážeme určit, proč byla vygenerována chyba 404." 140 | 141 | #: ../view/error/404.phtml:34 142 | msgid "Controller" 143 | msgstr "Controller" 144 | 145 | #: ../view/error/404.phtml:41 146 | #, php-format 147 | msgid "resolves to %s" 148 | msgstr "je mapován na %s" 149 | 150 | #: ../view/error/404.phtml:51 151 | msgid "Exception" 152 | msgstr "Výjimka" 153 | 154 | -------------------------------------------------------------------------------- /module/Application/language/de_DE.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendframework/zf2-tutorial/02971f3a370830f271a4fd9b128399646c26442f/module/Application/language/de_DE.mo -------------------------------------------------------------------------------- /module/Application/language/de_DE.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ZendSkeletonApplication\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2012-07-05 23:45-0700\n" 6 | "PO-Revision-Date: 2012-08-07 11:04+0100\n" 7 | "Last-Translator: Enrico\n" 8 | "Language-Team: ZF Contributors \n" 9 | "Language: \n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "X-Poedit-KeywordsList: translate\n" 14 | "X-Poedit-Basepath: .\n" 15 | "X-Poedit-Language: German\n" 16 | "X-Poedit-Country: GERMANY\n" 17 | "X-Poedit-SearchPath-0: ..\n" 18 | 19 | #: ../view/layout/layout.phtml:6 20 | #: ../view/layout/layout.phtml:33 21 | msgid "Skeleton Application" 22 | msgstr "Tutorial" 23 | 24 | #: ../view/layout/layout.phtml:36 25 | msgid "Home" 26 | msgstr "Startseite" 27 | 28 | #: ../view/layout/layout.phtml:50 29 | msgid "All rights reserved." 30 | msgstr "Alle Rechte vorbehalten." 31 | 32 | #: ../view/application/index/index.phtml:2 33 | #, php-format 34 | msgid "Welcome to %sZend Framework 2%s" 35 | msgstr "Willkommen zu dem %sZend Framework 2%s" 36 | 37 | #: ../view/application/index/index.phtml:3 38 | #, php-format 39 | msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." 40 | msgstr "Herzlichen Glückwunsch! Sie haben die %sZF2 Skeleton Application%s erfolgreich installiert und benutzen gerade die Version %s des Zend Frameworks. Dieses Gerüst kann Ihnen als Einstiegspunkt, für Ihre weitere Entwicklung, basierend auf dem Zend Framework 2, dienen." 41 | 42 | #: ../view/application/index/index.phtml:4 43 | msgid "Fork Zend Framework 2 on GitHub" 44 | msgstr "Fork Zend Framework 2 auf GitHub" 45 | 46 | #: ../view/application/index/index.phtml:10 47 | msgid "Follow Development" 48 | msgstr "Folge der Entwicklung" 49 | 50 | #: ../view/application/index/index.phtml:11 51 | #, php-format 52 | msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework webiste which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" 53 | msgstr "Das Zend Framework 2 wird z.Z. aktiv weiterentwickelt. Sollten Sie daran interessiert sein, die Entwicklung von ZF2 zu verfolgen, so bietet Ihnen die offizielle Webseite einen eigens für das Zend Framework 2 eingerichteten Bereich, auf der Sie Verlinkungen zum ZF2 %sWiki%s, %sEntwickler Blog%s, einem %sFehlerverfolgungssystem%s und noch vielem mehr finden. Dieser Bereich ist eine hervorragende Quelle um stets aktuell zu bleiben." 54 | 55 | #: ../view/application/index/index.phtml:12 56 | msgid "ZF2 Development Portal" 57 | msgstr "ZF2 Entwickler Portal" 58 | 59 | #: ../view/application/index/index.phtml:16 60 | msgid "Discover Modules" 61 | msgstr "Entdecken Sie Module" 62 | 63 | #: ../view/application/index/index.phtml:17 64 | #, php-format 65 | msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." 66 | msgstr "Die Community arbeitet momentan an einer Community Seite, welche als Galerie für ZF2 Module dient. Dieses Projekt ist %sauf GitHub%s verfügbar. Die Webseite ist bereits Online und enthält eine Liste mit schon veröffentlichten Modulen für das Zend Framework 2." 67 | 68 | #: ../view/application/index/index.phtml:18 69 | msgid "Explore ZF2 Modules" 70 | msgstr "Erkunden Sie ZF2 Module" 71 | 72 | #: ../view/application/index/index.phtml:22 73 | msgid "Help & Support" 74 | msgstr "Hilfe & Support" 75 | 76 | #: ../view/application/index/index.phtml:23 77 | #, php-format 78 | msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk.2 on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." 79 | msgstr "Sollten Sie Hilfe jeglicher Art bei der Entwicklung mit dem Zend Framework 2 benötigen, kontaktieren Sie uns doch einfach über das IRC: %s#zftalk.2 on Freenode%s. Wir freuen uns darauf, Ihnen bei Ihren Fragen zu helfen oder aber auch Ihre Meinung bezüglich der Beta Versionen zu hören. Alternativ können Sie auch die %smailing lists%s abonnieren und Ihre Fragen dort stellen." 80 | 81 | #: ../view/application/index/index.phtml:24 82 | msgid "Ping us on IRC" 83 | msgstr "Schreiben Sie uns im IRC an" 84 | 85 | #: ../view/error/index.phtml:1 86 | msgid "An error occurred" 87 | msgstr "Ein Fehler ist aufgetreten" 88 | 89 | #: ../view/error/index.phtml:8 90 | msgid "Additional information" 91 | msgstr "Zusätzliche Information" 92 | 93 | #: ../view/error/index.phtml:11 94 | #: ../view/error/index.phtml:35 95 | msgid "File" 96 | msgstr "Datei" 97 | 98 | #: ../view/error/index.phtml:15 99 | #: ../view/error/index.phtml:39 100 | msgid "Message" 101 | msgstr "Meldung" 102 | 103 | #: ../view/error/index.phtml:19 104 | #: ../view/error/index.phtml:43 105 | #: ../view/error/404.phtml:55 106 | msgid "Stack trace" 107 | msgstr "Stapelüberwachung" 108 | 109 | #: ../view/error/index.phtml:29 110 | msgid "Previous exceptions" 111 | msgstr "Vorherige Ausnahme" 112 | 113 | #: ../view/error/index.phtml:58 114 | msgid "No Exception available" 115 | msgstr "Es ist keine Ausnahme verfügbar" 116 | 117 | #: ../view/error/404.phtml:1 118 | msgid "A 404 error occurred" 119 | msgstr "Es trat ein 404 Fehler auf" 120 | 121 | #: ../view/error/404.phtml:10 122 | msgid "The requested controller was unable to dispatch the request." 123 | msgstr "Der angeforderte Controller war nicht in der Lage die Anfrage zu verarbeiten." 124 | 125 | #: ../view/error/404.phtml:13 126 | msgid "The requested controller could not be mapped to an existing controller class." 127 | msgstr "Der angeforderte Controller konnte keiner Controller Klasse zugeordnet werden." 128 | 129 | #: ../view/error/404.phtml:16 130 | msgid "The requested controller was not dispatchable." 131 | msgstr "Der angeforderte Controller ist nicht aufrufbar." 132 | 133 | #: ../view/error/404.phtml:19 134 | msgid "The requested URL could not be matched by routing." 135 | msgstr "Für die angeforderte URL konnte keine Übereinstimmung gefunden werden." 136 | 137 | #: ../view/error/404.phtml:22 138 | msgid "We cannot determine at this time why a 404 was generated." 139 | msgstr "Zu diesem Zeitpunkt ist es uns nicht möglich zu bestimmen, warum ein 404 Fehler aufgetreten ist." 140 | 141 | #: ../view/error/404.phtml:34 142 | msgid "Controller" 143 | msgstr "Controller" 144 | 145 | #: ../view/error/404.phtml:41 146 | #, php-format 147 | msgid "resolves to %s" 148 | msgstr "wird aufgelöst in %s" 149 | 150 | #: ../view/error/404.phtml:51 151 | msgid "Exception" 152 | msgstr "Ausnahme" 153 | 154 | -------------------------------------------------------------------------------- /module/Application/language/en_US.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendframework/zf2-tutorial/02971f3a370830f271a4fd9b128399646c26442f/module/Application/language/en_US.mo -------------------------------------------------------------------------------- /module/Application/language/en_US.mo.old: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendframework/zf2-tutorial/02971f3a370830f271a4fd9b128399646c26442f/module/Application/language/en_US.mo.old -------------------------------------------------------------------------------- /module/Application/language/en_US.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ZendSkeletonApplication\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2012-07-05 22:17-0700\n" 6 | "PO-Revision-Date: 2012-07-09 10:22+0100\n" 7 | "Last-Translator: Rob Allen \n" 8 | "Language-Team: ZF Contibutors \n" 9 | "Language: \n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "X-Poedit-KeywordsList: translate\n" 14 | "X-Poedit-Language: English\n" 15 | "X-Poedit-Country: UNITED STATES\n" 16 | "X-Poedit-Basepath: .\n" 17 | "X-Poedit-SearchPath-0: ..\n" 18 | 19 | #: ../view/layout/layout.phtml:6 20 | #: ../view/layout/layout.phtml:33 21 | msgid "Skeleton Application" 22 | msgstr "Tutorial" 23 | 24 | #: ../view/layout/layout.phtml:36 25 | msgid "Home" 26 | msgstr "" 27 | 28 | #: ../view/layout/layout.phtml:50 29 | msgid "All rights reserved." 30 | msgstr "" 31 | 32 | #: ../view/application/index/index.phtml:2 33 | #, php-format 34 | msgid "Welcome to %sZend Framework 2%s" 35 | msgstr "" 36 | 37 | #: ../view/application/index/index.phtml:3 38 | #, php-format 39 | msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." 40 | msgstr "" 41 | 42 | #: ../view/application/index/index.phtml:4 43 | msgid "Fork Zend Framework 2 on GitHub" 44 | msgstr "" 45 | 46 | #: ../view/application/index/index.phtml:10 47 | msgid "Follow Development" 48 | msgstr "" 49 | 50 | #: ../view/application/index/index.phtml:11 51 | #, php-format 52 | msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework webiste which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" 53 | msgstr "" 54 | 55 | #: ../view/application/index/index.phtml:12 56 | msgid "ZF2 Development Portal" 57 | msgstr "" 58 | 59 | #: ../view/application/index/index.phtml:16 60 | msgid "Discover Modules" 61 | msgstr "" 62 | 63 | #: ../view/application/index/index.phtml:17 64 | #, php-format 65 | msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." 66 | msgstr "" 67 | 68 | #: ../view/application/index/index.phtml:18 69 | msgid "Explore ZF2 Modules" 70 | msgstr "" 71 | 72 | #: ../view/application/index/index.phtml:22 73 | msgid "Help & Support" 74 | msgstr "" 75 | 76 | #: ../view/application/index/index.phtml:23 77 | #, php-format 78 | msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk.2 on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." 79 | msgstr "" 80 | 81 | #: ../view/application/index/index.phtml:24 82 | msgid "Ping us on IRC" 83 | msgstr "" 84 | 85 | #: ../view/error/index.phtml:1 86 | msgid "An error occurred" 87 | msgstr "" 88 | 89 | #: ../view/error/index.phtml:8 90 | msgid "Additional information" 91 | msgstr "" 92 | 93 | #: ../view/error/index.phtml:11 94 | #: ../view/error/index.phtml:35 95 | msgid "File" 96 | msgstr "" 97 | 98 | #: ../view/error/index.phtml:15 99 | #: ../view/error/index.phtml:39 100 | msgid "Message" 101 | msgstr "" 102 | 103 | #: ../view/error/index.phtml:19 104 | #: ../view/error/index.phtml:43 105 | #: ../view/error/404.phtml:55 106 | msgid "Stack trace" 107 | msgstr "" 108 | 109 | #: ../view/error/index.phtml:29 110 | msgid "Previous exceptions" 111 | msgstr "" 112 | 113 | #: ../view/error/index.phtml:58 114 | msgid "No Exception available" 115 | msgstr "" 116 | 117 | #: ../view/error/404.phtml:1 118 | msgid "A 404 error occurred" 119 | msgstr "" 120 | 121 | #: ../view/error/404.phtml:10 122 | msgid "The requested controller was unable to dispatch the request." 123 | msgstr "" 124 | 125 | #: ../view/error/404.phtml:13 126 | msgid "The requested controller could not be mapped to an existing controller class." 127 | msgstr "" 128 | 129 | #: ../view/error/404.phtml:16 130 | msgid "The requested controller was not dispatchable." 131 | msgstr "" 132 | 133 | #: ../view/error/404.phtml:19 134 | msgid "The requested URL could not be matched by routing." 135 | msgstr "" 136 | 137 | #: ../view/error/404.phtml:22 138 | msgid "We cannot determine at this time why a 404 was generated." 139 | msgstr "" 140 | 141 | #: ../view/error/404.phtml:34 142 | msgid "Controller" 143 | msgstr "" 144 | 145 | #: ../view/error/404.phtml:41 146 | #, php-format 147 | msgid "resolves to %s" 148 | msgstr "" 149 | 150 | #: ../view/error/404.phtml:51 151 | msgid "Exception" 152 | msgstr "" 153 | 154 | -------------------------------------------------------------------------------- /module/Application/language/es_ES.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendframework/zf2-tutorial/02971f3a370830f271a4fd9b128399646c26442f/module/Application/language/es_ES.mo -------------------------------------------------------------------------------- /module/Application/language/es_ES.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ZendSkeletonApplication\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2012-07-06 19:07+0100\n" 6 | "PO-Revision-Date: 2012-07-06 19:09+0100\n" 7 | "Last-Translator: Adolfo Abegg \n" 8 | "Language-Team: ZF Contributors \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "Language: \n" 13 | "X-Poedit-KeywordsList: translate\n" 14 | "X-Poedit-Basepath: .\n" 15 | "X-Poedit-Language: Spanish\n" 16 | "X-Poedit-Country: SPAIN\n" 17 | "X-Poedit-SearchPath-0: ..\n" 18 | 19 | msgid "Skeleton Application" 20 | msgstr "Aplicación Esqueleto" 21 | 22 | msgid "Home" 23 | msgstr "Inicio" 24 | 25 | msgid "All rights reserved." 26 | msgstr "Todos los derechos reservados" 27 | 28 | msgid "Welcome to %sZend Framework 2%s" 29 | msgstr "Bienvenido al %sZend Framework 2%s" 30 | 31 | msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." 32 | msgstr "¡Felicitaciones! Haz instalado correctamente el %sla aplicación esqueleto del ZF2%s. Estás corriendo la versión %s del Zend Framework. Este esqueleto te servirá como un punto de inicio sencillo para empezar a construir tu aplicación con el ZF2." 33 | 34 | msgid "Fork Zend Framework 2 on GitHub" 35 | msgstr "Hacer un Fork del Zend Framework 2 en GitHub" 36 | 37 | msgid "Follow Development" 38 | msgstr "Seguir el Desarrollo" 39 | 40 | msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework webiste which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" 41 | msgstr "El Zend Framework 2 está en pleno desarrollo. Si estás interesado en seguir el desarrollo del ZF2, existe un portal especial para el ZF2 en el sitio web oficial del Zend Framework el cual provee enlaces %sa la Wiki%s, %sal Blog de desarrollo%s, %sal issue tracker%s y mucho más. Este es un gran recurso para mantenerte al día con los últimos avances en el desarrollo!" 42 | 43 | msgid "ZF2 Development Portal" 44 | msgstr "Portal de Desarrollo del ZF2" 45 | 46 | msgid "Discover Modules" 47 | msgstr "Descubre Módulos" 48 | 49 | msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." 50 | msgstr "La comunidad está trabajando en el desarrollo de una web comunitaria que servirá de repositorio y galería de los módulos del ZF2. El proyecto está disponible %sen GitHub%s. El sitio web está en línea y actualmente posee una lista de algunos módulos que ya están disponibles para el ZF2." 51 | 52 | msgid "Explore ZF2 Modules" 53 | msgstr "Explora los módulos del ZF2" 54 | 55 | msgid "Help & Support" 56 | msgstr "Ayuda & Soporte" 57 | 58 | msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk.2 on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." 59 | msgstr "Si necesitas alguna ayuda o soporte mientras estás desarrollando con el ZF2, puedes encontrarnos via IRC: %s#zftalk.2 en Freenode%s. Nos encantaría leer tus preguntas o cualquier feedback que puedas tener en relación a los lanzamientos de las versiones beta. También puedes subscribirte y enviar preguntas %sa la lista de correos%s" 60 | 61 | msgid "Ping us on IRC" 62 | msgstr "Escríbenos en el IRC" 63 | 64 | msgid "An error occurred" 65 | msgstr "Ha ocurrido un error" 66 | 67 | msgid "Additional information" 68 | msgstr "Información adicional" 69 | 70 | msgid "File" 71 | msgstr "Archivo" 72 | 73 | msgid "Message" 74 | msgstr "Mensaje" 75 | 76 | msgid "Stack trace" 77 | msgstr "Seguimiento de la pila (stack trace)" 78 | 79 | msgid "Previous exceptions" 80 | msgstr "Excepciones anteriores" 81 | 82 | msgid "No Exception available" 83 | msgstr "No hay ninguna Excepción disponible." 84 | 85 | msgid "A 404 error occurred" 86 | msgstr "Ha ocurrido un error 404" 87 | 88 | msgid "The requested controller was unable to dispatch the request." 89 | msgstr "El controlador solicitado no pudo ejecutar la petición." 90 | 91 | msgid "The requested controller could not be mapped to an existing controller class." 92 | msgstr "El controlador solicitado no se pudo mapear con una clase de controlador existente." 93 | 94 | msgid "The requested controller was not dispatchable." 95 | msgstr "El controlador solicitado no es ejecutable." 96 | 97 | msgid "The requested URL could not be matched by routing." 98 | msgstr "El ruteador no ha encontrado la ruta para la URL solicitada." 99 | 100 | msgid "We cannot determine at this time why a 404 was generated." 101 | msgstr "No pudimos determinar por qué un error 404 ha sido generado." 102 | 103 | msgid "Controller" 104 | msgstr "Controller" 105 | 106 | msgid "resolves to %s" 107 | msgstr "se resuelve a %s" 108 | 109 | msgid "Exception" 110 | msgstr "Excepción" 111 | 112 | -------------------------------------------------------------------------------- /module/Application/language/fr_CA.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendframework/zf2-tutorial/02971f3a370830f271a4fd9b128399646c26442f/module/Application/language/fr_CA.mo -------------------------------------------------------------------------------- /module/Application/language/fr_CA.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ZendSkeletonApplication\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2012-07-06 01:46-0500\n" 6 | "PO-Revision-Date: 2012-07-06 02:08-0500\n" 7 | "Last-Translator: EBB Dev \n" 8 | "Language-Team: ZF Contibutors \n" 9 | "Language: \n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "X-Poedit-KeywordsList: translate\n" 14 | "X-Poedit-Language: French\n" 15 | "X-Poedit-Country: CANADA\n" 16 | "X-Poedit-Basepath: .\n" 17 | "X-Poedit-SearchPath-0: ..\n" 18 | 19 | #: ../view/error/404.phtml:1 20 | msgid "A 404 error occurred" 21 | msgstr "Une erreur 404 est survenue" 22 | 23 | #: ../view/error/404.phtml:10 24 | msgid "The requested controller was unable to dispatch the request." 25 | msgstr "Le contrôleur demandé n'a pas pu acheminer la requête." 26 | 27 | #: ../view/error/404.phtml:13 28 | msgid "The requested controller could not be mapped to an existing controller class." 29 | msgstr "Le contrôleur demandé ne correspond pas à une classe contrôleur existante." 30 | 31 | #: ../view/error/404.phtml:16 32 | msgid "The requested controller was not dispatchable." 33 | msgstr "Le contrôleur demandé ne peut être acheminé." 34 | 35 | #: ../view/error/404.phtml:19 36 | msgid "The requested URL could not be matched by routing." 37 | msgstr "L'URL demandée n'a pas pu trouver de route correspondante." 38 | 39 | #: ../view/error/404.phtml:22 40 | msgid "We cannot determine at this time why a 404 was generated." 41 | msgstr "Nous ne pouvons pas déterminer pour le moment pourquoi une 404 a été générée." 42 | 43 | #: ../view/error/404.phtml:34 44 | msgid "Controller" 45 | msgstr "Contrôleur" 46 | 47 | #: ../view/error/404.phtml:41 48 | #, php-format 49 | msgid "resolves to %s" 50 | msgstr "résout en %s" 51 | 52 | #: ../view/error/404.phtml:51 53 | msgid "Exception" 54 | msgstr "Exception" 55 | 56 | #: ../view/error/404.phtml:55 57 | #: ../view/error/index.phtml:19 58 | #: ../view/error/index.phtml:43 59 | msgid "Stack trace" 60 | msgstr "Pile d'exécution" 61 | 62 | #: ../view/error/index.phtml:1 63 | msgid "An error occurred" 64 | msgstr "Une erreur est survenue" 65 | 66 | #: ../view/error/index.phtml:8 67 | msgid "Additional information" 68 | msgstr "Informations complémentaires" 69 | 70 | #: ../view/error/index.phtml:11 71 | #: ../view/error/index.phtml:35 72 | msgid "File" 73 | msgstr "Fichier" 74 | 75 | #: ../view/error/index.phtml:15 76 | #: ../view/error/index.phtml:39 77 | msgid "Message" 78 | msgstr "Message" 79 | 80 | #: ../view/error/index.phtml:29 81 | msgid "Previous exceptions" 82 | msgstr "Exceptions précédentes" 83 | 84 | #: ../view/error/index.phtml:58 85 | msgid "No Exception available" 86 | msgstr "Aucune exception disponible" 87 | 88 | #: ../view/application/index/index.phtml:2 89 | #, php-format 90 | msgid "Welcome to %sZend Framework 2%s" 91 | msgstr "Bienvenue dans %sZend Framework 2%s" 92 | 93 | #: ../view/application/index/index.phtml:3 94 | #, php-format 95 | msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." 96 | msgstr "Félicitations ! Vous avez installé %sZF2 Skeleton Application%s avec succès. Vous utilisez actuellement Zend Framework version %s. Cette structure peut vous servir comme point de départ simple pour démarrer la construction de votre application avec ZF2." 97 | 98 | #: ../view/application/index/index.phtml:4 99 | msgid "Fork Zend Framework 2 on GitHub" 100 | msgstr "Faites un Fork de Zend Framework 2 sur GitHub" 101 | 102 | #: ../view/application/index/index.phtml:10 103 | msgid "Follow Development" 104 | msgstr "Suivre le développement" 105 | 106 | #: ../view/application/index/index.phtml:11 107 | #, php-format 108 | msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework webiste which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" 109 | msgstr "Zend Framework 2 est en cours de développement. Si vous êtes intéressé pour suivre l'évolution de ZF2, il existe un portail dédié à ZF2 sur le site officiel Zend Framework qui propose des liens vers le %swiki%s ZF2, le %sblogue de dev%s, le %ssuivi des problèmes%s, et bien plus encore. Il s'agit d'une excellente ressource pour rester à jour sur les dernières évolutions !" 110 | 111 | #: ../view/application/index/index.phtml:12 112 | msgid "ZF2 Development Portal" 113 | msgstr "Portail sur le développement de ZF2" 114 | 115 | #: ../view/application/index/index.phtml:16 116 | msgid "Discover Modules" 117 | msgstr "Découvrez les modules" 118 | 119 | #: ../view/application/index/index.phtml:17 120 | #, php-format 121 | msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." 122 | msgstr "La communauté travaille sur le développement d'un site communautaire avec l'objectif de servir de dépôt et de galerie pour les modules ZF2. Le projet est disponible %ssur GitHub%s. Le site est déjà en ligne, et contient une liste non exhaustive des modules déjà disponibles pour ZF2." 123 | 124 | #: ../view/application/index/index.phtml:18 125 | msgid "Explore ZF2 Modules" 126 | msgstr "Explorer les modules ZF2" 127 | 128 | #: ../view/application/index/index.phtml:22 129 | msgid "Help & Support" 130 | msgstr "Aide & support" 131 | 132 | #: ../view/application/index/index.phtml:23 133 | #, php-format 134 | msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk.2 on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." 135 | msgstr "Si vous avez besoin d'aide ou de soutient en développant avec ZF2, vous pouvez nous joindre sur IRC : %s#zftalk.2 sur Freenode%s. Nous aimerions connaître vos questions ou les commentaires que vous pourriez avoir au sujet des versions beta. Sinon, vous pouvez vous abonner, et poser des questions sur la %sliste de diffusion%s." 136 | 137 | #: ../view/application/index/index.phtml:24 138 | msgid "Ping us on IRC" 139 | msgstr "Rejoignez-nous sur IRC" 140 | 141 | #: ../view/layout/layout.phtml:6 142 | #: ../view/layout/layout.phtml:33 143 | msgid "Skeleton Application" 144 | msgstr "Skeleton Application" 145 | 146 | #: ../view/layout/layout.phtml:36 147 | msgid "Home" 148 | msgstr "Accueil" 149 | 150 | #: ../view/layout/layout.phtml:50 151 | msgid "All rights reserved." 152 | msgstr "Tous droits réservés." 153 | 154 | -------------------------------------------------------------------------------- /module/Application/language/fr_FR.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendframework/zf2-tutorial/02971f3a370830f271a4fd9b128399646c26442f/module/Application/language/fr_FR.mo -------------------------------------------------------------------------------- /module/Application/language/fr_FR.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ZendSkeletonApplication\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2012-07-05 22:32-0700\n" 6 | "PO-Revision-Date: 2012-08-07 10:56+0100\n" 7 | "Last-Translator: Enrico\n" 8 | "Language-Team: ZF Contibutors \n" 9 | "Language: \n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "X-Poedit-KeywordsList: translate\n" 14 | "X-Poedit-Language: French\n" 15 | "X-Poedit-Country: FRANCE\n" 16 | "X-Poedit-Basepath: .\n" 17 | "X-Poedit-SearchPath-0: ..\n" 18 | 19 | #: ../view/layout/layout.phtml:6 20 | #: ../view/layout/layout.phtml:33 21 | msgid "Skeleton Application" 22 | msgstr "Tutorial" 23 | 24 | #: ../view/layout/layout.phtml:36 25 | msgid "Home" 26 | msgstr "Accueil" 27 | 28 | #: ../view/layout/layout.phtml:50 29 | msgid "All rights reserved." 30 | msgstr "Tous droits réservés." 31 | 32 | #: ../view/application/index/index.phtml:2 33 | #, php-format 34 | msgid "Welcome to %sZend Framework 2%s" 35 | msgstr "Bienvenue dans le %sZend Framework 2%s" 36 | 37 | #: ../view/application/index/index.phtml:3 38 | #, php-format 39 | msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." 40 | msgstr "Félicitations ! Vous avez installé avec succès le %sZF2 Skeleton Application%s. Vous utilisez actuellement Zend Framework version %s. Cette structure peut vous servir comme un point de départ simple pour démarrer la construction de votre application avec ZF2." 41 | 42 | #: ../view/application/index/index.phtml:4 43 | msgid "Fork Zend Framework 2 on GitHub" 44 | msgstr "Faites un Fork de Zend Framework 2 sur GitHub" 45 | 46 | #: ../view/application/index/index.phtml:10 47 | msgid "Follow Development" 48 | msgstr "Suivre le développement" 49 | 50 | #: ../view/application/index/index.phtml:11 51 | #, php-format 52 | msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework webiste which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" 53 | msgstr "Zend Framework 2 est en cours de développement. Si vous êtes intéressé pour suivre l'évolution de ZF2, il existe un portail dédié à ZF2 sur le site officiel Zend Framework qui propose des liens vers le %swiki%s ZF2, %sdev blog%s, %ssuivi des problèmes%s, et bien plus encore. Il s'agit d'une excellente ressource pour rester à jour sur les dernières évolutions !" 54 | 55 | #: ../view/application/index/index.phtml:12 56 | msgid "ZF2 Development Portal" 57 | msgstr "Portail sur le développement de ZF2" 58 | 59 | #: ../view/application/index/index.phtml:16 60 | msgid "Discover Modules" 61 | msgstr "Découvrez les modules" 62 | 63 | #: ../view/application/index/index.phtml:17 64 | #, php-format 65 | msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." 66 | msgstr "La communauté travaille sur le développement d'un site communautaire avec l'objectif de servir de dépôt et de galerie pour les modules ZF2. Le projet est disponible %ssur GitHub%s. Le site est déjà en ligne, et contient une liste non exhaustive des modules déjà disponibles pour ZF2." 67 | 68 | #: ../view/application/index/index.phtml:18 69 | msgid "Explore ZF2 Modules" 70 | msgstr "Explorer les modules ZF2" 71 | 72 | #: ../view/application/index/index.phtml:22 73 | msgid "Help & Support" 74 | msgstr "Aide & support" 75 | 76 | #: ../view/application/index/index.phtml:23 77 | #, php-format 78 | msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk.2 on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." 79 | msgstr "Si vous avez besoin d'aide ou de support en développant avec ZF2, vous pouvez nous joindre sur IRC : %s#zftalk.2 sur Freenode%s. Nous aimerions avoir vos questions ou vos commentaires que vous pourriez avoir au sujet des versions bêta. Sinon, vous pouvez vous abonner, et poser des questions sur la %sliste de diffusion%s." 80 | 81 | #: ../view/application/index/index.phtml:24 82 | msgid "Ping us on IRC" 83 | msgstr "Rejoignez-nous sur IRC" 84 | 85 | #: ../view/error/index.phtml:1 86 | msgid "An error occurred" 87 | msgstr "Une erreur est survenue" 88 | 89 | #: ../view/error/index.phtml:8 90 | msgid "Additional information" 91 | msgstr "Informations complémentaires" 92 | 93 | #: ../view/error/index.phtml:11 94 | #: ../view/error/index.phtml:35 95 | msgid "File" 96 | msgstr "Fichier" 97 | 98 | #: ../view/error/index.phtml:15 99 | #: ../view/error/index.phtml:39 100 | msgid "Message" 101 | msgstr "Message" 102 | 103 | #: ../view/error/index.phtml:19 104 | #: ../view/error/index.phtml:43 105 | #: ../view/error/404.phtml:55 106 | msgid "Stack trace" 107 | msgstr "Pile d'exécution" 108 | 109 | #: ../view/error/index.phtml:29 110 | msgid "Previous exceptions" 111 | msgstr "Exceptions précédentes" 112 | 113 | #: ../view/error/index.phtml:58 114 | msgid "No Exception available" 115 | msgstr "Aucune exception disponible" 116 | 117 | #: ../view/error/404.phtml:1 118 | msgid "A 404 error occurred" 119 | msgstr "Une erreur 404 est survenue" 120 | 121 | #: ../view/error/404.phtml:10 122 | msgid "The requested controller was unable to dispatch the request." 123 | msgstr "Le contrôleur demandé n'a pas pu dispatcher la requête." 124 | 125 | #: ../view/error/404.phtml:13 126 | msgid "The requested controller could not be mapped to an existing controller class." 127 | msgstr "Le contrôleur demandé ne correspond pas à une classe existante de contrôleur." 128 | 129 | #: ../view/error/404.phtml:16 130 | msgid "The requested controller was not dispatchable." 131 | msgstr "Le contrôleur demandé n'est pas dispatchable." 132 | 133 | #: ../view/error/404.phtml:19 134 | msgid "The requested URL could not be matched by routing." 135 | msgstr "L'URL demandée n'a pas pu trouver de route correspondante." 136 | 137 | #: ../view/error/404.phtml:22 138 | msgid "We cannot determine at this time why a 404 was generated." 139 | msgstr "Nous ne pouvons pas déterminer pour le moment pourquoi une 404 a été générée." 140 | 141 | #: ../view/error/404.phtml:34 142 | msgid "Controller" 143 | msgstr "Contrôleur" 144 | 145 | #: ../view/error/404.phtml:41 146 | #, php-format 147 | msgid "resolves to %s" 148 | msgstr "résout en %s" 149 | 150 | #: ../view/error/404.phtml:51 151 | msgid "Exception" 152 | msgstr "Exception" 153 | 154 | -------------------------------------------------------------------------------- /module/Application/language/ja_JP.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendframework/zf2-tutorial/02971f3a370830f271a4fd9b128399646c26442f/module/Application/language/ja_JP.mo -------------------------------------------------------------------------------- /module/Application/language/ja_JP.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ZendSkeletonApplication\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2012-07-05 19:30-0700\n" 6 | "PO-Revision-Date: 2012-07-06 19:26+0900\n" 7 | "Last-Translator: sasezaki \n" 8 | "Language-Team: Japanese\n" 9 | "Language: ja\n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "X-Poedit-KeywordsList: translate\n" 14 | "X-Poedit-Language: Japanese\n" 15 | "X-Poedit-Country: Japan\n" 16 | "X-Poedit-Basepath: .\n" 17 | "X-Poedit-SearchPath-0: ..\n" 18 | 19 | #: ../view/application/index/index.phtml:2 20 | #, php-format 21 | msgid "Welcome to %sZend Framework 2%s" 22 | msgstr "%sZend Framework 2%s へようこそ" 23 | 24 | #: ../view/application/index/index.phtml:3 25 | #, php-format 26 | msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." 27 | msgstr "おめでとうございます! %sZF2 Skeleton Application%s のインストールに成功しました。 あなたは Zend Framework version %s を動作させています。このスケルトンはZF2上でのアプリケーション構築を始めるためにシンプルなスタートポイントを提供します。" 28 | 29 | #: ../view/application/index/index.phtml:4 30 | msgid "Fork Zend Framework 2 on GitHub" 31 | msgstr "GitHub で Zend Framework 2 をフォーク" 32 | 33 | #: ../view/application/index/index.phtml:10 34 | msgid "Follow Development" 35 | msgstr "開発を追う" 36 | 37 | #: ../view/application/index/index.phtml:11 38 | #, php-format 39 | msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework webiste which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" 40 | msgstr "Zend Framework 2 は鋭意開発中です。ZF2の開発進行にご感心がおありでしょうか、Zend Framework公式ウェブサイト上ではZF2特別ポータルがあり、 %swiki%s、 %sdev blog%s、 %sissue tracker%s、 などのZF2関連のものを提供しています。最新の開発状況に追随するためのすばらしいリソースです。" 41 | 42 | #: ../view/application/index/index.phtml:12 43 | msgid "ZF2 Development Portal" 44 | msgstr "ZF2 開発ポータル" 45 | 46 | #: ../view/application/index/index.phtml:16 47 | msgid "Discover Modules" 48 | msgstr "モジュールを見つける" 49 | 50 | #: ../view/application/index/index.phtml:17 51 | #, php-format 52 | msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." 53 | msgstr "コミュニティーはZF2モジュールのためのリポジトリとギャラリーを提供するコミュニティーサイトを開発中です。プロジェクトは %s GitHub%s で利用可能です。サイトは現在運営されており、ZF2ですでに利用可能なモジュールのリストを持っています。" 54 | 55 | #: ../view/application/index/index.phtml:18 56 | msgid "Explore ZF2 Modules" 57 | msgstr "ZF2モジュールを探す" 58 | 59 | #: ../view/application/index/index.phtml:22 60 | msgid "Help & Support" 61 | msgstr "ヘルプとサポート" 62 | 63 | #: ../view/application/index/index.phtml:23 64 | #, php-format 65 | msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk.2 on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." 66 | msgstr "" 67 | 68 | #: ../view/application/index/index.phtml:24 69 | msgid "Ping us on IRC" 70 | msgstr "" 71 | 72 | #: ../view/error/index.phtml:1 73 | msgid "An error occurred" 74 | msgstr "エラーが発生しました" 75 | 76 | #: ../view/error/index.phtml:8 77 | msgid "Additional information" 78 | msgstr "" 79 | 80 | #: ../view/error/index.phtml:11 81 | #: ../view/error/index.phtml:35 82 | msgid "File" 83 | msgstr "ファイル" 84 | 85 | #: ../view/error/index.phtml:15 86 | #: ../view/error/index.phtml:39 87 | msgid "Message" 88 | msgstr "メッセージ" 89 | 90 | #: ../view/error/index.phtml:19 91 | #: ../view/error/index.phtml:43 92 | #: ../view/error/404.phtml:55 93 | msgid "Stack trace" 94 | msgstr "スタックトレース" 95 | 96 | #: ../view/error/index.phtml:29 97 | msgid "Previous exceptions" 98 | msgstr "" 99 | 100 | #: ../view/error/index.phtml:58 101 | msgid "No Exception available" 102 | msgstr "" 103 | 104 | #: ../view/error/404.phtml:1 105 | msgid "A 404 error occurred" 106 | msgstr "404エラーが発生しました" 107 | 108 | #: ../view/error/404.phtml:10 109 | msgid "The requested controller was unable to dispatch the request." 110 | msgstr "要求されたコントローラはリクエストをディスパッチできませんでした。" 111 | 112 | #: ../view/error/404.phtml:13 113 | msgid "The requested controller could not be mapped to an existing controller class." 114 | msgstr "要求されたコントローラは存在するコントローラクラスにマッピングできませんでした。" 115 | 116 | #: ../view/error/404.phtml:16 117 | msgid "The requested controller was not dispatchable." 118 | msgstr "要求されたコントローラはディスパッチ不可能でした。" 119 | 120 | #: ../view/error/404.phtml:19 121 | msgid "The requested URL could not be matched by routing." 122 | msgstr "要求されたURLはルーティングにマッチしませんでした。" 123 | 124 | #: ../view/error/404.phtml:22 125 | msgid "We cannot determine at this time why a 404 was generated." 126 | msgstr "404が生成された理由について現時点で判断できません。" 127 | 128 | #: ../view/error/404.phtml:34 129 | msgid "Controller" 130 | msgstr "コントローラ" 131 | 132 | #: ../view/error/404.phtml:41 133 | #, php-format 134 | msgid "resolves to %s" 135 | msgstr "" 136 | 137 | #: ../view/error/404.phtml:51 138 | msgid "Exception" 139 | msgstr "例外" 140 | 141 | -------------------------------------------------------------------------------- /module/Application/language/tr_TR.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendframework/zf2-tutorial/02971f3a370830f271a4fd9b128399646c26442f/module/Application/language/tr_TR.mo -------------------------------------------------------------------------------- /module/Application/language/tr_TR.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ZendSkeletonApplication\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2012-07-05 22:17-0700\n" 6 | "PO-Revision-Date: 2012-07-06 13:19+0200\n" 7 | "Last-Translator: H.H.G. multistore \n" 8 | "Language-Team: ZF Contibutors \n" 9 | "Language: \n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "X-Poedit-KeywordsList: translate\n" 14 | "X-Poedit-Language: Turkish\n" 15 | "X-Poedit-Country: TURKEY\n" 16 | "X-Poedit-Basepath: .\n" 17 | "X-Poedit-SearchPath-0: ..\n" 18 | 19 | #: ../view/layout/layout.phtml:6 20 | #: ../view/layout/layout.phtml:33 21 | msgid "Skeleton Application" 22 | msgstr "" 23 | 24 | #: ../view/layout/layout.phtml:36 25 | msgid "Home" 26 | msgstr "Anasayfa" 27 | 28 | #: ../view/layout/layout.phtml:50 29 | msgid "All rights reserved." 30 | msgstr "Tüm haklar saklıdır." 31 | 32 | #: ../view/application/index/index.phtml:2 33 | #, php-format 34 | msgid "Welcome to %sZend Framework 2%s" 35 | msgstr "%sZend Framework 2%s'a hoş geldiniz" 36 | 37 | #: ../view/application/index/index.phtml:3 38 | #, php-format 39 | msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." 40 | msgstr "Tebrikler! %sZF2 Skeleton Application%s'u başarıyla yüklediniz. Şu anda Zend Framework %s sürüm ile çalışıyorsunuz. Bu iskelet ZF2 üzerinde uygulama oluşturmak için basit bir başlangıç ​​noktası olarak hizmet verebilir." 41 | 42 | #: ../view/application/index/index.phtml:4 43 | msgid "Fork Zend Framework 2 on GitHub" 44 | msgstr "Zend Framework 2'yi GitHub'da fork edin" 45 | 46 | #: ../view/application/index/index.phtml:10 47 | msgid "Follow Development" 48 | msgstr "Gelişimi izleyin" 49 | 50 | #: ../view/application/index/index.phtml:11 51 | #, php-format 52 | msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework webiste which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" 53 | msgstr "Zend Framework 2 aktif geliştirilmektedir. Eğer ZF2'nin gelişimi ile ilgileniyorsanız, ZF2 için resmi Zend Framework websitesinde özel portal mevcut, orada ZF2 %swiki%s'ye, %sDEV blog%s'a, %ssorun takibi%s'ne bağlantılarını ve çok daha fazlasını sunar. Bu son gelişmeler ile güncel kalmak için büyük bir kaynaktır!" 54 | 55 | #: ../view/application/index/index.phtml:12 56 | msgid "ZF2 Development Portal" 57 | msgstr "ZF2 Development Portal" 58 | 59 | #: ../view/application/index/index.phtml:16 60 | msgid "Discover Modules" 61 | msgstr "Modülleri keşfedin" 62 | 63 | #: ../view/application/index/index.phtml:17 64 | #, php-format 65 | msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." 66 | msgstr "Topluluk ZF2 modülleri için bir depo ve galeri olarak hizmet edecek bir topluluk sitesi geliştirme üzerinde çalışıyor. Proje %sGitHub%s'da mevcut. Site şu anda canlı ve ZF2 için bazı mevcut modüllerin listesini içerir." 67 | 68 | #: ../view/application/index/index.phtml:18 69 | msgid "Explore ZF2 Modules" 70 | msgstr "ZF2 Modüllerini keşfedin" 71 | 72 | #: ../view/application/index/index.phtml:22 73 | msgid "Help & Support" 74 | msgstr "Yardım & Destek" 75 | 76 | #: ../view/application/index/index.phtml:23 77 | #, php-format 78 | msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk.2 on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." 79 | msgstr "ZF2 ile geliştirirken herhangi yardım veya desteğe ihtiyacınız varsa, bize IRC: %sFreenode #zftalk.2%s üzerinden ulaşabilirsiniz. Beta sürümleri ile ilgili olabilecek herhangi bir sorunuzu ya da yorumlarınızı duymak isteriz. Alternatif olarak %smailing listelerine%s abone olup sorularınızı sorabilirsiniz." 80 | 81 | #: ../view/application/index/index.phtml:24 82 | msgid "Ping us on IRC" 83 | msgstr "IRC bizi pingleyin" 84 | 85 | #: ../view/error/index.phtml:1 86 | msgid "An error occurred" 87 | msgstr "An error occurred" 88 | 89 | #: ../view/error/index.phtml:8 90 | msgid "Additional information" 91 | msgstr "Ek bilgiler" 92 | 93 | #: ../view/error/index.phtml:11 94 | #: ../view/error/index.phtml:35 95 | msgid "File" 96 | msgstr "Klasör" 97 | 98 | #: ../view/error/index.phtml:15 99 | #: ../view/error/index.phtml:39 100 | msgid "Message" 101 | msgstr "Mesaj" 102 | 103 | #: ../view/error/index.phtml:19 104 | #: ../view/error/index.phtml:43 105 | #: ../view/error/404.phtml:55 106 | msgid "Stack trace" 107 | msgstr "Denetleyici" 108 | 109 | #: ../view/error/index.phtml:29 110 | msgid "Previous exceptions" 111 | msgstr "Önceki istisnalar" 112 | 113 | #: ../view/error/index.phtml:58 114 | msgid "No Exception available" 115 | msgstr "İstisna yok" 116 | 117 | #: ../view/error/404.phtml:1 118 | msgid "A 404 error occurred" 119 | msgstr "Bir 404 hatası oluştu" 120 | 121 | #: ../view/error/404.phtml:10 122 | msgid "The requested controller was unable to dispatch the request." 123 | msgstr "Talep edilen denetleyici işlemi işlemesi mümkün değildir." 124 | 125 | #: ../view/error/404.phtml:13 126 | msgid "The requested controller could not be mapped to an existing controller class." 127 | msgstr "Talep edilen denetleyiciye uygun denetleyici sınıfı tahsis edilemedi." 128 | 129 | #: ../view/error/404.phtml:16 130 | msgid "The requested controller was not dispatchable." 131 | msgstr "Talep edilen denetleyici çağrılabilir değildir." 132 | 133 | #: ../view/error/404.phtml:19 134 | msgid "The requested URL could not be matched by routing." 135 | msgstr "İstenen URL yönlendirmede tahsis edilemedi" 136 | 137 | #: ../view/error/404.phtml:22 138 | msgid "We cannot determine at this time why a 404 was generated." 139 | msgstr "Neden 404 hatasının oluştuğunu şu an belirleyemiyoruz." 140 | 141 | #: ../view/error/404.phtml:34 142 | msgid "Controller" 143 | msgstr "Denetleyici" 144 | 145 | #: ../view/error/404.phtml:41 146 | #, php-format 147 | msgid "resolves to %s" 148 | msgstr "Buraya çözümlenir: %s" 149 | 150 | #: ../view/error/404.phtml:51 151 | msgid "Exception" 152 | msgstr "İstisna" 153 | 154 | -------------------------------------------------------------------------------- /module/Application/src/Application/Controller/IndexController.php: -------------------------------------------------------------------------------- 1 | 2 |

translate('Welcome to %sZend Framework 2%s'), '', '') ?>

3 |

translate('Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2.'), '', '', \Zend\Version::VERSION) ?>

4 |

translate('Fork Zend Framework 2 on GitHub') ?> »

5 | 6 | 7 |
8 | 9 |
10 |

translate('Follow Development') ?>

11 |

translate('Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework webiste which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!'), '', '', '', '', '', '') ?>

12 |

translate('ZF2 Development Portal') ?> »

13 |
14 | 15 |
16 |

translate('Discover Modules') ?>

17 |

translate('The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2.'), '', '') ?>

18 |

translate('Explore ZF2 Modules') ?> »

19 |
20 | 21 |
22 |

translate('Help & Support') ?>

23 |

translate('If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk.2 on Freenode%s. We\'d love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s.'), '', '', '', '') ?>

24 |

translate('Ping us on IRC') ?> »

25 |
26 |
27 | -------------------------------------------------------------------------------- /module/Application/view/error/404.phtml: -------------------------------------------------------------------------------- 1 |

translate('A 404 error occurred') ?>

2 |

message ?>

3 | 4 | reason) && $this->reason): ?> 5 | 6 | reason) { 9 | case 'error-controller-cannot-dispatch': 10 | $reasonMessage = $this->translate('The requested controller was unable to dispatch the request.'); 11 | break; 12 | case 'error-controller-not-found': 13 | $reasonMessage = $this->translate('The requested controller could not be mapped to an existing controller class.'); 14 | break; 15 | case 'error-controller-invalid': 16 | $reasonMessage = $this->translate('The requested controller was not dispatchable.'); 17 | break; 18 | case 'error-router-no-match': 19 | $reasonMessage = $this->translate('The requested URL could not be matched by routing.'); 20 | break; 21 | default: 22 | $reasonMessage = $this->translate('We cannot determine at this time why a 404 was generated.'); 23 | break; 24 | } 25 | ?> 26 | 27 |

28 | 29 | 30 | 31 | controller) && $this->controller): ?> 32 | 33 |
34 |
translate('Controller') ?>:
35 |
escapeHtml($this->controller) ?> 36 | controller_class) 38 | && $this->controller_class 39 | && $this->controller_class != $this->controller 40 | ) { 41 | echo '(' . sprintf($this->translate('resolves to %s'), $this->escapeHtml($this->controller_class)) . ')'; 42 | } 43 | ?> 44 |
45 |
46 | 47 | 48 | 49 | exception) && $this->exception): ?> 50 | 51 |

translate('Exception') ?>:

52 | 53 |

escapeHtml($this->exception->getMessage()) ?>

54 | 55 |

translate('Stack trace') ?>:

56 | 57 |
58 | exception->getTraceAsString() ?>
59 | 
60 | 61 | 62 | -------------------------------------------------------------------------------- /module/Application/view/error/index.phtml: -------------------------------------------------------------------------------- 1 |

translate('An error occurred') ?>

2 |

message ?>

3 | 4 | display_exceptions) && $this->display_exceptions): ?> 5 | 6 | exception) && $this->exception instanceof Exception): ?> 7 |
8 |

translate('Additional information') ?>:

9 |

exception); ?>

10 |
11 |
translate('File') ?>:
12 |
13 |
exception->getFile() ?>:exception->getLine() ?>
14 |
15 |
translate('Message') ?>:
16 |
17 |
exception->getMessage() ?>
18 |
19 |
translate('Stack trace') ?>:
20 |
21 |
exception->getTraceAsString() ?>
22 |
23 |
24 | exception->getPrevious(); 26 | if ($e) : 27 | ?> 28 |
29 |

translate('Previous exceptions') ?>:

30 |
    31 | 32 |
  • 33 |

    34 |
    35 |
    translate('File') ?>:
    36 |
    37 |
    getFile() ?>:getLine() ?>
    38 |
    39 |
    translate('Message') ?>:
    40 |
    41 |
    getMessage() ?>
    42 |
    43 |
    translate('Stack trace') ?>:
    44 |
    45 |
    getTraceAsString() ?>
    46 |
    47 |
    48 | getPrevious(); 50 | endwhile; 51 | ?> 52 |
  • 53 |
54 | 55 | 56 | 57 | 58 |

translate('No Exception available') ?>

59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /module/Application/view/layout/languages.phtml: -------------------------------------------------------------------------------- 1 | 13 | 26 | -------------------------------------------------------------------------------- /module/Application/view/layout/layout.phtml: -------------------------------------------------------------------------------- 1 | doctype(); ?> 2 | 3 | 4 | 5 | 6 | headTitle('ZF2 '. $this->translate('Skeleton Application'))->setSeparator(' - ')->setAutoEscape(false) ?> 7 | 8 | headMeta()->appendName('viewport', 'width=device-width, initial-scale=1.0') ?> 9 | 10 | 11 | headLink(array('rel' => 'shortcut icon', 'type' => 'image/vnd.microsoft.icon', 'href' => $this->basePath() . '/images/favicon.ico')) 12 | ->appendStylesheet($this->basePath() . '/css/bootstrap.min.css') 13 | ->appendStylesheet($this->basePath() . '/css/style.css') 14 | ->appendStylesheet($this->basePath() . '/css/bootstrap-responsive.min.css') ?> 15 | 16 | 17 | headScript()->appendFile($this->basePath() . '/js/html5.js', 'text/javascript', array('conditional' => 'lt IE 9',)) 18 | ->appendFile($this->basePath() . '/js/jquery-1.7.2.min.js') ?> 19 | 20 | 21 | 22 | 23 | 24 | 53 | 54 |
55 | 56 | content; ?> 57 | 58 |
59 | 60 |
61 |
62 | 63 |
64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | RewriteEngine On 2 | RewriteCond %{REQUEST_FILENAME} -s [OR] 3 | RewriteCond %{REQUEST_FILENAME} -l [OR] 4 | RewriteCond %{REQUEST_FILENAME} -d 5 | RewriteRule ^.*$ - [NC,L] 6 | RewriteRule ^.*$ index.php [NC,L] 7 | -------------------------------------------------------------------------------- /public/css/bootstrap-responsive.min.css: -------------------------------------------------------------------------------- 1 | 2 | .hidden{display:none;visibility:hidden;} 3 | @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;}} 4 | -------------------------------------------------------------------------------- /public/css/bootstrap.min.css: -------------------------------------------------------------------------------- 1 | article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;} 2 | audio,canvas,video{display:inline-block;*display:inline;*zoom:1;} 3 | audio:not([controls]){display:none;} 4 | html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;} 5 | a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} 6 | a:hover,a:active{outline:0;} 7 | sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;} 8 | sup{top:-0.5em;} 9 | sub{bottom:-0.25em;} 10 | img{max-width:100%;height:auto;border:0;-ms-interpolation-mode:bicubic;} 11 | button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;} 12 | button,input{*overflow:visible;line-height:normal;} 13 | button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;} 14 | button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;} 15 | input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;} 16 | input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;} 17 | textarea{overflow:auto;vertical-align:top;} 18 | body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333333;background-color:#ffffff;} 19 | a{color:#0088cc;text-decoration:none;} 20 | a:hover{color:#005580;text-decoration:underline;} 21 | .row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} 22 | .row:after{clear:both;} 23 | [class*="span"]{float:left;margin-left:20px;} 24 | .span1{width:60px;} 25 | .span2{width:140px;} 26 | .span3{width:220px;} 27 | .span4{width:300px;} 28 | .span5{width:380px;} 29 | .span6{width:460px;} 30 | .span7{width:540px;} 31 | .span8{width:620px;} 32 | .span9{width:700px;} 33 | .span10{width:780px;} 34 | .span11{width:860px;} 35 | .span12,.container{width:940px;} 36 | .offset1{margin-left:100px;} 37 | .offset2{margin-left:180px;} 38 | .offset3{margin-left:260px;} 39 | .offset4{margin-left:340px;} 40 | .offset5{margin-left:420px;} 41 | .offset6{margin-left:500px;} 42 | .offset7{margin-left:580px;} 43 | .offset8{margin-left:660px;} 44 | .offset9{margin-left:740px;} 45 | .offset10{margin-left:820px;} 46 | .offset11{margin-left:900px;} 47 | .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} 48 | .row-fluid:after{clear:both;} 49 | .row-fluid>[class*="span"]{float:left;margin-left:2.127659574%;} 50 | .row-fluid>[class*="span"]:first-child{margin-left:0;} 51 | .row-fluid .span1{width:6.382978723%;} 52 | .row-fluid .span2{width:14.89361702%;} 53 | .row-fluid .span3{width:23.404255317%;} 54 | .row-fluid .span4{width:31.914893614%;} 55 | .row-fluid .span5{width:40.425531911%;} 56 | .row-fluid .span6{width:48.93617020799999%;} 57 | .row-fluid .span7{width:57.446808505%;} 58 | .row-fluid .span8{width:65.95744680199999%;} 59 | .row-fluid .span9{width:74.468085099%;} 60 | .row-fluid .span10{width:82.97872339599999%;} 61 | .row-fluid .span11{width:91.489361693%;} 62 | .row-fluid .span12{width:99.99999998999999%;} 63 | .container{width:940px;margin-left:auto;margin-right:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";} 64 | .container:after{clear:both;} 65 | .container-fluid{padding-left:20px;padding-right:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";} 66 | .container-fluid:after{clear:both;} 67 | 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;} 68 | .lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px;} 69 | 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;} 70 | h1{font-size:30px;line-height:36px;}h1 small{font-size:18px;} 71 | h2{font-size:24px;line-height:36px;}h2 small{font-size:18px;} 72 | h3{line-height:27px;font-size:18px;}h3 small{font-size:14px;} 73 | h4,h5,h6{line-height:18px;} 74 | h4{font-size:14px;}h4 small{font-size:12px;} 75 | h5{font-size:12px;} 76 | h6{font-size:11px;color:#999999;text-transform:uppercase;} 77 | .page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eeeeee;} 78 | .page-header h1{line-height:1;} 79 | ul,ol{padding:0;margin:0 0 9px 25px;} 80 | ul ul,ul ol,ol ol,ol ul{margin-bottom:0;} 81 | ul{list-style:disc;} 82 | ol{list-style:decimal;} 83 | li{line-height:18px;} 84 | ul.unstyled{margin-left:0;list-style:none;} 85 | dl{margin-bottom:18px;} 86 | dt,dd{line-height:18px;} 87 | dt{font-weight:bold;} 88 | dd{margin-left:9px;} 89 | hr{margin:18px 0;border:0;border-top:1px solid #e5e5e5;border-bottom:1px solid #ffffff;} 90 | strong{font-weight:bold;} 91 | em{font-style:italic;} 92 | .muted{color:#999999;} 93 | abbr{font-size:90%;text-transform:uppercase;border-bottom:1px dotted #ddd;cursor:help;} 94 | 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;} 95 | blockquote small{display:block;line-height:18px;color:#999999;}blockquote small:before{content:'\2014 \00A0';} 96 | 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;} 97 | q:before,q:after,blockquote:before,blockquote:after{content:"";} 98 | address{display:block;margin-bottom:18px;line-height:18px;font-style:normal;} 99 | small{font-size:100%;} 100 | cite{font-style:normal;} 101 | 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;} 102 | code{padding:3px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;} 103 | 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;} 104 | pre code{padding:0;background-color:transparent;} 105 | form{margin:0 0 18px;} 106 | fieldset{padding:0;margin:0;border:0;} 107 | 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;} 108 | label,input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:18px;} 109 | label{display:block;margin-bottom:5px;color:#333333;} 110 | 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;} 111 | .uneditable-textarea{width:auto;height:auto;} 112 | label input,label textarea,label select{display:block;} 113 | 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;} 114 | 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;} 115 | input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto;} 116 | select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px;} 117 | select{width:220px;background-color:#ffffff;} 118 | select[multiple],select[size]{height:auto;} 119 | input[type="image"]{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} 120 | textarea{height:auto;} 121 | input[type="hidden"]{display:none;} 122 | .radio,.checkbox{padding-left:18px;} 123 | .radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px;} 124 | .controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;} 125 | .radio.inline,.checkbox.inline{display:inline-block;margin-bottom:0;vertical-align:middle;} 126 | .radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;} 127 | .controls>.radio.inline:first-child,.controls>.checkbox.inline:first-child{padding-top:0;} 128 | 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;} 129 | 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;} 130 | 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;} 131 | .input-mini{width:60px;} 132 | .input-small{width:90px;} 133 | .input-medium{width:150px;} 134 | .input-large{width:210px;} 135 | .input-xlarge{width:270px;} 136 | .input-xxlarge{width:530px;} 137 | input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{float:none;margin-left:0;} 138 | input.span1,textarea.span1,.uneditable-input.span1{width:50px;} 139 | input.span2,textarea.span2,.uneditable-input.span2{width:130px;} 140 | input.span3,textarea.span3,.uneditable-input.span3{width:210px;} 141 | input.span4,textarea.span4,.uneditable-input.span4{width:290px;} 142 | input.span5,textarea.span5,.uneditable-input.span5{width:370px;} 143 | input.span6,textarea.span6,.uneditable-input.span6{width:450px;} 144 | input.span7,textarea.span7,.uneditable-input.span7{width:530px;} 145 | input.span8,textarea.span8,.uneditable-input.span8{width:610px;} 146 | input.span9,textarea.span9,.uneditable-input.span9{width:690px;} 147 | input.span10,textarea.span10,.uneditable-input.span10{width:770px;} 148 | input.span11,textarea.span11,.uneditable-input.span11{width:850px;} 149 | input.span12,textarea.span12,.uneditable-input.span12{width:930px;} 150 | input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#f5f5f5;border-color:#ddd;cursor:not-allowed;} 151 | .control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;} 152 | .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;} 153 | .control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;} 154 | .control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;} 155 | .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;} 156 | .control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;} 157 | .control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;} 158 | .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;} 159 | .control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;} 160 | 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;} 161 | .form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#f5f5f5;border-top:1px solid #ddd;} 162 | .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;} 163 | :-moz-placeholder{color:#999999;} 164 | ::-webkit-input-placeholder{color:#999999;} 165 | .help-block{margin-top:5px;margin-bottom:0;color:#999999;} 166 | .help-inline{display:inline-block;*display:inline;*zoom:1;margin-bottom:9px;vertical-align:middle;padding-left:5px;} 167 | .input-prepend,.input-append{margin-bottom:5px;*zoom:1;}.input-prepend:before,.input-append:before,.input-prepend:after,.input-append:after{display:table;content:"";} 168 | .input-prepend:after,.input-append:after{clear:both;} 169 | .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;} 170 | .input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc;} 171 | .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;} 172 | .input-prepend .active,.input-append .active{background-color:#a9dba9;border-color:#46a546;} 173 | .input-prepend .add-on{*margin-top:1px;} 174 | .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;} 175 | .input-append .uneditable-input{border-right-color:#ccc;} 176 | .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;} 177 | .input-append input:first-child{*margin-left:-160px;}.input-append input:first-child+.add-on{*margin-left:-21px;} 178 | .search-query{padding-left:14px;padding-right:14px;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px;} 179 | .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;} 180 | .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;} 181 | .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;} 182 | .control-group{margin-bottom:9px;} 183 | .form-horizontal legend+.control-group{margin-top:18px;-webkit-margin-top-collapse:separate;} 184 | .form-horizontal .control-group{margin-bottom:18px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";} 185 | .form-horizontal .control-group:after{clear:both;} 186 | .form-horizontal .control-group>label{float:left;width:140px;padding-top:5px;text-align:right;} 187 | .form-horizontal .controls{margin-left:160px;} 188 | .form-horizontal .form-actions{padding-left:160px;} 189 | table{max-width:100%;border-collapse:collapse;border-spacing:0;} 190 | .table{width:100%;margin-bottom:18px;}.table th,.table td{padding:8px;line-height:18px;text-align:left;border-top:1px solid #ddd;} 191 | .table th{font-weight:bold;vertical-align:bottom;} 192 | .table td{vertical-align:top;} 193 | .table thead:first-child tr th,.table thead:first-child tr td{border-top:0;} 194 | .table tbody+tbody{border-top:2px solid #ddd;} 195 | .table-condensed th,.table-condensed td{padding:4px 5px;} 196 | .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;} 197 | .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;} 198 | .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;} 199 | .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;} 200 | .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;} 201 | .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;} 202 | .table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;} 203 | table .span1{float:none;width:44px;margin-left:0;} 204 | table .span2{float:none;width:124px;margin-left:0;} 205 | table .span3{float:none;width:204px;margin-left:0;} 206 | table .span4{float:none;width:284px;margin-left:0;} 207 | table .span5{float:none;width:364px;margin-left:0;} 208 | table .span6{float:none;width:444px;margin-left:0;} 209 | table .span7{float:none;width:524px;margin-left:0;} 210 | table .span8{float:none;width:604px;margin-left:0;} 211 | table .span9{float:none;width:684px;margin-left:0;} 212 | table .span10{float:none;width:764px;margin-left:0;} 213 | table .span11{float:none;width:844px;margin-left:0;} 214 | table .span12{float:none;width:924px;margin-left:0;} 215 | [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;} 216 | .icon-white{background-image:url(../img/glyphicons-halflings-white.png);} 217 | .icon-glass{background-position:0 0;} 218 | .icon-music{background-position:-24px 0;} 219 | .icon-search{background-position:-48px 0;} 220 | .icon-envelope{background-position:-72px 0;} 221 | .icon-heart{background-position:-96px 0;} 222 | .icon-star{background-position:-120px 0;} 223 | .icon-star-empty{background-position:-144px 0;} 224 | .icon-user{background-position:-168px 0;} 225 | .icon-film{background-position:-192px 0;} 226 | .icon-th-large{background-position:-216px 0;} 227 | .icon-th{background-position:-240px 0;} 228 | .icon-th-list{background-position:-264px 0;} 229 | .icon-ok{background-position:-288px 0;} 230 | .icon-remove{background-position:-312px 0;} 231 | .icon-zoom-in{background-position:-336px 0;} 232 | .icon-zoom-out{background-position:-360px 0;} 233 | .icon-off{background-position:-384px 0;} 234 | .icon-signal{background-position:-408px 0;} 235 | .icon-cog{background-position:-432px 0;} 236 | .icon-trash{background-position:-456px 0;} 237 | .icon-home{background-position:0 -24px;} 238 | .icon-file{background-position:-24px -24px;} 239 | .icon-time{background-position:-48px -24px;} 240 | .icon-road{background-position:-72px -24px;} 241 | .icon-download-alt{background-position:-96px -24px;} 242 | .icon-download{background-position:-120px -24px;} 243 | .icon-upload{background-position:-144px -24px;} 244 | .icon-inbox{background-position:-168px -24px;} 245 | .icon-play-circle{background-position:-192px -24px;} 246 | .icon-repeat{background-position:-216px -24px;} 247 | .icon-refresh{background-position:-240px -24px;} 248 | .icon-list-alt{background-position:-264px -24px;} 249 | .icon-lock{background-position:-287px -24px;} 250 | .icon-flag{background-position:-312px -24px;} 251 | .icon-headphones{background-position:-336px -24px;} 252 | .icon-volume-off{background-position:-360px -24px;} 253 | .icon-volume-down{background-position:-384px -24px;} 254 | .icon-volume-up{background-position:-408px -24px;} 255 | .icon-qrcode{background-position:-432px -24px;} 256 | .icon-barcode{background-position:-456px -24px;} 257 | .icon-tag{background-position:0 -48px;} 258 | .icon-tags{background-position:-25px -48px;} 259 | .icon-book{background-position:-48px -48px;} 260 | .icon-bookmark{background-position:-72px -48px;} 261 | .icon-print{background-position:-96px -48px;} 262 | .icon-camera{background-position:-120px -48px;} 263 | .icon-font{background-position:-144px -48px;} 264 | .icon-bold{background-position:-167px -48px;} 265 | .icon-italic{background-position:-192px -48px;} 266 | .icon-text-height{background-position:-216px -48px;} 267 | .icon-text-width{background-position:-240px -48px;} 268 | .icon-align-left{background-position:-264px -48px;} 269 | .icon-align-center{background-position:-288px -48px;} 270 | .icon-align-right{background-position:-312px -48px;} 271 | .icon-align-justify{background-position:-336px -48px;} 272 | .icon-list{background-position:-360px -48px;} 273 | .icon-indent-left{background-position:-384px -48px;} 274 | .icon-indent-right{background-position:-408px -48px;} 275 | .icon-facetime-video{background-position:-432px -48px;} 276 | .icon-picture{background-position:-456px -48px;} 277 | .icon-pencil{background-position:0 -72px;} 278 | .icon-map-marker{background-position:-24px -72px;} 279 | .icon-adjust{background-position:-48px -72px;} 280 | .icon-tint{background-position:-72px -72px;} 281 | .icon-edit{background-position:-96px -72px;} 282 | .icon-share{background-position:-120px -72px;} 283 | .icon-check{background-position:-144px -72px;} 284 | .icon-move{background-position:-168px -72px;} 285 | .icon-step-backward{background-position:-192px -72px;} 286 | .icon-fast-backward{background-position:-216px -72px;} 287 | .icon-backward{background-position:-240px -72px;} 288 | .icon-play{background-position:-264px -72px;} 289 | .icon-pause{background-position:-288px -72px;} 290 | .icon-stop{background-position:-312px -72px;} 291 | .icon-forward{background-position:-336px -72px;} 292 | .icon-fast-forward{background-position:-360px -72px;} 293 | .icon-step-forward{background-position:-384px -72px;} 294 | .icon-eject{background-position:-408px -72px;} 295 | .icon-chevron-left{background-position:-432px -72px;} 296 | .icon-chevron-right{background-position:-456px -72px;} 297 | .icon-plus-sign{background-position:0 -96px;} 298 | .icon-minus-sign{background-position:-24px -96px;} 299 | .icon-remove-sign{background-position:-48px -96px;} 300 | .icon-ok-sign{background-position:-72px -96px;} 301 | .icon-question-sign{background-position:-96px -96px;} 302 | .icon-info-sign{background-position:-120px -96px;} 303 | .icon-screenshot{background-position:-144px -96px;} 304 | .icon-remove-circle{background-position:-168px -96px;} 305 | .icon-ok-circle{background-position:-192px -96px;} 306 | .icon-ban-circle{background-position:-216px -96px;} 307 | .icon-arrow-left{background-position:-240px -96px;} 308 | .icon-arrow-right{background-position:-264px -96px;} 309 | .icon-arrow-up{background-position:-289px -96px;} 310 | .icon-arrow-down{background-position:-312px -96px;} 311 | .icon-share-alt{background-position:-336px -96px;} 312 | .icon-resize-full{background-position:-360px -96px;} 313 | .icon-resize-small{background-position:-384px -96px;} 314 | .icon-plus{background-position:-408px -96px;} 315 | .icon-minus{background-position:-433px -96px;} 316 | .icon-asterisk{background-position:-456px -96px;} 317 | .icon-exclamation-sign{background-position:0 -120px;} 318 | .icon-gift{background-position:-24px -120px;} 319 | .icon-leaf{background-position:-48px -120px;} 320 | .icon-fire{background-position:-72px -120px;} 321 | .icon-eye-open{background-position:-96px -120px;} 322 | .icon-eye-close{background-position:-120px -120px;} 323 | .icon-warning-sign{background-position:-144px -120px;} 324 | .icon-plane{background-position:-168px -120px;} 325 | .icon-calendar{background-position:-192px -120px;} 326 | .icon-random{background-position:-216px -120px;} 327 | .icon-comment{background-position:-240px -120px;} 328 | .icon-magnet{background-position:-264px -120px;} 329 | .icon-chevron-up{background-position:-288px -120px;} 330 | .icon-chevron-down{background-position:-313px -119px;} 331 | .icon-retweet{background-position:-336px -120px;} 332 | .icon-shopping-cart{background-position:-360px -120px;} 333 | .icon-folder-close{background-position:-384px -120px;} 334 | .icon-folder-open{background-position:-408px -120px;} 335 | .icon-resize-vertical{background-position:-432px -119px;} 336 | .icon-resize-horizontal{background-position:-456px -118px;} 337 | .dropdown{position:relative;} 338 | .dropdown-toggle{*margin-bottom:-3px;} 339 | .dropdown-toggle:active,.open .dropdown-toggle{outline:0;} 340 | .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";} 341 | .dropdown .caret{margin-top:8px;margin-left:2px;} 342 | .dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100);} 343 | .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;} 344 | .dropdown-menu .divider{height:1px;margin:5px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;*width:100%;*margin:-5px 0 5px;} 345 | .dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#555555;white-space:nowrap;} 346 | .dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#ffffff;text-decoration:none;background-color:#0088cc;} 347 | .dropdown.open{*z-index:1000;}.dropdown.open .dropdown-toggle{color:#ffffff;background:#ccc;background:rgba(0, 0, 0, 0.3);} 348 | .dropdown.open .dropdown-menu{display:block;} 349 | .typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} 350 | .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);} 351 | .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;} 352 | .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;} 353 | .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;} 354 | .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;} 355 | .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;} 356 | .btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} 357 | .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;} 358 | .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;} 359 | .btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} 360 | .btn-large .icon{margin-top:1px;} 361 | .btn-small{padding:5px 9px;font-size:11px;line-height:16px;} 362 | .btn-small .icon{margin-top:-1px;} 363 | .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;} 364 | .btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active{color:rgba(255, 255, 255, 0.75);} 365 | .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;} 366 | .btn-primary:active,.btn-primary.active{background-color:#003399 \9;} 367 | .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;} 368 | .btn-warning:active,.btn-warning.active{background-color:#c67605 \9;} 369 | .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;} 370 | .btn-danger:active,.btn-danger.active{background-color:#942a25 \9;} 371 | .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;} 372 | .btn-success:active,.btn-success.active{background-color:#408140 \9;} 373 | .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;} 374 | .btn-info:active,.btn-info.active{background-color:#24748c \9;} 375 | 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;} 376 | button.btn.large,input[type="submit"].btn.large{*padding-top:7px;*padding-bottom:7px;} 377 | button.btn.small,input[type="submit"].btn.small{*padding-top:3px;*padding-bottom:3px;} 378 | .btn-group{position:relative;*zoom:1;*margin-left:.3em;}.btn-group:before,.btn-group:after{display:table;content:"";} 379 | .btn-group:after{clear:both;} 380 | .btn-group:first-child{*margin-left:0;} 381 | .btn-group+.btn-group{margin-left:5px;} 382 | .btn-toolbar{margin-top:9px;margin-bottom:9px;}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1;} 383 | .btn-group .btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} 384 | .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;} 385 | .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;} 386 | .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;} 387 | .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;} 388 | .btn-group .btn:hover,.btn-group .btn:focus,.btn-group .btn:active,.btn-group .btn.active{z-index:2;} 389 | .btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;} 390 | .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;} 391 | .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;} 392 | .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);} 393 | .btn .caret{margin-top:7px;margin-left:0;} 394 | .btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100);} 395 | .btn-primary .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret{border-top-color:#ffffff;opacity:0.75;filter:alpha(opacity=75);} 396 | .btn-small .caret{margin-top:4px;} 397 | .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;} 398 | .alert,.alert-heading{color:#c09853;} 399 | .alert .close{position:relative;top:-2px;right:-21px;line-height:18px;} 400 | .alert-success{background-color:#dff0d8;border-color:#d6e9c6;} 401 | .alert-success,.alert-success .alert-heading{color:#468847;} 402 | .alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;} 403 | .alert-danger,.alert-error,.alert-danger .alert-heading,.alert-error .alert-heading{color:#b94a48;} 404 | .alert-info{background-color:#d9edf7;border-color:#bce8f1;} 405 | .alert-info,.alert-info .alert-heading{color:#3a87ad;} 406 | .alert-block{padding-top:14px;padding-bottom:14px;} 407 | .alert-block>p,.alert-block>ul{margin-bottom:0;} 408 | .alert-block p+p{margin-top:5px;} 409 | .nav{margin-left:0;margin-bottom:18px;list-style:none;} 410 | .nav>li>a{display:block;} 411 | .nav>li>a:hover{text-decoration:none;background-color:#eeeeee;} 412 | .nav-list{padding-left:14px;padding-right:14px;margin-bottom:0;} 413 | .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);} 414 | .nav-list .nav-header{font-size:11px;font-weight:bold;line-height:18px;color:#999999;text-transform:uppercase;} 415 | .nav-list>li+.nav-header{margin-top:9px;} 416 | .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;} 417 | .nav-list [class^="icon-"]{margin-right:2px;} 418 | .nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";} 419 | .nav-tabs:after,.nav-pills:after{clear:both;} 420 | .nav-tabs>li,.nav-pills>li{float:left;} 421 | .nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;} 422 | .nav-tabs{border-bottom:1px solid #ddd;} 423 | .nav-tabs>li{margin-bottom:-1px;} 424 | .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;} 425 | .nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;} 426 | .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;} 427 | .nav-pills .active>a,.nav-pills .active>a:hover{color:#ffffff;background-color:#0088cc;} 428 | .nav-stacked>li{float:none;} 429 | .nav-stacked>li>a{margin-right:0;} 430 | .nav-tabs.nav-stacked{border-bottom:0;} 431 | .nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} 432 | .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;} 433 | .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;} 434 | .nav-tabs.nav-stacked>li>a:hover{border-color:#ddd;z-index:2;} 435 | .nav-pills.nav-stacked>li>a{margin-bottom:3px;} 436 | .nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;} 437 | .nav-tabs .dropdown-menu,.nav-pills .dropdown-menu{margin-top:1px;border-width:1px;} 438 | .nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} 439 | .nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{border-top-color:#0088cc;margin-top:6px;} 440 | .nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;} 441 | .nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333333;} 442 | .nav>.dropdown.active>a:hover{color:#000000;cursor:pointer;} 443 | .nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;} 444 | .nav .open .caret,.nav .open.active .caret,.nav .open a:hover .caret{border-top-color:#ffffff;opacity:1;filter:alpha(opacity=100);} 445 | .tabs-stacked .open>a:hover{border-color:#999999;} 446 | .tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";} 447 | .tabbable:after{clear:both;} 448 | .tabs-below .nav-tabs,.tabs-right .nav-tabs,.tabs-left .nav-tabs{border-bottom:0;} 449 | .tab-content>.tab-pane,.pill-content>.pill-pane{display:none;} 450 | .tab-content>.active,.pill-content>.active{display:block;} 451 | .tabs-below .nav-tabs{border-top:1px solid #ddd;} 452 | .tabs-below .nav-tabs>li{margin-top:-1px;margin-bottom:0;} 453 | .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;} 454 | .tabs-below .nav-tabs .active>a,.tabs-below .nav-tabs .active>a:hover{border-color:transparent #ddd #ddd #ddd;} 455 | .tabs-left .nav-tabs>li,.tabs-right .nav-tabs>li{float:none;} 456 | .tabs-left .nav-tabs>li>a,.tabs-right .nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;} 457 | .tabs-left .nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;} 458 | .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;} 459 | .tabs-left .nav-tabs>li>a:hover{border-color:#eeeeee #dddddd #eeeeee #eeeeee;} 460 | .tabs-left .nav-tabs .active>a,.tabs-left .nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;} 461 | .tabs-right .nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;} 462 | .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;} 463 | .tabs-right .nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #eeeeee #dddddd;} 464 | .tabs-right .nav-tabs .active>a,.tabs-right .nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;} 465 | .navbar{overflow:visible;margin-bottom:18px;} 466 | .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);} 467 | .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;} 468 | .btn-navbar:active,.btn-navbar.active{background-color:#080808 \9;} 469 | .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);} 470 | .btn-navbar .icon-bar+.icon-bar{margin-top:3px;} 471 | .nav-collapse.collapse{height:auto;} 472 | .navbar .brand:hover{text-decoration:none;} 473 | .navbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#ffffff;} 474 | .navbar .navbar-text{margin-bottom:0;line-height:40px;color:#999999;}.navbar .navbar-text a:hover{color:#ffffff;background-color:transparent;} 475 | .navbar .btn,.navbar .btn-group{margin-top:5px;} 476 | .navbar .btn-group .btn{margin-top:0;} 477 | .navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";} 478 | .navbar-form:after{clear:both;} 479 | .navbar-form input,.navbar-form select{display:inline-block;margin-top:5px;margin-bottom:0;} 480 | .navbar-form .radio,.navbar-form .checkbox{margin-top:5px;} 481 | .navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;} 482 | .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;} 483 | .navbar-search .search-query::-webkit-input-placeholder{color:#eeeeee;} 484 | .navbar-search .search-query:hover{color:#ffffff;background-color:#999999;background-color:rgba(255, 255, 255, 0.5);} 485 | .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;} 486 | .navbar-fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030;} 487 | .navbar-fixed-top .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} 488 | .navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;} 489 | .navbar .nav.pull-right{float:right;} 490 | .navbar .nav>li{display:block;float:left;} 491 | .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);} 492 | .navbar .nav>li>a:hover{background-color:transparent;color:#ffffff;text-decoration:none;} 493 | .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);} 494 | .navbar .divider-vertical{height:40px;width:1px;margin:0 9px;overflow:hidden;background-color:#222222;border-right:1px solid #333333;} 495 | .navbar .nav.pull-right{margin-left:10px;margin-right:0;} 496 | .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;} 497 | .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;} 498 | .navbar .nav .dropdown-toggle .caret,.navbar .nav .open.dropdown .caret{border-top-color:#ffffff;} 499 | .navbar .nav .active .caret{opacity:1;filter:alpha(opacity=100);} 500 | .navbar .nav .open>.dropdown-toggle,.navbar .nav .active>.dropdown-toggle,.navbar .nav .open.active>.dropdown-toggle{background-color:transparent;} 501 | .navbar .nav .active>.dropdown-toggle:hover{color:#ffffff;} 502 | .navbar .nav.pull-right .dropdown-menu{left:auto;right:0;}.navbar .nav.pull-right .dropdown-menu:before{left:auto;right:12px;} 503 | .navbar .nav.pull-right .dropdown-menu:after{left:auto;right:13px;} 504 | .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;} 505 | .breadcrumb .divider{padding:0 5px;color:#999999;} 506 | .breadcrumb .active a{color:#333333;} 507 | .pagination{height:36px;margin:18px 0;} 508 | .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);} 509 | .pagination li{display:inline;} 510 | .pagination a{float:left;padding:0 14px;line-height:34px;text-decoration:none;border:1px solid #ddd;border-left-width:0;} 511 | .pagination a:hover,.pagination .active a{background-color:#f5f5f5;} 512 | .pagination .active a{color:#999999;cursor:default;} 513 | .pagination .disabled a,.pagination .disabled a:hover{color:#999999;background-color:transparent;cursor:default;} 514 | .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;} 515 | .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;} 516 | .pagination-centered{text-align:center;} 517 | .pagination-right{text-align:right;} 518 | .pager{margin-left:0;margin-bottom:18px;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";} 519 | .pager:after{clear:both;} 520 | .pager li{display:inline;} 521 | .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;} 522 | .pager a:hover{text-decoration:none;background-color:#f5f5f5;} 523 | .pager .next a{float:right;} 524 | .pager .previous a{float:left;} 525 | .modal-open .dropdown-menu{z-index:2050;} 526 | .modal-open .dropdown.open{*z-index:2050;} 527 | .modal-open .popover{z-index:2060;} 528 | .modal-open .tooltip{z-index:2070;} 529 | .modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;} 530 | .modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);} 531 | .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%;} 532 | .modal.fade.in{top:50%;} 533 | .modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;} 534 | .modal-body{padding:15px;} 535 | .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:"";} 536 | .modal-footer:after{clear:both;} 537 | .modal-footer .btn{float:right;margin-left:5px;margin-bottom:0;} 538 | .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);} 539 | .tooltip.top{margin-top:-2px;} 540 | .tooltip.right{margin-left:2px;} 541 | .tooltip.bottom{margin-top:2px;} 542 | .tooltip.left{margin-left:-2px;} 543 | .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;} 544 | .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;} 545 | .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;} 546 | .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;} 547 | .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;} 548 | .tooltip-arrow{position:absolute;width:0;height:0;} 549 | .popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px;}.popover.top{margin-top:-5px;} 550 | .popover.right{margin-left:5px;} 551 | .popover.bottom{margin-top:5px;} 552 | .popover.left{margin-left:-5px;} 553 | .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;} 554 | .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;} 555 | .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;} 556 | .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;} 557 | .popover .arrow{position:absolute;width:0;height:0;} 558 | .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);} 559 | .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;} 560 | .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;} 561 | .thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";} 562 | .thumbnails:after{clear:both;} 563 | .thumbnails>li{float:left;margin:0 0 18px 20px;} 564 | .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);} 565 | 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);} 566 | .thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;} 567 | .thumbnail .caption{padding:9px;} 568 | .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;} 569 | .label-important{background-color:#b94a48;} 570 | .label-warning{background-color:#f89406;} 571 | .label-success{background-color:#468847;} 572 | .label-info{background-color:#3a87ad;} 573 | @-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;} 574 | .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;} 575 | .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;} 576 | .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;} 577 | .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);} 578 | .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);} 579 | .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);} 580 | .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);} 581 | .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);} 582 | .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);} 583 | .accordion{margin-bottom:18px;} 584 | .accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} 585 | .accordion-heading{border-bottom:0;} 586 | .accordion-heading .accordion-toggle{display:block;padding:8px 15px;} 587 | .accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;} 588 | .carousel{position:relative;margin-bottom:18px;line-height:1;} 589 | .carousel-inner{overflow:hidden;width:100%;position:relative;} 590 | .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;} 591 | .carousel .item>img{display:block;line-height:1;} 592 | .carousel .active,.carousel .next,.carousel .prev{display:block;} 593 | .carousel .active{left:0;} 594 | .carousel .next,.carousel .prev{position:absolute;top:0;width:100%;} 595 | .carousel .next{left:100%;} 596 | .carousel .prev{left:-100%;} 597 | .carousel .next.left,.carousel .prev.right{left:0;} 598 | .carousel .active.left{left:-100%;} 599 | .carousel .active.right{left:100%;} 600 | .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;} 601 | .carousel-control:hover{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);} 602 | .carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 15px 5px;background:#333333;background:rgba(0, 0, 0, 0.75);} 603 | .carousel-caption h4,.carousel-caption p{color:#ffffff;} 604 | .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;} 605 | .hero-unit p{font-size:18px;font-weight:200;line-height:27px;} 606 | .pull-right{float:right;} 607 | .pull-left{float:left;} 608 | .hide{display:none;} 609 | .show{display:block;} 610 | .invisible{visibility:hidden;} 611 | -------------------------------------------------------------------------------- /public/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 60px; 3 | padding-bottom: 40px; 4 | } 5 | 6 | .zf-green { 7 | color: #68b604; 8 | } 9 | 10 | .btn-success { 11 | background-color: #57a900; 12 | background-image: -moz-linear-gradient(top, #70d900, #57a900); 13 | background-image: -ms-linear-gradient(top, #70d900, #57a900); 14 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#70d900), to(#57a900)); 15 | background-image: -webkit-linear-gradient(top, #70d900, #57a900); 16 | background-image: -o-linear-gradient(top, #70d900, #57a900); 17 | background-image: linear-gradient(top, #70d900, #57a900); 18 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#70d900', endColorstr='#57a900', GradientType=0); 19 | } 20 | 21 | .btn-success:hover, 22 | .btn-success:active, 23 | .btn-success.active, 24 | .btn-success.disabled, 25 | .btn-success[disabled] { 26 | background-color: #57a900; 27 | } 28 | 29 | .btn-success:active, .btn-success.active { 30 | background-color: #57a900 \9; 31 | } 32 | 33 | div.container a.brand { 34 | background: url("../images/zf2-logo.png") no-repeat scroll 0 10px transparent; 35 | margin-left: 0; 36 | padding: 8px 20px 12px 40px; 37 | } 38 | -------------------------------------------------------------------------------- /public/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendframework/zf2-tutorial/02971f3a370830f271a4fd9b128399646c26442f/public/images/favicon.ico -------------------------------------------------------------------------------- /public/images/zf2-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zendframework/zf2-tutorial/02971f3a370830f271a4fd9b128399646c26442f/public/images/zf2-logo.png -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | run()->send(); 13 | -------------------------------------------------------------------------------- /public/js/html5.js: -------------------------------------------------------------------------------- 1 | // iepp v2.1pre @jon_neal & @aFarkas github.com/aFarkas/iepp 2 | // html5shiv @rem remysharp.com/html5-enabling-script 3 | // Dual licensed under the MIT or GPL Version 2 licenses 4 | /*@cc_on(function(a,b){function r(a){var b=-1;while(++b