Uwaga! Od sierpnia 2017 forum jest w trybie tylko do odczytu.

Dlaczego? Dlatego, że społeczność TYPO3 przeniosła się na slack'a i stackoverflow:
  • Przeczytaj artykuł wprowadzający do slacka, w którym dowiesz gdzie i jak się zarejestrować.
  • Jeżeli masz pytania odnośnie Polskiej Społeczności TYPO3 zapraszamy na kanał slack'a #community-pl. Rozmawiamy tam w języku polskim.
  • Pytania dotyczące samego TYPO3 zadawaj po angielsku na stackoverflow oznaczając je tagiem "typo3". Następnie posługując się linkiem do tego pytania postaraj się zachęcić ludzi z kanału slack'a #typo3-cms lub bardziej pasujących kanałów tematycznych, żeby na nie odpowiedzieli.
  • Możesz też oczywiście zadawać pytania na slacku bez zakładania wątków na stackoverflow, ale wówczas wiedza ta nie jest indeksowana przez googla i część osób nie będzie chciała Ci z tego powodu pomagać.
  • Dla części osób dzielących się wiedzą ważne jest też budowanie reputacji na stackoverflow. Jest to kolejny powód dla którego powinieneś zadawać pytania na stackoverflow by zwiększyć swoje szanse na znalezienie odpowiedzi. Pamiętaj, żeby oceniać odpowiedzi!
Tematy bez nowych odpowiedzi

tt_products - dodatkowe pola produktu


Autor Wiadomość
Napisane: 26.08.2013 [12:55]
zibi
Twórca tematu
zarejestrowany: 18.01.2013
Posty: 9
Witam,
mam problem z dodaniem do rozszerzenia tt_products dodatkowych pól dla produktów. Dodawanie pól przy pomocy wbudowanego mechanizmu nie jest dla mnie rozwiązaniem, bo musiałbym przy każdym produkcie dodawać ów pola ręcznie, pomijając już względy zaśmiecania bazy, takie rozwiązanie mogło by być uciążliwe i mało "profesjonalne" dla klienta ;/ Postanowiłem zatem utworzyć rozszerzenie dodające pola do produktów na stałe. Połowicznie mi się to udało, ponieważ dodałem kolumny do tabel tt_products i tt_products_language, w BE wszystko wygląda ładnie. Jednak mam problem z uwzględnieniem ów pól w wyświetlaniu produktów w FE. Jedyne co znalazłem w internecie na ten temat to to :
http://lists.typo3.org/pipermail/typo3-english/2006-February/020203.html
Jednak nie bardzo wiem co dokładnie mam umieścić w implementacji metody getItemMarkerArray, dodatkowo nie działa hook tam zastosowany, testowo zrobiłem wypisywanie czegokolwiek (przy pomocy die()) i nie ma żadnej reakcji, nic się takiego nie wyświetla, nie jest to brane w ogóle pod uwagę icon_frown.gif
W wersji tt_products 2.7.5, czyli tej z której korzystam metoda ta znajduje się w tt_products/view/field/class.tx_ttproducts_field_datafield_view.php zauważyłem że lista parametrów odbieranych przez tą metodę różni się nieco od tej z listów, ale nawet po jej przekopiowaniu nic a nic sie nie wyświetla.
Baardzo proszę o jakąkolwiek pomoc, terminy naglą a rozwiązania tego problemu nie widzę ;(

Pozdrawiam,
Jakub

Edit:
Ok, wiem już co mam dodac do metody getItemMarkerArray, lecz nadal pozostaje pytanie jak uruchomic hook, w którym mogłbym ją nadpisac ? i cyz klasa w której będe przechowywał moja metode getItemMarkerArray powinna rozszerzać klasę tx_ttproducts_field_datafield_view ?

[Ten temat był edytowany 2 razy. Ostatnio 26.08.2013 o 13:14.]
Napisane: 26.08.2013 [17:16]
zibi
Twórca tematu
zarejestrowany: 18.01.2013
Posty: 9
Problem rozwiązany, część odpowiedzi znalazłem w internecie, do części doszedłem sam. Męczyłem się z tym 2 dni, a po napisaniu tutaj posta wystarczyło mi kilka godzin na ogarnięcie tematu do końca. Dla tych którzy chcieliby rozszerzyć u siebie wtyczkę tt_products o kolejne pola mały tutorial:

1) Tworzymy nowe rozszerzenie (dla przykładu extending_ttproducts), bez modułów BE ani pluginów FE, jedynie rozszerzajace tabele tt_products (i tt_products_language jeśli przechowujemy produkty w wielu językach) o pola które chcemy dodać. generujemy rozszerzenie wraz ze statycznymi plikami zawierającymi TS
2) jeśli wszystko poszło dobrze, powinniśmy już widzieć dodatkowe pola w BE
3) w folderze z wtyczką tworzymy nowy plik class.tx_extendingttproducts_classname.php, a w nim klase z metodą getItemMarkerArray. Przykładowa zawartość pliku:
PHP
class tx_extendingttproducts_classname{
 
    function getItemMarkerArray(&$pObj, &$markerArray, $null, &$item, $null1, $imageNum, $imageRenderObj, $forminfoArray, $theCode) {
        $row = &$item['rec'];
        if (!isset($markerArray['###NOWY_MARKER###'])) {
            $markerArray['###NOWY_MARKER###'] = $row['tx_extendingttproducts_nowe_pole'];
        }
    }
 
}

$null i $null1 to parametry których nie rozszyfrowałem, ich kolejność nie zgadza się z kolejnością parametrów metod getItemMarkerArray, które udało mi się znaleźć w klasach tt_products
4) następnie dodajemy hook do naszego rozszerzenia, w tym celu umieszczamy te oto 2 linijki w pliku ext_localconf.php
PHP
$TYPO3_CONF_VARS['EXTCONF'][TT_PRODUCTS_EXTkey]['extendingTCA'][] = $_EXTKEY;
$TYPO3_CONF_VARS['EXTCONF'][TT_PRODUCTS_EXTkey]['PRODUCT'][] = t3lib_extMgm::extPath($_EXTKEY).'class.tx_extendingttproducts_classname.php:&tx_extendingttproducts_classname';

5) Teraz nasze nowe pola będą widoczne w widoku SINGLE, aby można z nich bylo korzystać we wszystkich typach pluginu tt_products, uzupełniamy konfiguracje statyczną rozszerzenia
TYPOSCRIPT
# constants.txt
 
plugin.tt_products {
    newRequiredFields = uid,pid,category,price,price2,directcost,graduated_price_uid,tax,inStock,datasheet,unit_factor,weight[b],tx_extendingttproducts_nowe_pole[/b]
}
 
# setup.txt
 
plugin.tt_products {
    conf.tt_products.ALL.requiredFields = {$plugin.tt_products.newRequiredFields}
}


Mam nadzieję, że komuś się to przyda, jeśli istnieje lepsze/łatwiejsze/ładniejsze rozwiązanie tego problemu to prosze mnie poprawic.

Pozdrawiam,
Jakub
Napisane: 19.02.2014 [09:01]
tomek60
zarejestrowany: 18.02.2014
Posty: 3
Witam WASicon_biggrin.gificon_smile.gificon_eek.gif Fachowo odpowiedzieliście wszyscy ok. Gratuluję zibibanghead.gificon_wink.gificon_rolleyes.gif- twórcy tematu. Wszystkim życzę miłego dnia i wszystkich dni następnych.icon_smile.gif












POLECAM
cięcie strumieniem wody
Napisane: 20.02.2014 [08:25]
tomek60
zarejestrowany: 18.02.2014
Posty: 3
Pozdrawiam serdecznieicon_biggrin.gificon_smile.gificon_frown.gificon_eek.gificon_confused.gificon_cool.gifMnie nie ukrywam interesuje cięcie stali strumieniem wody -pod wysokim ciśnieniem - około 4000 barów wraz z rozdrobnionym materiałem ściernym. Ale temat przez Was poruszony ciekawy i popieramicon_biggrin.gificon_smile.gif Do zobaczenia......