Posts from the ‘Wordpress plugins’ Category

Meerdere gebruikers, 1 website, verschillende opties (WordPress)

Dit is een belangrijk concept en iets dat een webdeveloper in veel situaties nodig heeft: een website die de mogelijkheid biedt aan andere gebruikers (klanten) om zelf een website te onderhouden of te bouwen. Nu lijkt dat makkelijk te realiseren met een (open source) CMS maar algemene probleem lijkt mij dat medegebruikers standaard dezelfde mogelijkheden hebben als de administrator en de andere gebruikers. Bijvoorbeeld: zowel bij Joomla als WordPress hebben mede gebruikers beschikking over dezelfde templates en thema’s als de andere gebruikers. Het is nog niet zo makkelijk om verschillende gebruikers binnen 1 website, verschillende websites te laten bouwen en te onderhouden. Dewebmeester.nl onderzoekt de mogelijkheden en de beste worden op de markt gebracht. Deze week is dat het concept van http://www.mobilewebbuilder.nl : een website waar verschillende gebruikers allemaal verschillende mobiele websites kunnen maken en onderhouden.

In mijn vorige blogpost heb ik aandacht gegeven aan een mogelijkheid om een WordPress plugin beschikbaar te stellen aan andere gebruikers zonder hen toegang tot thema’s of posts van anderen te geven. Dat kan werken voor bepaalde plugins maar zal niet voor alle plugins even makkelijk werken. En in het geval van http://www.mobilewebbuilder.nl (www.mobielesitebuilder.nl) leidde dit niet tot een afdoende oplossing. Want de bedoeling is dat een gebruiker een unieke mobiele website maakt en onderhoudt, via de CMS publiceert en dat die website door een andere gebruiker uiteindelijk niet te bewerken is. En indien elke gebruiker toegang krijgt tot dezelfde plugin (een Mobiele Site Builder plugin), dan zijn die websites door alle andere gebruikers binnen de dashboard via de plugin te benaderen en aan te passen. Dat moet niet.

De oplossing (en ook voor veel andere gelijkende problemen)

De oplossing heeft “Multisite”. Deze optie kan tijdens de installatie van een WordPress geactiveerd worden of eventueel later (zie bijvoorbeeld deze blogpost). De Mulisite optie lost eigenlijk al onze problemen op zoals hierboven uitgelegd. Deze optie maakt ook de “Hack” zoals genoemd in de vorige blogpost onnodig. Dat is mooi omdat we nu geen files hoeven aan te passen (en opnieuw moeten aanpassen na elke update van de plugin). Maar we hebben nu wat andere problemen.

Wat is opgelost:

  1. elke gebruiker heeft een eigen dashboard en geen toegang tot dashboard van andere gebruikers
  2. dus elke gebruiker heeft alleen toegang tot posts van zichzelf en niet van anderen
  3. elke gebruiker heeft toegang tot plugins.

Nieuwe problemen:

  1. elke gebruiker heeft toegang tot alle templates en thema’s en dat lijkt me wat teveel luxe.
  2. elke gebruiker heeft toegang tot alle geactiveerd plugins en ook dat is wat teveel luxe.

Vandaag los ik alleen dit eerste probleem op: ik wil binnen de hoofdwebsite (http://www.mobilewebbuilder.nl) een mooi premium design installeren en kies hiervoor WowWay. Maar vervolgens kan elke medegebruiker (elke klant) ook gebruik maken van dit thema zonder deze template te hoeven kopen en dus zonder een gebruikers licentie te hebben. Nee, dat wil ik niet. De oplossing is de volgende code in wp-config.php:

define(‘WP_DEFAULT_THEME’, ‘wowway’);

Vervolgens activeer ik de template voor het hele netwerk, ga naar dashboard van eigen website en activeer dit thema. Daarna ga ik teru gnaar Network dashboard en deactiveer ik het thema voor het netwerk. Probleem opgelost: mijn eigen site heeft een mooi design, de andere gebruikers hebben niet de beschikking gekregen over dit thema maar kunnen wel aan het werk met de Mobiele Sitebuilder.

Gecontroleerde en beperkte toegang voor gebruik plugin in WordPress

Dit was een nieuwe avontuur voor me. Ik ben bezig met een nieuw concept voor dewebmeester.nl: een online website builder tool waarmee klanten zelf een mobiele website kunnen maken of onderhouden. Dat concept is al aardig uitgewerkt maar hoe geef ik klanten nu beperkte toegang tot het gebruik van deze WordPress plugin?

Situatie:

  • Ik heb een WordPress website met verschillende thema’s, plugins, pagina’s enzovoorts.
  • Nu wil ik 1 plugin beschikbaar stellen voor gebruik aan klanten van dewebmeester.nl
  • WordPress biedt standaard eigenlijk maar twee mogelijkheden wat betreft gebruikers: 1) Een gebruiker is een administrator en heeft toegang tot alles of 2) een gebruiker is geen administrator en heeft al dan niet toegang tot de content (blog posts) van de website.
  • Kortom: WordPress biedt standaard niet de mogelijkheid om een gebruiker beperkte toegang te geven tot back -end (dashboard). Je hebt of helemaal toegang, of helemaal niet.

Het heeft me wel enige uren geduurd voor ik de oplossing gevonden heb en hem verschillende plugins geprobeerd zoals: – s2members -, – members – en – user role editor – maar die bieden allemaal niet de mogelijkheid om administrators (degenen die toegang tot dashboard hebben) verschillende permissies te geven. De scheiding blijft: of wel, of geen toegang tot dashboard. Maar ik wil een gedeeltelijke toegang tot dashboard.

De oplossing:

Elke plugin definieerd voor zichzelf de toegangs permissies. En WordPress plugins maken allemaal standaard gebruik van de WordPress settings: alle administratoren hebben toegang tot alle plugins. Hier stappenplan om tot andere situatie te komen:

  1. Download de complete plugin folder naar de harde schijf
  2. Open deze plugin folder met het programma EditPadPro en zorg dat het programma alle files uit de subfolders opent (geweldig dat EditPadPro dit kan!)
  3. Zoek vervolgens naar alle verwijzingen naar – manage_options – binnen deze files en:
  4. Om Editors toegang tot de plugin te verlenen, verander  ‘manage_options’ in ‘edit_pages’.
    Om Authors toegang tot de plugin te verlenen, verander  ‘manage_options’ in ‘publish_posts’.
    Om Contributors toegang tot de plugin te verlenen, verander  ‘manage_options’ in ‘edit_posts’.
    Om Subscribers toegang tot de plugin te verlenen, verander  ‘manage_options’ in ‘read’.

Ik heb in de options.php file van de plugin – manage-options – verandert in – edit_pages – en elke gebruiker die Editor is krijgt vervolgens onderstaand dashboard te zien na inloggen:

mobilesitebuilder1

Netjes toch? De Editor heeft toegang gekregen tot de Mobile Site Builder van http://www.mobilesitebuilder.nl maar kan geen enkele post aanpassen die hijzelf niet eerst gemaakt heeft. Zelfs tools zijn niet beschikbaar (behalve Press This). De Editor kan de Mobiele Site Builder gebruiken, zijn eigen posts aanpassen en eventueel wat gegevens in zijn profiel aanpassen. Ik ben blij.

Foto album met preview afbeeldingen bij mouse on hover zoals op Facebook…..

Nou, deze blogpost lijkt mogelijk op Arabisch meer de functie is dat ik hier mijn gedachten en ideeen probeer weer te geven betreffende een opdracht in de hoop dat ik dit opdracht succesvol zal kunnen uitvoeren:

Opdracht: klant heeft WordPress website en een leuke gallery via een gallery plugin. Nu is hij daar niet tevreden mee. Hij wil extra functionaliteit. De home pagina van de gallery toont een aantal categorieen. Die kunnen we beschouwen als fotoalbums over een bepaald onderwerp. Hij wil dat als de bezoeker met zijn muis over de voorkant van dit fotoalbum beweegt, dat dan automatisch, achter elkaar, een preview getoond wordt van de afbeeldingen binnen dat fotoalbum. Nee, niet onmogelijk. Maar wel moeilijk. Om het nog leuker te maken heeft hij een voorbeeld: de weergave van de fotoalbums in Facebook.

Spioneren van de code binnen Facebook
Dat doe ik meestal: even spieken binnen de code van de website waar de klant het voorbeeld gevonden heeft. Facebook in dit geval. Wat zie ik:

<div id=”u_0_3b” class=”_30l”><span id=”u_0_2f” aria-label=”Photo” class=”uiMediaThumb _30m uiMediaThumbMedium” style=”opacity: 0;”><i class=”uiMediaThumbImg” style=”background-image: url(http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash3/p206x206/530465_10151320424569284_27191678_n.jpg);”></i></span><span id=”u_0_2g” aria-label=”Photo” class=”uiMediaThumb _30m uiMediaThumbMedium” style=”opacity: 0;”><i class=”uiMediaThumbImg” style=”background-image: url(http://sphotos-d.ak.fbcdn.net/hphotos-ak-snc6/p206x206/603007_10151320424504284_10063898_n.jpg);”></i></span><span id=”u_0_2h” aria-label=”Photo” class=”uiMediaThumb _30m uiMediaThumbMedium” style=”opacity: 0;”><i class=”uiMediaThumbImg” style=”background-image: url(http://sphotos-f.ak.fbcdn.net/hphotos-ak-ash4/p206x206/318068_10151320424509284_1098475204_n.jpg);”></i></span><span id=”u_0_2i” aria-label=”Photo” class=”uiMediaThumb _30m uiMediaThumbMedium” style=”opacity: 0;”><i class=”uiMediaThumbImg” style=”background-image: url(http://sphotos-c.ak.fbcdn.net/hphotos-ak-ash3/p206x206/582526_10151320424494284_1473985989_n.jpg);”></i></span><span id=”u_0_2j” aria-label=”Photo” class=”uiMediaThumb _30m uiMediaThumbMedium” style=”opacity: 1;”><i class=”uiMediaThumbImg” style=”background-image: url(http://sphotos-b.ak.fbcdn.net/hphotos-ak-prn1/p206x206/47666_10151320427084284_424829715_n.jpg);”></i></span></div>

Mooie code maar de vraag is nu waar die naartoe verwijzen. Oftewel: in welke file of binnen welk script staat bijvoorbeeld het volgende gedefinieerd?:

class=”uiMediaThumb _30m uiMediaThumbMedium”

Nee, lijkt me op zich niet erg relevant. Dit is tenslotte verwijzing naar css code en betreft niet een script. Code geeft alleen de output weer van het script. Maar welk script genereert deze output? Maar even googlen op: “load preview images mouse on hover”. Geen succes. Of: “how to have images load on mouse over in wordpress plugin”. Veel informatie, nog geen antwoorden.

Mijn test op jsfiddle.com

Openen video’s van youtube in Lightbox binnen WordPress slider

Vandaag bijt ik mijn tanden in een nieuwe opdracht van tweaky.com: De klant wil dat video’s geopend worden in een Lightbox binnen dezelfde pagina. Het probleem lijkt me dat de video al geintegreerd is in een slider en niet in een bericht. Mijn stappenplan:

  1. – plugin lightbox video installeren (WP Video Lightbox)
  2. – testen binnen een WordPress bericht
  3. – code controleren en kijken of dit te integreren is in slider. Deze slider is overigens onderdeel van de template en heeft een eigen beheerspanel en de klant wil natuurlijk het beheer over deze video’s binnen dit beheerspanel behouden. Kortom: ik moet niet teveel in de broncode gaan veranderen maar zoveel mogelijk werken binnen bestaande admin panel van WordPress.

Na stap 1 ga ik eerst naar de support pagina van deze plugin: http://www.tipsandtricks-hq.com/wordpress-video-lightbox-plugin-display-videos-in-a-fancy-lightbox-overlay-2700#!prettyPhoto . Daar vind ik een demonstratie van de werking van de plugin en kijk via Firebug naar de code (mogelijk kan ik stap 2 overslaan?) en dan zie ik dit:

<!—<a title=”” href=”” rel=”wp-video-lightbox”><img class=”video_lightbox_anchor_image” alt=”” src=”http://www.tipsandtricks-hq.com/wp-content/uploads/2010/08/wp-video-lightbox-demo.png“></a>—>

Deze code plak ik in een Notepad+ document om te bestuderen.

Binnen de slider applicatie is een mogelijkheid om aan te geven welke image getoond moet worden en waar die image bij klikken naartoe moet leiden. Image laat ik staan en als link plaats ik de YouTube video link. Vervolgens moet ik de rel=”wp-video-lightbox” nog ergens plaats. Ik probeer die te plaatsen naast de link binnen de slider applicatie maar zonder succes. In Firebug houd ik bij hoe de code verandert en ja, ik zie de link en zelfs rel= maar code wordt toch steeds weer door elkaar gegooid door de slider applicatie. Toch maar naar de broncode van de slider?
Ook dat probeer ik. Dat had moeten werken maar kan niet goed bepalen waar ik de — rel=”wp-video-lightbox” –moet plaatsen.

De oplossing
Tjonge wat ben ik dan weer blij als het lukt. Deze keer heeft het me 2 uur gekost. Oplossing lijkt simpel: bij de slider is er een optie om een “Caption” te plaatsen. Met een beetje geluk betekent dit dat er plaats is om html te plaatsen. En dus plaats ik de hele link, inclusief rel=”wp-video-lightbox” in de Caption (de titel, of eventueel in de beschrijving). Dat ziet er zo uit:

<a href=”” rel=”wp-video-lightbox”> <em><font face=”times new roman,times,serif” size=”6″>Click to Play</font></em></a>

Het resultaat is een mooie link onderaan de foto die getoond wordt met de titel “Click to Play” en bij klikken hierop wordt de video geopend in een mooie Lightbox overlay. Zie: http://www.speedvertu.com
Hartelijke groeten.
Ook interesse in het openen van video’s in Lightbox? Neem even contact op me:— info —

Javascript toevoegen aan blog posts (berichten) en pagina’s WordPress

Nee, dat is standaard niet mogelijk volgens WordPress. Zie bijvoorbeeld: http://codex.wordpress.org/Using_Javascript Ja, het is blijkbaar toch mogelijk en daarvoor is niet eens een aparte plugin nodig. Stel ik ga naar een bericht of ik maak een nieuw bericht aan in WordPress en vervolgens schakel ik naar html view, plak het script (chat, webshop API of in dit geval: een javascript clickable map) binnen de html code, sla bericht op en bekijk bericht. Resultaat is: niets….. Want alle javascript code wordt gefiltert en geschrapt door de WordPress editor. Maar vandaag ontdek ik een simpele oplossing:

Script plaatsen in html widget en html code in bericht of page code
Ik plaats een nieuwe html widget binnen (bijvoorbeeld) de sidebar en plak daarin het script. Ja, nu werkt het wel maar wordt de code mogelijk niet op de juiste plaatst geactiveerd. Nee, we willen echt binnen een bericht de code laten zien. Geen nood. Na activeren van deze html widget (inclusief <head> script) plaats ik de html code die bepaalt hoe en waar mijn applicatie getoond moet worden, binnen de html van het nieuwe (of oude) bericht en vervolgens publiceer ik dit. En ja, nu verschijnt de javascript applicatie binnen het bericht. Logisch: de code uit de widget (sidebar) is oproepbaar binnen de pagina en kan niet door de editor gestript worden.

Niet simpel? Wilt u liever dewebmeester.nl dit laten doen? Stuur dan even een email naar info@dewebmeester.nl
Groeten!

%d bloggers liken dit: