Registrovat    Přihlášení
Domů Odkazy Fórum Ke stažení Web hosting Registrace do katalogů
Přihlásit
Jméno:

Heslo:

Pamatuj si mně



Zapomenuté heslo

Nová registrace
Partner a hosting webu
zserver.cz
Spolupráce
Odkazy
česká sociální síť rexVoX.com
Informace a projekty na rodinné domy naleznete v našem blogu.

Navštívit můžete také pasivní rodinné domy - dřevostavby, kde naleznete informace o pasivních stavbách.



Kategorie a fóra
Různé : Postupy Joomla - hacky kódu apod. adsmanager, sobi2, captcha
Napsal/a Kozoroh dne 13. 11. 2010 20:10:00 (25171 x otevřeno) Články od stejného autora



Adsmanager 2.5 - jednoduchý javascriptový antispam "captcha" do Adsmanageru v Joomle. Funguje v modu registrace i v modu bez registrace.


1)v adsmanageru přidejte textové pole, nazvěte jej overeni resp. ad_overeni, které se Vám automaticky doplní.

Do popisu dejte např.: Ověřovací číslovka: jedenáct
Nastavte další parametry, př. nápovědu
Uložte

2)editace souboru ...components/com_adsmanager/adsmanager.html.php

cca. řádek 1876 za komentářem // add up all error messages

upravte následovně nebo podobně:


// add up all error messages
                                                
				if (me[i].name == "ad_overeni" && mfrm.ad_overeni.value!="11"){
                                    errorMSG += me[i].getAttribute('mosLabel').replace('&nbsp;',' ') + ' : <?php echo html_entity_decode(addslashes('Vyplňte číslo jedenáct (číslovkou'),ENT_QUOTES); ?>\n';
                                    
                                    }	
                                 else{       
                                        
                                        	errorMSG += me[i].getAttribute('mosLabel').replace('&nbsp;',' ') + ' : <?php echo html_entity_decode(addslashes(ADSMANAGER_REGWARN_ERROR),ENT_QUOTES); ?>\n';
                                                
                                 }                 
                                                                                     
						// notify user by changing background color, in this case to red





Uložit. To by mělo být vše.
Vzhledem k tomu, že adsmanager stejně nejede pořádně s vypnutým Javascriptem, tak si myslím, že by to mohlo odradit většinu spam robotů i přesto, že je to řešeno pouze JS. Výkonnější roboti by mohly teoreticky přečíst podmínku testování a doplnit ji.




------------------
úprava css adsmanageru - názvy polí

1)width=100 změnit na width="" nebo na potřebnou šířku
...components/com_adsmanager/adsmanager.html.php
řádek cca. 1939
<td width=""><?php echo ADSMANAGER_FORM_CATEGORY; ?></td>


2)přidání class do td tagu + vertikální zarovnání
...components/com_adsmanager/adsmanager.html.php
řádek cca. 1160

upravit takto:
echo "<tr id='tr_".$field->name."'><td class='adsmanager_levy_td'>".$strtitle."</td>\n";

asi o 10 řádků níže je možné ještě upravit i levy td, takto

echo "<td class='adsmanager_pravy_td'>";



+

v css souboru... components/com_adsmanager/css/adsmanager.css na začátek vložit:

td.adsmanager_levy_td {
	vertical-align: middle;
}
adsmanager_pravy_td {
	
}





a upravit dle potřeby


--------------------------------------------
úprava pro vložení zavináče na pozici kurzoru v poli (adsmanager)
Lze použít po úpravě kdekoliv jinde i v jiných polích

.../components/com_adsmanager/adsmanager.html.php
řádek cca. 1180 upravit nějak takto:
 //pridano 
 echo "<tr id='tr_".$field->name."'><td class='adsmanager_levy_td'>".$strtitle;


                                 if($field->name=="ad_email") //misto add_email doplnit nazev sveho pole + nize take
	          {                                                 echo " <span style='border-bottom: 1px dotted #333;' onclick='insertAtCursor(document.adminForm.ad_email,\"@\");document.adminForm.ad_email.focus();' title='kliknutím na zavináč se přenese na poslední pozici kurzoru v poli.'>@?</span> "	;                                  }                                                                                                       echo "</td>\n";                     


na řádek cca. 1782 do javascriptu přidat funkci:


//pridano - pridani textu na pozici mysi              function insertAtCursor(myField, myValue) { //IE support if (document.selection) { myField.focus(); sel = document.selection.createRange(); sel.text = myValue; } //MOZILLA/NETSCAPE support else if (myField.selectionStart || myField.selectionStart == '0') { var startPos = myField.selectionStart; var endPos = myField.selectionEnd; myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length); } else { myField.value += myValue; } } // calling the function //insertAtCursor(document.formName.fieldName, 'this value'); 

  


-------------------------------------------
adsmanager, textarea - výpočet a zobrazení zbývajícího počtu znaků - odpočet znaků do konce.

.../components/com_adsmanager/adsmanager.html.php
řádek cca. 1786 s javascriptem upravit funkci CaracMax následovně:

function CaracMax(texte, max) 		{
                                          if (texte.value.length >= max) 			{ 				texte.value = texte.value.substr(0, max) ; 			}  
                                                                 
 //pridano - pocitani poctu znaku poli + nutno zmenit udalosti onkeypress na onkeyup   
                                    pripona=texte.id;                     id='adsmanager_znaky_' + pripona;                                        zbyvajici_znaky=(max  - texte.value.length);  
                  document.getElementById(id).innerHTML='zbývá: ' + zbyvajici_znaky + ' zn.';  		}                 



v tom samém souboru změnit události na textarea onkeypress na onkeyup (jinak to chybně počítá znaky do konce a při backspace)


v tom samém souboru najít řádek cca. 1500 a upravit jej takto:

if (function_exists("checkPaidField")) 				{ 					checkPaidField($field); 				}     

                                                                                                      //pridano                          	if($field->type=="textarea")	          { echo "<span class='adsmanager_znaky' id='adsmanager_znaky_" . $name . "'>max. " . $field->maxlength . " znaků</span>";	 
         }                    echo "</td></tr>";                               




-------------------------------------
úprava adsmanageru - nápověda, resp. hledání v seznamu kategorií:


soubor .../components/com_adsmanager/adsmanager.html.php
kolem řádku cca. 1630 do javascriptu přidat a upravit nějak takto:

 

$display_current_cat_only = 1;
			adsmanager_html::selectCategories(0,"",$cats,$catid,$conf->root_allowed,""/*$link*/,$display_current_cat_only); 
		}
		else
		{
		?>
			<script language="JavaScript" type="text/JavaScript">
			<!--
			function jumpmenu(target,obj,restore){
                                                     
			  eval(target+".location='"+obj.options[obj.selectedIndex].value+"'");	
			  obj.options[obj.selectedIndex].innerHTML="<?php echo ADSMANAGER_WAIT;?>";	
			}		
			
       
       
//pridano   //tato cast html kodu nepatri k vlastnim polim, ale k vyberu kategorii na prvni strance                   function searchSel(posledni_pozice) {//posledni_pozice - pro hledani dalsich vysledku     var input=document.getElementById('hledej_kategorii').value.toLowerCase();   var output=document.getElementById('strom_kategorii').options;    for(var i=0;i<output.length;i++) {  mala_pismena=output[i].text.toLowerCase();//pridana moznost nezavislost na velikosti .text. (popisku)- .text. hleda v popisu co je videt, .value. hleda v hodnotach co se odesilaji  //if(mala_pismena.indexOf(input)==0){//hleda na zacatku if(mala_pismena.indexOf(input)!=-1){//hleda i uprostred  document.getElementById('button_hledej').value="další možný výsledek >>>";//hledej dalsi            if(posledni_pozice<output[i].index)       {                             output[i].selected=true;      //alert('delka:'+output.length);alert('posl:'+posledni_pozice);alert('souc ind:'+output[i].index);           return output[i].index;//return pridan aby to neselectovalo az posledni vyskyt                           }                                 }                 if(output[i].index==(output.length-1))            {alert('Výsledky dosáhly konce kategorií, jestli chcete pokračovat od začátku klikněte znovu na tlačítko "další výsledky"');return 0;}                     }          }       posledni_pozice=0;                                                                  


do příslušného tagu select (je jich tam víc) , přidat id="strom_kategorii"

<select id="strom_kategorii" name='category_choose' onchange="jumpmenu('parent',this)">


kolem řádku 1720 upravit kód takto: (vložit input pole + button)
(Vyhledavaci pole se zobrazuje pouze na prvni strance ne na druhé stránce a to z důvodů události onchange="jumpmenu('parent',this)" v tagu select. Kvůli onchange, které nefunguje při vyhledávání je doplněn právě button potvrdit kategorii)

else 				adsmanager_html::selectCategories(0,"",$cats,$catid,$conf->root_allowed,$link,0);  			?> 			</select>                                                                         <?php  //echo $_GET['catid'];                                                 if($_GET['catid']!=0){                            echo '<br \>!!! Změna kategorie smaže všechna již vyplněná pole !!! <br \><br \>';                             }                         else                         {                         echo '<input type="button" name="odesilaci_button_navic" value="Potvrdit kategorii" onclick="jumpmenu(\'parent\',document.getElementById(\'strom_kategorii\'));">';                                                       ?>                                                                                   <br \>                              Zadejte část slova hledaného výrazu <input type="text" id="hledej_kategorii" name="hledej_kategorii"  onfocus="posledni_pozice=0;document.getElementById('strom_kategorii')[0].selected=true;" onkeyup=" if(document.getElementById('hledej_kategorii').value.length>3){if(document.getElementById('hledej_kategorii').value!=''){posledni_pozice=searchSel(posledni_pozice);}}">  <input type="button" nama="button_hledej" id="button_hledej" onclick="if(document.getElementById('hledej_kategorii').value!=''){posledni_pozice=searchSel(posledni_pozice);}" value="? hledej kategorii ?">                                             <?php                             }                          ?>                                                                                                                       		<?php 		} 	} 	 	function displayMultipleCatsChooser($selectedcats,$cats,$conf,$option,$itemid)



------------------------
úprava sobi2 - katalog odkazů - webových stránek joomla
úprava, aby k detailu se zobrazovala seo adresa a viditelná adresa www + viditelná adresa e-mailu.

sobi2 verze 2.9.3.2 prvotní instalace (pokud vím, tak různé verze mají docela různý kód)

otevřít soubor components/com_sobi2/sobi2.entry.php
řádek cca. 340


seo webová adresa odkazu 1)
najít a zakomentovat řádek
$data = "<a href=\"{$data}\"{$noFollow} title=\"{$mySobi->title}\" target=\"_blank\">{$field->label}</a>";

nahradit:
//pridano - odstraněn i atribut "nofollow"
                                    

     $data = "<a href=\"{$data}\" title=\"{$mySobi->metakey}\" target=\"_blank\">{$mySobi->title}</a>";



viditelná emailová adresa 2)
o pár řádků níže najít a zakomentovat:
	//		$data =  sobiHTML::emailCloaking( $data, 1, $field->label, 0 );

nahradit:
 $data = "<a href=\"mailto:{$data}\" title=\"{$mySobi->title}\" target=\"_blank\">{$data}</a>";                    
//nesystémové řešení, teoreticky by mohlo způsobovat nefunkčnost nějaké funkce, protože původně je volána funkce, která vrací nějakou hodnotu. Bohužel ani po dlouhé době se mi nepodařilo dohledat, kde se to dá upravit systémově. Možná je to ukryto v systému joomly a ne v sobi2.



přidání ještě jedné adresy v zobrazení www.neco.cz
+ přidání zobrazení image náhledu stránky

někam do souboru šablony detailu - components/com_sobi2/templates/default/sobi2.details.tmpl.php

vložit:
<a href="<?php echo $fieldsObjects['field_weburl']->data; ?>" target="_blank">  <?php echo $fieldsObjects['field_weburl']->data; ?>  </a>   <br />    <img alt="Thumbnails by Thumbshots.org" style="margin: 0px; padding: 0px; border-width: 1px;" src="http://open.thumbshots.org/image.pxf?url=<?php echo $fieldsObjects['field_weburl']->data; ?>" onload="if (this.width>100) this.border=1; this.alt='Thumbnails by Thumbshots.org';" border="1"></a>   </span>  <br />



zobrazování / nezobrazování ikony a loga
1)pokud v administraci sobi2 - nastavení vzhledu - obecné nepovolíte ikonu a logo zobrazovat v detailu, tak se Vám tam nezobrazuje - nutno zkontrolovat.
Obejit to lze ev.:

Zadáním kódu do šablony detailu components/com_sobi2/templates/default/sobi2.details.tmpl.php

tvrdým napsáním tohoto kódu:
Title     <?php echo $mySobi->title ?> Icon     <img src="/images/com_sobi2/clients/<?php echo $mySobi->icon; ?>" /> Image   <img src="/images/com_sobi2/clients/<?php echo $mySobi->image; ?>" />


zdroj: http://www.sigsiu.net/forum/community-board-for-templates-css/v-card-only-no-details-view-title-icon-image-without-links/msg53947/#msg53947

+ konfigurace a další pole
http://www.sigsiu.net/configuration_file.html

Pokud nelze nahrát obrázky, resp. logo a ikona, zkontrolujte, zda máte založen adresář images/com_sobi2/clients s právy zápisu.
Je možné ještě zkontrolovat formát nahrávaných obrázků a nastavení ftp vrstvy přímo v nastavení joomla.

----------------------------------------------
jednoduché javascriptové ověření spamu "captcha" v sobi2


1)v souboru components/com_sobi2/form.class.php
najít řádek cca. 1443 a upravit nějak takto:
$this->jsValidator .= "\n\t\t\t alert( '"._SOBI2_FORM_JS_ALL_REQUIRED_FIELDS."' );" . 										  "\n\t\t\t return false;" . 										  "\n\t\t; }


//pridano
if(form.field_overeni.value!='11'){alert( 'Vyplňte číslo deset (číslovkou)' );return false;}\n\t\t";                                                                                        //konec pridani          


                                                               					break; 				case 2: // is textarea


2)v uživatelem definovaných polích vytvořte povinné textové pole s názvem field_overeni

Pozn.: zkoušeno na registračním formuláři s výchozí funkcí.

Známka: 0.00 (0 hlasů) - Oznámkuj tyto články -


Jiné články
23. 9. 2011 14:44:42 - GoPay - akční nabídka 2011
10. 12. 2010 10:40:00 - Postupy Joomla II. - hacky kódu apod. - vložení článků - automatické schválení bez kontroly administrátora
13. 11. 2010 20:10:00 - Postupy Joomla - hacky kódu apod. adsmanager, sobi2, captcha
30. 8. 2010 21:50:00 - Zajímavé stránky a skripty - PHP, MYSQL, Javascript
17. 4. 2010 14:14:59 - Kalkulačka v html a javascriptu s polem pro poznámky

Za obsah komentáře zodpovídá jeho pisatel. Komentář vyjadřuje jeho názory, ne názory a postoje provozovatelů webu.
Komentuje Vlákno
Odkazy



Zen-Cart ke stažení

Vyšel nový Zencart 1.5.0

Originální moduly můžete stahovat na
www.zen-cart.com

Reklama
Nejaktivnější autoři
1 Melodic
Melodic
1002997
2 Kozoroh
Kozoroh
2124
3 JardaR
JardaR
1888
4 garden
garden
1419
5 Nismo
Nismo
1389
6 hbxx 1131
7 jandik01
jandik01
1070
8 PeterB
PeterB
1017
9 Dedek
Dedek
990
10 bambulko
bambulko
775