Input filteren vraagje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full Stack .NET Developer C# ASP.NET

Samengevat: Deze werkgever is gespecialiseerd in het op afstand bewaken en besturen van machines en processen. Ben jij een ervaren Full Stack .NET Developer? Heb je ervaring met C# en ASP.NET? Vaste baan: .Net Developer C# ASP.NET HBO €3.300 - €4.500 Deze werkgever is een snel groeiende onderneming gespecialiseerd in het op afstand bewaken en besturen van machines en processen, IoT (Internet of Things). Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Wil jij bij de top specialisten horen? Ben jij op zoek naar een

Bekijk vacature »

PHP Laravel developer

Functie omschrijving Weet jij alles van Laravel en krijg je energie van het ontwikkelen van software hiermee? Laat snel wat van je horen want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch. Jouw taken zullen bestaan uit: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Documentatie schrijven over applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein softwarebedrijf. Er werken ongeveer 15 medewerkers, verdeeld in meerdere teams, zoals back-end en front-end development, projectmanagement

Bekijk vacature »

Front-end developer (Medior/Senior)

Functie Het front-end team bestaat momenteel uit 4 collega’s en is hard aan het groeien! Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren. Je werkt in het front-end team samen met de back-end teams en product owners om te zorgen dat de applicaties een fijne gebruikerservaring opleveren. Jouw expertise zorgt ervoor dat de juiste keuzes gemaakt worden qua techniek en ontwerp, van back-end tot aan gebruiker. In samenspraak met je team bepalen jullie de beste keuze voor techniek. Ook is er altijd ruimte om nieuwe technieken te ontdekken. Eisen • Je hebt gedegen

Bekijk vacature »

Frontend Developer - Leeuwarden

Als Frontend Developer bouw jij mee aan het onderwijs van de toekomst! In een scrum team werken met jonge en enthousiaste collega’s, moderne technieken, ruimte voor eigen ontwikkeling en op een proactieve wijze kunnen meewerken aan innovatie binnen het onderwijs. Magister is het state-of-the-art softwarepakket dat scholen in het voortgezet onderwijs op alle fronten ontzorgt. Van leerlingenadministratie tot het ondersteunen van individuele leerlijnen, van toegang tot digitaal lesmateriaal tot het plannen van het lesrooster. In de Magister app bedient Magister ruim 2,5 miljoen gebruikers waarvan, dagelijks meer dan 600.000 unieke. Hiermee is Magister de absolute marktleider in onderwijsland. Wat vragen

Bekijk vacature »

Software Developer C# - Deventer

Software Developer C# – Deventer Bijdragen aan de toekomst van het onderwijs! Ben jij op zoek naar een dynamische omgeving waar vol enthousiasme wordt gewerkt aan software voor interactieve dashboard- en analysetoepassingen ter verbetering van het onderwijs? Dan zijn wij het bedrijf voor jou! TIG is een bedrijf met een informele en ondernemende werksfeer, waarbij goede ideeën snel leiden tot concrete acties. Wij zijn een software ontwikkelorganisatie en focussen ons op het ontwikkelen en implementeren van oplossingen voor het leveren van managementinformatie, datavisualisatie en analyses voor het onderwijs. Met onze dashboard- en analyseoplossingen zetten scholen gegevens om naar betekenisvolle informatie.

Bekijk vacature »

Medior .NET developer

Functie Jij gaat als Medior .NET ontwikkelaar aan de slag in ons scrumteam met 6 developers die gepassioneerd en actief bezig zijn om onze spelers kwalitatieve en mooie spelervaringen aan te bieden. Als medior .NET developer ga jij werken aan een technisch hoogwaardig platform welke bezoekerspieken verwerkt van tienduizenden tot honderdduizenden gebruikers per minuut! Ons scrumteam werkt in drie wekelijkse sprints en wij beginnen iedere ochtend met een stand-up. Jij werkt bij ons met C# .NET, .NET Core, React.JS, Xamarin, Azure, Docker en Kubernetes. Wij hechten enorm veel waarde aan het leveren van hoogwaardige en kwalitatieve code. Zodra jij de

Bekijk vacature »

Lead Webdeveloper

As Lead Web Developer at KUBUS you are responsible for the implementation design of requirements and the software architecture of the web application and services of BIMcollab. In your role as lead developer you will naturally search for the optimum between the required implementation time, the performance of the application and a fast go-to-market of features, in line with our automated test and release train. Together with the other senior developers in your team you monitor the architecture of the application and you advise the product owner about necessary refactoring to improve the maintainability of the platform. Our development team

Bekijk vacature »

Fullstack JavaScript developer (ReactJS, NodeJS, T

Functie Het team bestaat momenteel uit ruim 15 collega’s, waarvan ruim de helft in het ontwikkelteam werkzaam is. Er zijn gave plannen om het platform ook te gaan toepassen op bijv. vliegvelden, maar ook internationale groei zit in het verschiet en daarom zijn ze op zoek naar versterking. Als Fullstack JavaScript developer werk je nauw samen met 9 fullstack (Python en .NET) developers. Binnen het team ga jij je toespitsen op het creeren van de optimale toegankelijkheid en user experience. Om dit voor elkaar te krijgen zul je ontwerpen, programmeren, testen en implementeren. Het hele proces dus! Maar ook bijvoorbeeld

Bekijk vacature »

C# Developer

Functie omschrijving Voor een softwarebedrijf in de omgeving van Veghel zijn we op zoek naar een C# developer. Word jij blij van ontwikkelen in C# en .NET? Lees dan snel verder! Jouw werkzaamheden zullen er als volgt uit gaan zien: Door middel van ASP.NET, MVC Framework en C# ga je webshops, websites en webapplicaties ontwikkelen. Je zorgt voor de optimalisatie van bestaande software en de automatisering van bedrijfsprocessen. Op basis van de wensen van de klant ga je samen met je collega's ga je op zoek naar de juiste oplossingen en je gaat dit uitwerken tot een mooi eindproduct. Bedrijfsprofiel

Bekijk vacature »

Medior/senior Back-end developer gezocht!

Functie Vanwege de groei binnen het bedrijf zijn we op zoek naar versterking in het devlopmenttean. Als back-end developer bouw je aan de bedrijfssoftware die ons helpt bij de primaire processen. Een leuk (intern) project dus waarbij je de software continu doorontwikkeld! Je werkt in een klein team, we hebben dagelijks stand-ups en iedere twee weken een scrum-sessie, begeleid door onze Scrum Master. Hierin krijg je uitgebreid de kans om je ideeën te presenteren, en te overleggen met je mede-ontwikkelaars en de Product Owner. Binnen de ontwikkelteams gebruiken we Trello, Gitlab, Jiira, Confluence en Boockstack. Hiernaast werken ze met de

Bekijk vacature »

PHP developer

Functie omschrijving Voor een klein bedrijf in de buurt van Nieuwegein zijn wij per direct op zoek naar een talentvolle PHP developer. Er wordt veel ruimte geboden voor eigen initiateven, waardoor je een mooie stempel kan drukken op jouw eigen werkzaamheden (zowel operationeel als strategisch). Het bedrijf heeft middels externe programmeurs een multimedia platform ontwikkeld, maar willen geleidelijk de ontwikkeling naar binnen halen. Om die reden zoeken zij een communicatieve interne PHP developer die graag meebouwt aan het succesvolle product. Je gaat de volgende werkzaamheden verrichten: Platform beheren en programmeren (PHP, MySQL, JQuery, Javascript, XML & HTML); Communicatie en aansturing

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 »

Teamlead PHP Developer

Functieomschrijving Voor een gewaardeerde werkgever in de buurt van Middelburg zijn wij op zoek naar een gemotiveerde teamlead PHP developer met affiniteit met Symfony/Laravel. Een enthousiast persoon die het ontwikkelteam komt versterken met het aanpakken van uitdagende projecten. Ben jij op zoek naar een uitdaging waar je de tijd en ruimte krijgt jezelf te ontwikkelen en je eigen IT-team aan te sturen? Lees dan snel verder! Die ga je doen: Bijdragen aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de PHP based applicaties; Ontwikkeling en beheer van de serviceportal in Symfony en de webshops in de tweede versie van

Bekijk vacature »

Software Developer

Functie omschrijving Heb jij affiniteit met ICT en een WO diploma in de pocket? Dan ben je hier aan het juiste adres. Voor een opdrachtgever in Amsterdam zijn wij op zoek naar kandidaten die (enige) ervaring hebben met Java, Javascript, C of C++. Je zal door middel van trainingen worden opgeleid tot een volwaardige Software Developer. Er wordt tijdens de training natuurlijk veel aandacht besteedt aan de vaktechnische aspecten, maar er gaat ook veel aandacht uit naar jouw persoonlijke ontwikkeling. Bedrijfsprofiel Bij deze opdrachtgever in de omgeving van Amsterdam zoeken ze meerdere enthousiaste kandidaten die hun carrière willen starten met

Bekijk vacature »

Webshop beheerder / Fullstack developer

Functie omschrijving Wij zijn op zoek naar een full stack developer die zich bezig gaat 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. 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? Lees dan snel verder! Werkzaamheden Onderhouden van de webshop (denk aan het bijhouden van de voorraad); Nieuwe functies toevoegen aan de product configurator

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

05/05/2024 12:32:53
 
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.