web-dev-qa-db-fra.com

Noms de table de base Joomla pour JTable :: getInstance?

Je construis un outil pour importer du contenu pour différentes langues. Il crée des copies d'éléments existants tels que des menus, des articles, des modules, etc. ayant un contenu spécifique à la langue.

Par exemple, lors de la copie d'un article, j'utilise les éléments suivants pour charger la table de contenu:

$contentSrcTbl = JTable::getInstance('Content', 'JTable', array());
$contentSrcTbl->load(array('alias' => $article['alias']));

J'ai les noms de table pour les menus, les articles et les modules, mais je n'arrive pas à trouver une liste de noms de tables à utiliser dans l'appel getInstance. Pour le moment, je cherche le nom de la table à utiliser pour les styles de modèles. J'ai essayé:

  • Modèle
  • Modèles
  • Style
  • Modes
  • TemplateStyle
  • TemplatesStyle
  • TemplatesStyles
  • TemplatesTableStyle

Le dernier est le nom de la classe dans le dossier tables du composant Modèles.

Mais aucun de ceux-ci ne retourne un objet jtable, ils retournent tous la valeur null.

Existe-t-il une liste montrant les noms de table associés aux tables Joomla principales?

Si aucune liste, comment puis-je savoir quoi utiliser pour le nom de la table?

Merci!

1
Sloan Thrasher

Le nom de la classe est TemplatesTableStyle. Mais comme ce n'est pas une classe de base, vous devez l'enregistrer:

JLoader::register('TemplatesTableStyle', JPATH_ADMINISTRATOR . '/components/com_templates/tables/style.php');

ou incluez tout le dossier com_templates/tables:

JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_templates/tables');

Alors cela devrait marcher:

$table = JTable::getInstance('Style', 'TemplatesTable', array());
2
Sharky