Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
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
Exemple #5
0
class AddInstallScriptToPluginCommand(sublime_plugin.WindowCommand):

    def run(self, paths):
        path = None if Project().type() == 'plugin' else paths[0]

        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_file('script.php',
                                   'joomla-header\njoomla-installer-script'):

            Manifest(os.path.join(self.extension.path,
                                  '%s.xml' % self.extension.name)) \
                .add_child('',
                           {'tag': 'scriptfile', 'text': 'script.php'},
                           {'tag': 'files', 'text': None})
        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
Exemple #6
0
class AddInstallScriptToPluginCommand(sublime_plugin.WindowCommand):
    def run(self, paths):
        path = None if Project().type() == 'plugin' else paths[0]

        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_file('script.php',
                                   'joomla-header\njoomla-installer-script'):

            Manifest(os.path.join(self.extension.path,
                                  '%s.xml' % self.extension.name)) \
                .add_child('',
                           {'tag': 'scriptfile', 'text': 'script.php'},
                           {'tag': 'files', 'text': None})
        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