Input filteren vraagje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

JAVA Programmeur

Bedrijfsomschrijving Functieomschrijving We zoeken per direct enthousiaste software engineers die ons team komen versterken.We werken in DevOps teams met een sterk gevoel voor verantwoordelijkheid. Er wordt nauw samengewerkt met ons Business analyse team (BAT), met onze uitvoerende medewerkers en met de DevOps teams onderling binnen het domein. Het liefst hebben we veel en vaak interactie met onze interne en externe eindgebruikers om zo de juiste dingen te maken. We werken multidisciplinair in een dynamische omgeving. Achtergrond opdracht De Businesseenheid Examens is verantwoordelijk voor de logistiek van de staatsexamens Voortgezet (speciaal) onderwijs, Nederlands als 2e taal en schoolexamens. In het kader

Bekijk vacature »

Ervaren PHP developer gezocht!

Functie Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Front end developer binnen de consultancy

Functie Je komt in een team met ambitieuze developers die de passie voor Front-End met jou delen. Samen ga je aan de slag met leuke en leerzame opdrachten. Het team heeft een eigen budget en financiën en zij bepalen zelf hoe dat besteed en investeert wordt. Je gebruikt tools als JavaScript, Node.js, React, Angular, Typescript en Vue.js wanneer je werkt aan de opdrachten. Daarnaast zul je veel leren van je collega’s en gezamenlijk een leuke tijd doorbrengen tijdens activiteiten zoals wintersport, hackatons en conferentiebezoeken. Je krijgt niet alleen de mogelijkheid Front-End te ontwikkelen, maar ook vooral jezelf. Dit kan behaald

Bekijk vacature »

.NET developer

Functie Als developer heb jij de keuze om aan te sluiten bij het team (13 developers) die op locatie projectmatig bij klanten werkt. Wanneer jij liever intern bij de werkgever werkt is er ook alle ruimte voor jou in het interne team (8 developers) van dit bedrijf. Je werkt samen aan verschillende projecten bij of voor de klant. Het project wordt aangeleverd door sales aan de project manager. Die maakt samen met de Resourcer een planning en op basis daarvan wordt uit het development team een “projectgroep” opgesteld. Hoeveel en welke projecten jij wilt oppakken gebeurt geheel in samenspraak met

Bekijk vacature »

PHP ontwikkelaar

Functie Met een complex en uitgebreid e-commerce platform, een eigen PIM-systeem en eigen scan applicatie – krijg jij dagelijks te zien hoe jouw werk gebruikt wordt door miljoenen gebruikers. En we staan qua development pas in de startblokken, aangezien er nog meerdere projecten op de plank liggen te wachten! Ons huidige development team bestaat uit 8 programmeurs. Er wordt dagelijks gereflecteerd op geschreven code, Scrum taken en kennisdelen onderling is een must. Onze voertaal binnen ons team is Engels, dit omdat wij twee internationale collega’s hebben. Ons huidige “IT Landschap” bestaat voornamelijk uit allerlei losse onderdelen die individueel, maar ook

Bekijk vacature »

Junior .NET Software Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

Bekijk vacature »

.NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Front-End React Developer

As a Front-End React Developer you improve the user-experience of our web applications for your colleagues in Coolblue. How do I become a Front-End React Developer at Coolblue? As a Front-End React Developer you are responsible for developing user interface components and implementing them using React.js concepts and workflows. You work with the UX Designer and get energy from coming up with creative solutions and present these within the team. During the day you gather and welcome feedback on your technical and soft skills. Would you like to become a Front-End React Developer at Coolblue? Read below if the job

Bekijk vacature »

Front end developer

Functie Het team bestaat uit User Experience designers, Data Scientists en Software Engineers met passie voor hun vak. De consultants en ontwikkelaars werken volgens de Design Thinking methode waarbij de eerste stappen van ontwerp en ontwikkeling zullen samenkomen in een proof of concept. Nadat is vastgesteld dat de oplossing voldoet aan de belangrijkste behoeftes worden producten of services gevalideerd door middel van korte iteraties. Hiermee zorgen ze ervoor dat het werk voldoet aan de technische vereisten en gebruikersbehoefte. Door het inzetten van de nieuwste technologieën die toekomstbestendig zijn weten ze klanten omver te blazen. Ook geven en organiseren ze veel

Bekijk vacature »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze klanten. Geen werkdag is hetzelfde, je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Arval en de Politie. Werken bij Sogeti Nieuwe ontwikkelingen volgen we op de voet en delen we binnen de

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

PHP Developer

Functie Middels Scrum en sprints bouw jij in deze functie mee aan complexe webapplicaties en ons SaaS platform. Hierbij hoort ook architectuur tot een van je taken. Daarnaast ben je één van de leden van het Scrum team. Dat betekent dat je naast je kerntaken ook in contact staat met de product owner. Oftewel, je bent bij het gehele ontwikkelproces betrokken. Tools die hierbij gebruikt worden zijn o.a. PHP, Symfony en Git. Eisen • Minimaal HBO werk- en denkniveau • Minimaal 3 jaar aantoonbare ervaring met PHP • Kennis en ervaring Symfony (Laravel is pré) & Lando • Kennis van

Bekijk vacature »

3D BIM Add-on Developer

Als 3D BIM add- on ontwikkelaar bij KUBUS ontwikkel je add-ons (BCF Managers genaamd) voor de toonaangevende building information modeling (BIM) programma's Revit, Navisworks, Archicad, AutoCAD en Tekla Structures. BCF Managers maken gegevensoverdracht mogelijk tussen BIM-software en BIMcollab. Je werkt zowel aan de front- als aan de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en

Bekijk vacature »

Lead Fullstack developer

Functie omschrijving Ben jij een leergierige en ambitieuze junior developer met technische skills? Ben jij op zoek naar een werkgever die jouw de volledige vrijheid geeft om jezelf tot een volwaardige senior te ontwikkelen? Wij zijn op zoek naar een full stack developer die zich bezig wil bezig houden met het uitbreiden en verbeteren van de online webshop. Een onderdeel van jouw werkzaamheden is naast het beheren van de webshop ook om de processen en structuren te stroomlijnen. Werkzaamheden Onderhouden van de webshop (denk aan het bijhouden van de voorraad); Nieuwe functies toevoegen aan de product configurator door middel van

Bekijk vacature »

Ervaren Software Developer

Functie omschrijving Ben jij een ervaren Software Developer, en heb je ervaring met technieken zoals C#, MS Access & SQL? Vind jij het leuk om maatwerk software te ontwikkelen voor klanten in een specifieke branche? Dan is dit de baan voor jou! Als ontwikkelaar ben jij samen met een team van 12 collega’s verantwoordelijk voor het bouwen van nieuwe functionaliteiten en het uitbreiden van de core applicatie. Belangrijk is dat je ervaring hebt met C# en MS Access. Je bent flexibel en klantvriendelijk ingesteld, omdat het belangrijk is om de klanten zo goed mogelijk van dienst te kunnen zijn. Thuiswerken

Bekijk vacature »
Furio Scripting

Furio Scripting

07/11/2017 23:05:48
Quote Anchor link
Beste forumleden,

Ik heb een review website waar men beoordelingen kan plaatsen voor websites maar ook voor bedrijven (restaurants, verenigingen, sportscholen etc etc)....

Nu heb ik 1 zoekveld waar men dus op van alles kan zoeken.

Hoe zorg ik ervoor dat ik de originele naam goed op kan slaan, bijv: Bord'Eau (Hotel De L'Europe Amsterdam) of The Good Companion | Fish & Chips.

In deze zoekopdracht zitten er qoutes, spaties en & tekens tussen. Dit wil ik ook zo opslaan maar in de url moeten al die vreemde karakters vervangen worden door een -(dash).

Mijn vraag is dus hoe kan ik deze speciale karakters opslaan in mijn database en vervolgens correct weergeven in de url.

Voorbeeld website welke dit goed toepast is: https://www.iens.nl/restaurant+amsterdam In de resultaten staat de naam zoals het hoort en als je op een resaurant klikt zie je in de url alles netjes gevalideerd.

Ik hoop dat iemand mij dit kan uitleggen.

Mvg
 
PHP hulp

PHP hulp

26/05/2026 12:29:36
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/11/2017 23:36:54
Quote Anchor link
Jij wilt slugs gebruiken. Het is best een hele stap als je nog niet met een framework en dus met controllers werkt.

Anyway als eerste moet je je .htaccess bestand zo instellen dat alle requests die niet bestaan en normaal direct een 404 Not Found foutmelding zouden geven nu naar één en dezelfde php script wijzen. Meestal wordt hier gewoon index.php voor gebruikt.

Stel je hebt twee php bestanden in je root, namelijk index.php en contact.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
( ---> betekent "gaat naar" )

https://www.iens.nl/                      ---> index.php
https://www.iens.nl/index.php             ---> index.php [bestaat werkelijk]
https://www.iens.nl/restaurant+amsterdam  ---> index.php
https://www.iens.nl/cafe+bolle+jan        ---> index.php
https://www.iens.nl/contact.php           ---> contact.php [bestaat werkelijk]


Als tweede moet je een functie hebben die een normale tekst met allerlei karakters omzet naar een slug.
Ik vertel je natuurlijk niet dat je hier een hele goede vindt :-)

Ten derde zul je moeten nadenken over het feit dat je moet voorkomen dat twee entiteiten dezelfde slug gaan gebruiken. Immers "côte" zal hetzelfde opleveren als "cote" als die door de slugifier gehaald wordt.

Om bovenstaande reden kies ik er altijd voor om een extra kolom in de database tabel aan te maken met de naam "slug" waarop ik een unique constraint loslaat zodat het onmogelijk wordt om er twee dezelfde slugs in te zetten.

Als laatste kun je in je index.php een routine maken die de slug uit de URL pulkt en dan aan de hand van de gevonden slug de bijbehorende gegevens uit de database tovert en ophoest.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM accommodations WHERE slug='restaurant+amsterdam'


Overigens kun je dubbele slugs ook toelaten als je tevens het ID in de URL zet. Dat zie je hier in PHPhulp ook, kijk maar in je URLbalk. Jouw topic heeft id 101752. dan zoek je dus gewoon op id ipv op slug

Toevoeging op 07/11/2017 23:37:44:

Overigens zou ik liggende streepjes gebruiken ( - ) in plaats van plus tekens ( + )
 
- Ariën  -
Beheerder

- Ariën -

07/11/2017 23:40:17
Quote Anchor link
Frank Nietbelangrijk op 07/11/2017 23:36:54:
Jij wilt slugs gebruiken. Het is best een hele stap als je nog niet met een framework en dus met controllers werkt.

Dat valt nog wel mee zonder framework, hoor. Ik heb het pas nog bij een site ingebouwd die geen framework had. ;-)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/11/2017 23:47:32
Quote Anchor link
Ook stel jij als voorbeeld deze url: https://www.iens.nl/restaurant+amsterdam.

Overweeg om daar iets van te maken als https://www.iens.nl/accomodations/restaurant+amsterdam

Dan kun je namelijk nog zonder problemen een https://www.iens.nl/contact en een https://www.iens.nl/about maken.

Want anders kunnen er twee dingen gebeuren afhankelijk hoe je de zaak opzet.

1) er zal een dan naar een accommodation gezocht worden die 'contact' of 'about' heeft als slug en de contact en about pagina zullen daardoor onbereikbaar worden

2) Je script kijkt eerst of 'contact' en 'about' misschien voor iets anders dienen en gaat in dat geval wat anders doen dan een accommodatie zoeken. Dat werkt op zich wel maar heeft weer als nadeel dat als iemand een accommodatie aanmaakt in de database die "Contact" heet heel vertwijfeld zal kijken als hij daarna op de contact pagina uitkomt in plaats van op een pagina die zijn accommodatie laat zien ..

Hoop dat ik een klein beetje duidelijk ben geweest ;-)

Toevoeging op 07/11/2017 23:48:07:

- Ariën - op 07/11/2017 23:40:17:
Frank Nietbelangrijk op 07/11/2017 23:36:54:
Jij wilt slugs gebruiken. Het is best een hele stap als je nog niet met een framework en dus met controllers werkt.

Dat valt nog wel mee zonder framework, hoor. Ik heb het pas nog bij een site ingebouwd die geen framework had. ;-)


Dat kun je wel zeggen Ariën maar je zult dan toch wel een paar uitdagingen moeten aangaan zoals het schrijven van een soort van frontcontroller en het aanmaken van een .htaccess bestand.
Ik vindt het persoonlijk een beetje het verschil tussen een kast van de meubelzaak en plankjes en onderdelen halen bij de Gamma ;-) En laten we het erop houden dat je bij de meubelzaak een grotere kans hebt op een mooie degelijke kast netjes bij jou thuis afgeleverd
Gewijzigd op 07/11/2017 23:51:51 door Frank Nietbelangrijk
 
- Ariën  -
Beheerder

- Ariën -

08/11/2017 00:08:03
Quote Anchor link
Er zat sowieso al een Single-page-entry in gebouwd. En het werkt wel met soort-achtige controllers.
Een kwestie om daar te kijken of de slug bestaat, en zo niet deze toevoegen aan de URL met een location header.

Anyway, de class die ik erbij gebruik:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
class Slug {
    
    public function create($str, $options = array()) {
    // Make sure string is in UTF-8 and strip invalid UTF-8 characters
    $str = mb_convert_encoding((string)$str, 'UTF-8', mb_list_encodings());
    
    $defaults = array(
        'delimiter' => '-',
        'limit' => null,
        'lowercase' => true,
        'replacements' => array(),
        'transliterate' => false,
    );

    
    // Merge options
    $options = array_merge($defaults, $options);
    
    $char_map = array(
        // Latin
        'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'AE', 'Ç' => 'C',
        'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I',
        'Ð' => 'D', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', '?' => 'O',
        'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', '?' => 'U', 'Ý' => 'Y', 'Þ' => 'TH',
        'ß' => 'ss',
        'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae', 'ç' => 'c',
        'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i',
        'ð' => 'd', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', '?' => 'o',
        'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', '?' => 'u', 'ý' => 'y', 'þ' => 'th',
        'ÿ' => 'y',
        // Latin symbols
        '©' => '(c)', '®' => '(r)','€' => 'euro'
    );
    
    // Make custom replacements
    $str = preg_replace(array_keys($options['replacements']), $options['replacements'], $str);
    
    // Transliterate characters to ASCII
    if ($options['transliterate']) {
        $str = str_replace(array_keys($char_map), $char_map, $str);
    }

    
    // Replace non-alphanumeric characters with our delimiter
    $str = preg_replace('/[^\p{L}\p{Nd}]+/u', $options['delimiter'], $str);
    
    // Remove duplicate delimiters
    $str = preg_replace('/(' . preg_quote($options['delimiter'], '/') . '){2,}/', '$1', $str);
    
    // Truncate slug to max. characters
    $str = mb_substr($str, 0, ($options['limit'] ? $options['limit'] : mb_strlen($str, 'UTF-8')), 'UTF-8');
    
    // Remove delimiter from ends
    $str = trim($str, $options['delimiter']);
    
    return $options['lowercase'] ? mb_strtolower($str, 'UTF-8').'.html' : $str.'.html';
    }
}

?>
Gewijzigd op 08/11/2017 00:09:00 door - Ariën -
 
Rob Doemaarwat

Rob Doemaarwat

08/11/2017 08:10:17
Quote Anchor link
In plaats van die waslijst met vervangingen gebruik ik:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
str_replace(["'",'"'],'',iconv('UTF-8','ASCII//TRANSLIT//IGNORE',$str));
Anders blijf je bezig met "uitzonderingen" toevoegen (maar dus niet zo'n mooie 'euro' vervanger ;-) ).

@Ariën: zoals je 'm hier geplakt hebt wordt het vraagteken ("?") door een aantal letters vervangen ("u" en "o", ook upper - maar effectief dus allemaal hoofdletter "O"). Is daar in de copy+paste/UTF8 iets mis gegaan?

De rest van m'n slugifier is ook een stuk simpeler:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$str = str_replace(["'",'"'],'',iconv('UTF-8','ASCII//TRANSLIT//IGNORE',$str));
return strtolower(trim(preg_replace('/\\W+/',$delimiter,$str),$delimiter));
Gewijzigd op 08/11/2017 08:10:56 door Rob Doemaarwat
 
- Ariën  -
Beheerder

- Ariën -

08/11/2017 08:48:56
Quote Anchor link
Hm....
Die vraagtekens zitten ook in mijn code. Dus ergens is het mis gegaan in het begin :X

Thanks voor de 'heads up'.
 
Furio Scripting

Furio Scripting

08/11/2017 11:01:39
Quote Anchor link
Bedankt voor alle uitgebreide antwoorden!

Ik maak helaas geen gebruik van een framework en heb de controller zelf geschreven.

Om het voor mezelf makkelijk te houden heb ik besloten om de input altijd op dezelfde manier te valideren door middel van deze functie:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

function seo_friendly_url($string){
    $string = str_replace(array('[\', \']'), '', $string);
    $string = preg_replace('/\[.*\]/U', '', $string);
    $string = preg_replace('/&(amp;)?#?[a-z0-9]+;/i', '-', $string);
    $string = htmlentities($string, ENT_COMPAT, 'utf-8');
    $string = preg_replace('/&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig|quot|rsquo);/i', '\\1', $string );
    $string = preg_replace(array('/[^a-z0-9]/i', '/[-]+/') , '-', $string);
    return strtolower(trim($string, '-'));
}


?>


Als men dus op iets zoekt met vreemde tekens zoals & of () dan zetten we dit om in dashes en vervangen we de dashes met spaties als we het in de database opslaan, zo kan men er nog steeds goed op zoeken.

Wellicht is het toch mooier om nog een tabel te maken in de database met de echte originele naam waar men op zocht en daar aan de seo-url koppelen welke we dan in de url weergeven maar op de pagina zelf de originele naam...?
Gewijzigd op 08/11/2017 11:06:32 door Furio Scripting
 
Thomas van den Heuvel

Thomas van den Heuvel

08/11/2017 16:45:24
Quote Anchor link
Ik vind het wel grappig dat iedereen meteen begint te rennen met het geven van (technische) oplossingen, of liever gezegd implementaties. Zoals je zelf al vermoedde is het handig om de originele naam op te slaan, deze heb je toch nodig op de detailpagina van de instelling? Hoe hier verder een URL van gebrouwen wordt is iets wat in afzondering behandeld kan worden.

De slug kan worden gegenereerd op grond van de oorspronkelijke naam. En misschien is het ook handig dat je op de slug-kolom een index zet voor snelle lookup, volgens mij kwam ik dit niet tegen in de bovenstaande verhalen.

De uitdaging zit hem niet zozeer in het vinden van een slug-functie maar meer hoe je deze URLs indeelt. Dit zou je ook op plaatsnaam kunnen doen? En wat als een restaurant meerdere filialen heeft? Dan wil je die toch niet appie, appie-1, appie-2 et cetera noemen? Oftewel, hoe je dit indeelt hangt helemaal af van het soort data wat je probeert te organiseren. Denk daar eerst eens over na, implementatie is toch echt de laatste stap.

De functie hierboven (seo_friendly_url) werkt overigens met blacklists (niet toegestane karakterreeksen). Dit lijkt mij geen handige strategie.

Wat ik wel een beetje opmaak uit het verhaal van @Furio is dat nog niet echt heel uitgebreid is nagedacht over welke verschillende pagina's deze site gaat bevatten? Als je hier nou eerst eens wat schetsen van maakt hoe je dit schematisch indeelt, dan volgen hier volgens mij vanzelf de specificaties uit van welke data je nodig hebt en hoe je dit dan vervolgens (EDIT database-technisch) organiseert rolt er ook redelijk vanzelfsprekend uit. Begin dus eens met een functioneel ontwerp, los van technische oplossingen. Uit welke pagina's bestaat de site, hoe navigeer en zoek je hier doorheen et cetera.
Gewijzigd op 08/11/2017 16:55:22 door Thomas van den Heuvel
 
Furio Scripting

Furio Scripting

09/11/2017 00:07:20
Quote Anchor link
Beste Thomas,

Bedankt voor je input! Ik heb redelijk goed nagedacht hoe het platform eruit moet komen te zien.

Het platform moet gebruikt worden om voor ieder bedrijf,restaurant,website etc beoordelingen te kunnen verzamelen.

Gebruiker kan zelf op iets zoeken zoals: "Restaurant de beren".
Gebruiker kan via de google places api zoeken op een "establishment" (restaurants,verenigingen etccc).

Nu kijk ik nadat een gebruiker wat invoert of dit exact overeenkomt in mijn database, zo niet zoek op iets waar het op kan lijken. Bij geen resultaat slaan we zijn zoekopdracht op in de bedrijven tabel (bedrijfsnaam, seo_url).

De urls heb ik zo in gedachte:

website.nl/beoordelingen/seo_url (als er geen website bekend is die gekoppeld is aan dit bedrijf).
website.nl/beoordelingen/seo_url/websiteurl (als er tevens een website gekoppeld is aan het bedrijf).

Nu krijg ik vanuit de google api tevens categorieen mee zoals restaurant,slager,bakker etc... Dit sla ik ook op maar is niet altijd bekend.

In de toekomst als ik genoeg bedrijven heb waar de categorie van bekend is zal de url bijv gaan worden: website.nl/beoordelingen/restaurant/seo_url

Maar voor nu wil ik enkel de bedrijfsnaam,website in de url weergeven zodat als men googled op bedrijfsnaam of website naam mijn platform naar boven komt.

Ik had nog nooit gehoord van een slug maar dit heeft mij wel doen besluiten om dit als seo_url op te slaan en daarmee te werken.

Voor mijn gevoel is het in theorie prima opgezet en ben nu in de fase waarin ik dit allemaal werkend wil krijgen, met jullie adviezen gaat mij dit prima lukken denk ik.

Daarvoor wil ik iedereen bedanken en mochten er nog opmerkingen zijn om mijn aanpak te verbeteren dan lees ik dit heel graag!
 
Thomas van den Heuvel

Thomas van den Heuvel

09/11/2017 01:45:01
Quote Anchor link
Als het een beoordelingssite is is de directory /beoordelingen wellicht overbodig. Net zoiets als /php op deze site, dat zit al min of meer besloten in de domeinnaam. Korter lijkt mij beter.

Het idee om een website URL op te nemen... weet niet of dat nou zo handig is? Dat wordt dan /mcdonalds/www.mcdonalds.nl? Beetje dubbelop niet? Als je op een detailpagina van een bedrijf/restaurant komt kun je toch ook wel wat adresgegevens weergeven, met een Google mapje enzo, en routes / adresgegevens naar de verschillende filialen? Wanneer die pagina's geindexeerd gaan worden door zoekmachines kom je op den duur ook wel uit op de detailpagina.

Mogelijk wil je dat (filiaal) weer wel opnemen in de URL: /mcdonals/den-bosch. Of keer je dit om: eerst de plaatsnaam en dan een bedrijf, ongeacht de categorie (dat is dan enkel een filter in je zoekfunctionaliteit en een eigenschap van het filiaal): /den-bosch/mcdonalds. Of je doet beide, zodat je van grof naar fijn kunt: /restaurant/den-bosch/mcdonalds, of je wilt dit toch in eerste instantie organiseren op plaats: /den-bosch/restaurant/mcdonalds. Elke subdirectory beantwoordt dan al een vraag: WAAR is dit gesitueerd, WAT is de categorie, WAT is de naam van de instelling.

Dit is makkelijk bedacht en alle opties zijn eigenlijk wel logisch maar dit heeft een enorme impact op de organisatie van je pagina's en de opbouw van de URL en alles eromheen. Daarom is het belangrijk dat je hier veel tijd aan besteed en hier echt goed over nadenkt.

Quote:
In de toekomst als ik genoeg bedrijven heb waar de categorie van bekend is zal de url bijv gaan worden: website.nl/beoordelingen/restaurant/seo_url

Maar dan ben je ook je eerdere indexering kwijt. Het lijkt mij beter om alle informatie meteen op de goede plek te zetten? Of richt je URLs zo in dat dit "niet uitmaakt" waar deze staan. Hier bedoel ik mee: kijk naar dit forum, in de URL is ook niet verwerkt welk subforum het betreft maar dit is iets wat de interne navigatie van je site verder regelt. Dit houdt ook in dat als je dan een keer ontevreden bent over de indeling of hier naar aanleiding van voortschrijdend inzicht veranderingen in aan wilt brengen dat je niet met handen en voeten gebonden bent door de gekozen vorm van de URL. Je hoeft dan enkel de (interne) navigatielaag aan te passen zonder de "fysieke locatie" (lees: de URL) aan te passen. Je zou dus kunnen volstaan met /<locatie>/<naam bedrijf> en dat de interne navigatie dit verder categoriseert in restaurants, bedrijven et cetera.

Misschien is dat dan nog een puntje: denk na over welke categorieën / rubrieken je wilt hebben op je site? Of liever gezegd: uit welke dimensies (of kenmerken) zijn de (subdirectories) opgebouwd en welke waarden kunnen deze hebben.

Ook zou je kunnen nadenken over hoe mensen de site gaan gebruiken. Misschien gebruikt iemand bijvoorbeeld deze site wel om een goed vegetarisch restaurant in Den Bosch te vinden?
Gewijzigd op 09/11/2017 01:56:20 door Thomas van den Heuvel
 
Ward van der Put
Moderator

Ward van der Put

09/11/2017 11:49:20
Quote Anchor link
Thomas van den Heuvel op 09/11/2017 01:45:01:
Quote:
In de toekomst als ik genoeg bedrijven heb waar de categorie van bekend is zal de url bijv gaan worden: website.nl/beoordelingen/restaurant/seo_url

Maar dan ben je ook je eerdere indexering kwijt. Het lijkt mij beter om alle informatie meteen op de goede plek te zetten?

Dat kan wel, maar je moet daarvoor dan een 301 Moved Permanently inbouwen. Dat betekent dus dat je een systeem met een geheugen nodig hebt dat ook verouderde URL's blijft ondersteunen.

Lastig van rubriceren via URL's met attributen is dat veel 'entiteiten' in meer dan één rubriek passen omdat ze meer dan één attribuut hebben. Denk bijvoorbeeld aan een visrestaurant dat ook een goed gevulde vegetarische menukaart heeft.
 
Thomas van den Heuvel

Thomas van den Heuvel

09/11/2017 17:25:44
Quote Anchor link
Ward van der Put op 09/11/2017 11:49:20:
Dat kan wel, maar je moet daarvoor dan een 301 Moved Permanently inbouwen. Dat betekent dus dat je een systeem met een geheugen nodig hebt dat ook verouderde URL's blijft ondersteunen.

Uiteraard kan dat, maar dat lijkt mij nogal omslachtig omdat je dan een hele hoop historie bij moet gaan houden. Het is makkelijk om iets moeilijk te maken en het is moeilijk om iets makkelijk te houden :).
 
Ward van der Put
Moderator

Ward van der Put

09/11/2017 17:33:26
Quote Anchor link
Verandering is de enige constante.
 
Thomas van den Heuvel

Thomas van den Heuvel

09/11/2017 17:40:17
Quote Anchor link
Reden te meer om neutrale URLs te verzinnen en enige verandering ergens anders af te handelen (navigatielaag in de applicatie) wat het inhoudelijk veranderen van genoemde URLs overbodig maakt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.