Evolving Web: Sidr Module for Drupal: Responsive Menus and Regions

Planet Drupal - 4. Januar 2018 - 16:19

In the last few projects I've worked on at Evolving Web, we've come across a common requirement: having a collapsible section of the site on mobile devices containing the site's logo, a menu and other Drupal blocks. The Responsive Menus module is quite popular, but it only works with menu blocks - no logo, no custom text. Since we couldn't find any contrib module to solve the problem, we wrote some custom JavaScript to integrate a JavaScript plugin called Sidr, which inspired me to write a Sidr integration module for Drupal. In this article, we will discuss how the module works and how you can get it working in your next project.

Here's a screenshot from a quick demo site I prepared. You click on the hamburger menu, and the black sidr region appears on the left. You click it again and the region slides back out.

A quick demo with a Sidr panel in Drupal with the Dark theme

Installing the Sidr module and libraries

To install the module, we must install the module files and then the Sidr libraries.

  • Download the Sidr module into the modules or modules/contrib directory in your Drupal project and install the module
  • Install the Sidr libraries
    • Download the version of Sidr recommended in the module's README file, which at the time of writing this article is Sidr 2.2.1
    • Once downloaded, copy the dist directory in the Sidr project to the libraries directory in your Drupal project and rename it to sidr
    • At this point, there should be valid JavaScript file at DRUPAL/libraries/sidr/jquery.sidr.js and the Drupal status report page should show the Sidr libraries as Installed

Sidr library status

  • Configure the Sidr theme from the admin/config/media/sidr page. Here's some quick info about the themes:
    • The dark (default) and the light themes are provided by Sidr.
    • Typically, for a project with a custom look and feel, you'll use the bare theme. This provides minimal CSS, allowing you to style the .sidr element and its children in your theme. Yeah!

Sidr global settings

Congratulations! You now have the module installed. All that's left now is a bit of configuration.

Configure collapsible content

Depending on the project requirements, you might have one or more sidr instances. For this article, let's say you want a sliding panel on the left with the following contents:

  • Site logo (the site branding block).
  • The main menu (the main menu block).

We can achieve this using two different approaches:

With a custom region (recommended)

Create a custom region named, say, Drawer (Left) in your theme where you can place whatever blocks you want to show in your Sidr. We will then configure the Sidr plugin to use the contents of this region to populate the collapsible panel (discussed below).

Note: Make sure you hide this region using CSS because Sidr will copy the contents of the region in to a div.sidr element during its initialization.

Without a custom region

If all your blocks are already present on your page, you can use multiple jQuery selectors in the Source configuration for the Sidr trigger block (discussed below) and the Sidr plugin will copy the contents of those elements and put them in the Sidr. Sidr will not copy the elements for the jQuery selector, but all of their children. This is the reason why I prefer to use a custom region. Using the above-mentioned custom region approach, you can preserve wrapper elements which give you nice CSS selectors for theming your Sidr.

Configure a trigger button

Now that we have set up the contents for the collapsible region, we are ready to create a Sidr trigger block. This trigger block will provide a button to open and close the Sidr panel. To do this,

  • Go to the Block management admin/structure/block page.
  • Click the Place block button for the region where you want to place the trigger button (usually somewhere in the header).
  • Choose the Sidr trigger block, configure it and save it. Some of the configuration options have been discussed below.

Sidr trigger settings

Trigger text and icon

The trigger text is the text which is displayed on the Sidr trigger button. You can also enter some custom HTML in the Advanced settings > Trigger icon field to configure an icon, say, a hamburger icon or an .

Note: It is compulsory to have either a trigger text or a trigger icon. You can also have both if you want.

Source

The source is from where the Sidr panel will be populated. It can be one of the following:

  • A jQuery selector: If you provide a jQuery selector, the inner HTML of the selected elements will be copied into the relevant Sidr panel. You might be interested in the renaming option which makes Sidr rename the ID attributes of the copied elements to avoid getting repeated DOM IDs. Here are some examples:
    • Using a custom region, source should look like .region-drawer-left or .region-drawer-right or whatever you name your custom region.
    • Without a custom region, you will have to refer to various blocks like #block-site-branding, #block-main-menu, #block-copyright-notice.
  • A URL: If source is a URL, the content on the URL will be fetched via AJAX and displayed in the Sidr panel.
  • A callback: You can even provide a JavaScript function as the source, in which case, the contents returned by the callable will be used to populate the Sidr panel. If you do not like the idea of copied elements provided by the jQuery selector option above, a callback might give you more flexibility.

Most of the Advanced settings are optional and you can learn about them by reading the Sidr documentation. Once you have configured everything, all you'll be missing is some custom styling to bring your Sidr to life.

Feel free to leave comments about problems you face and any suggestions you might have. You might want to read the Sidr module's project page and issue queue for the latest updates.

+ more awesome articles by Evolving Web

Nur kleiner Teil der zerrissenen Stasi-Akten wieder lesbar

heise online Newsticker - 4. Januar 2018 - 16:00
Fieberhaft hatten Stasi-Offiziere im Herbst 1989 versucht, Akten verschwinden zu lassen. Es wurde geschreddert, zerrissen und vernichtet. Was ist aus der Hinterlassenschaft geworden?

Akkutausch beim iPhone: Welche Geräte abgedeckt sind und was es kostet

heise online Newsticker - 4. Januar 2018 - 15:30
Nachdem bekannt wurde, dass Apple die Leistung von iPhones mit angeschlagenem Akku drosselt, hat der Konzern den Austausch des Energielieferanten signifikant verbilligt. Ganz simpel ist der Vorgang aber nicht.

Die deutsche Liebe zum Cash: Nur Bares ist Wahres?

heise online Newsticker - 4. Januar 2018 - 15:30
Bargeld bräuchten Verbraucher in Deutschland rein technisch längst nicht mehr. Doch die Bundesbürger hängen an Scheinen und Münzen. Andernorts ist die bargeldlose Welt dagegen fast Realität – und zeigt, wie es bald hierzulande aussehen könnte.

Datensammlung: Bundeskartellamt droht Facebook mit Sanktionen

heise online Newsticker - 4. Januar 2018 - 15:30
Entweder das US-Unternehmen schlage eine eigene Lösung vor oder das Kartellamt müsse "das Sammeln und Verwerten von Daten aus Drittquellen ohne ausdrückliche Zustimmung der Nutzer" verbieten, sagte Kartellamts-Chef Andreas Mundt.

#heiseshow, live ab 12 Uhr: Internetzensur allüberall – wie kaputt ist das Netz?

heise online Newsticker - 4. Januar 2018 - 14:30
Nicht nur angesichts von Protestwellen verstärken Staaten in aller Welt immer wieder die Zensur im Netz – und lassen die Blockaden dann bestehen. Wie die funktionieren und wie sehr sie das Internet wirklich gefährden, besprechen wir in der #heiseshow.

ZDF-Intendant ist offen für Kooperationen mit Netflix & Co.

heise online Newsticker - 4. Januar 2018 - 14:00
Das ZDF liegt auch 2017 unter den TV-Sendern in Deutschland vorn. Der Sender steht unter Spardruck. Intendant Thomas Bellut sagt, ob er noch mehr Sparmöglichkeiten sieht und wie das ZDF auf Streaming-Dienste reagiert.

E-Health in Großbritannien: Videochat statt Praxisbesuch

heise online Newsticker - 4. Januar 2018 - 13:00
In England müssen Patienten lange auf einen Termin beim Hausarzt warten. Per App sollen Konsultationen nun schneller gehen.

EU-Datenschutzgrundverordnung kommt: Verschärfter Datenschutz nimmt Vermieter in die Pflicht

heise online Newsticker - 4. Januar 2018 - 12:00
Die EU hat ein neues Datenschutzrecht erarbeitet. Verbraucher bekommen mehr Auskunftsrechte, bei Verstößen drohen hohe Strafen. Die neue Norm betrifft nicht nur Unternehmen, sondern auch Mieter und Vermieter, Makler und Verwalter.

"Digitalpakt": Regierungschefin Dreyer dringt auf Milliarden für Schulen

heise online Newsticker - 4. Januar 2018 - 11:30
Vor mehr als einem Jahr hat die Bundesregierung fünf Milliarden Euro für die Digitalisierung der Schulen angekündigt, geflossen sind die bislang nicht. Nun fordert die Ministerpräsidentin von Rheinland-Pfalz das Geld ein.

Was wir von Trump lernen können, und was nicht – das Buch "Smartphone-Demokratie"

heise online Newsticker - 4. Januar 2018 - 11:00
Tweetokratie, Technokratie oder einfach KI-Herrschaft? Nein. Unsere Gesellschaft wird zukünftig in einer "Smartphone-Demokratie" leben. Über deren politischen Rahmenbedingungen ist nun ein Buch erschienen.

USA: Streit in "Call of Duty" nach Fake-Notruf mit tödlichen Folgen

heise online Newsticker - 4. Januar 2018 - 11:00
Es sollte wohl der Streich eines aufgebrachten Online-Gamers sein, doch der Ausgang war tödlich: Nach einem falschen Notruf haben Polizisten in den USA einen Unschuldigen erschossen.

"Facebook-Gesetz": NetzDG macht Soziale Netze zu Richtern über "Hate Speech"

heise online Newsticker - 4. Januar 2018 - 10:30
Das Netzwerkdurchsetzungsgesetz stößt in Politik, Wirtschaft und Jurisprudenz auf heftige Kritik: Einschränkung der Meinungsfreiheit, Ende des freien Internet, Privatfirmen als Richter, so die Befürchtungen. Erst einmal sind die Bestimmungen jetzt gültig.

Stromnetz unter Druck: Tennet meldet Rekordkosten für Noteingriffe

heise online Newsticker - 4. Januar 2018 - 10:00
Im Norden Windstrom im Überfluss, im Süden Mangel: Die regionale Unwucht der Energiewende setzt die Stromnetze unter Druck. Der Netzbetreiber Tennet berichtet von Rekordkosten für Noteingriffe. Dabei dürfte es erst einmal bleiben.

Deutsche Telekom: Neue Vorstände und eine Personalchefin

heise online Newsticker - 4. Januar 2018 - 10:00
Die Deutsche Telekom bekommt zum Jahreswechsel einen neuen Deutschlandchef, das Sorgenkind T-Systems einen neuen CEO. Für den scheidenden Personalchef rückt eine neue Geschäftsführerin nach.

Einen Guten Rutsch und ein frohes neues Jahr!

heise online Newsticker - 4. Januar 2018 - 10:00
Die Redaktionen der Heise Medien wünschen Ihnen ein friedliches und schönes 2018. Auf dass Ihre Hoffnungen und Wünsche erfüllt werden mögen. Kommen Sie unbeschadet ins neue Jahr!

Appnovation Technologies: Dans la Rue and Appnovation: Helping the Homeless

Planet Drupal - 4. Januar 2018 - 10:00
Dans la Rue and Appnovation: Helping the Homeless Dans la rue is a Montreal-based organization dedicated to helping homeless and at-risk youth. Dans la rue cares for the immediate needs of youth and helps equip them with the skills and resources they need to lead more autonomous and rewarding lives. Appnovation worked with Dans la rue to build a French and English Volunteer Appli...

Kongo schaltet wegen geplanter Proteste mobiles Internet ab

heise online Newsticker - 4. Januar 2018 - 8:30
Mit der Abschaltung will Präsident Joseph Kabila Proteste gegen seinen Verbleib an der Macht erschweren.

LevelTen Interactive: Managing your DrupalVM Environment: Vagrant Plugins and SED Scripts

Planet Drupal - 4. Januar 2018 - 8:00

 

In our last post, we talked about how great DrupalVM is by providing Drupal developers a robust development environment that can be used with multiple types of applications. And while the installation process is fairly straightforward, it can take some trial and error in updating your config.yml file for the perfect hosting environment. Are you managing multiple virtual machines for multiple client projects? This can take up a significant amount of space on your computer’s resources (RAM and hard drive space). This post will walk you through how we addressed some of these...Read more

Iran blockiert Zugriff auf soziale Medien

heise online Newsticker - 4. Januar 2018 - 7:30
Im Zuge der Proteste hat die iranische Regierung anscheinend den Zugriff auf den Messenger-Dienst Telegram und den Bilder- und Video-Dienst Instagram übers Mobilfunknetz gesperrt.