CMSEnergizer

CMSEnergizer

CMSEnergizer

Sunday, 20 August 2017 05:19

Contact Form 7 Add-on Bundle - All In One

These excellent apps extend the abilities of the very popular, stable and secure Contact Form 7 form construction tool used by millions of WordPress users.

Bundled Package (value $106)

  • Contact Form 7 Save To Database / CSV / PDF ($17)
    Allows you to save all submitted from contact form 7 to database. It keeps track of all the forms created through Contact Form 7. Your can export CSV/PDF.
  • Contact Form 7 Conditional Logic ($17)
    Conditional groups are a set of rules that apply to groups of fields that dynamically change the form layout. Conditional Logic allows you to configure your form to show or hide fields, sections, pages or even the submit button based on user selections.
  • Contact Form 7 Cost Calculator – Price Calculation ($18)
    Contact Form 7 Cost Calculator – Price Calculation which allows you to easily create quote or price estimate forms for Contact form 7.
  • Contact Form 7 Autocomplete – Address Field ($17)
    Autocomplete simplifies and speeds up a form filling process and make your users save time by finding necessary data with suggestions
  • Contact Form 7 Multi-Step Pro ($20)
    Plugin Provides step by step UI for Plugin Contact Form 7.
  • Contact Form 7 Redirects – Thank You And Failed Page ($17)
    Provides a method to redirect visitors to success pages or thank you pages or failed page. Help not to miss your customer message or create a pro thank you page.

One may need to block an IP address from all or specific pages for a variety of reasons, not necessarily related to malicious activity. This can be done within Joomla simply, and without hacking any core files.

Create A Plugin For The Job

A System plugin will serve best for the task because it is loaded globally, unless instructed otherwise.

1. Create the folder which will contain all the files and give it a relative name
the_ip_control

2. Create the primary function file within the folder and keep the name similar to the folder for simplicity
the_ip_control.php

<?php defined('_JEXEC') or die();
/**
* @package      plg_system_the_ip_control
* @copyright   Copyright (C) AnySiteYouWantHere.com All rights reserved.
* @license      GNU General Public License version 2 or later; see http://www.gnu.org/licenses/
**/

class plgSystemThe_IP_Control extends JPlugin {

   public function onAfterInitialise() {
      //do not render the function in admin area
      if(JFactory::getApplication()->isAdmin()){
         return ;
      }
      
      // define variable for use
      $currenturl   = JURI::getInstance()->toString();
      $getip       = $_SERVER['REMOTE_ADDR'];
      // get data entered in the IP text area
      $iplist    = explode( PHP_EOL, $this->params->get('ipblock') );
      // get data entered in the URL list text area
      $pages       = str_replace( PHP_EOL, '|', $this->params->get('pages') );

      // check data exist in the IP list text area and run
      if( !is_null($this->params->get('ipblock')) ) {
         // check what option the radio button is set on. either Block or Allow
         if( ($this->params->get('method') == 'block' && in_array($getip, $iplist)) ||
            ($this->params->get('method') == 'allow' && !in_array($getip, $iplist)) ) {
               if( preg_match('/'.$pages.'/', $currenturl) ) {
                  // send to the entered URL if all conditions are inline
                  header( 'Location: '.$this->params->get('redirect') );
                  exit();
               }
         }
      }

   
   }
   
   
}

3. Create the installer XML file within the folder and give it the same name as the function file
the_ip_control.xml

<?xml version="1.0" encoding="utf-8"?>
<extension version="3.7.0" type="plugin" group="system" method="upgrade">
   <name>System - The IP Control</name>
   <author>AnyWebSiteHere.com</author>
   <creationDate>06.15.2017</creationDate>
   <copyright>All Rights Reserved.</copyright>
   <license>license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html</license>
   <authorEmail>yourmail@yoursite.com</authorEmail>
   <authorUrl>http://www.yoursitehere.com</authorUrl>
   <version>1.0</version>
   <description>Allow or Deny IP</description>
   
   <files>
      <filename plugin="the_ip_control">the_ip_control.php</filename>
      <filename>index.html</filename>
   </files>
   
<config>
   <fields name="params">
      <fieldset name="basic">
         <field name="method" type="radio" class="btn-group btn-group-yesno" default="block" label="Method">
            <option value="block">Block</option>
            <option value="allow">Allow</option>
         </field>
         <field type="spacer" label="Add IP addresses. 1 per line" />
         <field name="ipblock" type="textarea" rows="5" class="span8 monospace" label="IP Block List" />
         <field name="redirect" type="text" hint="http://google.com" required="required" label="URL To Redirect" />
         <field type="spacer" label="Add matching URLs to allow or block. Can be all or part of a URL. 1 per line. Leave empty to affect the entire website" />
         <field name="pages" type="textarea" rows="5" class="span8 monospace" label="URLs" />
      </fieldset>
   </fields>
</config>

</extension>

Compress the directory with the files as a .zip and install at your Joomla website
Go to Extensions > Plugins and use the filter type System
Enable the plugin and enter some data. Try your own IP to confirm functionality

The resulting options page

This configuration will allow only users coming in via the included IPs to view pages with url parts matching the strings shown.

ip block plugin

This configuration will block only users coming in via the included IPs from viewing pages with url parts matching the strings shown.

ip block plug in

 

If your Joomla site is not equipped with a super SEO app that will strip away that very visible article ID: /34-the-great-article-title-alias, Joomla 3 does have a 'hidden' parameter to make the URL read as /the-great-article-title-alias, but it requires some effort, and is worth it. Once done, it's yours for your everlasting Joomla life.

Create A Plugin For The Job

A System plugin will serve best for the task because it is loaded globally, unless instructed otherwise.

1. Create the folder which will contain all the files and give it a relative name
strip_article_id

2. Create the primary function file within the folder and keep the name similar to the folder for simplicity
strip_article_id.php

<?php defined('_JEXEC') or die();
/**
* @package      plg_system_strip_article_id
* @copyright   Copyright (C) AnySiteYouWantHere.com All rights reserved.
* @license      GNU General Public License version 2 or later; see http://www.gnu.org/licenses/
**/

class plgSystemStrip_Article_Id extends JPlugin {

      public function onContentPrepareForm($form, $data) {
   // global content configuration form
   if( $form->getName() == 'com_config.component' && JFactory::getApplication()->input->get('component') == 'com_content' ) {
      JForm::addFormPath(JPATH_PLUGINS.'/system/strip_article_id/');
      $form->loadFile('contentconfig', false);
   }
  }

}

3. Create the installer XML file within the folder and give it the same name as the function file

strip_article_id.xml

<?xml version="1.0" encoding="utf-8"?>
<extension version="3.7.0" type="plugin" group="system" method="upgrade">
   <name>System - Strip Article ID</name>
   <author>AnyWebSiteHere.com</author>
   <creationDate>06.17.2017</creationDate>
   <copyright>All Rights Reserved.</copyright>
   <license>license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html</license>
   <authorEmail>yourmail@yoursite.com</authorEmail>
   <authorUrl>http://www.yoursitehere.com</authorUrl>
   <version>1.0</version>
   <description>Strip Article ID From SEF URL</description>
   
   <files>
      <filename plugin="strip_article_id">strip_article_id.php</filename>
      <filename>index.html</filename>
     <filename>contentconfig.xml</filename>
   </files>
</extension>

4. Create the form control which will be shown in the content global configuration under the Articles tab, within the folder.
contentconfig.xml

<?xml version="1.0" encoding="utf-8"?>
<form>
   <fieldset name="articles">
      <field name="sef_advanced_link" type="radio" class="btn-group btn-group-yesno" default="1" label="Remove Article ID In URL">
         <option value="1">JYES</option>
         <option value="0">JNO</option>
      </field>
   </fieldset>
</form>

Be sure to add an empty index.html file to the folder or remove <filename>index.html</filename> from the installer .xml file.

5. Compress the folder as a .zip and install, enable, then go to System > Global Configuration and click Articles. The switch will be at the bottom of the page

One would be surprised at the added SEO value derived from even more relative text! That is the forever quest of every website owner, and as such, many constantly ask how they can add text below and / or after any module type, specifically that lil' one called mod_footer.

While module templates can be overridden, that only takes care of the display, but you need to have the form fields available in the edit view in order to get the text to the database, and the .xml file which creates the fields, doesn't ride the override train. So you need a plugin for that.

A System plugin serves the purpose.

1. Create the folder which will contain all the files and give it a relative name
add_module_text

2. Create the primary function file within the folder and keep the name similar to the folder for simplicity
add_module_text.php

<?php defined('_JEXEC') or die();
/**
* @package      plg_system_add_module_text
* @copyright   Copyright (C) AnySiteYouWantHere.com All rights reserved.
* @license      GNU General Public License version 2 or later; see http://www.gnu.org/licenses/
**/

class plgSystemAdd_Module_Text extends JPlugin {

   public function onContentPrepareForm($form, $data) {
      // module edit form. it checks for the popular advanced modules extension
      if( $form->getName() == 'com_modules.module' || $form->getName() == 'com_advancedmodules.module' ) {
         JForm::addFormPath(JPATH_PLUGINS.'/system/add_module_text/');
         $form->loadFile('modulefields', false);
      }
   }

}

3. Create the installer XML file within the folder and give it the same name as the function file
add_module_text.xml

<?xml version="1.0" encoding="utf-8"?>
<extension version="3.7.0" type="plugin" group="system" method="upgrade">
   <name>System - Add Module Text</name>
   <author>AnyWebSiteHere.com</author>
   <creationDate>06.18.2017</creationDate>
   <copyright>All Rights Reserved.</copyright>
   <license>license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html</license>
   <authorEmail>yourmail@yoursite.com</authorEmail>
   <authorUrl>http://www.yoursitehere.com</authorUrl>
   <version>1.0</version>
   <description>Add HTML text area to any module</description>
   
   <files>
      <filename plugin="add_module_text">add_module_text.php</filename>
      <filename>index.html</filename>
     <filename>modulefields.xml</filename>
   </files>
   
</extension>

4. Create within the folder, the form control xml file which will be shown in the module edit view.
modulefields.xml

<?xml version="1.0" encoding="utf-8"?>
<form>
<fields name="params">
   <fieldset name="basic">
      <field type="spacer" hr="true" />
      <field type="spacer" label="&lt;b&gt; Add Text Before And After The Module &lt;/b&gt;" />
      <field name="pretext" type="textarea" class="span8" rows="2" filter="safehtml" label="Pre Text" />
      <field name="posttext" type="textarea" class="span8" rows="2" filter="safehtml" label="Post Text" />
   </fieldset>
</fields>
</form>

If you would like to use the WYSIWYG editor instead of plain text fields, swap the above textarea field lines with

<field name="posttext" type="editor" width="500" height="400" filter="safehtml" label="Post Text" />

See the list of attributes which can be used: https://docs.joomla.org/Editor_form_field_type

Be sure to add an empty index.html file to the folder or remove the line <filename>index.html</filename> from the installer .xml file.

5. Compress the folder as a .zip, install and enable. Go to any module edit view. The fields will be at the bottom of the page.

add text to module

Get the data output on the front end

You can now make overrides of all the modules you wish to add custom text

1. Go to Extensions > Template Manager
2. Under the column titled Templates, click the name of your default front end template (the one with the highlighted star)
3. Click the tab labeled Create Overrides
4. Under the column titled Modules, click any module name to immediately create the override. The page will refresh and confirm the copy.
5. Click the tab titled Editor
6. Click html, mod_footer (or whichever you created), default.php. The code editor will display.
7. Add the following based on your desire, above and below the logical HTML element you see. This example is based on mod_footer.

<?php if( !is_null($params->get('pretext')) ) { ?>
<div class="pretext"><?php echo $params->get('pretext'); ?></div>
<?php } ?>

<?php // these 2 lines are the default core ?>
<div class="footer1<?php echo $moduleclass_sfx; ?>"><?php echo $lineone; ?></div>
<div class="footer2<?php echo $moduleclass_sfx; ?>"><?php echo JText::_('MOD_FOOTER_LINE2'); ?></div>

<?php if( !is_null($params->get('posttext')) ) { ?>
<div class="posttext"><?php echo $params->get('posttext'); ?></div>
<?php } ?>

8. Click Save.

Repeat the override action for each module you want to add the custom fields. Note The fields will appear for EVERY module even if they do not have the frontend override. Nothing will be harmed, even if text is added.

Allow plugin shortcode rendering

You can take the wilder side of content output with added module text fields by rendering content plugins within those newly added fields. One may wish to use their video plugin {yuutube url="the-url"} or a {g-allery}agallery{/g-allery}, or even {load-module login} etc to post above or below any module. Well it can be done with some additional code lines PER module.

Modify the previous coding

<?php // allow content plugin rendering with user permission
$user = JFactory::getUser();

$pretext = $params->get('pretext');
$posttext = $params->get('posttext');

if( $user->authorise('core.create', 'com_modules') && $user->authorise('core.edit', 'com_modules') ) {
JPluginHelper::importPlugin('content');
$pretext = JHtml::_('content.prepare', $params->get('pretext'));
$posttext = JHtml::_('content.prepare', $params->get('postext'));
}
?>

<?php if( !is_null($params->get('pretext')) ) { ?>
<div class="pretext"><?php echo $pretext; ?></div>
<?php } ?>

<?php // these 2 lines are the default core ?>
<div class="footer1<?php echo $moduleclass_sfx; ?>"><?php echo $lineone; ?></div>
<div class="footer2<?php echo $moduleclass_sfx; ?>"><?php echo JText::_('MOD_FOOTER_LINE2'); ?></div>

<?php if( !is_null($params->get('posttext')) ) { ?>
<div class="posttext"><?php echo $posttext; ?></div>
<?php } ?>

Free copies of Joomla extensions that are normally commercially sold by hard working developers, will always be the weak point of your website.

The people who offer commercial software as *free*, have inserted coding methods which will let the app 'call home' to let the hacker know what sites have installed the malicious scripts, then they use their 'backdoor' key to get onto your hosting server and do damage. Avoid pirated software.

If your website was created by someone, use this checklist to ensure they have not used pirated extensions.

  • Ask for the links to all the sites whose extensions are used at your website.
  • Check all those sites to confirm their legitimacy
  • If an extension is sold by a site, ask the webmaster for a copy of the invoice.
  • Some developer sites offer enterprise packages which allow webmasters to use the app at a fixed number of sites. Confirm if your site has exceeded the count. The script may not be pirated, but you will never be able to update or get security fixes without a license.
  • Check the security status of the third party extensions at the Joomla Vulnerable Extensions List

The title of the post clearly defines the context. Only a fool does not comprehend this post and thinks it relates to extensions distributed free by the developer. Ignore such imbeciles!

Sometimes a user wants to set a specific banner to open in a different target window than what the module setting dictates, without having to create a whole other module just to open a single banner from the same category in a new window, when the module target is set to parent. This is resolved with a selection field per banner creation. Of course the excellent JForm system allows that with simplicity. It will let a user override the module setting for any individual banner.

1. Create the folder which will contain all the files and give it a relative name
banner_window_target

2. Create the primary function file within the folder and keep the name similar to the folder for simplicity
banner_window_target.php

<?php defined('_JEXEC') or die();
/**
* @package      plg_system_banner_window_target
* @copyright   Copyright (C) AnySiteYouWantHere.com All rights reserved.
* @license      GNU General Public License version 2 or later; see http://www.gnu.org/licenses/
**/

class plgSystemBanner_Window_Target extends JPlugin {

   public function onContentPrepareForm($form, $data) {
      // get the form field xml
      if( $form->getName() == 'com_banners.banner' ) {
         JForm::addFormPath(JPATH_PLUGINS.'/system/banner_window_target/form/');
         $form->loadFile('banner', false);
      }
   }

}

3. Create the installer XML file within the folder and give it the same name as the function file
banner_window_target.xml

<?xml version="1.0" encoding="utf-8"?>
<extension version="3.7.0" type="plugin" group="system" method="upgrade">
   <name>System - Banner Window Target</name>
   <author>AnyWebSiteHere.com</author>
   <creationDate>06.23.2017</creationDate>
   <copyright>All Rights Reserved.</copyright>
   <license>license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html</license>
   <authorEmail>yourmail@yoursite.com</authorEmail>
   <authorUrl>http://www.yoursitehere.com</authorUrl>
   <version>1.0</version>
   <description>Add individual ad banner window target to override the module setting as needed</description>
   
   <files>
      <filename plugin="banner_window_target">banner_window_target.php</filename>
      <filename>index.html</filename>
     <folder>form</folder>
   </files>
</extension>

4. Create a folder named form within the plugin folder and add the form control file which will be shown in the banner item edit under the image setting.
banner.xml

<?xml version="1.0" encoding="UTF-8"?>
<form>
<fields name="params">
   <fieldset name="image">
      <field name="wintarget" type="list" default="" label="Window Target">
         <option value="">Module Setting</option>
         <option value="0">Parent</option>
         <option value="1">New Window</option>
         <option value="2">Popup Window</option>
      </field>
   </fieldset>
</fields>
</form>

Be sure to add an empty index.html file to the folder or remove <filename>index.html</filename> from the installer .xml file.

5. Compress the parent folder with all the files as a .zip and install, enable, then go to Components > Banners > New. The select field will be above the Click URL field.

Create The Banner Module Template File

This is not an override. This will be selectable when publishing the banner module, under the Advanced tab, field labeled Layout. It outputs the same data as the core default, though the coding appears different, but it will include the window target condition to override the module setting per banner.

1. Create a php file and name it as desired eg: primarybanner.php. Add the following code and save.
2. Upload the file to modules/mod_banners/tmpl/
(you can optionally create an install.php file within the plugin and use JFile::copy() function to place the file)

<?php defined('_JEXEC') or die;

JLoader::register('BannerHelper', JPATH_ROOT . '/components/com_banners/helpers/banner.php');
$baseurl = JUri::base();
?>

<div class="bannergroup<?php echo $moduleclass_sfx; ?>">

<?php
if( $headerText ) echo $headerText;

foreach( $list as $item ) :

//--------------[ Define Variables ]----------------------//
$link = JRoute::_('index.php?option=com_banners&task=click&id=' . $item->id);
$imageurl = $item->params->get('imageurl');

//set conditional variable values to default null
$imgwidth= $imgheight= $linkopen= $linkclose= $attrib='';

if( !is_null($item->params->get('width')) )
   $imgwidth = ' width="' . $item->params->get('width') . '"';
if( !is_null($item->params->get('height')) )
   $imgheight = ' height="' . $item->params->get('height') . '"';

$alt = $item->params->get('alt');
$alt = $alt ?: $item->name;
$alt = $alt ?: JText::_('MOD_BANNERS_BANNER');

/* get the module window target setting and override per banner setting
if value is not null
*/
$target = $params->get('target', 1);
if( $item->params->get('wintarget') != '' )
   $target = $item->params->get('wintarget', '');

?>

   <div class="banneritem">
      
      <?php
      if( $item->type == 1 ) {
      // Text based banners
         echo str_replace(array('{CLICKURL}', '{NAME}'), array($link, $item->name), $item->custombannercode);
         
      }else{
         // Image based banner
         if( BannerHelper::isImage($imageurl) ) {

            // setup link variations
            if( !empty($item->clickurl) ) {
               switch( $target ) {
                  // Open in new window
                  case 1: $attrib = 'target="_blank"';
                  break;
                  // Open in a popup window
                  case 2: $attrib = '//the popup onclick function goes her. it is not allowed here so you will need to copy from original file';
                  break;
               }
               $linkopen = '<a href="'.$link.'" '.$attrib.' rel="noopener noreferrer" title="'.htmlspecialchars($item->name, ENT_QUOTES, 'UTF-8').'">';
               $linkclose = '</a>';
            }
      ?>
            <?php //output the image and link if set
         echo $linkopen; ?>
         <img src="/<?php echo $baseurl . $imageurl;?>" alt="<?php echo $alt;?>" <?php echo $imgwidth . $imgheight; ?> />
      <?php echo $linkclose; ?>
            
      <?php
      }else
         // output flash animated
         if( BannerHelper::isFlash($imageurl) ) { ?>
   // flash object coding goes here. not allowed here so you will need to copy from the original file
      <?php }
         
      } ?>
      
      <div class="clr"></div>
   </div>
   
<?php endforeach; ?>

<?php if( $footerText ) { ?>
   <div class="bannerfooter">
      <?php echo $footerText; ?>
   </div>
<?php } ?>

</div>

 

Joomla has the greatest template override system among all the top CMS, but you won't know it if you don't use it. Adding an author's profile data to articles they wrote, is done simply.

1. Create A Layout Override

  • Go to Extensions > Templates
  • Click the name of your default template (highlighted star), under the column titled Template.
  • Click the tab labeled Overrides
  • Under the column titled Layouts, click Joomla then click content

The page will refresh and show the confirmation of the override creation. Now edit the file

  • Click the tab labeled Editor
  • Click through directories html > layouts > joomla > content > info_block
  • Click the file named author.php to open the code editor on the right

2. Edit The Override File Named author.php

html/layouts/joomla/content/info_block/author.php

Add the following code to the top within the <?php tag. This gets the ID the currently viewed article then creates an output variable of the user profile aboutme through the JUserHelper class.

<?php
/**
 * @package     Joomla.Site
 * @subpackage  Layout
 *
 * @copyright   Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('JPATH_BASE') or die;

// get author ID
$authorId = $displayData['item']->created_by;

// get user profile field data
$authordetail = JUserHelper::getProfile($authorId)->profile['aboutme'];
$authorwebsite = JUserHelper::getProfile($authorId)->profile['website'];

//print_r($displayData['item']);
?>
<dd class="createdby" itemprop="author" itemscope itemtype="https://schema.org/Person">
   <?php $author = ($displayData['item']->created_by_alias ?: $displayData['item']->author); ?>
   <?php $author = '<span itemprop="name">' . $author . '</span>'; ?>
   <?php if (!empty($displayData['item']->contact_link ) && $displayData['params']->get('link_author') == true) : ?>
      <?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY', JHtml::_('link', $displayData['item']->contact_link, $author, array('itemprop' => 'url'))); ?>
   <?php else : ?>
      <?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY', $author); ?>
   <?php endif; ?>
   
   <?php // the output
   if( !empty($authordetail) ) { ?>
   <div class="aboutme">
   <h4>About The Author</h4>
      <?php echo $authordetail; ?>
      <?php if( !empty($authorwebsite) ) { ?>
         <p><a href="/<?php echo $authorwebsite; ?>" rel="nofollow" target="_blank">Author's Website</a></p>
      <?php } ?>
   </div>
   <?php } ?>
</dd>

Now the article aboutme text will display where the article info is assigned. Of course you must enable Show Author either in the content global configuration, or in the menu item options.

The output

author details added

Being able to search for Joomla content articles while in any area of the Joomla administration area, will boost the speed of article edit. This guide will show how to add an article search field to the head area.

article search field

The Method

  1. Make a duplicate of the default admin template
  2. Edit index.php and add the search field as the first child element within the <header> element.
<header class="header<?php echo $header_is_light ? ' header-inverse' : ''; ?>">
<form action="index.php?option=com_content&view=articles" method="post">
   <div class="btn-wrapper input-append">
      <input name="filter[search]" id="filter_search" value="" placeholder="Search" data-original-title="" title="" type="text">
      <button type="submit" class="btn hasTooltip" title="" data-original-title="Search">
         <span class="icon-search"></span>
      </button>
   </div>
</form>
</header>

Since 2000 the virtual gathering places for thousands of people have been discussion forums, and within those spaces, you have their undivided attention. Some are there to sell something, some are there because they have no real social life, and others are just trolling. One common factor among them all, is that they are all potential customers, but you'll never know unless you make the pitch.

Forum marketing is a high ROI strategy because making a good impression in front of this savvy and influential audience can help your marketing message spread far and wide. If a user is satisfied with the advice you provided, there is the chance they will share it within a network, and that means free viral marketing for you.

Tech support forums are a particularly great source for customers because the users are there seeking help for free, but will pay for solutions if they realize they cannot do it themselves. Take advantage of these "free" marketing hotspots and present your wares. WebsiteDons.com was able to earn $4,600 in 4 weeks just by posting at the Joomla "support" forum; sold 96 copies of software, and provided valuable services for 11 Joomla users who needed help and were ready to pay for knowledgeable help, They were contacted by private messages and email, or they initiated the contact with WebsiteDons.

Naturally the owners of these forums wish to keep marketers out, primarily to keep the users focused on whatever the owner is selling. But there are ways around the rules! The key is subtle and suggestive posting.

 

The First Action

Create multiple accounts from different IP addresses and log in using a multi proxy service such hide.me, hideMyass, hidester, anonymouse, zend2, megaproxy and many others. Use one account as the primary posting and marketing user, and the others are merely for supporting the primary with gratitude posts and inquiries which you answer quickly and even maintain a conversation.

Build Your Post Count

Many forums will have an initial post count required to be able to post links, add a signature or images. Complete that requirement, but do not spam! Stay on topic and post only what you know of. Information on anything is at your fingertips, so anything you don't know, you can quickly research and post. Even if it is verbatim copy. If it's based on support of an application such as Joomla, get involved in posts which have already been answered but no solution defined. Give a related opinion that makes some sense, though it may not resolve the issue. Within a few hours you will reach the required minimum posts. This is where your additional supporting accounts help because you can increase your post count quickly by asking questions and answering your own.

Create A Signature

Don't be quick to drop a linked signature, even if allowed. Start with something that gives credit to the application. Something like "Thanks to Joomla, websites are much better today". Let that run for a few days. Gotta be patient. Once your post count hits about 50 and you've contributed valuable assistance or advice, change your signature to represent your business purpose. You may have a limited character count so make it fit. A forum like Joomla will not allow short URLs so avoid long titled links.

Make The Forum Your Blog

Many forums will create a subforum called "Lounge" or similar where they allow posting of non related value. Use that area to post articles that subtly support your marketing purpose. If you sell plugins for the Joomla CMS, drop posts which advises on certain features that your extension provides, without mentioning the name or developer of the extension. For instance: If it's a slideshow for Joomla content articles, write about the benefits of sliding articles, the best position to place it, how it affects SEO positively and so on. If the discussion gets flowing, the post will remain at the top and the views will grow, and your signature link will be click just from curiosity. The secondary benefit is that search engines will cache the post, so try to make the title close to commonly searched phrases.

Send Private Messages And Emails

If the forum allows private messaging and emailing among members, use it! Again just be subtle, some members may be bitchy whiners who quickly report to the admins. Be selective. If someone has sought assistance and no solution has been provided by those 'helping', send a private message offering free assistance by email and give your email address, also give a clue that you do have knowledge of the technicalities. Once they communicate by email, give them all the options that will fix their troubles. Show them the free solution along with the priced.

Don't Get Into Fights

There will always be the haters who are upset that a newcomer is doing better that them and they will throw fighting words. Just ignore them, regardless of the aggression and childish insults. Stick to your purpose. 'Keyboard fights' will only waste your entire day and get you flustered and your productivity ends. That's what the fools want, so don't fall into their trap.This is also where your supporting accounts come in. Use them to thank your self for the help, even though the haters have discredited your post. Do not use all your supporting cast in many posts at the same time, else the haters will see a pattern and alert the board gods.

 

Conclusion

It is all about clean business. Your goal is solely to market your products and services without high advertising costs. There is absolutely nothing unethical or deceptive about forum marketing, and anyone who says otherwise simply holds a grudge and is a damn idiot.

All the same methods are applicable within Facebook groups which have the same massive buyer resource. Don't miss out!

Why an option to display the 'about me' user profile field in articles written by the user, is not yet a default function in a supreme CMS as Joomla, is indeed a mystery! Many Joomla users seek this ability, and if asked in the Joomla "support" forum, the so-called branded "joomla masters" tend to send the inquirer to the Joomla Extensions Directory to install yet another unnecessary addon. Stop It! Joomla is developed to be configurable.

The Method (see video guide below)

1. Create A Layout Override

Joomla is equipped with a superb template override system to manipulate most display files for your preferred appearance.

  • Go to Extensions > Templates
  • Click the name of your default template (highlighted star), under the column titled Template.
  • Click the tab labeled Overrides
  • Under the column titled Layouts, click Joomla then click content

The page will refresh and show the confirmation of the override creation. Now edit the file

  • Click the tab labeled Editor
  • Click through directories html > layouts > joomla > content > info_block
  • Click the file named author.php to open the code editor on the right

 

2. Edit The Override File Name author.php

html/layouts/joomla/content/info_block/author.php

Add the following to the top within the <?php tag. This gets the author ID of the currently viewed article, then creates an output variable of the user profile aboutme through the JUserHelper class.

// get author ID
$authorId = $displayData['item']->created_by;

// get user profile field data
$authordetail = JUserHelper::getProfile($authorId)->profile['aboutme'];
$authorwebsite = JUserHelper::getProfile($authorId)->profile['website'];

 

then add the output variable where you desire

	<?php // the output
	if( !empty($authordetail) ) { ?>
	<div class="aboutme">
		<?php echo $authordetail; ?>
		<?php if( !empty($authorwebsite) ) { ?>
			<p><a href='<?php echo $authorwebsite; ?>' rel="nofollow" target="_blank">Author's Website</a></p>
		<?php } ?>
	</div>
	<?php } ?>

 

The completed file should look like this. A <div> wrap was added so the out put can be formatted with css.

<?php
/**
 * @package     Joomla.Site
 * @subpackage  Layout
 *
 * @copyright   Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('JPATH_BASE') or die;

// get author ID
$authorId = $displayData['item']->created_by;

// get user profile field data
$authordetail = JUserHelper::getProfile($authorId)->profile['aboutme'];
$authorwebsite = JUserHelper::getProfile($authorId)->profile['website'];
//uncomment either of the following to see the available array values you can use to return any output
//print_r($displayData['item']);
//print_r(JUserHelper::getProfile($authorId)->profile);
?>
<dd class="createdby" itemprop="author" itemscope itemtype="https://schema.org/Person">
	<?php $author = ($displayData['item']->created_by_alias ?: $displayData['item']->author); ?>
	<?php $author = '<span itemprop="name">' . $author . '</span>'; ?>
	<?php if (!empty($displayData['item']->contact_link ) && $displayData['params']->get('link_author') == true) : ?>
		<?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY', JHtml::_('link', $displayData['item']->contact_link, $author, array('itemprop' => 'url'))); ?>
	<?php else : ?>
		<?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY', $author); ?>
	<?php endif; ?>
	
	<?php // the output
	if( !empty($authordetail) ) { ?>
	<div class="aboutme">
	<h4>About The Author</h4>
		<?php echo $authordetail; ?>
		<?php if( !empty($authorwebsite) ) { ?>
			<p><a href="/<?php echo $authorwebsite; ?>" rel="nofollow" target="_blank">Author's Website</a></p>
		<?php } ?>
	</div>
	<?php } ?>
</dd>

 

Now the article aboutme text will display where the article info is assigned. Of course you must enable Show Author either in the content global configuration, or in the menu item options.

The Output

author-profile-shown-with-article.jpg

 

Video Guide

[videoplayer/]

Page 1 of 6

 

Copyright © 2017 CMSEnergizer.com. All Rights Reserved.
This website is powered by the Joomla!©™ 3 Website Framework | File download and article manager component by K2 | Advanced Module Manager and Modules Anywhere by NoNumber Elements | Website hosting and development by WebsiteDons

CMSEnergizer.com is owned and operated by Emuzement Net Inc, 4532 West Kennedy Blvd. Ste 180 33609 Tampa, Florida USA