By Mist on Saturday, 28 January 2017
Posted in General
Replies 12
Likes 0
Views 188
Votes 0
Hi Mark and the team.

First of all i want to start with a huge "THANK YOU" for all these years i've been a StackIdeas customer leveraging your software to build an MVP and validate our idea.

You guys are the most awesome team in the Joomla world delivering great products and providing unmatched level of support (trust me, i worked with a lot of paid extensions so far) and i really stand by this statement.

You helped me countless times giving me solutions for the problems i had even if sometimes these were out of the scope of support. This showed me that you have a desire to help people achieving their goals using your products, not only to sell subscriptions.

We started to grow and we noticed that we need stuff to be built our own way. We need our own codebase, we need to control code decision thus providing stability for long-term.

Long story short, we are building our own platform using Laravel Framework. This doesn't mean i don't love you ! It's just about time to move forward.

I need a little bit of help migrating some existing data from EasySocial into our custom platform.

1. User Avatars

How the user avatars are stored in the DB and how i can retrieve the avatar files in order to migrate them ?
I know that EasySocial have few avatar sizes available, we want to migrate the biggest size (i think it's the "large" size)

Can you help me with a query example for a particular joomla user id ?

2. User Followers

Where and how EasySocial store the follower's for each user and how can i retrieve them?
Can you help me with a query example for this aswell for a particular joomla user id ?

3. Profile Data

I noticed that the profile data (profile custom fields) are stored in the table "_social_fields_data"
There is a "datakey" column that acts as an identifier for the data type
So, for the user's city i have the datakey "city" but some of the datakeys are empty (ex: for the user's website or user's "about me" field) and i need to extract data for those aswell.

Can you help me with a query example here aswell ?

4. Comments

I used EasySocial comments inside Joomla articles and we need to migrate all these comments aswell.
I noticed that comments are store in the _social_comment table where "uid" is the joomla article ID and "created_by" is the user id (comment author).

Is this correct ? There are any other things to consider regarding comments migration ?

Thanks so much in advance and thank you, really thank you for all these years !
Joomla have a framework https://framework.joomla.org/ that you can use similar like Laravell with integrated dev tools and liberaries Symfony etc

Why you go for Laravell framework instead of using Joomla CMS/EB/ES etc explain? You should mabybe hire Mbaker for make a custom built solution for you

cheers!
·
Saturday, 28 January 2017 18:41
·
0 Likes
·
0 Votes
·
0 Comments
·
Hi Stan,
There are few major reasons behind my decision to step away from the open-source CMS idea (being Joomla,Drupal,Wordpress etc)

1. Minimalism

- Develop only the things you need and the way you want them
- Keep the app data structured the way you want it
- You develop the frontend on your own terms and you don't have to load tons of stuff provided by extensions, stuff that you can't get rid of. This translates into speed.
- etc.

2. Control

- You decide WHAT features are added and WHEN they are added,
- You control the updates strategy, when the app updates are released, what you update, how and when
- You control the entire inner parts and the architecture of the application
- You control all the decisions regarding everything, you don't have to rely on CMS developers or third-party plugin developers to make assumptions on your behalf.
- You develop features related to each other, features that YOU control and you don't have to rely on multiple parts provided by others , third-parties that can make their own decisions you don't control.
- When you start pouring money into custom development and a third-party extension developer or maybe the CMS devs themselves makes decisions that affects your custom stuff, you lose: time, money, users.

3. Long-term Stability

- I am tired of the Joomla update loop-hole (and this applies any open-source CMS out there) and extensions related updating, overriding, things getting sometime messed-up and so on.
- When you build your own stuff you have the long-term stability because YOU control it.

I can go on longer with this ...

The point is that BUILDING things is very different than INTEGRATING things to achieve a product or service.
Sometimes you can integrate things to obtain an MVP (minimum viable product) and to test the market but sooner or later you have to move forward.
Other times integrating things (CMS'es, extensions, plugins etc.) makes total sense.

You can go on forever with debates on what framework is the best (Laravel,Yii, CodeIgniter, Joomla Framework etc.) and i think there is no "best" answer for this as there are many factors involved when choosing one.
·
Saturday, 28 January 2017 19:21
·
0 Likes
·
0 Votes
·
0 Comments
·
Hello Mist,

Firstly, congratulations and we are extremely happy for you Although we are sad because you are leaving Joomla's platform, I must advise you to re-think about your strategy. Because I do think using the platform of Joomla makes more sense not only for security purposes but your costings as well.

But I guess if you are comfortable with your decision, then my advise is to go for it!


1. User Avatars

How the user avatars are stored in the DB and how i can retrieve the avatar files in order to migrate them ?
I know that EasySocial have few avatar sizes available, we want to migrate the biggest size (i think it's the "large" size)

Can you help me with a query example for a particular joomla user id ?

Take a look at the table #__social_avatars and the columns in that table should be pretty descriptive enough for you


2. User Followers

Where and how EasySocial store the follower's for each user and how can i retrieve them?
Can you help me with a query example for this aswell for a particular joomla user id ?


Take a look at the table #__social_subscriptions and you should be able to find the necessary data that you need


3. Profile Data

I noticed that the profile data (profile custom fields) are stored in the table "_social_fields_data"
There is a "datakey" column that acts as an identifier for the data type
So, for the user's city i have the datakey "city" but some of the datakeys are empty (ex: for the user's website or user's "about me" field) and i need to extract data for those aswell.

Can you help me with a query example here aswell ?


Not every field has a datakey unless you explicitly configured the field to use the key that you want. You can however remap the field by linking the field_id column with the column from #__social_fields.`id`


4. Comments

I used EasySocial comments inside Joomla articles and we need to migrate all these comments aswell.
I noticed that comments are store in the _social_comment table where "uid" is the joomla article ID and "created_by" is the user id (comment author).

Is this correct ? There are any other things to consider regarding comments migration ?

Yep, this is correct.
·
Saturday, 28 January 2017 23:38
·
0 Likes
·
0 Votes
·
0 Comments
·
Thanks for replying Mark.

So for the avatars there is the "_social_avatars" table which store the avatars filenames for different sizes but there is no path to file. I noticed though there is also a "photo_id" column in this table

This "photo_id" column is also present in the "_social_photos_meta" table where for the group "path" an property "large" you can actualy get the full path to the avatar file.

Is this correct ? Am i getting the whole picture right ?

So in the end, we have

_social_avatars -> where we get the "photo_id" for the avatar for each user
_social_photos_meta -> where with the "photo_id", group "path" and property "large" we get the actually path to file for the large avatar image.

Am i thinking this right ? ... or do we need to use the _social_avatars table in some other way to actually obtain the avatar image file ?

Also in the "_social_subscriptions" table how the column relation can be translated ?

"uid" is following "user_id" ?
I am trying to figure out who is the follower and who is the user being followed.

THANKS A LOT MARK !
·
Sunday, 29 January 2017 00:56
·
0 Likes
·
0 Votes
·
0 Comments
·
Yep, that is correct. That is the linkage between #__social_avatars, and #__social_photos_meta.

As for the #__social_subscriptions, I believe currently there is only 1 type of subscription and yes the uid here represents the object id. In this case, if the type is user.user, you can assume that they are user id.
·
Sunday, 29 January 2017 16:11
·
0 Likes
·
0 Votes
·
0 Comments
·
View Full Post