Input filteren vraagje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior/senior Front-end developer

Functie Je maakt deel uit van een DevOps Scrum team en werkt samen met back-end developers, test-engineers, interaction designers en een projectmanager. Er zijn verschillende groepen Scrum teams. Een roadmap team is jouw ‘’thuisbasis’’, daar wordt gewerkt aan doorontwikkeling van bestaande omgevingen voor een aantal klanten. Hiernaast zijn er projectteams waar nieuwe omgevingen worden gebouwd, of grote complexe wijzigingen worden doorgevoerd op bestaande omgevingen. Je kunt (afhankelijk van jouw wensen en doelen) dus afwisselend werken in beide teams. Hiernaast participeer je in het Chapter Front-end development waar gezamenlijk kennis en ervaring wordt gedeeld. Als Front-end developer is het jouw doel

Bekijk vacature »

Java Developer

Functieomschrijving Are you an experienced Java Developer who wants to be challenged? Then this is your job! As a Java Developer, you are co-responsible for building custom applications within our extensive IT landscape. Development takes place on both the back-end side (Spring/JEE). Together with the IT department, you are responsible for the daily adjustments and expansions of our IT systems. In addition, you will work in small scrum teams using the Agile methodologies. Besides the realization of our in-house systems, you are responsible for the roll-out of the application (version) as well as the operational support after going live. Team

Bekijk vacature »

Java Developer

Dit ga je doen Als Java Developer ben je verantwoordelijk voor: Het ontwikkelen van nieuwe en bestaande webservices; Het uitbreiden van functionaliteiten binnen de producten- en dienstenportefeuille; Het werken aan gegevensuitwisseling met bijvoorbeeld SOAP; Testen van frameworks met gebruik van UNIT en Selenium. Hier ga je werken De organisatie waar je komt te werken is een semi-overheidsinstelling, gesitueerd in Utrecht en zorgt voor een goede samenwerking tussen verschillende overheidsinstanties. Het is een familiaire club die gaat voor kwaliteit en langdurige relaties. Zo zorgen zij ervoor dat er op grote schaal vertrouwelijke informatie tussen verschillende overheidsinstellingen wordt uitgewisseld. Hun werk zorgt

Bekijk vacature »

Lead developer

Functie Als lead developer wordt jij verantwoordelijk voor een van onze development teams. Samen met de Software Architect bewaak jij de kwaliteit en uitvoering van onze complexe vraagstukken. Daarnaast ben jij verantwoordelijk voor het inschatten, designen en ontwikkelen van middelgrote tot grote veranderingen in de software. Ook coördineer jij het proces rondom complexe technische vraagstukken. Verder bestaat jouw takenpakket uit het volgende: – Het aansturen van jouw development team; – Het begeleiden van Junior Software Engineers; – Het maken van technische analyses m.b.t. nieuwe aanvragen en het tijdsbestek inschatten voor de uitvoering hiervan; – Het uitvoeren van de ontwikkeling van

Bekijk vacature »

Medior/senior Front-end developer (Vue.js)

Functie Als Front-end developer ben je uiteindelijk overkoepelend aan de slag voor de 3 ontwikkelteams die ieder aan een specifiek product werken. In samenwerking met de UX-designer en de huidige Front-end developer zorg je voor gebruiksvriendelijke software. Lijkt het jou interessant om complexe problemen op te lossen en feautures naar een hoger niveau te tillen? En vind je het niet erg om oudere delen van de applicaties te refactoren i.c.m. het toevoegen van nieuwe functionaliteiten? Dan komen wij graag met je in contact. Eisen • HBO werk- en denkniveau (ze kijken niet naar papieren, maar naar denkniveau, motivatie en zelfredzaamheid)

Bekijk vacature »

Medior PHP Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte website die in eigen beheer zijn. In onze vestiging in Nederweert zitten onze development afdelingen en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé PHP/Back-end developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het bedenken van nieuwe functionaliteiten Het verbeteren van het

Bekijk vacature »

Belastingdienst - Freelance Applicatieontwikkelaar

Startdatum: 01.06.2023 Richttarief: €65,00 - €75,00 Duur van de opdracht: 6 maanden Uren per week: 36 Taal: Nederlands vereist! Gelieve in het Nederlands te solliciteren. Hybride. Kantoordagen in Utrecht, incidenteel in Apeldoorn Functieomschrijving: De afdeling IV – Generieke Voorzieningen – Interactie Online is onderdeel van de keten Interactie. De missie van de keten is: “het faciliteren van de interactie met alle burgers, bedrijven en hun vertegenwoordigers om hen in staat te stellen aan hun fiscale verplichtingen te voldoen en aanspraak te maken op hun rechten.” De afdeling Interactie Online heeft een belangrijke bijdrage binnen deze keten. Dit door het ontwikkelen

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 »

UX Writer (m/v/d)

UX Writer (m/v/d) Everything we do, starts with you. Together with you, we build the most human-centric fintech. We have the ambition to create the next. And - with Bertelsmann - a strong foundation to start from. Let’s make it new – for society and for yourself. Wij zijn op zoek naar een UX Writer (m/v/d) Fulltime - Op ons kantoor in Amsterdam of Heerenveen / deels vanuit huis Als UX Writer bij Riverty hou jij je bezig met onze strategie om daar te zijn waar onze gebruikers zijn en op de manier waarop zij ons nodig hebben, terwijl wij

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Voor een opdrachtgever in omgeving Zoetermeer zijn wij op zoek naar een ontwikkelaar ter versterking van het huidige developers team. Heb jij altijd al willen werken voor een bedrijf, dat veilige netwerkverbindingen levert, door middel van veilige oplossingen, die door middel van de nieuwste technologieën ontwikkelt zijn? Stop dan nu met zoeken! Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten

Bekijk vacature »

PHP Developer

Functie omschrijving Als PHP / Laravel developer zal je in een klein team terecht komen. Wij zijn op zoek naar een echte specialist, iemand die de balans weet te vinden tussen techniek en perfectie. In de aankomende jaren wilt dit bedrijf flink groeien en daarom zijn ze op zoek naar jou! Wat ga je doen? Je draagt bij aan het ontwikkelen en onderhouden van bestaande webapplicaties die boordevol functionaliteit zitten. Deze applicaties worden gebruikt door de organisatie zelf en ook door de klanten. Inmiddels wordt er gewerkt met Laravel 8 en zijn er diverse koppelingen naar externe leveranciers. Verder zal

Bekijk vacature »

Integratie expert - Java Developer

Dit ga je doen Nieuw koppelingen ontwerpen, ontwikkelen en implementeren; Je schakelt met de klanten om hen zo goed mogelijk van dienst te zijn. Strategisch kijken naar nieuwe mogelijkheden op bestaande of nieuwe koppelingen zo effectief mogelijk te realiseren; Je bestaande toolset afwegen tegen nieuwe mogelijkheden om integratiedoelen steeds effectiever en/of effcienter te bewerkstelligen; Bestaande software koppelingen beheren, dit zijn koppelingen met zowel interne als externe systemen; Overleg met zowel directe collega's als met stakeholders om nieuwe integratieplannen concreet te maken; Je kunt de junioren meenemen op sleeptouw. Hier ga je werken Onze klant is op zoek naar een ervaren

Bekijk vacature »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een bedrijf in de omgeving van Utrecht! Wil jij werken voor een internationaal bedrijf waar je legio mogelijkheden krijgt als Software Ontwikkelaar? Grijp nu je kans! Je kunt een uitdagende rol gaan vervullen als C#.NET Developer binnen een internationaal bedrijf dat gevestigd is in omgeving van Utrecht. Je zult gaan samenwerken met collega's die over de hele wereld verspreid zitten. Dit bedrijf is zeer vooruitstrevend en werkt met de nieuwste technieken. Als C#.NET Developer ga jij je bezig houden met het volgende: Je blijft op de hoogte van

Bekijk vacature »

.NET Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een .NET Developer! Wil jij werken voor een internationaal bedrijf waar je legio mogelijkheden krijgt als Software Ontwikkelaar? Grijp nu je kans en kijk snel of jouw vaardigheden aansluiten bij onderstaand profiel! Je kunt een uitdagende rol gaan vervullen als .NET Developer binnen een internationaal bedrijf dat gevestigd is in omgeving Bergen. Dit bedrijf is zeer vooruitstrevend en verricht betekenisvol werk. Binnen dit bedrijf wordt gewerkt aan de productie en ontwikkeling van medische middelen. Als .NET Developer ga jij je bezig houden met het volgende: Je wordt betrokken bij alle fasen van software

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij in één van onze vier scrumteams. Met 30 ontwikkelaars werk jij aan de doorontwikkeling van ons core product. Ook werkt jouw team aan maatwerkoplossingen op aanvraag van de klant en op projectbasis. Wij vinden het erg belangrijk dat onze ontwikkelaars met plezier naar werk gaan. Een deel hiervan ligt uiteraard bij jezelf, als jij ontwikkelen niet leuk vindt, ben jij bij ons echt aan het verkeerde adres. Jouw team bestaat namelijk uit een groep gepassioneerde vakidioten die dit werk doen omdat dit eerst een hobby was! Daarnaast wordt er intern rekening gehouden met

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

27/11/2024 05:16: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.