PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.4
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.4
4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / vendor / composer / installers / src / Composer / Installers / BitrixInstaller.php
surecart / vendor / composer / installers / src / Composer / Installers Last commit date
AglInstaller.php 4 years ago AimeosInstaller.php 4 years ago AnnotateCmsInstaller.php 4 years ago AsgardInstaller.php 4 years ago AttogramInstaller.php 4 years ago BaseInstaller.php 4 years ago BitrixInstaller.php 4 years ago BonefishInstaller.php 4 years ago CakePHPInstaller.php 4 years ago ChefInstaller.php 4 years ago CiviCrmInstaller.php 4 years ago ClanCatsFrameworkInstaller.php 4 years ago CockpitInstaller.php 4 years ago CodeIgniterInstaller.php 4 years ago Concrete5Installer.php 4 years ago CraftInstaller.php 4 years ago CroogoInstaller.php 4 years ago DecibelInstaller.php 4 years ago DframeInstaller.php 4 years ago DokuWikiInstaller.php 4 years ago DolibarrInstaller.php 4 years ago DrupalInstaller.php 4 years ago ElggInstaller.php 4 years ago EliasisInstaller.php 4 years ago ExpressionEngineInstaller.php 4 years ago EzPlatformInstaller.php 4 years ago FuelInstaller.php 4 years ago FuelphpInstaller.php 4 years ago GravInstaller.php 4 years ago HuradInstaller.php 4 years ago ImageCMSInstaller.php 4 years ago Installer.php 4 years ago ItopInstaller.php 4 years ago JoomlaInstaller.php 4 years ago KanboardInstaller.php 4 years ago KirbyInstaller.php 4 years ago KnownInstaller.php 4 years ago KodiCMSInstaller.php 4 years ago KohanaInstaller.php 4 years ago LanManagementSystemInstaller.php 4 years ago LaravelInstaller.php 4 years ago LavaLiteInstaller.php 4 years ago LithiumInstaller.php 4 years ago MODULEWorkInstaller.php 4 years ago MODXEvoInstaller.php 4 years ago MagentoInstaller.php 4 years ago MajimaInstaller.php 4 years ago MakoInstaller.php 4 years ago MantisBTInstaller.php 4 years ago MauticInstaller.php 4 years ago MayaInstaller.php 4 years ago MediaWikiInstaller.php 4 years ago MiaoxingInstaller.php 4 years ago MicroweberInstaller.php 4 years ago ModxInstaller.php 4 years ago MoodleInstaller.php 4 years ago OctoberInstaller.php 4 years ago OntoWikiInstaller.php 4 years ago OsclassInstaller.php 4 years ago OxidInstaller.php 4 years ago PPIInstaller.php 4 years ago PantheonInstaller.php 4 years ago PhiftyInstaller.php 4 years ago PhpBBInstaller.php 4 years ago PimcoreInstaller.php 4 years ago PiwikInstaller.php 4 years ago PlentymarketsInstaller.php 4 years ago Plugin.php 4 years ago PortoInstaller.php 4 years ago PrestashopInstaller.php 4 years ago ProcessWireInstaller.php 4 years ago PuppetInstaller.php 4 years ago PxcmsInstaller.php 4 years ago RadPHPInstaller.php 4 years ago ReIndexInstaller.php 4 years ago Redaxo5Installer.php 4 years ago RedaxoInstaller.php 4 years ago RoundcubeInstaller.php 4 years ago SMFInstaller.php 4 years ago ShopwareInstaller.php 4 years ago SilverStripeInstaller.php 4 years ago SiteDirectInstaller.php 4 years ago StarbugInstaller.php 4 years ago SyDESInstaller.php 4 years ago SyliusInstaller.php 4 years ago Symfony1Installer.php 4 years ago TYPO3CmsInstaller.php 4 years ago TYPO3FlowInstaller.php 4 years ago TaoInstaller.php 4 years ago TastyIgniterInstaller.php 4 years ago TheliaInstaller.php 4 years ago TuskInstaller.php 4 years ago UserFrostingInstaller.php 4 years ago VanillaInstaller.php 4 years ago VgmcpInstaller.php 4 years ago WHMCSInstaller.php 4 years ago WinterInstaller.php 4 years ago WolfCMSInstaller.php 4 years ago WordPressInstaller.php 4 years ago YawikInstaller.php 4 years ago ZendInstaller.php 4 years ago ZikulaInstaller.php 4 years ago
BitrixInstaller.php
127 lines
1 <?php
2
3 namespace Composer\Installers;
4
5 use Composer\Util\Filesystem;
6
7 /**
8 * Installer for Bitrix Framework. Supported types of extensions:
9 * - `bitrix-d7-module` — copy the module to directory `bitrix/modules/<vendor>.<name>`.
10 * - `bitrix-d7-component` — copy the component to directory `bitrix/components/<vendor>/<name>`.
11 * - `bitrix-d7-template` — copy the template to directory `bitrix/templates/<vendor>_<name>`.
12 *
13 * You can set custom path to directory with Bitrix kernel in `composer.json`:
14 *
15 * ```json
16 * {
17 * "extra": {
18 * "bitrix-dir": "s1/bitrix"
19 * }
20 * }
21 * ```
22 *
23 * @author Nik Samokhvalov <nik@samokhvalov.info>
24 * @author Denis Kulichkin <onexhovia@gmail.com>
25 */
26 class BitrixInstaller extends BaseInstaller
27 {
28 protected $locations = array(
29 'module' => '{$bitrix_dir}/modules/{$name}/', // deprecated, remove on the major release (Backward compatibility will be broken)
30 'component' => '{$bitrix_dir}/components/{$name}/', // deprecated, remove on the major release (Backward compatibility will be broken)
31 'theme' => '{$bitrix_dir}/templates/{$name}/', // deprecated, remove on the major release (Backward compatibility will be broken)
32 'd7-module' => '{$bitrix_dir}/modules/{$vendor}.{$name}/',
33 'd7-component' => '{$bitrix_dir}/components/{$vendor}/{$name}/',
34 'd7-template' => '{$bitrix_dir}/templates/{$vendor}_{$name}/',
35 );
36
37 /**
38 * @var array Storage for informations about duplicates at all the time of installation packages.
39 */
40 private static $checkedDuplicates = array();
41
42 /**
43 * {@inheritdoc}
44 */
45 public function inflectPackageVars($vars)
46 {
47 if ($this->composer->getPackage()) {
48 $extra = $this->composer->getPackage()->getExtra();
49
50 if (isset($extra['bitrix-dir'])) {
51 $vars['bitrix_dir'] = $extra['bitrix-dir'];
52 }
53 }
54
55 if (!isset($vars['bitrix_dir'])) {
56 $vars['bitrix_dir'] = 'bitrix';
57 }
58
59 return parent::inflectPackageVars($vars);
60 }
61
62 /**
63 * {@inheritdoc}
64 */
65 protected function templatePath($path, array $vars = array())
66 {
67 $templatePath = parent::templatePath($path, $vars);
68 $this->checkDuplicates($templatePath, $vars);
69
70 return $templatePath;
71 }
72
73 /**
74 * Duplicates search packages.
75 *
76 * @param string $path
77 * @param array $vars
78 */
79 protected function checkDuplicates($path, array $vars = array())
80 {
81 $packageType = substr($vars['type'], strlen('bitrix') + 1);
82 $localDir = explode('/', $vars['bitrix_dir']);
83 array_pop($localDir);
84 $localDir[] = 'local';
85 $localDir = implode('/', $localDir);
86
87 $oldPath = str_replace(
88 array('{$bitrix_dir}', '{$name}'),
89 array($localDir, $vars['name']),
90 $this->locations[$packageType]
91 );
92
93 if (in_array($oldPath, static::$checkedDuplicates)) {
94 return;
95 }
96
97 if ($oldPath !== $path && file_exists($oldPath) && $this->io && $this->io->isInteractive()) {
98
99 $this->io->writeError(' <error>Duplication of packages:</error>');
100 $this->io->writeError(' <info>Package ' . $oldPath . ' will be called instead package ' . $path . '</info>');
101
102 while (true) {
103 switch ($this->io->ask(' <info>Delete ' . $oldPath . ' [y,n,?]?</info> ', '?')) {
104 case 'y':
105 $fs = new Filesystem();
106 $fs->removeDirectory($oldPath);
107 break 2;
108
109 case 'n':
110 break 2;
111
112 case '?':
113 default:
114 $this->io->writeError(array(
115 ' y - delete package ' . $oldPath . ' and to continue with the installation',
116 ' n - don\'t delete and to continue with the installation',
117 ));
118 $this->io->writeError(' ? - print help');
119 break;
120 }
121 }
122 }
123
124 static::$checkedDuplicates[] = $oldPath;
125 }
126 }
127