Back to top

Autore Topic: classe per amicizie - come si fa?  (Letto 963 volte)

Offline dazo

  • Esploratore
  • **
  • Post: 169
    • Mostra profilo
classe per amicizie - come si fa?
« il: 30 Set 2011, 13:44:12 »
Qualcuno mi da una mano ad impostare dal punto di vista logico un'ipotetico sistema di amicizie per community.


i punti di discussione sono
1. database
2. classi di gestione


punto di arrivo
un sistema per cui un utente può richiedere l'amicizia con un altro utente.  all'altro utente arriva la richiesta di amicizia, può accettarla o rifiutarla.
le amicizie si dovrebbero dividere in gruppi, e per ogni gruppo ci dovrebbero essere dei permessi.
Quindi ad esempio pippo ha 10 amici divisi in 2 gruppi. Al primo gruppo assegna i permessi per vedere le gallery al gruppo 2 e al gruppo public (tutti gli altri utenti) nega il permesso.


La mia idea di struttura è


per il database
tabella amici con
id
utente_1
utente_2
stato_richiesta_amicizia
collegamento_gruppo_di_appartenenza


tabella gruppo_di_appartenenza con
id
titolo
user_id


tabella gruppo_di_appertenenza_permessi
id
azione
permessi (che pensavo di gestire in json tipo #__assets)
parent_id? (un inutile complicazione?)


classe:
funzioni pubbliche:
constructor ($user_id)  - stanzi la classe e passi l'id dell'utente -
getFriends($group = "all") return array users
getFriendsRequest() return array users
denyFriends($user_id) -nega una richiesta di amicizia- return boolean
blackListUser($user_id) -inserisce un utente nella lista nera- return boolean
reactiveUser($user_id) -toglie un utente dalla lista nera - return boolean
getBlackList() return array users
sendFriendsAsk($user_id) -invia una richiesta ad un utente di amicizia- return boolean
acceptFriends($user_id) -accetta una richiesta di amicizia- return boolean
removeFriends($user_id) -rimuove un'amicizia - return boolean
getPermissionFriends($group) return array permissions
isFriend($user_id) return boolean
isInBlackList($user_id) return boolean
isInGroup($user_id, $group) return boolean


Per ora è tutto solamente teorico, diciamo che ho appena mangiato e non mi va di riprendere il lavoro, poi se qualcuno è interessato e ha voglia di darmi una mano penso che non sia troppo difficile da scrivere come classe... se vi state chiedendo a cosa serve per ora direi che è solo un esercizio di stile, poi fantasticandoci sopra si può pensare di integrarlo in un componente o plugin per joomla.

Web Agency Roma
Web designer Seo

 



Web Design Bolzano Kreatif