Creating a social network using the Drupal engine. Platform for social network Modules for social network drupal 7

Hello everyone, it's been a while since I wrote. I was lazy, and nothing came to mind, but I didn’t give up on the blog. After such downtime, I’ll be back from the announcement recording, because I haven’t been sitting idle either.

After a month, or even two, I finally decided to announce to you my build of an online store based on Drupal Commerce. I started working on it around the end of January, and slowly did it, and now there is a version that installs flawlessly, deploys all the functionality and actually works. Those. even suitable for production.

Why did I build it and what were my goals?

In general, I’ve been thinking about building something on my own in Drupal for a very long time. Ever since I started learning Drupal, I thought that someday I would make my own assembly for the people, and now this moment has come.

Of course, the primary goals were to gain new experience with Drupal and try to do something really useful for the Russian Drupal community. Regarding the experience, I, of course, can assure you that I received enough of it. Making assemblies is really interesting and exciting. When creating the assembly, I studied Drupal much deeper than I knew before, about one and a half times, or even two times. To do the assembly, I had to study the Drupal database, manually look at what and how it is built and stored, and before I didn’t really work with the database because I was afraid of breaking something there. Now there is no more fear left. As for the usefulness of the assembly, this will be decided by the community itself and those people who are interested in it. If this happens to at least someone useful solution and help in anything, I will be very happy.

After, let’s say, a not very easy decision to make an assembly, because there is very little information about the development of the distro (I had to disassemble other assemblies and analyze), I began to think about what to do. The demand for online stores is obvious, but there is already Commerce Kickstart, Commerce Box, etc. It turns out to do what has already been done somehow stupidly and I began to analyze these two comrades.

I have been familiar with the first one since the release of drupal commerce itself, because it was its first demo and first distribution, and at the same time it is also official. But somehow it didn’t work out for me, no matter how much I tried, it never (I’m not lying) was installed completely without errors. He was constantly interrupted during some operation and everything went to hell. I, of course, didn’t like it and went to another brother - Commerce Box.

Commerce Box is made by our friends from the Ukrainian community. To be honest, I didn’t install it, I read reviews about it and watched 2 or even 3 reports from the developers themselves. They themselves say that it is now completely full, about 300 modules are installed (!), although from the demo site I don’t really understand why there are so many modules there. I am a fan of making a website with a minimum of modules. So, such a number of modules, plus the fact that now they are sawing it down coordinately and it is not known when they will finish it, and whether they will finish it at all, also somehow threw it out of my vision and I began to bend my stick.

Having studied the experience and errors of these assemblies, I began to make my own. First of all, I tried to make a lightweight assembly, very easy to install and understand, while maintaining all the flexibility for developers so that they could easily rework it to suit their needs and use it as a foundation. That is why all settings and global capabilities are configured at the time of installing the distribution, and then you can do whatever you want with them. But this is mostly the technical part, and I don’t really want to talk about it here, otherwise I’ll write a whole book here. Most likely, I will then write in a separate technical post how to make distros based on this and how I solved the problems, etc.

I also tried to maintain the spirit of standard Drupal. After installation, it is not much different from the usual standard Drupal, except for the main theme and customized merchant. Therefore, again, it maintains flexibility for developers, and also does not require serious learning for those who are already familiar with Drupal.

At the same time, I tried to make the entire process from installation to use as simple and fast as possible. In fact, it turns out this way: you install the assembly, fill the store, and earn money in production.

One of the main goals was that I tried to make the foundation in order to reduce the time for developers to create a store. After all, sometimes it can take up to a whole day to set up a merchant, and the settings, as a rule, are the same for everyone.

In general, everyone will highlight their own pros and cons. And it will be very nice if you tell me about them in the comments, and I will develop them further, taking into account your feedback.

Installation

The installation is absolutely no different from the standard one. You download the distribution, and at the time of installation a new item simply appears.

In general, the tasks facing the project are almost the same as, probably, facing any social network - exchange of opinions on this or that material, personal correspondence, evaluation of material, organization of events... and other goodies, which I don’t want to reveal yet . The most basic functions with their corresponding modules will be discussed below.

For each of these tasks, naturally, its own set of modules and assemblies are implemented; Well, even for solving one problem there are many different options for execution, each of which deserves attention.

At the same time, perhaps the material will serve as food for thought for those who are planning to create a similar narrow-profile social network.

Let us conditionally divide all the functionality into the following “beefsteaks”:

  • articles (personalities, reviews, project description)
  • audio and video (audio and video recordings, competition materials)
  • events (events, competitions, festivals, master classes, open classes)
  • usability (WYSIWYG, CNC, navigation, site guides)
  • I repeat - the division is conditional.

    2. Modules “Out of the Box” Drupal has a fairly impressive set of modules with which you can create websites that are quite impressive in their purpose. But we want to rule the Universe, create a project that is broader in purpose and functions, so we will need tools in the form of modules, of which there are quite a few on the official website .0. The Cap database suggests that to begin with, we kind of need the archive with Drupal itself. Let's go and download the latest version. At the time of writing this is 7.27. We save it in a separate folder that Cap created especially for me.

    Next we need at least two additional modules: Views and CCK. Views will be useful not only for us, but also for other modules that depend on it. Well, CCK will allow us to expand the functionality that the Field API provides. Actually, we download them from the Drupal website. And don't forget about Token!

    Personally, I preferred to enable the module Update manager for more convenient installation of modules and themes.
    NB: I haven’t had time to study Drush thoroughly yet, but I know that it’s a very useful thing. It remains to switch to it over time.

    1. Articles For most article materials, “boxed” modules are sufficient - the Field API copes with its responsibilities quite well. But when it comes to any biography, then FAPI functionality alone is not enough.

    What is the nodal point in the biography? That's right, dates. We go to the site and look at Date. Yeah, we have it, let's set it up.

    We need to make sure that, depending on how we fill out the “card” for a person, the page title is formed accordingly. Automatic Nodetitles will provide us with an invaluable service in this regard. Let's put it on.

    Additionally, we install the Image module, because it will be useful later wherever possible.

    Looking ahead, I will say that we will need a Node Reference and References, on which NR depends. I'll explain why later.

    2. Audio and video Here, after all, I settled on the Media module. Don't forget to install the dependencies: Chaos Tools and File Entity.

    If everything is more or less clear with video playback, then with audio it is somewhat more complicated. I accidentally came across an interesting library SoundManager 2. Convenient, stylish, CSS. Let's take it. Fortunately, there is a corresponding module for the library - SoundManager2. Let's put it on.
    Just in case, install the Libraries API - it will come in handy.

    We have a social network, so we want to be given the right to vote! Okay, let's go and install these modules: Voting API, Fivestar and Vote Up/Down.

    3. Events Let's move on. We need to make sure that users have the opportunity to attend/subscribe to any events. The Entity Registration module is well suited for this - we, as a rule, need to know who is going and how many participants there are. Let's put it on.

    Organizers may want to attach a link to the event page on the same Timepad, for example. Well, let's give them that opportunity. Let's go and install the Link module.

    4. Usability In order not to burden users with studying HTML tags (believe me, not all musicians have time for this), we will allow them to use some WYSIWYG editor. It doesn’t matter what it will be - TinyMCE or CKEditor, at least all at once. To keep them under control, we will install the Wysiwyg module and the CKEditor editor (my choice).

    To navigate the site as a whole, the user and main menus should be enough. Over time, at the theming stage, we will consider all this in more detail and make the necessary adjustments (and install additional modules, if necessary).

    It’s clear that when a user visits the site for the first time, it will probably not be so easy to navigate. A rather elegant solution to the problem was found - the jQuery plugin Joyride from ZURB. Let's download the library and at the same time install the corresponding module for it. At the same time, we install the dependency - Context , if it is not already installed.

    Basically, Drupal is directly responsible for CNC, so we won’t touch anything there. We will only modify the links depending on the user’s location - for this we install Pathauto and Transliteration so that the links look a little neater.

    Like any other self-respecting community, we would like to have a VKontakte group where we will post various news and project updates. But, as you yourself understand, it’s difficult to do this with pens, especially alone, so we’ll use another ready-made solution - VK CrossPoster. The module allows you to post messages on the wall of a user or group with the ability to attach a link to the announced page. The module has a couple of crutches, which we will analyze a little later, be patient.

    We want users to be able to communicate with each other, send messages to each other, and so on. No sooner said than done, go to the site and pick up the excellent Privatemsg module.

    Results So, what do we have in the bottom line?

    Total: 25 modules, excluding those built into the system, and 2 libraries. Perhaps I missed some dependencies, I will be glad if they remind me of them once again.

    This is a build for creating communities and social networks. Drupal Commons will free you and your community from the tyranny of expensive paid systems. The assembly is a ready-made solution for creating both closed (corporate) and open (accessible to everyone on the Internet) social networks. Drupal Commons gives:

    • freedom of communication, providing community members with easy and familiar ways to interact with each other
    • freedom from restrictions, allowing you to create a website based on your needs, not limited capabilities
    • freedom from license fees, allowing you to save half the budget that would have been spent on purchasing paid software and licenses

    The network is open and free, isn't it? software shouldn't it be the same?

    Collaborate Give community members the ability to create profiles, groups, and connections with colleagues. Drupal Commons allows members the freedom to build their connections, which is an integral part of a successful community. Simply joining the Drupal Commons community allows you to create connections between colleagues, regardless of whether they are employees of the same company and different companies, using tools such as groups, wikis, blogs, meeting schedules to encourage participation. Monitor ongoing events in your feeds and dashboard. A Revolution in Flexibility Drupal Commons is built on the free Drupal system, which has thousands of additional modules available, an open architecture, and a public API to meet your needs. Using Drupal Commons, you have unmatched flexibility in integrating and extending the build to suit your needs. Spend your money in the right place Drupal Commons is free, open source software that requires no payment to use. Free yourself from purchasing licenses and unnecessary expenses; focus on building community instead of these questions.

    Drupal Commons allows you to organize content into topic groups with a blog, discussions, documentation, wikis, and events. Users can create connections with each other (for example, by adding other users to their friends list). Registered users have access to a control panel that displays content from all groups the user is a member of. The site owner can easily and quickly change the design to connect appearance website with your organization. The assembly contains a full package of features that are commonly used when creating communities.

    Assembly capabilities

    Drupal Commons gives community members many different ways to interact, allows administrators to develop the community, and provides the site owner with flexible installation and configuration options. Drupal Commons uses additional Drupal modules, which are most often used when creating social networks and implement all the characteristics necessary for a site.

    Build a Community Organize a Community Ensure your community continues to grow by giving administrators the tools to effectively manage content and members. Integrate your community into your business Drupal Commons retains Drupal's unmatched capabilities for connecting your community site to your business. Use CRM systems, LDAP or marketing systems to integrate your users with your business. Open or Closed Participation Group-based access allows administrators to fully control member access to different parts of the site, configuring their participation in a variety of ways, from completely open to completely private. Open or closed access to content Regardless of the type of participation, Drupal Commons allows you to customize the visibility of groups and their content, which is created by community members. Collaborative group management Reduce the burden on site administrators by allowing group members to manage their groups independently. Site Analytics Track member activity using built-in analytics tools. View graphs showing new users, new groups, new documents and other indicators for a week, month or any other period of time. Improve your community Document types for every occasion Drupal Commons gives users many ways to express their thoughts:
    • Thematic groups. Reduce the time spent on community management and increase user participation in the community by giving users the ability to create groups of their own choosing. Or limit the ability to create groups to the site administrator. Choose for yourself.
    • Discussions. A group member can start a discussion, and other participants can express their opinions in the comments to the initial message. New comments can be added at the bottom or top of the discussion, branched with indents for each answer, or flat, as you prefer.
    • Blogs. Each group has its own blog, where members of this group can add their entries, share thoughts, voice new data or cover news.
    • Documentation. The ability to maintain documentation can be very useful for teams, and you can also attach files to documents.
    • Vicki. Group members can collaborate on content using text editor, which supports standard wiki markup allowing you to easily [[create links]] to other pages.
    • Polls. Find out the opinions of other participants by creating a poll. Monitor responses received publicly or limit access to responses received.
    • Events. Allow users to coordinate meetings, track other people's participation in those meetings, or announce events on the group's shared calendar. Events in the calendar of any group can be displayed in the general community calendar.
    • Ribbons. Using RSS feeds, group members can track events in their group, other groups and collect information from other sites related to issues discussed in the group.
    • Alerts. Community leaders can post messages about important changes or upcoming events, which are shown on community members' profiles.
    • Text editor. Users have access to an editor whose panel contains buttons with the most commonly used functions, such as font size, colors and other styles, which you can customize to suit your needs.
    Clear page addresses Page addresses can be made to convey the meaning of the content to which they lead, which makes them very convenient and understandable not only by other participants, but also by search engines. Member Profiles Profiles allow members to upload photos of themselves, create lists of their interests, and find others with the same interests. All this allows community members to find specialists they are interested in and contact them. Microblogging Not everything needs to be documentation or discussion. Communicate with members of your group using a convenient microblog directly on home page groups by adding one-sentence messages to it. Grow your community for real good search In conjunction with Acquia Network and Acquia Search, Drupal Commons provides the best results related to filtering and sorting. The site owner can independently manage the search results, giving more weight to those characteristics that he considers more important. Personalized control panel Each registered community member has his own control panel, which contains automatically generated lists of any content that is interesting to him, from latest updates in the content, to site-wide alerts. Bookmarks Save content you want to watch later or enjoy as bookmarks. Or you can try looking at documents that are popular on the site by looking at what other members have bookmarked. Tags Find other pages with similar topics using tags, and add tags to your documents when you create them so that others can find them more easily. Mail Alerts Keep track of information that interests you by setting mail alerts when comments are added to documents of interest or the documents themselves are changed. Yes, and this is Drupal Quality and Security The Drupal community consists of tens of thousands of developers from all over the planet who are constantly adding new features, improving existing ones, and increasing the reliability of Drupal. No commercial product or team can come close to the level of work that the Drupal community does to improve Drupal. LAMP Linux-Apache-MySQL-PHP - the lingua franca of the web. What Drupal is based on and what makes it so successful: LAMP is easy to learn and use for programmers and administrators. Multilingual Drupal is a leader among CMSs when it comes to internationalization and localization, both in document creation and management. Need support for right-to-left languages? No problem. Do you need to use UTF-8 encoding and support a large number of characters? No problem. Do you want to see all site elements in Russian? No problem. Extensibility Want the Drupal Commons build to do something for you, but it doesn't? In the Drupal world, we have a standard answer: “there is a module for that.” With 7,000+ add-on modules available on drupal.org to extend Drupal's capabilities, there's a good chance you'll be able to find the module you need or quickly modify an existing one to suit your needs. If not, then a flexible API is available to you. In addition, because It's open source software, you're not limited by the API. Scalability There are many sites on Drupal with 10 million page views per month, millions of visitors, hundreds of thousands of pages, and tens of thousands of registered members. Drupal will not limit the growth of your organization, your growth will depend only on your efforts. Choose Your Path Drupal Commons as a Service Acquia can provide you with Drupal Commons support on its servers. We will take care of all the details - infrastructure, server maintenance, scalability, creation backup copies and other necessary things, big and small, including support for site administrators. We also provide a JumpStart package, including basic site design settings to suit your needs and training for site and community administrators. You will be able to focus your efforts only on community development. Acquia Hosting and Support If you prefer to use your own server, Acquia is still at your disposal. Our team will help you determine the infrastructure architecture and configure the site. By subscribing to our services, we guarantee the quality of your website. Benefits for site users Improved interaction Users interact with members of their groups to search for ideas, knowledge and bring together scattered computers, mailboxes and information files. Close Collaboration The Drupal Commons build delivers the technologies users demand in the Web 2.0 age—event feeds, blogs, profiles, groups, and other features that contribute to your success. A Friendly Experience A community site will provide a place for your happy customers to become your most authentic and effective advocates. Wielding the Magic The Drupal Commons build creates an online experience that makes participants feel like magic. Watch for new products, new ideas and new connections emerging in your community. Benefits for site owners No licensing costs The Drupal Commons build is open source software, which means that you do not need to purchase a license to use it. Save your money, spend it on your community rather than on buying software. Full support Open source software does not mean a do-it-yourself approach. Acquia allows you to avoid becoming a technical expert and allows you to focus on growing your community rather than the technicalities of program management. Adaptability The Drupal Commons build can be quickly modified to suit your organization's needs in any way that Drupal can, meaning it is extremely flexible. Brand Consistency Site page templates can be easily modified to ensure that the site design is associated with your organization and consistent with the accepted design. Scalability and reliability Drupal can use modern web techniques such as Varnish or work with multiple databases, which allows you to serve a large number of pages and users at high speed and with high reliability.

    Association sites, communities, groups on the CMS Drupal platform.

    An overview of Drupal's capabilities when building social networks.
    Drupal is an Open Source CMS, the capabilities of which allow you to solve a number of problems simultaneously. The structure of this management system not only makes it possible to create all kinds of websites. “Nodes” (the basic component in Drupal) are of great importance. Thanks to the properties of nodes, the developer receives high flexibility in creating and customizing sites. Drupal makes it easy to manage content, users, and relationships between users. All this is very convenient when developing social networks. The success of the implementation depends on the system design and its implementation.

    The main component of any social community are users. It is important at the pre-project stage to correctly think through the possible actions for users and foresee how it is possible to manage their actions. No less important is the issue of content content and the appearance of the system.
    Drupal provides a large number of modules, functions and sections that allow you to configure your site as a social network. For example, the User Management section makes it possible to manage user profiles, their communities, differentiate access rights using a nickname, address Email or IP. The editing rights section allows you to control access to certain sections and resource contents. The User Management section allows you to create standard settings for members, and the Users section contains a list of all users.

    Core Drupal modules:

    • Aggregator: The Aggregator module makes it possible to aggregate information from news feeds and other resources and publish them.
    • Blog: The module allows you to create blogs.
    • Blog API: the module allows you to add content to the site using external programs.
    • Book: the module allows you to arrange pages in order in accordance with the hierarchy.
    • Color: the module allows users to change color scheme site.
    • Comment: the module allows you to create comments on published content and respond to comments from other participants.
    • Forum: the module allows you to create forums and organize discussions
    • Upload: The module allows community members to upload files.
    • Profile: The module allows users to publish information about themselves.
    • Tracker: the module makes it possible to track changes occurring on the site (new users, new information and comments).
    • OpenID: The module allows users to log into their profile using ID technology.

    The above standard modules, together with setting the necessary configuration, allow you to create a website with the functions necessary for operation, but to increase the capabilities of the product being created, it would be useful to use additional Drupal modules:

    • Token. The module itself does not differ in functionality; it is used to expand the capabilities of other modules.
    • Gravatar. The module allows participants to use an avatar.
    • Image resize filter. The module allows you to automatically make the picture smaller if you set it in the settings.
    • User Relationships. The module makes it possible to create connections between participants. It is difficult to imagine a modern social network without this function.
    • Activity. The module makes it possible to record user actions on the site, display changes in blocks or in feeds or RSS feeds.
    • Guestbook. The module makes it possible to create guest books for community members (analogous to VKontakte - wall), guest books for an Internet site.
    • Organic groups. The module allows you to create thematic communities.
    • Views. The module gives site designers the ability to flexibly and freely control the display of tables and content.
    • Notifications. The module allows you to create any subscription. Used in conjunction with the Messaging module gives excellent results. Allows you to subscribe to a specific type of material, group, community member, etc.
    • Messaging. The module allows you to deliver messages in a user-friendly way (e-mail, personal message, SMS, etc.)
    • Inactive User. The module allows you to manage inactive users in automatic mode. Possible actions: sending a notification to the user that he has not appeared on the site for a long time; profile blocking; deleting a user.
    • CAPTCHA. The module allows you to test users in order to identify and combat spambots.

    Listed here are only some of the modules that can improve the functionality of the resource.

    The main functionality of Drupal (publications, taxonomy, access distribution system), modularity, coupled with system scalability, and flexible configuration allow you to create social networks with high level difficulties.
    It is worth recalling that Drupal is an open source system source code, which allows you to edit source texts and use projects created on the Drupal platform for commercial purposes.
    CMS Drupal was originally developed to create communities, so it has all the capabilities for creating such social networks.

    Terms of service provision

    Implementation deadlines are assessed individually for each project.

    Region of service provision
    Cost of providing the service

    The exact cost of providing the service depends on the specifics of the specific project,
    please use one of the methods listed below to request a cost estimate for your project.

    Order a project

    If you want to get an accurate estimate of the cost and timing of the implementation of the service “creation of social networks on CMS Drupal” for your tasks, or if you want to get more detailed information regarding the service, fill out the application form below and our specialists will contact you.

    Social buttons can be useful for visitors to your website or blog. By clicking on these buttons, they will be able to save links to interesting materials on their social media accounts.

    Each of them provides the necessary buttons for installation on third-party sites.

    For “VKontakte” the code can be found.

    However, as you can see, each such button loads its own js file with a script. This slows down the page load time overall. In addition, using ready-made code, the webmaster will not be able to design social network buttons as he wishes - all the design is located outside the site.

    Below is an example of creating a block of three social buttons, when clicked, a new browser window opens (in the center of the screen), where the visitor is asked to confirm to create a bookmark. After publication, the window closes.

    We also integrate this entire block with the Drupal 7 theme.

    First, a little information:

    Http://vkontakte.ru/share.php?url=http://Siteaddress.ru/Pageaddress

    In this case, the content of the tag is taken as the title

    And also, some kind of image similar to the logo is taken. If we need to specify the picture exactly, then we need to insert the following tag into the page title (inside the container):

    2. Social button from Twitter - “tweet” allows you to publish a tweet with pre-prepared text and a link. The URL looks like this:

    Https://twitter.com/share?text="TextTwitt&url=http://SiteAddress.ru/PageAddress

    In this case, the tweet text must be URL-encoded, otherwise there may be errors. When you click on this link, you will be prompted to create a tweet containing text and a link.

    3. Social bookmarking Facebok is similar to VKontakte and looks like this:

    Http://www.facebook.com/sharer.php?u=http://addressSite.ru/page

    So, let's say we want to design a block of buttons something like this:

    At the same time, HTML markup is quite simple. All HTML consists of three links:

    Internet