At the moment it's quicker just to flatten the tree and worry about structure later
8
br/.gitignore
vendored
@@ -1,8 +0,0 @@
|
||||
web/bundles/
|
||||
app/bootstrap.php.cache
|
||||
app/cache/*
|
||||
app/logs/*
|
||||
build/
|
||||
vendor
|
||||
bin
|
||||
composer.phar
|
||||
19
br/LICENSE
@@ -1,19 +0,0 @@
|
||||
Copyright (c) 2004-2012 Fabien Potencier
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished
|
||||
to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -1,4 +0,0 @@
|
||||
bodyrep
|
||||
=======
|
||||
|
||||
powered by Duff.st circa 2009
|
||||
252
br/UPGRADE.md
@@ -1,252 +0,0 @@
|
||||
Symfony Standard Edition Upgrade
|
||||
================================
|
||||
|
||||
From Symfony 2.0 to Symfony 2.1
|
||||
-------------------------------
|
||||
|
||||
### Project Dependencies
|
||||
|
||||
As of Symfony 2.1, project dependencies are managed by
|
||||
[Composer](http://getcomposer.org/):
|
||||
|
||||
* The `bin/vendors` script can be removed as `composer.phar` does all the work
|
||||
now (it is recommended to install it globally on your machine).
|
||||
|
||||
* The `deps` file need to be replaced with the `composer.json` one.
|
||||
|
||||
* The `composer.lock` is the equivalent of the generated `deps.lock` file and
|
||||
it is automatically generated by Composer.
|
||||
|
||||
Download the default
|
||||
[`composer.json`](https://raw.github.com/symfony/symfony-standard/master/composer.json)
|
||||
and
|
||||
[`composer.lock`](https://raw.github.com/symfony/symfony-standard/master/composer.lock)
|
||||
files for Symfony 2.1 and put them into the main directory of your project. If
|
||||
you have customized your `deps` file, move the added dependencies to the
|
||||
`composer.json` file (many bundles and PHP libraries are already available as
|
||||
Composer packages -- search for them on [Packagist](http://packagist.org/)).
|
||||
|
||||
Remove your current `vendor` directory.
|
||||
|
||||
Finally, run Composer:
|
||||
|
||||
$ composer.phar install
|
||||
|
||||
### `app/autoload.php`
|
||||
|
||||
The default `autoload.php` reads as follows (it has been simplified a lot as
|
||||
autoloading for libraries and bundles declared in your `composer.json` file is
|
||||
automatically managed by the Composer autoloader):
|
||||
|
||||
<?php
|
||||
|
||||
use Doctrine\Common\Annotations\AnnotationRegistry;
|
||||
|
||||
$loader = include __DIR__.'/../vendor/autoload.php';
|
||||
|
||||
// intl
|
||||
if (!function_exists('intl_get_error_code')) {
|
||||
require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';
|
||||
|
||||
$loader->add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs');
|
||||
}
|
||||
|
||||
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
|
||||
|
||||
return $loader;
|
||||
|
||||
### `app/config/config.yml`
|
||||
|
||||
The `framework.charset` setting must be removed. If you are not using `UTF-8`
|
||||
for your application, override the `getCharset()` method in your `AppKernel`
|
||||
class instead:
|
||||
|
||||
class AppKernel extends Kernel
|
||||
{
|
||||
public function getCharset()
|
||||
{
|
||||
return 'ISO-8859-1';
|
||||
}
|
||||
|
||||
// ...
|
||||
}
|
||||
|
||||
You might want to add the new `strict_requirements` parameter to
|
||||
`framework.router` (it avoids fatal errors in the production environment when
|
||||
a link cannot be generated):
|
||||
|
||||
framework:
|
||||
router:
|
||||
strict_requirements: %kernel.debug%
|
||||
|
||||
The `default_locale` parameter is now a setting of the main `framework`
|
||||
configuration (it was under the `framework.session` in 2.0):
|
||||
|
||||
framework:
|
||||
default_locale: %locale%
|
||||
|
||||
The `auto_start` setting under `framework.session` must be removed as it is
|
||||
not used anymore (the session is now always started on-demand). If
|
||||
`auto_start` was the only setting under the `framework.session` entry, don't
|
||||
remove it entirely, but set its value to `~` (`~` means `null` in YAML)
|
||||
instead:
|
||||
|
||||
framework:
|
||||
session: ~
|
||||
|
||||
The `trust_proxy_headers` setting was added in the default configuration file
|
||||
(as it should be set to `true` when you install your application behind a
|
||||
reverse proxy):
|
||||
|
||||
framework:
|
||||
trust_proxy_headers: false
|
||||
|
||||
An empty `bundles` entry was added to the `assetic` configuration:
|
||||
|
||||
assetic:
|
||||
bundles: []
|
||||
|
||||
The default `swiftmailer` configuration now has the `spool` setting configured
|
||||
to the `memory` type to defer email sending after the response is sent to the
|
||||
user (recommended for better end-user performance):
|
||||
|
||||
swiftmailer:
|
||||
spool: { type: memory }
|
||||
|
||||
The `jms_security_extra` configuration was moved to the `security.yml`
|
||||
configuration file.
|
||||
|
||||
### `app/config/config_dev.yml`
|
||||
|
||||
An example of how to send all emails to a unique address was added:
|
||||
|
||||
#swiftmailer:
|
||||
# delivery_address: me@example.com
|
||||
|
||||
### `app/config/config_test.yml`
|
||||
|
||||
The `storage_id` setting must be changed to `session.storage.mock_file`:
|
||||
|
||||
framework:
|
||||
session:
|
||||
storage_id: session.storage.mock_file
|
||||
|
||||
### `app/config/parameters.ini`
|
||||
|
||||
The file has been converted to a YAML file which reads as follows:
|
||||
|
||||
parameters:
|
||||
database_driver: pdo_mysql
|
||||
database_host: localhost
|
||||
database_port: ~
|
||||
database_name: symfony
|
||||
database_user: root
|
||||
database_password: ~
|
||||
|
||||
mailer_transport: smtp
|
||||
mailer_host: localhost
|
||||
mailer_user: ~
|
||||
mailer_password: ~
|
||||
|
||||
locale: en
|
||||
secret: ThisTokenIsNotSoSecretChangeIt
|
||||
|
||||
Note that if you convert your parameters file to YAML, you must also change
|
||||
its reference in `app/config/config.yml`.
|
||||
|
||||
### `app/config/routing_dev.yml`
|
||||
|
||||
The `_assetic` entry was removed:
|
||||
|
||||
#_assetic:
|
||||
# resource: .
|
||||
# type: assetic
|
||||
|
||||
### `app/config/security.yml`
|
||||
|
||||
Under `security.access_control`, the default rule for internal routes was changed:
|
||||
|
||||
security:
|
||||
access_control:
|
||||
#- { path: ^/_internal/secure, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }
|
||||
|
||||
Under `security.providers`, the `in_memory` example was updated to the following:
|
||||
|
||||
security:
|
||||
providers:
|
||||
in_memory:
|
||||
memory:
|
||||
users:
|
||||
user: { password: userpass, roles: [ 'ROLE_USER' ] }
|
||||
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
|
||||
|
||||
### `app/AppKernel.php`
|
||||
|
||||
The following bundles have been added to the list of default registered bundles:
|
||||
|
||||
new JMS\AopBundle\JMSAopBundle(),
|
||||
new JMS\DiExtraBundle\JMSDiExtraBundle($this),
|
||||
|
||||
### `web/app.php`
|
||||
|
||||
The default `web/app.php` file now reads as follows:
|
||||
|
||||
<?php
|
||||
|
||||
use Symfony\Component\ClassLoader\ApcClassLoader;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
|
||||
|
||||
// Use APC for autoloading to improve performance
|
||||
// Change 'sf2' by the prefix you want in order to prevent key conflict with another application
|
||||
/*
|
||||
$loader = new ApcClassLoader('sf2', $loader);
|
||||
$loader->register(true);
|
||||
*/
|
||||
|
||||
require_once __DIR__.'/../app/AppKernel.php';
|
||||
//require_once __DIR__.'/../app/AppCache.php';
|
||||
|
||||
$kernel = new AppKernel('prod', false);
|
||||
$kernel->loadClassCache();
|
||||
//$kernel = new AppCache($kernel);
|
||||
$request = Request::createFromGlobals();
|
||||
$response = $kernel->handle($request);
|
||||
$response->send();
|
||||
$kernel->terminate($request, $response);
|
||||
|
||||
### `web/app_dev.php`
|
||||
|
||||
The default `web/app_dev.php` file now reads as follows:
|
||||
|
||||
<?php
|
||||
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
// If you don't want to setup permissions the proper way, just uncomment the following PHP line
|
||||
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
|
||||
//umask(0000);
|
||||
|
||||
// This check prevents access to debug front controllers that are deployed by accident to production servers.
|
||||
// Feel free to remove this, extend it, or make something more sophisticated.
|
||||
if (isset($_SERVER['HTTP_CLIENT_IP'])
|
||||
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|
||||
|| !in_array(@$_SERVER['REMOTE_ADDR'], array(
|
||||
'127.0.0.1',
|
||||
'::1',
|
||||
))
|
||||
) {
|
||||
header('HTTP/1.0 403 Forbidden');
|
||||
exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
|
||||
}
|
||||
|
||||
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
|
||||
require_once __DIR__.'/../app/AppKernel.php';
|
||||
|
||||
$kernel = new AppKernel('dev', true);
|
||||
$kernel->loadClassCache();
|
||||
$request = Request::createFromGlobals();
|
||||
$response = $kernel->handle($request);
|
||||
$response->send();
|
||||
$kernel->terminate($request, $response);
|
||||
@@ -1,9 +0,0 @@
|
||||
<?php
|
||||
|
||||
require_once __DIR__.'/AppKernel.php';
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\HttpCache\HttpCache;
|
||||
|
||||
class AppCache extends HttpCache
|
||||
{
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Symfony\Component\HttpKernel\Kernel;
|
||||
use Symfony\Component\Config\Loader\LoaderInterface;
|
||||
|
||||
class AppKernel extends Kernel
|
||||
{
|
||||
public function registerBundles()
|
||||
{
|
||||
$bundles = array(
|
||||
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
|
||||
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
|
||||
new Symfony\Bundle\TwigBundle\TwigBundle(),
|
||||
new Symfony\Bundle\MonologBundle\MonologBundle(),
|
||||
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
|
||||
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
|
||||
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
|
||||
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
|
||||
new JMS\AopBundle\JMSAopBundle(),
|
||||
new JMS\DiExtraBundle\JMSDiExtraBundle($this),
|
||||
new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),
|
||||
new BodyRep\BodyRep()
|
||||
);
|
||||
|
||||
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
|
||||
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
|
||||
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
|
||||
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
|
||||
}
|
||||
|
||||
return $bundles;
|
||||
}
|
||||
|
||||
public function registerContainerConfiguration(LoaderInterface $loader)
|
||||
{
|
||||
$loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
|
||||
}
|
||||
}
|
||||
@@ -1,638 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Users of PHP 5.2 should be able to run the requirements checks.
|
||||
* This is why the file and all classes must be compatible with PHP 5.2+
|
||||
* (e.g. not using namespaces and closures).
|
||||
*
|
||||
* ************** CAUTION **************
|
||||
*
|
||||
* DO NOT EDIT THIS FILE as it will be overriden by Composer as part of
|
||||
* the installation/update process. The original file resides in the
|
||||
* SensioDistributionBundle.
|
||||
*
|
||||
* ************** CAUTION **************
|
||||
*/
|
||||
|
||||
/**
|
||||
* Represents a single PHP requirement, e.g. an installed extension.
|
||||
* It can be a mandatory requirement or an optional recommendation.
|
||||
* There is a special subclass, named PhpIniRequirement, to check a php.ini configuration.
|
||||
*
|
||||
* @author Tobias Schultze <http://tobion.de>
|
||||
*/
|
||||
class Requirement
|
||||
{
|
||||
private $fulfilled;
|
||||
private $testMessage;
|
||||
private $helpText;
|
||||
private $helpHtml;
|
||||
private $optional;
|
||||
|
||||
/**
|
||||
* Constructor that initializes the requirement.
|
||||
*
|
||||
* @param Boolean $fulfilled Whether the requirement is fulfilled
|
||||
* @param string $testMessage The message for testing the requirement
|
||||
* @param string $helpHtml The help text formatted in HTML for resolving the problem
|
||||
* @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
|
||||
* @param Boolean $optional Whether this is only an optional recommendation not a mandatory requirement
|
||||
*/
|
||||
public function __construct($fulfilled, $testMessage, $helpHtml, $helpText = null, $optional = false)
|
||||
{
|
||||
$this->fulfilled = (Boolean) $fulfilled;
|
||||
$this->testMessage = (string) $testMessage;
|
||||
$this->helpHtml = (string) $helpHtml;
|
||||
$this->helpText = null === $helpText ? strip_tags($this->helpHtml) : (string) $helpText;
|
||||
$this->optional = (Boolean) $optional;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the requirement is fulfilled.
|
||||
*
|
||||
* @return Boolean true if fulfilled, otherwise false
|
||||
*/
|
||||
public function isFulfilled()
|
||||
{
|
||||
return $this->fulfilled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the message for testing the requirement.
|
||||
*
|
||||
* @return string The test message
|
||||
*/
|
||||
public function getTestMessage()
|
||||
{
|
||||
return $this->testMessage;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the help text for resolving the problem
|
||||
*
|
||||
* @return string The help text
|
||||
*/
|
||||
public function getHelpText()
|
||||
{
|
||||
return $this->helpText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the help text formatted in HTML.
|
||||
*
|
||||
* @return string The HTML help
|
||||
*/
|
||||
public function getHelpHtml()
|
||||
{
|
||||
return $this->helpHtml;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this is only an optional recommendation and not a mandatory requirement.
|
||||
*
|
||||
* @return Boolean true if optional, false if mandatory
|
||||
*/
|
||||
public function isOptional()
|
||||
{
|
||||
return $this->optional;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a PHP requirement in form of a php.ini configuration.
|
||||
*
|
||||
* @author Tobias Schultze <http://tobion.de>
|
||||
*/
|
||||
class PhpIniRequirement extends Requirement
|
||||
{
|
||||
/**
|
||||
* Constructor that initializes the requirement.
|
||||
*
|
||||
* @param string $cfgName The configuration name used for ini_get()
|
||||
* @param Boolean|callback $evaluation Either a Boolean indicating whether the configuration should evaluate to true or false,
|
||||
or a callback function receiving the configuration value as parameter to determine the fulfillment of the requirement
|
||||
* @param Boolean $approveCfgAbsence If true the Requirement will be fulfilled even if the configuration option does not exist, i.e. ini_get() returns false.
|
||||
This is helpful for abandoned configs in later PHP versions or configs of an optional extension, like Suhosin.
|
||||
Example: You require a config to be true but PHP later removes this config and defaults it to true internally.
|
||||
* @param string|null $testMessage The message for testing the requirement (when null and $evaluation is a Boolean a default message is derived)
|
||||
* @param string|null $helpHtml The help text formatted in HTML for resolving the problem (when null and $evaluation is a Boolean a default help is derived)
|
||||
* @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
|
||||
* @param Boolean $optional Whether this is only an optional recommendation not a mandatory requirement
|
||||
*/
|
||||
public function __construct($cfgName, $evaluation, $approveCfgAbsence = false, $testMessage = null, $helpHtml = null, $helpText = null, $optional = false)
|
||||
{
|
||||
$cfgValue = ini_get($cfgName);
|
||||
|
||||
if (is_callable($evaluation)) {
|
||||
if (null === $testMessage || null === $helpHtml) {
|
||||
throw new InvalidArgumentException('You must provide the parameters testMessage and helpHtml for a callback evaluation.');
|
||||
}
|
||||
|
||||
$fulfilled = call_user_func($evaluation, $cfgValue);
|
||||
} else {
|
||||
if (null === $testMessage) {
|
||||
$testMessage = sprintf('%s %s be %s in php.ini',
|
||||
$cfgName,
|
||||
$optional ? 'should' : 'must',
|
||||
$evaluation ? 'enabled' : 'disabled'
|
||||
);
|
||||
}
|
||||
|
||||
if (null === $helpHtml) {
|
||||
$helpHtml = sprintf('Set <strong>%s</strong> to <strong>%s</strong> in php.ini<a href="#phpini">*</a>.',
|
||||
$cfgName,
|
||||
$evaluation ? 'on' : 'off'
|
||||
);
|
||||
}
|
||||
|
||||
$fulfilled = $evaluation == $cfgValue;
|
||||
}
|
||||
|
||||
parent::__construct($fulfilled || ($approveCfgAbsence && false === $cfgValue), $testMessage, $helpHtml, $helpText, $optional);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A RequirementCollection represents a set of Requirement instances.
|
||||
*
|
||||
* @author Tobias Schultze <http://tobion.de>
|
||||
*/
|
||||
class RequirementCollection implements IteratorAggregate
|
||||
{
|
||||
private $requirements = array();
|
||||
|
||||
/**
|
||||
* Gets the current RequirementCollection as an Iterator.
|
||||
*
|
||||
* @return Traversable A Traversable interface
|
||||
*/
|
||||
public function getIterator()
|
||||
{
|
||||
return new ArrayIterator($this->requirements);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a Requirement.
|
||||
*
|
||||
* @param Requirement $requirement A Requirement instance
|
||||
*/
|
||||
public function add(Requirement $requirement)
|
||||
{
|
||||
$this->requirements[] = $requirement;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a mandatory requirement.
|
||||
*
|
||||
* @param Boolean $fulfilled Whether the requirement is fulfilled
|
||||
* @param string $testMessage The message for testing the requirement
|
||||
* @param string $helpHtml The help text formatted in HTML for resolving the problem
|
||||
* @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
|
||||
*/
|
||||
public function addRequirement($fulfilled, $testMessage, $helpHtml, $helpText = null)
|
||||
{
|
||||
$this->add(new Requirement($fulfilled, $testMessage, $helpHtml, $helpText, false));
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an optional recommendation.
|
||||
*
|
||||
* @param Boolean $fulfilled Whether the recommendation is fulfilled
|
||||
* @param string $testMessage The message for testing the recommendation
|
||||
* @param string $helpHtml The help text formatted in HTML for resolving the problem
|
||||
* @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
|
||||
*/
|
||||
public function addRecommendation($fulfilled, $testMessage, $helpHtml, $helpText = null)
|
||||
{
|
||||
$this->add(new Requirement($fulfilled, $testMessage, $helpHtml, $helpText, true));
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a mandatory requirement in form of a php.ini configuration.
|
||||
*
|
||||
* @param string $cfgName The configuration name used for ini_get()
|
||||
* @param Boolean|callback $evaluation Either a Boolean indicating whether the configuration should evaluate to true or false,
|
||||
or a callback function receiving the configuration value as parameter to determine the fulfillment of the requirement
|
||||
* @param Boolean $approveCfgAbsence If true the Requirement will be fulfilled even if the configuration option does not exist, i.e. ini_get() returns false.
|
||||
This is helpful for abandoned configs in later PHP versions or configs of an optional extension, like Suhosin.
|
||||
Example: You require a config to be true but PHP later removes this config and defaults it to true internally.
|
||||
* @param string $testMessage The message for testing the requirement (when null and $evaluation is a Boolean a default message is derived)
|
||||
* @param string $helpHtml The help text formatted in HTML for resolving the problem (when null and $evaluation is a Boolean a default help is derived)
|
||||
* @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
|
||||
*/
|
||||
public function addPhpIniRequirement($cfgName, $evaluation, $approveCfgAbsence = false, $testMessage = null, $helpHtml = null, $helpText = null)
|
||||
{
|
||||
$this->add(new PhpIniRequirement($cfgName, $evaluation, $approveCfgAbsence, $testMessage, $helpHtml, $helpText, false));
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an optional recommendation in form of a php.ini configuration.
|
||||
*
|
||||
* @param string $cfgName The configuration name used for ini_get()
|
||||
* @param Boolean|callback $evaluation Either a Boolean indicating whether the configuration should evaluate to true or false,
|
||||
or a callback function receiving the configuration value as parameter to determine the fulfillment of the requirement
|
||||
* @param Boolean $approveCfgAbsence If true the Requirement will be fulfilled even if the configuration option does not exist, i.e. ini_get() returns false.
|
||||
This is helpful for abandoned configs in later PHP versions or configs of an optional extension, like Suhosin.
|
||||
Example: You require a config to be true but PHP later removes this config and defaults it to true internally.
|
||||
* @param string $testMessage The message for testing the requirement (when null and $evaluation is a Boolean a default message is derived)
|
||||
* @param string $helpHtml The help text formatted in HTML for resolving the problem (when null and $evaluation is a Boolean a default help is derived)
|
||||
* @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
|
||||
*/
|
||||
public function addPhpIniRecommendation($cfgName, $evaluation, $approveCfgAbsence = false, $testMessage = null, $helpHtml = null, $helpText = null)
|
||||
{
|
||||
$this->add(new PhpIniRequirement($cfgName, $evaluation, $approveCfgAbsence, $testMessage, $helpHtml, $helpText, true));
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a requirement collection to the current set of requirements.
|
||||
*
|
||||
* @param RequirementCollection $collection A RequirementCollection instance
|
||||
*/
|
||||
public function addCollection(RequirementCollection $collection)
|
||||
{
|
||||
$this->requirements = array_merge($this->requirements, $collection->all());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns both requirements and recommendations.
|
||||
*
|
||||
* @return array Array of Requirement instances
|
||||
*/
|
||||
public function all()
|
||||
{
|
||||
return $this->requirements;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all mandatory requirements.
|
||||
*
|
||||
* @return array Array of Requirement instances
|
||||
*/
|
||||
public function getRequirements()
|
||||
{
|
||||
$array = array();
|
||||
foreach ($this->requirements as $req) {
|
||||
if (!$req->isOptional()) {
|
||||
$array[] = $req;
|
||||
}
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the mandatory requirements that were not met.
|
||||
*
|
||||
* @return array Array of Requirement instances
|
||||
*/
|
||||
public function getFailedRequirements()
|
||||
{
|
||||
$array = array();
|
||||
foreach ($this->requirements as $req) {
|
||||
if (!$req->isFulfilled() && !$req->isOptional()) {
|
||||
$array[] = $req;
|
||||
}
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all optional recommmendations.
|
||||
*
|
||||
* @return array Array of Requirement instances
|
||||
*/
|
||||
public function getRecommendations()
|
||||
{
|
||||
$array = array();
|
||||
foreach ($this->requirements as $req) {
|
||||
if ($req->isOptional()) {
|
||||
$array[] = $req;
|
||||
}
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the recommendations that were not met.
|
||||
*
|
||||
* @return array Array of Requirement instances
|
||||
*/
|
||||
public function getFailedRecommendations()
|
||||
{
|
||||
$array = array();
|
||||
foreach ($this->requirements as $req) {
|
||||
if (!$req->isFulfilled() && $req->isOptional()) {
|
||||
$array[] = $req;
|
||||
}
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether a php.ini configuration is not correct.
|
||||
*
|
||||
* @return Boolean php.ini configuration problem?
|
||||
*/
|
||||
public function hasPhpIniConfigIssue()
|
||||
{
|
||||
foreach ($this->requirements as $req) {
|
||||
if (!$req->isFulfilled() && $req instanceof PhpIniRequirement) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the PHP configuration file (php.ini) path.
|
||||
*
|
||||
* @return string|false php.ini file path
|
||||
*/
|
||||
public function getPhpIniConfigPath()
|
||||
{
|
||||
return get_cfg_var('cfg_file_path');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This class specifies all requirements and optional recommendations that
|
||||
* are necessary to run the Symfony Standard Edition.
|
||||
*
|
||||
* @author Tobias Schultze <http://tobion.de>
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*/
|
||||
class SymfonyRequirements extends RequirementCollection
|
||||
{
|
||||
const REQUIRED_PHP_VERSION = '5.3.3';
|
||||
|
||||
/**
|
||||
* Constructor that initializes the requirements.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
/* mandatory requirements follow */
|
||||
|
||||
$installedPhpVersion = phpversion();
|
||||
|
||||
$this->addRequirement(
|
||||
version_compare($installedPhpVersion, self::REQUIRED_PHP_VERSION, '>='),
|
||||
sprintf('PHP version must be at least %s (%s installed)', self::REQUIRED_PHP_VERSION, $installedPhpVersion),
|
||||
sprintf('You are running PHP version "<strong>%s</strong>", but Symfony needs at least PHP "<strong>%s</strong>" to run.
|
||||
Before using Symfony, upgrade your PHP installation, preferably to the latest version.',
|
||||
$installedPhpVersion, self::REQUIRED_PHP_VERSION),
|
||||
sprintf('Install PHP %s or newer (installed version is %s)', self::REQUIRED_PHP_VERSION, $installedPhpVersion)
|
||||
);
|
||||
|
||||
$this->addRequirement(
|
||||
version_compare($installedPhpVersion, '5.3.16', '!='),
|
||||
'PHP version must not be 5.3.16 as Symfony won\'t work properly with it',
|
||||
'Install PHP 5.3.17 or newer (or downgrade to an earlier PHP version)'
|
||||
);
|
||||
|
||||
$this->addRequirement(
|
||||
is_dir(__DIR__.'/../vendor/composer'),
|
||||
'Vendor libraries must be installed',
|
||||
'Vendor libraries are missing. Install composer following instructions from <a href="http://getcomposer.org/">http://getcomposer.org/</a>. ' .
|
||||
'Then run "<strong>php composer.phar install</strong>" to install them.'
|
||||
);
|
||||
|
||||
$baseDir = basename(__DIR__);
|
||||
|
||||
$this->addRequirement(
|
||||
is_writable(__DIR__.'/cache'),
|
||||
"$baseDir/cache/ directory must be writable",
|
||||
"Change the permissions of the \"<strong>$baseDir/cache/</strong>\" directory so that the web server can write into it."
|
||||
);
|
||||
|
||||
$this->addRequirement(
|
||||
is_writable(__DIR__.'/logs'),
|
||||
"$baseDir/logs/ directory must be writable",
|
||||
"Change the permissions of the \"<strong>$baseDir/logs/</strong>\" directory so that the web server can write into it."
|
||||
);
|
||||
|
||||
$this->addPhpIniRequirement(
|
||||
'date.timezone', true, false,
|
||||
'date.timezone setting must be set',
|
||||
'Set the "<strong>date.timezone</strong>" setting in php.ini<a href="#phpini">*</a> (like Europe/Paris).'
|
||||
);
|
||||
|
||||
if (version_compare($installedPhpVersion, self::REQUIRED_PHP_VERSION, '>=')) {
|
||||
$this->addRequirement(
|
||||
(in_array(date_default_timezone_get(), DateTimeZone::listIdentifiers())),
|
||||
sprintf('Configured default timezone "%s" must be supported by your installation of PHP', date_default_timezone_get()),
|
||||
'Your default timezone is not supported by PHP. Check for typos in your <strong>php.ini</strong> file and have a look at the list of deprecated timezones at <a href="http://php.net/manual/en/timezones.others.php">http://php.net/manual/en/timezones.others.php</a>.'
|
||||
);
|
||||
}
|
||||
|
||||
$this->addRequirement(
|
||||
function_exists('json_encode'),
|
||||
'json_encode() must be available',
|
||||
'Install and enable the <strong>JSON</strong> extension.'
|
||||
);
|
||||
|
||||
$this->addRequirement(
|
||||
function_exists('session_start'),
|
||||
'session_start() must be available',
|
||||
'Install and enable the <strong>session</strong> extension.'
|
||||
);
|
||||
|
||||
$this->addRequirement(
|
||||
function_exists('ctype_alpha'),
|
||||
'ctype_alpha() must be available',
|
||||
'Install and enable the <strong>ctype</strong> extension.'
|
||||
);
|
||||
|
||||
$this->addRequirement(
|
||||
function_exists('token_get_all'),
|
||||
'token_get_all() must be available',
|
||||
'Install and enable the <strong>Tokenizer</strong> extension.'
|
||||
);
|
||||
|
||||
$this->addRequirement(
|
||||
function_exists('simplexml_import_dom'),
|
||||
'simplexml_import_dom() must be available',
|
||||
'Install and enable the <strong>SimpleXML</strong> extension.'
|
||||
);
|
||||
|
||||
if (function_exists('apc_store') && ini_get('apc.enabled')) {
|
||||
$this->addRequirement(
|
||||
version_compare(phpversion('apc'), '3.0.17', '>='),
|
||||
'APC version must be at least 3.0.17',
|
||||
'Upgrade your <strong>APC</strong> extension (3.0.17+).'
|
||||
);
|
||||
}
|
||||
|
||||
$this->addPhpIniRequirement('detect_unicode', false);
|
||||
|
||||
if (extension_loaded('suhosin')) {
|
||||
$this->addPhpIniRequirement(
|
||||
'suhosin.executor.include.whitelist',
|
||||
create_function('$cfgValue', 'return false !== stripos($cfgValue, "phar");'),
|
||||
false,
|
||||
'suhosin.executor.include.whitelist must be configured correctly in php.ini',
|
||||
'Add "<strong>phar</strong>" to <strong>suhosin.executor.include.whitelist</strong> in php.ini<a href="#phpini">*</a>.'
|
||||
);
|
||||
}
|
||||
|
||||
if (extension_loaded('xdebug')) {
|
||||
$this->addPhpIniRequirement(
|
||||
'xdebug.show_exception_trace', false, true
|
||||
);
|
||||
|
||||
$this->addPhpIniRequirement(
|
||||
'xdebug.scream', false, true
|
||||
);
|
||||
}
|
||||
|
||||
$pcreVersion = defined('PCRE_VERSION') ? (float) PCRE_VERSION : null;
|
||||
|
||||
$this->addRequirement(
|
||||
null !== $pcreVersion && $pcreVersion > 8.0,
|
||||
sprintf('PCRE extension must be available and at least 8.0 (%s installed)', $pcreVersion ? $pcreVersion : 'not'),
|
||||
'Upgrade your <strong>PCRE</strong> extension (8.0+).'
|
||||
);
|
||||
|
||||
/* optional recommendations follow */
|
||||
|
||||
$this->addRecommendation(
|
||||
file_get_contents(__FILE__) === file_get_contents(__DIR__.'/../vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/skeleton/app/SymfonyRequirements.php'),
|
||||
'Requirements file should be up-to-date',
|
||||
'Your requirements file is outdated. Run composer install and re-check your configuration.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
version_compare($installedPhpVersion, '5.3.4', '>='),
|
||||
'You should use at least PHP 5.3.4 due to PHP bug #52083 in earlier versions',
|
||||
'Your project might malfunction randomly due to PHP bug #52083 ("Notice: Trying to get property of non-object"). Install PHP 5.3.4 or newer.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
version_compare($installedPhpVersion, '5.3.8', '>='),
|
||||
'When using annotations you should have at least PHP 5.3.8 due to PHP bug #55156',
|
||||
'Install PHP 5.3.8 or newer if your project uses annotations.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
version_compare($installedPhpVersion, '5.4.0', '!='),
|
||||
'You should not use PHP 5.4.0 due to the PHP bug #61453',
|
||||
'Your project might not work properly due to the PHP bug #61453 ("Cannot dump definitions which have method calls"). Install PHP 5.4.1 or newer.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
class_exists('DomDocument'),
|
||||
'PHP-XML module should be installed',
|
||||
'Install and enable the <strong>PHP-XML</strong> module.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
function_exists('mb_strlen'),
|
||||
'mb_strlen() should be available',
|
||||
'Install and enable the <strong>mbstring</strong> extension.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
function_exists('iconv'),
|
||||
'iconv() should be available',
|
||||
'Install and enable the <strong>iconv</strong> extension.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
function_exists('utf8_decode'),
|
||||
'utf8_decode() should be available',
|
||||
'Install and enable the <strong>XML</strong> extension.'
|
||||
);
|
||||
|
||||
if (!defined('PHP_WINDOWS_VERSION_BUILD')) {
|
||||
$this->addRecommendation(
|
||||
function_exists('posix_isatty'),
|
||||
'posix_isatty() should be available',
|
||||
'Install and enable the <strong>php_posix</strong> extension (used to colorize the CLI output).'
|
||||
);
|
||||
}
|
||||
|
||||
$this->addRecommendation(
|
||||
class_exists('Locale'),
|
||||
'intl extension should be available',
|
||||
'Install and enable the <strong>intl</strong> extension (used for validators).'
|
||||
);
|
||||
|
||||
if (class_exists('Collator')) {
|
||||
$this->addRecommendation(
|
||||
null !== new Collator('fr_FR'),
|
||||
'intl extension should be correctly configured',
|
||||
'The intl extension does not behave properly. This problem is typical on PHP 5.3.X x64 WIN builds.'
|
||||
);
|
||||
}
|
||||
|
||||
if (class_exists('Locale')) {
|
||||
if (defined('INTL_ICU_VERSION')) {
|
||||
$version = INTL_ICU_VERSION;
|
||||
} else {
|
||||
$reflector = new ReflectionExtension('intl');
|
||||
|
||||
ob_start();
|
||||
$reflector->info();
|
||||
$output = strip_tags(ob_get_clean());
|
||||
|
||||
preg_match('/^ICU version +(?:=> )?(.*)$/m', $output, $matches);
|
||||
$version = $matches[1];
|
||||
}
|
||||
|
||||
$this->addRecommendation(
|
||||
version_compare($version, '4.0', '>='),
|
||||
'intl ICU version should be at least 4+',
|
||||
'Upgrade your <strong>intl</strong> extension with a newer ICU version (4+).'
|
||||
);
|
||||
}
|
||||
|
||||
$accelerator =
|
||||
(function_exists('apc_store') && ini_get('apc.enabled'))
|
||||
||
|
||||
function_exists('eaccelerator_put') && ini_get('eaccelerator.enable')
|
||||
||
|
||||
function_exists('xcache_set')
|
||||
;
|
||||
|
||||
$this->addRecommendation(
|
||||
$accelerator,
|
||||
'a PHP accelerator should be installed',
|
||||
'Install and enable a <strong>PHP accelerator</strong> like APC (highly recommended).'
|
||||
);
|
||||
|
||||
$this->addPhpIniRecommendation('short_open_tag', false);
|
||||
|
||||
$this->addPhpIniRecommendation('magic_quotes_gpc', false, true);
|
||||
|
||||
$this->addPhpIniRecommendation('register_globals', false, true);
|
||||
|
||||
$this->addPhpIniRecommendation('session.auto_start', false);
|
||||
|
||||
$this->addRecommendation(
|
||||
class_exists('PDO'),
|
||||
'PDO should be installed',
|
||||
'Install <strong>PDO</strong> (mandatory for Doctrine).'
|
||||
);
|
||||
|
||||
if (class_exists('PDO')) {
|
||||
$drivers = PDO::getAvailableDrivers();
|
||||
$this->addRecommendation(
|
||||
count($drivers),
|
||||
sprintf('PDO should have some drivers installed (currently available: %s)', count($drivers) ? implode(', ', $drivers) : 'none'),
|
||||
'Install <strong>PDO drivers</strong> (mandatory for Doctrine).'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Doctrine\Common\Annotations\AnnotationRegistry;
|
||||
|
||||
$loader = require __DIR__.'/../vendor/autoload.php';
|
||||
|
||||
// intl
|
||||
if (!function_exists('intl_get_error_code')) {
|
||||
require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';
|
||||
|
||||
$loader->add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs');
|
||||
}
|
||||
|
||||
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
|
||||
|
||||
return $loader;
|
||||
@@ -1,55 +0,0 @@
|
||||
<?php
|
||||
|
||||
require_once dirname(__FILE__).'/SymfonyRequirements.php';
|
||||
|
||||
$symfonyRequirements = new SymfonyRequirements();
|
||||
|
||||
$iniPath = $symfonyRequirements->getPhpIniConfigPath();
|
||||
|
||||
echo "********************************\n";
|
||||
echo "* *\n";
|
||||
echo "* Symfony requirements check *\n";
|
||||
echo "* *\n";
|
||||
echo "********************************\n\n";
|
||||
|
||||
echo $iniPath ? sprintf("* Configuration file used by PHP: %s\n\n", $iniPath) : "* WARNING: No configuration file (php.ini) used by PHP!\n\n";
|
||||
|
||||
echo "** ATTENTION **\n";
|
||||
echo "* The PHP CLI can use a different php.ini file\n";
|
||||
echo "* than the one used with your web server.\n";
|
||||
if ('\\' == DIRECTORY_SEPARATOR) {
|
||||
echo "* (especially on the Windows platform)\n";
|
||||
}
|
||||
echo "* To be on the safe side, please also launch the requirements check\n";
|
||||
echo "* from your web server using the web/config.php script.\n";
|
||||
|
||||
echo_title('Mandatory requirements');
|
||||
|
||||
foreach ($symfonyRequirements->getRequirements() as $req) {
|
||||
echo_requirement($req);
|
||||
}
|
||||
|
||||
echo_title('Optional recommendations');
|
||||
|
||||
foreach ($symfonyRequirements->getRecommendations() as $req) {
|
||||
echo_requirement($req);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints a Requirement instance
|
||||
*/
|
||||
function echo_requirement(Requirement $requirement)
|
||||
{
|
||||
$result = $requirement->isFulfilled() ? 'OK' : ($requirement->isOptional() ? 'WARNING' : 'ERROR');
|
||||
echo ' ' . str_pad($result, 9);
|
||||
echo $requirement->getTestMessage() . "\n";
|
||||
|
||||
if (!$requirement->isFulfilled()) {
|
||||
echo sprintf(" %s\n\n", $requirement->getHelpText());
|
||||
}
|
||||
}
|
||||
|
||||
function echo_title($title)
|
||||
{
|
||||
echo "\n** $title **\n\n";
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
imports:
|
||||
- { resource: parameters.yml }
|
||||
- { resource: security.yml }
|
||||
|
||||
framework:
|
||||
#esi: ~
|
||||
#translator: { fallback: %locale% }
|
||||
secret: %secret%
|
||||
router:
|
||||
resource: "%kernel.root_dir%/config/routing.yml"
|
||||
strict_requirements: %kernel.debug%
|
||||
form: true
|
||||
csrf_protection: true
|
||||
validation: { enable_annotations: true }
|
||||
templating: { engines: ['twig'] } #assets_version: SomeVersionScheme
|
||||
default_locale: %locale%
|
||||
trust_proxy_headers: false # Whether or not the Request object should trust proxy headers (X_FORWARDED_FOR/HTTP_CLIENT_IP)
|
||||
session: ~
|
||||
|
||||
# Twig Configuration
|
||||
twig:
|
||||
debug: %kernel.debug%
|
||||
strict_variables: %kernel.debug%
|
||||
|
||||
# Assetic Configuration
|
||||
assetic:
|
||||
debug: %kernel.debug%
|
||||
use_controller: false
|
||||
bundles: [ ]
|
||||
#java: /usr/bin/java
|
||||
filters:
|
||||
cssrewrite: ~
|
||||
#closure:
|
||||
# jar: %kernel.root_dir%/Resources/java/compiler.jar
|
||||
#yui_css:
|
||||
# jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar
|
||||
|
||||
# Doctrine Configuration
|
||||
doctrine:
|
||||
dbal:
|
||||
driver: pdo_pgsql
|
||||
host: localhost
|
||||
dbname: bodyrep
|
||||
user: goo
|
||||
password:
|
||||
charset: UTF8
|
||||
|
||||
orm:
|
||||
auto_generate_proxy_classes: %kernel.debug%
|
||||
auto_mapping: true
|
||||
|
||||
# Swiftmailer Configuration
|
||||
swiftmailer:
|
||||
transport: %mailer_transport%
|
||||
host: %mailer_host%
|
||||
username: %mailer_user%
|
||||
password: %mailer_password%
|
||||
spool: { type: memory }
|
||||
@@ -1,26 +0,0 @@
|
||||
imports:
|
||||
- { resource: config.yml }
|
||||
|
||||
framework:
|
||||
router: { resource: "%kernel.root_dir%/config/routing_dev.yml" }
|
||||
profiler: { only_exceptions: false }
|
||||
|
||||
web_profiler:
|
||||
toolbar: true
|
||||
intercept_redirects: false
|
||||
|
||||
monolog:
|
||||
handlers:
|
||||
main:
|
||||
type: stream
|
||||
path: %kernel.logs_dir%/%kernel.environment%.log
|
||||
level: debug
|
||||
firephp:
|
||||
type: firephp
|
||||
level: info
|
||||
|
||||
assetic:
|
||||
use_controller: true
|
||||
|
||||
#swiftmailer:
|
||||
# delivery_address: me@example.com
|
||||
@@ -1,19 +0,0 @@
|
||||
imports:
|
||||
- { resource: config.yml }
|
||||
|
||||
#doctrine:
|
||||
# orm:
|
||||
# metadata_cache_driver: apc
|
||||
# result_cache_driver: apc
|
||||
# query_cache_driver: apc
|
||||
|
||||
monolog:
|
||||
handlers:
|
||||
main:
|
||||
type: fingers_crossed
|
||||
action_level: error
|
||||
handler: nested
|
||||
nested:
|
||||
type: stream
|
||||
path: %kernel.logs_dir%/%kernel.environment%.log
|
||||
level: debug
|
||||
@@ -1,14 +0,0 @@
|
||||
imports:
|
||||
- { resource: config_dev.yml }
|
||||
|
||||
framework:
|
||||
test: ~
|
||||
session:
|
||||
storage_id: session.storage.mock_file
|
||||
|
||||
web_profiler:
|
||||
toolbar: false
|
||||
intercept_redirects: false
|
||||
|
||||
swiftmailer:
|
||||
disable_delivery: true
|
||||
@@ -1,9 +0,0 @@
|
||||
parameters:
|
||||
|
||||
mailer_transport: smtp
|
||||
mailer_host: localhost
|
||||
mailer_user: ~
|
||||
mailer_password: ~
|
||||
|
||||
locale: en
|
||||
secret: fd890gd78h90
|
||||
@@ -1,20 +0,0 @@
|
||||
_landing:
|
||||
resource: "@BodyRep/Controller/LandingController.php"
|
||||
type: annotation
|
||||
prefix: /
|
||||
_auth:
|
||||
resource: "@BodyRep/Controller/AuthController.php"
|
||||
type: annotation
|
||||
prefix: /u
|
||||
|
||||
_member:
|
||||
resource: "@BodyRep/Controller/MemberController.php"
|
||||
type: annotation
|
||||
prefix: /m
|
||||
|
||||
_profile:
|
||||
resource: "@BodyRep/Controller/ProfileController.php"
|
||||
prefix: /{username}
|
||||
type: annotation
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
_wdt:
|
||||
resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
|
||||
prefix: /_wdt
|
||||
|
||||
_profiler:
|
||||
resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
|
||||
prefix: /_profiler
|
||||
|
||||
_configurator:
|
||||
resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
|
||||
prefix: /_configurator
|
||||
|
||||
_main:
|
||||
resource: routing.yml
|
||||
@@ -1,46 +0,0 @@
|
||||
jms_security_extra:
|
||||
secure_all_services: true
|
||||
expressions: true
|
||||
|
||||
security:
|
||||
encoders:
|
||||
BodyRep\Entity\User:
|
||||
algorithm: sha512
|
||||
encode-as-base64: false
|
||||
iterations: 1
|
||||
|
||||
role_hierarchy:
|
||||
ROLE_ADMIN: ROLE_USER
|
||||
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
|
||||
|
||||
providers:
|
||||
user_db:
|
||||
entity: { class: BodyRep\Entity\User, property: username }
|
||||
|
||||
firewalls:
|
||||
dev:
|
||||
pattern: ^/(_(profiler|wdt)|css|images|js)/
|
||||
security: false
|
||||
|
||||
login:
|
||||
pattern: ^/u/login$
|
||||
security: false
|
||||
|
||||
landing:
|
||||
pattern: ^/$
|
||||
security: false
|
||||
|
||||
test:
|
||||
pattern: ^/test$
|
||||
security: false
|
||||
|
||||
secured_area:
|
||||
pattern: ^/
|
||||
form_login:
|
||||
check_path: /u/login/check
|
||||
login_path: /u/login
|
||||
default_target_path: /m/
|
||||
|
||||
logout:
|
||||
path: /u/logout
|
||||
target: /
|
||||
@@ -1,22 +0,0 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
// if you don't want to setup permissions the proper way, just uncomment the following PHP line
|
||||
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
|
||||
//umask(0000);
|
||||
|
||||
set_time_limit(0);
|
||||
|
||||
require_once __DIR__.'/bootstrap.php.cache';
|
||||
require_once __DIR__.'/AppKernel.php';
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
||||
use Symfony\Component\Console\Input\ArgvInput;
|
||||
|
||||
$input = new ArgvInput();
|
||||
$env = $input->getParameterOption(array('--env', '-e'), getenv('SYMFONY_ENV') ?: 'dev');
|
||||
$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(array('--no-debug', '')) && $env !== 'prod';
|
||||
|
||||
$kernel = new AppKernel($env, $debug);
|
||||
$application = new Application($kernel);
|
||||
$application->run($input);
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- http://www.phpunit.de/manual/current/en/appendixes.configuration.html -->
|
||||
<phpunit
|
||||
backupGlobals = "false"
|
||||
backupStaticAttributes = "false"
|
||||
colors = "true"
|
||||
convertErrorsToExceptions = "true"
|
||||
convertNoticesToExceptions = "true"
|
||||
convertWarningsToExceptions = "true"
|
||||
processIsolation = "false"
|
||||
stopOnFailure = "false"
|
||||
syntaxCheck = "false"
|
||||
bootstrap = "bootstrap.php.cache" >
|
||||
|
||||
<testsuites>
|
||||
<testsuite name="BodyRep Test">
|
||||
<directory>../src/BodyRep/Tests</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
<filter>
|
||||
<whitelist>
|
||||
<directory>../src</directory>
|
||||
<exclude>
|
||||
<directory>../src/BodyRep/Resources</directory>
|
||||
<directory>../src/BodyRep/Tests</directory>
|
||||
</exclude>
|
||||
</whitelist>
|
||||
</filter>
|
||||
|
||||
</phpunit>
|
||||
@@ -1,45 +0,0 @@
|
||||
{
|
||||
"name": "symfony/framework-standard-edition",
|
||||
"description": "The \"Symfony Standard Edition\" distribution",
|
||||
"autoload": {
|
||||
"psr-0": { "": "src/" }
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3",
|
||||
"symfony/symfony": "2.1.*",
|
||||
"doctrine/orm": ">=2.2.3,<2.4-dev",
|
||||
"doctrine/doctrine-bundle": "1.0.*",
|
||||
"twig/extensions": "1.0.*",
|
||||
"symfony/assetic-bundle": "2.1.*",
|
||||
"symfony/swiftmailer-bundle": "2.1.*",
|
||||
"symfony/monolog-bundle": "2.1.*",
|
||||
"sensio/distribution-bundle": "2.1.*",
|
||||
"sensio/framework-extra-bundle": "2.1.*",
|
||||
"sensio/generator-bundle": "2.1.*",
|
||||
"jms/security-extra-bundle": "1.2.*",
|
||||
"jms/di-extra-bundle": "1.1.*",
|
||||
"knplabs/doctrine-behaviors": "dev-master"
|
||||
},
|
||||
"scripts": {
|
||||
"post-install-cmd": [
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
|
||||
],
|
||||
"post-update-cmd": [
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
|
||||
]
|
||||
},
|
||||
"config": {
|
||||
"bin-dir": "bin"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"extra": {
|
||||
"symfony-app-dir": "app",
|
||||
"symfony-web-dir": "web"
|
||||
}
|
||||
}
|
||||
193
br/composer.lock
generated
@@ -1,193 +0,0 @@
|
||||
{
|
||||
"hash": "c2639bd4ac21bfd8d3fd08e114f2f759",
|
||||
"packages": [
|
||||
{
|
||||
"package": "doctrine/common",
|
||||
"version": "2.3.x-dev",
|
||||
"source-reference": "605b1b8b5a7bc8daf9111fb35483e5708e30de35",
|
||||
"commit-date": "1346249247"
|
||||
},
|
||||
{
|
||||
"package": "doctrine/dbal",
|
||||
"version": "2.3.x-dev",
|
||||
"source-reference": "239630b61f03f39d198441eced1bfffb7b0e61d1",
|
||||
"commit-date": "1346866589"
|
||||
},
|
||||
{
|
||||
"package": "doctrine/doctrine-bundle",
|
||||
"version": "dev-master",
|
||||
"alias-pretty-version": "1.0.x-dev",
|
||||
"alias-version": "1.0.9999999.9999999-dev"
|
||||
},
|
||||
{
|
||||
"package": "doctrine/doctrine-bundle",
|
||||
"version": "dev-master",
|
||||
"source-reference": "d3c930599723c8343472a5791b0f5909a4111a73",
|
||||
"commit-date": "1347289964"
|
||||
},
|
||||
{
|
||||
"package": "doctrine/orm",
|
||||
"version": "2.3.x-dev",
|
||||
"source-reference": "4d9f24b2eef3af3a3e76c773994c19bbb0706f88",
|
||||
"commit-date": "1346869007"
|
||||
},
|
||||
{
|
||||
"package": "jms/aop-bundle",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
{
|
||||
"package": "jms/cg",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
{
|
||||
"package": "jms/di-extra-bundle",
|
||||
"version": "1.1.x-dev",
|
||||
"source-reference": "af219527024c584d7311aa855d7522429c5bdb67",
|
||||
"commit-date": "1346947722"
|
||||
},
|
||||
{
|
||||
"package": "jms/metadata",
|
||||
"version": "1.1.1"
|
||||
},
|
||||
{
|
||||
"package": "jms/security-extra-bundle",
|
||||
"version": "1.2.x-dev",
|
||||
"source-reference": "9ab6aceda50fc7a2b07d741ba4b3f0695508afcb",
|
||||
"commit-date": "1346947943"
|
||||
},
|
||||
{
|
||||
"package": "kriswallsmith/assetic",
|
||||
"version": "dev-master",
|
||||
"alias-pretty-version": "1.1.x-dev",
|
||||
"alias-version": "1.1.9999999.9999999-dev"
|
||||
},
|
||||
{
|
||||
"package": "kriswallsmith/assetic",
|
||||
"version": "dev-master",
|
||||
"source-reference": "dfbb776288baf9319d1693195af2cb6e00729901",
|
||||
"commit-date": "1347039484"
|
||||
},
|
||||
{
|
||||
"package": "monolog/monolog",
|
||||
"version": "dev-master",
|
||||
"alias-pretty-version": "1.3.x-dev",
|
||||
"alias-version": "1.3.9999999.9999999-dev"
|
||||
},
|
||||
{
|
||||
"package": "monolog/monolog",
|
||||
"version": "dev-master",
|
||||
"source-reference": "e5bf7ba5d1df622b68d004b3c0277bc94286e1b7",
|
||||
"commit-date": "1347105894"
|
||||
},
|
||||
{
|
||||
"package": "sensio/distribution-bundle",
|
||||
"version": "2.1.x-dev",
|
||||
"source-reference": "2eee3cb4cd761c851f0d766649fb9ff6f4c97002",
|
||||
"commit-date": "1347340208"
|
||||
},
|
||||
{
|
||||
"package": "sensio/framework-extra-bundle",
|
||||
"version": "2.1.x-dev",
|
||||
"source-reference": "v2.1.0",
|
||||
"commit-date": "1346234539"
|
||||
},
|
||||
{
|
||||
"package": "sensio/generator-bundle",
|
||||
"version": "dev-master",
|
||||
"alias-pretty-version": "2.1.x-dev",
|
||||
"alias-version": "2.1.9999999.9999999-dev"
|
||||
},
|
||||
{
|
||||
"package": "sensio/generator-bundle",
|
||||
"version": "dev-master",
|
||||
"source-reference": "v2.1.0-RC2",
|
||||
"commit-date": "1346138171"
|
||||
},
|
||||
{
|
||||
"package": "swiftmailer/swiftmailer",
|
||||
"version": "dev-master",
|
||||
"alias-pretty-version": "4.2.x-dev",
|
||||
"alias-version": "4.2.9999999.9999999-dev"
|
||||
},
|
||||
{
|
||||
"package": "swiftmailer/swiftmailer",
|
||||
"version": "dev-master",
|
||||
"source-reference": "c97353b1ebffe25a224146f69d17efe24c093def",
|
||||
"commit-date": "1347083952"
|
||||
},
|
||||
{
|
||||
"package": "symfony/assetic-bundle",
|
||||
"version": "dev-master",
|
||||
"alias-pretty-version": "2.1.x-dev",
|
||||
"alias-version": "2.1.9999999.9999999-dev"
|
||||
},
|
||||
{
|
||||
"package": "symfony/assetic-bundle",
|
||||
"version": "dev-master",
|
||||
"source-reference": "4e7e8a039fa19434f04558473adbb201118af942",
|
||||
"commit-date": "1346199949"
|
||||
},
|
||||
{
|
||||
"package": "symfony/monolog-bundle",
|
||||
"version": "dev-master",
|
||||
"alias-pretty-version": "2.1.x-dev",
|
||||
"alias-version": "2.1.9999999.9999999-dev"
|
||||
},
|
||||
{
|
||||
"package": "symfony/monolog-bundle",
|
||||
"version": "dev-master",
|
||||
"source-reference": "b7318480e6f8bf5579d6b3cd856850302e7ba8d8",
|
||||
"commit-date": "1347283885"
|
||||
},
|
||||
{
|
||||
"package": "symfony/swiftmailer-bundle",
|
||||
"version": "dev-master",
|
||||
"alias-pretty-version": "2.1.x-dev",
|
||||
"alias-version": "2.1.9999999.9999999-dev"
|
||||
},
|
||||
{
|
||||
"package": "symfony/swiftmailer-bundle",
|
||||
"version": "dev-master",
|
||||
"source-reference": "d2eae9385c029cbac031a90e6d2abc74b889a562",
|
||||
"commit-date": "1346243146"
|
||||
},
|
||||
{
|
||||
"package": "symfony/symfony",
|
||||
"version": "2.1.x-dev",
|
||||
"source-reference": "v2.1.1",
|
||||
"commit-date": "1347339641"
|
||||
},
|
||||
{
|
||||
"package": "twig/extensions",
|
||||
"version": "dev-master",
|
||||
"alias-pretty-version": "1.0.x-dev",
|
||||
"alias-version": "1.0.9999999.9999999-dev"
|
||||
},
|
||||
{
|
||||
"package": "twig/extensions",
|
||||
"version": "dev-master",
|
||||
"source-reference": "f904575642b1213db69b4a98f08397e722ba1cae",
|
||||
"commit-date": "1346770278"
|
||||
},
|
||||
{
|
||||
"package": "twig/twig",
|
||||
"version": "dev-master",
|
||||
"alias-pretty-version": "1.9.x-dev",
|
||||
"alias-version": "1.9.9999999.9999999-dev"
|
||||
},
|
||||
{
|
||||
"package": "twig/twig",
|
||||
"version": "dev-master",
|
||||
"source-reference": "68b8c4619c5bbe82bd345fe56070dec8c356610a",
|
||||
"commit-date": "1347025342"
|
||||
}
|
||||
],
|
||||
"packages-dev": null,
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"minimum-stability": "dev",
|
||||
"stability-flags": [
|
||||
|
||||
]
|
||||
}
|
||||
@@ -1,186 +0,0 @@
|
||||
diff -Naur -X .ign vendor//doctrine/orm/lib/Doctrine/ORM/Query/AST/iLikeExpression.php bodyrep-vendor//doctrine/orm/lib/Doctrine/ORM/Query/AST/iLikeExpression.php
|
||||
--- vendor//doctrine/orm/lib/Doctrine/ORM/Query/AST/iLikeExpression.php 1970-01-01 10:00:00.000000000 +1000
|
||||
+++ bodyrep-vendor//doctrine/orm/lib/Doctrine/ORM/Query/AST/iLikeExpression.php 2012-09-19 01:40:50.000000000 +1000
|
||||
@@ -0,0 +1,49 @@
|
||||
+<?php
|
||||
+/*
|
||||
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
+ *
|
||||
+ * This software consists of voluntary contributions made by many individuals
|
||||
+ * and is licensed under the MIT license. For more information, see
|
||||
+ * <http://www.doctrine-project.org>.
|
||||
+ */
|
||||
+namespace Doctrine\ORM\Query\AST;
|
||||
+
|
||||
+/**
|
||||
+ * iLikeExpression ::= StringExpression ["NOT"] "ILIKE" string ["ESCAPE" char]
|
||||
+ *
|
||||
+ *
|
||||
+ * @link www.doctrine-project.org
|
||||
+ * @since 2.0
|
||||
+ * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||
+ * @author Jonathan Wage <jonwage@gmail.com>
|
||||
+ * @author Roman Borschel <roman@code-factory.org>
|
||||
+ */
|
||||
+class iLikeExpression extends Node
|
||||
+{
|
||||
+ public $not;
|
||||
+ public $stringExpression;
|
||||
+ public $stringPattern;
|
||||
+ public $escapeChar;
|
||||
+
|
||||
+ public function __construct($stringExpression, $stringPattern, $escapeChar = null)
|
||||
+ {
|
||||
+ $this->stringExpression = $stringExpression;
|
||||
+ $this->stringPattern = $stringPattern;
|
||||
+ $this->escapeChar = $escapeChar;
|
||||
+ }
|
||||
+
|
||||
+ public function dispatch($sqlWalker)
|
||||
+ {
|
||||
+ return $sqlWalker->walkiLikeExpression($this);
|
||||
+ }
|
||||
+}
|
||||
diff -Naur -X .ign vendor//doctrine/orm/lib/Doctrine/ORM/Query/Expr.php bodyrep-vendor//doctrine/orm/lib/Doctrine/ORM/Query/Expr.php
|
||||
--- vendor//doctrine/orm/lib/Doctrine/ORM/Query/Expr.php 2012-09-18 02:35:14.000000000 +1000
|
||||
+++ bodyrep-vendor//doctrine/orm/lib/Doctrine/ORM/Query/Expr.php 2012-09-19 01:28:50.000000000 +1000
|
||||
@@ -479,6 +479,11 @@
|
||||
return new Expr\Comparison($x, 'LIKE', $y);
|
||||
}
|
||||
|
||||
+ public function ilike($x, $y)
|
||||
+ {
|
||||
+ return new Expr\Comparison($x, 'ILIKE', $y);
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* Creates a CONCAT() function expression with the given arguments.
|
||||
*
|
||||
diff -Naur -X .ign vendor//doctrine/orm/lib/Doctrine/ORM/Query/Lexer.php bodyrep-vendor//doctrine/orm/lib/Doctrine/ORM/Query/Lexer.php
|
||||
--- vendor//doctrine/orm/lib/Doctrine/ORM/Query/Lexer.php 2012-09-18 02:35:14.000000000 +1000
|
||||
+++ bodyrep-vendor//doctrine/orm/lib/Doctrine/ORM/Query/Lexer.php 2012-09-19 01:38:54.000000000 +1000
|
||||
@@ -86,6 +86,7 @@
|
||||
const T_LEADING = 132;
|
||||
const T_LEFT = 133;
|
||||
const T_LIKE = 134;
|
||||
+ const T_ILIKE = 157;
|
||||
const T_MAX = 135;
|
||||
const T_MEMBER = 136;
|
||||
const T_MIN = 137;
|
||||
diff -Naur -X .ign vendor//doctrine/orm/lib/Doctrine/ORM/Query/Parser.php bodyrep-vendor//doctrine/orm/lib/Doctrine/ORM/Query/Parser.php
|
||||
--- vendor//doctrine/orm/lib/Doctrine/ORM/Query/Parser.php 2012-09-18 02:35:14.000000000 +1000
|
||||
+++ bodyrep-vendor//doctrine/orm/lib/Doctrine/ORM/Query/Parser.php 2012-09-19 01:38:04.000000000 +1000
|
||||
@@ -2183,7 +2183,7 @@
|
||||
$peek = $this->_peekBeyondClosingParenthesis();
|
||||
|
||||
if (in_array($peek['value'], array("=", "<", "<=", "<>", ">", ">=", "!=")) ||
|
||||
- in_array($peek['type'], array(Lexer::T_NOT, Lexer::T_BETWEEN, Lexer::T_LIKE, Lexer::T_IN, Lexer::T_IS, Lexer::T_EXISTS)) ||
|
||||
+ in_array($peek['type'], array(Lexer::T_NOT, Lexer::T_BETWEEN, Lexer::T_LIKE, Lexer::T_ILIKE, Lexer::T_IN, Lexer::T_IS, Lexer::T_EXISTS)) ||
|
||||
$this->_isMathOperator($peek)) {
|
||||
$condPrimary->simpleConditionalExpression = $this->SimpleConditionalExpression();
|
||||
|
||||
@@ -2260,6 +2260,8 @@
|
||||
switch ($token['type']) {
|
||||
case Lexer::T_BETWEEN:
|
||||
return $this->BetweenExpression();
|
||||
+ case Lexer::T_ILIKE:
|
||||
+ return $this->iLikeExpression();
|
||||
case Lexer::T_LIKE:
|
||||
return $this->LikeExpression();
|
||||
case Lexer::T_IN:
|
||||
@@ -2889,6 +2891,45 @@
|
||||
|
||||
return $likeExpr;
|
||||
}
|
||||
+ /**
|
||||
+ * iLikeExpression ::= StringExpression ["NOT"] "ILIKE" StringPrimary ["ESCAPE" char]
|
||||
+ *
|
||||
+ * @return \Doctrine\ORM\Query\AST\iLikeExpression
|
||||
+ */
|
||||
+ public function iLikeExpression()
|
||||
+ {
|
||||
+ $stringExpr = $this->StringExpression();
|
||||
+ $not = false;
|
||||
+
|
||||
+ if ($this->_lexer->isNextToken(Lexer::T_NOT)) {
|
||||
+ $this->match(Lexer::T_NOT);
|
||||
+ $not = true;
|
||||
+ }
|
||||
+
|
||||
+ $this->match(Lexer::T_ILIKE);
|
||||
+
|
||||
+ if ($this->_lexer->isNextToken(Lexer::T_INPUT_PARAMETER)) {
|
||||
+ $this->match(Lexer::T_INPUT_PARAMETER);
|
||||
+ $stringPattern = new AST\InputParameter($this->_lexer->token['value']);
|
||||
+ } else {
|
||||
+ $stringPattern = $this->StringPrimary();
|
||||
+ }
|
||||
+
|
||||
+ $escapeChar = null;
|
||||
+
|
||||
+ if ($this->_lexer->lookahead['type'] === Lexer::T_ESCAPE) {
|
||||
+ $this->match(Lexer::T_ESCAPE);
|
||||
+ $this->match(Lexer::T_STRING);
|
||||
+
|
||||
+ $escapeChar = new AST\Literal(AST\Literal::STRING, $this->_lexer->token['value']);
|
||||
+ }
|
||||
+
|
||||
+ $likeExpr = new AST\iLikeExpression($stringExpr, $stringPattern, $escapeChar);
|
||||
+ $likeExpr->not = $not;
|
||||
+
|
||||
+ return $likeExpr;
|
||||
+ }
|
||||
+
|
||||
|
||||
/**
|
||||
* NullComparisonExpression ::= (SingleValuedPathExpression | InputParameter) "IS" ["NOT"] "NULL"
|
||||
diff -Naur -X .ign vendor//doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php bodyrep-vendor//doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php
|
||||
--- vendor//doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php 2012-09-18 02:35:14.000000000 +1000
|
||||
+++ bodyrep-vendor//doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php 2012-09-19 01:41:30.000000000 +1000
|
||||
@@ -2028,6 +2028,36 @@
|
||||
return $sql;
|
||||
}
|
||||
|
||||
+ /**
|
||||
+ * Walks down a iLikeExpression AST node, thereby generating the appropriate SQL.
|
||||
+ *
|
||||
+ * @param iLikeExpression
|
||||
+ * @return string The SQL.
|
||||
+ */
|
||||
+ public function walkiLikeExpression($likeExpr)
|
||||
+ {
|
||||
+ $stringExpr = $likeExpr->stringExpression;
|
||||
+ $sql = $stringExpr->dispatch($this) . ($likeExpr->not ? ' NOT' : '') . ' ILIKE ';
|
||||
+
|
||||
+ if ($likeExpr->stringPattern instanceof AST\InputParameter) {
|
||||
+ $inputParam = $likeExpr->stringPattern;
|
||||
+ $dqlParamKey = $inputParam->name;
|
||||
+ $this->parserResult->addParameterMapping($dqlParamKey, $this->sqlParamIndex++);
|
||||
+ $sql .= '?';
|
||||
+ } elseif ($likeExpr->stringPattern instanceof AST\Functions\FunctionNode ) {
|
||||
+ $sql .= $this->walkFunction($likeExpr->stringPattern);
|
||||
+ } elseif ($likeExpr->stringPattern instanceof AST\PathExpression) {
|
||||
+ $sql .= $this->walkPathExpression($likeExpr->stringPattern);
|
||||
+ } else {
|
||||
+ $sql .= $this->walkLiteral($likeExpr->stringPattern);
|
||||
+ }
|
||||
+
|
||||
+ if ($likeExpr->escapeChar) {
|
||||
+ $sql .= ' ESCAPE ' . $this->walkLiteral($likeExpr->escapeChar);
|
||||
+ }
|
||||
+
|
||||
+ return $sql;
|
||||
+ }
|
||||
/**
|
||||
* Walks down a StateFieldPathExpression AST node, thereby generating the appropriate SQL.
|
||||
*
|
||||
@@ -1,9 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep;
|
||||
|
||||
use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||
|
||||
class BodyRep extends Bundle
|
||||
{
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\Security\Core\SecurityContext;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
|
||||
# Annotations & templates
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
|
||||
|
||||
class AuthController extends Controller
|
||||
{
|
||||
/**
|
||||
* @Route("/", name="_auth")
|
||||
* @Template()
|
||||
*/
|
||||
public function indexAction()
|
||||
{
|
||||
return new RedirectResponse($this->generateUrl('_login'));
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* @Route("/login", name="_login")
|
||||
* @Template()
|
||||
*/
|
||||
public function loginAction()
|
||||
{
|
||||
$request = $this->getRequest();
|
||||
$session = $request->getSession();
|
||||
|
||||
// get the login error if there is one
|
||||
if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
|
||||
$error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
|
||||
} else {
|
||||
$error = $session->get(SecurityContext::AUTHENTICATION_ERROR);
|
||||
}
|
||||
|
||||
return $this->render('BodyRep:Auth:login.html.twig', array(
|
||||
// last username entered by the user
|
||||
'last_username' => $session->get(SecurityContext::LAST_USERNAME),
|
||||
'error' => $error,
|
||||
));
|
||||
}
|
||||
/**
|
||||
* @Route("/login/check", name="_login_check")
|
||||
* @Template()
|
||||
*/
|
||||
public function securityCheckAction()
|
||||
{
|
||||
// The security layer will intercept this request
|
||||
}
|
||||
/**
|
||||
* @Route("/logout", name="_logout")
|
||||
* @Template()
|
||||
*/
|
||||
public function logoutAction()
|
||||
{
|
||||
// The security layer will intercept this request
|
||||
}
|
||||
|
||||
public function navbarAction()
|
||||
{
|
||||
// The security layer will intercept this request
|
||||
}
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\Security\Core\SecurityContext;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use JMS\SecurityExtraBundle\Annotation\Secure;
|
||||
|
||||
# Annotations
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
|
||||
|
||||
class CommentController extends Controller
|
||||
{
|
||||
/**
|
||||
* @Route("/", name="_profile")
|
||||
* @Template()
|
||||
*/
|
||||
public function indexAction($username)
|
||||
{
|
||||
|
||||
if ($this->getUser()->getUsername() == $username)
|
||||
return new RedirectResponse($this->generateUrl('_member_profile'));
|
||||
|
||||
$db = $this->getDoctrine()->getManager();
|
||||
|
||||
$query = $db->createQuery('
|
||||
SELECT p
|
||||
FROM BodyRep:Profile p
|
||||
WHERE p.username = :username')
|
||||
->setParameter('username', $username)
|
||||
->setMaxResults(1);
|
||||
if (sizeof($query->getResult()) != 1)
|
||||
throw $this->createNotFoundException("User '".$username."' not found");
|
||||
|
||||
$profile = $query->getSingleResult();
|
||||
$username = $this->getUser()->getUsername();
|
||||
$db = $this->getDoctrine()->getManager();
|
||||
$query = $db->createQuery('
|
||||
SELECT m
|
||||
FROM BodyRep:Member m
|
||||
WHERE m.username = :username')
|
||||
->setParameter('username', $username)
|
||||
->setMaxResults(1);
|
||||
|
||||
if (sizeof($query->getResult()) != 1)
|
||||
throw $this->createNotFoundException("User '".$username."' not found");
|
||||
|
||||
$member = $query->getSingleResult();
|
||||
|
||||
return (array('sFullName' => $profile->getFullName(), 'name' => $member->getFullName()));
|
||||
|
||||
}
|
||||
/**
|
||||
* @Route("/rep", name="_profile_reputation")
|
||||
* @Template()
|
||||
*/
|
||||
public function reputationAction($username)
|
||||
{
|
||||
return $this->indexAction($username);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
|
||||
use BodyRep\Form\ContactType;
|
||||
|
||||
class LandingController extends Controller
|
||||
{
|
||||
/**
|
||||
* @Route("/", name="_landing")
|
||||
* @Template()
|
||||
*/
|
||||
public function indexAction()
|
||||
{
|
||||
|
||||
/*
|
||||
* The action's view can be rendered using render() method
|
||||
* or @Template annotation as demonstrated in DemoController.
|
||||
*
|
||||
*/
|
||||
return $this->render('BodyRep:Landing:index.html.twig');
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/about", name="_landing_about")
|
||||
* @Template()
|
||||
*/
|
||||
public function aboutAction()
|
||||
{
|
||||
|
||||
/*
|
||||
* The action's view can be rendered using render() method
|
||||
* or @Template annotation as demonstrated in DemoController.
|
||||
*
|
||||
*/
|
||||
return $this->render('BodyRep:Landing:about.html.twig');
|
||||
}
|
||||
}
|
||||
@@ -1,170 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\Controller;
|
||||
use BodyRep\Form\Profile;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\Security\Core\SecurityContext;
|
||||
|
||||
# Annotations & templates
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
|
||||
|
||||
use JMS\SecurityExtraBundle\Annotation\Secure;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
class MemberController extends Controller
|
||||
{
|
||||
private $member;
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
parent::setContainer($container);
|
||||
$db = $this->getDoctrine()->getManager();
|
||||
$user = $this->getUser();
|
||||
if (method_exists($user, 'getUsername'))
|
||||
{
|
||||
$username = $this->getUser()->getUsername();
|
||||
|
||||
$query = $db->createQuery('
|
||||
SELECT m
|
||||
FROM BodyRep:Member m
|
||||
WHERE m.username = :username')
|
||||
->setParameter('username', $username)
|
||||
->setMaxResults(1);
|
||||
|
||||
if (sizeof($query->getResult()) != 1)
|
||||
throw $this->createNotFoundException("User '".$username."' not found");
|
||||
|
||||
$this->member = $query->getSingleResult();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function getMember()
|
||||
{
|
||||
return $this->member;
|
||||
}
|
||||
|
||||
public function navbarAction()
|
||||
{
|
||||
// The security layer will intercept this request
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/", name="_member")
|
||||
* @Template()
|
||||
*/
|
||||
public function indexAction()
|
||||
{
|
||||
$username = $this->getUser()->getUsername();
|
||||
|
||||
|
||||
return array('name' => $this->getMember()->getFullName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/profile/", name="_member_profile")
|
||||
* @Template()
|
||||
*/
|
||||
public function profileAction()
|
||||
{
|
||||
$username = $this->getUser()->getUsername();
|
||||
|
||||
$db = $this->getDoctrine()->getManager();
|
||||
$query = $db->createQuery('
|
||||
SELECT p
|
||||
FROM BodyRep:Profile p
|
||||
WHERE p.username = :username')
|
||||
->setParameter('username', $username)
|
||||
->setMaxResults(1);
|
||||
if (sizeof($query->getResult()) != 1)
|
||||
throw $this->createNotFoundException("User '".$username."' not found");
|
||||
|
||||
$profile = $query->getSingleResult();
|
||||
|
||||
return (array('sFullName' => $profile->getFullName(), 'name' => $this->getMember()->getFullName()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/profile/edit", name="_member_profile_edit")
|
||||
* @Template()
|
||||
*/
|
||||
public function editProfileAction()
|
||||
{
|
||||
$username = $this->getUser()->getUsername();
|
||||
$form = $this->get('form.factory')->create(new Profile(), array('fullname' => $this->getMember()->getFullName()));
|
||||
$error = '';
|
||||
|
||||
return array('form' => $form->createView(), 'error' => '');
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/profile/save", name="_member_profile_save")
|
||||
*/
|
||||
public function saveAction()
|
||||
{
|
||||
$username = $this->getUser()->getUsername();
|
||||
$db = $this->getDoctrine()->getManager();
|
||||
$json = array('result' => 0);
|
||||
|
||||
$form = $this->get('form.factory')->create(new Profile());
|
||||
$request = $this->get('request');
|
||||
|
||||
|
||||
$form->bind($request);
|
||||
|
||||
if ($form->isValid() && sizeof($_POST) > 0)
|
||||
{
|
||||
$json['result'] = 1;
|
||||
$d = $form->getClientData();
|
||||
$this->getMember()->setFullName($d['fullname']);
|
||||
$db->persist($this->getMember());
|
||||
$db->flush();
|
||||
}
|
||||
|
||||
$resp = new Response (json_encode($json));
|
||||
$resp->headers->set('Content-Type', 'application/json');
|
||||
|
||||
return $resp;
|
||||
}
|
||||
/**
|
||||
* @Route("/search/{param}", name="_member_search", defaults={"param" = 0})
|
||||
* @Template()
|
||||
*/
|
||||
public function searchAction($param='')
|
||||
{
|
||||
|
||||
/*
|
||||
* Integrated suggester response
|
||||
*
|
||||
*/
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$query = $em->createQuery("SELECT m FROM BodyRep:Member m WHERE m.fullname ILIKE '%$param%'");
|
||||
|
||||
$res = $query->getResult();
|
||||
$resc = sizeof($res);
|
||||
$sugg = array();
|
||||
/*if ($res > 0)
|
||||
{
|
||||
foreach ($res as $member)
|
||||
{
|
||||
$text = preg_replace('/<br[^\>]*>/i', "\n", $member->getFullname());
|
||||
$item['text'] = strip_tags($text);
|
||||
$item['html'] = $text;
|
||||
$item['data'] = array('username' => htmlspecialchars($member->getUsername()));
|
||||
$sugg[] = $item;
|
||||
}
|
||||
}
|
||||
if (!empty($param))
|
||||
{
|
||||
$json = array('result' => 1, 'suggestions' => $sugg);
|
||||
$resp = new Response (json_encode($json));
|
||||
$resp->headers->set('Content-Type', 'text/plain');
|
||||
return $resp;
|
||||
}
|
||||
else*/
|
||||
return array('search' => $res);
|
||||
}
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\Security\Core\SecurityContext;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use JMS\SecurityExtraBundle\Annotation\Secure;
|
||||
|
||||
# Annotations
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
|
||||
|
||||
class ProfileController extends Controller
|
||||
{
|
||||
/**
|
||||
* @Route("/", name="_profile")
|
||||
* @Template()
|
||||
*/
|
||||
public function indexAction($username)
|
||||
{
|
||||
|
||||
if ($this->getUser()->getUsername() == $username)
|
||||
return new RedirectResponse($this->generateUrl('_member_profile'));
|
||||
|
||||
$db = $this->getDoctrine()->getManager();
|
||||
|
||||
$query = $db->createQuery('
|
||||
SELECT p
|
||||
FROM BodyRep:Profile p
|
||||
WHERE p.username = :username')
|
||||
->setParameter('username', $username)
|
||||
->setMaxResults(1);
|
||||
if (sizeof($query->getResult()) != 1)
|
||||
throw $this->createNotFoundException("User '".$username."' not found");
|
||||
|
||||
$profile = $query->getSingleResult();
|
||||
$username = $this->getUser()->getUsername();
|
||||
$db = $this->getDoctrine()->getManager();
|
||||
$query = $db->createQuery('
|
||||
SELECT m
|
||||
FROM BodyRep:Member m
|
||||
WHERE m.username = :username')
|
||||
->setParameter('username', $username)
|
||||
->setMaxResults(1);
|
||||
|
||||
if (sizeof($query->getResult()) != 1)
|
||||
throw $this->createNotFoundException("User '".$username."' not found");
|
||||
|
||||
$member = $query->getSingleResult();
|
||||
|
||||
return (array('sFullName' => $profile->getFullName(), 'name' => $member->getFullName()));
|
||||
|
||||
}
|
||||
/**
|
||||
* @Route("/rep", name="_profile_reputation")
|
||||
* @Template()
|
||||
*/
|
||||
public function reputationAction($username)
|
||||
{
|
||||
return $this->indexAction($username);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\DependencyInjection;
|
||||
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
|
||||
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
|
||||
use Symfony\Component\Config\FileLocator;
|
||||
|
||||
class BodyRepExtension extends Extension
|
||||
{
|
||||
public function load(array $configs, ContainerBuilder $container)
|
||||
{
|
||||
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
|
||||
$loader->load('services.xml');
|
||||
}
|
||||
|
||||
public function getAlias()
|
||||
{
|
||||
return 'body_rep';
|
||||
}
|
||||
}
|
||||
@@ -1,115 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\Entity;
|
||||
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
||||
/**
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="comments")
|
||||
*/
|
||||
class Comment
|
||||
{
|
||||
/**
|
||||
* @ORM\Id
|
||||
* @ORM\Column(type="integer")
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="author", type="string", length=255)
|
||||
*/
|
||||
protected $author;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="text", type="string", length=255)
|
||||
*/
|
||||
protected $text;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="created", type="timestamp")
|
||||
*/
|
||||
protected $created;
|
||||
|
||||
|
||||
/**
|
||||
* Get id
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set author
|
||||
*
|
||||
* @param string $author
|
||||
* @return Comment
|
||||
*/
|
||||
public function setAuthor($author)
|
||||
{
|
||||
$this->author = $author;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get author
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getAuthor()
|
||||
{
|
||||
return $this->author;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set text
|
||||
*
|
||||
* @param string $text
|
||||
* @return Comment
|
||||
*/
|
||||
public function setText($text)
|
||||
{
|
||||
$this->text = $text;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getText()
|
||||
{
|
||||
return $this->text;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set created
|
||||
*
|
||||
* @param timestamp $created
|
||||
* @return Comment
|
||||
*/
|
||||
public function setCreated(\timestamp $created)
|
||||
{
|
||||
$this->created = $created;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get created
|
||||
*
|
||||
* @return timestamp
|
||||
*/
|
||||
public function getCreated()
|
||||
{
|
||||
return $this->created;
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\Entity;
|
||||
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
||||
/**
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="comments")
|
||||
*/
|
||||
class Comment
|
||||
{
|
||||
/**
|
||||
* @ORM\Id
|
||||
* @ORM\Column(type="integer")
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="author", type="string", length=255)
|
||||
*/
|
||||
protected $author;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="text", type="string", length=255)
|
||||
*/
|
||||
protected $text;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="created", type="timestamp")
|
||||
*/
|
||||
protected $created;
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -1,135 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
|
||||
/**
|
||||
* Bodyrep\Entity\Member
|
||||
*
|
||||
* @ORM\Table(name="member")
|
||||
* @ORM\Entity(repositoryClass="BodyRep\Entity\UserRepository")
|
||||
*/
|
||||
class Member implements UserInterface
|
||||
{
|
||||
/**
|
||||
* @ORM\Column(type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=25, unique=true)
|
||||
*/
|
||||
private $username;
|
||||
|
||||
/**
|
||||
* @var string $fullname
|
||||
*
|
||||
* @ORM\Column(name="fullname", type="string")
|
||||
*/
|
||||
private $fullname;
|
||||
/**
|
||||
* @ORM\Column(type="string", length=32)
|
||||
*/
|
||||
private $salt;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=40)
|
||||
*/
|
||||
private $password;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=60, unique=true)
|
||||
*/
|
||||
private $email;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="active", type="integer")
|
||||
*/
|
||||
private $isActive;
|
||||
|
||||
private $roles;
|
||||
|
||||
public function __construct($username, $password = '', $salt = '', $roles = array())
|
||||
{
|
||||
$this->username = $username;
|
||||
$this->password = $password;
|
||||
$this->salt = $salt;
|
||||
$this->roles = $roles;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getUsername()
|
||||
{
|
||||
return $this->username;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getSalt()
|
||||
{
|
||||
return $this->salt;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getPassword()
|
||||
{
|
||||
return $this->password;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getRoles()
|
||||
{
|
||||
return array('ROLE_USER');
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function eraseCredentials()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Set fullName
|
||||
*
|
||||
* @param string $fullname
|
||||
* @return Member
|
||||
*/
|
||||
public function setfullname($fullname)
|
||||
{
|
||||
$this->fullname = $fullname;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get fullName
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getFullName()
|
||||
{
|
||||
return $this->fullname;
|
||||
}
|
||||
/**
|
||||
* Get fullName
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getLink()
|
||||
{
|
||||
return '/app_dev.php/' . $this->getUsername();
|
||||
}
|
||||
}
|
||||
@@ -1,127 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
|
||||
/**
|
||||
* Bodyrep\Entity\Profile
|
||||
*
|
||||
* @ORM\Table(name="member")
|
||||
* @ORM\Entity
|
||||
*/
|
||||
class Profile
|
||||
{
|
||||
/**
|
||||
* @var integer $id
|
||||
*
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
|
||||
/**
|
||||
* @var string $fullname
|
||||
*
|
||||
* @ORM\Column(name="fullname", type="string")
|
||||
*/
|
||||
private $fullname;
|
||||
|
||||
/**
|
||||
* @var string $username
|
||||
*
|
||||
* @ORM\Column(name="username", type="string")
|
||||
*/
|
||||
private $username;
|
||||
|
||||
/**
|
||||
* @var float $currentweight
|
||||
*
|
||||
* @ORM\Column(name="currentweight", type="float")
|
||||
*/
|
||||
private $currentweight;
|
||||
|
||||
|
||||
/**
|
||||
* Get id
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getid()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set fullName
|
||||
*
|
||||
* @param string $fullname
|
||||
* @return Profile
|
||||
*/
|
||||
public function setfullname($fullname)
|
||||
{
|
||||
$this->fullname = $fullname;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get fullName
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getFullName()
|
||||
{
|
||||
return $this->fullname;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set userName
|
||||
*
|
||||
* @param string $username
|
||||
* @return Profile
|
||||
*/
|
||||
public function setUserName($username)
|
||||
{
|
||||
$this->username = $userName;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get userName
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getUserName()
|
||||
{
|
||||
return $this->username;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set currentWeight
|
||||
*
|
||||
* @param float $currentWeight
|
||||
* @return Profile
|
||||
*/
|
||||
public function setCurrentWeight($currentWeight)
|
||||
{
|
||||
$this->currentweight = $currentWeight;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get currentWeight
|
||||
*
|
||||
* @return float
|
||||
*/
|
||||
public function getCurrentWeight()
|
||||
{
|
||||
return $this->currentweight;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,110 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\Entity;
|
||||
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
||||
/**
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="member")
|
||||
*/
|
||||
class User implements UserInterface
|
||||
{
|
||||
/**
|
||||
* @ORM\Id
|
||||
* @ORM\Column(type="integer")
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=25, unique=true)
|
||||
*/
|
||||
protected $username;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="password", type="string", length=255)
|
||||
*/
|
||||
protected $password;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="salt", type="string", length=255)
|
||||
*/
|
||||
protected $salt;
|
||||
|
||||
protected $roles = array();
|
||||
|
||||
public function getRoles()
|
||||
{
|
||||
return $this->roles;
|
||||
}
|
||||
|
||||
public function getSalt()
|
||||
{
|
||||
return $this->salt;
|
||||
}
|
||||
|
||||
public function getUsername()
|
||||
{
|
||||
return $this->username;
|
||||
}
|
||||
|
||||
public function eraseCredentials()
|
||||
{
|
||||
}
|
||||
|
||||
public function getPassword()
|
||||
{
|
||||
return $this->password;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get id
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set username
|
||||
*
|
||||
* @param string $username
|
||||
* @return User
|
||||
*/
|
||||
public function setUsername($username)
|
||||
{
|
||||
$this->username = $username;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set password
|
||||
*
|
||||
* @param string $password
|
||||
* @return User
|
||||
*/
|
||||
public function setPassword($password)
|
||||
{
|
||||
$this->password = $password;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set salt
|
||||
*
|
||||
* @param string $salt
|
||||
* @return User
|
||||
*/
|
||||
public function setSalt($salt)
|
||||
{
|
||||
$this->salt = $salt;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\Entity;
|
||||
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
||||
/**
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="member")
|
||||
*/
|
||||
class User implements UserInterface
|
||||
{
|
||||
/**
|
||||
* @ORM\Id
|
||||
* @ORM\Column(type="integer")
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=25, unique=true)
|
||||
*/
|
||||
protected $username;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="password", type="string", length=255)
|
||||
*/
|
||||
protected $password;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="salt", type="string", length=255)
|
||||
*/
|
||||
protected $salt;
|
||||
|
||||
protected $roles = array();
|
||||
|
||||
public function getRoles()
|
||||
{
|
||||
return $this->roles;
|
||||
}
|
||||
|
||||
public function getSalt()
|
||||
{
|
||||
return $this->salt;
|
||||
}
|
||||
|
||||
public function getUsername()
|
||||
{
|
||||
return $this->username;
|
||||
}
|
||||
|
||||
public function eraseCredentials()
|
||||
{
|
||||
}
|
||||
|
||||
public function getPassword()
|
||||
{
|
||||
return $this->password;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -1,15 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\Entity;
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
|
||||
/**
|
||||
* UserRepository
|
||||
*
|
||||
* This class was generated by the Doctrine ORM. Add your own custom
|
||||
* repository methods below.
|
||||
*/
|
||||
class UserRepository extends EntityRepository
|
||||
{
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
<?php
|
||||
|
||||
// FooVendor/BarBundle/EventListener/CommentListener.php
|
||||
use FooVendorBarBundleEventCommentEvent;
|
||||
|
||||
class CommentListener
|
||||
{
|
||||
protected $mailer;
|
||||
|
||||
public function __construct(Swift_Mailer $mailer)
|
||||
{
|
||||
$this->mailer = $mailer;
|
||||
}
|
||||
|
||||
public function onCommentEvent(CommentEvent $event)
|
||||
{
|
||||
$post = $event->getPost();
|
||||
$comment = $event->getComment();
|
||||
|
||||
foreach ($post->getSubscribers() as $subscriber) {
|
||||
$message = Swift_Message::newInstance()
|
||||
->setSubject('New comment posted on ' . $post->getTitle())
|
||||
->setFrom('send@example.com')
|
||||
->setTo($subscriber->getEmail())
|
||||
->setBody("Hey, somebody left a new comment on a post you're subscribed to! It says: " . $comment->getBody())
|
||||
;
|
||||
$this->mailer->send($message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -1,26 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\EventListener;
|
||||
|
||||
use Symfony\Component\EventDispatcher\Event;
|
||||
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
||||
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
|
||||
use BodyRep\Twig\Extension\TemplateExtension;
|
||||
|
||||
class ControllerListener
|
||||
{
|
||||
protected $extension;
|
||||
|
||||
public function __construct(TemplateExtension $extension)
|
||||
{
|
||||
$this->extension = $extension;
|
||||
}
|
||||
|
||||
public function onKernelController(FilterControllerEvent $event)
|
||||
{
|
||||
|
||||
if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) {
|
||||
$this->extension->setController($event->getController());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\Form;
|
||||
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
|
||||
class Profile extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->add('fullname', 'text');
|
||||
|
||||
|
||||
//$builder->add('newpass1', 'text');
|
||||
//$builder->add('newpass2', 'text');
|
||||
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return 'profile';
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
|
||||
<container xmlns="http://symfony.com/schema/dic/services"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
|
||||
<services>
|
||||
<service id="twig.extension.bodyrep" class="BodyRep\Twig\Extension\TemplateExtension" public="false">
|
||||
<tag name="twig.extension" />
|
||||
<argument type="service" id="twig.loader" />
|
||||
</service>
|
||||
|
||||
<service id="bodyrep.listener" class="BodyRep\EventListener\ControllerListener">
|
||||
<tag name="kernel.event_listener" event="kernel.controller" method="onKernelController" />
|
||||
<argument type="service" id="twig.extension.bodyrep" />
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
||||
@@ -1,34 +0,0 @@
|
||||
{% extends 'BodyRep::layout.html.twig' %}
|
||||
{% block js %}
|
||||
$(document).ready(function()
|
||||
{
|
||||
if($('#username').val().length > 0)
|
||||
$('#password').focus();
|
||||
else
|
||||
$('#username').focus();
|
||||
});
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% include 'BodyRep:Landing:navbar.html.twig' %}
|
||||
|
||||
<h1>Login</h1>
|
||||
|
||||
{% if error %}
|
||||
<div class="error">{{ error.message }}</div>
|
||||
{% endif %}
|
||||
|
||||
<form name='login' action="{{ path("_login_check") }}" method="post" id="login">
|
||||
<div>
|
||||
<label for="username">Username</label>
|
||||
<input type="text" id="username" name="_username" value="{{ last_username }}" />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="password">Password</label>
|
||||
<input type="password" id="password" name="_password" />
|
||||
</div>
|
||||
|
||||
<input type="submit" class="btn btn-primary btn-mini" id='loginbtn' value="LOGIN" />
|
||||
</form>
|
||||
{% endblock %}
|
||||
@@ -1,35 +0,0 @@
|
||||
<div class="navbar navbar-fixed-top">
|
||||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</a>
|
||||
<img src="/img/logo-nav.png" class='pull-left' style='padding-right : 5px; margin-top : 10px;' />
|
||||
<a class="brand" href="#">BODY<b>REP</b></a>
|
||||
<div class="btn-group pull-right">
|
||||
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#" style="background : transparent; color : white; text-shadow : none; border : none; box-shadow : 0 0 0 #fff;">
|
||||
<i class="icon-user icon-white"></i> {{name}}
|
||||
<span class="caret" style='border-top-color : white; border-bottom-color : white;'></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="{{ path('_member_profile') }}">Profile</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="{{ path('_logout') }}">Sign Out</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class='offset2'>
|
||||
<form class="navbar-search pull-left" id='topsearch' action="{{ path('_member_search') }}">
|
||||
<input type="text" class="search-query span4" id="topsearch" style='height : 28px;' placeholder="Search"><span id='msg_topsearch'></span>
|
||||
</form>
|
||||
</div>
|
||||
<a class="btn dropdown-toggle pull-right" data-toggle="dropdown" href="#" style="margin : 0; background : transparent; color : white; text-shadow : none; border : none; box-shadow : 0 0 0 #fff;">
|
||||
<i class='licon-calendar licon-white'></i>
|
||||
</a>
|
||||
<a class="btn dropdown-toggle pull-right" data-toggle="dropdown" href="#" style="margin : 0; background : transparent; color : white; text-shadow : none; border : none; box-shadow : 0 0 0 #fff;">
|
||||
<i class='licon-mail-new licon-white'></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,9 +0,0 @@
|
||||
{% extends "BodyRep::layout.html.twig" %}
|
||||
|
||||
{% block title "BodyRep - About Us" %}
|
||||
|
||||
{% block content %}
|
||||
{% include 'BodyRep:Landing:navbar.html.twig' %}
|
||||
|
||||
About
|
||||
{% endblock %}
|
||||
@@ -1,12 +0,0 @@
|
||||
{% extends 'BodyRep::layout.html.twig' %}
|
||||
|
||||
{% block title %}BodyRep - Welcome{% endblock %}
|
||||
|
||||
{% block content_header '' %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
{% include 'BodyRep:Landing:navbar.html.twig' %}
|
||||
|
||||
Landing Page
|
||||
{% endblock %}
|
||||
@@ -1,18 +0,0 @@
|
||||
<div class="navbar navbar-fixed-top">
|
||||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</a>
|
||||
<img src="/img/logo-nav.png" class='pull-left' style='padding-right : 5px; margin-top : 10px;' />
|
||||
<a class="brand" href="#">BODY<b>REP</b></a>
|
||||
<div class="btn-group pull-right">
|
||||
<a class="btn " href="{{ path('_member') }}" style="background : transparent; color : white; text-shadow : none; border : none; box-shadow : 0 0 0 #fff;">
|
||||
<i class="icon-user icon-white"></i> Login
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,25 +0,0 @@
|
||||
{% block content %}
|
||||
|
||||
<h1>Update Profile</h1>
|
||||
|
||||
|
||||
<form action="{{ path('_member_profile_save') }}" method="post" id="profile">
|
||||
<div>
|
||||
{{ form_errors(form) }}
|
||||
</div>
|
||||
<div>
|
||||
<label for="fullname">Name</label>
|
||||
{{ form_row(form.fullname) }}
|
||||
</div>
|
||||
<div> </div>
|
||||
<div>
|
||||
<label for="newpass1">New Password:</label><br />
|
||||
<input type="password" id="newpass1" name="_newpass1" /> <br />
|
||||
<input type="password" id="newpass2" name="_newpass2" />
|
||||
</div>
|
||||
<div> </div>
|
||||
|
||||
{{ form_rest(form) }}
|
||||
<input type="submit" class="btn btn-primary btn-small" value="Save" />
|
||||
</form>
|
||||
{% endblock %}
|
||||
@@ -1,13 +0,0 @@
|
||||
{% extends "BodyRep:Member:layout.html.twig" %}
|
||||
|
||||
{% block title "Hello " ~ name %}
|
||||
|
||||
{% block content %}
|
||||
{% include 'BodyRep:Auth:navbar.html.twig' %}
|
||||
<div class='row-fluid'>
|
||||
<h1>Member landing page</h1>
|
||||
|
||||
<h3>{{name}}</h3>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
{% extends 'BodyRep::layout.html.twig' %}
|
||||
|
||||
|
||||
{% block content_header '' %}
|
||||
@@ -1,35 +0,0 @@
|
||||
<div class="navbar navbar-fixed-top">
|
||||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</a>
|
||||
<img src="/img/logo-nav.png" class='pull-left' style='padding-right : 5px; margin-top : 10px;' />
|
||||
<a class="brand" href="#">BODY<b>REP</b></a>
|
||||
<div class="btn-group pull-right">
|
||||
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#" style="background : transparent; color : white; text-shadow : none; border : none; box-shadow : 0 0 0 #fff;">
|
||||
<i class="icon-user icon-white"></i> {{name}}
|
||||
<span class="caret" style='border-top-color : white; border-bottom-color : white;'></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="{{ path('_member_profile') }}">Profile</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="{{ path('_logout') }}">Sign Out</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class='offset2'>
|
||||
<form class="navbar-search pull-left" id='topsearch' action="{{ path('_member_search') }}">
|
||||
<input type="text" class="search-query span4" id="topsearch" style='height : 28px;' placeholder="Search"><span id='msg_topsearch'></span>
|
||||
</form>
|
||||
</div>
|
||||
<a class="btn dropdown-toggle pull-right" data-toggle="dropdown" href="#" style="margin : 0; background : transparent; color : white; text-shadow : none; border : none; box-shadow : 0 0 0 #fff;">
|
||||
<i class='licon-calendar licon-white'></i>
|
||||
</a>
|
||||
<a class="btn dropdown-toggle pull-right" data-toggle="dropdown" href="#" style="margin : 0; background : transparent; color : white; text-shadow : none; border : none; box-shadow : 0 0 0 #fff;">
|
||||
<i class='licon-mail-new licon-white'></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,313 +0,0 @@
|
||||
{% extends 'BodyRep::layout.html.twig' %}
|
||||
|
||||
{% block title %}BodyRep{% endblock %}
|
||||
|
||||
{% block content_header '' %}
|
||||
|
||||
{% block content %}
|
||||
{% include 'BodyRep:Auth:navbar.html.twig' %}
|
||||
|
||||
<div class="row-fluid">
|
||||
<div class="span2">
|
||||
<div class="well sidebar-nav">
|
||||
<ul class="nav nav-list">
|
||||
<li class="nav-header">Profile</li>
|
||||
<li class="active"><a href="#">Body Stats</a></li>
|
||||
<li><a href="#">Body Reputation</a></li>
|
||||
<li><a href="#">Challenges</a></li>
|
||||
<li class="nav-header">Workouts</li>
|
||||
<li class="nav-header">Meals</li>
|
||||
<li class="nav-header">Community</li>
|
||||
<li class="nav-header">Learning</li>
|
||||
<li class="nav-header">Apps</li>
|
||||
<li class="nav-header">Shopping</li>
|
||||
</ul>
|
||||
</div><!--/.well -->
|
||||
</div><!--/span-->
|
||||
<div class="span6" id='mcnt'>
|
||||
<div class="row-fluid">
|
||||
<h2 class="pull-left">{{ sFullName }}</h2>
|
||||
<a class="pull-right btn btn-primary btn-mini" id='edprf' href="#"><i class="icon-cog icon-white"></i> Edit Profile</a>
|
||||
</div>
|
||||
<div class="row-fluid" style='font-size : 12px;'>
|
||||
<i class="icon-signal"></i><span> Weight: 100kg ( <div class='arrowup'></div> 0)</span>
|
||||
<span>Bodyfat: 20% ( <div class='arrowup'></div> 2)</span>
|
||||
<span>Measurements: 400cm ( <div class='arrowup'></div> 15)</span>
|
||||
</div>
|
||||
<div class="row-fluid" style='font-size : 12px;'>
|
||||
<i class="icon-home"></i><span> Lives in </span><a>Calgary, Alberta</a>
|
||||
<i class="icon-signal"></i><span> Trains at </span><a>Talisman Center,Fitness First</a>
|
||||
<i class="icon-signal"></i><span> Hobbies: </span><a>Skiing,</a><span> and </span><a>(5) other</a><span> ...</span>
|
||||
<i class="icon-signal"></i><span> Professionals: </span><a>Heath Spence</a><span>,</span><a>Steve Baudo</a><a> see more...</a>
|
||||
</div>
|
||||
<hr />
|
||||
<div class="row-fluid">
|
||||
<h5 class="pull-left">Filters:</h5>
|
||||
<div class="pull-left">
|
||||
<div class="block_type_small redbg redbd pull-left">
|
||||
<i class="icon-user icon-white"></i>
|
||||
</div>
|
||||
<div class="block_type_small bluebg bluebd pull-left">
|
||||
<i class="icon-wrench icon-white"></i>
|
||||
</div>
|
||||
<div class="block_type_small orangebg orangebd pull-left">
|
||||
<i class="icon-magnet icon-white"></i>
|
||||
</div>
|
||||
<div class="block_type_small tealbg tealbd pull-left">
|
||||
<i class="icon-heart icon-white"></i>
|
||||
</div>
|
||||
<div class="block_type_small purplebg purplebd pull-left">
|
||||
<i class="icon-th icon-white"></i>
|
||||
</div>
|
||||
<div class="block_type_small greenbg greenbd pull-left">
|
||||
<i class="icon-book icon-white"></i>
|
||||
</div>
|
||||
<div class="block_type_small graybg graybd pull-left">
|
||||
<i class="icon-file icon-white"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stats">
|
||||
<div class="comment_block">
|
||||
<div class="block_types">
|
||||
<div class="block_type redbd">
|
||||
<i class="gicon-magnet"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tnc-blurb">
|
||||
<i class="icon-signal"></i>
|
||||
565
|
||||
</div>
|
||||
<div class="basic-comment">
|
||||
<b>Breakfast:</b><span> 30g Oats, 1x Banana, 5x Egg Whites</span>
|
||||
</div>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>14 minutes ago</span>
|
||||
</div>
|
||||
<div class="user-sub-comment">
|
||||
<div class='sub-avatar user1'></div>
|
||||
<a>Brian Goff</a>
|
||||
<p>Good to see you're keeping up the good work mate. Keep us posted ;)</p>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 3 at 2:05pm</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="user-sub-comment">
|
||||
<div class='sub-avatar user2'></div>
|
||||
<a>Alex Zborowski</a>
|
||||
<p>Well it's not easy but you do your best every day and you judge every action.</p>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 3 at 2:05pm</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stats">
|
||||
<div class="comment_block">
|
||||
<div class="block_types">
|
||||
<div class="block_type greenbd">
|
||||
<i class="gicon-search"></i>
|
||||
</div>
|
||||
<div class="block_type orangebd">
|
||||
<i class="gicon-screen"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tnc-blurb">
|
||||
<i class="icon-time"></i>
|
||||
45
|
||||
<i class="icon-signal"></i>
|
||||
900
|
||||
</div>
|
||||
<div class="basic-comment">
|
||||
Workout at <a>Talisman Center</a> with <a>Brian Goff</a>
|
||||
</div>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>37 minutes ago</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stats">
|
||||
<div class="comment_block">
|
||||
<div class="block_types">
|
||||
<div class="block_type greenbd">
|
||||
<i class="gicon-search"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tnc-blurb">
|
||||
<i class="icon-time"></i>
|
||||
90
|
||||
<i class="icon-signal"></i>
|
||||
720
|
||||
</div>
|
||||
<div class="basic-comment">
|
||||
Workout at <a>Talisman Center</a>
|
||||
</div>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 4 at 7:00pm</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stats">
|
||||
<div class="comment_block">
|
||||
<div class="block_types">
|
||||
<div class="block_type bluebd">
|
||||
<i class="gicon-profile"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tnc-blurb">
|
||||
</div>
|
||||
<div class="basic-comment">
|
||||
You commented on <a>Brian Goff's workout</a>
|
||||
</div>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 4 at 6:30pm</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stats">
|
||||
<div class="comment_block">
|
||||
<div class="block_types">
|
||||
<div class="block_type purplebd">
|
||||
<i class="gicon-profile"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tnc-blurb">
|
||||
</div>
|
||||
<div class="basic-comment">
|
||||
Your read <a>"Fatigue Recovery & Supercompensation Theory"</a>
|
||||
</div>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 2 at 8:00am</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stats">
|
||||
<div class="comment_block">
|
||||
<div class="block_types">
|
||||
<div class="block_type greenbd">
|
||||
<i class="gicon-search"></i>
|
||||
</div>
|
||||
<div class="block_type orangebd">
|
||||
<i class="gicon-screen"></i>
|
||||
</div>
|
||||
<div class="block_type tealbd">
|
||||
<i class="gicon-line"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tnc-blurb">
|
||||
<i class="icon-time"></i>
|
||||
30
|
||||
<i class="icon-signal"></i>
|
||||
450
|
||||
</div>
|
||||
<div class="basic-comment">
|
||||
<a>Workout</a> using <a>Runtracker</a> with <a>Brian Goff</a>
|
||||
</div>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 2 at 6:00am</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="stats">
|
||||
<div class="comment_block">
|
||||
<div class="block_types">
|
||||
<div class="block_type orangebd">
|
||||
<i class="gicon-screen"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="user-comment">
|
||||
<div class='avatar user1'></div>
|
||||
<a>Brian Goff</a>
|
||||
<p>Hey "mate"! Want to train at the <a>Talisman</a> again tonight?</p>
|
||||
</div>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 3 at 2:00pm</span>
|
||||
</div>
|
||||
|
||||
<div class="user-sub-comment">
|
||||
<div class='sub-avatar user2'></div>
|
||||
<a>Alex Zborowski</a>
|
||||
<p>Sorry Brian, working on the BodyREP pitch tonight.</p>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 3 at 2:05pm</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="user-sub-comment">
|
||||
<div class='sub-avatar user1'></div>
|
||||
<a>Brian Goff</a>
|
||||
<p>No worries "mate", maybe next time.</p>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 3 at 2:07pm</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="span4">
|
||||
<div class="hero-unit">
|
||||
<h1>Hello, world!</h1>
|
||||
<p>This is a template for a simple marketing or informational website. It includes a large callout called the hero unit and three supporting pieces of content. Use it as a starting point to create something more unique.</p>
|
||||
<p><a class="btn btn-primary btn-large">Learn more »</a></p>
|
||||
</div>
|
||||
<div class="row-fluid">
|
||||
<div class="span4">
|
||||
<h2>Heading</h2>
|
||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||
<p><a class="btn" href="#">View details »</a></p>
|
||||
</div><!--/span-->
|
||||
<div class="span4">
|
||||
<h2>Heading</h2>
|
||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||
<p><a class="btn" href="#">View details »</a></p>
|
||||
</div><!--/span-->
|
||||
<div class="span4">
|
||||
<h2>Heading</h2>
|
||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||
<p><a class="btn" href="#">View details »</a></p>
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
<div class="row-fluid">
|
||||
<div class="span4">
|
||||
<h2>Heading</h2>
|
||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||
<p><a class="btn" href="#">View details »</a></p>
|
||||
</div><!--/span-->
|
||||
<div class="span4">
|
||||
<h2>Heading</h2>
|
||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||
<p><a class="btn" href="#">View details »</a></p>
|
||||
</div><!--/span-->
|
||||
<div class="span4">
|
||||
<h2>Heading</h2>
|
||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||
<p><a class="btn" href="#">View details »</a></p>
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
{% endblock %}
|
||||
@@ -1,15 +0,0 @@
|
||||
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h1>Search Results</h1>
|
||||
{% for result in search %}
|
||||
<li>
|
||||
<a href="{{ result.getLink() }}">
|
||||
{{ result.getFullName() }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
{% for comment in comments %}
|
||||
<div class="user-sub-comment">
|
||||
<div class='sub-avatar user1'></div>
|
||||
<a>{{ comment.author }}</a>
|
||||
<p>{{ comment.text }} </p>
|
||||
<div class="like-comment-time">
|
||||
{{ comment.thumbs }}
|
||||
<i class="icon-comment"></i>
|
||||
<span>{{ comment.dateHuman }} </span>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
@@ -1,319 +0,0 @@
|
||||
{% extends 'BodyRep::layout.html.twig' %}
|
||||
|
||||
{% block title %}BodyRep{% endblock %}
|
||||
{% block documentReady %}
|
||||
$('#rep').live('click', function() {
|
||||
$.get('{{ path("_profile_reputation", { 'username': app.request.get('username') }) }}', {}, function (data) {
|
||||
$('#mcnt').html(data);
|
||||
});
|
||||
});
|
||||
{% endblock %}
|
||||
|
||||
{% block content_header '' %}
|
||||
|
||||
{% block content %}
|
||||
{% include 'BodyRep:Auth:navbar.html.twig' %}
|
||||
|
||||
<div class="row-fluid">
|
||||
<div class="span2">
|
||||
<div class="well sidebar-nav">
|
||||
<ul class="nav nav-list">
|
||||
<li class="nav-header">Profile</li>
|
||||
<li class="active"><a href="#">Body Stats</a></li>
|
||||
<li><a href="#" id='rep'>Body Reputation</a></li>
|
||||
<li><a href="#">Challenges</a></li>
|
||||
<li class="nav-header">Workouts</li>
|
||||
<li class="nav-header">Meals</li>
|
||||
<li class="nav-header">Community</li>
|
||||
<li class="nav-header">Learning</li>
|
||||
<li class="nav-header">Apps</li>
|
||||
<li class="nav-header">Shopping</li>
|
||||
</ul>
|
||||
</div><!--/.well -->
|
||||
</div><!--/span-->
|
||||
<div class="span6" id='mcnt'>
|
||||
<div class="row-fluid">
|
||||
<h2 class="pull-left">{{ sFullName }}</h2>
|
||||
</div>
|
||||
<div class="row-fluid" style='font-size : 12px;'>
|
||||
<i class="icon-signal"></i><span> Weight: 100kg ( <div class='arrowup'></div> 0)</span>
|
||||
<span>Bodyfat: 20% ( <div class='arrowup'></div> 2)</span>
|
||||
<span>Measurements: 400cm ( <div class='arrowup'></div> 15)</span>
|
||||
</div>
|
||||
<div class="row-fluid" style='font-size : 12px;'>
|
||||
<i class="icon-home"></i><span> Lives in </span><a>Calgary, Alberta</a>
|
||||
<i class="icon-signal"></i><span> Trains at </span><a>Talisman Center,Fitness First</a>
|
||||
<i class="icon-signal"></i><span> Hobbies: </span><a>Skiing,</a><span> and </span><a>(5) other</a><span> ...</span>
|
||||
<i class="icon-signal"></i><span> Professionals: </span><a>Heath Spence</a><span>,</span><a>Steve Baudo</a><a> see more...</a>
|
||||
</div>
|
||||
<hr />
|
||||
<div class="row-fluid">
|
||||
<h5 class="pull-left">Filters:</h5>
|
||||
<div class="pull-left">
|
||||
<div class="block_type_small redbg redbd pull-left">
|
||||
<i class="icon-user icon-white"></i>
|
||||
</div>
|
||||
<div class="block_type_small bluebg bluebd pull-left">
|
||||
<i class="icon-wrench icon-white"></i>
|
||||
</div>
|
||||
<div class="block_type_small orangebg orangebd pull-left">
|
||||
<i class="icon-magnet icon-white"></i>
|
||||
</div>
|
||||
<div class="block_type_small tealbg tealbd pull-left">
|
||||
<i class="icon-heart icon-white"></i>
|
||||
</div>
|
||||
<div class="block_type_small purplebg purplebd pull-left">
|
||||
<i class="icon-th icon-white"></i>
|
||||
</div>
|
||||
<div class="block_type_small greenbg greenbd pull-left">
|
||||
<i class="icon-book icon-white"></i>
|
||||
</div>
|
||||
<div class="block_type_small graybg graybd pull-left">
|
||||
<i class="icon-file icon-white"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stats">
|
||||
<div class="comment_block">
|
||||
<div class="block_types">
|
||||
<div class="block_type redbd">
|
||||
<i class="gicon-magnet"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tnc-blurb">
|
||||
<i class="icon-signal"></i>
|
||||
565
|
||||
</div>
|
||||
<div class="basic-comment">
|
||||
<b>Breakfast:</b><span> 30g Oats, 1x Banana, 5x Egg Whites</span>
|
||||
</div>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>14 minutes ago</span>
|
||||
</div>
|
||||
<div class="user-sub-comment">
|
||||
<div class='sub-avatar user1'></div>
|
||||
<a>Brian Goff</a>
|
||||
<p>Good to see you're keeping up the good work mate. Keep us posted ;)</p>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 3 at 2:05pm</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="user-sub-comment">
|
||||
<div class='sub-avatar user2'></div>
|
||||
<a>Alex Zborowski</a>
|
||||
<p>Well it's not easy but you do your best every day and you judge every action.</p>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 3 at 2:05pm</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stats">
|
||||
<div class="comment_block">
|
||||
<div class="block_types">
|
||||
<div class="block_type greenbd">
|
||||
<i class="gicon-search"></i>
|
||||
</div>
|
||||
<div class="block_type orangebd">
|
||||
<i class="gicon-screen"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tnc-blurb">
|
||||
<i class="icon-time"></i>
|
||||
45
|
||||
<i class="icon-signal"></i>
|
||||
900
|
||||
</div>
|
||||
<div class="basic-comment">
|
||||
Workout at <a>Talisman Center</a> with <a>Brian Goff</a>
|
||||
</div>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>37 minutes ago</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stats">
|
||||
<div class="comment_block">
|
||||
<div class="block_types">
|
||||
<div class="block_type greenbd">
|
||||
<i class="gicon-search"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tnc-blurb">
|
||||
<i class="icon-time"></i>
|
||||
90
|
||||
<i class="icon-signal"></i>
|
||||
720
|
||||
</div>
|
||||
<div class="basic-comment">
|
||||
Workout at <a>Talisman Center</a>
|
||||
</div>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 4 at 7:00pm</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stats">
|
||||
<div class="comment_block">
|
||||
<div class="block_types">
|
||||
<div class="block_type bluebd">
|
||||
<i class="gicon-profile"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tnc-blurb">
|
||||
</div>
|
||||
<div class="basic-comment">
|
||||
You commented on <a>Brian Goff's workout</a>
|
||||
</div>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 4 at 6:30pm</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stats">
|
||||
<div class="comment_block">
|
||||
<div class="block_types">
|
||||
<div class="block_type purplebd">
|
||||
<i class="gicon-profile"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tnc-blurb">
|
||||
</div>
|
||||
<div class="basic-comment">
|
||||
Your read <a>"Fatigue Recovery & Supercompensation Theory"</a>
|
||||
</div>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 2 at 8:00am</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stats">
|
||||
<div class="comment_block">
|
||||
<div class="block_types">
|
||||
<div class="block_type greenbd">
|
||||
<i class="gicon-search"></i>
|
||||
</div>
|
||||
<div class="block_type orangebd">
|
||||
<i class="gicon-screen"></i>
|
||||
</div>
|
||||
<div class="block_type tealbd">
|
||||
<i class="gicon-line"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tnc-blurb">
|
||||
<i class="icon-time"></i>
|
||||
30
|
||||
<i class="icon-signal"></i>
|
||||
450
|
||||
</div>
|
||||
<div class="basic-comment">
|
||||
<a>Workout</a> using <a>Runtracker</a> with <a>Brian Goff</a>
|
||||
</div>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 2 at 6:00am</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="stats">
|
||||
<div class="comment_block">
|
||||
<div class="block_types">
|
||||
<div class="block_type orangebd">
|
||||
<i class="gicon-screen"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="user-comment">
|
||||
<div class='avatar user1'></div>
|
||||
<a>Brian Goff</a>
|
||||
<p>Hey "mate"! Want to train at the <a>Talisman</a> again tonight?</p>
|
||||
</div>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 3 at 2:00pm</span>
|
||||
</div>
|
||||
|
||||
<div class="user-sub-comment">
|
||||
<div class='sub-avatar user2'></div>
|
||||
<a>Alex Zborowski</a>
|
||||
<p>Sorry Brian, working on the BodyREP pitch tonight.</p>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 3 at 2:05pm</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="user-sub-comment">
|
||||
<div class='sub-avatar user1'></div>
|
||||
<a>Brian Goff</a>
|
||||
<p>No worries "mate", maybe next time.</p>
|
||||
<div class="like-comment-time">
|
||||
<i class="icon-thumbs-up"></i>
|
||||
<i class="icon-comment"></i>
|
||||
<span>April 3 at 2:07pm</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="span4">
|
||||
<div class="hero-unit">
|
||||
<h1>Hello, world!</h1>
|
||||
<p>This is a template for a simple marketing or informational website. It includes a large callout called the hero unit and three supporting pieces of content. Use it as a starting point to create something more unique.</p>
|
||||
<p><a class="btn btn-primary btn-large">Learn more »</a></p>
|
||||
</div>
|
||||
<div class="row-fluid">
|
||||
<div class="span4">
|
||||
<h2>Heading</h2>
|
||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||
<p><a class="btn" href="#">View details »</a></p>
|
||||
</div><!--/span-->
|
||||
<div class="span4">
|
||||
<h2>Heading</h2>
|
||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||
<p><a class="btn" href="#">View details »</a></p>
|
||||
</div><!--/span-->
|
||||
<div class="span4">
|
||||
<h2>Heading</h2>
|
||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||
<p><a class="btn" href="#">View details »</a></p>
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
<div class="row-fluid">
|
||||
<div class="span4">
|
||||
<h2>Heading</h2>
|
||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||
<p><a class="btn" href="#">View details »</a></p>
|
||||
</div><!--/span-->
|
||||
<div class="span4">
|
||||
<h2>Heading</h2>
|
||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||
<p><a class="btn" href="#">View details »</a></p>
|
||||
</div><!--/span-->
|
||||
<div class="span4">
|
||||
<h2>Heading</h2>
|
||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||
<p><a class="btn" href="#">View details »</a></p>
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
{% endblock %}
|
||||
@@ -1,10 +0,0 @@
|
||||
{% block js %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content_header '' %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row-fluid">
|
||||
Reputation page
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -1,68 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>{% block title %}BodyRep{% endblock %}</title>
|
||||
<link rel="stylesheet" href="{{ asset('css/bootstrap.css') }}" media="all" />
|
||||
<style type="text/css">
|
||||
body {
|
||||
padding-top: 60px;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
.sidebar-nav {
|
||||
padding: 9px 0;
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" href="{{ asset('css/bootstrap-responsive.css') }}" />
|
||||
<link rel="stylesheet" href="{{ asset('css/site.css') }}" />
|
||||
<link rel="stylesheet" href="{{ asset('css/chosen.css') }}" />
|
||||
{% block javascripts %}
|
||||
<script type="text/javascript" src="{{ asset('js/LAB.js') }}"></script>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
var loadb;
|
||||
$LAB.script('https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js')
|
||||
.script('//ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js')
|
||||
.script("{{ asset('js/application.js') }}")
|
||||
.script("{{ asset('js/jquery.chosen.min.js') }}")
|
||||
.script("{{ asset('js/bootstrap.js') }}").wait(function() {
|
||||
|
||||
{% block documentReady %}
|
||||
|
||||
{% endblock %}
|
||||
clearTimeout(loadb);
|
||||
$('#loadmast').hide();
|
||||
$('#mast').removeClass('hidden');
|
||||
});
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id='mast' class='hidden'>
|
||||
<div class="container-fluid symfony-content">
|
||||
|
||||
{% block content %}
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
||||
<hr>
|
||||
|
||||
<footer>
|
||||
<p>© BodyRep 2012</p>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id='loadmast'><img align="absmiddle" style="margin-left: 10px; margin-bottom: 3px;" src="/img/progress.gif"> Loading</div>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,47 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Bodyrep\Tests\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpFoundation\File\File;
|
||||
|
||||
class AuthControllerTest extends WebTestCase
|
||||
{
|
||||
public function testIndex()
|
||||
{
|
||||
$client = static::createClient();
|
||||
$client->followRedirects(true);
|
||||
$crawler = $client->request('GET', '/u/login');
|
||||
|
||||
$this->assertTrue($crawler->filter('html:contains("Username")')->count() > 0);
|
||||
}
|
||||
|
||||
public function testLogin()
|
||||
{
|
||||
$client = static::createClient();
|
||||
$client->followRedirects(true);
|
||||
$crawler = $client->request('GET', '/u/login');
|
||||
|
||||
|
||||
$form = $crawler->selectButton('loginbtn')->form();
|
||||
$crawler = $client->submit($form, array(
|
||||
'_username' => 'alexl',
|
||||
'_password' => 'd559ko54'
|
||||
));
|
||||
|
||||
$this->assertTrue($crawler->filter('html:contains("Member")')->count() > 0);
|
||||
}
|
||||
|
||||
public function testLogout()
|
||||
{
|
||||
$client = static::createClient();
|
||||
$client->followRedirects(true);
|
||||
|
||||
$crawler = $client->request('GET', '/u/logout');
|
||||
|
||||
$this->assertTrue($crawler->filter('html:contains("Landing")')->count() > 0);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -1,19 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Bodyrep\Tests\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
|
||||
|
||||
class LandingControllerTest extends WebTestCase
|
||||
{
|
||||
public function testIndex()
|
||||
{
|
||||
$client = static::createClient();
|
||||
|
||||
$crawler = $client->request('GET', '/');
|
||||
|
||||
$this->assertTrue($crawler->filter('html:contains("Landing Page")')->count() > 0);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -1,45 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Bodyrep\Tests\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
class MemberControllerTest extends WebTestCase
|
||||
{
|
||||
private $authcrawler;
|
||||
private $authclient;
|
||||
|
||||
function __construct()
|
||||
{
|
||||
$this->authclient = static::createClient();
|
||||
$this->authclient->followRedirects(true);
|
||||
$this->authcrawler = $this->authclient->request('GET', '/u/login');
|
||||
|
||||
|
||||
$form = $this->authcrawler->selectButton('loginbtn')->form();
|
||||
$this->authcrawler = $this->authclient->submit($form, array(
|
||||
'_username' => 'alexl',
|
||||
'_password' => 'd559ko54'
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
public function testIndex()
|
||||
{
|
||||
$this->assertTrue($this->authcrawler->filter('html:contains("Member landing")')->count() > 0);
|
||||
|
||||
}
|
||||
|
||||
public function testEditProfile()
|
||||
{
|
||||
|
||||
|
||||
$this->authcrawler = $this->authclient->request('GET', '/m/profile');
|
||||
|
||||
$this->assertTrue($this->authcrawler->filter('html:contains("Edit Profile")')->count() > 0);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -1,51 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Bodyrep\Tests\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
class ProfileControllerTest extends WebTestCase
|
||||
{
|
||||
public function testProfile()
|
||||
{
|
||||
$client = static::createClient();
|
||||
$client->followRedirects(true);
|
||||
$crawler = $client->request('GET', '/u/login');
|
||||
|
||||
|
||||
$form = $crawler->selectButton('loginbtn')->form();
|
||||
$crawler = $client->submit($form, array(
|
||||
'_username' => 'alexl',
|
||||
'_password' => 'd559ko54'
|
||||
));
|
||||
|
||||
|
||||
$crawler = $client->request('GET', '/alexl');
|
||||
|
||||
$this->assertTrue($crawler->filter('html:contains("Alex")')->count() > 0);
|
||||
|
||||
}
|
||||
|
||||
public function testEditProfile()
|
||||
{
|
||||
$client = static::createClient();
|
||||
$client->followRedirects(true);
|
||||
$crawler = $client->request('GET', '/u/login');
|
||||
|
||||
|
||||
$form = $crawler->selectButton('loginbtn')->form();
|
||||
$crawler = $client->submit($form, array(
|
||||
'_username' => 'alexl',
|
||||
'_password' => 'd559ko54'
|
||||
));
|
||||
|
||||
|
||||
$crawler = $client->request('GET', '/alexl');
|
||||
|
||||
$this->assertTrue($crawler->filter('html:contains("Alex")')->count() > 0);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -1,33 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace BodyRep\Twig\Extension;
|
||||
|
||||
use Symfony\Component\HttpKernel\KernelInterface;
|
||||
use Symfony\Bundle\TwigBundle\Loader\FilesystemLoader;
|
||||
use CG\Core\ClassUtils;
|
||||
|
||||
class TemplateExtension extends \Twig_Extension
|
||||
{
|
||||
protected $loader;
|
||||
protected $controller;
|
||||
|
||||
public function __construct(FilesystemLoader $loader)
|
||||
{
|
||||
$this->loader = $loader;
|
||||
}
|
||||
|
||||
public function setController($controller)
|
||||
{
|
||||
$this->controller = $controller;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the name of the extension.
|
||||
*
|
||||
* @return string The extension name
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'demo';
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Symfony\Component\ClassLoader\ApcClassLoader;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
|
||||
|
||||
// Use APC for autoloading to improve performance
|
||||
// Change 'sf2' by the prefix you want in order to prevent key conflict with another application
|
||||
/*
|
||||
$loader = new ApcClassLoader('sf2', $loader);
|
||||
$loader->register(true);
|
||||
*/
|
||||
|
||||
require_once __DIR__.'/../app/AppKernel.php';
|
||||
//require_once __DIR__.'/../app/AppCache.php';
|
||||
|
||||
$kernel = new AppKernel('prod', false);
|
||||
$kernel->loadClassCache();
|
||||
//$kernel = new AppCache($kernel);
|
||||
$request = Request::createFromGlobals();
|
||||
$response = $kernel->handle($request);
|
||||
$response->send();
|
||||
$kernel->terminate($request, $response);
|
||||
@@ -1,13 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
|
||||
require_once __DIR__.'/../app/AppKernel.php';
|
||||
require_once('/data/framework/lib/functions.php');
|
||||
$kernel = new AppKernel('dev', true);
|
||||
$kernel->loadClassCache();
|
||||
$request = Request::createFromGlobals();
|
||||
$response = $kernel->handle($request);
|
||||
$response->send();
|
||||
$kernel->terminate($request, $response);
|
||||
|
Before Width: | Height: | Size: 10 KiB |
815
br/web/css/bootstrap-responsive.css
vendored
@@ -1,815 +0,0 @@
|
||||
/*!
|
||||
* Bootstrap Responsive v2.0.4
|
||||
*
|
||||
* Copyright 2012 Twitter, Inc
|
||||
* Licensed under the Apache License v2.0
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Designed and built with all the love in the world @twitter by @mdo and @fat.
|
||||
*/
|
||||
|
||||
.clearfix {
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
.clearfix:before,
|
||||
.clearfix:after {
|
||||
display: table;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.hide-text {
|
||||
font: 0/0 a;
|
||||
color: transparent;
|
||||
text-shadow: none;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.input-block-level {
|
||||
display: block;
|
||||
width: 100%;
|
||||
min-height: 28px;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.visible-phone {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.visible-tablet {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.hidden-desktop {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
.visible-phone {
|
||||
display: inherit !important;
|
||||
}
|
||||
.hidden-phone {
|
||||
display: none !important;
|
||||
}
|
||||
.hidden-desktop {
|
||||
display: inherit !important;
|
||||
}
|
||||
.visible-desktop {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) and (max-width: 979px) {
|
||||
.visible-tablet {
|
||||
display: inherit !important;
|
||||
}
|
||||
.hidden-tablet {
|
||||
display: none !important;
|
||||
}
|
||||
.hidden-desktop {
|
||||
display: inherit !important;
|
||||
}
|
||||
.visible-desktop {
|
||||
display: none !important ;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.nav-collapse {
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
}
|
||||
.page-header h1 small {
|
||||
display: block;
|
||||
line-height: 18px;
|
||||
}
|
||||
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-right: 10px;
|
||||
padding-left: 10px;
|
||||
}
|
||||
.modal {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
left: 10px;
|
||||
width: auto;
|
||||
margin: 0;
|
||||
}
|
||||
.modal.fade.in {
|
||||
top: auto;
|
||||
}
|
||||
.modal-header .close {
|
||||
padding: 10px;
|
||||
margin: -10px;
|
||||
}
|
||||
.carousel-caption {
|
||||
position: static;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
body {
|
||||
padding-right: 20px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
.navbar-fixed-top,
|
||||
.navbar-fixed-bottom {
|
||||
margin-right: -20px;
|
||||
margin-left: -20px;
|
||||
}
|
||||
.container-fluid {
|
||||
padding: 0;
|
||||
}
|
||||
.dl-horizontal dt {
|
||||
float: none;
|
||||
width: auto;
|
||||
clear: none;
|
||||
text-align: left;
|
||||
}
|
||||
.dl-horizontal dd {
|
||||
margin-left: 0;
|
||||
}
|
||||
.container {
|
||||
width: auto;
|
||||
}
|
||||
.row-fluid {
|
||||
width: 100%;
|
||||
}
|
||||
.row,
|
||||
.thumbnails {
|
||||
margin-left: 0;
|
||||
}
|
||||
[class*="span"],
|
||||
.row-fluid [class*="span"] {
|
||||
display: block;
|
||||
float: none;
|
||||
width: auto;
|
||||
margin-left: 0;
|
||||
}
|
||||
.input-large,
|
||||
.input-xlarge,
|
||||
.input-xxlarge,
|
||||
input[class*="span"],
|
||||
select[class*="span"],
|
||||
textarea[class*="span"],
|
||||
.uneditable-input {
|
||||
display: block;
|
||||
width: 100%;
|
||||
min-height: 28px;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.input-prepend input,
|
||||
.input-append input,
|
||||
.input-prepend input[class*="span"],
|
||||
.input-append input[class*="span"] {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) and (max-width: 979px) {
|
||||
.row {
|
||||
margin-left: -20px;
|
||||
*zoom: 1;
|
||||
}
|
||||
.row:before,
|
||||
.row:after {
|
||||
display: table;
|
||||
content: "";
|
||||
}
|
||||
.row:after {
|
||||
clear: both;
|
||||
}
|
||||
[class*="span"] {
|
||||
float: left;
|
||||
margin-left: 20px;
|
||||
}
|
||||
.container,
|
||||
.navbar-fixed-top .container,
|
||||
.navbar-fixed-bottom .container {
|
||||
width: 724px;
|
||||
}
|
||||
.span12 {
|
||||
width: 724px;
|
||||
}
|
||||
.span11 {
|
||||
width: 662px;
|
||||
}
|
||||
.span10 {
|
||||
width: 600px;
|
||||
}
|
||||
.span9 {
|
||||
width: 538px;
|
||||
}
|
||||
.span8 {
|
||||
width: 476px;
|
||||
}
|
||||
.span7 {
|
||||
width: 414px;
|
||||
}
|
||||
.span6 {
|
||||
width: 352px;
|
||||
}
|
||||
.span5 {
|
||||
width: 290px;
|
||||
}
|
||||
.span4 {
|
||||
width: 228px;
|
||||
}
|
||||
.span3 {
|
||||
width: 166px;
|
||||
}
|
||||
.span2 {
|
||||
width: 104px;
|
||||
}
|
||||
.span1 {
|
||||
width: 42px;
|
||||
}
|
||||
.offset12 {
|
||||
margin-left: 764px;
|
||||
}
|
||||
.offset11 {
|
||||
margin-left: 702px;
|
||||
}
|
||||
.offset10 {
|
||||
margin-left: 640px;
|
||||
}
|
||||
.offset9 {
|
||||
margin-left: 578px;
|
||||
}
|
||||
.offset8 {
|
||||
margin-left: 516px;
|
||||
}
|
||||
.offset7 {
|
||||
margin-left: 454px;
|
||||
}
|
||||
.offset6 {
|
||||
margin-left: 392px;
|
||||
}
|
||||
.offset5 {
|
||||
margin-left: 330px;
|
||||
}
|
||||
.offset4 {
|
||||
margin-left: 268px;
|
||||
}
|
||||
.offset3 {
|
||||
margin-left: 206px;
|
||||
}
|
||||
.offset2 {
|
||||
margin-left: 144px;
|
||||
}
|
||||
.offset1 {
|
||||
margin-left: 82px;
|
||||
}
|
||||
.row-fluid {
|
||||
width: 100%;
|
||||
*zoom: 1;
|
||||
}
|
||||
.row-fluid:before,
|
||||
.row-fluid:after {
|
||||
display: table;
|
||||
content: "";
|
||||
}
|
||||
.row-fluid:after {
|
||||
clear: both;
|
||||
}
|
||||
.row-fluid [class*="span"] {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 100%;
|
||||
min-height: 28px;
|
||||
margin-left: 2.762430939%;
|
||||
*margin-left: 2.709239449638298%;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.row-fluid [class*="span"]:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
.row-fluid .span12 {
|
||||
width: 99.999999993%;
|
||||
*width: 99.9468085036383%;
|
||||
}
|
||||
.row-fluid .span11 {
|
||||
width: 91.436464082%;
|
||||
*width: 91.38327259263829%;
|
||||
}
|
||||
.row-fluid .span10 {
|
||||
width: 82.87292817100001%;
|
||||
*width: 82.8197366816383%;
|
||||
}
|
||||
.row-fluid .span9 {
|
||||
width: 74.30939226%;
|
||||
*width: 74.25620077063829%;
|
||||
}
|
||||
.row-fluid .span8 {
|
||||
width: 65.74585634900001%;
|
||||
*width: 65.6926648596383%;
|
||||
}
|
||||
.row-fluid .span7 {
|
||||
width: 57.182320438000005%;
|
||||
*width: 57.129128948638304%;
|
||||
}
|
||||
.row-fluid .span6 {
|
||||
width: 48.618784527%;
|
||||
*width: 48.5655930376383%;
|
||||
}
|
||||
.row-fluid .span5 {
|
||||
width: 40.055248616%;
|
||||
*width: 40.0020571266383%;
|
||||
}
|
||||
.row-fluid .span4 {
|
||||
width: 31.491712705%;
|
||||
*width: 31.4385212156383%;
|
||||
}
|
||||
.row-fluid .span3 {
|
||||
width: 22.928176794%;
|
||||
*width: 22.874985304638297%;
|
||||
}
|
||||
.row-fluid .span2 {
|
||||
width: 14.364640883%;
|
||||
*width: 14.311449393638298%;
|
||||
}
|
||||
.row-fluid .span1 {
|
||||
width: 5.801104972%;
|
||||
*width: 5.747913482638298%;
|
||||
}
|
||||
input,
|
||||
textarea,
|
||||
.uneditable-input {
|
||||
margin-left: 0;
|
||||
}
|
||||
input.span12,
|
||||
textarea.span12,
|
||||
.uneditable-input.span12 {
|
||||
width: 714px;
|
||||
}
|
||||
input.span11,
|
||||
textarea.span11,
|
||||
.uneditable-input.span11 {
|
||||
width: 652px;
|
||||
}
|
||||
input.span10,
|
||||
textarea.span10,
|
||||
.uneditable-input.span10 {
|
||||
width: 590px;
|
||||
}
|
||||
input.span9,
|
||||
textarea.span9,
|
||||
.uneditable-input.span9 {
|
||||
width: 528px;
|
||||
}
|
||||
input.span8,
|
||||
textarea.span8,
|
||||
.uneditable-input.span8 {
|
||||
width: 466px;
|
||||
}
|
||||
input.span7,
|
||||
textarea.span7,
|
||||
.uneditable-input.span7 {
|
||||
width: 404px;
|
||||
}
|
||||
input.span6,
|
||||
textarea.span6,
|
||||
.uneditable-input.span6 {
|
||||
width: 342px;
|
||||
}
|
||||
input.span5,
|
||||
textarea.span5,
|
||||
.uneditable-input.span5 {
|
||||
width: 280px;
|
||||
}
|
||||
input.span4,
|
||||
textarea.span4,
|
||||
.uneditable-input.span4 {
|
||||
width: 218px;
|
||||
}
|
||||
input.span3,
|
||||
textarea.span3,
|
||||
.uneditable-input.span3 {
|
||||
width: 156px;
|
||||
}
|
||||
input.span2,
|
||||
textarea.span2,
|
||||
.uneditable-input.span2 {
|
||||
width: 94px;
|
||||
}
|
||||
input.span1,
|
||||
textarea.span1,
|
||||
.uneditable-input.span1 {
|
||||
width: 32px;
|
||||
}
|
||||
}
|
||||
|
||||
@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;
|
||||
}
|
||||
.container,
|
||||
.navbar-fixed-top .container,
|
||||
.navbar-fixed-bottom .container {
|
||||
width: 1170px;
|
||||
}
|
||||
.span12 {
|
||||
width: 1170px;
|
||||
}
|
||||
.span11 {
|
||||
width: 1070px;
|
||||
}
|
||||
.span10 {
|
||||
width: 970px;
|
||||
}
|
||||
.span9 {
|
||||
width: 870px;
|
||||
}
|
||||
.span8 {
|
||||
width: 770px;
|
||||
}
|
||||
.span7 {
|
||||
width: 670px;
|
||||
}
|
||||
.span6 {
|
||||
width: 570px;
|
||||
}
|
||||
.span5 {
|
||||
width: 470px;
|
||||
}
|
||||
.span4 {
|
||||
width: 370px;
|
||||
}
|
||||
.span3 {
|
||||
width: 270px;
|
||||
}
|
||||
.span2 {
|
||||
width: 170px;
|
||||
}
|
||||
.span1 {
|
||||
width: 70px;
|
||||
}
|
||||
.offset12 {
|
||||
margin-left: 1230px;
|
||||
}
|
||||
.offset11 {
|
||||
margin-left: 1130px;
|
||||
}
|
||||
.offset10 {
|
||||
margin-left: 1030px;
|
||||
}
|
||||
.offset9 {
|
||||
margin-left: 930px;
|
||||
}
|
||||
.offset8 {
|
||||
margin-left: 830px;
|
||||
}
|
||||
.offset7 {
|
||||
margin-left: 730px;
|
||||
}
|
||||
.offset6 {
|
||||
margin-left: 630px;
|
||||
}
|
||||
.offset5 {
|
||||
margin-left: 530px;
|
||||
}
|
||||
.offset4 {
|
||||
margin-left: 430px;
|
||||
}
|
||||
.offset3 {
|
||||
margin-left: 330px;
|
||||
}
|
||||
.offset2 {
|
||||
margin-left: 230px;
|
||||
}
|
||||
.offset1 {
|
||||
margin-left: 130px;
|
||||
}
|
||||
.row-fluid {
|
||||
width: 100%;
|
||||
*zoom: 1;
|
||||
}
|
||||
.row-fluid:before,
|
||||
.row-fluid:after {
|
||||
display: table;
|
||||
content: "";
|
||||
}
|
||||
.row-fluid:after {
|
||||
clear: both;
|
||||
}
|
||||
.row-fluid [class*="span"] {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 100%;
|
||||
min-height: 28px;
|
||||
margin-left: 2.564102564%;
|
||||
*margin-left: 2.510911074638298%;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.row-fluid [class*="span"]:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
.row-fluid .span12 {
|
||||
width: 100%;
|
||||
*width: 99.94680851063829%;
|
||||
}
|
||||
.row-fluid .span11 {
|
||||
width: 91.45299145300001%;
|
||||
*width: 91.3997999636383%;
|
||||
}
|
||||
.row-fluid .span10 {
|
||||
width: 82.905982906%;
|
||||
*width: 82.8527914166383%;
|
||||
}
|
||||
.row-fluid .span9 {
|
||||
width: 74.358974359%;
|
||||
*width: 74.30578286963829%;
|
||||
}
|
||||
.row-fluid .span8 {
|
||||
width: 65.81196581200001%;
|
||||
*width: 65.7587743226383%;
|
||||
}
|
||||
.row-fluid .span7 {
|
||||
width: 57.264957265%;
|
||||
*width: 57.2117657756383%;
|
||||
}
|
||||
.row-fluid .span6 {
|
||||
width: 48.717948718%;
|
||||
*width: 48.6647572286383%;
|
||||
}
|
||||
.row-fluid .span5 {
|
||||
width: 40.170940171000005%;
|
||||
*width: 40.117748681638304%;
|
||||
}
|
||||
.row-fluid .span4 {
|
||||
width: 31.623931624%;
|
||||
*width: 31.5707401346383%;
|
||||
}
|
||||
.row-fluid .span3 {
|
||||
width: 23.076923077%;
|
||||
*width: 23.0237315876383%;
|
||||
}
|
||||
.row-fluid .span2 {
|
||||
width: 14.529914530000001%;
|
||||
*width: 14.4767230406383%;
|
||||
}
|
||||
.row-fluid .span1 {
|
||||
width: 5.982905983%;
|
||||
*width: 5.929714493638298%;
|
||||
}
|
||||
input,
|
||||
textarea,
|
||||
.uneditable-input {
|
||||
margin-left: 0;
|
||||
}
|
||||
input.span12,
|
||||
textarea.span12,
|
||||
.uneditable-input.span12 {
|
||||
width: 1160px;
|
||||
}
|
||||
input.span11,
|
||||
textarea.span11,
|
||||
.uneditable-input.span11 {
|
||||
width: 1060px;
|
||||
}
|
||||
input.span10,
|
||||
textarea.span10,
|
||||
.uneditable-input.span10 {
|
||||
width: 960px;
|
||||
}
|
||||
input.span9,
|
||||
textarea.span9,
|
||||
.uneditable-input.span9 {
|
||||
width: 860px;
|
||||
}
|
||||
input.span8,
|
||||
textarea.span8,
|
||||
.uneditable-input.span8 {
|
||||
width: 760px;
|
||||
}
|
||||
input.span7,
|
||||
textarea.span7,
|
||||
.uneditable-input.span7 {
|
||||
width: 660px;
|
||||
}
|
||||
input.span6,
|
||||
textarea.span6,
|
||||
.uneditable-input.span6 {
|
||||
width: 560px;
|
||||
}
|
||||
input.span5,
|
||||
textarea.span5,
|
||||
.uneditable-input.span5 {
|
||||
width: 460px;
|
||||
}
|
||||
input.span4,
|
||||
textarea.span4,
|
||||
.uneditable-input.span4 {
|
||||
width: 360px;
|
||||
}
|
||||
input.span3,
|
||||
textarea.span3,
|
||||
.uneditable-input.span3 {
|
||||
width: 260px;
|
||||
}
|
||||
input.span2,
|
||||
textarea.span2,
|
||||
.uneditable-input.span2 {
|
||||
width: 160px;
|
||||
}
|
||||
input.span1,
|
||||
textarea.span1,
|
||||
.uneditable-input.span1 {
|
||||
width: 60px;
|
||||
}
|
||||
.thumbnails {
|
||||
margin-left: -30px;
|
||||
}
|
||||
.thumbnails > li {
|
||||
margin-left: 30px;
|
||||
}
|
||||
.row-fluid .thumbnails {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 979px) {
|
||||
body {
|
||||
padding-top: 0;
|
||||
}
|
||||
.navbar-fixed-top,
|
||||
.navbar-fixed-bottom {
|
||||
position: static;
|
||||
}
|
||||
.navbar-fixed-top {
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
.navbar-fixed-bottom {
|
||||
margin-top: 18px;
|
||||
}
|
||||
.navbar-fixed-top .navbar-inner,
|
||||
.navbar-fixed-bottom .navbar-inner {
|
||||
padding: 5px;
|
||||
}
|
||||
.navbar .container {
|
||||
width: auto;
|
||||
padding: 0;
|
||||
}
|
||||
.navbar .brand {
|
||||
padding-right: 10px;
|
||||
padding-left: 10px;
|
||||
margin: 0 0 0 -5px;
|
||||
}
|
||||
.nav-collapse {
|
||||
clear: both;
|
||||
}
|
||||
.nav-collapse .nav {
|
||||
float: none;
|
||||
margin: 0 0 9px;
|
||||
}
|
||||
.nav-collapse .nav > li {
|
||||
float: none;
|
||||
}
|
||||
.nav-collapse .nav > li > a {
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
.nav-collapse .nav > .divider-vertical {
|
||||
display: none;
|
||||
}
|
||||
.nav-collapse .nav .nav-header {
|
||||
color: #999999;
|
||||
text-shadow: none;
|
||||
}
|
||||
.nav-collapse .nav > li > a,
|
||||
.nav-collapse .dropdown-menu a {
|
||||
padding: 6px 15px;
|
||||
font-weight: bold;
|
||||
color: #999999;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.nav-collapse .btn {
|
||||
padding: 4px 10px 4px;
|
||||
font-weight: normal;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.nav-collapse .dropdown-menu li + li a {
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
.nav-collapse .nav > li > a:hover,
|
||||
.nav-collapse .dropdown-menu a:hover {
|
||||
background-color: #222222;
|
||||
}
|
||||
.nav-collapse.in .btn-group {
|
||||
padding: 0;
|
||||
margin-top: 5px;
|
||||
}
|
||||
.nav-collapse .dropdown-menu {
|
||||
position: static;
|
||||
top: auto;
|
||||
left: auto;
|
||||
display: block;
|
||||
float: none;
|
||||
max-width: none;
|
||||
padding: 0;
|
||||
margin: 0 15px;
|
||||
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;
|
||||
}
|
||||
.nav-collapse .dropdown-menu:before,
|
||||
.nav-collapse .dropdown-menu:after {
|
||||
display: none;
|
||||
}
|
||||
.nav-collapse .dropdown-menu .divider {
|
||||
display: none;
|
||||
}
|
||||
.nav-collapse .navbar-form,
|
||||
.nav-collapse .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-collapse .nav.pull-right {
|
||||
float: none;
|
||||
margin-left: 0;
|
||||
}
|
||||
.nav-collapse,
|
||||
.nav-collapse.collapse {
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
.navbar .btn-navbar {
|
||||
display: block;
|
||||
}
|
||||
.navbar-static .navbar-inner {
|
||||
padding-right: 10px;
|
||||
padding-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 980px) {
|
||||
.nav-collapse.collapse {
|
||||
height: auto !important;
|
||||
overflow: visible !important;
|
||||
}
|
||||
}
|
||||
9
br/web/css/bootstrap-responsive.min.css
vendored
4281
br/web/css/bootstrap.css
vendored
9
br/web/css/bootstrap.min.css
vendored
@@ -1,397 +0,0 @@
|
||||
/* @group Base */
|
||||
.chzn-container {
|
||||
font-size: 13px;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
}
|
||||
.chzn-container .chzn-drop {
|
||||
background: #fff;
|
||||
border: 1px solid #aaa;
|
||||
border-top: 0;
|
||||
position: absolute;
|
||||
top: 29px;
|
||||
left: 0;
|
||||
-webkit-box-shadow: 0 4px 5px rgba(0,0,0,.15);
|
||||
-moz-box-shadow : 0 4px 5px rgba(0,0,0,.15);
|
||||
box-shadow : 0 4px 5px rgba(0,0,0,.15);
|
||||
z-index: 1010;
|
||||
}
|
||||
/* @end */
|
||||
|
||||
/* @group Single Chosen */
|
||||
.chzn-container-single .chzn-single {
|
||||
background-color: #ffffff;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0 );
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
|
||||
background-image: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||
background-image: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||
background-image: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||
background-image: linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius : 5px;
|
||||
border-radius : 5px;
|
||||
-moz-background-clip : padding;
|
||||
-webkit-background-clip: padding-box;
|
||||
background-clip : padding-box;
|
||||
border: 1px solid #aaaaaa;
|
||||
-webkit-box-shadow: 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
|
||||
-moz-box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
|
||||
box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
position: relative;
|
||||
height: 23px;
|
||||
line-height: 24px;
|
||||
padding: 0 0 0 8px;
|
||||
color: #444444;
|
||||
text-decoration: none;
|
||||
}
|
||||
.chzn-container-single .chzn-default {
|
||||
color: #999;
|
||||
}
|
||||
.chzn-container-single .chzn-single span {
|
||||
margin-right: 26px;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
-o-text-overflow: ellipsis;
|
||||
-ms-text-overflow: ellipsis;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.chzn-container-single .chzn-single abbr {
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 26px;
|
||||
top: 6px;
|
||||
width: 12px;
|
||||
height: 13px;
|
||||
font-size: 1px;
|
||||
background: url('chosen-sprite.png') right top no-repeat;
|
||||
}
|
||||
.chzn-container-single .chzn-single abbr:hover {
|
||||
background-position: right -11px;
|
||||
}
|
||||
.chzn-container-single.chzn-disabled .chzn-single abbr:hover {
|
||||
background-position: right top;
|
||||
}
|
||||
.chzn-container-single .chzn-single div {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
display: block;
|
||||
height: 100%;
|
||||
width: 18px;
|
||||
}
|
||||
.chzn-container-single .chzn-single div b {
|
||||
background: url('chosen-sprite.png') no-repeat 0 0;
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.chzn-container-single .chzn-search {
|
||||
padding: 3px 4px;
|
||||
position: relative;
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
z-index: 1010;
|
||||
}
|
||||
.chzn-container-single .chzn-search input {
|
||||
background: #fff url('chosen-sprite.png') no-repeat 100% -22px;
|
||||
background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
|
||||
background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
||||
background: url('chosen-sprite.png') no-repeat 100% -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
||||
background: url('chosen-sprite.png') no-repeat 100% -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
||||
background: url('chosen-sprite.png') no-repeat 100% -22px, linear-gradient(#eeeeee 1%, #ffffff 15%);
|
||||
margin: 1px 0;
|
||||
padding: 4px 20px 4px 5px;
|
||||
outline: 0;
|
||||
border: 1px solid #aaa;
|
||||
font-family: sans-serif;
|
||||
font-size: 1em;
|
||||
}
|
||||
.chzn-container-single .chzn-drop {
|
||||
-webkit-border-radius: 0 0 4px 4px;
|
||||
-moz-border-radius : 0 0 4px 4px;
|
||||
border-radius : 0 0 4px 4px;
|
||||
-moz-background-clip : padding;
|
||||
-webkit-background-clip: padding-box;
|
||||
background-clip : padding-box;
|
||||
}
|
||||
/* @end */
|
||||
|
||||
.chzn-container-single-nosearch .chzn-search input {
|
||||
position: absolute;
|
||||
left: -9000px;
|
||||
}
|
||||
|
||||
/* @group Multi Chosen */
|
||||
.chzn-container-multi .chzn-choices {
|
||||
background-color: #fff;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
|
||||
background-image: -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
||||
background-image: -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
||||
background-image: -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
||||
background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
|
||||
border: 1px solid #aaa;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
cursor: text;
|
||||
overflow: hidden;
|
||||
height: auto !important;
|
||||
height: 1%;
|
||||
position: relative;
|
||||
}
|
||||
.chzn-container-multi .chzn-choices li {
|
||||
float: left;
|
||||
list-style: none;
|
||||
}
|
||||
.chzn-container-multi .chzn-choices .search-field {
|
||||
white-space: nowrap;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.chzn-container-multi .chzn-choices .search-field input {
|
||||
color: #666;
|
||||
background: transparent !important;
|
||||
border: 0 !important;
|
||||
font-family: sans-serif;
|
||||
font-size: 100%;
|
||||
height: 15px;
|
||||
padding: 5px;
|
||||
margin: 1px 0;
|
||||
outline: 0;
|
||||
-webkit-box-shadow: none;
|
||||
-moz-box-shadow : none;
|
||||
box-shadow : none;
|
||||
}
|
||||
.chzn-container-multi .chzn-choices .search-field .default {
|
||||
color: #999;
|
||||
}
|
||||
.chzn-container-multi .chzn-choices .search-choice {
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius : 3px;
|
||||
border-radius : 3px;
|
||||
-moz-background-clip : padding;
|
||||
-webkit-background-clip: padding-box;
|
||||
background-clip : padding-box;
|
||||
background-color: #e4e4e4;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 );
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
|
||||
background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
-webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
|
||||
-moz-box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
|
||||
box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
|
||||
color: #333;
|
||||
border: 1px solid #aaaaaa;
|
||||
line-height: 13px;
|
||||
padding: 3px 20px 3px 5px;
|
||||
margin: 3px 0 3px 5px;
|
||||
position: relative;
|
||||
cursor: default;
|
||||
}
|
||||
.chzn-container-multi .chzn-choices .search-choice.search-choice-disabled {
|
||||
background-color: #e4e4e4;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 );
|
||||
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
|
||||
background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: -ms-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
color: #666;
|
||||
border: 1px solid #cccccc;
|
||||
padding-right: 5px;
|
||||
}
|
||||
.chzn-container-multi .chzn-choices .search-choice-focus {
|
||||
background: #d4d4d4;
|
||||
}
|
||||
.chzn-container-multi .chzn-choices .search-choice .search-choice-close {
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 3px;
|
||||
top: 4px;
|
||||
width: 12px;
|
||||
height: 13px;
|
||||
font-size: 1px;
|
||||
background: url('chosen-sprite.png') right top no-repeat;
|
||||
}
|
||||
.chzn-container-multi .chzn-choices .search-choice .search-choice-close:hover {
|
||||
background-position: right -11px;
|
||||
}
|
||||
.chzn-container-multi .chzn-choices .search-choice-focus .search-choice-close {
|
||||
background-position: right -11px;
|
||||
}
|
||||
/* @end */
|
||||
|
||||
/* @group Results */
|
||||
.chzn-container .chzn-results {
|
||||
margin: 0 4px 4px 0;
|
||||
max-height: 240px;
|
||||
padding: 0 0 0 4px;
|
||||
position: relative;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
.chzn-container-multi .chzn-results {
|
||||
margin: -1px 0 0;
|
||||
padding: 0;
|
||||
}
|
||||
.chzn-container .chzn-results li {
|
||||
display: none;
|
||||
line-height: 15px;
|
||||
padding: 5px 6px;
|
||||
margin: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.chzn-container .chzn-results .active-result {
|
||||
cursor: pointer;
|
||||
display: list-item;
|
||||
}
|
||||
.chzn-container .chzn-results .highlighted {
|
||||
background-color: #3875d7;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3875d7', endColorstr='#2a62bc', GradientType=0 );
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
|
||||
background-image: -webkit-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
|
||||
background-image: -moz-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
|
||||
background-image: -o-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
|
||||
background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
|
||||
color: #fff;
|
||||
}
|
||||
.chzn-container .chzn-results li em {
|
||||
background: #feffde;
|
||||
font-style: normal;
|
||||
}
|
||||
.chzn-container .chzn-results .highlighted em {
|
||||
background: transparent;
|
||||
}
|
||||
.chzn-container .chzn-results .no-results {
|
||||
background: #f4f4f4;
|
||||
display: list-item;
|
||||
}
|
||||
.chzn-container .chzn-results .group-result {
|
||||
cursor: default;
|
||||
color: #999;
|
||||
font-weight: bold;
|
||||
}
|
||||
.chzn-container .chzn-results .group-option {
|
||||
padding-left: 15px;
|
||||
}
|
||||
.chzn-container-multi .chzn-drop .result-selected {
|
||||
display: none;
|
||||
}
|
||||
.chzn-container .chzn-results-scroll {
|
||||
background: white;
|
||||
margin: 0 4px;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
width: 321px; /* This should by dynamic with js */
|
||||
z-index: 1;
|
||||
}
|
||||
.chzn-container .chzn-results-scroll span {
|
||||
display: inline-block;
|
||||
height: 17px;
|
||||
text-indent: -5000px;
|
||||
width: 9px;
|
||||
}
|
||||
.chzn-container .chzn-results-scroll-down {
|
||||
bottom: 0;
|
||||
}
|
||||
.chzn-container .chzn-results-scroll-down span {
|
||||
background: url('chosen-sprite.png') no-repeat -4px -3px;
|
||||
}
|
||||
.chzn-container .chzn-results-scroll-up span {
|
||||
background: url('chosen-sprite.png') no-repeat -22px -3px;
|
||||
}
|
||||
/* @end */
|
||||
|
||||
/* @group Active */
|
||||
.chzn-container-active .chzn-single {
|
||||
-webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
|
||||
-moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
|
||||
box-shadow : 0 0 5px rgba(0,0,0,.3);
|
||||
border: 1px solid #5897fb;
|
||||
}
|
||||
.chzn-container-active .chzn-single-with-drop {
|
||||
border: 1px solid #aaa;
|
||||
-webkit-box-shadow: 0 1px 0 #fff inset;
|
||||
-moz-box-shadow : 0 1px 0 #fff inset;
|
||||
box-shadow : 0 1px 0 #fff inset;
|
||||
background-color: #eee;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0 );
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
|
||||
background-image: -webkit-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
|
||||
background-image: -moz-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
|
||||
background-image: -o-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
|
||||
background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
|
||||
-webkit-border-bottom-left-radius : 0;
|
||||
-webkit-border-bottom-right-radius: 0;
|
||||
-moz-border-radius-bottomleft : 0;
|
||||
-moz-border-radius-bottomright: 0;
|
||||
border-bottom-left-radius : 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
.chzn-container-active .chzn-single-with-drop div {
|
||||
background: transparent;
|
||||
border-left: none;
|
||||
}
|
||||
.chzn-container-active .chzn-single-with-drop div b {
|
||||
background-position: -18px 1px;
|
||||
}
|
||||
.chzn-container-active .chzn-choices {
|
||||
-webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
|
||||
-moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
|
||||
box-shadow : 0 0 5px rgba(0,0,0,.3);
|
||||
border: 1px solid #5897fb;
|
||||
}
|
||||
.chzn-container-active .chzn-choices .search-field input {
|
||||
color: #111 !important;
|
||||
}
|
||||
/* @end */
|
||||
|
||||
/* @group Disabled Support */
|
||||
.chzn-disabled {
|
||||
cursor: default;
|
||||
opacity:0.5 !important;
|
||||
}
|
||||
.chzn-disabled .chzn-single {
|
||||
cursor: default;
|
||||
}
|
||||
.chzn-disabled .chzn-choices .search-choice .search-choice-close {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
/* @group Right to Left */
|
||||
.chzn-rtl { text-align: right; }
|
||||
.chzn-rtl .chzn-single { padding: 0 8px 0 0; overflow: visible; }
|
||||
.chzn-rtl .chzn-single span { margin-left: 26px; margin-right: 0; direction: rtl; }
|
||||
|
||||
.chzn-rtl .chzn-single div { left: 3px; right: auto; }
|
||||
.chzn-rtl .chzn-single abbr {
|
||||
left: 26px;
|
||||
right: auto;
|
||||
}
|
||||
.chzn-rtl .chzn-choices .search-field input { direction: rtl; }
|
||||
.chzn-rtl .chzn-choices li { float: right; }
|
||||
.chzn-rtl .chzn-choices .search-choice { padding: 3px 5px 3px 19px; margin: 3px 5px 3px 0; }
|
||||
.chzn-rtl .chzn-choices .search-choice .search-choice-close { left: 4px; right: auto; background-position: right top;}
|
||||
.chzn-rtl.chzn-container-single .chzn-results { margin: 0 0 4px 4px; padding: 0 4px 0 0; }
|
||||
.chzn-rtl .chzn-results .group-option { padding-left: 0; padding-right: 15px; }
|
||||
.chzn-rtl.chzn-container-active .chzn-single-with-drop div { border-right: none; }
|
||||
.chzn-rtl .chzn-search input {
|
||||
background: #fff url('chosen-sprite.png') no-repeat -38px -22px;
|
||||
background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
|
||||
background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
||||
background: url('chosen-sprite.png') no-repeat -38px -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
||||
background: url('chosen-sprite.png') no-repeat -38px -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
||||
background: url('chosen-sprite.png') no-repeat -38px -22px, linear-gradient(#eeeeee 1%, #ffffff 15%);
|
||||
padding: 4px 5px 4px 20px;
|
||||
direction: rtl;
|
||||
}
|
||||
/* @end */
|
||||
@@ -1,317 +0,0 @@
|
||||
|
||||
.main-content {
|
||||
background-color : #fff;
|
||||
overflow: hidden;
|
||||
height : 1000px;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
.mc-main-nav {
|
||||
width : 170px;
|
||||
border-right : 1px solid #e6e6e6;
|
||||
}
|
||||
|
||||
.mc-profile-pic {
|
||||
width : 140px;
|
||||
height : 125px;
|
||||
border-radius : 3px;
|
||||
border : 4px solid #fff;
|
||||
box-shadow : 1px 1px 5px #ccc;
|
||||
background : url('/img/profile-pic.png') no-repeat;
|
||||
margin : 0 auto;
|
||||
}
|
||||
|
||||
#loadmast {
|
||||
padding-left: 50px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.big-menu {
|
||||
/*height : 15px;*/
|
||||
padding : 5px 10px 5px 35px;
|
||||
text-transform : uppercase;
|
||||
font-size : 15px;
|
||||
line-height : 15px;
|
||||
font-weight : bold;
|
||||
margin : 12px 0 0 0;
|
||||
width : 100%;
|
||||
height : 15px;
|
||||
}
|
||||
|
||||
.menu-selected {
|
||||
text-decoration : underline;
|
||||
}
|
||||
|
||||
.sub-menu {
|
||||
font-size : 13px;
|
||||
padding : 4px 0 4px 22px;
|
||||
|
||||
}
|
||||
|
||||
.sub-side-menu {
|
||||
padding-left : 12px;
|
||||
font-weight : bold;
|
||||
}
|
||||
|
||||
.side-menu {
|
||||
padding : 11px;
|
||||
}
|
||||
|
||||
.sicon-bodystats {background : url('/img/sicon-bodystats.png') no-repeat left center;}
|
||||
.sicon-bodyreputation {background : url('/img/sicon-bodyreputation.png') no-repeat left center;}
|
||||
.sicon-challenges {background : url('/img/sicon-challenges.png') no-repeat left center;}
|
||||
|
||||
.icon-apps {background : url('/img/icon-apps.png') no-repeat left center;}
|
||||
.icon-community {background : url('/img/icon-community.png') no-repeat left center;}
|
||||
.icon-learning {background : url('/img/icon-learning.png') no-repeat left center;}
|
||||
.icon-meals {background : url('/img/icon-meals.png') no-repeat left center;}
|
||||
.icon-profile {background : url('/img/icon-profile.png') no-repeat left center;}
|
||||
.icon-shopping {background : url('/img/icon-shopping.png') no-repeat left center;}
|
||||
.icon-workout {background : url('/img/icon-workout.png') no-repeat left center;}
|
||||
|
||||
|
||||
|
||||
/*OLD NEW CONTENT*/
|
||||
.arrowup {
|
||||
width : 12px;
|
||||
height : 14px;
|
||||
background-image : url('/img/arrowup.PNG');
|
||||
display : inline-block;
|
||||
}
|
||||
|
||||
|
||||
.stats {
|
||||
padding : 10px;
|
||||
background-color : fff;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.comment_block {
|
||||
border-top : 1px solid #bbb;
|
||||
padding-left : 10px;
|
||||
}
|
||||
|
||||
.block_types {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
left: 14px;
|
||||
position: absolute;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.sub-avatar {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border-radius: 3px;
|
||||
left: 79px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.user1 {
|
||||
background-image: url('/img/user1.jpg');
|
||||
}
|
||||
|
||||
.user2 {
|
||||
background-image: url('/img/user2.jpg');
|
||||
}
|
||||
|
||||
.block_type {
|
||||
width : 50px;
|
||||
height : 0px;
|
||||
float : left;
|
||||
border-bottom-right-radius : 4px;
|
||||
border-bottom-left-radius : 4px;
|
||||
overflow: hidden;
|
||||
z-index : 100;
|
||||
border : 3px solid gray;
|
||||
background-color : #e5e5e5;
|
||||
|
||||
}
|
||||
|
||||
.block_type i{
|
||||
margin : 12px 10px;
|
||||
}
|
||||
|
||||
|
||||
.tnc-blurb {
|
||||
padding : 10px;
|
||||
float: right;
|
||||
font-size : 12px;
|
||||
font-weight : bold;
|
||||
color : #888;
|
||||
|
||||
}
|
||||
|
||||
.basic-comment {
|
||||
margin-top : 10px;
|
||||
font-size : 13px;
|
||||
margin-left : 10px;
|
||||
}
|
||||
|
||||
.user-comment {
|
||||
font-size : 13px;
|
||||
padding: 13px 13px 20px 66px;
|
||||
}
|
||||
|
||||
.user-sub-comment {
|
||||
font-size : 13px;
|
||||
padding: 5px 5px 5px 66px;
|
||||
background-color : #e5e5e5;
|
||||
margin-left : 65px;
|
||||
margin-top : 5px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.like-comment-time {
|
||||
font-size : 12px;
|
||||
color : #888;
|
||||
margin-top : 5px;
|
||||
margin-left : 10px;
|
||||
}
|
||||
|
||||
.block_type_small {
|
||||
width : 14px;
|
||||
height : 15px;
|
||||
border-radius : 3px;
|
||||
border : 3px solid gray;
|
||||
margin-left : 3px;
|
||||
box-shadow: 0 1px 4px rgba(151, 156, 159, .4);
|
||||
}
|
||||
|
||||
.block_type_small:hover {
|
||||
box-shadow: 0 1px 4px rgba(151, 156, 159, .9);
|
||||
}
|
||||
|
||||
.bluebg {background-color : #429ECD;}
|
||||
.greenbg {background-color : #45C700;}
|
||||
.redbg {background-color : #EC1C24;}
|
||||
.orangebg {background-color : #FF9200;}
|
||||
.purplebg {background-color : #90278E;}
|
||||
.tealbg {background-color : #00BC98;}
|
||||
.graybg {background-color : #808080;}
|
||||
|
||||
.bluebd {border-color : #429ECD;}
|
||||
.greenbd {border-color : #45C700;}
|
||||
.redbd {border-color : #EC1C24;}
|
||||
.orangebd {border-color : #FF9200;}
|
||||
.purplebd {border-color : #90278E;}
|
||||
.tealbd {border-color : #00BC98;}
|
||||
.graybd {border-color : #808080;}
|
||||
|
||||
.blue {color : #429ECD;}
|
||||
.green {color : #45C700;}
|
||||
.red {color : #EC1C24;}
|
||||
.orange {color : #FF9200;}
|
||||
.purple {color : #90278E;}
|
||||
.teal {color : #00BC98;}
|
||||
.gray {color : #808080;}
|
||||
|
||||
.sicon-bodystats {background : url('/img/sicon-bodystats.png') no-repeat left center;}
|
||||
.sicon-bodyreputation {background : url('/img/sicon-bodyreputation.png') no-repeat left center;}
|
||||
.sicon-challenges {background : url('/img/sicon-challenges.png') no-repeat left center;}
|
||||
|
||||
.icon-apps {background : url('/img/icon-apps.png') no-repeat left center;}
|
||||
.icon-community {background : url('/img/icon-community.png') no-repeat left center;}
|
||||
.icon-learning {background : url('/img/icon-learning.png') no-repeat left center;}
|
||||
.icon-meals {background : url('/img/icon-meals.png') no-repeat left center;}
|
||||
.icon-profile {background : url('/img/icon-profile.png') no-repeat left center;}
|
||||
.icon-shopping {background : url('/img/icon-shopping.png') no-repeat left center;}
|
||||
.icon-workout {background : url('/img/icon-workout.png') no-repeat left center;}
|
||||
|
||||
.scroll
|
||||
{
|
||||
position: absolute;
|
||||
/* margin: 0 auto;*/
|
||||
visibility: hidden;
|
||||
background-color: white;
|
||||
z-index: 10000;
|
||||
|
||||
border: 1px 0px 1px 1px;
|
||||
border-collapse: collapse;
|
||||
border-color: #111;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.suggest_types li:hover
|
||||
{
|
||||
color: black;
|
||||
background-color: #f6f6f6;
|
||||
|
||||
}
|
||||
|
||||
.scroll div
|
||||
{
|
||||
margin: 0 auto;
|
||||
overflow: visible;
|
||||
|
||||
text-align:left
|
||||
}
|
||||
|
||||
.normalcell {
|
||||
width: 50%;
|
||||
padding: 10px 5px 10px 3px;
|
||||
}
|
||||
|
||||
.suggest table
|
||||
{
|
||||
font-size: 11px;
|
||||
font-weight: normal;
|
||||
color: #676767;
|
||||
text-decoration: none;
|
||||
border: 0px;
|
||||
padding: 0px;
|
||||
z-index: 10000;
|
||||
overflow: inherit;
|
||||
text-align:left;
|
||||
margin: 0px
|
||||
}
|
||||
|
||||
.highlightrow
|
||||
{
|
||||
background-color: rgb(100,135,220);
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
padding: 0.3em;
|
||||
}
|
||||
|
||||
.normallink
|
||||
{
|
||||
cursor: pointer;
|
||||
margin-left: 2px;
|
||||
text-decoration: none;
|
||||
color: rgb(0,51,153);
|
||||
}
|
||||
|
||||
.highlightlink
|
||||
{
|
||||
margin-left: 2px;
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.typecell
|
||||
{
|
||||
color: rgb(0,51,153);
|
||||
padding: 0.3em;
|
||||
font-size: 10px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.search {
|
||||
background-repeat: no-repeat;
|
||||
background-position: center left;
|
||||
padding-left: 18px;
|
||||
}
|
||||
|
||||
.highlightcell
|
||||
{
|
||||
background-color: rgb(100,135,220);
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 452 B |
|
Before Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 217 KiB |
|
Before Width: | Height: | Size: 255 KiB |
|
Before Width: | Height: | Size: 617 B |
|
Before Width: | Height: | Size: 514 B |
|
Before Width: | Height: | Size: 554 B |
|
Before Width: | Height: | Size: 493 B |
|
Before Width: | Height: | Size: 438 B |
|
Before Width: | Height: | Size: 561 B |
|
Before Width: | Height: | Size: 446 B |
|
Before Width: | Height: | Size: 693 B |
|
Before Width: | Height: | Size: 334 B |
|
Before Width: | Height: | Size: 372 B |
|
Before Width: | Height: | Size: 175 B |
|
Before Width: | Height: | Size: 301 B |
|
Before Width: | Height: | Size: 237 B |
|
Before Width: | Height: | Size: 363 B |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 673 B |
|
Before Width: | Height: | Size: 318 B |
|
Before Width: | Height: | Size: 321 B |
|
Before Width: | Height: | Size: 435 B |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,5 +0,0 @@
|
||||
<?php
|
||||
|
||||
header('Location: app_dev.php');
|
||||
|
||||
?>
|
||||