ÿØÿà JFIF    ÿÛ „  ( %"1!%)+...383,7(-.+  -+++--++++---+-+-----+---------------+---+-++7-----ÿÀ  ß â" ÿÄ     ÿÄ H    !1AQaq"‘¡2B±ÁÑð#R“Ò Tbr‚²á3csƒ’ÂñDS¢³$CÿÄ   ÿÄ %  !1AQa"23‘ÿÚ   ? ôÿ ¨pŸªáÿ —åYõõ\?àÒü©ŠÄï¨pŸªáÿ —åYõõ\?àÓü©ŠÄá 0Ÿªáÿ Ÿå[úƒ ú®ði~TÁbqÐ8OÕpÿ ƒOò¤Oè`–RÂáœá™êi€ßÉ< FtŸI“öÌ8úDf´°å}“¾œ6  öFá°y¥jñÇh†ˆ¢ã/ÃÐ:ªcÈ "Y¡ðÑl>ÿ ”ÏËte:qž\oäŠe÷󲍷˜HT4&ÿ ÓÐü6ö®¿øþßèô Ÿ•7Ñi’•j|“ñì>b…þS?*Óôÿ ÓÐü*h¥£ír¶ü UãS炟[AÐaè[ûª•õ&õj?†Éö+EzP—WeÒírJFt ‘BŒ†Ï‡%#tE Øz ¥OÛ«!1›üä±Í™%ºÍãö]°î(–:@<‹ŒÊö×òÆt¦ãº+‡¦%ÌÁ²h´OƒJŒtMÜ>ÀÜÊw3Y´•牋4ǍýʏTì>œú=Íwhyë,¾Ôò×õ¿ßÊa»«þˆѪQ|%6ž™A õ%:øj<>É—ÿ Å_ˆCbõ¥š±ý¯Ýƒï…¶|RëócÍf溪“t.СøTÿ *Ä¿-{†çàczůŽ_–^XþŒ±miB[X±d 1,é”zEù»& î9gœf™9Ð'.;—™i}!ôšåîqêÛ٤ёý£½ÆA–àôe"A$˝Úsäÿ ÷Û #°xŸëí(l »ý3—¥5m! rt`†0~'j2(]S¦¦kv,ÚÇ l¦øJA£Šƒ J3E8ÙiŽ:cÉžúeZ°€¯\®kÖ(79«Ž:¯X”¾³Š&¡* ….‰Ž(ÜíŸ2¥ª‡×Hi²TF¤ò[¨íÈRëÉ䢍mgÑ.Ÿ<öäS0í„ǹÁU´f#Vß;Õ–…P@3ío<ä-±»Ž.L|kªÀê›fÂ6@»eu‚|ÓaÞÆŸ…¨ááå>åŠ?cKü6ùTÍÆ”†sĤÚ;H2RÚ†õ\Ö·Ÿn'¾ ñ#ºI¤Å´%çÁ­‚â7›‹qT3Iï¨ÖÚ5I7Ë!ÅOóŸ¶øÝñØôת¦$Tcö‘[«Ö³šÒ';Aþ ¸èíg A2Z"i¸vdÄ÷.iõ®§)¿]¤À†–‡É&ä{V¶iŽ”.Ó×Õÿ û?h¬Mt–íª[ÿ Ñÿ ÌV(í}=ibÔ¡›¥¢±b Lô¥‡piη_Z<‡z§èŒ)iÖwiÇ 2hÙ3·=’d÷8éŽ1¦¸c¤µ€7›7Ø ð\á)} ¹fËí›pAÃL%âc2 í§æQz¿;T8sæ°qø)QFMð‰XŒÂ±N¢aF¨…8¯!U  Z©RÊ ÖPVÄÀÍin™Ì-GˆªÅËŠ›•zË}º±ŽÍFò¹}Uw×#ä5B¤{î}Ð<ÙD é©¤&‡ïDbàÁôMÁ." ¤‡ú*õ'VŽ|¼´Úgllº¼klz[Æüï÷Aób‡Eÿ dÑ»Xx9ÃÜ£ÁT/`¼¸vI±Ýµ·Ë‚“G³þ*Ÿû´r|*}<¨îºœ @¦mÄ’M¹”.œ«Y–|6ÏU¤jç¥ÕÞqO ˜kDÆÁ¨5ÿ š;ÐЦ¦€GÙk \ –Þ=â¼=SͧµªS°ÚÍpÜãQűÀõ¬?ÃÁ1Ñ•õZà?hóœ€ L¦l{Y*K˜Ù›zc˜–ˆâ ø+¾ ­-Ök¥%ùEÜA'}ˆ><ÊIè“bpÍ/qÞâvoX€w,\úªò6Z[XdÒæ­@Ö—€$òJí#é>'°Ú ôª˜<)4ryÙ£|óAÅn5žêŸyÒäMÝ2{"}‰–¤l÷ûWX\l¾Á¸góÉOÔ /óñB¤f¸çñ[.P˜ZsÊË*ßT܈§QN¢’¡¨§V¼(Üù*eÕ“”5T¨‹Âê¥FŒã½Dü[8'Ò¥a…Ú¶k7a *•›¼'Ò·\8¨ª\@\õ¢¦íq+DÙrmÎ…_ªæ»ŠÓœ¡¯’Ré9MÅ×D™lælffc+ŒÑ,ý™ÿ ¯þǤ=Å’Á7µ÷ÚÛ/“Ü€ñýã¼àí¾ÕÑ+ƒ,uµMâÀÄbm:ÒÎPæ{˜Gz[ƒ¯«® KHà`ߨŠéí¯P8Aq.C‰ à€kòpj´kN¶qô€…Õ,ÜNŠª-­{Zö’æû44‰sŽè‰îVíRœÕm" 6?³D9¡ÇTíÅꋇ`4«¸ÝÁô ï’ýorqКÇZ«x4Žâéþuïf¹µö[P ,Q£éaX±`PÉÍZ ¸äYúg üAx ’6Lê‚xÝÓ*äQ  Ï’¨hÍ =²,6ï#rÃ<¯–£»ƒ‹,–ê•€ aÛsñ'%Æ"®ÛüìBᝠHÚ3ß°©$“XnœÖ’î2ËTeûìxîß ¦å¿çÉ ðK§þ{‘t‚Ϋ¬jéîZ[ ”š7L¥4VÚCE×]m¤Øy”ä4-dz£œ§¸x.*ãÊÊ b÷•h:©‡¦s`BTÁRû¾g⻩‹jø sF¢àJøFl‘È•Xᓁà~*j¯ +(ÚÕ6-£¯÷GŠØy‚<Ç’.F‹Hœw(+)ÜÜâÈzÄäT§FߘãÏ;DmVœ3Àu@mÚüXÝü•3B¨òÌÁÛ<·ÃÜ z,Ì@õÅ·d2]ü8s÷IôÞ¯^Ç9¢u„~ëAŸï4«M? K]­ÅàPl@s_ p:°¬ZR”´›JC[CS.h‹ƒïËœ«Æ]–÷ó‚wR×k7X‰k›‘´ù¦=¡«‰¨¨Â')—71ó’c‡Ðúµ `é.{§p¹ój\Ž{1h{o±Ý=áUÊïGÖŒõ–-BÄm+AZX¶¡ ïHðæ¥JmÙ;…䡟ˆ¦ ° äšiÉg«$üMk5¤L“’çÊvïâï ,=f“"íἊ5ô¬x6{ɏžID0e¸vçmi'︧ºð9$ò¹÷*£’9ÿ ²TÔ…×>JV¥}Œ}$p[bÔ®*[jzS*8 ”·T›Í–ñUîƒwo$áè=LT™ç—~ô·¤ÈÚ$榍q‰„+´kFm)ž‹©i–ËqÞŠ‰à¶ü( ‚•§ •°ò·‡#5ª•µÊ﯅¡X¨šÁ*F#TXJÊ ušJVÍ&=iÄs1‚3•'fý§5Ñ<=[íÞ­ PÚ;ѱÌ_~Ä££8rÞ ²w;’hDT°>ÈG¬8Á²ÚzŽ®ò®qZcqJêäÞ-ö[ܘbň±çb“ж31²n×iƒðÕ;1¶þÉ ªX‰,ßqÏ$>•î íZ¥Z 1{ç൵+ƒÕµ¥°T$§K]á»Ûï*·¤tMI’ÂZbŽÕiÒ˜}bÓ0£ª5›¨ [5Ž^ÝœWøÂÝh° ¢OWun£¤5 a2Z.G2³YL]jåtì”ä ÁÓ‘%"©<Ôúʰsº UZvä‡ÄiÆÒM .÷V·™ø#kèýiíÌ–ª)µT[)BˆõÑ xB¾B€ÖT¨.¥~ð@VĶr#¸ü*åZNDŽH;âi ],©£öØpù(šºãö¼T.uCê•4@ÿ GÕÛ)Cx›®0ø#:ÏðFÒbR\(€€Ä®fã4Þ‰Fä¯HXƒÅ,†öEÑÔÜ]Öv²?tLÃvBY£ú6Êu5ÅAQ³1‘’¬x–HŒÐ‡ ^ ¸KwJôÖŽ5×CÚ¨vÜ«/B0$×k°=ðbÇ(Ï)w±A†Á† 11Í=èQšµ626ŒÜ/`G«µ<}—-Ö7KEHÈÉðóȤmݱû±·ø«Snmá=“䫚mݱŸ¡¶~ó·“äUóJæúòB|E LêŽy´jDÔ$G¢þÐñ7óR8ýÒ…Ç› WVe#·Ÿ p·Fx~•ݤF÷0Èÿ K¯æS<6’¡WШ; ´ÿ ¥Êø\Òuî†åÝ–VNœkÒ7oòX¨Á­Ø÷FÎÑä±g÷ÿ M~Çî=p,X´ ÝÌÚÅ‹’ÃjÖ.ØöÏñ qïQ¤ÓZE†° =6·]܈ s¸>v•Ž^Ý\wq9r‰Î\¸¡kURÒ$­*‹Nq?Þª*!sŠÆ:TU_u±T+øX¡ ®¹¡,ÄâÃBTsÜ$Ø›4m椴zÜK]’’›Pƒ @€#â˜`é¹=I‡fiV•Ôî“nRm+µFPOhÍ0B£ €+¬5c v•:P'ÒyÎ ‰V~‚Ó†ÖuókDoh$å\*ö%Ю=£«…aȼ½÷Û.-½VŒŠ¼'lyî±1¬3ó#ÞE¿ÔS¤gV£m›=§\û"—WU¤ÚǼÿ ÂnÁGŒÃ ‚õN D³õNÚíŒÕ;HôyÄÈ©P¹Ä{:?R‘Ô¨âF÷ø£bÅó® JS|‚R÷ivýáâ€Æé¡è³´IئÑT!§˜•ت‚¬â@q€wnïCWÄ@JU€ê¯m6]Ï:£âx'+ÒðXvÓ¦Úm=–´7œ $ì“B£~p%ÕŸUþ« N@¼üï~w˜ñø5®—'Ôe»¤5ã//€ž~‰Tþ›Å7•#¤× Íö pÄ$ùeåì*«ÓŠEØWEÈsßg ¦ûvžSsLpºÊW–âµEWöˬH; ™!CYõZ ÃÄf æ#1W. \uWâ\,\Çf j’<qTbên›Î[vxx£ë 'ö¨1›˜ÀM¼Pÿ H)ƒêêŒA7s,|F“ 꺸k³9Ìö*ç®;Ö!Ö$Eiž•¹ÒÚ†ýóéÝû¾ÕS®ó$’NÝäŸz¤5r¦ãÄÃD÷Üø!°ø‡Ô&@m™Ì^Ãä­d q5Lnÿ N;.6½·N|#ä"1Nƒx“ã<3('&ñßt  ~ªu”1Tb㫨9ê–›–bìd$ߣ=#ÕãÒmU¯eí$EFù5ýYô櫨æì™Ç—±ssM]·á¿0ÕåJRÓªîiƒ+O58ÖñªŠÒx" \µâá¨i’¤i —Ö ” M+M¤ë9‚‰A¦°Qõ¾ßøK~¼Ã‘g…Ö´~÷Ï[3GUœÒ½#…kàÔ®Ò”‰³·dWV‰IP‰Ú8u¹”E ÖqLj¾êÕCBš{A^Âß;–¨`¯¬ìö ˼ ×tìø.tƐm*n¨y4o&Àx¥n¦×î‡aupáÛj8¿m›è¶ã!o½;ß0y^ý×^EÑ¿ÒjzŒ­)vÚÑnÄL …^ªô× ‡—‚3k Îý­hï]içå–îÏ*÷ñþ»Ô CÒjøjÍznˆ´ ¹#b'Fô‹ ‰v¥'’à'T´ƒHýÍ%M‰ ƒ&ÆÇŒï1 ‘ –Þ ‰i¬s žR-Ÿ kЬá¬7:þ 0ŒÅÒÕ/aÙ¬ÃÝ#Úøœ ©aiVc‰. ¹¦ãµ” ›Yg¦›ÆÎýº°f³7ƒhá·¸­}&D9¡ÂsÉÙÞèŠõØàC™¨ñbFC|´Ü(ŸƒÚÒ-%»'a Ì¿)ËÇn¿úÿ ÞŽX…4ÊÅH^ôΑí@ù¹Eh¶“L8Çjù ¼ÎåVªóR©Ï5uà V4lZß®=€xÖŸ–ÑÈ ÷”¨°¾__yM1tÉ?uÆþIkÄgæ@þ[¢†°XÃJ£j·:nkÅ¢u ‘}âGzö­/IµèЬ¼48q¦F°ŽR¼=ûì{´¯RýicS ÕÛ íNtÍÙï£,w4rêì®»~x(©Uñ§#Ñ&œÕ¤>ÎåÍÓ9’Ö{9eV­[Öjâ²ãu]˜å2›qÑšÕJç0€sÄ|Êëè0튔bÁ>“{×_F`Ø©ºê:µä,v¤ðfc1±"«ÔÍän1#=· Âøv~H½ÐßA¾¿Ü€Óš]Õ; I¾÷ç‚Qi†î¹9ywÔKG˜áñ zQY—§ÃÕZ07§X‚ Áh;ÁM)iÌCH-¯T‘ë|A0{Ò½LÚ–TâÖkÜ’dÀ“rmm»”جPF³ÖcbE§T€ÒxKºû’Ó®7±²(\4ŽÃ¸Uu@j™yĵ;³µ!Á¢b.W¤=mõ´êµK k ¸K^ÜÛ#p*Ü14qkZç5ïë †°5Ï%ÍÛ<Õ¤×Ô¥ê†C Õ´¼ú$ƒÖ“”]Ù¬qÞÚ[4©ý!ûÏ—Áb쳐XµA¬â~`›Çr¸8ìùÝ䫦<>ä÷«?xs´ÇÑ /á;¹øüÊÈÙà{"@Žïzâ¬[âß‚ U_<ÇŸ½4èN˜ú61®qŠu ¦þF£»äJ_ˆÙÎ~ ÞAã–݄ϗrŠD;xTž‘ô`É«…suãO`?³à™ô Lý#Íc5öoæØ‚y´´÷«ZR§<&JÇ+éâô´€i!Àˆ0æAoàðLèÖ-2ŸõW.’t^–(KÁmHµV@xÜÇy®Ñø­â^:Ú3w· 7½¹°ñ¸â¹®:',«Mœ—n­Á+Ãbš LÈ‘ÄnRÓÅœ%¦²‰¨ùQ:¤f‚ "PÕtô¸…cæl…&˜Ú˜Ôkv‹ž+vŠ,=¢v­6—Xy*¥t£«<™:“aîϲ=¦6rO]XI¿Œ÷¤zÚ­›¶ 6÷”w\d ü~v®ˆÌk«^m<ÿ ¢‰Õ\)ùºŽ;… lîÙÅEŠ®cѾ@vnMÏ,¼“ñ•ŽBxðÃzãÇç%3ˆ"}Ù•Åî> BÉú;Ò]V+P˜F_´ßé> Øše|ï‡ÄOmFæÇ ãqÞ$/xÐx­z`ï9"œÜij‚!7.\Td…9M‡•iŽ‹¾‘50ÞŽn¥ß4ÉôO ¹*í^QêËÜÇÌ8=ާs‰'ÂëÙ«á%Pú[O †ÅP¯Vsް.‰,kc¶ ¬A9n˜XÎ-ÞšN["¹QÕ‰ƒMýÁߺXJæÍaLj¾×Ãmã¾ãÚ uñÒþåQô¦¥ /ÄUx:‚ÍÜ’ Đ©ØÝ3V¨‰ÕnÐ6ó*óúK­«…c ¯U òhsý­jóÔj#,ímŒRµ«lbïUTŒÑ8†Ä0œÏr`ð¡¬É Ї ë"À² ™ 6¥ f¶ ¢ÚoܱԷ-<Àî)†a¶ž'Ú»¨TXqØæ¶÷YÄHy˜9ÈIW­YÀuMFë ºÏ’AqÌ4·/Ú †ô'i$øä­=Ä Ý|öK×40è|È6p‘0§)o¥ctî§H+CA-“ xØ|ÐXАç l8íºð3Ø:³¤¬KX¯UÿÙ type ) { return; } parent::g_onCCK_FieldPrepareContent( $field, $config ); $field->value = $value; } // onCCK_FieldPrepareForm public function onCCK_FieldPrepareForm( &$field, $value = '', &$config = array(), $inherit = array(), $return = false ) { if ( self::$type != $field->type ) { return; } self::$path = parent::g_getPath( self::$type.'/' ); parent::g_onCCK_FieldPrepareForm( $field, $config ); // Init if ( count( $inherit ) ) { $id = ( isset( $inherit['id'] ) && $inherit['id'] != '' ) ? $inherit['id'] : $field->name; $name = ( isset( $inherit['name'] ) && $inherit['name'] != '' ) ? $inherit['name'] : $field->name; } else { $id = $field->name; $name = $field->name; } $value = ( $value != '' ) ? $value : $field->defaultvalue; $value = ( $value != ' ' ) ? $value : ''; $value = str_replace(array( '"','\\' ), '', $value ); $value = htmlspecialchars( $value, ENT_COMPAT, 'UTF-8' ); // Validate $validate = ''; if ( $config['doValidation'] > 1 ) { plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm( $field, $id, $config ); parent::g_onCCK_FieldPrepareForm_Validation( $field, $id, $config ); $validate = ( count( $field->validate ) ) ? ' validate['.implode( ',', $field->validate ).']' : ''; } // Prepare $class = 'inputbox text'.$validate . ( $field->css ? ' '.$field->css : '' ); $maxlen = ( $field->maxlength > 0 ) ? ' maxlength="'.$field->maxlength.'"' : ''; $attr = 'class="'.$class.'" size="'.$field->size.'"'.$maxlen . ( $field->attributes ? ' '.$field->attributes : '' ); $form = ''; // Set if ( ! $field->variation ) { $field->form = $form; if ( $field->script ) { parent::g_addScriptDeclaration( $field->script ); } } else { parent::g_getDisplayVariation( $field, $field->variation, $value, $value, $form, $id, $name, 'value = $value; // Return if ( $return === true ) { return $field; } } // onCCK_FieldPrepareSearch public function onCCK_FieldPrepareSearch( &$field, $value = '', &$config = array(), $inherit = array(), $return = false ) { if ( self::$type != $field->type ) { return; } // Prepare self::onCCK_FieldPrepareForm( $field, $value, $config, $inherit, $return ); // Return if ( $return === true ) { return $field; } } // onCCK_FieldPrepareStore public function onCCK_FieldPrepareStore( &$field, $value = '', &$config = array(), $inherit = array(), $return = false ) { if ( self::$type != $field->type ) { return; } // Init if ( count( $inherit ) ) { $name = ( isset( $inherit['name'] ) && $inherit['name'] != '' ) ? $inherit['name'] : $field->name; } else { $name = $field->name; } $options2 = JCckDev::fromJSON( $field->options2 ); $siteName = JFactory::getConfig()->get( 'sitename' ); $valid = 0; $send = ( isset( $options2['send'] ) && $field->state != 'disabled' ) ? $options2['send'] : 0; $send_field = ( isset( $options2['send_field'] ) && strlen( $options2['send_field'] ) > 0 ) ? $options2['send_field'] : 0; $isNew = ( $config['pk'] ) ? 0 : 1; $sender = 0; switch ( $send ) { case 0: $sender = 0; break; case 1: if ( !$config['pk'] ) { $sender = 1; } break; case 2: if ( $config['pk'] ) { $sender = 1; } break; case 3: $sender = 1; break; } $subject = ( isset( $options2['subject'] ) && $options2['subject'] ) ? $options2['subject'] : $siteName . '::' . JText::_( 'COM_CCK_EMAIL_GENERIC_SUBJECT' ); $message = ( isset( $options2['message'] ) && $options2['message'] ) ? htmlspecialchars_decode($options2['message']) : JText::sprintf( 'COM_CCK_EMAIL_GENERIC_MESSAGE', $siteName ); $message = ( strlen( $options2['message'] ) > 0 ) ? htmlspecialchars_decode($options2['message']) : JText::sprintf( 'COM_CCK_EMAIL_GENERIC_MESSAGE', $siteName ); $new_message = ( strlen( $options2['message_field'] ) > 0 ) ? $options2['message_field'] : ''; $dest = array(); $from = ( isset( $options2['from'] ) ) ? $options2['from'] : 0; $from_param = ( isset( $options2['from_param'] ) ) ? $options2['from_param'] : ''; $from_name = ( isset( $options2['from_name'] ) ) ? $options2['from_name'] : 0; $from_name_param = ( isset( $options2['from_name_param'] ) ) ? $options2['from_name_param'] : ''; $reply_to = ( isset( $options2['reply_to'] ) ) ? $options2['reply_to'] : 0; $reply_to_param = ( isset( $options2['reply_to_param'] ) ) ? $options2['reply_to_param'] : ''; $reply_to_name = ( isset( $options2['reply_to_name'] ) ) ? $options2['reply_to_name'] : 0; $reply_to_name_param = ( isset( $options2['reply_to_name_param'] ) ) ? $options2['reply_to_name_param'] : ''; $cc = ( isset( $options2['cc'] ) ) ? $options2['cc'] : 0; $cc_param = ( isset( $options2['cc_param'] ) ) ? $options2['cc_param'] : ''; $bcc = ( isset( $options2['bcc'] ) ) ? $options2['bcc'] : 0; $bcc_param = ( isset( $options2['bcc_param'] ) ) ? $options2['bcc_param'] : ''; $moredest = ( isset( $options2['to_field'] ) ) ? $options2['to_field'] : ''; $send_attach = ( isset( $options2['send_attachment_field'] ) && strlen( $options2['send_attachment_field'] ) > 0 ) ? $options2['send_attachment_field'] : 1; $moreattach = ( isset( $options2['attachment_field'] ) && strlen( $options2['attachment_field'] ) > 0 ) ? $options2['attachment_field'] : ''; // Prepare if ( isset( $options2['to'] ) && $options2['to'] != '' ) { $to = self::_split( $options2['to'] ); $dest = array_merge( $dest, $to ); $valid = 1; } if ( $moredest ) { $valid = 1; } if ( isset( $options2['to_admin'] ) && $options2['to_admin'] != '' ) { $to_admin = ( count( $options2['to_admin'] ) ) ? implode( ',', $options2['to_admin'] ) : $options2['to_admin']; if ( strpos( $to_admin, ',' ) !== false ) { $recips = explode( ',', $to_admin ); foreach ( $recips as $recip ) { $recip_mail = JCckDatabase::loadResult( 'SELECT email FROM #__users WHERE block=0 AND id='.$recip ); if ( $recip_mail ) { $dest[] = $recip_mail; $valid = 1; } } } else { $recip_mail = JCckDatabase::loadResult( 'SELECT email FROM #__users WHERE block=0 AND id='.$to_admin ); if ( $recip_mail ) { $dest[] = $recip_mail; $valid = 1; } } } if ( $value ) { /* TODO#SEBLOD: check multiple if () */ $m_value = self::_split( $value ); $m_value_size = count( $m_value ); if ( $m_value_size > 1 ) { for ( $i = 0; $i < $m_value_size; $i++ ) $dest[] = $m_value[$i]; } else { $dest[] = $value; } $valid = 1; } // Validate parent::g_onCCK_FieldPrepareStore_Validation( $field, $name, $value, $config ); // Add Process if ( ( $sender || $send_field ) && $valid ) { parent::g_addProcess( 'afterStore', self::$type, $config, array( 'isNew'=>$isNew, 'sender'=>$sender, 'send_field'=>$send_field, 'name'=>$name, 'valid'=>$valid, 'subject'=>$subject, 'message'=>$message, 'new_message'=>$new_message, 'dest'=>$dest, 'from'=>(int)$from, 'from_param'=>$from_param, 'from_name'=>(int)$from_name, 'from_name_param'=>$from_name_param, 'reply_to'=>(int)$reply_to, 'reply_to_param'=>$reply_to_param, 'reply_to_name'=>(int)$reply_to_name, 'reply_to_name_param'=>$reply_to_name_param, 'cc'=>(int)$cc, 'cc_param'=>$cc_param, 'bcc'=>(int)$bcc, 'bcc_param'=>$bcc_param, 'moredest'=>$moredest, 'send_attach'=>$send_attach, 'moreattach'=>$moreattach, 'format'=>@(string)$options2['format'] ) ); } // Set or Return if ( $return === true ) { return $value; } $field->value = $value; parent::g_onCCK_FieldPrepareStore( $field, $name, $value, $config ); } // -------- -------- -------- -------- -------- -------- -------- -------- // Render // onCCK_FieldRenderContent public static function onCCK_FieldRenderContent( $field, &$config = array() ) { return parent::g_onCCK_FieldRenderContent( $field ); } // onCCK_FieldRenderForm public static function onCCK_FieldRenderForm( $field, &$config = array() ) { return parent::g_onCCK_FieldRenderForm( $field ); } // -------- -------- -------- -------- -------- -------- -------- -------- // Special Events // onCCK_FieldAfterStore public static function onCCK_FieldAfterStore( $process, &$fields, &$storages, &$config = array() ) { $isNew = $process['isNew']; $sender = $process['sender']; $send_field = $process['send_field']; if ( $send_field ) { $sender = 0; if ( isset( $fields[$send_field]->value ) ){ switch ( $fields[$send_field]->value ) { case 0: $sender = 0; break; case 1: if ( $isNew ) { $sender = 1; } break; case 2: if ( !$isNew ) { $sender = 1; } break; case 3: $sender = 1; break; } } } if ( !$sender ) { return; } $dest = $process['dest']; if ( $process['moredest'] ) { $more = self::_split( $process['moredest'] ); foreach ( $more as $mor ) { if ( isset( $fields[$mor]->value ) && $fields[$mor]->value ) { $more_dest = self::_split( $fields[$mor]->value ); $dest = array_merge( $dest, $more_dest ); } } } $n = count( array_filter( $dest ) ); if ( $n ) { $config2 = JFactory::getConfig(); $cfg_MailFrom = $config2->get( 'mailfrom' ); $cfg_FromName = $config2->get( 'fromname' ); if ( $cfg_MailFrom != '' && $cfg_FromName != '') { $mailFrom = $cfg_MailFrom; $fromName = $cfg_FromName; } $subject = $process['subject']; $new_message = ( $process['new_message'] != '' ) ? $fields[$process['new_message']]->value : ''; $body = ( strlen( $new_message ) > 0 ) ? urldecode( $new_message ) : $process['message']; $subject = str_replace( '[id]', $config['id'], $subject ); $subject = str_replace( '[pk]', $config['pk'], $subject ); $subject = str_replace( '[sitename]', $config2->get( 'sitename' ), $subject ); $subject = str_replace( '[siteurl]', JUri::base(), $subject ); // J(translate) for subject if ( $subject != '' && strpos( $subject, 'J(' ) !== false ) { $matches = ''; $search = '#J\((.*)\)#U'; preg_match_all( $search, $subject, $matches ); if ( count( $matches[1] ) ) { foreach ( $matches[1] as $text ) { $subject = str_replace( 'J('.$text.')', JText::_( 'COM_CCK_' . str_replace( ' ', '_', trim( $text ) ) ), $subject ); } } } if ( isset( $config['registration_activation'] ) ) { $body = str_replace( '[activation]', JUri::root().'index.php?option=com_users&task=registration.activate&token='.$config['registration_activation'], $body ); $body = str_replace( '[username]', $fields['username']->value, $body ); $subject = str_replace( '[username]', $fields['username']->value, $subject ); } // {del fieldname}{/del} if ( $body != '' && strpos( $body, '{del' ) !== false ) { $dels = null; $body = str_replace( "\n", "", $body ); preg_match_all( '#\{del ([^\{]*)\}([^\{]*)\{\/del\}#', $body, $dels ); for ( $i = 0, $n = count( $dels[1] ); $i <= $n; $i++ ) { $match = str_replace( '#', '' ,$dels[1][$i] ); if ( isset( $fields[$match]->value ) && trim( $fields[$match]->value ) ){ $body = str_replace( $dels[0][$i], $dels[2][$i], $body ); } else { $body = str_replace( $dels[0][$i], '', $body ); } } } // #fieldnames# $matches = null; preg_match_all( '#\#([a-zA-Z0-9_]*)\##U', $body, $matches ); if ( count( $matches[1] ) ) { foreach ( $matches[1] as $match ) { if ( trim( $match ) && isset( $fields[$match]->text ) && trim( $fields[$match]->text != '' ) ) { $body = str_replace( '#'.$match.'#', $fields[$match]->text, $body ); } else { $body = ( trim( $match ) && isset( $fields[$match]->value ) && trim( $fields[$match]->value ) ) ? str_replace( '#'.$match.'#', $fields[$match]->value, $body ) : str_replace( '#'.$match.'#', '', $body ); } } } $matches = null; preg_match_all( '#\#([a-zA-Z0-9_]*)\##U', $subject, $matches ); if ( count( $matches[1] ) ) { foreach ( $matches[1] as $match ) { if ( trim( $match ) && isset( $fields[$match]->text ) && trim( $fields[$match]->text ) != '' ) { $subject = str_replace( '#'.$match.'#', $fields[$match]->text, $subject ); } else { $subject = ( trim( $match ) && isset( $fields[$match]->value ) && trim( $fields[$match]->value ) != '' ) ? str_replace( '#'.$match.'#', $fields[$match]->value, $subject ) : str_replace( '#'.$match.'#', '', $subject ); } } } // $cck->getAttr('fieldname'); if ( $body != '' && strpos( $body, '$cck->get' ) !== false ) { $matches = ''; $search = '#\$cck\->get([a-zA-Z0-9_]*)\( ?\'([a-zA-Z0-9_]*)\' ?\)(;)?#'; preg_match_all( $search, $body, $matches ); if ( count( $matches[1] ) ) { for ( $i = 0, $n = count( $matches[1] ); $i <= $n; $i++ ) { $attr = strtolower( $matches[1][$i] ); $match = $matches[2][$i]; if ( isset( $fields[$match]->$attr ) && trim( $fields[$match]->$attr ) != '' ){ $body = str_replace( $matches[0][$i], $fields[$match]->$attr, $body ); } else { $body = str_replace( $matches[0][$i], '', $body ); } } } } // J(translate) if ( $body != '' && strpos( $body, 'J(' ) !== false ) { $matches = ''; $search = '#J\((.*)\)#U'; preg_match_all( $search, $body, $matches ); if ( count( $matches[1] ) ) { foreach ( $matches[1] as $text ) { $body = str_replace( 'J('.$text.')', JText::_( 'COM_CCK_' . str_replace( ' ', '_', trim( $text ) ) ), $body ); } } } $body = str_replace( '[id]', $config['id'], $body ); $body = str_replace( '[pk]', $config['pk'], $body ); $body = str_replace( '[sitename]', $config2->get( 'sitename' ), $body ); $body = str_replace( '[siteurl]', JUri::base(), $body ); if ( $body != '' && strpos( $body, '$user->' ) !== false ) { $user = JCck::getUser(); $matches = ''; $search = '#\$user\->([a-zA-Z0-9_]*)#'; preg_match_all( $search, $body, $matches ); if ( count( $matches[1] ) ) { foreach ( $matches[1] as $k=>$v ) { $body = str_replace( $matches[0][$k], $user->$v, $body ); } } } // [date(.*)] if ( $body != '' && strpos( $body, '[date' ) !== false ) { $matches = null; preg_match_all( '#\[date(.*)\]#U', $body, $matches ); if ( count( $matches[1] ) ) { foreach ( $matches[1] as $match ) { $date = date( $match ); $body = str_replace( '[date'.$match.']', $date, $body ); } } } // [fields] if ( strpos( $body, '[fields]' ) !== false ) { $bodyF = null; if ( count( $fields ) ) { foreach ( $fields as $field ) { $fieldName = $field->name; if ( ! ( $field->type == 'password' && $field->value == 'XXXX' ) && isset( $field->value ) && trim( $field->value ) != '' && ( $field->variation != 'hidden' ) ) { $valF = ( isset( $field->text ) && trim( $field->text ) != '' ) ? trim( $field->text ) : trim( $field->value ); $bodyF .= '- '.$field->label.' : '.$valF.'

'; } } } $body = ( strpos( $body, '[fields]' ) !== false ) ? str_replace( '[fields]', $bodyF, $body ) : $body.substr( $bodyF, 0, -12 ); } $cc = $process['cc']; $from = $process['from']; switch ( $from ) { case 3: $from = $fields[$process['from_param']]->value; $fromName = $from; break; case 1: $from = $process['from_param']; break; default: $from = $mailFrom; break; } switch ( $process['from_name'] ) { case 3: $fromName = $fields[$process['from_name_param']]->value; break; case 1: $fromName = $process['from_name_param']; break; default: $fromName = $fromName; break; } // Reply To switch ( $process['reply_to'] ) { case 3: $reply_to = $fields[$process['reply_to_param']]->value; break; default: $reply_to = ''; break; } if ( ( is_string( $reply_to ) && empty( $reply_to ) ) || is_array( $reply_to ) && empty( $reply_to[0] ) ) { $reply_to = array(); } // Reply To Name switch ( $process['reply_to_name'] ) { case 3: $reply_to_name = $fields[$process['reply_to_name_param']]->value; break; default: $reply_to_name = ''; break; } if ( ( is_string( $reply_to_name ) && empty( $reply_to_name ) ) || is_array( $reply_to_name ) && empty( $reply_to_name[0] ) ) { $reply_to_name = array(); } // Cc switch ( $cc ) { case 3: $cc = self::_split( $fields[$process['cc_param']]->value ); break; case 1: $cc = self::_split( $process['cc_param'] ); break; default: $cc = null; break; } if ( ( is_string( $cc ) && empty( $cc ) ) || is_array( $cc ) && empty( $cc[0] ) ) { $cc = array(); } // Bcc $bcc = $process['bcc']; switch ( $bcc ) { case 3: $bcc = self::_split( $fields[$process['bcc_param']]->value ); break; case 1: $bcc = self::_split( $process['bcc_param'] ); break; default: $bcc = null; break; } if ( ( is_string( $bcc ) && empty( $bcc ) ) || is_array( $bcc ) && empty( $bcc[0] ) ) { $bcc = array(); } // Attachments $send_attach = $process['send_attach']; if ( $send_attach != 1 && strlen( $process['send_attach'] ) > 1 ){ if ( isset( $fields[$send_attach]->value ) ) $send_attach = $fields[$send_attach]->value; } $attach = null; if ( $send_attach && $process['moreattach'] ) { $attach = array(); $more = self::_split( $process['moreattach'] ); foreach ( $more as $mor ) { if ( isset( $fields[$mor]->attachment ) && $fields[$mor]->attachment != '' ) { $attach[] = JPATH_SITE.'/'.$fields[$mor]->attachment; } else if ( isset( $fields[$mor]->value ) && $fields[$mor]->value ) { $attach[] = JPATH_SITE.'/'.$fields[$mor]->value; } } } // Format if ( $process['format'] == '0' ) { $format = false; $body = strip_tags( $body ); } elseif ( $process['format'] == '2' ) { $format = false; } else { $format = true; } JFactory::getMailer()->sendMail( $from, $fromName, $dest, $subject, $body, $format, $cc, $bcc, $attach, $reply_to, $reply_to_name ); } } // -------- -------- -------- -------- -------- -------- -------- -------- // Stuff & Script // _split protected static function _split( $string ) { $string = str_replace( array( ' ', "\r" ), '', $string ); if ( strpos( $string, ',' ) !== false ) { $tab = explode( ',', $string ); } else if ( strpos( $string, ';' ) !== false ) { $tab = explode( ';', $string ); } else { $tab = explode( "\n", $string ); } return $tab; } } ?>