THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Oui, des tutos tu va en trouver à la pelle.


OpenStudio Toulouse

Offline


je cherche une fonction me permettant d'afficher les categories , j'ai cherché  dans les class
Thelia\Model\Category;
Thelia\Model\CategoryQuery;
Thelia\Model\CategoryI18n;
Thelia\Model\CategoryI18nQuery;

$category = CategoryQuery::create()->find();
ca n'affiche pas le nom de la categorie ... il existe une autre fonction ?

Offline


$categories = CategoryQuery::create()->find(); // Là, tu les as toutes.

foreach ($categories as $category) {
   echo $category->setLocale('fr_FR')->getTitle();
}

Pour plus de détails sur les requêtes, voir la doc Propel : http://propelorm.org/documentation/03-basic-crud.html


OpenStudio Toulouse

Offline


merci cool ... et t'as la meme pour les produits ?

Offline


Tu devrais facilement trouver tout seul smile


OpenStudio Toulouse

Offline


ok trouvé ! merki ;-)
$products = ProductQuery::create()->find();     
        foreach ($products as $product) {
            echo $product->getId()."-".$product->setLocale('fr_FR')->getTitle()."\n";
        }

Offline


et pour voir l'image associé à la categorie ..y a une valeur du type  $category->getImage(); ?

Offline


Non, il y a la table product_image, et la classe associée, ProductImageQuery

Regarder le code des boucles (namespace core/lib/Thelia/Core/Template/Loop) devrait te donner plein d'infos utiles.


OpenStudio Toulouse

Offline


je cherche a afficher l'etat d'une commande
$orderers = OrderQuery::create()->find(); -> ca donne les commandes en cours
$search = OrderStatusQuery::create()->find();-> ca c'est les etats de commande

foreach ($orderers as $orderer) {
            echo $orderer->getId().";".$orderer->getRef();-> ca donne  l'id et le ref de la commande    
            foreach ($search as $searching) {   
et la j'aimerais recuperer le champ status_id dans $orderer ... sauf qu'on peut pas utliser la fonction telle quelle ...
je peux faire autrement ?                                           
                if ($searching->getId() = $orderer->getStatusId() ){
                    echo $searching->getCode();
                }                                   
            ....
PHP Fatal error:  Can't use method return value in write context in

Last edited by axil_76 (22-04-2015 07:33:51)

Offline


Avec Propel, tu peux faire bien autre chose que remonter toute une table en mémoire.

Par exemple, filtrer par clef primaire :

OrderStatusQuery::create()->findPk($orderer->getStatusId())

http://propelorm.org/documentation/03-basic-crud.html


OpenStudio Toulouse

Offline


ok je vais regarder merci ... désolé je debute ...
bon ca fonctionne ;-)
php Thelia clapi:order list
#!/usr/bin/env php
|ID   |REF                 |ORDER STATUS
|1    |ORD000000000001     |canceled
|2    |ORD000000000002     |canceled
|3    |ORD000000000003     |paid

Offline


La doc, c'est ta meilleure amie wink


OpenStudio Toulouse

Offline


bonjour,
j'ai trouvé la fonction qui permet de rechercher une catégorie par son mon

 $search = ProductQuery::create()->findOneByRef($data[0]);

par contre je la trouve pas pour les produits , y a id, visible ... mais pas ref
on peut faire comment ???
merci

Offline


rechercher une catégorie par son mon

Quoi ?

Tu devrais utiliser un IDE qui propose l'autocomplétion, ça t'aiderais :

img-2015-04-30%2014%2052%2059.png

Et va lire cette fichue doc Propel.


OpenStudio Toulouse

Offline


bonjour,
question ... pour que le produit inséré soit visible dans la partie admin
->On doit trouvé le produit inséré dans la table product .
->Dans la table product_category, on doit y trouver l’id  du produit (product_id) et category_id qui correspond  à l’id de la category .
il y a autre chose ?

Offline


Je ne comprend pas la question. Que veux-tu faire exactement ?


OpenStudio Toulouse

Offline


Le module que j'essaie de développer, me permettra d'utiliser Thelia en mode batch
pour l'instant j'en suis là :

cache                                                                           
  cache:clear                 Invalidate all caches                             
clapi                                                                           
  clapi:brand                 add/update/remove/list/export category            
  clapi:category              add/update/remove/removeall/list/export category  
  clapi:customer              add/update/remove/list customer                   
  clapi:document              add/update/remove/removeall/list/export image     
  clapi:image                 add/update/remove/removeall/list/export image
  clapi:order                 add/update/remove/list category
  clapi:product               add/update/remove/removeall/list product
image-cache 
  image-cache:clear           Empty part or whole web space image cache

donc j'ai développé la partie category et product
exemple :

php Thelia clapi:product list
|CREATED   |CREATED_BY|ID   |REF |TITLE|VISIBLE|POSITON|ROOT_CATEGORY|VIRTUAL|IMAGE               |QUANTITY
|          |          |209  |test |test     |1      |31     |31           |0      |NO                  |0
List product successfully 
 

J'arrive bien a insérer des produits

php -f Thelia  clapi:product --file="local/modules/Clapi/Model/products.csv" add 
 

Ils sont bien dans la base, dans les produits et dans les catégories , mais il n'apparaissent pas , sous l'interface d'admin .
d'ou ma question ...

Offline


Pour inserer des produits,  il te faut utiliser les events pour declencher des actions. Tu ne dois pas manipuler directement les tables. Regarde le module ImportT1 pour  avoir un exemple.

Autre façon de faire : l'API.  Thelia expose une API qui permet de manipuler pas mal de choses: http://doc.thelia.net/en/documentation/ … ation.html


OpenStudio Toulouse

Offline


En fait je me suis inspiré du script import.php sous le répertoire setup.  Qui lui fonctionne ... J'ai pas vu l'utilisation d'évents ..

Offline


Aïe.
Le script "import.php" est utilisé pour remplir la base de données avec des données brutes simulées, pour permettre le développement et le test du core de Thelia. Ce n'est pas un script d'importation de données (OK, le nom du script est mal choisi), juste de l'outillage pour bourrer la BD de données.

Thelia utilise massivement le pattern Observer: un contrôleur génère un évènement, qui est distribué à tous les composants qui y sont abonnés. Plus d'infos: http://doc.thelia.net/en/documentation/ … index.html
Si tu crée directement les produits dans la BD, les modules et certains composants du core ne sont pas avertis de la création, et ne peuvent donc pas réaliser les actions nécessaires pour que la base de données soit cohérente et consistante.

Tu as un exemple de la façon de faire dans le module ImportT1, voir le fichier Import/ProductsImport.php.

Ceci dit, si tu ne veux pas te fatiguer à tout recoder, regarde l'API WebServices JSON de Thelia, que tu peux tout à fait utiliser dans un script, pour créer un produit, par exemple...  : http://doc.thelia.net/en/documentation/ … oduct.html


OpenStudio Toulouse

Offline


ok merci je vais regarder le module ImportT1 , ce qui est bizarre c'est que la partie creation des categories fonctionne , ca apparait bien dans la partie admin.
Le problème c'est sur les produits ...  c'est possible de t'envoyer mon module pour que tu le mettre sur le Github ? mon proxy ne m'autorise pas l'url du github ;-(
comme ca tu pourras eventuellement y jetter un petit coup d'oeil ;-)

Offline


ce qui est bizarre c'est que la partie creation des categories fonctionne

La question, ce n'est pas que "ça marche" (ou que ça a l'air de marcher). La question, c'est que ça s'intègre correctement dans l'architecture de Thelia.

c'est possible de t'envoyer mon module pour que tu le mettre sur le Github

Désolé, je n'ai pas trop de temps libre en ce moment. Utilise un VPN si tu es coincé derrière un proxy.


OpenStudio Toulouse