Dodany: 8 czerwca, 2022 | Kategoria: Inne
Od Firefoxa w wersji 93+, pojawiła się opcja usuwania zawartości tabów / kart, jeśli w pamięci brakuje miejsca, aby zapobiegać przeciążeniom systemu. Objawia się to tym, że po wejściu w jakąś nieużywaną dłuższy czas kartę, dostajemy biało stronę.
Aby zmienić to zachowanie na poprzednie, wchodzimy w about:preferences
i tam filtrujemy opcje aby znaleźć browser.tabs.unloadOnLowMemory
i przełączyć na false
.
Tagi: Firefox, karta, tab Brak komentarzy »
Dodany: 21 kwietnia, 2017 | Kategoria: Magento, PHP
Ponieważ w Magento zależnie od ustawionego języka separatorem miejsc dziesiętnych jest kropka lub przecinek, a miałem klienta, który chciał cyfry po tym znaku zamieniać na małe, musiałem znaleźć rozwiązanie. Mimo setek plików XML jednego prostego rozwiązania nie ma, ale jest funkcja która zwraca nam tablicę zawierającą tę i inne cenne informacje o cenach:
Mage::app()->getLocale()->getJsPriceFormat();
1 2 3
| $options = Mage::app()->getLocale()->getJsPriceFormat();
echo $options['decimalSymbol']; // returns . (1.5) or , (1,5)
echo $options['groupSymbol']; // returns , (1,000.5) or . (1.000,5) |
Tagi: character, decimal, magento, separator, symbol Brak komentarzy »
Dodany: 18 listopada, 2016 | Kategoria: Magento
Załóżmy, że jesteśmy w angielskim sklepie, ale potrzebujemy wyświetlić jedno tłumacznenie z niemieckiego. Zamiast je kopiować albo hardcode-ować, wystarczy:
1 2 3 4 5 6 7 8
| /* define */
$translate = new Mage_Core_Model_Translate();
$translate->setLocale(
Mage::getStoreConfig(Mage_Core_Model_Locale::XML_PATH_DEFAULT_LOCALE, $storeId)
)->init('frontend');
/* use */
echo $translate->translate(array('Text to translate'));
// optional %s arguments should be given as second and next arguments in array |
To wszystko.
Brak komentarzy »
Dodany: 2 kwietnia, 2016 | Kategoria: Game Maker
Nowsze wersje androidów automatycznie wyłączają przyciski nawigacji pomagające wyjść z aplikacji (chyba, że telefon ma fizyczne guziki). Aby je przywrócić, należy:
(zalecam wykonać kopię plików w razie czego, poprawki trzeba nanieść ponownie po aktualizacji GM:S).
Przejść do folderu:
%AppData%\GameMaker-Studio\Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct
edytować plik RunnerActivity.java
I zmienić linijki
1) z:
1680 1681
| // if 4.4 (kitkat) or above then go into immersive mode
int vis = 0x1; |
na:
1680 1681
| // if 4.4 (kitkat) or above then go into immersive mode
int vis = 0; |
2) z:
na:
3) z:
na:
Krok 2:
Następnie przechodzimy do folderu:
%AppData%\GameMaker-Studio\Android\runner\ProjectFiles\src\main
i edytujemy AndroidManifest.xml
z:
23
| android:theme="@android:style/Theme.NoTitleBar.Fullscreen" |
na:
23
| android:theme="@style/MyTheme" |
Krok 3:
Przechodzimy do folderu:
%AppData%\GameMaker-Studio\Android\runner\ProjectFiles\src\main\res
Kopiujemy (duplikujemy) folder values
i nazywamy go values-v19
W folderze values
(tym oryginalnym) tworzymy plik style.xml
1 2 3 4 5 6
| <?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="@android:style/Theme.Light">
<!-- Any customizations for your app running on devices with Theme.Light here -->
</style>
</resources> |
W folderze values-v19
tworzymy plik style.xml
1 2 3 4 5 6
| <?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="@android:style/Theme.Holo.NoActionBar.TranslucentDecor">
<!-- Any customizations for your app running on devices with Theme.Holo here -->
</style>
</resources> |
Czyścimy cache w GM:S i odpalamy. Pasek nawigacyjny powinien pozostawać na miejscu, a przycisk return powinien być dostępny.
Tagi: android, immersive, navigation, return Brak komentarzy »
Dodany: 13 listopada, 2015 | Kategoria: Magento, PHP
Jeśli nagłówki zostały już wysłane, magento będzie w logach pluć błędem: DEBUG (7): HEADERS ALREADY SENT:
, wraz ze stosem plików które doprowadziły do logowania tego błędu w app/code/core/Mage/Core/Controller/Response/Http.php:44
Niestety, lista ta nie mówi zbyt wiele:
[1] /lib/Zend/Controller/Response/Abstract.php:766
[2] /app/code/core/Mage/Core/Controller/Response/Http.php:77
[3] /app/code/core/Mage/Core/Controller/Varien/Front.php:188
[4] /app/code/core/Mage/Core/Model/App.php:347
[5] /app/Mage.php:640
[6] /index.php:78
Wystarczy jednak niewielka modyfikacja i dowiemy się gdzie leży problem. Proponuję skopiować plik app/code/core/Mage/Core/Controller/Response/Http.php
do app/code/local/Mage/Core/Controller/Response/Http.php
i w metodzie sendHeaders()
zamienić:
43 44 45 46
| if (!$this->canSendHeaders()) {
Mage::log('HEADERS ALREADY SENT: '.mageDebugBacktrace(true, true, true));
return $this;
} |
na
43 44 45 46 47
| if (!$this->canSendHeaders()) {
headers_sent($file, $line);
Mage::log('HEADERS ALREADY SENT: '. $file .':' . $line);
return $this;
} |
Brak komentarzy »
Dodany: 4 listopada, 2015 | Kategoria: Magento, PHP
1 2
| cd /var/www/html/magento/shell
php indexer.php --reindex catalogsearch_fulltext |
Tagi: magento, reindex, solr Brak komentarzy »
Dodany: 5 maja, 2015 | Kategoria: Apache, PHP
Należy pobrać fcgi dla apache:
Wklejamy mod_fcgid.so do wamp\bin\apache\apache2.x.x\modules
Otwieramy plik konfiguracyjny apache wamp\bin\apache\conf\httpd.conf. Znajdujemy linijkę:
1
| LoadModule php5_module "C:/Wamp/bin/php/php5.5.x/php5apache2_4.dll |
I zamieniamy na
1 2
| #LoadModule php5_module "C:/Wamp/bin/php/php5.5.x/php5apache2_4.dll
LoadModule fcgid_module modules/mod_fcgid.so |
Poniżej dodajemy też konfigurację dla domyślnego PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| FcgidInitialEnv PATH "C:/wamp/bin/php/php5.5.x;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"
FcgidInitialEnv SystemRoot "C:/Windows"
FcgidInitialEnv SystemDrive "C:"
FcgidInitialEnv TEMP "C:/wamp/tmp"
FcgidInitialEnv TMP "C:/wamp/tmp"
FcgidInitialEnv windir "C:/WINDOWS"
FcgidIOTimeout 64
FcgidConnectTimeout 16
FcgidMaxRequestsPerProcess 1000
FcgidMaxProcesses 3
FcgidMaxRequestLen 8131072
# Location php.ini:
FcgidInitialEnv PHPRC "C:\wamp\bin\php\php5.5.x"
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
Options Indexes FollowSymLinks ExecCGI
AddHandler fcgid-script .php
FcgidWrapper "C:/wamp/bin/php/php5.5.x/php-cgi.exe" .php |
Restartujemy WAMPa i sprawdzamy, czy adres http://localhost/?phpinfo=1 działa.
Przechodzimy do konfiguracji VHOSTów do sekcji <Directory> danego hosta, albo tworzymy plik .htaccess (otaczamy wtedy fragmenty w <Files ~ "\.php$">...</Files> w katalogu w którym chcemy innej wersji PHP i dodajemy:
1
| FcgidWrapper "D:/wamp/bin/php/php5.3.x/php-cgi.exe" .php |
Lub, jeśli nie chcemy, żeby do konfiguracji został użyty ten sam plik INI dla domyślnego PHP:
1
| FcgidWrapper "D:/wamp/bin/php/php5.3.x/php-cgi.exe -c D:/wamp/bin/php/php5.3.x/php.ini" .php |
Druga wersja jest zapewne tą bardziej pożądaną :)
Źródła: [1], [2], [2], [3], oraz własne metody prób i błędów :)
Tagi: apache, fastcgi, php, php5 Brak komentarzy »
Dodany: 24 kwietnia, 2015 | Kategoria: Magento, PHP
Jeżeli atrybut w Magento istnieje i ma już opcje, można je dodać tak:
1 2 3 4 5 6 7 8 9 10
| $arg_attribute = 'nazwa_attr';
$arg_value = '<< Nowa opcja >>';
$attr_id = Mage::getModel('catalog/resource_eav_attribute')->loadByCode('catalog_product', $arg_attribute)->getAttributeId();
$option['attribute_id'] = $attr_id;
$option['value']['<< JAKAŚ NAZWA KLUCZA >>'][0] = $arg_value;
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$setup->addAttributeOption($option); |
Brak komentarzy »
Dodany: 26 lutego, 2015 | Kategoria: Magento
Tworząc w magento layout należy podać identyfikator dla danego kontrolera i akcji. Niestety czasem są z tym problemy, ale można dość szybko znaleźć wyciągnąć ten identyfikator w samej akcji za pomocą:
1
| $this->getFullActionName() |
Tagi: adminhtml, layout, magento Brak komentarzy »
Dodany: 20 stycznia, 2015 | Kategoria: PHP
Mamy dwa kolory, chcielibyśmy uzyskać kolor pomiędzy nimi wyrażony w procentach (0% – 100%).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| function mixcolors($color1, $color2, $amt)
{
$amt = min(1, max($amt, 0));
$c1_R = hexdec(substr($color1, 0, 2));
$c1_G = hexdec(substr($color1, 2, 2));
$c1_B = hexdec(substr($color1, 4, 2));
$c2_R = hexdec(substr($color2, 0, 2));
$c2_G = hexdec(substr($color2, 2, 2));
$c2_B = hexdec(substr($color2, 4, 2));
$d1 = $c1_R + (($c2_R - $c1_R) * $amt);
$d2 = $c1_G + (($c2_G - $c1_G) * $amt);
$d3 = $c1_B + (($c2_B - $c1_B) * $amt);
$m_p1 = sprintf('%02x', round($d1));
$m_p2 = sprintf('%02x', round($d2));
$m_p3 = sprintf('%02x', round($d3));
return '#' . $m_p1 . $m_p2 . $m_p3;
} |
Wynik funkcji
1
| mixcolors('FF0000','00FF00', X) |
gdzie X to kolejno 0, 0.25, 0.5, 0.75, 1
ff0000
bf4000
808000
40bf00
00ff00
Tagi: colors, linear, mix, percentage, php Brak komentarzy »