Welcome to Structr!

Congratulations, you have successfully set up your new Structr instance. This is a demo page to help you get started. You can edit and change everything on this page, just click anywhere on the text to start editing. You can explore Structr's advanced features by looking at the examples below.


Note: You should view this in the Structr UI backend to be able to follow the tutorial. The default username/password is admin/admin. Go here and click on the "Welcome" tab at the top of the page.

1. Data binding

Below you see a list of three panels that display database content. If you click on the text in one of the elements below, you will see the template expression that creates the output from the referenced database object. The database element is bound to the identifier example. The query is defined in the div element with the little coloured bricks icon. This is what we call a repeater. A repeater element combines a database query (a REST call in this case) with an HTML subtree that is displayed for each element in the result set of the query.

To examine the repeater settings, click on the "Edit Properties" icon of the repeater element as depicted in the screenshot on the right and then click on the "Query and Data Binding" tab. You will see the REST query and the example data key.

Example Schema

For this example, we have set up a dynamic entity named SampleApplication in the Schema Editor. It is a very simple entity with just two fields, title and description.

The Result

Sample #3

The third sample application, feel free to add more or edit the existing objects in the Data view.

View »

Sample #2

The second sample application.

View »

Sample #1

The first sample application.

View »

2. Built-In Functions

Structr provides a large set of built-in transformation functions that you can use in your HTML elements to transform, display or hide content. Just click on the text in one of the following paragraphs to see the source of the particular element.

Welcome, ! Your UUID is . You own 0 nodes.

The first of your owned nodes is of type Usage: ${get(entity, propertyKey)}. Example: ${get(this, "children")}. There are 3 sample applications in the database.

The titles of the sample applications are [Sample #1, Sample #2, Sample #3].

The HTTP port for Structr from the structr.conf is 80.

Today is August 28 2015, it is now 16:40 CEST

More information

You can find more information about the built-in functions at http://docs.structr.org/frontend-user-guide#Appendix%20B%20Keywords%20And%20Functions.

3. Automatic form generation and editing

The following form is created automatically from schema and database information. It is a specially crafted form that uses repeaters to display input fields for a given entity type and view. This is a very advanced use case, so please feel free to examine all its parts to understand how it works.

You can play around with the User type definition in the Schema Editor to modify the information and input fields displayed in this form. There is a special view named default that contains all User attributes that are editable.

Please note that due to limitations of the page preview function in Structr, the below form works best when viewed from outside of the Structr UI. Please click on the little 'eye' icon as seen in the screenshot to test the form.

Dynamic form

Usage: ${get(entity, propertyKey)}. Example: ${get(this, "children")}
Usage: ${get(entity, propertyKey)}. Example: ${get(this, "children")}
Usage: ${get(entity, propertyKey)}. Example: ${get(this, "children")}
Usage: ${get(entity, propertyKey)}. Example: ${get(this, "children")}
Usage: ${get(entity, propertyKey)}. Example: ${get(this, "children")}

4. Content Syndication

With Structr you can very easily syndicate content from many different sources, including GitHub. The following sections showcase some examples of content syndication and processing from different sources.

Display content from GitHub repositories

The Function

GET('https://raw.githubusercontent.com/structr/structr/master/docs/markdown/frontend-user-guide/12_appendix-b---keywords-and-functions/appendix-b---keywords-and-functions.md')

Result

disabled