1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Автоматическое добавление опроса

Тема в разделе "Плагины для XenForo [1.x]", создана пользователем Microname, 08.06.2012.

Загрузка
  1. Microname

    Microname Пользователь

    Регистрация:
    08.05.12
    Сообщения:
    32
    Симпатии:
    4
    Нужно было в один из разделов под названием "Ваши идеи" добавить автоголосовалку ко всем новым темам. Долго разбирался в движке, в общем плюнул и решил подойти в другого бока.
    Скрипт полностью автономен, грузится по крону.

    PHP:
    <?php
     
    // Принудительное добавление опроса к определенным темам
     
     
    // Opens a connection to a MySQL server
    $connection mysql_connect("localhost""db_username""db_password");
    if (!
    $connection) {
      die(
    "Not connected : " mysql_error());
    }
     
    // Set the active MySQL database
    $db_selected mysql_select_db("db_name"$connection);
    if (!
    $db_selected) {
      die(
    "Can\'t use db : " mysql_error());
    }
    mysql_query("SET NAMES utf8");
     
    // ноды, к которым добавлять опрос
    $nodes = array(
        array(
    "node_id" => 2"question" => "Ваше мнение по этой идее ?""answers" => array(
            
    "Идея отличная. Действительно, можно заработать",
            
    "Хорошая рабочая идея. Если приложить усилия, - будет толк",
            
    "Идея так себе. Есть много более интересных вариантов",
            
    "Полный бред. Бессмысленная трата времени",
            
    "Затрудняюсь ответить"
            
    )
        )
    );
     
    foreach(
    $nodes as $node) {
     
        
    // ищем все темы нода, где нет опроса ВООБЩЕ. Если опрос все-таки есть, пусть остается он )))))
        
    $result mysql_query("SELECT * FROM xf_thread WHERE node_id = ".$node["node_id"]." AND thread_id NOT IN (SELECT content_id FROM xf_poll WHERE content_type = 'thread')");
        if (!
    $result) {
          die(
    "Invalid query: " mysql_error());
        }
     
        
    // листаем темы
        
    while ($row = @mysql_fetch_assoc($result)) {
            
    // добавляем сам опрос
            
    mysql_query("INSERT INTO `xf_poll` (`content_type`, `content_id`, `question`, `responses`, `voter_count`, `public_votes`, `multiple`, `close_date`) VALUES ('thread', ".$row["thread_id"].", 'Ваше мнение по этой идее?', 0x613a353a7b693a313b613a333a7b733a383a22726573706f6e7365223b733a38373a22d098d0b4d0b5d18f20d0bed182d0bbd0b8d187d0bdd0b0d18f2e20d094d0b5d0b9d181d182d0b2d0b8d182d0b5d0bbd18cd0bdd0be2c20d0bcd0bed0b6d0bdd0be20d0b7d0b0d180d0b0d0b1d0bed182d0b0d182d18c2e223b733a31393a22726573706f6e73655f766f74655f636f756e74223b693a303b733a363a22766f74657273223b623a303b7d693a323b613a333a7b733a383a22726573706f6e7365223b733a3130343a22d0a5d0bed180d0bed188d0b0d18f20d180d0b0d0b1d0bed187d0b0d18f20d0b8d0b4d0b5d18f2e20d095d181d0bbd0b820d0bfd180d0b8d0bbd0bed0b6d0b8d182d18c20d183d181d0b8d0bbd0b8d18f2c202d20d0b1d183d0b4d0b5d18220d182d0bed0bbd0ba2e223b733a31393a22726573706f6e73655f766f74655f636f756e74223b693a303b733a363a22766f74657273223b623a303b7d693a333b613a333a7b733a383a22726573706f6e7365223b733a39373a22d098d0b4d0b5d18f20d182d0b0d0ba20d181d0b5d0b1d0b52e20d095d181d182d18c20d0bcd0bdd0bed0b3d0be20d0b1d0bed0bbd0b5d0b520d0b8d0bdd182d0b5d180d0b5d181d0bdd18bd18520d0b2d0b0d180d0b8d0b0d0bdd182d0bed0b22e223b733a31393a22726573706f6e73655f766f74655f636f756e74223b693a303b733a363a22766f74657273223b623a303b7d693a343b613a333a7b733a383a22726573706f6e7365223b733a37363a22d09fd0bed0bbd0bdd18bd0b920d0b1d180d0b5d0b42e20d091d0b5d181d181d0bcd18bd181d0bbd0b5d0bdd0bdd0b0d18f20d182d180d0b0d182d0b020d0b2d180d0b5d0bcd0b5d0bdd0b82e223b733a31393a22726573706f6e73655f766f74655f636f756e74223b693a303b733a363a22766f74657273223b623a303b7d693a353b613a333a7b733a383a22726573706f6e7365223b733a34303a22d097d0b0d182d180d183d0b4d0bdd18fd18ed181d18c20d0bed182d0b2d0b5d182d0b8d182d18c2e223b733a31393a22726573706f6e73655f766f74655f636f756e74223b693a303b733a363a22766f74657273223b623a303b7d7d, 0, 0, 0, 0)");
            
    $result_for_id mysql_query("SELECT LAST_INSERT_ID()");
            
    $id mysql_fetch_array($result_for_id);
     
            foreach(
    $node["answers"] as $answer) {
                
    // добавляем варианты ответа
                
    mysql_query("INSERT INTO `xf_poll_response` (`poll_id`, `response`, `response_vote_count`, `voters`) VALUES (".$id[0].", '".$answer."', 0, '')");
            }
     
            
    mysql_query("UPDATE xf_thread SET discussion_type = 'poll' WHERE thread_id = ".$row["thread_id"]);
        }
     
    }
     
    ?>
     
    capone, Romchik®, Vad3105 и ещё 1-му нравится это.

Поделиться этой страницей