inaktiv Posted April 7, 2016 Share Posted April 7, 2016 Witam, chciałbym dodać dodatkowe pole do atrybutów w Presta 1.5, chodzi mi aby stworzyć tooltip z moim tekstem do każdego atrybutu na stronie produktu. Znalazłem pewne rozwiązanie na stronie http://prestashopkrakow.pl/dodanie-dodatkowego-pola-przy-wartosci-atrybutu-presta-shop-1-6/ wszystko zrobione jak w linku, ładnie zapisuje do bazy ale nie wyświetla się nic na stronie produktu. Tzn. przykładowo <p>{$price}</p> Tak jak w linku nie wyświetla nic. Jak się do tego odnieść? Link to comment Share on other sites More sharing options...
0 endriu107 Posted April 7, 2016 Share Posted April 7, 2016 Podejrzewam ze będzie musiał to sobie wyciągnać z $groups Link to comment Share on other sites More sharing options...
0 inaktiv Posted April 7, 2016 Author Share Posted April 7, 2016 Podejrzewam ze będzie musiał to sobie wyciągnać z $groups Przepraszam ale za bardzo nie kumam jeszcze kodu presty, możesz bardziej to rozwinąć. Załóżmy dodałem kolumny w ps_attribute o nazwie attrtext i wg tego dodałem $attrtext w Attribute.php oraz pole tekstowe w AdminAttributeController.php. Na stronie atrybutu wszystko ładnie wygląda, zapisuje do bazy, w phpmyadmin wszystko pięknie widnieje tylko nie wiem jak to wyciągnąć do product.tpl. Załóżmy $attrtext tak jak dodałem w Attributes.php nie zwraca nic. Link to comment Share on other sites More sharing options...
0 endriu107 Posted April 7, 2016 Share Posted April 7, 2016 Wydumpuj sobie group i zobacz czy się wyświetla, nie znam tej modyfikacji jednak zakładam ze dodaje pola tak samo jak kolor etc. więc żeby się dostać do tego kolor nie wystarczy wpisać w pliku {$color} tylko trzeba go wyciągnąć z tablicy. Link to comment Share on other sites More sharing options...
0 inaktiv Posted April 7, 2016 Author Share Posted April 7, 2016 Wydumpuj sobie group i zobacz czy się wyświetla, nie znam tej modyfikacji jednak zakładam ze dodaje pola tak samo jak kolor etc. więc żeby się dostać do tego kolor nie wystarczy wpisać w pliku {$color} tylko trzeba go wyciągnąć z tablicy. to ta sama tabela co pobiera kolor dla miniaturki atrybutu kolor, w phpmyadmin wszystko widnieje ładnie w tabeli ps_attribute, jest kolumna za kolumną z kolorami minaturek Link to comment Share on other sites More sharing options...
0 inaktiv Posted April 7, 2016 Author Share Posted April 7, 2016 to ta sama tabela co pobiera kolor dla miniaturki atrybutu kolor, w phpmyadmin wszystko widnieje ładnie w tabeli ps_attribute, jest kolumna za kolumną z kolorami minaturek -- phpMyAdmin SQL Dump -- version 4.1.14 -- http://www.phpmyadmin.net -- -- Host: 127.0.0.1 -- Generation Time: 07 Kwi 2016, 17:11 -- Server version: 5.6.17 -- PHP Version: 5.5.12 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=[spam-filter]CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=[spam-filter]CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=[spam-filter]COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- Database: `usb_db` -- -- -------------------------------------------------------- -- -- Struktura tabeli dla tabeli `ps_attribute` -- CREATE TABLE IF NOT EXISTS `ps_attribute` ( `id_attribute` int(10) unsigned NOT NULL AUTO_INCREMENT, `id_attribute_group` int(10) unsigned NOT NULL, `color` varchar(32) DEFAULT NULL, `position` int(10) unsigned NOT NULL DEFAULT '0', `attrtext` varchar(256) NOT NULL, `atprice` decimal(6,2) NOT NULL, PRIMARY KEY (`id_attribute`), KEY `attribute_group` (`id_attribute_group`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=41 ; -- -- Zrzut danych tabeli `ps_attribute` -- INSERT INTO `ps_attribute` (`id_attribute`, `id_attribute_group`, `color`, `position`, `attrtext`, `atprice`) VALUES (21, 4, '#ffffff', 0, '', '0.00'), (22, 4, '#000000', 1, '', '0.00'), (23, 4, '#0000ff', 2, '', '0.00'), (24, 5, '#ffffff', 0, '', '0.00'), (25, 5, '#000000', 1, '', '0.00'), (26, 5, '#ff0000', 2, '', '0.00'), (27, 14, '', 0, '<p>dodaktowy opis</p>', '25.99'), (28, 6, '#000000', 0, '', '0.00'), (29, 6, '#ffffff', 1, '', '0.00'), (30, 6, '#ffff00', 2, '', '0.00'), (31, 7, '', 0, '', '0.00'), (32, 7, '', 1, '', '0.00'), (33, 7, '', 2, '', '0.00'), (34, 8, '', 0, '<p>gjdjdghjhgjhgjfhgj</p>', '0.00'), (35, 8, '', 1, '', '0.00'), (36, 8, '', 2, '', '0.00'), (37, 10, '', 0, '<p>Opis</p>', '34.00'), (38, 12, '', 0, '', '0.00'), (39, 12, '', 1, '', '0.00'), (40, 12, '', 2, '', '0.00'); /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; Link to comment Share on other sites More sharing options...
0 inaktiv Posted April 7, 2016 Author Share Posted April 7, 2016 I teraz jak wyciągnąć załóżmy dla atrybutu o ID 27 tekst z kolumny attrtext? Link to comment Share on other sites More sharing options...
0 endriu107 Posted April 7, 2016 Share Posted April 7, 2016 A próbowałeś dumpować to co pisałem? Link to comment Share on other sites More sharing options...
0 inaktiv Posted April 7, 2016 Author Share Posted April 7, 2016 A próbowałeś dumpować to co pisałem? Którą tabelę? Link to comment Share on other sites More sharing options...
0 endriu107 Posted April 7, 2016 Share Posted April 7, 2016 (edited) Jestem cierpliwy... Wydumpuj sobie group i zobacz czy się wyświetla... {$groups|var_dump} Edited April 7, 2016 by endriu107 (see edit history) Link to comment Share on other sites More sharing options...
0 inaktiv Posted April 7, 2016 Author Share Posted April 7, 2016 Jestem cierpliwy... {$groups|var_dump} Nie wyświetla się, tylko standardowe info z presty dla danego atrybutu Link to comment Share on other sites More sharing options...
0 endriu107 Posted April 7, 2016 Share Posted April 7, 2016 Możesz podać link do takiego produkty z dumpem? Link to comment Share on other sites More sharing options...
0 inaktiv Posted April 7, 2016 Author Share Posted April 7, 2016 14 =>array (size=5)'name' => string 'Akcesoria dodatkowe' (length=19)'group_type' => string 'color' (length=5)'default' => int 27'attributes' =>array (size=1)27 => string 'Goodram standard' (length=16)'attributes_quantity' =>array (size=1)27 => int 0 Jak dla mnie to powinno jeszcze być 'attrtext' => Link to comment Share on other sites More sharing options...
0 inaktiv Posted April 7, 2016 Author Share Posted April 7, 2016 Możesz podać link do takiego produkty z dumpem? Mam to na lokalnym niestety chyba że screen pomoże? Link to comment Share on other sites More sharing options...
0 inaktiv Posted April 7, 2016 Author Share Posted April 7, 2016 Cały dump array (size=8)4 =>array (size=5)'name' => string 'Kolor blaszki' (length=13)'group_type' => string 'color' (length=5)'default' => int 21'attributes' =>array (size=3)21 => string 'Biały' (length=6)22 => string 'Czarny' (length=6)23 => string 'Niebieski' (length=9)'attributes_quantity' =>array (size=3)21 => int 022 => int 023 => int 05 =>array (size=5)'name' => string 'Kolor obudowy' (length=13)'group_type' => string 'color' (length=5)'default' => int 24'attributes' =>array (size=3)24 => string 'Biały' (length=6)25 => string 'Czarny' (length=6)26 => string 'Czerwony' (length=8)'attributes_quantity' =>array (size=3)24 => int 025 => int 026 => int 06 =>array (size=5)'name' => string 'Kolor plastiku' (length=14)'group_type' => string 'color' (length=5)'default' => int 28'attributes' =>array (size=3)28 => string 'Czarny' (length=6)29 => string 'Biały' (length=6)30 => string 'Żółty' (length=8)'attributes_quantity' =>array (size=3)28 => int 029 => int 030 => int 07 =>array (size=5)'name' => string 'Kolor skóry' (length=12)'group_type' => string 'radio' (length=5)'default' => int 31'attributes' =>array (size=3)31 => string 'Czarny' (length=6)32 => string 'Brązowy' (length=8)33 => string 'Czerwony' (length=8)'attributes_quantity' =>array (size=3)31 => int 032 => int 033 => int 08 =>array (size=5)'name' => string 'Kolor drewna' (length=12)'group_type' => string 'radio' (length=5)'default' => int 34'attributes' =>array (size=3)34 => string 'Beżowy' (length=7)35 => string 'Jasny brąz' (length=11)36 => string 'Ciemny brąz' (length=12)'attributes_quantity' =>array (size=3)34 => int 035 => int 036 => int 010 =>array (size=5)'name' => string 'Pojemność' (length=11)'group_type' => string 'radio' (length=5)'default' => int 37'attributes' =>array (size=1)37 => string '2GB USB2.0' (length=10)'attributes_quantity' =>array (size=1)37 => int 012 =>array (size=5)'name' => string 'Wgrywanie danych' (length=16)'group_type' => string 'color' (length=5)'default' => int 38'attributes' =>array (size=3)38 => string 'do 50 MB zwykłe, kasowalne' (length=27)39 => string 'do 100 MB zwykłe, kasowalne' (length=28)40 => string 'do 500 MB zwykłe, kasowalne' (length=28)'attributes_quantity' =>array (size=3)38 => int 039 => int 040 => int 014 =>array (size=5)'name' => string 'Akcesoria dodatkowe' (length=19)'group_type' => string 'color' (length=5)'default' => int 27'attributes' =>array (size=1)27 => string 'Goodram standard' (length=16)'attributes_quantity' =>array (size=1)27 => int 0 Link to comment Share on other sites More sharing options...
0 endriu107 Posted April 7, 2016 Share Posted April 7, 2016 Wygląda tak jakby nowe pole nie zostało przekazane do tablicy, może coś pominąłeś? Link to comment Share on other sites More sharing options...
0 inaktiv Posted April 7, 2016 Author Share Posted April 7, 2016 Wygląda tak jakby nowe pole nie zostało przekazane do tablicy, może coś pominąłeś? Tak to wygląda a więc po kolei: Kolumna w tabeli ps_attribute jest jak było widać wcześniej i z pola tesktowego na stronie attrybutu wyświetla się zawartość więc od strony admina jest ok coś nie tak z front office. Pole to $attrtext. Wycinek kodu z Attributes.php to co zmieniłem. class AttributeCore extends ObjectModel { /** @var integer Group id which attribute belongs */ public $id_attribute_group; /** @var string Name */ public $name; public $attrtext; public $color; public $position; public $default; /** * @see ObjectModel::$definition */ public static $definition = array( 'table' => 'attribute', 'primary' => 'id_attribute', 'multilang' => true, 'fields' => array( 'id_attribute_group' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true), 'color' => array('type' => self::TYPE_STRING, 'validate' => 'isColor'), 'position' => array('type' => self::TYPE_INT, 'validate' => 'isInt'), 'attrtext' => array('type' => self::TYPE_HTML, 'lang' => false, 'validate' => 'isCleanHtml','required' => false), 'name' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true, 'size' => 64), ) ); Następnie ten sam plik ale poniżej w funkcji getAttributes() public static function getAttributes($id_lang, $not_null = false) { if (!Combination::isFeatureActive()) return array(); return Db::getInstance()->executeS(' SELECT DISTINCT ag.*, agl.*, a.`id_attribute`, a.`attrtext`, al.`name`, agl.`name` AS `attribute_group` FROM `'._DB_PREFIX_.'attribute_group` ag LEFT JOIN `'._DB_PREFIX_.'attribute_group_lang` agl ON (ag.`id_attribute_group` = agl.`id_attribute_group` AND agl.`id_lang` = '.(int)$id_lang.') LEFT JOIN `'._DB_PREFIX_.'attribute` a ON a.`id_attribute_group` = ag.`id_attribute_group` LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON (a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = '.(int)$id_lang.') '.Shop::addSqlAssociation('attribute_group', 'ag').' '.Shop::addSqlAssociation('attribute', 'a').' '.($not_null ? 'WHERE a.`id_attribute` IS NOT NULL AND al.`name` IS NOT NULL AND agl.`id_attribute_group` IS NOT NULL' : '').' ORDER BY agl.`name` ASC, a.`position` ASC '); } Następnie w pliku AdminAttributesGroupsController.php w funkcji renderFormAttributes() public function renderFormAttributes() { $attributes_groups = AttributeGroup::getAttributesGroups($this->context->language->id); $this->table = 'attribute'; $this->identifier = 'id_attribute'; $this->fields_form = array( 'legend' => array( 'title' => $this->l('Values'), 'image' => '../img/admin/asterisk.gif', ), 'input' => array( array( 'type' => 'select', 'label' => $this->l('Attribute group:'), 'name' => 'id_attribute_group', 'required' => true, 'options' => array( 'query' => $attributes_groups, 'id' => 'id_attribute_group', 'name' => 'name' ), 'desc' => $this->l('Choose the group of the attribute') ), array( 'type' => 'text', 'label' => $this->l('Value:'), 'name' => 'name', 'lang' => true, 'size' => 33, 'required' => true, 'hint' => $this->l('Invalid characters:').' <>;=#{}' ), array( 'type' => 'textarea', 'label' => $this->l('Dodatkowy tekst'), 'name' => 'attrtext', 'lang' => false, 'cols' => 100, 'rows' => 15, 'class' => 'rte', 'autoload_rte' => true, 'required' => false ), array( 'type' => 'text', 'label' => $this->l('Cena:'), 'name' => 'atprice', 'lang' => false, 'required' => false, 'size' => 64, 'hint' => $this->l('Invalid characters:').' <>;=#{}' ) ) ); Wydaje mi się że wszystko gra od strony admina ale nie mogę tego wyciągnąć do product.tpl. Jesteś w stanie pomóc? Dzięki za dotychczasową pomoc i twój czas. Link to comment Share on other sites More sharing options...
0 inaktiv Posted April 8, 2016 Author Share Posted April 8, 2016 Może trzeba dodać to pole do productController.php ? Link to comment Share on other sites More sharing options...
0 inaktiv Posted April 8, 2016 Author Share Posted April 8, 2016 Wygląda tak jakby nowe pole nie zostało przekazane do tablicy, może coś pominąłeś? Jesteś w stanie pomóc z tym tematem? Link to comment Share on other sites More sharing options...
Question
inaktiv
Witam, chciałbym dodać dodatkowe pole do atrybutów w Presta 1.5, chodzi mi aby stworzyć tooltip z moim tekstem do każdego atrybutu na stronie produktu.
Znalazłem pewne rozwiązanie na stronie http://prestashopkrakow.pl/dodanie-dodatkowego-pola-przy-wartosci-atrybutu-presta-shop-1-6/
wszystko zrobione jak w linku, ładnie zapisuje do bazy ale nie wyświetla się nic na stronie produktu.
Tzn. przykładowo <p>{$price}</p> Tak jak w linku nie wyświetla nic.
Jak się do tego odnieść?
Link to comment
Share on other sites
18 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now