@classmethod
def get_by_fullname(cls, full_name, show_empty=False):
    """
        Gets a content instance.

        :param str full_name: full name of the content with or without version e.g. ``/article/foo`` or ``/article/foo/3``
        :param str show_empty: content not found, returns a placeholder HTML for content instead of returning ``None``.
            ``show_empty may be ``True`` for default placeholder or a string to specify the placeholder text
        :return: a content instance or ``None``
        """
    if not full_name.startswith('/'):
        full_name = '/' + full_name
    if full_name.count('/') == 2:
        full_name += '/current'
    content = cls.ds.get(full_name)
    if not content and show_empty not in (False, None):
        from .content_types import all_content_types
        _, type_name, name, version = full_name.split('/')
        content_type = all_content_types()[type_name]
        content = content_type(name)
        if show_empty is True:
            placeholder_text = 'There is no content created here yet.'
        else:
            placeholder_text = show_empty
        content._render_html = lambda : placeholder_text
    return content
