Új hozzászólás Aktív témák
-
Doink
aktív tag
válasz
spiritex #19341 üzenetére
Ezzel csak 2 probléma van. Így kétszer is bekerülhet egy idézet, a másik, hogy nem fognak szeretni ha késleltetés nélkül egy while ciklusban pörgeted az oldalt. Az oldalt le tudod tölteni curl-al vagy file_get_contents-el, azt fel tudod parse-olni xpath-al (hogy könnyen tudj benne keresni) de írhatsz rá regexpet is.
-
spiritex
veterán
válasz
spiritex #19313 üzenetére
Ne fáradjatok vele, megvan a jó kód:
add_filter('woocommerce_loop_add_to_cart_link','change_simple_shop_add_to_cart',10,2);
function change_simple_shop_add_to_cart( $html, $product ){
if( $product->is_type('simple')) {$html = sprintf( '<a rel="nofollow" href="%s" data-product_id="%s" class="button">%s</a>',
esc_url( get_the_permalink() ),
esc_attr( $product->get_id() ),
esc_html( __( 'Bővebben', 'woocommerce' ) )
);
}
return $html;
}Érdekes ez a php, hogy ugyanazt a dolgot ennyire különböző módokon is meg lehet csinálni...
-
spiritex
veterán
válasz
spiritex #19311 üzenetére
A php-hez nem értve feltúrtam a netet és találtam egy majdnem jó kódrészletet, ami jó funkciókat ad a gomboknak, csak az istenért nem a Bővebben szöveget adja a gomnak, hanem a Read more-t...
Nem tudja valaki hogy honnan veszi ezt a Read more-t és hogy tudnám rávenni hogy Bővebben-t írjon?(Mondjuk érdekes, hogy a gombnak piros színűnek kellene lennie, de az szürke, tehát nem tökéletes a gomb... valószínűleg ezért nem akarja elfogadni a Bővebben feliratot sem... csak okoskodok laikusként.)
/*STEP 1 - REMOVE ADD TO CART BUTTON ON PRODUCT ARCHIVE (SHOP) */
function remove_loop_button(){
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
}
add_action('init','remove_loop_button');/*STEP 2 -ADD NEW BUTTON THAT LINKS TO PRODUCT PAGE FOR EACH PRODUCT */ add_action('woocommerce_after_shop_loop_item','replace_add_to_cart');
function replace_add_to_cart() {
global $product;
$link = $product->get_permalink();
echo do_shortcode('[button link="' . esc_attr($link) . '"]Bővebben[/button]');
} -
supercow
őstag
válasz
spiritex #19205 üzenetére
Web fejlesztéskor 2 alapvető felhasználóra készülj:
- szimplán egységsugarú hülye, véletlenül se oda klikkel ahova te gondoltad, nem érti, nem tudja, nem akarja
- rosszindulatú, és a fentebb részletezett módszerekkel próbálja térdre kényszeríteni a cuccodat, miért? "csak"
normális emberre ne számíts, átmenet van de csak a fenti 2 keveréke.
Mindig mindent ellenőrizni kell, adatbevitelnél mindent a lehető legjobban korlátozni. Pl. ha megyét kell bekérned, akkor nem szabad hagyni hogy beírják, hanem legördülőből kell kiválasztani, stb. -
Doink
aktív tag
válasz
spiritex #19197 üzenetére
Mivel kliens oldalon a felhasználó azt csinál amit szeretne, amit érts úgy, hogy úgy módosítja a szervertől kapott kapott html-t és javascriptet ahogy szeretné ezért szerver oldalon mindig kellene ellenőrizni.
3 életszerű példa:
- A postás is átnézni (szerver oldal) hogy helyesen töltötted ki a formanyomtatványt annak ellenére hogy te már otthon (kliens oldalon) átnézted. A módosított html-t meg elképzelheted úgy hogy bár volt egy * a Címzett mező mellett hogy kötelező kitölteni de te leleményes voltál és hibajavítóval eltüntetted amitől még a postás nem fogja elfogadni neked. Ha nem ellenőrzöl szerver oldalon az olyan mintha a postás rá se nézne a papírodra.
- reklámblokkoló pluginek, mondjuk ők képeket és js-ek betöltését szokták eltüntetni de jön a gyanú, hogy akkor egy required attribútumot is ki tudnának törölni ha akarnak.
- Írd be a required-öt ahogy javasolták, töltsd be az oldalt F12 => forrás és ott keresd meg azt a beviteli mezőt és töröld ki a required attribútumot.Akkor mire jó (a kliens oldali validálás)?
- Ha nem szeretnéd hogy állandóan a szerverhez forduljon a böngésző ha hibás adatot ad meg a user akkor nagyon jól jön az hogy a böngésző előtte leellenőrzi azt amit letud és csak akkor küldi el az adatokat a szervernek ha azok stimmelnek (aki ugyan úgy le fogja ellenőrizni).
Postásra lefordítva annyi plusszt hoz hogy nem csak felhányod az adatokat a papírra és addig javítgatod eszetlenül amíg el nem fogadja hanem átnézed/átnézetteted a böngészővel mielőtt odaadnád neki.
- Másik példa ha az adatot soha sem fogod elküldeni a szervernek hanem csak a böngészőben használod.3 életszerű példa kliens oldalra:
- Twitter, 140 betű limit. Teljesen felesleges addig a szervernek bármit is küldeni a Tweet gomb nyomására amíg 0 vagy több mint 140 a tweeted hossza. (spórol a szerver és hálózati erőforrásokkal).
- Bejelentkezés, amíg a felhasználónév vagy a jelszó nincs kitöltve addig felesleges bármit is küldeni a szervernek.
- Localstorage-ben (böngészőben) tárolod hogy a user melyik témát használja és szerver oldalon ezt szimplán azért nem tárolod mert nem érdekel.Összefoglalva:
- A klienstől érkező adatokat szerver oldalon mindig validáljuk.
- Kliens oldalon nem mindig, sokszor csak a szerverrel küldjük vissza a hibákat. -
PumpkinSeed
addikt
válasz
spiritex #19188 üzenetére
Valoszinuleg ezt PHP-ban nem annyira konnyu megoldani, mint Javascript-ben. Nem ismerem se a Wordpress-t se a plugin-t. De valoszinuleg nem csak annyi lesz, hogy beleirsz ebbe valamit es kesz.
1. opcio: Javascripttel szabalyozod, hogy addig nem kerul elkuldesre a POST request ameddig a kotelezoen kitoltendo field-ek nincsenek kitoltve.
2. opcio: Ami sokkal csunyabb, de PHP. Elkuldi a POST requestet, es a PHP megvizsgalja, hogy a kotelezo field-ek ki vannak-e toltve. Ha nincsenek akkor visszanavigalja a user-t a form oldalra, hibaval, hogy ki kell tolteni amit ki kell.
Új hozzászólás Aktív témák
Hirdetés
- Asztali PC , i7 9700K , RX 5700 XT , 32GB DDR4 , 500GB NVME , 1TB HDD
- Dell Inspiron 5406 2-in-1i5-1135G7 16GB DDR4 3200 512GB NVME 14" FHD Érintőkijelző W11Pro
- Eladó MacBook Pro 14" M1 Pro (2021) 16/512 99% akku Makulátlan állapotban!
- Újszeru GIGABYTE G5 - 15.6" FullHD 144Hz - i7-13620H - 48GB - 1TB - RTX 4050 - Win11 - 1,5 év gari
- Eladó garanciás,új állapotu projektorom kihasználatlanság miatt!
- A Panasonic Toughbook CF-54 i5-5300u i5-6300u TN, IPS touch Budapest, MPL Foxpost
- REFURBISHED és ÚJ - Lenovo ThinkPad 40AS USB-C docking station (akár 3x4K felbontás)
- BESZÁMÍTÁS! Intel Core i9 14900KF 24 mag 32 szál processzor garanciával hibátlan működéssel
- BESZÁMÍTÁS! ASUS ROG Ally Z1 Extreme 512GB SSD játékkonzol garanciával hibátlan működéssel
- ÁRGARANCIA! Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest