10.01.2018 12:03:02 pm
Страница (модуль: pages) - это модуль, который представляет собой "соединение" основных модулей, таких, как: форум, фотографии, видео, блог и так далее, другими словами, если вы создаете новую страницу, вы создаете отдельный раздел сайта. Хотя, что рассказывать, тек кто бывает в соцсетях, знает, что такое страница или группа, что мне кажется одним и тем же.
При удалении страницы, которая имеет не мало контента, при этом сайт находится на обычном хостинге, может вылететь ошибка, после чего сама страница может быть удалена, а ее контент будет удален не полностью. Для удаления контента, что принадлежит удаляемой страницы я написал небольшой сценарий, если интересно, можете ознакомиться: Удаление страницы (Модуль Pages phpFox 3). А в этой теме я расскажу, как найти оставшийся контент (мусор), после неудачной попытки удалить страницу.
И так начнем! Я набросал такой код:
Это будет, как основа всему сценарию, но это не все. Давайте попробуем начать с поиска фотографий. Поиск осуществляется по полю group_id, таблицы phpfox_photo. С начало мы собираем id всех страниц (это делает код выше), затем собираем все id фотографий и id групп (из записи фото), чтобы проверить существует ли такая страница или нет (это будет выполнять код ниже):
Этот код должен быть в одном файле с первым кодом (после первого кода).
Если фотографии, которые принадлежат несуществующей страницы будут найдены, они отобразятся на экране в виде ссылок (id фото). Что делать с такими фотографиями решать вам, удалять или оставить.
Покажу еще один пример, как, например, искать темы, что принадлежат несуществующей (удаленной) страницы. Тут вместо кода с этого поста (что представлен вторым) вставляем следующею "композицию":
С блогами, событиями и всем остальным все делается по аналогии.
При удалении страницы, которая имеет не мало контента, при этом сайт находится на обычном хостинге, может вылететь ошибка, после чего сама страница может быть удалена, а ее контент будет удален не полностью. Для удаления контента, что принадлежит удаляемой страницы я написал небольшой сценарий, если интересно, можете ознакомиться: Удаление страницы (Модуль Pages phpFox 3). А в этой теме я расскажу, как найти оставшийся контент (мусор), после неудачной попытки удалить страницу.
И так начнем! Я набросал такой код:
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
define('PHPFOX', true);
include('include/setting/server.sett.php');
$db = new mysqli($_CONF['db']['host'], $_CONF['db']['user'], $_CONF['db']['pass'], $_CONF['db']['name']);
if ($db->connect_errno)
{
exit('Error MYSQLI: ' . $db->connect_error);
}
$db->set_charset('utf8');
$q = 'SELECT page_id
FROM phpfox_pages';
$r = $db->query($q) or exit($db->error);
$pages = array();
while ($row = $r->fetch_assoc())
{
$pages[] = $row['page_id'];
}
Это будет, как основа всему сценарию, но это не все. Давайте попробуем начать с поиска фотографий. Поиск осуществляется по полю group_id, таблицы phpfox_photo. С начало мы собираем id всех страниц (это делает код выше), затем собираем все id фотографий и id групп (из записи фото), чтобы проверить существует ли такая страница или нет (это будет выполнять код ниже):
$q = 'SELECT photo_id, group_id
FROM phpfox_photo';
$r = $db->query($q) or exit($db->error);
while ($row = $r->fetch_assoc())
{
if (!empty($row['group_id']) && !in_array($row['group_id'], $pages))
{
echo '<a href="https://сайт.ком/photo/' . $row['photo_id'] . '/" target="_blank">' . $row['photo_id'] . '</a><br />';
}
}
Этот код должен быть в одном файле с первым кодом (после первого кода).
сайт.ком
- замените на домен своего сайта.Если фотографии, которые принадлежат несуществующей страницы будут найдены, они отобразятся на экране в виде ссылок (id фото). Что делать с такими фотографиями решать вам, удалять или оставить.
Покажу еще один пример, как, например, искать темы, что принадлежат несуществующей (удаленной) страницы. Тут вместо кода с этого поста (что представлен вторым) вставляем следующею "композицию":
$q = 'SELECT thread_id, group_id
FROM phpfox_forum_thread';
$r = $db->query($q) or exit($db->error);
while ($row = $r->fetch_assoc())
{
if (!in_array($row['group_id'], $pages))
{
echo '<a href="https://сайт.ком/forum/thread/' . $row['thread_id'] . '/" target="_blank">' . $row['thread_id'] . '</a><br />';
}
}
С блогами, событиями и всем остальным все делается по аналогии.
- Жалоба