Поиск по этому блогу

понедельник, 21 декабря 2015 г.

Хаки модуля "Call me back" Joomla

Чтобы сделать из формы обратного вызова баннер оборачиваем ее в три дива. Сначала, естественно, создаем копию модуля /html/mod_itf_call_me_back/default.php, а потом добавляем туда теги. Первоначальный код почти не изменился, хотя вопросы и есть..., но здесь только код с двумя добавленными строчками и одним хаком скрытой ссылки.

Сыылка на сайт разработчика есть в коде

Мои добавки в модуле - это две строчки, одна под номером 71, а другая предпоследняя. Почему я просто не вставил три закрывающих дива, а захотел их напечатать из PHP... Приятно было вспомнить..., что есть два варианта..., но в продакшене скорее всего сделаю, как положено...

Update: Сделал, но не получилось... (...чего-то забыл, но экспериментировать некогда...). Так что этот код и в продакшене (пока)...

In [ ]:
<div class="sein1"><div class="sein2"><div class="sein3">
....
 print "</div></div></div>";
In [ ]:
<?php
/**
 * @version  default.php 2 2011-11-04 - www.itfirmaet.dk
 * @package  mod_itf_call_back
 * @copyright Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
 * @license  GNU General Public License version 2 or later; 
 */
defined('_JEXEC') or die('Restricted access');

$showform = true;
$errormessage = "";
$buttonSubmit = JRequest::getVar('mod_itf_call_me_back_form_submit');
$recipient = $params->get('mod_itf_call_me_back_recipient');
$mod_itf_call_me_back_phonenumber_length =  $params->get('mod_itf_call_me_back_phonenumber_length');
$contact_phone = JRequest::getVar('contact_phone');
$contact_name = JRequest::getVar('contact_name');
$subjectandbody = $contact_name.' '.JText::_( 'MOD_ITF_CALL_ME_BACK_MAIL_TEXT' ).' : '.$contact_phone."\r\n\r\n";

if($buttonSubmit == JText::_( 'MOD_ITF_CALL_ME_BACK_SUBMIT' ))
{
 if($contact_phone != "" && $contact_phone != JText::_( 'MOD_ITF_CALL_ME_BACK_PHONE' ) && $contact_name != "" && $contact_name != JText::_( 'MOD_ITF_CALL_ME_BACK_NAME' ) && strlen($contact_phone) >= $mod_itf_call_me_back_phonenumber_length && !containsIlligalStrings($subjectandbody)) 
 {
  if($recipient == "demo@itfirmaet.dk")
  {
   $errormessage = "Message not send. The module is in demo mode"; 
  }
  else
  {
   $mail = JFactory::getMailer();
   if(stripos($recipient,";") > 0){
    $recipient = explode(";", $recipient);
   }  
   $mail->addRecipient($recipient);
   $mail->setSubject($subjectandbody);
   $mail->setBody($subjectandbody);
   if ($mail->Send() === true)
   {
    $redirectUrl =  $params->get('mod_itf_call_me_back_redirect');
    if($redirectUrl != ""){
     header("Location: ".$redirectUrl, true);
    }
    else
    {
     $showform = false;
    }
   }
   else
   {
    $errormessage = "Mail could not be send. Please check your mail settings in Joomla global configuration."; 
   }
  }
 }
 else
 {
  $errormessage = "Form is not valid"; 
 }
}

function containsIlligalStrings($str)
{
 $str = strtolower($str);
 if(strpos($str, "@") !== false) return true;
 if(strpos($str, "http") !== false) return true;
 if(strpos($str, "www") !== false) return true;
 if(strpos($str, "viagra") !== false) return true;
 if(strpos($str, "penis") !== false) return true;
 
 return false;
}
?>
<div class="sein1"><div class="sein2"><div class="sein3">
<script type="text/javascript">
<!--
 function validateForm( frm ) {
  if(frm.contact_name.value == '') {
   alert("<?php echo JText::_( 'MOD_ITF_CALL_ME_BACK_NAME_ERROR' );?>");
   return false;
  }
  if(frm.contact_name.value == '<?php echo JText::_( 'MOD_ITF_CALL_ME_BACK_NAME' );?>') {
   alert( "<?php echo JText::_( 'MOD_ITF_CALL_ME_BACK_NAME_ERROR' );?>");
   return false;
  }
  if(frm.contact_phone.value == '<?php echo JText::_( 'MOD_ITF_CALL_ME_BACK_PHONE' );?>') {
   alert( "<?php echo JText::_( 'MOD_ITF_CALL_ME_BACK_PHONE_ERROR' );?>");
   return false;
  }
  if(frm.contact_phone.value == '') {
   alert( "<?php echo JText::_( 'MOD_ITF_CALL_ME_BACK_PHONE_ERROR' );?>");
   return false;
  }
  if(frm.contact_phone.value.length < <?php print $mod_itf_call_me_back_phonenumber_length; ?> ) {
   alert( "<?php echo JText::sprintf( 'MOD_ITF_CALL_ME_BACK_PHONE_NUMBER_LENGTH_ERROR',$mod_itf_call_me_back_phonenumber_length );?>");
   return false;
  }
  
  return true;
 }
// -->
<!--
 function doClear( formField ) {
  if (formField.value == '<?php echo JText::_( 'MOD_ITF_CALL_ME_BACK_NAME' );?>' ){
    formField.value = "";
   }
  if (formField.value == '<?php echo JText::_( 'MOD_ITF_CALL_ME_BACK_PHONE' );?>' ){
    formField.value = "";
   }
 }
// -->

</script>


<?php
 if ($showform == true){
 if($params->get('mod_itf_call_me_back_headline') != ""){
?>
    <div class="se_hack"><h4 class="call_me_back_headline"><?php echo $params->get('mod_itf_call_me_back_headline');?></h4>
<?php
 }
?>
    <p class="call_me_back_pretext"><?php echo $params->get('mod_itf_call_me_back_intro');?></p>
    <form action="" method="post" class="form-validate" id="mod_itf_form" name="mod_itf_form" onsubmit="return validateForm(this);">
    <input type="hidden" name="action" value="CallMeUp" />
    <p class="call_me_back_form_name"><input onclick="doClear(this)" type="text" id="contact_name" name="contact_name" value="<?php echo JText::_( 'MOD_ITF_CALL_ME_BACK_NAME' );?>" class="inputbox input-medium" /></p>
    <p class="call_me_back_form_phone"><input type="text"  onclick="doClear(this)" id="contact_phone" name="contact_phone" value="<?php echo JText::_( 'MOD_ITF_CALL_ME_BACK_PHONE' );?>" class="inputbox input-medium" /></p>
    <p class="call_me_back_form_submit"><input type="submit" name="mod_itf_call_me_back_form_submit" value="<?php echo JText::_( 'MOD_ITF_CALL_ME_BACK_SUBMIT' );?>" class="button" /></p>
    </form>
<?php
 }else{   
?>
 <h4 class="call_me_back_headline"><?php echo $params->get('mod_itf_call_me_back_headline');?></h4>
 <p class="call_me_back_confirm_text"><?php echo $params->get('mod_itf_call_me_back_confirm');?></p>
<?php
 }
 
 if($errormessage != "")
 {
  print "<div style=\"color: red;\">".$errormessage."</div>"; 
 }
 $hidelink = "";
  if ($params->get('mod_itf_call_me_back_hide_credit')==1){
   $hidelink = "display: none;";
  }
  print "<div style=\"text-align: right; padding-right: 4px; font-size: 10px;".$hidelink."\"></div>";
     print "</div></div></div>";
?>

А еще мне не понравилась скрытая ссылка в (предпоследнем) print .$hidelink. И я ее снес..., не без нравственных метаний, но нельзя же так...



Посты чуть ниже также могут вас заинтересовать

Комментариев нет: