Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


AndZyk last won the day on February 13

AndZyk had the most liked content!

Community Reputation

612 Excellent

About AndZyk

Profile Information

  • Gender
  • Location
    Furtwangen, Germany

Recent Profile Visitors

2,945 profile views
  1. Thank you all for your feedback. I will then try out the Page Rename Options module, because it looks more like what I am looking for. Regards, Andreas
  2. @Sergio Thank you for the hint. This solution is ok, but I don't like, that the page name is now before the page title and takes up so much space. A smaller page name edit field under the page title (like the WordPress one) or a quick link to the field in the settings tab would in my opinion be nicer. I know that ProcessWire doesn't want to clutter up the back-end and that is a reason why I love it and I know that I could add a note in the page title field or a hook for changing the page name on every save. But I think in this case, showing the page name under the page title would be better then hiding it under the settings tab. Maybe @ryan could consider this wish. Regards, Andreas
  3. Hello, when you add a page you can see the page name of the page under the page title field. But when you change the page title afterwards, you have to go to the settings tab to also change the page name. We have many clients that change the page title afterwards but forget to change the page name, because they don't look in the settings tab or forget it. Is it possible to show the page name on the content tab under the page title? I hate to say this, but I like how WordPress handles this better: Or should I open an GitHub request? Regards, Andreas
  4. Thank you. My solution was to include a script for converting PHP to ICS, if you visit the event template with the URL segment "/download/". Tricky was to format all data for the ICS format. Here is my version of the script mentioned above: <?php namespace ProcessWire; // Variables used in this script: // $summary - text title of the event // $datestart - the starting date (in seconds since unix epoch) // $dateend - the ending date (in seconds since unix epoch) // $address - the event's address // $uri - the URL of the event (add http://) // $description - text description of the event // $filename - the name of this file for saving (e.g. my-event-name.ics) // // Notes: // - the UID should be unique to the event, so in this case I'm just using // uniqid to create a uid, but you could do whatever you'd like. // // - iCal requires a date format of "yyyymmddThhiissZ". The "T" and "Z" // characters are not placeholders, just plain ol' characters. The "T" // character acts as a delimeter between the date (yyyymmdd) and the time // (hhiiss), and the "Z" states that the date is in UTC time. Note that if // you don't want to use UTC time, you must prepend your date-time values // with a TZID property. See RFC 5545 section 3.3.5 // // - The Content-Disposition: attachment; header tells the browser to save/open // the file. The filename param sets the name of the file, so you could set // it as "my-event-name.ics" or something similar. // // - Read up on RFC 5545, the iCalendar specification. There is a lot of helpful // info in there, such as formatting rules. There are also many more options // to set, including alarms, invitees, busy status, etc. // // https://www.ietf.org/rfc/rfc5545.txt $filename = page()->name . ".ics"; // 1. Set the correct headers for this file header('Content-type: text/calendar; charset=utf-8'); header('Content-Disposition: attachment; filename=' . $filename); // 2. Define helper functions // Converts a unix timestamp to an ics-friendly format // NOTE: "Z" means that this timestamp is a UTC timestamp. If you need // to set a locale, remove the "\Z" and modify DTEND, DTSTAMP and DTSTART // with TZID properties (see RFC 5545 section 3.3.5 for info) // // Also note that we are using "H" instead of "g" because iCalendar's Time format // requires 24-hour time (see RFC 5545 section 3.3.12 for info). function dateToCal($timestamp) { return gmdate('Ymd\THis\Z', $timestamp); } // Escapes a string of characters function escapeString($string) { return preg_replace('/([\,;])/','\\\$1', $string); } // 3. Echo out the ics file's contents ?> BEGIN:VCALENDAR CALSCALE:GREGORIAN VERSION:2.0 PRODID:-//Stadtkirche Pforzheim//NONSGML ProcessWire//DE <?php if (page()->template == "event"): $summary = page()->getUnformatted("headline"); $dateStart = page()->dateStart; $dateEnd = page()->dateEnd; $address = page()->place->getUnformatted("title"); $uri = page()->httpUrl; $description = strip_tags(page()->getUnformatted("summary")); ?> BEGIN:VEVENT DTEND:<?= dateToCal($dateEnd) . "\n"; ?> UID:<?= uniqid() . "\n"; ?> DTSTAMP:<?= dateToCal(time()) . "\n"; ?> LOCATION:<?= escapeString($address) . "\n"; ?> DESCRIPTION:<?= escapeString($description) . "\n"; ?> URL;VALUE=URI:<?= escapeString($uri) . "\n"; ?> SUMMARY:<?= escapeString($summary) . "\n"; ?> DTSTART:<?= dateToCal($dateStart) . "\n"; ?> END:VEVENT <?php elseif (page()->template == "ensemble"): $eventsPage = pages()->get("template=events"); $events = pages()->find("template=event, has_parent=$eventsPage, ensemblesSinging|ensemblesPlaying=$page, sort=dateStart, dateStart>" . time()); foreach ($events as $event): $summary = $event->getUnformatted("headline"); $dateStart = $event->dateStart; $dateEnd = $event->dateEnd; $address = $event->place->getUnformatted("title"); $uri = $event->httpUrl; $description = strip_tags($event->getUnformatted("summary")); ?> BEGIN:VEVENT DTEND:<?= dateToCal($dateEnd) . "\n"; ?> UID:<?= uniqid() . "\n"; ?> DTSTAMP:<?= dateToCal(time()) . "\n"; ?> LOCATION:<?= escapeString($address) . "\n"; ?> DESCRIPTION:<?= escapeString($description) . "\n"; ?> URL;VALUE=URI:<?= escapeString($uri) . "\n"; ?> SUMMARY:<?= escapeString($summary) . "\n"; ?> DTSTART:<?= dateToCal($dateStart) . "\n"; ?> END:VEVENT <?php endforeach; endif; ?> END:VCALENDAR I have never bothered to try any other calendar format than ICS, because ICS is the only standard calendar format I know of. I usually use the latest version installed with Yarn and then compile the source SCSS. The source SCSS files don't seem to have the comment.
  5. AndZyk

    Gallery Claeys

    Thank you for your feedback. I think the page load of the homepage was slow, because the whole archive of exhibitions was loaded. I now have reduced it to only three exhibitions in the archive and you can load the rest via Ajax. Hopefully this will improve the performance.
  6. This is a website for the musical area of the protestant town church Pforzheim, Germany. Our agency designconcepts developed a website that provides informations about the choirs, ensembles and orchestras as well as dates for their rehearsals, services and concerts. The website was build with help of the framework UIkit. www.musik.stadtkirche-pforzheim.de Features: Events Download dates Events The events for rehearsals, services and concerts were created in Microsoft Excel and then imported as pages from CSV. For better organization, events are cross-referenced with choirs, ensembles and orchestras. Services and concerts are displayed in a events list, but rehearsals are only displayed on the page of the choir, ensemble or orchestra, to make the events list more compact. Download dates It is possible to download every event date as ICS file, which will be generated on clicking the download button. You can then add this event easily to your calendar app and stay up-to-date. Modules used: Email Obfuscation (EMO) Front-End Page Editor Import Pages from CSV Markup Sitemap XML ProCache Tracy Debugger Upgrades Wire Mail SMTP Regards, Andreas
  7. AndZyk

    Gallery Claeys

    Gallery Claeys is a art gallery in Freiburg, Germany, with focus on exhibitions of female artists. Our agency designconcepts developed a website that features the latest exhibitions of the gallery as well as an archive of previous exhibitions. Every artist has its own page with an excerpt of their works and a vita of the artist. The website was build with help of the framework UIkit and Barba.js for smooth transitions between pages. www.galerie-claeys.de Features: Exhibitions Page transitions Exhibitions On the homepage you can find a preview of upcoming or current exhibitions as well as an archive of previous exhibitions. Based on the date the exhibitions get automatically sorted in one of the three categories (preview, current or archive). Each category has its own deep-link with URL segment. Page transitions The smooth fading page transitions are made with Barba.js. Modules used: Front-End Page Editor Markup Sitemap XML ProCache Tracy Debugger Upgrades Regards, Andreas
  8. Hello @bernhard, I like the idea of this module, but if I understand correctly, it is currently only possible to use this module with a copy of the AdminThemeUIkit inside the sites-folder? This is currently a deal-breaker for me, because I don't want to miss out on AdminThemeUIkit updates. Hopefully the theme will be hookable, so that the AdminThemeUIkit inside the wire-folder can be used. So long I will wait with your module. But thank you for your efforts. Regards, Andreas
  9. Here is another example of a nice homepage feature switcher with good screenshots for inspiration.
  10. My bad, thank you for the clarification.
  11. Just wanted to mention, that the blue is the default primary background color of UIkit. Probably it will change and it wasn‘t chosen on purpose.
  12. First of all @ryan thank you for your work on the new website. It is already looking promising. You have already much feedback, but I wanted to give also some first suggestions: Container As @Robin S already mentioned, for very large screens (for example 27 inch iMacs) it would be better in my opinion to limit the container width to uk-container-large. Section Right now every sections is either default or primary. You are are aware of this, but the section component also offers secondary or muted sections. I think it would be nicer to spice things up with more different sections. For example the footer could be first be muted (twitter, forum and news) and then secondary (copyright), Blog I also don't like the current blog overview. In my opinion it would be nicer with cards. Navigation The search should be in my opinion be the last item in the navigation. Although the new search is now really powerful, searching should be the last thing a visitor has to do after all contents are discovered. That was it for now and keep up the great work. Regards, Andreas
  13. With around 3,400 employees worldwide, IMS Gear develops and produces specific drive solutions for international customers. In addition to the focus on the automotive industry, the focus is on applications for industry and e-mobility concepts. Finding new employees is important for the day-to-day business of IMS Gear. For this reason our agency designconcepts developed a job portal, where potential employees can easily inform themselves about the company, the application process and find the job they are looking for. The website was build with help of the framework UIkit. jobs.imsgear.com Features: Job finder Job offer PDF Newsletter Fly-in information pages Job finder Core of the website is the job exchange with the job finder. Here you get a list of all available jobs which you can filter by three main areas (categories, task areas and locations). Or you can type in anything in the search field and filter by various keys (for example ID, title, country and hidden tags). The job finder was build with jQuery Typeahead, which was really helpful in building this complex logic. If you want to know which job is the closest to you, you can sort them by distance. Job offer PDF Every job offer has a printable PDF version for newspapers or other job platforms. The job offer PDF can be created by checking a checkbox in the back-end and saving the page. The PDF will then be created with all needed fields of that page and DocRaptor. This workflow is really easy for editors and guarantees a consistent layout for all created PDFs. Newsletter If there is no job for you available at the moment, you can subscribe to a newsletter with your areas of interest. Then you will be notified daily if a job is available with your interests. Instead of using a separate newsletter tool, the nice module Newsletter Subscription was used to manage subscribers. The newsletter will be send via a shell script executed by a daily cron job. Modules used: Continents and Countries Front-End Page Editor Functional Fields Markup Sitemap XML Newsletter Subscription ProCache Repeater Matrix Tracy Debugger Upgrades Wire Mail SMTP Regards, Andreas
  14. Thank you for the feedback. Sorry, but I am not sure, if I can share that information in public.
  • Create New...