Редактировать выпуск статей Joomla в терминале
-
10-07-2019 - |
Вопрос
Как вы можете редактировать статьи Joomla в терминале?
Проблема: чтобы узнать местоположение, в котором Joomla хранит свои статьи
Я безуспешно пытался найти статьи по
locate Masi | xargs -0 grep great
Решение
Статьи хранятся в базе данных в виде таблицы под названием jos_content
.Если вы хотите выполнить поиск и замену во всех них, откройте соединение с базой данных (или используйте что-то вроде phpMyAdmin) и запустите что-то вроде этого:
UPDATE `jos_content`
SET `introtext` = REPLACE(`introtext`, 'great', 'awesome'),
`fulltext` = REPLACE(`fulltext`, 'great', 'awesome')
Редактировать чтобы помочь вам устранить проблему:
Вы не сможете найти "jos_content" в своей кодовой базе из-за функции Joomla, которая позволяет вам указывать разные префиксы таблиц:"jos" - это префикс по умолчанию.В коде это всегда пишется так: #__content
, и объект DBO преобразует это в "jos_content
- за кулисами.
Однако вам вообще не нужно заглядывать в свой код, только в базу данных.У вас должна быть возможность подключиться к базе данных - все необходимые данные будут в вашем личном кабинете. configuration.php
файл.
- Если вы используете Joomla 1.5, нужные вам переменные вызываются
$host
,$user
,$password
и$db
. - В Joomla 1.0 переменным присваиваются имена
$mosConfig_host
,$mosConfig_user
,$mosConfig_password
и$mosConfig_db
Существует несколько способов подключения к базе данных (уточните у вашей хостинговой компании, доступен ли у вас phpMyAdmin:это довольно просто в использовании), но сделать это из терминала (подставьте в свои собственные переменные сверху):
$ mysql -h $host -u $user -p$password -D $db
обратите внимание, что между буквой -p и паролем нет пробела.Оттуда вы должны быть в состоянии запустить свой собственный SQL, но я бы весьма рекомендуется создать резервную копию, прежде чем вносить какие-либо изменения вручную.
Другие советы
Joomla хранит статьи в базе данных MySQL. Если вы хотите читать / изменять / удалять статьи, вам придется использовать SQL-запросы.
Если вы решили сделать это из терминала, вы всегда можете запустить клиент mysql из командной строки и выполнить ваши запросы оттуда.