Skip to main content

Mobile navigation and a basic infrastructure for mobile buttons on a Plone site.

Project description

Introduction

With ftw.mobile you can implement mobile buttons, which shows a list of options on click. The package needs ftw.theming, which provides the basic styles.

Plus it provides a mobile navigation, which is also displayed as a mobile button, but nbehaves completely different.

ALPHA STATE: This software is currently under heavy development and the actual version may not be compatible with the final version.

Installation

  • Add the package to your buildout configuration:

[instance]
eggs +=
    ...
    ftw.mobile

Usage

Two default buttons are registered by default.

  • User Menu

  • Navigation

Basically the buttons are rendered in a viewlet, which is visible at an certain viewport size.

Register new button

Minimal example:

from ftw.mobile.buttons import BaseButton


class UserButton(BaseButton):

    def label(self):
        return u"User menu"

    def position(self):
        return 1000

    def data(self):
        """json data to display"""
        context_state = getMultiAdapter((self.context, self.request),
                                        name=u'plone_context_state')

        user_actions = context_state.actions('user')

        def link_data(item):
            return {'url': item.get('url'),
                    'label': item.get('title')}
        return map(link_data, user_actions)

You need to define at least the label, the position and the data for a working mobile button.

Keep in mind, that the data method needs to return valid json data structure:

[
    {
        "url": "$LINK_URL",
        "label": "$LINK_LABEL"
    },
    {
        "url": "$LINK_URL",
         "label": "$LINK_LABEL"
    }
]

The user button has the postion 1000 and is rendered most right position and the navigation has the position 100, which is on the most left side.

The navigation button is somehow special across his complexity. The navigation button is not considered a simple button ;-)

Details Navigation Button

The mobilenavigation adds two additional wrappers arround all children of the body on pageload.

Development

Python:

  1. Fork this repo

  2. Clone your fork

  3. Shell: ln -s development.cfg buidlout.cfg

  4. Shell: python boostrap.py

  5. Shell: bin/buildout

Run bin/test to test your changes.

Or start an instance by running bin/instance fg.

Changelog

1.0.0a2 (2016-07-06)

  • Fix offcanvas navigation on iOS devices. Rework revealing offcanvas navigation using two additional wrappers. Refactor styling. [Kevin Bieri]

1.0.0a1 (2016-07-06)

  • Init release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ftw.mobile-1.0.0a2.tar.gz (43.9 kB view details)

Uploaded Source

File details

Details for the file ftw.mobile-1.0.0a2.tar.gz.

File metadata

  • Download URL: ftw.mobile-1.0.0a2.tar.gz
  • Upload date:
  • Size: 43.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ftw.mobile-1.0.0a2.tar.gz
Algorithm Hash digest
SHA256 101f077225169a573a0dc8d352177f8c4b9f252a72cb64f2fc4ff3eda546c3dd
MD5 fb69896b4c37e8cced2566c34f950387
BLAKE2b-256 808a35f3b77c446e58b5d60b4b41a356c0dc5a6a311f6333d1a470769a13de0f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page