source: pro-violet-viettel/sourcecode/api.violet.vn/www/plugins/sfPropel13Plugin/data/tasks/sfPakePropel13AdminGenerator.php @ 289

Last change on this file since 289 was 289, checked in by dungnv, 11 years ago
File size: 1.9 KB
Line 
1<?php
2/*
3 * This file is part of the sfPropel13Plugin package.
4 * (c) 2007 Joshua May <notjosh@gmail.com>
5 *
6 * For the full copyright and license information, please view the LICENSE
7 * file that was distributed with this source code.
8 */
9
10/**
11 * @package    symfony.plugins
12 * @subpackage sfPropel13Plugin
13 * @author     Joshua May <notjosh@gmail.com>
14 * @version    SVN: $Id$
15 */
16
17pake_desc('initialize a new propel admin module');
18pake_task('propel-13-init-admin', 'app_exists');
19
20function run_propel_13_init_admin($task, $args)
21{
22//  run_propel_init_admin($task, $args);
23
24
25
26
27  if (count($args) < 2)
28  {
29    throw new Exception('You must provide your module name.');
30  }
31
32  if (count($args) < 3)
33  {
34    throw new Exception('You must provide your model class name.');
35  }
36
37  $app         = $args[0];
38  $module      = $args[1];
39  $model_class = $args[2];
40  $theme       = isset($args[3]) ? $args[3] : 'default';
41
42  try
43  {
44    $author_name = $task->get_property('author', 'symfony');
45  }
46  catch (pakeException $e)
47  {
48    $author_name = 'Your name here';
49  }
50
51  $constants = array(
52    'PROJECT_NAME' => $task->get_property('name', 'symfony'),
53    'APP_NAME'     => $app,
54    'MODULE_NAME'  => $module,
55    'MODEL_CLASS'  => $model_class,
56    'AUTHOR_NAME'  => $author_name,
57    'THEME'        => $theme,
58  );
59
60  $moduleDir = sfConfig::get('sf_root_dir').'/'.sfConfig::get('sf_apps_dir_name').'/'.$app.'/'.sfConfig::get('sf_app_module_dir_name').'/'.$module;
61
62  // create module structure
63  $finder = pakeFinder::type('any')->ignore_version_control()->discard('.sf');
64  $dirs = sfLoader::getGeneratorSkeletonDirs('sfPropelAdmin', $theme);
65  foreach ($dirs as $dir)
66  {
67    if (is_dir($dir))
68    {
69      pake_mirror($finder, $dir, $moduleDir);
70      break;
71    }
72  }
73
74  // customize php and yml files
75  $finder = pakeFinder::type('file')->name('*.php', '*.yml');
76  pake_replace_tokens($finder, $moduleDir, '##', '##', $constants);
77}
Note: See TracBrowser for help on using the repository browser.