Он парсит с сайта шикимори и мунвалка при обновлении новостиМожете объяснить как работает!!!
Посмотрите видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Он парсит с сайта шикимори и мунвалка при обновлении новостиМожете объяснить как работает!!!
ну это твой фейк про который админы забыли))) но основной забанили)))alukardua мальчик, что за херню ты несешь? Где я забанен на многих форумах?
Это один и тот же аккаунт и никто ни на что не забивал.ну это твой фейк про который админы забыли))) но основной забанили)))
над этим работаюСпасибо за модуль. А можете все таки добавить функционал, чтобы он парсил когда добавляешь новость?
О большое спасибо. Будем ждатьнад этим работаю
1. Где проверка на админа в engine/ajax ?Новая версия парсера
так как это альфа версия в ней пока нет парсинга обложки и скриншотов1. Полностью переделана админка, теперь она смотрится красиво
2. Расширен функционал обновления названия, метатега и чпу
3. добавлена в добавлении и редактировании кнопка спарсить с шикимори (парсит по id с шикимори)
если обнаружите ошибки пишите
$fields = array('field_kinopoisk_id' => array('' => '----'), //id кинопоиск
'field_world_art_id' => array('' => '----'), //id world-art
'field_shikimori_id' => array('' => '----'), //id Shikimori
'field_english_name' => array('' => '----'), //английское название на Shikimori
'field_japan_name' => array('' => '----'), //японское название на Shikimori
'field_age_limitation' => array('' => '----'), //возрастное ограничение на Shikimori
'field_release_year' => array('' => '----'), //год выпуска на Shikimori
'field_release_date' => array('' => '----'), //дата начала выпуска на Shikimori
'field_expiration_date' => array('' => '----'), //дата завершения выпуска на Shikimori
'field_series_in' => array('' => '----'), //количество серий на Shikimori
'field_status' => array('' => '----'), //статус на Shikimori
'field_duration' => array('' => '----'), //длительность на Shikimori
'field_tip' => array('' => '----'), //тип на Shikimori
'field_studios_sp' => array('' => '----'), //озвучивание на moonwalk
'field_studios_rl' => array('' => '----'), //все озвучки на moonwalk
'field_series_out' => array('' => '----'), //текущая серия на moonwalk
'field_season_mod' => array('' => '----'), //форматированный сезон
'field_series_mod' => array('' => '----') //форматированная серия
);
$all_field = xfieldsload();
if ($all_field)
foreach ($all_field as $key => $value)
{
$fields['field_kinopoisk_id']["{$value[0]}"] = " {$value[1]} ";
$fields['field_world_art_id']["{$value[0]}"] = " {$value[1]} ";
$fields['field_shikimori_id']["{$value[0]}"] = " {$value[1]} ";
$fields['field_english_name']["{$value[0]}"] = " {$value[1]} ";
$fields['field_japan_name']["{$value[0]}"] = " {$value[1]} ";
$fields['field_age_limitation']["{$value[0]}"] = " {$value[1]} ";
$fields['field_release_year']["{$value[0]}"] = " {$value[1]} ";
$fields['field_release_date']["{$value[0]}"] = " {$value[1]} ";
$fields['field_expiration_date']["{$value[0]}"] = " {$value[1]} ";
$fields['field_series_in']["{$value[0]}"] = " {$value[1]} ";
$fields['field_status']["{$value[0]}"] = " {$value[1]} ";
$fields['field_duration']["{$value[0]}"] = " {$value[1]} ";
$fields['field_tip']["{$value[0]}"] = " {$value[1]} ";
$fields['field_studios_sp']["{$value[0]}"] = " {$value[1]} ";
$fields['field_studios_rl']["{$value[0]}"] = " {$value[1]} ";
$fields['field_series_out']["{$value[0]}"] = " {$value[1]} ";
$fields['field_season_mod']["{$value[0]}"] = " {$value[1]} ";
$fields['field_series_mod']["{$value[0]}"] = " {$value[1]} ";
}
$all_xfield = xfieldsload();
$count_all_xfield = count($all_xfield);
$xfield = [];
$xfield['-'] = '-';
for ($i = 0; $i < $count_all_xfield; $i++) {
$xfield[$all_xfield[$i][0]] = $all_xfield[$i][1];
}
$xfOptions = [
'field_kinopoisk_id' => 'Дополнительное поле с ID Кинопоиск',
'field_world_art_id' => 'Дополнительное поле с ID world-art',
'field_shikimori_id' => 'Дополнительное поле с ID Shikimori',
'field_english_name' => 'Дополнительное поле с английским названием',
];
foreach ($xfOptions as $key => $value) {
showRow(
$value,
'',
makeDropDown($xfield, "save_con[opt][{$key}]", $shiki_opt['opt']['field_kinopoisk_id'])
);
}
foreach ($save_con as $index => $item)
foreach ($item as $key => $value)
{
$shiki[$index][$key] = $value;
}
curl_setopt($curl, CURLOPT_USERAGENT, $config['http_home_url']);
<?php
require_once ENGINE_DIR . '/modules/shikimori/shikimori.php';
Не делай себя семь пядей во лбу, каждый пишет как может, а так как это еще альфа версия он будет дорабатыватся1. Где проверка на админа в engine/ajax ?
2. Где проверка на хэш юзера в engine/ajax ?
3. Почему файл называется class и лежит с другими классами но не является классами?
4. Некоторый код был позаимствован с моего модуля но об этом конечно писать не стоит.
5. Зачем писать так?Когда это делается такPHP:$fields = array('field_kinopoisk_id' => array('' => '----'), //id кинопоиск 'field_world_art_id' => array('' => '----'), //id world-art 'field_shikimori_id' => array('' => '----'), //id Shikimori 'field_english_name' => array('' => '----'), //английское название на Shikimori 'field_japan_name' => array('' => '----'), //японское название на Shikimori 'field_age_limitation' => array('' => '----'), //возрастное ограничение на Shikimori 'field_release_year' => array('' => '----'), //год выпуска на Shikimori 'field_release_date' => array('' => '----'), //дата начала выпуска на Shikimori 'field_expiration_date' => array('' => '----'), //дата завершения выпуска на Shikimori 'field_series_in' => array('' => '----'), //количество серий на Shikimori 'field_status' => array('' => '----'), //статус на Shikimori 'field_duration' => array('' => '----'), //длительность на Shikimori 'field_tip' => array('' => '----'), //тип на Shikimori 'field_studios_sp' => array('' => '----'), //озвучивание на moonwalk 'field_studios_rl' => array('' => '----'), //все озвучки на moonwalk 'field_series_out' => array('' => '----'), //текущая серия на moonwalk 'field_season_mod' => array('' => '----'), //форматированный сезон 'field_series_mod' => array('' => '----') //форматированная серия ); $all_field = xfieldsload(); if ($all_field) foreach ($all_field as $key => $value) { $fields['field_kinopoisk_id']["{$value[0]}"] = " {$value[1]} "; $fields['field_world_art_id']["{$value[0]}"] = " {$value[1]} "; $fields['field_shikimori_id']["{$value[0]}"] = " {$value[1]} "; $fields['field_english_name']["{$value[0]}"] = " {$value[1]} "; $fields['field_japan_name']["{$value[0]}"] = " {$value[1]} "; $fields['field_age_limitation']["{$value[0]}"] = " {$value[1]} "; $fields['field_release_year']["{$value[0]}"] = " {$value[1]} "; $fields['field_release_date']["{$value[0]}"] = " {$value[1]} "; $fields['field_expiration_date']["{$value[0]}"] = " {$value[1]} "; $fields['field_series_in']["{$value[0]}"] = " {$value[1]} "; $fields['field_status']["{$value[0]}"] = " {$value[1]} "; $fields['field_duration']["{$value[0]}"] = " {$value[1]} "; $fields['field_tip']["{$value[0]}"] = " {$value[1]} "; $fields['field_studios_sp']["{$value[0]}"] = " {$value[1]} "; $fields['field_studios_rl']["{$value[0]}"] = " {$value[1]} "; $fields['field_series_out']["{$value[0]}"] = " {$value[1]} "; $fields['field_season_mod']["{$value[0]}"] = " {$value[1]} "; $fields['field_series_mod']["{$value[0]}"] = " {$value[1]} "; }6. Запись которую ты взял у меня, не сделал проверку на данныеPHP:$all_xfield = xfieldsload(); $count_all_xfield = count($all_xfield); $xfield = []; $xfield['-'] = '-'; for ($i = 0; $i < $count_all_xfield; $i++) { $xfield[$all_xfield[$i][0]] = $all_xfield[$i][1]; } $xfOptions = [ 'field_kinopoisk_id' => 'Дополнительное поле с ID Кинопоиск', 'field_world_art_id' => 'Дополнительное поле с ID world-art', 'field_shikimori_id' => 'Дополнительное поле с ID Shikimori', 'field_english_name' => 'Дополнительное поле с английским названием', ]; foreach ($xfOptions as $key => $value) { showRow( $value, '', makeDropDown($xfield, "save_con[opt][{$key}]", $shiki_opt['opt']['field_kinopoisk_id']) ); }Где фильтрация? Где безопасность?PHP:foreach ($save_con as $index => $item) foreach ($item as $key => $value) { $shiki[$index][$key] = $value; }
7. Вместо _REQUEST - _POST. Где провека на хэш юзера?
8. Опять таки взял код и не доделал
У тебя переменной config нет в функции, у тебя пустой юзер агент.PHP:curl_setopt($curl, CURLOPT_USERAGENT, $config['http_home_url']);
9. Зачем создавать файл с единственным подключением? То есть, у тебя не ведет в какую-то другую директорию где все файлы, а просто ты подключаешь файл внутри этого же каталога, зачем?PHP:<?php require_once ENGINE_DIR . '/modules/shikimori/shikimori.php';
Ну в общем код был явно взят с моего модуля, но править есть еще много чего. Безопасности нет, плохого кода много. Удачи.
Ничего себе, я дал советы, указал на ошибки а ты начал дерзить? Мальчик, успокойся и веди себя прилично. А пиздить чужой код, ctrl+c - ctrl+v, не делает из тебя программиста.Не делай себя семь пядей во лбу, каждый пишет как может, а так как это еще альфа версия он будет дорабатыватся
я не дерзил, просто не все твои замечания актуальныНичего себе, я дал советы, указал на ошибки а ты начал дерзить? Мальчик, успокойся и веди себя прилично. А пиздить чужой код, ctrl+c - ctrl+v, не делает из тебя программиста.
если посмотриш по внимательнее то это сам модуль подьема новости, переадресацию оставил для совместимости со старой версией модуля<?php
require_once ENGINE_DIR . '/modules/shikimori/shikimori.php';
так мне удобнее$fields = array('field_kinopoisk_id' => array('' => '----'), //id кинопоиск
'field_world_art_id' => array('' => '----'), //id world-art
'field_shikimori_id' => array('' => '----'), //id Shikimori
'field_english_name' => array('' => '----'), //английское название на Shikimori
'field_japan_name' => array('' => '----'), //японское название на Shikimori
'field_age_limitation' => array('' => '----'), //возрастное ограничение на Shikimori
'field_release_year' => array('' => '----'), //год выпуска на Shikimori
'field_release_date' => array('' => '----'), //дата начала выпуска на Shikimori
'field_expiration_date' => array('' => '----'), //дата завершения выпуска на Shikimori
'field_series_in' => array('' => '----'), //количество серий на Shikimori
'field_status' => array('' => '----'), //статус на Shikimori
'field_duration' => array('' => '----'), //длительность на Shikimori
'field_tip' => array('' => '----'), //тип на Shikimori
'field_studios_sp' => array('' => '----'), //озвучивание на moonwalk
'field_studios_rl' => array('' => '----'), //все озвучки на moonwalk
'field_series_out' => array('' => '----'), //текущая серия на moonwalk
'field_season_mod' => array('' => '----'), //форматированный сезон
'field_series_mod' => array('' => '----') //форматированная серия
);
$all_field = xfieldsload();
if ($all_field)
foreach ($all_field as $key => $value)
{
$fields['field_kinopoisk_id']["{$value[0]}"] = " {$value[1]} ";
$fields['field_world_art_id']["{$value[0]}"] = " {$value[1]} ";
$fields['field_shikimori_id']["{$value[0]}"] = " {$value[1]} ";
$fields['field_english_name']["{$value[0]}"] = " {$value[1]} ";
$fields['field_japan_name']["{$value[0]}"] = " {$value[1]} ";
$fields['field_age_limitation']["{$value[0]}"] = " {$value[1]} ";
$fields['field_release_year']["{$value[0]}"] = " {$value[1]} ";
$fields['field_release_date']["{$value[0]}"] = " {$value[1]} ";
$fields['field_expiration_date']["{$value[0]}"] = " {$value[1]} ";
$fields['field_series_in']["{$value[0]}"] = " {$value[1]} ";
$fields['field_status']["{$value[0]}"] = " {$value[1]} ";
$fields['field_duration']["{$value[0]}"] = " {$value[1]} ";
$fields['field_tip']["{$value[0]}"] = " {$value[1]} ";
$fields['field_studios_sp']["{$value[0]}"] = " {$value[1]} ";
$fields['field_studios_rl']["{$value[0]}"] = " {$value[1]} ";
$fields['field_series_out']["{$value[0]}"] = " {$value[1]} ";
$fields['field_season_mod']["{$value[0]}"] = " {$value[1]} ";
$fields['field_series_mod']["{$value[0]}"] = " {$value[1]} ";
}
зачем тут фильтрация, если все происходит в самой админке и сохраняет только в конфигforeach ($save_con as $index => $item)
foreach ($item as $key => $value)
{
$shiki[$index][$key] = $value;
}
1. Ладно, первого я не знал.я не дерзил, просто не все твои замечания актуальны
если посмотриш по внимательнее то это сам модуль подьема новости, переадресацию оставил для совместимости со старой версией модуля
так мне удобнее
зачем тут фильтрация, если все происходит в самой админке и сохраняет только в конфиг
конфиг у меня и приведен в строку, а безопасность в принцыпе делает сам движок, так как админка выведена не отдельным модулем, а встроена как и все модули движка3. Фильтрация нужна всегда, притом ты используешь var_export без явного приведение к типу число будет считаться за строку. В плане оптимизации и той же безопасности всегда нужно делать фильтрацию, особенно в подобном случае так как var_export этого не делает.
в таком варианте оно будет не долго, в следующих версиях будет переделано3. Почему файл называется class и лежит с другими классами но не является классами?
тогда можно сказать такое про 99% программистов, так как все уже кто то придумал и описал))))А пиздить чужой код, ctrl+c - ctrl+v, не делает из тебя программиста.
Она не делает проверку на безопасность данных. У тебя записывается открытый массив в конфиг а не строка.конфиг у меня и приведен в строку, а безопасность в принцыпе делает сам движок, так как админка выведена не отдельным модулем, а встроена как и все модули движка
ну это приму к сведению, посмотрюОна не делает проверку на безопасность данных. У тебя записывается открытый массив в конфиг а не строка.



