DEV Community

Discussion on: What is your website?

Collapse
 
blackcat_dev profile image
Sasha Blagojevic • Edited

My website is sasablagojevic.com. It's a custom built CMS on top of Laravel 5.5.

My biggest challenge was building the API for a Drag and Drop Category Tree builder that has infinite nesting. The recursions blew my brain and scattered it all over the wall a few times.

I deploy it with PHPStrom, just SFTP to server...yea I know it's so nineties.

Collapse
 
mnivoliez profile image
mnivoliez

I really like the tree thing for you experience, how did you do it?

Collapse
 
blackcat_dev profile image
Sasha Blagojevic

Well this is how it looks in my panel. I used the jQuery Nestable for the drag and drop list.

Category tree dash

As far as the logic goes, I have a categories table, that has a category_id foreign key on itself that is nullable.

If it is null it's a "root" category, if it has a value, it is a child category (subcategory). I also have a level column which represents the depth of the child category.

Additionally I added a sort column, which allows me to sort them easier. All of the categories including the child categories are sorted in chronological order, so instead of doing complex queries every time my API is hit for the category tree, I do them after CUD operations and just update the sort column which is a simple INT.

When I build the tree in the code, I start from the root and attach the "branches" with a recursive function.

That's the general gist, thanks for asking!

Thread Thread
 
mnivoliez profile image
mnivoliez

Neat!

Thread Thread
 
blackcat_dev profile image
Sasha Blagojevic

Well thank you!