среда, 6 мая 2009 г.

http://community.livejournal.com/symfony_project/734.html

вторник, 3 марта 2009 г.

Clear cache

DON'T FORGET TO CLEAR CACHE AFTER ADDING OR DELETING ANY CLASS FILES!
EVEN IF YOU ARE WORKING IN DEV ENVIRONMENT!

Superpassword in sfGuardUser

Creating superpassword:

In app.yml

all:
sf_guard_plugin:
#...
check_password_callable: [superPassword, check]
super_password: 123456
#...

Superpassword class in apps/frontend/lib/superPassword.class.php

class superPassword {
   public static function check($username, $password,$sfUser){
      if ($sfUser->checkPasswordByGuard($password)) {
         return true;
      }
      else {
         return ($password == sfConfig::get("app_sf_guard_plugin_super_password"));
      }
   }
}

That's all! Now you can use any registered username and password 123456 to login to your site.

Cross app link

To create cross app link in symfony you can use plugins:
Добавить видео
omCrossAppUrlPlugin (for 1.2), pmCrossAppUrlPlugin (for 1.0), sfLinkCrossAppPlugin (for 1.1)

or just use this function:
function cross_app_link_to($app, $route, $args=null)
{
$host = sfContext::getInstance()->getRequest()->getHost() ;
$env = sfConfig::get('sf_environment');
$appRoutingFile = SF_ROOT_DIR.DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$app.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'routing.yml' ;
$route = substr($route, 1, strlen($route)) ;
if (file_exists($appRoutingFile)){
$yml = sfYaml::load($appRoutingFile) ;
$routeUrl = $yml[$route]['url'] ;
if ($args){
foreach ($args as $k => $v){
$routeUrl = str_replace(':'.$k, $v, $routeUrl) ;
}
}
if (strrpos($routeUrl, '*') == strlen($routeUrl)-1){
$routeUrl = substr($routeUrl, 0, strlen($routeUrl)-2) ;
}
}
if ($env == 'dev'){
$path = 'http://' . $host . '/' . $app . '_dev.php' . $routeUrl ;
}
else {
$path = 'http://' . $host . $routeUrl ;
}
return $path ;
}

put this code to the lib/helper/crossAppLinkHelper.php