class AddLayoutToPluginCommand(sublime_plugin.WindowCommand): def run(self, paths): Helper().show_input_panel("Type Layout context: ", "joomla.edit.title_alias", functools.partial(self.on_done, paths[0]), None, Helper().on_cancel) def on_done(self, path, name): name = re.sub('\.php$', '', re.sub('\.', '/', name)) path = None if Project().type() == 'plugin' else path if path is not None: path = path if os.path.isdir(path) else os.path.dirname(path) self.extension = Plugin(os.path.basename(path)) self.extension.path(path) else: self.extension = Plugin() self.extension.path( os.path.join(Project().root(), self.extension.fullname)) if self.extension.add_folder('layouts') \ and self.extension.add_file(os.path.join('layouts', name), 'joomla-header'): Manifest(os.path.join(self.extension.path, '%s.xml' % self.extension.name)) \ .add_child('files', {'tag': 'folder', 'text': 'layouts'}, {'tag': 'folder', 'text': 'tmpl'}) Project().refresh() def is_enabled(self, paths): if Project().type() == 'plugin': return True elif Project().type() == 'package': if len(paths) == 1: path = paths[0] if os.path.isdir(paths[0]) \ else os.path.dirname(paths[0]) for f in os.listdir(path): if f.endswith('.xml') and \ Manifest(os.path.join(path, f)).is_manifest() and \ Manifest(os.path.join(path, f)).type() == 'plugin': return True return False
class AddLayoutToPluginCommand(sublime_plugin.WindowCommand): def run(self, paths): Helper().show_input_panel("Type Layout context: ", "joomla.edit.title_alias", functools.partial(self.on_done, paths[0]), None, Helper().on_cancel) def on_done(self, path, name): name = re.sub('\.php$', '', re.sub('\.', '/', name)) path = None if Project().type() == 'plugin' else path if path is not None: path = path if os.path.isdir(path) else os.path.dirname(path) self.extension = Plugin(os.path.basename(path)) self.extension.path(path) else: self.extension = Plugin() self.extension.path(os.path.join(Project().root(), self.extension.fullname)) if self.extension.add_folder('layouts') \ and self.extension.add_file(os.path.join('layouts', name), 'joomla-header'): Manifest(os.path.join(self.extension.path, '%s.xml' % self.extension.name)) \ .add_child('files', {'tag': 'folder', 'text': 'layouts'}, {'tag': 'folder', 'text': 'tmpl'}) Project().refresh() def is_enabled(self, paths): if Project().type() == 'plugin': return True elif Project().type() == 'package': if len(paths) == 1: path = paths[0] if os.path.isdir(paths[0]) \ else os.path.dirname(paths[0]) for f in os.listdir(path): if f.endswith('.xml') and \ Manifest(os.path.join(path, f)).is_manifest() and \ Manifest(os.path.join(path, f)).type() == 'plugin': return True return False
class AddFieldToPluginCommand(sublime_plugin.WindowCommand): def run(self, paths): Helper().show_input_panel("Type Field name: ", "title", functools.partial(self.on_done, paths[0]), None, Helper().on_cancel) def on_done(self, path, name): name = name if name.endswith('.php') else name + '.php' path = None if Project().type() == 'plugin' else path if path is not None: path = path if os.path.isdir(path) else os.path.dirname(path) self.extension = Plugin(os.path.basename(path)) self.extension.path(path) else: self.extension = Plugin() self.extension.path( os.path.join(Project().root(), self.extension.fullname)) if self.extension.add_folder('fields') \ and self.extension.add_file(os.path.join('fields', name), 'joomla-header\n' + 'joomla-field-custom'): Manifest(os.path.join(self.extension.path, '%s.xml' % self.extension.name)) \ .add_child('files', {'tag': 'folder', 'text': 'fields'}, {'tag': 'folder', 'text': 'forms'}) Project().refresh() def is_enabled(self, paths): if Project().type() == 'plugin': return True elif Project().type() == 'package': if len(paths) == 1: path = paths[0] if os.path.isdir(paths[0]) \ else os.path.dirname(paths[0]) for f in os.listdir(path): if f.endswith('.xml') and \ Manifest(os.path.join(path, f)).is_manifest() and \ Manifest(os.path.join(path, f)).type() == 'plugin': return True return False
class AddFieldToPluginCommand(sublime_plugin.WindowCommand): def run(self, paths): Helper().show_input_panel("Type Field name: ", "title", functools.partial(self.on_done, paths[0]), None, Helper().on_cancel) def on_done(self, path, name): name = name if name.endswith('.php') else name + '.php' path = None if Project().type() == 'plugin' else path if path is not None: path = path if os.path.isdir(path) else os.path.dirname(path) self.extension = Plugin(os.path.basename(path)) self.extension.path(path) else: self.extension = Plugin() self.extension.path(os.path.join(Project().root(), self.extension.fullname)) if self.extension.add_folder('fields') \ and self.extension.add_file(os.path.join('fields', name), 'joomla-header\n' + 'joomla-field-custom'): Manifest(os.path.join(self.extension.path, '%s.xml' % self.extension.name)) \ .add_child('files', {'tag': 'folder', 'text': 'fields'}, {'tag': 'folder', 'text': 'forms'}) Project().refresh() def is_enabled(self, paths): if Project().type() == 'plugin': return True elif Project().type() == 'package': if len(paths) == 1: path = paths[0] if os.path.isdir(paths[0]) \ else os.path.dirname(paths[0]) for f in os.listdir(path): if f.endswith('.xml') and \ Manifest(os.path.join(path, f)).is_manifest() and \ Manifest(os.path.join(path, f)).type() == 'plugin': return True return False