- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Csíkszélességben verné az Exynos 2600 a Snapdragon 8 Elite 2-t
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy S23 Ultra - non plus ultra
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Milyen okostelefont vegyek?
- Xiaomi Mi 11 Ultra - Circus Maximus
- iPhone topik
- Honor Magic5 Pro - kamerák bűvöletében
- Profi EKG-s óra lett a Watch Fitből
Új hozzászólás Aktív témák
-
radi8tor
MODERÁTOR
válasz
pelyib #20181 üzenetére
Nekem elemi szinten mondd el mit csináljak.
Csináltam egy php file-t ezt raktam bele,<?php
$banned_cats = $this->config->has('full_product_path_categories')
? $this->config->get('full_product_path_categories')
: []; ?>
Ha megnyitom ezt a file-t akkor nem ír ki semmit, nincs a logban semmi.Még egyszer köszi hogy próbáltok segíteni, de én nem igazán tudom hogyan lehet vizsgálódni.
-
radi8tor
MODERÁTOR
válasz
instantwater #20177 üzenetére
Nem most lett frissítve a szerver hanem gyorsabb tárhelyre lett költöztetve az oldal és ehhez kapcsolódóan más a PHP verzió.
Ha nagyon muszáj tudok frissíteni de egy ilyen apróság miatt ezt nem tenném meg.
Amúgy ez amit most reszelünk nem az alaprendszer része, hanem egy path manager kiegészítőé.
Adatbázis és fájl mentés naponta készül, szóval általában nyugodtan alszom. -
radi8tor
MODERÁTOR
válasz
instantwater #20174 üzenetére
Opencart 3.0.2.0, de nem szeretném ilyen apróság miatt frissíteni mert azzal magamat szívatnám a sok egyedi kiegészítő inkompatibilitás és azok frissítése miatt is.
-
-
radi8tor
MODERÁTOR
válasz
pelyib #20160 üzenetére
Köszi szépen, ez valóban eltüntette a warningokat.
És igen, más nem volt körülötte csak ez a két warning szemetelte tele az error logot mióta PHP ver 7.3.22 lett az oldal alatt.Amúgy ez a teljes kódrészlet arról a területről, hátha látod benne a választ a kérdésedre:
$path = array();
$categories = $this->db->query("SELECT c.category_id, c.parent_id FROM " . DB_PREFIX . "product_to_category p2c LEFT JOIN " . DB_PREFIX . "category c ON (p2c.category_id = c.category_id) WHERE product_id = '" . (int)$product_id . "'")->rows;
foreach($categories as $key => $category) {
$path[$key] = '';
if (!$category) continue;
$path[$key] = $category['category_id'];
while (!empty($category['parent_id'])) {
$path[$key] = $category['parent_id'] . '_' . $path[$key];
$category = $this->db->query("SELECT category_id, parent_id FROM " . DB_PREFIX . "category WHERE category_id = '" . $category['parent_id']. "'")->row;
}
$path[$key] = $path[$key];
$banned_cats = $this->config->get('full_product_path_categories');
if (
is_countable($banned_cats)
&& is_countable($categories) // jo lenne tudni melyik, mert ezzel csak elrejtjuk a hibat
&& count($banned_cats)
&& (count($categories) > 1)
) {
if (in_array($path[$key], $banned_cats)) {
unset($path[$key]);
} else if (preg_match('#[_=](\d+)$#', $path[$key], $cat)) {
if (in_array($cat[1], $banned_cats)) {
unset($path[$key]);
}
}
}
-
radi8tor
MODERÁTOR
Help me!
Átköltözött a webshop magasabb PHP verzióra: 7.3.22
Előjött két ilyen dolog az error logban:
PHP Warning: count(): Parameter must be an array or an object that implements Countable in ...path_manager.php on line 49
PHP Warning: count(): Parameter must be an array or an object that implements Countable in ...Core.php on line 1266Az első hivatkozott sor ez lenne:
if (count($banned_cats) && (count($categories) > 1)) {A második pedig ez:
return is_scalar($thing) ? mb_strlen($thing, $env->getCharset()) : count($thing);Guglival találtam egy ilyen megoldást (meg csomó másikat is), de nekem kevés a tudásom hogy ezt implementáljam:
Replace the line:
if (count($parentPathPieces) == 1) {
with the following one:
if ($parentPathPieces && count($parentPathPieces) == 1) {Tudnátok segíteni mire írjam át az én soraimat?
-
radi8tor
MODERÁTOR
válasz
instantwater #19927 üzenetére
Én nem tudom, nem vagyok PHP fejlesztő
-
radi8tor
MODERÁTOR
válasz
pelyib #19796 üzenetére
Ja erre elfelejtettem válaszolni. Köszi a tippet, de sajnos ehhez kevés a tudásom hogy megoldjam.
Lenne egy másik kérdés:
Van egy ilyen kódrészlet a számlázó agentnél:
<input type="text" value="<?php echo $datas['payment_custom_field']; ?>" name="adoszam"/>
A payment_custom_field viszont nem az adószámot tartalmazza, hanem pontosan ezt:
{"1":"1234567-1-12"}Segítenétek átírni a fenti sort (regexp?) úgy, hogy ebből a cella tartalomból csak az adószámot (1234567-1-12) illessze be? Köszi!
-
radi8tor
MODERÁTOR
válasz
pelyib #19794 üzenetére
Ja sejtettem, de nem okozott ez hibát nekem 1+ éve, max annyit hogy szemetelt az error.log-ba.
2019-06-18 19:47:41 - PHP Notice: Undefined index: priceISO in product.php on line 1110
2019-06-18 19:47:41 - PHP Notice: Undefined index: stockStatus in product.php on line 1112Viszont itt más szintaktika kellene, tudnál ebben is segíteni?
$result .= '"offers": {
"@type": "Offer",
"price": "'. $data['priceISO'] .'",
"priceCurrency": "'. $cur .'",
"availability": "'. $data['stockStatus'] .'",
"itemCondition": "http://schema.org/NewCondition",
"url": "'. $this->url->link('product/product', 'product_id=' . $this->request->get['product_id']) .'",
"priceValidUntil": "2099-12-31"
} '."\r\n";Aztán most már tényleg nem nyaggatlak titeket a log tisztításával.
-
radi8tor
MODERÁTOR
Hát az nem lesz egyszerű.
Ebben a file-ban 270x fordul elő a $data
Vagy csak elég lenne a kifogásolt sorokba tenni ezt?Vagy amit el tudok még képzelni ennek a funkciónak az elejét kellene átírni ami alatt ezek a sorok voltak. Értelemszerűen ennek a résznek nincs eredménye törölt terméknél. A modul fejlesztője nem igazán foglalkozott ezzel.
Opencart 3.0.2.0
-
radi8tor
MODERÁTOR
Úgy néz ki ez megoldódott, azóta nem láttam olyat a logban.
Tudnátok ebben is segíteni nekem?
Ha egy már nem létező terméket kérdez le Google (404), akkor ilyen bejegyzések kerülnek a logba:
2019-06-16 11:09:48 - PHP Notice: Undefined index: thumb in product.php on line 1082
2019-06-16 11:09:48 - PHP Notice: Undefined index: manufacturer in product.php on line 1083
2019-06-16 11:09:48 - PHP Notice: Undefined index: model in product.php on line 1084
2019-06-16 11:09:48 - PHP Notice: Undefined index: ean in product.php on line 1085
2019-06-16 11:09:48 - PHP Notice: Undefined index: priceISO in product.php on line 1110
2019-06-16 11:09:48 - PHP Notice: Undefined index: stockStatus in product.php on line 1112Az érintett sorok ezek lennének:
$result .= '"image": "'.$data['thumb'].'",'."\r\n";
$result .= '"brand": "'.$data['manufacturer'].'",'."\r\n";
$result .= '"sku": "'.$data['model'].'",'."\r\n";
$result .= '"gtin13": "'.$data['ean'].'",'."\r\n";és
"price": "'. $data['priceISO'] .'",
"availability": "'. $data['stockStatus'] .'",Mivel kellene kiegészíteni ezeket a sorokat, hogy ne panaszkodjon rá PHP engine?
-
radi8tor
MODERÁTOR
Van másik
PHP Warning: end() expects parameter 1 to be array, null given in live_price_update.php on line 95
-
radi8tor
MODERÁTOR
Kéne egy kis segítség ismét.
Van ez a kódrészlet:
public function getOptionData($product_id, $tax_class_id){
$this->load->model('extension/liveopencart/related_options');
$od = $this->model_extension_liveopencart_related_options->get_ro_data($product_id, true);
$data = [
'model' => false,
'unitprice' => false
];
foreach($od[0]['ro'] as $key => $var){
// var_dump($key);
if(
in_array(end($this->request->post['option']), $var['options']) ||
(!isset($this->request->post['option']) && $var === reset($od[0]['ro']))
){
$unit = ((1 / $var['weight']) * $var['price']);
$taxed = $this->tax->calculate($unit, $tax_class_id, $this->config->get('config_tax'));
$final = $this->currency->format($taxed, $this->session->data['currency']);
$data = [
'model' => $var['model'],
'unitprice' => $final." /(l,kg)"
];
}
}
return $data;
// var_dump($data);
// return $data;
}foreach($od[0]['ro'] as $key => $var){
sorra panaszkodik, hogy:
Invalid argument supplied for foreach() in ....live_price_update.php on line 91Nincs belőle hiba az oldalon, de tele szemeteli a logot ezzel.
Ez a hiba csak akkor jelentkezik, ha olyan termék kerül listázásra, aminek nincs related_option megadva. Szóval a shop termékeinek 85%-nál hibára fut (logban jelentkezik csak).
-
radi8tor
MODERÁTOR
Opencart pont hogy olyan jól van megírva, hogy akár 30000 termékkel is jól elbánik. Nem kell alá izom vas.
Akik bérelhető verziót árulnak az is Opencart alapú (pl Shoprenter) csak már telepített kiegészítőkkel - tehát neked már nem kell megvenned őket darabonként 20-70 dolláros áron. Cserébe le kell mondanod az egyedileg testreszabhatóságról. Ezért amennyire kényelmesnek tűnik az elején a bérlés, annyira fájó lesz amikor már lenne igényed egyedi feature-ökre és falakba ütközöl.Nekem nem gond ha alap dolgokat kell megoldani, már valamennyire értem is a működését, de PHP, JS vonalon gyenge a tudásom ezért amit nem tudok pár hét alatt megoldani azt kiszervezem.
Miért bajlódnak webshopokkal mostanában? Azért mert kevés befektetéssel lehet profitot csinálni. Főleg, ha mindegy neked mit árulsz és csak azokat veszed fel a shopba amin nagyot lehet kaszálni. (mi nem ilyenek vagyunk)
-
radi8tor
MODERÁTOR
Nem tudom részleteiben elmondani, csak azt tudom, hogy nem kellett volna JS ehhez a dologhoz (egy termék opció váltásnál változó paraméterek beállításához), de az a fejlesztő JS-el oldotta meg ahelyett, hogy controller PHP-val csinálta volna mint minden más működik általában Opencartnál.
Jó ez a magyar fejlesztő, általában nem szokott sokat szöszölni egy-egy fejlesztéssel de mivel ennek a kiegészítőnek teljesen más volt a logikája fel kellett térképezni a teljes kódot.
Reagálva a másik gondolatmenetre, kértünk mi ajánlatot egyedi webshopra, kaptunk is 1 millió + ÁFÁsat. Aztán úgy döntöttem megoldom én, kb 300e-nél járunk most.
-
radi8tor
MODERÁTOR
Nem, nem erről van szó.
Opencart nyílt forráskódú a webshop. Viszont a modulok a fejlesztő brigádok logikája alapján működnek, ami nem mindig jó. Pl ez a legutóbbi akció azért került 1 napi munkába, mert az orosz fejlesztő egy merőben más megközelítést alkalmazott. Inkább JS-el "hazudta meg" a kijelzett értékeket, mint hogy rendesen PHP-ban lenne.
-
radi8tor
MODERÁTOR
Igen, fizetős modul. Na majd megkérem a fejlesztőit, hogy oldják meg. De az biztos nem lesz olcsó
Pont ma fizettem ki egy másiknak 45000-et egy jelentéktelen funkció működésre bírásáért.coco2: tudom, de azért megpróbáltam mert gondoltam egyszerű lesz az ignore feltételt átírni arra, hogy csak ezekre legyen érvényes.
-
radi8tor
MODERÁTOR
Így érted? (felcseréltem a 0-t és 1-et)
function areWeInIgnoredUrl() {
if (basename(DIR_APPLICATION) != 'catalog') return true;
$url = getFullURL();
$ignoredUrls = getIgnoredUrls();
foreach ($ignoredUrls as $ignoredUrl) {
$ignoredUrl = preg_replace("/^(https?:)?\/\//", "*", $ignoredUrl);
if ($ignoredUrl[1] != '!') {
if (preg_match('~' . str_replace(array('~', '#asterisk#'), array('\~', '.*'), preg_quote(str_replace('*', '#asterisk#', $ignoredUrl))) . '~', $url)) {
return true;
}
} else {
if (!preg_match('~' . str_replace(array('~', '#asterisk#'), array('\~', '.*'), preg_quote(str_replace('*', '#asterisk#', substr($ignoredUrl, 0)))) . '~', $url)) {
return true;
}
}
}
return false;
} -
radi8tor
MODERÁTOR
Tudnátok segíteni ennek a függvénynek a módosításában?
Arra szeretném módosítani, hogy a lista amit vár ne ignored legyen hanem pont az ellenkezője: a felsorolt lista legyen az érvényes és a root URL is.
(ez egy page cache modulnak a kódja)function getIgnoredUrls() {
$ignoredUrls = explodeTrim("\n", getNitroPersistence('DisabledURLs'));
$predefinedIgnoredUrls = array('/admin/', 'isearch', 'api/*');
//See if we are in admin
$dir = basename(DIR_APPLICATION);
if (!in_array($dir, array('admin', 'catalog'))) {
$predefinedIgnoredUrls[] = '/'.$dir.'/';
}
$ignoredUrls = array_merge($predefinedIgnoredUrls, $ignoredUrls);
return $ignoredUrls;
}function areWeInIgnoredUrl() {
if (basename(DIR_APPLICATION) != 'catalog') return true;
$url = getFullURL();
$ignoredUrls = getIgnoredUrls();
foreach ($ignoredUrls as $ignoredUrl) {
$ignoredUrl = preg_replace("/^(https?:)?\/\//", "*", $ignoredUrl);
if ($ignoredUrl[0] != '!') {
if (preg_match('~' . str_replace(array('~', '#asterisk#'), array('\~', '.*'), preg_quote(str_replace('*', '#asterisk#', $ignoredUrl))) . '~', $url)) {
return true;
}
} else {
if (!preg_match('~' . str_replace(array('~', '#asterisk#'), array('\~', '.*'), preg_quote(str_replace('*', '#asterisk#', substr($ignoredUrl, 1)))) . '~', $url)) {
return true;
}
}
}
return false;
} -
radi8tor
MODERÁTOR
válasz
radi8tor #19699 üzenetére
Megoldva így:
if (!defined('GEOIP_PROXY_EDITION')){define('GEOIP_PROXY_EDITION', 8);}
if (!defined('GEOIP_ASNUM_EDITION')){define('GEOIP_ASNUM_EDITION', 9);}
if (!defined('GEOIP_NETSPEED_EDITION')){define('GEOIP_NETSPEED_EDITION', 10);}
if (!defined('GEOIP_REGION_EDITION_REV0')){define('GEOIP_REGION_EDITION_REV0', 7);}
if (!defined('GEOIP_REGION_EDITION_REV1')){define('GEOIP_REGION_EDITION_REV1', 3);}
if (!defined('GEOIP_CITY_EDITION_REV0')){define('GEOIP_CITY_EDITION_REV0', 6);}
if (!defined('GEOIP_CITY_EDITION_REV1')){define('GEOIP_CITY_EDITION_REV1', 2);}
if (!defined('GEOIP_ORG_EDITION')){define('GEOIP_ORG_EDITION', 5);}
if (!defined('GEOIP_ISP_EDITION')){define('GEOIP_ISP_EDITION', 4);}
if (!defined('GEOIP_UNKNOWN_SPEED')){define('GEOIP_UNKNOWN_SPEED', 0);}
if (!defined('GEOIP_DIALUP_SPEED')){define('GEOIP_DIALUP_SPEED', 1);}
if (!defined('GEOIP_CABLEDSL_SPEED')){define('GEOIP_CABLEDSL_SPEED', 2);}
if (!defined('GEOIP_CORPORATE_SPEED')){define('GEOIP_CORPORATE_SPEED', 3);}
if (!defined('GEOIP_DOMAIN_EDITION')){define('GEOIP_DOMAIN_EDITION', 11);}
if (!defined('GEOIP_NETSPEED_EDITION_REV1')){define('GEOIP_NETSPEED_EDITION_REV1', 32);}Köszi a segítséget!
-
radi8tor
MODERÁTOR
válasz
pelyib #19698 üzenetére
Kikapcsolt bővítmény mellett is kétszer szerepel ez phpinfo() kimenetében:
A javasolt oldalon megadottak alapján módosítottam a kódot, hogy csak akkor legyen a function használva, ha még nincs használva.
Miután minden ilyen hibára futó sort if-be tettem ezt dobja de legalább már betölt az oldal és csak a logot szemeteli tele:
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_COUNTRY_EDITION already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 31
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_PROXY_EDITION already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 32
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_ASNUM_EDITION already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 33
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_NETSPEED_EDITION already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 34
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_REGION_EDITION_REV0 already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 35
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_REGION_EDITION_REV1 already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 36
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_CITY_EDITION_REV0 already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 37
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_CITY_EDITION_REV1 already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 38
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_ORG_EDITION already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 39
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_ISP_EDITION already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 40
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_UNKNOWN_SPEED already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 51
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_DIALUP_SPEED already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 52
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_CABLEDSL_SPEED already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 53
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_CORPORATE_SPEED already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 54
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_DOMAIN_EDITION already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 55
2019-05-08 19:29:20 - PHP Notice: Constant GEOIP_NETSPEED_EDITION_REV1 already defined in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 62 -
radi8tor
MODERÁTOR
válasz
sztanozs #19694 üzenetére
Nincs kétszer, csak egyszer a startup.php-ban:
// Geo Language
if($this->config->get('module_geo_currency_status')){
include("system/library/geoip.inc");Azt is próbáltam már Google alapján, hogy ezt az include-ot átírom include_once -ra de nem segített.
Ja közben szerkesztetted.
Hát figy, ezt a kiegészítőt így vettem. Működött az elmúlt 6 hónapban gond nélkül. Nem tudom mi a nyűgje most...
-
radi8tor
MODERÁTOR
Tudnátok segíteni ennek a hibának az elhárításában?
Van egy kis program, ami GEOIP alapján állítja be az oldal nyelvét (magyar IP-vel érkezők magyar nyelvet kapnak, mindenki más angolt).
Eddig jól működött, aztán ma ezt a hibát dobálja:
Fatal error: Cannot redeclare geoip_country_code_by_name_v6() in /home/www/clients/client2520/web5842/web/system/library/geoip.inc on line 1584
Az 1584. sor az utolsó lenne ebből a kódrészletből:
function geoip_country_id_by_name_v6($gi, $name)
{
$rec = dns_get_record($name, DNS_AAAA);
if (!$rec) {
return false;
}
$addr = $rec[0]["ipv6"];
if (!$addr || $addr == $name) {
return false;
}
return geoip_country_id_by_addr_v6($gi, $addr);
}
function geoip_country_id_by_name($gi, $name)
{
$addr = gethostbyname($name);
if (!$addr || $addr == $name) {
return false;
}
return geoip_country_id_by_addr($gi, $addr);
}
function geoip_country_code_by_name_v6($gi, $name)
{
$country_id = geoip_country_id_by_name_v6($gi, $name);
if ($country_id !== false) {
return $gi->GEOIP_COUNTRY_CODES[$country_id];
}
return false;
} -
radi8tor
MODERÁTOR
Erre a kódrészletre panaszkodik néha a rendszer "PHP Notice: Undefined index: shipping_method" -al:
if (strpos($this->session->data['shipping_method']['code'], 'xshippingpro3') || strpos($this->session->data['shipping_method']['code'], 'xshippingpro4')) {
$data['field_comment']['required'] = 'on';
}Tudtok segíteni benne hogyan lehet ezt orvosolni?
-
radi8tor
MODERÁTOR
Sziasztok!
Tud valaki segíteni abban hogyan tudom ezt az apró kódot úgy módosítani, hogy a title szöveg végén található "[blankspace]
(nettó ár)
" string nélkül legyen echo-zva?<?php echo $prod['title']; ?>
-
radi8tor
MODERÁTOR
válasz
sztanozs #19493 üzenetére
Nem fejlesztő vagyok, egy meglévő rendszert "finomhangolok". Jelenleg 301 és 302 átirányítás van használatban. 301 azoknál, ahol végleg változott az URI, 302 azoknál amik átmenetileg nem elérhetőek és másik oldalra irányítjuk át a látogatókat/keresőmotorokat.
Csak felmerült bennem a gondolat, meg mintha WIKI is utalna rá, hogy 302 helyett mást kéne használni... (igaz jelenleg csak 3 oldalt érint) -
radi8tor
MODERÁTOR
Le tudná valaki írni érthetően pár mondatban mi a valós különbség HTTP 302, 303 és 307 között? Láttam angol leírásokat de nem tiszta a POST meg GET téma.
Ha átmenetileg nem elérhető egy oldal (URI) és át van irányítva mondjuk a szülő kategóriába, akkor melyiket használjam googlebot helyes tájékoztatására?
Nem világos nekem a különbség a 3 megoldás közül. Jelenleg 302 van használva, nem is panaszkodik rá. -
radi8tor
MODERÁTOR
válasz
#57018880 #19486 üzenetére
view-ben csak a template van, ami alapján HTML kódot készíti.
stylesheet.css-ben találtam egy ilyet. Ez blokkolná a megjelenését kis felbontásnál?
.tablet .newsletter-popup-wrap, .mobile .newsletter-popup-wrap {
display: none !important; }
@media (max-width: 767px) {
.newsletter-popup-wrap {
display: none !important; } } -
radi8tor
MODERÁTOR
Még mindig ez a popup modul téma.
Úgy van megírva a kódja, hogy csak asztali nézetben jelenjen meg. Tudnátok segíteni hogy merre induljak el a keresésben, ha ezt a modult szeretném mobilos nézetben is engedélyeztetni? (tehát ne legyen korlátozva senkire)
Opencart 3. -
radi8tor
MODERÁTOR
Van egy felugró ablak aminek van egy ilyen késleltetése:
if (showIt == '') {
$('#zemez-newsletter-popup').fadeIn(300);Ez 0.3 mp fade in lenne ugye? Meg lehet azt csinálni, hogy az oldal betöltés után mondjuk 10 mp-el tűnjön fel az ablak? Vagy esetleg ha elkezd scrollozni lefelé?
-
radi8tor
MODERÁTOR
-
radi8tor
MODERÁTOR
Van egy JS event a termék oldalon egy linken:
<script>
(function ($) {
$(document).ready(function () {
$('.review-link a').click(function (e) {
e.preventDefault();
$('.product_tabs a[href="#tab-review"').tab('show');
});
$('.review-link-show').click(function () {
$('html, body').animate({
'scrollTop': $('.product_tabs').offset().top - ($('#stuck').outerHeight() + 50)
}, 1000);
});
$('.review-link-write').click(function () {
$('html, body').animate({
'scrollTop': $('#reviews_form_title').offset().top - ($('#stuck').outerHeight() + 50)
}, 1000);
$('#reviews_form_title').addClass('close-tab').parents('#tab-review').find('#reviews_form').slideDown();
});
$('.product_tabs li:first-child a').tab('show');
$('#reviews_form_title').addClass('close-tab');
$('#reviews_form_title').on("click", function () {
if ($(this).hasClass('close-tab')) {
$(this).removeClass('close').parents('#tab-review').find('#reviews_form').slideToggle();
}
else {
$(this).addClass('close-tab').parents('#tab-review').find('#reviews_form').slideToggle();
}
});
});
})(jQuery);
</script>Van arra mód, hogy "review-link-write" funkciót meghívjam közvetlenül egy URL-el?
Tehát azt szeretném, ha egy e-mailben kiküldött linkre kattintva oda vinné a termék oldalra a felhasználót és megnyissa a review funkciót. Vagy ez nem lehetséges csak akkor ha már eleve az oldalon van a felhasználó?
-
radi8tor
MODERÁTOR
-
radi8tor
MODERÁTOR
PHP guruk!
Szükségem lenne egy PHP kódra, amivel le tudom kérdezni 100 db termék vonalkódja alapján a nevüket adatbázisból.
Erre API-k vannak, de nekem ez így kínai. Bonyolult megcsinálni, hogy mondjuk egy szövegmezőbe bemásolom a 100 vonalkódot, rányomok egy gombra, az meg lekérdezi és visszaadja az eredményt emészthető formában?
Kerestem ilyen oldalt, de nem találtam. Az is jó, ha ismertek ilyen oldalt. -
radi8tor
MODERÁTOR
válasz
pelyib #19403 üzenetére
Köszi, de sajnos nem lett jó:
Tömbösíteni kellett (lemásoltam egy másik elemet a menüből):
$seo = array();
if ($this->user->hasPermission('access', 'extension/extension/module')) {
$seo[] = array(
'name' => $this->language->get('text_seo_301redirect'),
'href' => $this->url->link('extension/module/301redirect', 'user_token=' . $this->session->data['user_token'], true),
'children' => array()
);
}
if ($this->user->hasPermission('access', 'extension/extension/module')) {
$seo[] = array(
'name' => $this->language->get('text_seo_302redirect'),
'href' => $this->url->link('extension/module/302redirect', 'user_token=' . $this->session->data['user_token'], true),
'children' => array()
);
}
if ($seo) {
$data['menus'][] = array(
'id' => 'menu-seo',
'icon' => 'fa-search',
'name' => $this->language->get('text_seo'),
'href' => '',
'children' => $seo
);
} -
radi8tor
MODERÁTOR
Tudnátok segíteni, hogy ez ne így jelenjen meg:
Hanem így:
Ez a kód van a controller file-ban:
$seo = [];
if ($this->user->hasPermission('access', 'extension/extension/module') && $this->config->get('module_301redirect_status')) {
$redirect301[] = [
'name' => $this->language->get('text_seo_301redirect'),
'href' => $this->url->link('extension/module/301redirect', 'user_token=' . $this->session->data['user_token'], true),
'children' => []
];
}
if (isset($redirect301)) {
$data['menus'][] = array(
'id' => 'menu-seo',
'icon' => 'fa-search',
'name' => $this->language->get('text_seo'),
'href' => '',
'children' => $redirect301
);
}
if ($this->user->hasPermission('access', 'extension/extension/module') && $this->config->get('module_302redirect_status')) {
$redirect302[] = [
'name' => $this->language->get('text_seo_302redirect'),
'href' => $this->url->link('extension/module/302redirect', 'user_token=' . $this->session->data['user_token'], true),
'children' => []
];
}
if (isset($redirect302)) {
$data['menus'][] = array(
'id' => 'menu-seo',
'icon' => 'fa-search',
'name' => $this->language->get('text_seo'),
'href' => '',
'children' => $redirect302
);
}Ja és a template, ami alapján megjeleníti:
<ul id="menu">
{% set i = 0 %}
{% for menu in menus %}
<li id="{{ menu.id }}">{% if menu.href %}<a href="{{ menu.href }}"><i class="fa {{ menu.icon }} fw"></i> {{ menu.name }}</a>{% else %}<a href="#collapse{{ i }}" data-toggle="collapse" class="parent collapsed"><i class="fa {{ menu.icon }} fw"></i> {{ menu.name }}</a>{% endif %}
{% if menu.children %}
<ul id="collapse{{ i }}" class="collapse">
{% for children_1 in menu.children %}
<li>{% if children_1.href %}<a href="{{ children_1.href }}">{{ children_1.name }}</a>{% else %}<a href="#collapse{{ i }}" data-toggle="collapse" class="parent collapsed">{{ children_1.name }}</a>{% endif %}
{% if children_1.children %}
<ul id="collapse{{ i }}" class="collapse">
{% for children_2 in children_1.children %}
<li>{% if children_2.href %}<a href="{{ children_2.href }}">{{ children_2.name }}</a>{% else %}<a href="#collapse{{ i }}" data-toggle="collapse" class="parent collapsed">{{ children_2.name }}</a>{% endif %}
{% if children_2.children %}
<ul id="collapse{{ i }}" class="collapse">
{% for children_3 in children_2.children %}
<li><a href="{{ children_3.href }}">{{ children_3.name }}</a></li>
{% endfor %}
</ul>
{% endif %} </li>
{% set i = i + 1 %}
{% endfor %}
</ul>
{% endif %}</li>
{% set i = i + 1 %}
{% endfor %}
</ul>
{% endif %}</li>
{% set i = i + 1 %}
{% endfor %}
</ul> -
radi8tor
MODERÁTOR
Kis segítség jól jönne, hogy akkor ezt mire módosítsam?
public function send() {
$this->_sendPhpMailer();
}
public function _send() {
$this->_sendPhpMailer();
if ($this->emailtemplate) {
$data = get_object_vars($this);
$this->emailtemplate->sent($data);
}
}
private function _send() {
if (!$this->to) {
throw new \Exception('Error: E-Mail to required!');
}
if (!$this->from) {
throw new \Exception('Error: E-Mail from required!');
}
if (!$this->sender) {
throw new \Exception('Error: E-Mail sender required!');
}
if (!$this->subject) {
throw new \Exception('Error: E-Mail subject required!');
}
if ((!$this->text) && (!$this->html)) {
throw new \Exception('Error: E-Mail message required!');
}
foreach (get_object_vars($this) as $key => $value) {
$this->adaptor->$key = $value;
}
$this->adaptor->send();
} -
radi8tor
MODERÁTOR
Nektek mond valamit ez a hibaüzenet? Amikor emailt kellene küldenie akkor dobja.
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
OK
Fatal error: Cannot redeclare Mail::_send() in /system/library/mail.php on line 275
Ez az érintett file: https://pastebin.com/8exXF0bF
-
radi8tor
MODERÁTOR
Nem kifejezetten PHP, de hátha tudtok segíteni benne.
Ezt kellene átírni úgy, hogy ne két oszlopban mutassa az értékeket hanem csak 1 oszlopban egymás alatt:
<div class="tab-pane product-spec product-section" id="tab-specification">
<table class="table table-bordered">
{% for attribute_group in attribute_groups %}
<thead>
<tr>
<th colspan="2"><strong>{{attribute_group['name']}}</strong></th>
</tr>
</thead>
<tbody>
{% set i = 2 %} {% set k = 0 %} {% for attribute in attribute_group['attribute'] %}
{% if ( i%2 == 0 ) %} <tr> {% endif %}
<td><span>{{attribute['name'] ~ ':'}}</span><span>{{attribute['text']}}</span></td>
{% if ( i%3 == 0 ) %} </tr> {% endif %} {% set i = i + 1 %} {% set k = k + 1 %}
{% endfor %}
{% if ( k%2 != 0 ) %} </tr> {% endif %}
</tbody>
{% endfor %}
</table>
</div> -
radi8tor
MODERÁTOR
Sziasztok!
Még mindig webshop-téma.
PHP Warning: Division by zero in /home/www/clients/client1649/web5653/web/system/library/template/Twig/Environment.php(402) : eval()'d code on line 92
Environment.php:
/**
* Loads a template by name.
*
* @param string $name The template name
* @param int $index The index if it is an embedded template
*
* @return Twig_TemplateInterface A template instance representing the given template name
*
* @throws Twig_Error_Loader When the template cannot be found
* @throws Twig_Error_Syntax When an error occurred during compilation
*/public function loadTemplate($name, $index = null)
{
$cls = $this->getTemplateClass($name, $index);
if (isset($this->loadedTemplates[$cls])) {
return $this->loadedTemplates[$cls];
}
if (!class_exists($cls, false)) {
if ($this->bcGetCacheFilename) {
$key = $this->getCacheFilename($name);
} else {
$key = $this->cache->generateKey($name, $cls);
}
if (!$this->isAutoReload() || $this->isTemplateFresh($name, $this->cache->getTimestamp($key))) {
$this->cache->load($key);
}
if (!class_exists($cls, false)) {
$content = $this->compileSource($this->getLoader()->getSource($name), $name);
if ($this->bcWriteCacheFile) {
$this->writeCacheFile($key, $content);
} else {
$this->cache->write($key, $content);
}
eval('?>'.$content);
}
}
if (!$this->runtimeInitialized) {
$this->initRuntime();
}
return $this->loadedTemplates[$cls] = new $cls($this);
}Végén található eval-ra panaszkodik.
De ez pontosan mit jelent? eval()'d code on line 92 -
radi8tor
MODERÁTOR
Sziasztok!
Opencart webshop téma.
Vásároltam egy témát hozzá, de nem szereti a magyar nyelvet. Ha átállítom magyarra hibaüzenetek fogadnak. Hozzátenném, hogy hu-Hu.php nem hibás, alap kivitelben működik hiba nélkül. De ezzel a témával nem. Tudtok ebben segíteni?
Oldal első betöltésénél:
Warning: Cannot modify header information - headers already sent by (output started at /home/www/clients/client1649/web5653/web/catalog/language/hu-Hu/hu-Hu.php:1) in /home/www/clients/client1649/web5653/web/catalog/controller/startup/startup.php on line 157
startup.php kódrészlet (setcookie sora a 157):
// Currency
$code = '';
$this->load->model('localisation/currency');
$currencies = $this->model_localisation_currency->getCurrencies();
if (isset($this->session->data['currency'])) {
$code = $this->session->data['currency'];
}
if (isset($this->request->cookie['currency']) && !array_key_exists($code, $currencies)) {
$code = $this->request->cookie['currency'];
}
if (!array_key_exists($code, $currencies)) {
$code = $this->config->get('config_currency');
}
if (!isset($this->session->data['currency']) || $this->session->data['currency'] != $code) {
$this->session->data['currency'] = $code;
}
if (!isset($this->request->cookie['currency']) || $this->request->cookie['currency'] != $code) {
setcookie('currency', $code, time() + 60 * 60 * 24 * 30, '/', $this->request->server['HTTP_HOST']);
}
$this->registry->set('currency', new Cart\Currency($this->registry));Aztán ha átváltom angolra, akkor meg ezt dobja:
(csak frissítés után használható az oldal)Warning: Cannot modify header information - headers already sent by (output started at /home/www/clients/client1649/web5653/web/catalog/language/hu-Hu/hu-Hu.php:1) in /home/www/clients/client1649/web5653/web/system/library/response.php on line 36
response.php kódrészlet (header sora a 36):
public function redirect($url, $status = 302) {
header('Location: ' . str_replace(array('&', "\n", "\r"), array('&', '', ''), $url), true, $status);
exit();
}
Új hozzászólás Aktív témák
Hirdetés
- Seasonic Focus GX 1000W 80+ gold
- Latitude 5530 27% 15.6" FHD IPS i7-1265U 16GB 512GB NVMe magyar vbill ujjlolv IR kam gar
- Samsung Galaxy S24 Ultra 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- Eladó Konfig Ryzen 7 7700 32GB DDR5 1TB SSD RTX5070 12GB!
- Precision 5550 15.6" 4K+ IPS érintő i7-10750H Quadro T1000 16GB 512GB NVMe ujjlolv IR kam gar
- AKCIÓ! Apple MacBook Pro 13 2022 M2 8GB 256GB SSD garanciával hibátlan működéssel
- Samsung Galaxy S24 Ultra 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- 0% THM 3 havi részlet! Beszámítás, 27% áfa, Sapphire Nitro+ RX 9070XT 16GB készletről
- Samsung Galaxy Xcover 6 Pro, 6/128 GB, Kártyafüggetlen
- Csere-Beszámítás! Custom vizes számítógép játékra! I7 12700KF / RTX 3090 / 32GB DDR5 / 1TB SSD
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest