Парсер новостей для Joomla

Тема в разделе "Программирование", создана пользователем SuperOrange, 05.04.2013.

  1. Offline

    SuperOrange Недавно здесь

    Регистрация:
    30.03.2013
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    Добрый день, есть парсер новостей для Joomla.
    Собирает с ресурсов новости и закидывает в контент.

    Проблема в том что после добавления новость не появляется на сайте (хотя в админке она есть, можно редактировать и удалять).
    Т.к. я начинающий джумловод прошу помощи, чего там нехватает.

    Код (CODE):
    1. <?
    2.  
    3. // Set up the appropriate CMS framework
    4. define('_JEXEC', 1);
    5. define('JPATH_BASE', dirname(dirname(__FILE__). "/../configuration.php"));
    6. define('DS', DIRECTORY_SEPARATOR);
    7.  
    8. // Load the framework
    9. require_once ( JPATH_BASE . DS . 'includes' . DS . 'defines.php' );
    10. require_once ( JPATH_BASE . DS . 'includes' . DS . 'framework.php' );
    11.  
    12.  
    13. $title = date('H:i:s'). " Съешь ещё этих мягких французских булок, да выпей чаю";
    14. $content = date('H:i:s'). " Съешь ещё этих мягких французских булок, да выпей чаю";
    15.  
    16. $db = & JFactory::getDBO();
    17. $query = "
    18.     INSERT INTO #__content (
    19.         `asset_id`,
    20.         `title`,
    21.         `alias`,
    22.         `title_alias`,
    23.         `introtext`,
    24.         `fulltext`,
    25.         `state`,
    26.         `sectionid`,
    27.         `mask`,
    28.         `catid`,
    29.         `created`,
    30.         `created_by`,
    31.         `created_by_alias`,
    32.         `modified`,
    33.         `modified_by`,
    34.         `checked_out`,
    35.         `checked_out_time`,
    36.         `publish_up`,
    37.         `publish_down`,
    38.         `images`,
    39.         `urls`,
    40.         `attribs`,
    41.         `version`,
    42.         `parentid`,
    43.         `ordering`,
    44.         `metakey`,
    45.         `metadesc`,
    46.         `access`,
    47.         `hits`,
    48.         `metadata`,
    49.         `featured`,
    50.         `language`,
    51.         `xreference`
    52.     ) VALUES (
    53.         0,
    54.         '" . safe_str($title). "',
    55.         '" . cyr_translit($title, true). "',
    56.         '',
    57.         '',
    58.         '" . safe_str($content). "',
    59.         1,
    60.         0,
    61.         0,
    62.         8,
    63.         '" . date('Y-m-d H:i:s'). "',
    64.         26,
    65.         '',
    66.         '0000-00-00 00:00:00',
    67.         0,
    68.         0,
    69.         '0000-00-00 00:00:00',
    70.         '" . date('Y-m-d H:i:s'). "',
    71.         '0000-00-00 00:00:00',
    72.         '{\"image_intro\":\"\",\"float_intro\":\"\",\"image_intro_alt\":\"\",\"image_intro_caption\":\"\",\"image_fulltext\":\"\",\"float_fulltext\":\"\",\"image_fulltext_alt\":\"\",\"image_fulltext_caption\":\"\"}',
    73.         '{\"urla\":null,\"urlatext\":\"\",\"targeta\":\"\",\"urlb\":null,\"urlbtext\":\"\",\"targetb\":\"\",\"urlc\":null,\"urlctext\":\"\",\"targetc\":\"\"}',
    74.         '{\"show_title\":\"\",\"link_titles\":\"\",\"show_intro\":\"\",\"show_category\":\"\",\"link_category\":\"\",\"show_parent_category\":\"\",\"link_parent_category\":\"\",\"show_author\":\"\",\"link_author\":\"\",\"show_create_date\":\"\",\"show_modify_date\":\"\",\"show_publish_date\":\"\",\"show_item_navigation\":\"\",\"show_icons\":\"\",\"show_print_icon\":\"\",\"show_email_icon\":\"\",\"show_vote\":\"\",\"show_hits\":\"\",\"show_noauth\":\"\",\"urls_position\":\"\",\"alternative_readmore\":\"\",\"article_layout\":\"\",\"show_publishing_options\":\"\",\"show_article_options\":\"\",\"show_urls_images_backend\":\"\",\"show_urls_images_frontend\":\"\"}',
    75.         1,
    76.         0,
    77.         1,
    78.         '',
    79.         '',
    80.         1,
    81.         1,
    82.         '{\"robots\":\"\",\"author\":\"\",\"rights\":\"\",\"xreference\":\"\"}',
    83.         0,
    84.         '*',
    85.         ''
    86.     )
    87. ";
    88.  
    89. $db->setQuery($query);
    90.  
    91. if ($db->query()) {
    92.     $content_id = $db->insertid();
    93.  
    94.     $query = "SELECT asset_id FROM #__categories WHERE id=8";
    95.     $db->setQuery($query);
    96.     $asset_id = $db->loadResult();
    97.     $query = "SELECT rgt FROM #__assets WHERE id=" . $asset_id;
    98.     $db->setQuery($query);
    99.     $rgt = $db->loadResult();
    100.  
    101.     $query = "UPDATE #__assets SET rgt = rgt + 2 WHERE rgt > " . $rgt;
    102.     $db->setQuery($query);
    103.     echo $db->query();
    104.  
    105.     $query = "UPDATE #__assets SET lft = lft + 2 WHERE lft > " . $rgt;
    106.     $db->setQuery($query);
    107.     echo $db->query();
    108.  
    109.     $new_lft = $rgt;
    110.     $new_rgt = $rgt + 1;
    111.  
    112.     $query = "
    113.         INSERT INTO #__assets(
    114.             `parent_id`,
    115.             `lft`,
    116.             `rgt`,
    117.             `level`,
    118.             `name`,
    119.             `title`,
    120.             `rules`
    121.         ) VALUES (
    122.             36,
    123.             " . $new_lft . ",
    124.             " . $new_rgt . ",
    125.             3,
    126.             'com_content.article." . $content_id . "',
    127.             '" . $title . "',
    128.             '{\"core.delete\":{\"6\":1},\"core.edit\":{\"6\":1,\"4\":1},\"core.edit.state\":{\"6\":1,\"5\":1}}'
    129.         );
    130.     ";
    131.     $db->setQuery($query);
    132.     if ($db->query()) {
    133.         $new_asset_id = $db->insertid();
    134.         $query = "UPDATE #__content SET asset_id=" . $new_asset_id . " WHERE id=" . $content_id;
    135.         $db->setQuery($query);
    136.         $db->query();
    137.         echo ("Добавлена новость №" . $content_id . '|' . $new_asset_id . " <b>" . $title . "</b><br/>");
    138.     } else {
    139.         echo 'Ошибка добавления в assets';
    140.     }
    141. } else {
    142.     echo $db->stderr();
    143. }
    144.  
    145. $query = "SELECT id, title FROM #__content WHERE catid=8 ORDER BY id DESC";
    146. $result = $db->setQuery($query);
    147. $data = array();
    148. foreach ($db->loadAssocList() AS $row) {
    149.     $data[$row['id']] = $row['title'];
    150. }
    151. echo "<pre>";
    152. var_export($data);
    153. echo "</pre>";
    154.  
    155. function cyr_translit($string, $url = false) { //   Транслитерация русского сообщения
    156.     $rus = array('ё', 'ж', 'ц', 'ч', 'ш', 'щ', 'ю', 'я', 'Ё', 'Ж', 'Ц', 'Ч', 'Ш', 'Щ', 'Ю', 'Я');
    157.     $lat = array('yo', 'zh', 'tc', 'ch', 'sh', 'sh', 'yu', 'ya', 'YO', 'ZH', 'TC', 'CH', 'SH', 'SH', 'YU', 'YA');
    158.     $string = str_replace($rus, $lat, $string);
    159.     $string = str_replace(
    160.             array('А', 'Б', 'В', 'Г', 'Д', 'Е', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ъ', 'Ы', 'Ь', 'Э', 'а', 'б', 'в', 'г', 'д', 'е', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ъ', 'ы', 'ь', 'э'), array('A', 'B', 'V', 'G', 'D', 'E', 'Z', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'H', '_', 'I', '_', 'E', 'a', 'b', 'v', 'g', 'd', 'e', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', '_', 'i', '_', 'e'), $string);
    161.     if ($url) {
    162.         $string = preg_replace('/[^A-Za-z0-9_]+/', '-', $string);
    163.     }
    164.     return $string;
    165. }
    166.  
    167. function safe_str($str) {
    168.     #$db->Quote()
    169.     if (!get_magic_quotes_gpc()) {
    170.         $str = addslashes(trim($str));
    171.     }
    172.     return $str;
    173. }
    174.  
    175. ?>
     
  2.  

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

Загрузка...