Jump to content

New website for an austrian car dealer


bernhard
 Share

Recommended Posts

https://www.autohaus-bendel.at/

Mockup_Tablet_7.thumb.jpg.4f368e501744a4e6a1a0dd44c53bf4f5.jpg

Mockup_Smartphone_9.thumb.jpg.248ff3aff1770eb2fe5b6e0576cf44be.jpg

 

Highlights/Features:

New Logo and matching Backend using module AdminStyleRock
image.thumb.png.8e0b0cc844c6caf5f5041861642c399a.png

 

Very good google- and performance-ratings thx to UIkit and ProCache
iuZFe8c.png
AkhwkH0.png

 

Flexible content pages (using private module RockMatrix)
1QGamzi.png

 

Cars are fetched automatically from an austrian cardealer API and converted into ProcessWire pages with a custom filter page: https://www.autohaus-bendel.at/fahrzeuge/
NVQQNv8.jpg

Forms with honeypots and live validation (using private module RockForms based on nette forms)
eOi5bbx.png

 

Web-Coach
The client gets automated reminders if he does not add new content to the website. Thx @wbmnfktr

Bendel Web Coach

The last news entry was created 21 days ago.
There must be something new that will interest your clients ;)

> To the website
> Create news entry

 

Animated page transitions using barba.js

Migrations and deployment using RockMigrations.

Debugging using TracyDebugger.

?

Mockup_Rechner_3.jpg

  • Like 16
  • Thanks 1
Link to comment
Share on other sites

10 hours ago, bernhard said:

 

Cars are fetched automatically from an austrian cardealer API and converted into ProcessWire pages with a custom filter page: https://www.autohaus-bendel.at/fahrzeuge/
NVQQNv8.jpg

 

Fascinating! Can you explain how you approached the API Data fetchig?
Do you use a simple Ajax Request when filtering items or are you actually creating pages, populated with data and use those instead?

I am always interested in methods to "feed" processwire from outside nowadays.

Link to comment
Share on other sites

Data is fetched via cron every night and then PW pages are created so that the client can enrich those pages with data that is not part of the API but is helpful on the website (eg a PDF sheet for the car or the point of contact):

0Q9BjR2.jpg

API-Fields are read-only. If a car is created by the cron and the point of contact is empty, the client gets a link to directly edit this page and select the POC ? 

If cars are sold, the cron automatically trashes those pages on the website.

Ah... I forgot a nice detail! They have a custom branded PDF viewer:

U6n66mi.jpg

  • Like 4
Link to comment
Share on other sites

  • 2 weeks later...
On 6/15/2022 at 3:57 PM, szabesz said:

Nice site, BTW!

thx @szabesz

On 6/25/2022 at 12:00 PM, Andy said:

Hi @bernhard

Impressive project. It's a little jealous that I can't do that yet.

Tell me please, why did you use RockForms here when you have the PW Form Builder?

Hi @Andy thx for your kind words!

well... I like to do thinks in code rather than clicking around a GUI, because then I have all in GIT and can automatically deploy it to production. In addition to that I love how you can write form code once and get frontend and backend validation of your forms automatically. The next point is that I don't like the embed methods via Iframe and I never got used to the other output method - how is it called? Direct output?

Another point is that I try to avoid hook hell as much as possible. Hooks are great, but I started to adopt concepts where things that belong together are in the same file or folder. That's why every form that I create for RockForms is one single PHP file, that defines all the necessary pieces (fields, after submit action like sending an email, markup for the frontend, error messages...).

<?php namespace ProcessWire;
/** @var RockForms $rockforms */
$form = $rockforms->form('newsletter', [
  'token' => false, // disable csrf for use with procache!
]);

$form->setMarkup("field(email)", "<div class='sr-only'>{label}</div>{control}{errors}");

$form->getElementPrototype()->addClass('mb-12');
$form->addText("email", "E-Mail Adresse")
  ->setHtmlAttribute("class", "text-gray-dark w-full focus:border-violet focus:ring-violet")
  ->setHtmlAttribute("placeholder", "Ihre E-Mail Adresse")
  ->isRequired();
$form->addMarkup("<button type='submit' class='btn btn-sm btn-pink !px-12 mt-6'>Newsletter abonnieren</button>");

if($form->isSuccess()) {
  $values = $form->getValues();

  if($form->once()) {
    /** @var RockMails $mails */
    $mails = $this->wire('modules')->get('RockMails');
    $mails->mail('newsletter')
      ->to('office@example.com')
      ->subject("New Newsletter Subscription")
      ->bodyHTML($form->dataTable())
      ->send();
    $this->log('sent mail');
  }

  $form->success('<span style="color:black;">Thank you for your subscription</span>');
}

return $form;

This is an example for an easy newsletter subscription form.

For me it is also better to code my own module because then I have a lot more freedom and can add extensions and new features while working on any project that uses the module. For example the $form->dataTable() is something I need very often (send form data via mail or show form data in the backend).

I guess I'll release this as commercial module soon - if anybody reads this and is interested in a closed alpha write me a PM ? 

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

Just now, Andy said:

RockForms looks extremely intriguing. I should definitely give it a try.

The module is not public. There's an older version lying around in the forum, but the new version does definitely have a better syntax and is easier to use.

2 minutes ago, Andy said:

However, I haven't found how to use the datepicker in the form. Does it have to be external or I just don't get it?

NetteForms does not have a datepicker by default so you'd have to implement that on your own or use an existing solution: https://www.google.com/search?q=nette+forms+datepicker&oq=nette+forms+datepicker&aqs=chrome..69i57j33i10i160l3.2471j0j7&sourceid=chrome&ie=UTF-8

Link to comment
Share on other sites

Hi @bernhard

Thanks for the quick response.

26 minutes ago, bernhard said:

The module is not public. There's an older version lying around in the forum, but the new version does definitely have a better syntax and is easier to use.

I see that you changed the status of RockForms to [deprecated].
Can I practice on the old version or have the terms of use changed?

If the module became paid, what are the terms of use for the new module?

Link to comment
Share on other sites

1 hour ago, Andy said:

Can I practice on the old version or have the terms of use changed?

The terms did not change and will not change, though there will not be any updates/fixes/support.

I'll write you a PM regarding the new version of RockForms

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...