Экспорт комментариев из Modx Quip в HyperComments
Нужно прикрутить клевую внешнюю систему комментирования hypercomments.com к движку MODx Revolution на котором раньше использовался сниппет для комментариев Quip – очень распространенное решение для Модкса. Прикрутить то не сложно (как сделать чтобы ГиперКомментарии индексировались поисковиками я расскажу в следующем посте) а сейчас нам надо просто перенести существующие комментарии.
По сути не так сложно, нужно создать сниппет, который бы формировал XML файл для последующего импорта в HyperComments. Спецификация файла импорта на примере объяснена в официальной документации. Нам нужно только вытащить из базы все существующие комментарии и представить их в виде XML.
Ниже представляю пример такого сниппета. Однако обращаю внимание, что часть кода, которая отвечает за получение информации о странице на которой был оставлен коммент оставляю на вас. Дело в том, что реализация идентификации потоков в Quip может быть реализована очень по разному.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<?php echo '<?xml version="1.0" encoding="UTF-8"?><hc>'; $rest = $modx->query("SELECT `thread` FROM `quip_comments` GROUP BY `thread`"); while($rowt = $rest->fetch(PDO::FETCH_ASSOC)) { $t = $rowt['thread']; /* тут мы обрабатываем имя потока $t по своему усмотрению и добываем по нему заголовок и урл страницы, которые вставляем ниже */ echo '<post> <title>_ЗАГОЛОВОК_СТРАНИЦЫ_</title> <url>_ПЕРМАНЕНТНЫЙ_АДРЕС_СТРАНИЦЫ_</url> <xid></xid> <stream_id></stream_id> <comments>'; $res = $modx->query("SELECT * FROM `quip_comments` WHERE `thread` = '$t' "); while($row = $res->fetch(PDO::FETCH_ASSOC)){ echo '<comment> <id/> <parent_id/> <root_id/> <text>'.$row['body'].'</text> <nick>'.$row['name'].'</nick> <time>'.date('D, d M Y H:i:s O', strtotime($row['createdon'])).'</time> <ip>'.$row['ip'].'</ip> <email>'.$row['email'].'</email> <account_id>'.$row['author'].'</account_id> <files/> <vote_up>0</vote_up> <vote_dn>0</vote_dn> <topic>false</topic> <param/> <hc_comment>false</hc_comment> <avatar/> <category/> </comment>'; } echo '</comments></post>'; } echo '</hc>'; return; |
октября 29, 2013 Вторник at 8:01 пп
-
www.kuhnishkaf.ru
-
www.kuhnishkaf.ru
