Cubane
1.0.11
  • Getting started
  • Topics
    • Resources
    • Fonts
    • SVG Icons
    • Media
    • Backend System
    • Content Management
      • Getting Started
      • Pages
      • Posts
      • Navigation
      • CMS System
      • Links
      • Sitemap
      • Legacy URLs
      • Cache
    • Enquiry Forms
    • Favourite Icon
    • Modules and Extensions
    • Settings
    • Deployment
    • Pulling Production Data
    • Testing Cubane
  • Cubane Reference
Cubane
  • Docs »
  • Topics »
  • Content Management »
  • Links
  • Edit on GitHub

LinksΒΆ

When editing CMS slot content, the CMS content editor allows for links to be inserted into the document. A link may simply refer to an external URL. However, internal URLs are usually referred to by reference.

This way if the URL for a page ever changed then all links to that page would simply continue to work since all links are simply referencing the underlying entity which did not change.

When creating a link by using the backend system, the user would select the target page or entity by using drop down menus or browse buttons to chose a target item. This will then generate a link address in the following format:

#link[<model-name>:<primary-key>]

Where <model-name> refers to the name of the model that represents the entity and <primary-key> refers to the primary key of the entity.

When rendering CMS content, content links in this format are automatically substituted with the full URL of the resolved entity.

In order for this system to work for custom entities, you can register additional model classes to support CMS links.

from cubane.cms.views import CMS
from myapp.models import MyCustomPageModel

class MyCMS(CMS):
    def on_object_links(self, links):
        links.add(MyCustomPageModel, MyCustomPageModel.objects.all())

By overriding the method cubane.cms.views.CMS.on_object_links() of the cubane.cms.views.CMS class, additional model classes can be added to support linking. The first argument of the cubane.cms.views.LinkBuilder.add() method of the cubane.cms.views.LinkBuilder class takes the model class, the second argument represents a query-set on which basis a legacy URL is determined.

Next Previous

© Copyright 2018, Cubane.org.

Built with Sphinx using a theme provided by Read the Docs.
[email protected] Cubane on GitHub Cubane on GitHub