Joomla and Extensions Hacks

From HAA Best Practices Wiki
Jump to navigationJump to search

GMapsPro

Suppress map on user profile tab

joomla\components\com_comprofiler\plugin\user\plug_cbmapuser\mapnearbyuserstab.class.php;

Added:

return;

after the code block that does the geocoding right after the comment

// If the users profile needs to be geocoded and IF geocoding is enabled

The effect is to suppress the generation of the map on the user profile tab.

Fix problem with calls to www.sitename.org vs. sitename.org

// ORIG LINE	$query = 'SELECT * from #__gmaps_config where site = "' . $mosConfig_live_site . '"';
// NEW LINE	$query = 'SELECT * from #__gmaps_config limit 1';

Fixed problem in communitybuilderprofileadapter.class.php

Changed code to suppress second copy of avatar and to add View Profile link.

$desc = "<table><tr><td>"  
 . $row["name"] . "<br/>"
 . $row["cb_address"] . "<br/>"
 . $row["cb_city"] . ", " . $row["cb_state"] . "<br/>"	
 . "<a href='".$profile_path.$row["user_id"]."'>View Profile</a><br />"
 . "</td></tr>
</table>";

CBMailer

Modified to recognize special list selection keywords

Added the following code in cbmailing.class.php immediately after $filterby is set from the database

// We modify the filter depending on keywords included in the filter
// This code appears in cbmailing.class.php and must be changed in both places!!
// Note that there is no s() function here and we have a leading _  and an inserted
// ue. in the replacement filter

$database->setQuery("SELECT params FROM #__comprofiler_plugin WHERE name='HAAReunion'");
$database->query();
$haaparams = $database->loadResult();    // In the form 'ActiveReunion=15'
ereg('ActiveReunion=([0-9]+)', $haaparams, $arrYear);
$actyear = (string)$arrYear[1];
if (strlen($actyear) == 1 )
    {$actyear = '0'.$actyear;}
$prioryear = (string)(((int)$arrYear[1]) - 5);
if (strlen($prioryear) == 1 )
    {$prioryear = '0'.$prioryear;}

if (ereg('IsAttendingActiveReunion', $filterby))
    {$filterby = "_(ue.`cb_reunion".$actyear."` >'0')";}
else if (ereg('NotAttendingActiveReunion', $filterby))
    {$filterby = "_(ue.`cb_reunion".$actyear."` < '1' or `cb_reunion".$actyear."` is null)";}
else if (ereg('AttendedPriorReunion', $filterby))
    {$filterby = "_(ue.`cb_reunion".$prioryear."` > '1')";}
else if (ereg('DidNotAttendPriorReunion', $filterby))
    {$filterby = "_(ue.`cb_reunion".$prioryear."` < '2' or `cb_reunion".$actyear."` is null)";}

Fixed problem in Javascript in file

In the file admin.cbmailing.html.php commented out a closing brace (}) and added submitform(pressbutton); right before the final return. The syntax error was showing up in IE with debugging enabled. Once the brace was removed the form wasn't submitted without the call to submit form.

	
function messageForm( &$lists, &$config, $option ) {      
 ?>
 <script language="javascript" type="text/javascript">
     //function getSelectedValue(
    function submitbutton(pressbutton) {
    var form = document.adminForm;
    if (pressbutton == 'cancel') {
    submitform( pressbutton );
    return;
    }
    // do field validation
   if (form.mm_subject.value == ""){
      alert( "<?php echo _CB_MAILING_FILLINSUBJECT ?>" );      
      return false;
   } else if (getSelectedValue('adminForm','mm_group') < 0){
      alert( "<?php echo _CB_MAILING_SELECTAGROUP ?>" );
      return false;
   } else if (form.mm_message.value == ""){
      alert( "<?php echo _CB_MAILING_FILLINMESSAGE ?>" );
      return false;
   }
   submitform(pressbutton);
   return true;
}
//}     

A few lines further down added the line commented with WHB

// Get all users email
$query = "SELECT email FROM #__users u, #__comprofiler ue WHERE u.id=ue.id AND ue.approved=1 AND ue.banned!=1 AND ue.confirmed=1";
$query .= " AND ue.cb_mailoptin = 1";  // WHB Modification to honor optin field
if (! $this->cbMailingConfig["incBlocked"])
{
	$query .= " AND u.block!=1";
}

Supressed sending of blank email

in joomla\administrator\components\com_cbmailing\cbmailing.class.php Commented out the line calling mosMail in the following. It was trying to send an empty email, resulting in an error.

// MRCB DEBUG
/* $result = mosMail( $this->cbMailingConfig["debugFromAddr"], 
   $this->cbMailingConfig["debugFromDesc"], 
   $this->cbMailingConfig["debugToAddr"], 
   $this->cbMailingConfig["debugETitle"],
   $mailedDetails . $msg, 0);      */
// Uncomment the following line to display the message - would need to comment out the mosRedirect
//HTML_cbmailing::errorMessage( $mailedDetails . $msg, NULL );