Plugin for joomla 3 linking. Joomla linking. Automatic linking in Joomla

Good day, dear readers of the blog site. First, let’s look at the term “internal linking” itself. Typically, internal linking refers to a system of links that connect the pages of a site into a single whole. The more sophisticated and easy to navigate this system, the better. Almost any website already has a large number of internal links by default. But they are still not enough for complete and convenient navigation. The internal linking system needs to be improved. Today we will talk about how to do this on a Joomla website.

1. mod_related_items (Materials - Related materials). This is our first module. Its main task is to display articles that are similar in meaning. This module does not need to be downloaded from anywhere. It is already present in the engine by default. You just need to turn it on and select the correct location for the block with links. Since the module shows links to similar articles, it is better to place it after the main content area (before the comments). After all, this is where users’ attention is drawn immediately after reading the note. The mod_related_items operating principle is based on reading keywords from the corresponding field. You will have to fill in the keywords yourself for each article (this is the only disadvantage of the module). As a result, you have an additional block with links to similar materials. Such a block will be located on each page with an article. Using mod_related_items helps improve navigation and behavior.

2. mod_breadcrumbs (Site Navigator). This is a module known to many called “Breadcrumbs”. The main task is to show the full path to the page on your website that the user is currently on. Why is this necessary? First of all, so that a person can quickly navigate the contents of your resource, understand where exactly (on which page, in which section or category) he is now. Again, site navigation and usability are improved, and the number of internal links increases. mod_breadcrumbs is already installed in the engine, you just need to activate it and select the desired location to display the navigation path. Typically the path appears at the top of the page, just below the header. Be careful when searching for a module in the list - sometimes the name “Navigator” is used instead of the standard name (but it can later be changed in the settings). There aren't very many settings there. They are quite easy to understand.

3. mod_latestnews (Materials - Latest news). The name of this module can also be translated into Russian as “Last Notes”. The main task of mod_latestnews is to display a block of links to the latest articles added to the site. Why is this needed? Firstly, the latest materials will always attract additional attention from visitors. Secondly, fresh articles will be indexed faster due to the presence of links to them. Thirdly, site navigation will improve and the total number of internal links will increase. The Latest Articles module is also installed on Joomla by default. You don't have to download or install anything additional. Just enable it in the settings and select the correct location (usually a block with links to the latest notes is placed in the sidebar and shown on all pages of the site). Let's briefly go through the settings. By the way, there are very few of them here. You can specify the number of links to recent notes (5 by default), the order in which links are displayed (new ones are usually displayed at the very top), and the pages on which the block with links will be placed. After digging into the settings, don't forget to save your changes.

We have considered three built-in modules for internal linking of a site on Joomla. I recommend not to neglect them. Believe me, they will bring great benefits to your site in terms of usability, indexing and behavioral factors.

Good luck to you in your endeavors!

Let's continue the topic of linking. Manual linking is extremely good and correct. But on portals or large online stores, doing it manually is problematic, especially for 20,000 pages. Therefore, in such cases we will use plugins for linking.

And now more details.

We'll start with one of the most popular CMS. This engine works extremely well and is easy to customize. Let's look at 2 plugins:

  1. Yet-another-related-posts-plugin.
  2. Simple tags.

These plugins work well together. 1 plugin for WordPress linking makes it possible to automatically insert relevant pages with a picture at the end of the article (you can see an example in my log). You can download this plugin on the official website -.

Simple tags make it possible to set tags for an article, which will then be used to link the articles. Thus, we can automatically link relevant pages not much worse than manually. However, there is no way to put pictures here. If this is not critical for you, use plugin 2. Gorgeous :)

For Joomla I will also give 2 plugins to choose from:

  1. Joomla Extra News
  2. Smart SeoLinks

Joomla Extra News module - displays a list of similar materials at the end of the article or anywhere else. This is a higher quality analogue of the standard “Similar Articles”. The only thing worth noting is that there are versions 2.x.x and 3.x.x. In 2 versions of the module there are “general settings” that will allow you to configure and check everything in a couple of minutes. And in version 3, “general settings” were completely removed, replacing them with more flexible “individual settings”. Here you should try both modules and decide which Joomla linking plugin is right for you (which version I mean).

The second module, Smart SeoLinks, is of a completely different type and is suitable for large multi-page sites. Let me explain the essence of the plugin: you entered the word “Joomla internal linking” and voila! On all pages, this phrase will be a link to the specified page. Despite all the apparent benefits, there is a possibility of falling under filters due to over-optimization and spam. Therefore, be extremely careful with it and spend more time on the settings.

DLE linking module

To be honest, I don’t really like this CMS. Simply because they usually rivet GSs on it. More precisely, a lot of them were made on it, although the engine itself is not bad. No matter how much I tried to tinker with it, the choice came down to 1 DLE linking module:

  1. Link Enso PRO

This is a paid module, of course you can find it broken, like the rest of DLE :)

You can easily customize it, and it allows you to display links with pictures to previous and future articles in blocks. The operating scheme is similar to all of the above CMSs.

Category ~ Code – Igor (Administrator)

Internal linking of website pages is not only a tool for search engines. Although, it must be recognized that proper linking really has a beneficial effect on the rankings and indexing of site pages. However, linking is also a great way to introduce your readers to other site materials. In simple terms, we are talking about similar or related materials, such as a link to a review of graphic editors in the article creating a thumbnail or website logo. However, the variations in linking do not end there. Users may also be interested in previous and subsequent materials, latest materials and much more. Some of them are created manually, and some are created automatically.

Of course, manually placing links gives a better effect, since before placing a particular link in the text (or in a module), you take into account its relevance and view the result of each page. However, there will always be a desire to have an automated way of linking pages at hand. In addition, in some cases, automation simply cannot be done without. Especially when you already have more than a hundred materials on your site and the prospect of spending several nights doing routine linking is a little depressing.

This article will discuss the idea of ​​building multiple rings between categories, as well as its implementation for Joomla 2.5+ (for Joomla 3.0 and higher, this module should also be suitable, but no special testing has been carried out).

One of the previous articles discussed a module for multiple circular linking of materials of the same category. Its main advantages are the automatic, controlled and controlled organization of relationships between materials of the same category, minimizing weight loss when one of the pages falls out inside the rings. However, this method is limited only to materials of one category. In other words, the ring's weight distribution does not extend beyond one category. To put it a little more simply, all the accumulated weight within categories with a large number of materials flows very weakly to materials in other categories. Of course, due to the main menu with all categories, which is available on almost every website, rings are formed. However, in fact, the categories remain weakly related to each other.

Note: As a fact, on this site, after the introduction of circular linking of category materials, many articles that were not indexed in any way were included in the main index.

If we transfer the above words to the point of view of an ordinary user, then any reader who has opened an article in a certain section sees practically no connection with other categories. Most often, before his eyes there is either a random linking inside articles, or modules like “latest materials”, “headings”, “archive”, “similar materials” and so on. To exaggerate, the page shows either chaotically placed links (constantly changing latest materials, links in an article, and so on), or connections within one category, including organization through tags and keys. If we exaggerate even more and speak in simple language, then the likelihood that a user will look at least in the next category tends to zero. After all, there are not so many enthusiasts and altruists. No, honestly. At least remember yourself. Have you often, when visiting unfamiliar sites, been uncontrollably eager to explore it up and down? Of course, such projects exist, but the key word here is “exist.” Now, taking into account the above words, try to look at the picture with a standard tree structure:

Note: However, it is important to understand that this is only about what the reader sees and nothing more.

At the base of the tree is the main page of the site. Next come the sections (categories, tags, etc.). And at the very bottom there are articles. Now, just imagine that the user has opened the page in the lower left corner, and ask the question “how can he get to the page in the lower right corner if he doesn’t even know about its existence?” Of course, the article may simply contain a link to this article, but making an article a set of links so that you can get to all pages is far from the best solution. But, still, something can be done about it.

This is where the idea of ​​automatically linking materials from different categories arises in such a way as to form rings from them, which in theory and under successful circumstances will allow users to go through all categories of the site and fully evaluate it. In its simplest form, we are talking about a situation where each material from one category links to material from the neighboring category. Thus, from all categories in which there is at least one material, a ring can be formed. However, one ring is very few. Therefore, it makes sense to tie several materials from each category into rings. It is also necessary to take into account that the number of materials in categories is usually different. It is rare to find sites where all categories are identical in terms of the number of articles. More often, it’s the other way around (somewhere around 20 articles, somewhere around 100, and so on). But these are not all the conditions and restrictions. In addition, such linking should not be blinking, since links begin to gain weight only over time, and should be controlled, that is, take into account all added articles to the site automatically in such a way that you will always know what the addition of material will lead to and how it will affect the structure.

If you look at the scary picture just above, this is approximately the result that needs to be achieved. When there are so many rings between categories that the loss of one page will be quickly minimized. And this is quite easy to implement. To do this, you only need to use a few rules.

  1. All materials in each section are sorted in a specific order. For example, by creation date.
  2. Each material links to several materials from the adjacent category. For example, we refer to 5-6 materials from the next section.
  3. The material number in order determines the starting position for selecting materials from the adjacent category. Let’s say there are 10 articles in two categories. If we open the 4th article in order, then the first material from the adjacent section should also be the fourth.
  4. To minimize the large difference in the number of articles, each subsequent material can be selected after a selected interval. For example, in two (1-3-5-7-...)
  5. And one last thing. If, when selecting articles, we have reached the last article, then continue the search from the very beginning of the list. Thus, the latest articles will link to the first articles of the adjacent category.

Perhaps the rules seemed a little complicated to you, but it’s enough to imagine them once (or, in extreme cases, draw them on a piece of paper; well, in very extreme cases, on parchment) and everything will become clear.

So we decided on the idea. It is necessary to determine the scheme according to which the internal linking of pages with category rings will occur. The most basic uncertainty is the sort order. However, it is enough to remember that the algorithm must ensure the durability of links, and it becomes clear that the sort order must be a condition that changes very rarely or never changes at all. And the first thing that comes to mind is either identifiers or creation date. In this case, binding to identifiers would not be a very good idea, no matter how strange it may seem. The reason is that the creation date will most often be a more stable sign of sorting (and only sorting, since there are too many dates and therefore few people will even glance at it). For example, if for some reason you have to copy or recreate materials while preserving the attributes, then their identifiers, just like the dates of modification and publication, can easily change, but the date of creation does not (the same reason - this field is on against the background of the others is of little interest). Therefore, the date of creation was taken as the basis for organizing articles.

Now, let's look at 4 ordering options to choose the most stable one to ensure the longevity of links.

First option. Linking Latest Content to Latest. The problem is obvious. Once you add an article to one of the categories, the links inside the remaining articles will immediately begin to change. Therefore, this option disappears immediately.

Second option. Linking recent materials with old ones. The problem still remains, albeit partially. If you add one material to a category, all connections will immediately shift to one link, which on a site with frequent updates of materials will mean incredibly fast blinking of links.

Third option. Linking old materials with old. In this case, adding articles to any category will not lead to link shifts. Suitable option.

Fourth option. Linking old and recent materials. The problem remains. Once you add material to an adjacent category, the order of links in the current section will be disrupted. Which will also lead to frequent blinking of links.

As you can see, the most optimal option is the third option. Of course, it is also not flawless, since the links of the latest materials will change until the number of materials in the neighboring category increases so much that it is not necessary to take the very first links. Complex phrase. but if you return to the parchment, everything will become clear. However, this option is still the most stable of those considered and over time it will allow creating fairly strong bonds between the materials at the base of the site.

We create a script for multiple linking of categories using rings from materials for Joomla

Before you start creating a script for multiple linking of category materials with rings in Joomla, you need to decide on a list of requirements and restrictions for the script

  • . Each added material should be added automatically so that you don’t have to worry about it.
  • Link durability. Links should be non-blinking as much as possible (flirtatious blinking may look nice in real life, but search engines don’t like it). If the links are constantly changing, then such links will not be of much use.
  • Easy to set up. The module should be configured very simply and in one place.
  • . Links should be varied. This will create quite a lot of rings.
  • . Almost every site has categories that are intended only for technical purposes, so they need to be excluded. Additionally, it should be possible to set the order of categories to offer readers the most relevant information.

So, with the conditions and requirements clear, you can begin implementation. The linking module from the previous article was taken as a basic project, and the ability to create thumbnails was also enabled (the article indicates how to connect to the site and configure the necessary php file; if you do not need thumbnails, then you can always correct the display of the module).

Since there were quite a lot of changes in the module and most of them were cosmetic (for example, replacing the names of variables and files, changing localization strings, etc.), only the most important ones are given in the article. But don’t worry, a link to the original module project is at the end of the article, so you can easily find all the remaining changes in the archive (and you won’t have to be angry with the author).

Joomla module definition xml file settings

The first thing that needs to be corrected is the xml file of the module. Please note that not only the usual parameters have been added to the module, but also settings for caching, since, unlike the Joomla module for linking articles of the same category, SQL queries to the database have become more demanding. Here is a set of parameters:

Major changes. The following main parameters have been renamed and added: "mat_number" (the number of links to a neighboring category), "shift_number" (a gap or shift for selecting the next material in a neighboring category), "orderCat" (a text field where you can manually indicate the order of categories separated by commas ). Added additional parameters for caching: "cachemode" (caching type), "cache_time" (caching time), "cache" (enable caching if it is enabled globally). This completes the main changes in the xml file.

Editing helper.php - function for selecting article numbers from a neighboring category

Now, you need to write a function that will generate article numbers for selection from a neighboring category. To do this, add the getMaterialWhereForModule function to the helper.php code:

// Form a condition for selecting article ids function getMaterialWhereForModule($startPart, $materialNumber, $linksCount, $shiftCount, $maxCount) ( if ($maxCount == 0) return ""; $result = " ("; $findElements = array (); $matRownum = 0; $shift = 0; // If the shift is greater than the number of materials, then we limit it if ($shiftCount >= $maxCount) $shift = $maxCount == 1: $maxCount - 1; / otherwise just remember the shift else $shift = $shiftCount; // Determine the starting position $matRownum = ($shift + $materialNumber) % $maxCount; if ($matRownum == 0) $matRownum = $maxCount; exactly as many times as links are needed for($i = 0; $i< $linksCount; $i++) { if (!in_array($matRownum, $findElements)) { $findElements = $matRownum; } // Сдвигаем элемент $matRownum = ($matRownum + $shift) % $maxCount; if ($matRownum == 0) $matRownum = $maxCount; } // Если нашлось меньше ссылок, чем нужно, но элементы все еще есть, // то просто добавляем ближайшие элементы к материалу if (count($findElements) < $linksCount && count($findElements) < $maxCount) { $addingCounter = ($materialNumber + 1) % $maxCount; if ($addingCounter == 0) $addingCounter = $maxCount; // Заполняем набор пока либо не найдем нужное количество ссылок, либо не закончится набор доступных ссылок while(count($findElements) < $linksCount && count($findElements) < $maxCount) { // Если элемента нет в массиве, то добавляем его if (!in_array($addingCounter, $findElements)) { $findElements = $addingCounter; } // Сдвигаем элемент $addingCounter = ($addingCounter + 1) % $maxCount; if ($addingCounter == 0) $addingCounter = $maxCount; } } // Формируем набор for($i = 0; $i < count($findElements); $i++) { $result .= $findElements[$i]; if ($i + 1 != count($findElements)) $result .= ", "; } return $startPart.$result.") "; }

The function is quite simple and has detailed comments, so you can easily understand it. The only clarification is that the tasks of this function include forming part of the condition for the sql query, namely the “IN (...)” construction.

Editing helper.php - getting the ID of a neighboring category

Now you need to add to the getList function to receive the identifier of the neighboring category (if it was not defined in the parameters) in which there is at least one material available to readers.

// Get the items number of the next category, if possible if (($this->isArticle() || $this->isCategory()) && ($menu->getActive()!= $menu->getDefault()) ) ( // Get the next category // If the order is specified for the element if (!empty($orderCat) && is_array($orderCat) && in_array($idCat, $orderCat) && array_search($idCat, $orderCat)< count($orderCat) - 1) { $nextCatID = $orderCat; } // Иначе ищем следующую категорию с учетом кольца else { $queryGetNextCat = " select a.id from (select distinct cat.id, 0 as afterCircle from #__categories cat join #__content mat on cat.id = mat.catid and mat.state >0 and (mat.publish_down is null or mat.publish_down >< NOW()) and cat.published >0 where cat.id > ".$idCat."< NOW()) and cat.published >".$this->getExceptWhereForCatSearch(" and cat.id not in ", $exceptCat)."< ".$idCat." ".$this->".$this->getAccessWhereForUser(" and mat.access ", $user)."

As you can see, this part is based on one large text, but simple in meaning, sql query to the database. Its essence is that we get a list of all categories (excluding the current category and the specified categories in modules), then we sort it and take the first suitable identifier. The only thing that may seem complicated is the filtering parameters, but if you look closely, they simply filter all the materials available to the user on the site at a given time (and since there are several filters, a volume is created).

Edit helper.php - get all elements from the neighboring category

Now, you need to generate queries to obtain elements. And there are three options.

Option one. Opened the main page of the site or a page not related to the standard types of categories and material. This means that it is simply impossible to select a neighboring category (in the general case). Therefore, we simply return random materials.

// Otherwise, we generate a random output of articles from all available categories else ( $queryGetMaterials = " select id, catid, \"\" as link, title, access, alias, introtext from #__content mat where mat.state > 0 and (mat. publish_down is null or mat.publish_down >= NOW()) and (mat.publish_up is null or mat.publish_up< NOW()) ".$this->getExceptWhereForCatSearch(" and mat.catid not in ", $exceptCat)." ".$this->

Second option. Opened the category page. This means that you can select an adjacent category, but you cannot determine the material numbers. Therefore, we remove random materials from the neighboring category.

// If a category is displayed on the page and there is a neighboring category, // then take random articles from the next category else if ($this->isCategory() && !empty($nextCatID)) ( $queryGetMaterials = " select id, catid, \ "\" as link, title, access, alias, introtext from #__content mat where mat.state > 0 and (mat.publish_down is null or mat.publish_down >= NOW()) and (mat.publish_up is null or mat. publish_up< NOW()) ".$this->getExceptWhereForCatSearch(" and mat.catid not in ", $exceptCat)." and mat.catid = ".$nextCatID." ".$this->getAccessWhereForUser(" and mat.access ", $user)." order by rand () limit ".$linksCount." )

Third option. Opened the material page. This means that you can select the next category, just as you can calculate the necessary numbers for selecting materials. However, in this case, one request is not enough and there will be three of them. The first returns the number of the current article relative to other articles in the category. The second gets the number of materials available to the reader in the adjacent category. And finally, the third request is an SQL query to obtain the necessary articles in joomla.

$queryGetMaterials = ""; // If the page displays an article and there is a neighboring category, if ($this->isArticle() && !empty($nextCatID)) ( // Get the number of the element in the list $db->setQuery(" select rownum from (select * , @rownum:= @rownum + 1 as rownum from #__content mat, (select @rownum:=0) a where mat.state > 0 and (mat.publish_down is null or mat.publish_down >= NOW()) and ( mat.publish_up is null or mat.publish_up< NOW()) ".$this->getAccessWhereForUser(" and mat.access ", $user)." and mat.catid = ".$idCat." order by mat.created) a where id = ".$idMat." ");< NOW()) ".$this->$materialNumber = $db->loadResult();< NOW()) ".$this->// Get the number of articles in the desired category // Get the number of the element in the list $db->setQuery(" select count(*) from #__content mat where mat.state > 0 and (mat.publish_down is null or mat.publish_down >= NOW()) and (mat.publish_up is null or mat.publish_up

getAccessWhereForUser(" and mat.access ", $user)." and mat.catid = ".$nextCatID." ");

$maxCount = $db->loadResult();

// Form the final query $queryGetMaterials = " select id, catid, \"\" as link, title, access, alias, introtext from (select *, @rownum:= @rownum + 1 as rownum from #__content mat, (select @rownum:= 0) a where mat.state > 0 and (mat.publish_down is null or mat.publish_down >= NOW()) and (mat.publish_up is null or mat.publish_up

getAccessWhereForUser(" and mat.access ", $user)." and mat.catid = ".$nextCatID." order by mat.created) a where ".$this->getMaterialWhereForModule(" a.rownum in ", $materialNumber , $linksCount, $shiftCount, $maxCount)." "; ) After editing the main parts, you can begin installing and configuring the module. Please note that since only the main changes in the files were given, for the next point you must use the archive, which is available at the end of the article." in the Joomla admin panel menu, and then download and install the archive with the module.

Note: For those who are not yet familiar with this feature, please note that the module must be packaged in a zip archive.

As soon as you install the module, the disabled module will appear in the general list of modules circular linking of materials between categories(although it’s a long name, it’s a correct name).

Note: The type of this module will be available in the module configuration interface, so if you delete it accidentally, you don't need to try to install the module again. In addition, to create several rings of categories or buildings of different directions, you can also create several more modules, since their settings are independent of each other

Let's start setting up the module. Click on the link titled " circular linking of materials between categories". First select the state " Published" and specify general settings such as title, position in the template.

Note: Within the framework of this article, the general case is considered. Therefore, the remaining area settings " Details" choose the way you need.

Now you need to configure the binding to menu items. If you do not have any special pages that need to be excluded, then select " On all pages".

Note: Setting up access is no different from setting up access for other modules. So if you have already configured one of the modules as needed, then you can simply copy the settings.

After you have finished specifying the standard parameters, you need to start configuring the main and additional parameters of the module. Specify whether to include or exclude the home page. List, separated by commas, the categories that need to be excluded from the linking. It is advisable to indicate the order of categories separated by commas. This will allow you to create a logical chain of transitions between categories and save on database queries. Select the number of links that will be calculated for each page, as well as the shift during recalculation. In additional parameters, specify the desired caching settings.

Note: Unlike circular linking of materials of the same category, queries to the database are more demanding, so we strongly recommend leaving caching enabled, especially since we are talking about long-term links.

Save the settings and look at the result. For example, on this site this module looks like this.

Now let’s look at the requirements again and check if they are met:

  • Automatically adding materials. Done. Everything happens automatically. We installed it and moved on to other things.
  • Link durability. Done. Older content will contain long-lasting links. Gradually, the basis of the site will gain weight in the eyes of search engines.
  • Easy to set up. Done. The module has fairly simple settings that are configured in one place and separately for each module.
  • Ability to cover as many materials as possible. Done. Due to the shift and features of the original algorithm, quite a lot of materials will be covered. Of course, within the limits of what is reasonable and possible.
  • It should be possible to exclude and specify the order of categories. Done. You can exclude technical categories and specify the order of sections, and at the same time save on calculations in the database.

So, as you can see, we have a very convenient and powerful module for linking categories.

You can download the module for linking category rings using this link (Important! Don’t forget to include thumbnails

In this article I will continue the story about SEO optimization of a website made on Joomla. We'll talk about how to make automatic, relevant page linking. For those who saw a lot of incomprehensible words in the previous sentence, I’ll explain, I’ll tell you how to make similar articles on the site automatically link to each other, raising both the overall weight of the site in the eyes of search engines and the ease of use of it by visitors.

Updated:as it has now turned out, some of the information in this article is not true. Namely, that linking is carried out automatically. No. By keywords. I didn't delete the article, but you can consider it just a review of a pretty good Joomla plugin. Erroneous statements have been crossed out.

The task is:

We have a website containing many articles. These articles can be divided, for example, into several topics: Cars, Motorcycles, Boats, Planes, Trains. Well, roughly speaking, such a site. Although all the topics are related, they are still very different. In previous articles in the series, I talked about the importance of on-page optimization. Articles on similar topics should link to each other. In addition, site visitors, after reading one article, should see similar ones, i.e. those that might interest them. This is a very important condition for every site that is made for people, since the “interestingness” of a site in the eyes of a person, unlike a search engine, is measured not by the quantity of material, but by its quality and accessibility. Simply put, the more material a visitor finds that interests him during the time he is willing to spend searching on a given site, the more useful the site will seem to him, and the more likely he is to return again. If the site contains a lot of materials, then the search task becomes more complicated. Man is a lazy creature. In most cases, he is too lazy to type something into the search bar on the site, delve into archives or article categories. The only thing he can do most often is, inspired by an article he has read, and look at the list of similar articles at the end of it. Some may disagree with me, but I believe that most visitors do just that.

So we are faced with a challenge. You need to create a list of similar articles at the end of each article, and compose it in such a way as to please both search engines and visitors. In addition, we have several topics. How to solve this problem?

First of all, let’s decide for ourselves that doing such routine work manually is not an option. Yes, you can do this once, twice... ten, but sooner or later you become too lazy to search for and add similar articles on your own. In addition, this can be quite time-consuming. This means that the process needs to be automated. Joomla's built-in capabilities allow us to do this, but only partially. Joomla has a module of so-called similar articles. This module selects relevant articles using keywords that the author of the articles indicates in the appropriate field when publishing. Those. for example, there are two articles. One contains the keywords: “cars, sports,” the other “motorcycles, sports.” Because Both articles contain the keyword “sport”, the Joomla module will consider them relevant and show them for each other. In principle, this method has the right to life, but there are several BUTs:

  1. Again, keywords need to be selected and entered manually for each article, which is simply too lazy to do.
  2. The coincidence of one of the keywords does not at all mean that the article is relevant to visitors. For example, a visitor is interested in car racing, but he is indifferent to motorcycle racing. At the same time, in the example described above, the Joomla module will display the article as relevant, specifically about motorcycle racing. The visitor will look at this link, will not be interested and will leave.
  3. And the last thing I really don’t like is that a module is a module and it’s not always convenient to insert it at the end of the article. You can do this manually using the loadposition plugin, you can select the appropriate position, but in any case, these are unnecessary problems.

I found a plugin called . Given that it was free, it could do everything I needed and even more. You can see it in action right on this site, right at the end of this article.

So what can it do?

First, and most importantly, it can automatically select similar articles. I don’t know how he does it, I’ve never been interested, but he copes with this task very well. For example, if I wrote three articles about editing a VirtueMart template, I know that links to the other two will automatically appear in each of them.

The second thing that really pleased me was that Plugin extranews displayed a list of links to similar articles exactly where it was needed - right after the article. In this case, it was not necessary to make any additional body movements. It was enough to simply activate the plugin.

The third thing that pleasantly surprised me was the presence of a tooltip function - descriptions of articles to which the plugin creates links. It looks like this:

A very convenient function for people - you don’t need to click on a link to find out what the article is about, you just need to hover your cursor over the link.

And the last thing that pleased me was the ability to display previous and next articles. This is very convenient for those who read the site like a book. Those. no need to go back to the list of articles to find the next one, just click on the link at the end of the article.

This is what it looks like:

Now let's move on to setting up the module.

Plugin extranews is installed like all other plugins. After installation, you need to configure and activate it.

Below is the Plugin extranews settings window:

The plugin is rich in settings. Let's look at them below:

  • DisablesectionidList– a list of section IDs for which the plugin will not be used. Section IDs are indicated separated by commas. “-” – means that the plugin is used for all sections;
  • DisablecategoryidList– similar to the previous option, a list of category IDs for which the plugin will not be used;
  • DisablearticleidList– as in the previous two options, a list of article IDs for which the plugin will not be used;
  • Queryby- Sort by. Two options are available: by creation date and by ID;
  • LinkedTitleCharCount– this option allows you to limit the length of the article title (link) to a certain number of characters. 0 – means that the title will be shown in full;
  • Numberofrelateditems– the number of similar articles that will be displayed;
  • Numberofnewernewsitems– the number of next articles that will be displayed;
  • Numberofoldernewsitems– the number of previous articles that will be shown;
  • Showdatewithtitle– show or not the creation date before the link (header)
  • Createddatedisplay– date display format. See the tooltip for this option for more details;
  • Linkedtitleformatwithdate– format for displaying the date with the title, i.e. exactly how they will be displayed together (through a dash, colon, space, etc.);
  • Textbefore– text before displaying links;
  • Textafter– text after links are displayed;
  • Margin-left– left indent for displaying links;
  • Margin-right– indentation to the right of displaying links;
  • EnableTooltip– activate or not pop-up tips;
  • TooltipScript– a script for creating tooltips. I recommend using Joomla Mootool;
  • IE6TooltipScript– selecting a script for the 6th donkey. He needs a royal approach and a separate option;
  • TooltipTitleCharCountCount– this option allows you to limit the length of the article title in the tooltip to a certain number of characters. 0 – means that the title will be shown in full;
  • TooltipDescriptionCharCount– the same as the previous paragraph, only for description. I would like to note that here we are not talking about the description as such, but about the article, i.e. in this field you can limit the number of characters of the input text;
  • TooltipDescriptionTextImages– show or not images in the tooltip;
  • Image Width– image width:
  • Image Height– image height;
  • TooltipWidth– tooltip width;
  • TooltipHeight– tooltip height;
  • TooltipCaptionBackgroundColor– background color of the tooltip title;
  • TooltipCaptionFontColor– color of the tooltip title text;
  • TooltipBodyBackgroundColor– background color of the tooltip body;
  • TooltipBodyFontColor– text color of the tooltip body;
  • TooltipBorderWidth– the width of the frame around the tooltip;
  • ExtraTooltipParameters– additional tooltip parameters;
  • ExtranewsaboveComment– in this option you can set the display of similar articles above the display of comments for various comment extensions;

This is such a great plugin! Of course, Plugin extranews will not be able to determine the relevance of articles better than their author, but it does it very well.