Kirra CMS 4.0.1

In deze Kirra update hebben we een aanpassingen doorgevoerd in bestaande modules als Pagina's & Media. In de module Media is het nu mogelijk om meerdere bestanden tegelijk te uploaden. Tijdens het uploaden verschijnen de bestanden automatisch in een map. Ook hebben we de actieknoppen (o.a. opslaan) aangepast, zodat de knoppen automatisch meescrollen. Voor het opslaan van een pagina hoef je nu dus niet meer naar boven of onderen te scrollen.

Ook is het aanbod van modules uitgebreid. Nieuw zijn de modules: Banners, Flickr, Google Maps Routes, Picasa, Social Share, Vimeo, Catalogus en Youtube. Bekijk de modulepagina's voor meer informatie. Hieronder zijn de grote, kleine aanpassingen en bugfixes opgesomd.

Grote aanpassingen

Algemeen

Multi-upload in het mediabeheer is nu ook mogelijk. Waarbij de functionaliteit native is voor moderne browsers, voor oudere browsers wordt het flash component SWFUpload gebruikt.
Crosslinks zijn aangepast; doorzoekbaar en vanaf nu worden alleen de static id's nog maar opgeslagen, niet de paden. Hierdoor is de kans kleiner dat niet werkende crosslinks worden opgeslagen.
Bij het toevoegen van een component aan een container worden de reeds aanwezige componenten als unsaved opgeslagen ipv als published.
De module Media onthoudt nu welke map je het laatst bekeken hebt.

Kleine aanpassingen

Algemeen

Bij de module formulieren wordt nu ook geregistreerd op welke pagina (URL) het formulier ingevuld is.
Als een bestand nogmaals wordt geupload in de module Media in een andere map, dan wordt het bestand voor een tweede keer (met ander id) geupload. Hierdoor verschijnt er een nieuw bestand in de desbetreffende map.
De e-mails die vanuit Kirra worden gestuurd zijn gepersonaliseerd. Wat?
Er is een nu lijstweergave toegevoegd aan het Dashboard waarbij pagina's per status kunnen worden bekeken. Ook biedt deze weergave filter- en zoekmogelijkheden.
Privileges zijn nu in te stellen op module niveau.
De "actieknoppen" aan de rechterkant van het bewerkscherm zijn aangepast, zodat deze meescrollen met de gebruiker. Hierdoor hoeft de gebruiker niet helemaal naar boven of onder
Gebruikers moeten nu verplicht akkoord gaan met de algemene voorwaarden, bij elke verandering aan de algemene voorwaarden moet de gebruiker dit verplicht uitvoeren.
De module Blog is uitgebreid met de mogelijk om gebruik te maken van Gravatar. Via Gravatar is het mogelijk 1 wereldwijd erkende avatar te gebruiken.
Bij het zoeken in de boom wordt nu in de titel en in de keywords gezocht
De DevBlocker wordt nu vanuit het control panel aangestuurd ipv vanuit de systemnode. Hierdoor is het eenvoudig via het beheerpanel in te stellen of de website afgeschermd moet zijn met een wachtwoord.
Sitemap voor Google aangepast, zodat de pagina's in alle beschikbare talen in de sitemap voorkomen.
Techniek

Inline javascript wordt nu gecached om onnodige minify-operaties te voorkomen
Er zal nu standaard gebruik worden gemaakt van iframes voor het embedden van video's [1]
graphics_edit_mask toegevoegd aan de graphics-bibliotheek
Exceptions kunnen nu per exception opgemaakt worden
Serverbreed loggen van fouten toegevoegd
Bij het redirecten door de Shortlinks-module of de URLArchiver wordt er nu een X-Kirra-Redirected-By-header gezet
Youtube-video's maken nu default gebruik van de iframe-methodiek
Javascripts kunnen nu worden gegroepeerd via de Smarty plugins require_script, require_inline_script en render_scripts
Output van cronjobs wordt opgeslagen in de database, vermindering van het aantal e-mails
Logging ingebouwd voor cronjobs
Er is een mechanisme toegevoegd, die ervoor zorgt dat er pas sessies worden opgeslagen als dit nodig is; om loze sessies voor bots te voorkomen
Twee nieuwe events geïntroduceerd in de ObjectStore: persistent_Event_ObjectDeleted en persistent_Event_ObjectSaved
De crosslinks slaan nu een staticid op in plaats van een staticpath. Dit is backwards compatible indien de crosslinks zijn overschreven
core_Repository::resolveStaticId() neemt nu het laatste deel van het pad en lust dit door naar core_Repository::getComponentByStaticid()
Automatische tabelgeneratie voor custom tabellen in het project
$REVISION is niet langer beschikbaar in je Smarty templates
{upload} kijkt nu ook naar de filemtime van de template
robots.txt-component zit niet meer in de boom, maar wordt aangeroepen via statische route. Als deze toch in de boom zit, wordt het component genegeerd.
Het standaard-project heeft nu standaard een cronjob die elke week een cleanup doet op het project
ivm de introductie van de Velociraptor module wordt de referrer van het formulier nu met javascript ingesteld.
de Website-helper is uigebreid met de methodes getSessionId(), getRegistrySetting($key) en is EncryptedRequest().
Een veranderde methodiek voor het doorvoeren van upgrades
De module zoeken gebruikt nu de standaard onModuleActivated-functie van TreeBased
Plug-in 'formpluginimailingtool' gemaakt, hiermee kunnen formulieren worden gebruikt als inschrijving van een mailinglist
De TreeTraversal-klasse is uitgebreid met een strategiekeuze
De koppeling met Kirra Webplatform is ingevoegd in de vorm van de module Webplatform
core_Module is uitgebreid met de publieke methode getFullUrl()

Bugfixes

graphics_Image::jpg en graphics_Image::png() stellen nu het juiste content-type in in het http_Response-object
Als een pagina gepubliceerd is en een symbol, dan kan deze alleen nog maar gedepubliceerd worden door een GOD-gebruiker
components_Newsitem::getMeer($num) hield zich niet aan de $num-parameter als de bovenliggende pagina geen instantie van components_Newsfolder was
Bij het uploaden of vervangen van een bestand in Mediabeheer wordt nu het mimetype geresolvet ipv uit de upload-params
Bij een nieuwe instantie van een Google Maps-component werd het zoekveld niet goed afgevangen, wat tot een refresh leidde
Bij het aanmaken van een nieuwe versie werd de slug overgenomen van de pagina waar vandaan de versie werd gemaakt. Nu wordt er gekeken of er het een eerste versie van een taal betreft, dan wordt de slug leeg gemaakt, zodat de eerstvolgende keer dat er wordt opgeslagen een nieuwe slug wordt gegenereerd van de nieuwe titel
Url-shortener van Youtube werd niet goed geïnterpreteerd, nu wel
De attachments van formulieren werden nog door de formuliercomponent afgehandeld, dat leverde problemen op. Dit is nu verplaatst naar de module.
Als de cache controle op no-cache staat wordt dit nu aangevuld met max-age=0, omdat Varnish anders alsnog 10 minuten ging cachen.