Делаю скрипт, который бы перемещал в форум "Мусор" раздачи, где NN количество дней не было раздающих.
Делать "перенос" я придумал путём замены значения 'forum_id'.'phpbb_topics' для моего топика на значение форума МУСОР (у меня это forum_id=22)
Проблема в том - что часть тем не отображаются в "мусоре". Если их искать через поиск - они найдутся. Причём при открытии темы под шапкой будет написано "Список форумов ‹ Трекер ‹ Мусор". Но этих тем там нет!
Подскажите как правильно....
Перемещение тем через базу
-
Ka
Сообщение
Перемещение тем через базу
это при просмотре вот так /viewforum.php?f=22Но этих тем там нет!
Сообщение
Перемещение тем через базу
То же самое нужно делать и в таблице phpbb_posts, а в таблице phpbb_forums попутно нужно уменьшать и увеличивать счётчик сообщений и тем в соотв. форумах
-
Ka
Сообщение
Перемещение тем через базу
а вы случаем не планируете добавить подобный механизм в оффициальный репозиторий? было бы весьма полезно
-
Ka
-
Ka
Сообщение
Перемещение тем через базу
Может кому понадобится:
Поди сами разберётесь дальше
Код: Выделить всё
#!/bin/sh
BT_DBI_CONF="/etc/sysconfig/`basename $0`"
###
start_QUERY() {
# $1 - QueryName
local QUERY=`get_VAR_VAL "$1"`
check_CONF "$QUERY"
echo "USE $DBI_DB; $QUERY;" | $DBI_CMD
}
###
get_DEFAULT_CONF() {
echo '# DBI settings'
echo '#'
echo "DBI_HOST=''"
echo "DBI_USER=''"
echo "DBI_PASSWD=''"
echo "DBI_DB=''"
echo 'DBI_CMD=""'
echo
echo '# Querys'
echo '# in format:'
echo "# <QUERY_NAME>='<QUERY string>'"
echo '#'
}
check_CONF() {
# $1 - Query
[ "$DBI_HOST" = '' ] && error_CONF "DBI_HOST not defined in '$BT_DBI_CONF'"
[ "$DBI_USER" = '' ] && error_CONF "DBI_USER not defined in '$BT_DBI_CONF'"
[ "$DBI_PASSWD" = '' ] && error_CONF "DBI_PASSWD not defined in '$BT_DBI_CONF'"
[ "$DBI_DB" = '' ] && error_CONF "DBI_DB not defined in '$BT_DBI_CONF'"
[ "$DBI_CMD" = '' ] && error_CONF "DBI_CMD not defined in '$BT_DBI_CONF'"
[ -f "$(echo "$DBI_CMD" | awk '{print $1}')" ] || error_CONF "DBI_CMD='$DBI_CMD' not exist"
[ "$1" = '' ] && error_CONF "Query not defined in '$BT_DBI_CONF'"
}
error_CONF() {
# $1 - Message
echo "!! $1"
exit 64
}
get_VAR_VAL() {
# $1 - VarName
eval "echo \"\$${1}\""
}
###
[ -f "$BT_DBI_CONF" ] || get_DEFAULT_CONF >$BT_DBI_CONF
. $BT_DBI_CONF
case "$1" in
-q) start_QUERY "$2" ;;
*) echo
echo -e "\nUsage: $0 -q QUERY_NAME"; exit 1 ;;
esac
exit 0
Вернуться в «Вопросы, ответы и примеры решений»