Displaying civicrm contact's fields in drupal 7 registration and profile edit - drupal-7

I am using Drupal 7 with civicrm 4.5. I want to display the civi contact fields in drupal registration and profile forms. I used the civicrm profile to display the first name and last name fields. But i don't know how to integrate the address, phone and email fields same as civi in drupal(For ex for address with [b]Another address[/b] and [b]Location type[/b] selection boxes street address,Add link,Delete etc). Using civicrm profile i could be able to configure Home street address etc as a individual ones. But i want as a grouped one how civi is displaying. Is there any module available for this? Any help is highly appreciated. Thanks in advance

For better or worse, CiviCRM profiles don't have those features for picking location type or adding indefinite numbers of addresses, etc. They respect location type, so you could have home street address, city, state, zip, etc. fields and work street address, city, state, zip, etc., and those will hang together as two addresses.
In front-facing forms, there is a way to do this using the Webform CiviCRM Integration module. You can set up several sets of address fields and let people pick the location type for each. You might link to a Webform page from the user form to invite people to fill out more details.

An alternative approach, using native CiviCRM profiles, would be to create a CiviCRM profile for each location, including the address fields for each location, and expose all them to the Drupal registration and/or account view/edit screens. For example you could have one profile on the registration screen, and have all the others only on the account view/edit screens, thereby enabling your users, once signed up and logged in, to develop their profile.
A tad clunky perhapsjust , but it would work.

Related

How to set different access levels for dashboard data in Google Data Studio

Lets assume I am creating a google DataStudio dashboard for a sales data which is having sales records for countries.
For each country has a country manager and they are assign to single supervisor in Head Office.
My question is:
Can we develop a Google DataStudio DashBoard which is capable to restrict data only relevant to a particular country if it is viewing by a country manager and to show whole data relevant to all countries if it is viewing by the supervisor of country managers?
There is no easy solution to have a page-level permission, but there are three options.
Break up the report in to separate ones (this is the most simple solution, although it creates multiple reports)
Use Viewer's credentials instead of Owners’ credential (You must grand viewers access to your gbq data source, which is not ideal in most cases)
Filter by email (This works for small number of users, but quite cumbersome for multiple users)
For the option one, you can break up one "master report" that has all pages, and creating multiple sub-reports by using URL embedding by page
In your Data Source, create a column called "e-mail" and populate it with the e-mail address of the manager that you want to be able to see that particular line.
After you do this, use the "Filter by email" option in the Data Source:
And select the field you just created:
And there you are. Your data will only be searchable by the person you selected, based on the email they are using to access the dashboard.
If you want more than one person to be able to see a particular data, you'll need to duplicate the respective lines in the Data Source.

Using google calendar to manage N amount of group calendars

I'm creating an application where there will be a lot of groups in. Every group should have an own calendar.
I was thinking of using google calendar API for a specified admin user that creates a google-calendar/google-calendar-group for all the groups in my application.
Now I'm wondering which way should be the best way to do this?
Create only one calendar but many groups to the calendar
depending on the number of groups I have in the application.
Create a new calendar for every group that I have in my application
Something else?
Is this even possible?
Before you begin, if you don’t want to share the calendar with everyone in your organization, create a group that contains only the people you want to share with.
You can create an organization and sign in to G Suite administrator. Then create multiple groups using either the Groups control in the Admin console, or the Google Groups for Business service.
Here's the steps to create and share a group calendar from G Suite Admin Help:
Sign in with your G Suite administrator account and open Google Calendar.
On the left, above My Calendars, click Add and then New calendar.
Add the name of the calendar (for example, All Hands Meetings), a description, and time zone.
Click Create Calendar.
On the left, click the name of your new calendar.
If you want to share the calendar with everyone in your organization, under Access permissions:
Check the Make available for your domain box.
In the Permissions box, click the Down arrow and choose an option. For details, see the permission
settings.
If you want to share the calendar with a specific group of people, under Share with specific people:
Click Add People.
Add the email address of the group you want to share the calendar with. You can also add individual email addresses.
In the Permissions box, click the Down arrow and choose an option. For details, see the permission
settings.
Click Send.
Important: The settings under Access permissions override the Share with specific people settings.
Users you shared the calendar with get an email message letting them know about the calendar. The calendar is automatically added to their Other calendars list.

How to access Google Glass contact photos when creating new timeline cards?

I am building GlassWare that will add a timeline card to indicate one of a user's friends has performed some action. On the card, I would like to show an image of the friend.
If the Glass user has already added that friend as a Glass Contact, then the device may already have the friend's image. I have the friend's email and am trying to get at that image like so:
Call Contacts/List to get the contacts
Cycle through that list looking for one with a matching email address
Grab the imageUrl from the contact and use it in the html for my new timeline card
I'm facing 2 problems with this approach:
The Contacts/List is coming back empty.
The Contact class doesn't appear to have an email property
Is what I'm trying to do even possible? If so, is there a better way to do this?
What you are trying to do is not possible through Glass. The Contacts that you see are only those that your Glassware has created - your Glassware does not have access to the contacts created by other Glassware. This makes sense from a privacy perspective - a Glass Owner does not necessarily want you to have unrestricted access to who their contacts may be.
You may wish to look into using the Google+ Sign In, which can give you access to those people that a user has specifically given you access to. When the user approves your Glassware, they also approve which people your app can find out about. From here, you can use some of that user's information, including their profile picture.

Database scheme for user logging with different accounts

currently I need to provide web site logging for different social accounts (facebook, google, twitter and so on).
I know that stackoverflow has same system and I wonder if there is stackoverflow database model in public access. So I can find right way to store user data in my db.
Currently I have next problems.
So, I have my table for users:
UserID
UserName
RegistrationDate
Email
Rating
For users who create account with web site form I use next additional info:
Password
FirstName
LastName
Avatar
I stock in question how to store data for users who login with social networks and what should I store.
It seems that I dont need to store facebook name, surname and so on. I thought about getting it with js on pages where I need it.
Also I am thinking how to provide user with adding facebook, twitter references and so on for his profile.
P.S.
I am using DotNetOpenAuth for user authentication via social networks. Working with asp.net MVC 3.
About functionality on my web site:
just adding articles and rating for user.
For comments I use https://disqus.com/.
Ideally, you should have two tables. One for Users and one for Identities. In the Users table, you store things like your application user id, name, emails, etc. In the Identities table, you link back to the person in the User's table, but have a 'network' field that says which network the Identities row is for (e.g. Facebook, Google, Twitter, etc).
The Identities table can store the User ID and details specific to that platform, e.g. User_ID for Facebook, Twitter username, etc. The user will have one entry in the Users table, but can have many entries in the Identities table, depending on how many networks the user has connected with.

Profile fields in Advanced User Management module - Drupal 7

I am developing a site in drupal 7.14, and I have installed the Advanced User Management module of version 7.x-3.0-alpha2. With this module I was able to filter out the users by username, email id etc. But in additional to these features, I need to add the profile fields (specifically, 'last name') and filter out the users according to the last name.
Anyone knows how to implement profile fields to this module? Any solution for this will be greatly appreciated..
In Drupal 7, users are entities, so you don't need a separate module for user management or profile fields.
Simply add fields to users similar to how you'd add them to content types, then build a custom management dashboard with views. You can expose the filters you want (by the fields you added to users).

Resources