2009-03-11 6 views

Répondre

3

Les articles sont stockés dans la base de données dans une table appelée jos_content. Si vous vouliez faire une recherche et de remplacement à travers eux tous, ouvrir une connexion à la base de données (ou utiliser quelque chose comme phpMyAdmin) et exécuter quelque chose comme ceci:

UPDATE `jos_content` 
SET `introtext` = REPLACE(`introtext`, 'great', 'awesome'), 
     `fulltext` = REPLACE(`fulltext`, 'great', 'awesome') 

Modifier pour vous aider à résoudre le problème:
Vous ne pourrez pas trouver "jos_content" dans votre base de code, à cause d'une fonctionnalité de Joomla qui vous permet de spécifier différents préfixes de table: "jos" est le préfixe par défaut. Dans le code, il est toujours écrit comme ceci: #__content, et l'objet DBO convertit cela en "jos_content" dans les coulisses.

Cependant, vous n'avez pas du tout à chercher dans votre code, juste la base de données. Vous devriez être en mesure de vous connecter à la base de données - tous les détails dont vous avez besoin seront dans votre fichier configuration.php.

  • Si vous utilisez Joomla 1.5, les variables dont vous avez besoin sont appelés $host, $user, $password et $db.
  • Dans Joomla 1.0, les variables sont nommées $mosConfig_host, $mosConfig_user, $mosConfig_password et $mosConfig_db

Il y a un certain nombre de façons que vous pouvez connecter à la base de données (vérifiez auprès de votre société d'hébergement si vous avez phpMyAdmin disponible: il est très facile à utiliser), mais de le faire à partir du terminal (remplaçant dans vos propres variables ci-dessus):

$ mysql -h $host -u $user -p$password -D $db 

Notez qu'il n'y a pas d'espace entre le -p et le mot de passe. De là, vous devriez être en mesure d'exécuter votre propre SQL, mais je recommande vivement de faire une sauvegarde avant de faire des modifications manuelles.

+0

J'ai essayé de trouver la chaîne jos_content dans mon serveur sans succès par $ find jos_content | xargs grep -L jos. –

+0

Il semble que find ne puisse pas voir à l'intérieur de la base de données. –

1

articles Joomla magasins dans une base de données MySQL. Si vous voulez lire/modifier/supprimer des articles, vous devrez utiliser des requêtes SQL.

Si vous êtes déterminé à le faire depuis un terminal, vous pouvez toujours démarrer le client mysql à partir de la ligne de commande et exécuter vos requêtes à partir de là.

+0

Comment démarrer un client MySQL dans un terminal? J'utilise Ubuntu. –

+0

Est-ce une chose une fois ou quelque chose que vous voulez faire régulièrement. Si vous le faites régulièrement écrire une application CLI rapide sur la plate-forme Joomla. Ensuite, vous pouvez simplement l'exécuter quand vous en avez besoin ou en faire un travail cron. – Elin

Questions connexes