commit | author | age
|
66fc58
|
1 |
<?php |
LM |
2 |
/** |
|
3 |
* @package Projectfork |
|
4 |
* @subpackage Projectfork.Translations.Installer |
|
5 |
* |
fba4b3
|
6 |
* @copyright (C) 2012 - 2014 Projectfork Translation Team. All rights reserved. |
66fc58
|
7 |
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL |
LM |
8 |
* @link http://www.projectfork.net |
|
9 |
**/ |
|
10 |
defined( '_JEXEC' ) or die(); |
|
11 |
|
|
12 |
class pkg_projectfork_languagesInstallerScript { |
|
13 |
|
|
14 |
protected $name = 'lang_pf4'; |
66a06b
|
15 |
protected $uncomplete_lang = array( |
LM |
16 |
// "ar-AA", // Last Update: 2014-02-16 - 100% |
|
17 |
// "nl-NL", // Last Update: 2014-01-25 - 100% |
|
18 |
// "fr-FR", // Last Update: 2014-01-18 - 100% |
|
19 |
// "de-DE", // Last Update: 2014-01-15 - 100% |
|
20 |
// "hu-HU", // Last Update: 2014-02-13 - 100% |
|
21 |
// "pt-BR", // Last Update: 2014-03-07 - 100% |
|
22 |
// "ru-RU", // Last Update: 2014-02-24 - 100% |
|
23 |
// "tr-TR", // Last Update: 2014-02-24 - 100% |
|
24 |
"eu-ES", // Last Update: 2014-01-28 - 99% |
|
25 |
"cs-CZ", // Last Update: 2014-02-05 - 97% |
|
26 |
"da-DK", // Last Update: 2014-01-14 - 95% |
|
27 |
"es-ES", // Last Update: 2014-01-14 - 95% |
|
28 |
"nb-NO", // Last Update: 2014-01-14 - 93% |
|
29 |
"pl-PL", // Last Update: 2014-01-14 - 93% |
|
30 |
"th-TH", // Last Update: 2014-01-14 - 93% |
|
31 |
"ca-ES", // Last Update: 2014-01-14 - 92% |
|
32 |
"zh-TW", // Last Update: 2014-01-14 - 92% |
|
33 |
"it-IT", // Last Update: 2014-01-14 - 92% |
|
34 |
"ja-JP", // Last Update: 2014-01-14 - 92% |
|
35 |
"ro-RO", // Last Update: 2014-01-14 - 92% |
|
36 |
"pt-PT", // Last Update: 2014-01-14 - 90% |
|
37 |
"el-GR", // Last Update: 2014-01-14 - 89% |
|
38 |
"sv-SE", // Last Update: 2014-01-14 - 87% |
|
39 |
"sk-SK", // Last Update: 2014-01-14 - 66% |
|
40 |
"uk-UA", // Last Update: 2014-01-14 - 55% |
|
41 |
"nl-BE", // Last Update: 2014-01-14 - 39% |
|
42 |
"bg-BG", // Last Update: 2014-01-14 - 33% |
|
43 |
"fa-IR", // Last Update: 2014-01-23 - 33% |
|
44 |
"es-MX" // Last Update: 2014-01-14 - 29% |
|
45 |
); |
66fc58
|
46 |
|
LM |
47 |
public function uninstall($parent) { |
|
48 |
$languages = JFactory::getLanguage()->getKnownLanguages(); |
|
49 |
foreach ($languages as $language) { |
|
50 |
echo $this->uninstallLanguage($language['tag'], $language['name']); |
|
51 |
} |
|
52 |
} |
|
53 |
|
|
54 |
public function preflight($type, $parent) { |
686e50
|
55 |
$lang = JFactory::getLanguage(); |
LM |
56 |
$lang->load('pkg_projectfork_languages', dirname(__FILE__) . '/installer', 'en-GB', true); |
|
57 |
$lang->load('pkg_projectfork_languages', dirname(__FILE__) . '/installer', $lang->getTag(), true); |
|
58 |
|
66fc58
|
59 |
if (!in_array($type, array('install', 'update'))) return true; |
LM |
60 |
|
|
61 |
$app = JFactory::getApplication(); |
|
62 |
|
|
63 |
// Do not install if Projectfork 4 doesn't exist. |
d0edc0
|
64 |
$table = JTable::getInstance('extension'); |
LM |
65 |
$id = $table->find(array('type'=>'component', 'element'=>'com_projectfork')); |
75a35a
|
66 |
if(!$id) { |
686e50
|
67 |
$app->enqueueMessage(sprintf(JText::_('PKG_PROJECTFORK_LANGUAGES_PFNOTINSTALLED'), '4.x'), 'error'); |
d0edc0
|
68 |
return false; |
LM |
69 |
} |
66fc58
|
70 |
|
LM |
71 |
// Get list of languages to be installed. Only installs languages that are found in your system. |
c3405e
|
72 |
$source = $parent->getParent()->getPath('source').'/languages'; |
66fc58
|
73 |
$languages = JFactory::getLanguage()->getKnownLanguages(); |
LM |
74 |
|
|
75 |
$files = $parent->manifest->files; |
75a35a
|
76 |
$installed_langs_html = '<ul>'; |
686e50
|
77 |
|
66fc58
|
78 |
foreach ($languages as $language) { |
LM |
79 |
$search = JFolder::folders($source, $language['tag']); // no .zip files use "folders" instead |
|
80 |
if (empty($search)) continue; |
|
81 |
|
d0edc0
|
82 |
// Generate something like <file type="file" id="lang_pf4_en-GB">en-GB</file> |
66fc58
|
83 |
$file = $files->addChild('file', array_pop($search)); |
LM |
84 |
$file->addAttribute('type', 'file'); |
d0edc0
|
85 |
$file->addAttribute('id', $this->name . '_' . $language['tag']); |
4db6bd
|
86 |
$installed_langs_html .= '<li>' . sprintf('<b>%s</b> - %s', $language['tag'], $language['name']); |
d0edc0
|
87 |
if(in_array($language['tag'], $this->uncomplete_lang)) { |
686e50
|
88 |
$installed_langs_html .= ' ... <span style="color: darkorange;">(' . sprintf(JText::_('PKG_PROJECTFORK_LANGUAGES_NOTFULL_TRANSLATED'), '<a href="https://github.com/projectfork/Translations/wiki" target="_blank">Projectfork Translations Team</a>') . ')'; |
d0edc0
|
89 |
} |
686e50
|
90 |
$installed_langs_html .= '</li>'; |
66fc58
|
91 |
} |
75a35a
|
92 |
$installed_langs_html .= '</ul>'; |
66fc58
|
93 |
|
LM |
94 |
if (empty($files)) { |
75a35a
|
95 |
// No packages to install |
686e50
|
96 |
$app->enqueueMessage(sprintf(JText::_('PKG_PROJECTFORK_LANGUAGES_ENGLISH_ONLY')), 'notice'); |
66fc58
|
97 |
return false; |
686e50
|
98 |
} else { |
75a35a
|
99 |
// Package was installation successfull with detected languages |
LM |
100 |
echo JText::_('PKG_PROJECTFORK_LANGUAGES_INSTALLED_DETECTED_SUCCESS') . $installed_langs_html; |
66fc58
|
101 |
} |
LM |
102 |
|
|
103 |
return true; |
|
104 |
} |
|
105 |
|
|
106 |
public function uninstallLanguage($tag, $name) { |
|
107 |
$table = JTable::getInstance('extension'); |
|
108 |
$id = $table->find(array('type'=>'file', 'element'=>"{$this->name}_{$tag}")); |
d0edc0
|
109 |
if(!$id) return; |
66fc58
|
110 |
|
LM |
111 |
$installer = new JInstaller(); |
|
112 |
$installer->uninstall ( 'file', $id ); |
|
113 |
} |
|
114 |
} |