Tribe Support

In this group #Anahita Tribe members provide support and help each other out. All the posts must be public on this group. #support

Stories

Rastin Mehr

Rastin Mehr commented on the topic

Anahita Connect ... to Anahita ?

Thinking lately about using Anahita for a strictly "personal brand" -type project... curious, how much of a stretch would it be to configure the Connect app to accept Anahita-based sites ( multiple...

Read More

Thinking lately about using Anahita for a strictly "personal brand" -type project... curious, how much of a stretch would it be to configure the Connect app to accept Anahita-based sites ( multiple domain[s] specified separately ) as well as Facebook / Twitter / LinkedIn ?

Read Less
Rastin Mehr liked this
Any web or mobile app with OAuth2 will be able to authenticate their users if those users have an account on an Anahita installation. For start we could build a wordpress plugin for start.

Yes the outside apps requ... Read More
Any web or mobile app with OAuth2 will be able to authenticate their users if those users have an account on an Anahita installation. For start we could build a wordpress plugin for start.

Yes the outside apps require to build an extension to do OAuth with an Anahita installation. Read Less
Rastin Mehr

Rastin Mehr commented on the topic

Anahita Connect ... to Anahita ?

Thinking lately about using Anahita for a strictly "personal brand" -type project... curious, how much of a stretch would it be to configure the Connect app to accept Anahita-based sites ( multiple...

Read More

Thinking lately about using Anahita for a strictly "personal brand" -type project... curious, how much of a stretch would it be to configure the Connect app to accept Anahita-based sites ( multiple domain[s] specified separately ) as well as Facebook / Twitter / LinkedIn ?

Read Less
Rastin Mehr liked this
It is possible and it is on the roadmap. What we want and you are referring too is Anahita being both an OAuth provider and consumer. Once we have that in the system every app can authenticate their users if a user al... Read More
It is possible and it is on the roadmap. What we want and you are referring too is Anahita being both an OAuth provider and consumer. Once we have that in the system every app can authenticate their users if a user already has an account on an Anahita installation. In this scenario Anahita is the provider and the other app is the consumer. So mobile apps, wordpress, joomla, drupal, eCommerce apps, etc can have a login using your Anahita (or your network's name) account.

Also Anahita can use the same OAuth mechanism for authenticating her own users.

We will also need a com_tokens library component which generates tokens for different components such as OAuth and Invites with standard token management features.

This feature has no dependency on the current milestone which is Mobile First and single page app version of Anahita with improved RESTful API endpoints. It means someone with a good knowledge of Anahita and OAuth protocol can branch the code and implement it. If you are that person, please go ahead and make it happen. It would cross off one more feature from the roadmap.

Or if someone could fund the development ahead of schedule and agree that the code become part of Anahita codebase, that would work too. That's how we got a lot of new features implemented in Anahita. Read Less
Unkown Person liked this
Nick Swinford

Nick Swinford commented on the topic

Anahita Connect ... to Anahita ?

Thinking lately about using Anahita for a strictly "personal brand" -type project... curious, how much of a stretch would it be to configure the Connect app to accept Anahita-based sites ( multiple...

Read More

Thinking lately about using Anahita for a strictly "personal brand" -type project... curious, how much of a stretch would it be to configure the Connect app to accept Anahita-based sites ( multiple domain[s] specified separately ) as well as Facebook / Twitter / LinkedIn ?

Read Less
Rastin Mehr liked this
I don't think it'd be possible right now. Connect is based on OAuth and Anahita's login system doesn't support it yet. Though, I believe the long-term plan is to support OAuth for login.
Nick Swinford

Nick Swinford and Rastin Mehr commented on the topic

How can I display the login for in a template file?

I want to display the login form in a template file in a custom component, but every thing I've tried so far has given me an error. Currently, I have:

Loading ...

If you don't set the format, you get...

Read More

I want to display the login form in a template file in a custom component, but every thing I've tried so far has given me an error. Currently, I have:

Loading ...

If you don't set the format, you get an error about the user not being logged in. It currently returns a form template not found error.

Any ideas? Thanks.

Read Less
@Rastin, thanks for the clarification. That makes better sense.

Let me ask you this though. I create a forum component and I'd like to add a few features like polls and attachments. My plan has been to create media... Read More
@Rastin, thanks for the clarification. That makes better sense.

Let me ask you this though. I create a forum component and I'd like to add a few features like polls and attachments. My plan has been to create media apps for both of those and then find a way to integrate them into my forums component. I was thinking of using the composer as an example of what I'd want to do.

Any suggestions on how to do it? Read Less
Composer is just multiple forms shown in tabs. Each form is injected by a media app which creates a specific type of node. In the forum context you would want to be able to install apps within a forum and they'd injec... Read More
Composer is just multiple forms shown in tabs. Each form is injected by a media app which creates a specific type of node. In the forum context you would want to be able to install apps within a forum and they'd inject forms in the composer. A forum would display an aggregate list of different type of Topic nodes. Did that make sense? Read Less
Rastin Mehr

Rastin Mehr and Jeff Dean commented on the topic

How install in a Shared Web Host Server??

I have a reseller account on a shared web host.   I do NOT have root access and cannot program via a command line.  Is there a way to install everything as you would a Joomla install, example: inst...

Read More

I have a reseller account on a shared web host.   I do NOT have root access and cannot program via a command line.  Is there a way to install everything as you would a Joomla install, example: install.php?

Read Less
You could try, I'm not sure how reliable it would be for a production installation. Ideally you would want to use a dedicated server or instance configured for a production or production/staging installations.
Jeff Dean
Jeff Dean
June 07 2017 Permalink
Is there an install.php option via the web? Where can I obtain the most current BIRTH files? All I have now is anahita-1.5.12-r10145-birth but the most current version is 4.4 I believe.
If by install.php you mean a method to install Anahita via browser, no there isn't such a thing. The reason is that you need more heavy duty tools to manage a social network and http tools aren't reliable enough for t... Read More
If by install.php you mean a method to install Anahita via browser, no there isn't such a thing. The reason is that you need more heavy duty tools to manage a social network and http tools aren't reliable enough for this purpose. The stakes are much lower when you are managing a CMS and you don't have to deal with as many records.

The code is on Github https://github.com/anahitasocial/anahita with the Birth releases tagged there. When you install via the composer, you get the latest Birth release. The code in the master branch is subject to change, that is why we call it an Embryo. It is the code we use to power our website and experiment with new implementations and features. Read Less
I should have said more reliable tools rather than heavy duty. Command line is more reliable.
Jeff Dean

Jeff Dean started a topic

How install in a Shared Web Host Server??

I have a reseller account on a shared web host.   I do NOT have root access and cannot program via a command line.  Is there a way to install everything as you would a Joomla install, example: inst...

Read More

I have a reseller account on a shared web host.   I do NOT have root access and cannot program via a command line.  Is there a way to install everything as you would a Joomla install, example: install.php?

Read Less
Nick Swinford

Nick Swinford and Rastin Mehr commented on the topic

How can I display the login for in a template file?

I want to display the login form in a template file in a custom component, but every thing I've tried so far has given me an error. Currently, I have:

Loading ...

If you don't set the format, you get...

Read More

I want to display the login form in a template file in a custom component, but every thing I've tried so far has given me an error. Currently, I have:

Loading ...

If you don't set the format, you get an error about the user not being logged in. It currently returns a form template not found error.

Any ideas? Thanks.

Read Less
Isn't one of the big features of Anahita/Nooku Hierarchical MVC? That you can call any component from within another component?
That's not what the HMVC is about. HMVC is when a component can be extended by other components and form inheritance. Dispatching a controller within a view is possible, but not recommended, because it is quite resour... Read More
That's not what the HMVC is about. HMVC is when a component can be extended by other components and form inheritance. Dispatching a controller within a view is possible, but not recommended, because it is quite resource intensive and prone to errors. Read Less
Nick Swinford

Nick Swinford commented on the topic

How can I display the login for in a template file?

I want to display the login form in a template file in a custom component, but every thing I've tried so far has given me an error. Currently, I have:

Loading ...

If you don't set the format, you get...

Read More

I want to display the login form in a template file in a custom component, but every thing I've tried so far has given me an error. Currently, I have:

Loading ...

If you don't set the format, you get an error about the user not being logged in. It currently returns a form template not found error.

Any ideas? Thanks.

Read Less
I'm building an component where a user can either login or continue along as a guest. If that's not possible currently, I think I'll just provide links to the login page.
Rastin Mehr liked this
Rastin Mehr

Rastin Mehr commented on the topic

How can I display the login for in a template file?

I want to display the login form in a template file in a custom component, but every thing I've tried so far has given me an error. Currently, I have:

Loading ...

If you don't set the format, you get...

Read More

I want to display the login form in a template file in a custom component, but every thing I've tried so far has given me an error. Currently, I have:

Loading ...

If you don't set the format, you get an error about the user not being logged in. It currently returns a form template not found error.

Any ideas? Thanks.

Read Less
At this point perhaps just duplicate the form in your component. To make the form reusable we need to define it as a ui element. You are trying to access it via the session controller and that could really complicate ... Read More
At this point perhaps just duplicate the form in your component. To make the form reusable we need to define it as a ui element. You are trying to access it via the session controller and that could really complicate things.

Any reasons you are duplicating the login form? You can redirect guest users to the form and then return them back to where they were in your component once they're logged in. Read Less
Nick Swinford

Nick Swinford started a topic

How can I display the login for in a template file?

I want to display the login form in a template file in a custom component, but every thing I've tried so far has given me an error. Currently, I have:

Loading ...

If you don't set the format, you get...

Read More

I want to display the login form in a template file in a custom component, but every thing I've tried so far has given me an error. Currently, I have:

Loading ...

If you don't set the format, you get an error about the user not being logged in. It currently returns a form template not found error.

Any ideas? Thanks.

Read Less
Rastin Mehr

Rastin Mehr commented on the topic

Access for notes set to public on private groups

I have a group that's set so only followers can see the profile and only admins can add new users. For all the social apps, only followers can add or comment.

I've been looking at the database thoug...

Read More

I have a group that's set so only followers can see the profile and only admins can add new users. For all the social apps, only followers can add or comment.

I've been looking at the database though and I see that notes still have their access set as public. For all other medium nodes, their access is set to followers. I can't seem to figure why this is happening only for notes.

Which permission defines the access level of new nodes? Is there anyway to set the default access level for new notes for a group to followers?

Thanks.

Read Less
Rastin Mehr
Rastin Mehr
April 28 2017 Permalink
Another approach would be getting the ids of all the actors whose stories you want to follow and build a feed for them. That should work nicely with the current architecture of Anahita.
Nick Swinford

Nick Swinford and Rastin Mehr commented on the topic

Access for notes set to public on private groups

I have a group that's set so only followers can see the profile and only admins can add new users. For all the social apps, only followers can add or comment.

I've been looking at the database thoug...

Read More

I have a group that's set so only followers can see the profile and only admins can add new users. For all the social apps, only followers can add or comment.

I've been looking at the database though and I see that notes still have their access set as public. For all other medium nodes, their access is set to followers. I can't seem to figure why this is happening only for notes.

Which permission defines the access level of new nodes? Is there anyway to set the default access level for new notes for a group to followers?

Thanks.

Read Less
That's what's suppose to be happening and I believe that's what's intended here:

https://github.com/anahitasocial/anahita/blob/4732bfd1325fa6728e21f17e7fce5811d5f4fa55/src/site/components/com_medium/domains/behaviors/privatable.php#L54

But after some exhaustive debugging, I've found an odd behavior. When the @col(owner.id) and @col(owner.access) are processed through AnDomainQueryHelper::processColumn they are converted to subject.id and subject.access. Instead of checking the access on the story owner, it's checking access on the story subject.

I can't seem to figure out why this is happening and what's causing the issue is because after the third nested AnDomainQueryHelper::processColumn I loose my mind.

This wouldn't normally be an issue because the dashboards are filtered to either leaders or a singular owner, but my users have been clambering for a dashboard that shows stories from the entire site and not just their leaders. I've almost gotten everything figured out, but stories from notes on private groups are throwing a wrench into the works.

I noticed something odd while debugging this. This $result will never be returned. https://github.com/anahitasocial/anahita/blob/4732bfd1325fa6728e21f17e7fce5811d5f4fa55/src/libraries/anahita/domain/query/helper.php#L192 Read Less
Rastin Mehr
Rastin Mehr
April 26 2017 Permalink
I remember when we were implementing the feeds we were also asked to have a feed that showed everything and we realized not having at least one owner id was messing up the privacies.

We didn't implement it, becaus... Read More
I remember when we were implementing the feeds we were also asked to have a feed that showed everything and we realized not having at least one owner id was messing up the privacies.

We didn't implement it, because the feature was going against the Anahita design philosophy. Stories are coming from actors via the social graph. If you aren't following an actor, you aren't supposed to see the stories, because there isn't an edge connecting you to that actor. Building a feed that showed all the created stories was like submerging a network in water and short circuiting all the nodes.

I don't know the answer at this moment. This requires me to take the time and go over the code that we wrote quite some time ago and see what's going on. Read Less
Everything's working perfect, other than notes. The only issue with notes is that they don't have their access set. All other medium nodes have the access dropdown in their form and this sets the access. With notes th... Read More
Everything's working perfect, other than notes. The only issue with notes is that they don't have their access set. All other medium nodes have the access dropdown in their form and this sets the access. With notes tho, since we use them for private messages, they only have two access values, public or the ids of the users involved in a private messages.

I know this is a complicated issue. I don't expect an answer, just your insights are helpful enough. I'll figure something out. Thank you. Read Less
Rastin Mehr
Rastin Mehr
April 26 2017 Permalink
Have you tried overwriting the privatable behaviour in your component and changing the logic?
Rastin Mehr
Rastin Mehr
April 26 2017 Permalink
the private messages ones need to remain private anyways. The one's with public access are always public unless if the owner is private in which case the notes should stay private. Why don't you try overwriting the pr... Read More
the private messages ones need to remain private anyways. The one's with public access are always public unless if the owner is private in which case the notes should stay private. Why don't you try overwriting the privatable in your component and basically filter out all but public media nodes? Read Less
Rastin Mehr

Rastin Mehr commented on the topic

Access for notes set to public on private groups

I have a group that's set so only followers can see the profile and only admins can add new users. For all the social apps, only followers can add or comment.

I've been looking at the database thoug...

Read More

I have a group that's set so only followers can see the profile and only admins can add new users. For all the social apps, only followers can add or comment.

I've been looking at the database though and I see that notes still have their access set as public. For all other medium nodes, their access is set to followers. I can't seem to figure why this is happening only for notes.

Which permission defines the access level of new nodes? Is there anyway to set the default access level for new notes for a group to followers?

Thanks.

Read Less
Rastin Mehr
Rastin Mehr
April 25 2017 Permalink
I need to look in the code, but from what I remember, Anahita first checks with the Owner's privacy settings before checking the media nodes privacy setting.
Nick Swinford

Nick Swinford started a topic

Access for notes set to public on private groups

I have a group that's set so only followers can see the profile and only admins can add new users. For all the social apps, only followers can add or comment.

I've been looking at the database thoug...

Read More

I have a group that's set so only followers can see the profile and only admins can add new users. For all the social apps, only followers can add or comment.

I've been looking at the database though and I see that notes still have their access set as public. For all other medium nodes, their access is set to followers. I can't seem to figure why this is happening only for notes.

Which permission defines the access level of new nodes? Is there anyway to set the default access level for new notes for a group to followers?

Thanks.

Read Less
Rastin Mehr

Rastin Mehr shared a note

How's the upgrade to 4.3.5 going? Please report any issues or bugs so we can fix them.

Mohamed Abdi and Rastin Mehr commented on the topic

How do we modify the order of the results for a global search?

Hi Rastin Mehr, I wanted to know how the profiles that are result of a global search can be ranked by modifying the php class that handles the database query.  I want to be able to display the resu...

Read More

Hi Rastin Mehr, I wanted to know how the profiles that are result of a global search can be ranked by modifying the php class that handles the database query.  I want to be able to display the results of a string search in way that orders them by database attributes of said profile e.g. show the profiles of users in the same city first. 

Thanks Mo

Read Less
PS Can you tell us the path of that php file?
Rastin Mehr
Rastin Mehr
April 14 2017 Permalink
The search is handled by the com_search component. More than one classes are involved to make the search happen. The query class is here:

https://github.com/anahitasocial/anahita/blob/master/src/components/com_sear... Read More
The search is handled by the com_search component. More than one classes are involved to make the search happen. The query class is here:

https://github.com/anahitasocial/anahita/blob/master/src/components/com_search/domains/queries/node.php

and of course this is the controller https://github.com/anahitasocial/anahita/blob/master/src/components/com_search/controllers/search.php

I don't recommend touching any of those files. The com_search is functioning independently which means you can choose to build your own alternative com_search or com_searches and implement your own unique logic. Right now if you pass the nearby parameters the results will be filtered based on the viewer's obtained location. Isn't that enough for your purpose? Read Less

Mohamed Abdi started a topic

How do we modify the order of the results for a global search?

Hi Rastin Mehr, I wanted to know how the profiles that are result of a global search can be ranked by modifying the php class that handles the database query.  I want to be able to display the resu...

Read More

Hi Rastin Mehr, I wanted to know how the profiles that are result of a global search can be ranked by modifying the php class that handles the database query.  I want to be able to display the results of a string search in way that orders them by database attributes of said profile e.g. show the profiles of users in the same city first. 

Thanks Mo

Read Less

Hunter Wilkes and Rastin Mehr commented on the topic

How to make a custom app

As I said earlier, I would like to make gadget that will display suggestions on dashboard. I was wondering if anyone had any pointers they could give me on the process of making a custom app and ga...

Read More

As I said earlier, I would like to make gadget that will display suggestions on dashboard. I was wondering if anyone had any pointers they could give me on the process of making a custom app and gadget.

Thanks

Hunter

#HowTo #CustomApp #AppDevelopment

Read Less
Where is the query for $context->query in Todo's _actionBrowse($context) coming from? I don't see it in KCommandContext, KConfig, or KConfigInterface.
I'm still confused. To me, it doesn't look like $context-query should ever return something, since I don't see query as a member of KCommandContext or any of the classes it is inheriting from. I'm not incredibly famil... Read More
I'm still confused. To me, it doesn't look like $context->query should ever return something, since I don't see query as a member of KCommandContext or any of the classes it is inheriting from. I'm not incredibly familiar with php, but it seems like one of those classes should have a query member, if you're accessing it with the -> operator. Am I mistaken? Read Less
Rastin Mehr
Rastin Mehr
April 13 2017 Permalink
$context-query holds the query object which is an instance of the AnDomainQuery class https://github.com/anahitasocial/anahita/blob/master/src/libraries/anahita/domain/query/query.php You use it to construct a query a... Read More
$context->query holds the query object which is an instance of the AnDomainQuery class https://github.com/anahitasocial/anahita/blob/master/src/libraries/anahita/domain/query/query.php You use it to construct a query and you can add more arguments and conditions to it in the child controller classes.

What are you trying to do? Read Less
Nothing yet, I was just reading through the code and got confused at that part. I couldn't figure out where it was coming from, so I figured I'd just ask.
Rastin Mehr
Rastin Mehr
April 13 2017 Permalink
I think to make matters less confusing it would be better if you focus on what problem you are about to solve and use the API and the code examples in the apps to make it happen. At first you many not know what happen... Read More
I think to make matters less confusing it would be better if you focus on what problem you are about to solve and use the API and the code examples in the apps to make it happen. At first you many not know what happens underneath the app API and at the framework level and that's ok.

Anahita is the result of 4+ years of development and understanding the code at the framework level could take you months. You can however build apps without knowing the underlying magic within days. Gradually as you are developing more sophisticated apps, you can go to the deeper layers of the framework code and make sense of it over time.

You can always post your questions here. We have people here with little technical background who have successfully launched their projects with a few custom components and extensions. You can do that too. Read Less
Rastin Mehr

Rastin Mehr commented on the topic

How to make a custom app

As I said earlier, I would like to make gadget that will display suggestions on dashboard. I was wondering if anyone had any pointers they could give me on the process of making a custom app and ga...

Read More

As I said earlier, I would like to make gadget that will display suggestions on dashboard. I was wondering if anyone had any pointers they could give me on the process of making a custom app and gadget.

Thanks

Hunter

#HowTo #CustomApp #AppDevelopment

Read Less
Rastin Mehr
Rastin Mehr
April 12 2017 Permalink
Hunter, to start I recommend you to look into the Todos and Topics apps:

https://github.com/anahitasocial/anahita/tree/master/packages/Todos/src
https://github.com/anahitasocial/anahita/tree/master/packages/Topics/src

They are two examples of Media publishing apps for Anahita. Then look into the Groups App:
https://github.com/anahitasocial/anahita/tree/master/packages/Groups/src

which is a good example of actor app in Anahita.

As you can see Anahita follows MVC design patterns in it's components. Anahita's Model is repository and domain entities. Anahita also places a graph architecture on top of the mysql database which is a relational database. An MVC triad is called a component. A package may contain multiple components.

Anahita supports component inheritance. For example media publishing apps (Todos, Topics, et.) are extending the com_medium. Groups and People apps both extend the com_actors component.

Anahita controllers have the main actions called BREAD (Browse, Read, Edit, Add, and Delete). For example _actionBrowse displays a list of entities or _actionRead displays an individual entity. There are two entities that you will be used most the time. Nodes and Graphs, because social networks are a network of nodes connect with graphs and some of the nodes exchanges messages (stories) that's why we call it the Nodes-Graphs-Stories architecture.

This is an old article the describes Anahita's lingo

Anahita Lingo

Learn the Anahita lingo and terms

this article describes what an actor node is

The Actor Manifesto

Defining an Actor in Anahita

now for building the suggestions app (components used directly by users) you don't even need to implement BREAD. Only the BR would do. The most challenging part is implementing the algorithm where each request checks the viewer against the list of conditions that I posted for you earlier and comes up with 1 or multiple suggestions https://www.getanahita.com/topics/161217-suggest-friends#scroll=161353
I don't know how to implement it yet until I sit down and code it myself. It is one of the apps on our 4.* road map.

So start code reading and try building an example app of your own which does a BREAD operation on a node entity. For example Blogs or Books, etc. Code reading and practicing is the best way to learn a new framework. Read Less
Hunter Wilkes liked this

Hunter Wilkes started a topic

How to make a custom app

As I said earlier, I would like to make gadget that will display suggestions on dashboard. I was wondering if anyone had any pointers they could give me on the process of making a custom app and ga...

Read More

As I said earlier, I would like to make gadget that will display suggestions on dashboard. I was wondering if anyone had any pointers they could give me on the process of making a custom app and gadget.

Thanks

Hunter

#HowTo #CustomApp #AppDevelopment

Read Less

Photos View All

Articles View All

Topics View All

Powered by Anahita