Jump to content

dimitron

Клиенты
  • Content Count

    65
  • Joined

  • Last visited

Community Reputation

29 Хороший

About dimitron

  • Rank
    Активист
  • Birthday 07/15/1991

Контакты

  • Сайт
    lebid.pro

Информация

  • Пол
    Мужчина
  • Интересы
    PHP, HTML, JS, Figma

Recent Profile Visitors

917 profile views
  1. Реальная стоимость разработки этого плагина 525$. 35 часов * 15$ = 525$. Копию я продаю за 20$. И я считаю что это оптимальная цена для копии.
  2. Тот сайт который зарабатывает готов купить плагин и за 100$ с открытым кодом. И он с удовольствием купит и будет рад что часть своей рутинной работы снял с себя. Так что 20$ это не столь большие деньги для сайта который зарабатывает от 100$ в месяц.
  3. Здравствуйте, незнаю баг это или нет, выглядит как баг. Когда я в настройках категории указываю что не нужно коменты в этой категории к новостям. Когда захожу на новость то коменты все равно в конец страницы добавляються (Форма добавить комент). Окей думаю я, включу назад, а отключу именно в новости и так коменты с новости отключены. Я считаю если мы в настройках категории указали что ОТКЛЮЧИТЬ КОМЕНТЫ то так и должно быть для новостей этой категории (сейчас я руками отключаю ко всем новостям нужной мне категории). Если эта настройка есть и она не работает она бесмысленна.
  4. Неплохо, а подключение к api по протоколу oauth 2.0?
  5. В общем решил поднять цену до 20$. За 5$ я не смогу продавать, я не мало сил вложил. Кому нужно с открытым кодом готов обсудить цену в ЛС.
  6. В планах плагин поддерживать и развивать если он комуто будет нужен. Если хотите с открытым кодом он в разы будет дороже. Этот плагин я писал 2 года назад и до сих пор работает ВК не часто так вносит какието корективы в API.
  7. Если реально мой код комуто подошол я не буду прям настаивать на какойто цене 😉 Рекизиты: WebMoney Z180611042436
  8. Соглашусь, но приходиться создавать ленту подгоняя под нужный вид (и нужно знать как правильно сформировать RSS тело новости что бы ВК правильно подтянул), а для рядового пользователя это геморой. И через "RSS импорт новостей" в DLE там скорее всего не получиться подтянуть скрины и видос с доп полей. Моя же цель сделать удобный и простой в настройке плагин. Я канечно не замарачивался импортом RSS в ВК, могу ошибаться, там только обычные ссылки и обычный текст импортируеться. Я же даю пользователю больше возможностей, прикрепить скрины указав с какого доп.поля их брать, а также прикрепить видос тоже указав с какого доп.поля брать. Также пользователь сам легко и быстро может сделать свой шаблон текста который будет публиковаться на стене группы. + Возможность запланировать публикацию записи + Возможность выбора публиковать сейчас или нет Вот скрины плагина: 1) при редактировании/добавлении новости в админке сайта 2) настройки плагна
  9. Печально что такой плагин уже не актуален, в пустую время потратил 😉 Если хотите видить в плагине что то новое пишите сюда или на сайте в коменты.
  10. Немного поправил код файла (engine/modules/teleport/functions.php). ВНИМАНИЕ!!! тестировал на версии dle 14.0. И этот хак работает только для кастомного тега {customcomments} <?php //Формируем дерево коментов function buildTree(array &$elements, $parent = 0) { $branch = array(); foreach ($elements as $element) { if ($element['parent'] == $parent) { $children = buildTree($elements, $element['id']); if (!empty($children)) { $element['children'] = $children; } $branch[$element['id']] = $element; unset($elements[$element['id']]); } } return $branch; } //Вытягиваем ID комментов которые относятся к комменту function getIdComments($str, $array) { if (!empty($array['children'])) { foreach ($array['children'] as $value) { $str .= getIdComments(','.$value['id'], $value); } } return $str; } function getFullLink($post) { global $db, $config; //Вытягиваем все комменты новости $sql_comments = $db->query("SELECT * FROM " . PREFIX . "_comments WHERE post_id='{$post['post_id']}' "); $list_comments = []; while ($row = $db->get_row($sql_comments)) { $list_comments[$row['id']] = $row; } $list_comments = buildTree($list_comments); //вытаскиваем все ID $comments_ids = []; foreach ($list_comments as $value) { $comments_ids[] = getIdComments($value['id'], $value); } //Формируем id комментов по страницам $count_com = $config['comm_nummers']; $count_coms = count($list_comments); $pages = @ceil($count_coms / $count_com); $pages_ = []; for ($i = 1; $i <= $pages; $i++) { $count = 1; foreach ($comments_ids as $key => $value) { $pages_[$i][] = $value; unset($comments_ids[$key]); if ($count == $count_com) break; $count++; } $pages_[$i] = explode(',', implode(',', $pages_[$i])); } //Определяем на какой странице находиться комментарий $page_num = null; if(count($pages_) > 1) { foreach ($pages_ as $key => $value) { if (in_array($post['id'], $value)) { $page_num = $key; break; } } } //Генерируем ссылку на телепорт к коменту $teleport = !empty($page_num) ? "page,1,{$page_num}," : ""; $teleport_c = !empty($page_num) ? "cstart={$page_num}&" : ""; $teleport_ = "#comment-id-{$post['id']}"; if ($config['allow_alt_url']) { if ($config['seo_type'] == 1 or $config['seo_type'] == 2) { if ($row['category'] and $config['seo_type'] == 2) { $full_link = $config['http_home_url'] . get_url($post['category']) . "/{$teleport}" . $post['post_id'] . "-" . $post['alt_name'] . ".html{$teleport_}"; } else { $full_link = $config['http_home_url'] . $teleport . $post['post_id'] . "-" . $post['alt_name'] . ".html{$teleport_}"; } } else { $full_link = $config['http_home_url'] . date('Y/m/d/', $post['newsdate']) . $teleport . $post['alt_name'] . ".html{$teleport_}"; } } else { $full_link = $config['http_home_url'] . "index.php?{$teleport_c}newsid=" . $post['post_id'] . $teleport_; } return $full_link; }
  11. Сделал телепорт к нужному коменту. Только к каждому коменту дополнительный запрос в БД используеться. Нужно сделать следующее: 1) создать файл engine/modules/teleport/functions.php код файла: <?php //Формируем дерево коментов function buildTree(array &$elements, $parent = 0) { $branch = array(); foreach ($elements as $element) { if ($element['parent'] == $parent) { $children = buildTree($elements, $element['id']); if (!empty($children)) { $element['children'] = $children; } $branch[$element['id']] = $element; unset($elements[$element['id']]); } } return $branch; } //Вытягиваем ID комментов которые относятся к комменту function getIdComments($str, $array) { if (!empty($array['children'])) { foreach ($array['children'] as $value) { $str .= getIdComments(','.$value['id'], $value); } } return $str; } function getFullLink($post) { global $db, $config; //Вытягиваем все комменты новости $sql_comments = $db->query("SELECT * FROM " . PREFIX . "_comments WHERE post_id='{$post['post_id']}' "); $list_comments = []; while ($row = $db->get_row($sql_comments)) { $list_comments[$row['id']] = $row; } $list_comments = buildTree($list_comments); //вытаскиваем все ID $comments_ids = []; foreach ($list_comments as $value) { $comments_ids[] = getIdComments($value['id'], $value); } //Формируем id комментов по страницам $count_com = 2; $count_coms = count($list_comments); $pages = @ceil($count_coms / $count_com); $pages_ = []; for ($i = 1; $i <= $pages; $i++) { $count = 1; foreach ($comments_ids as $key => $value) { $pages_[$i][] = $value; unset($comments_ids[$key]); if ($count == $count_com) break; $count++; } $pages_[$i] = explode(',', implode(',', $pages_[$i])); } //Определяем на какой странице находиться комментарий $page_num = null; foreach ($pages_ as $key => $value) { if (in_array($post['id'], $value)) { $page_num = $key; break; } } //Генерируем ссылку на телепорт к коменту $teleport = !empty($page_num) ? "page,1,{$page_num}," : ""; $teleport_c = !empty($page_num) ? "cstart={$page_num}&" : ""; $teleport_ = !empty($page_num) ? "#comment-id-{$post['id']}" : ""; if ($config['allow_alt_url']) { if ($config['seo_type'] == 1 or $config['seo_type'] == 2) { if ($row['category'] and $config['seo_type'] == 2) { $full_link = $config['http_home_url'] . get_url($post['category']) . "/{$teleport}" . $post['post_id'] . "-" . $post['alt_name'] . ".html{$teleport_}"; } else { $full_link = $config['http_home_url'] . $teleport . $post['post_id'] . "-" . $post['alt_name'] . ".html{$teleport_}"; } } else { $full_link = $config['http_home_url'] . date('Y/m/d/', $post['newsdate']) . $teleport . $post['alt_name'] . ".html{$teleport_}"; } } else { $full_link = $config['http_home_url'] . "index.php?{$teleport_c}newsid=" . $post['post_id'] . $teleport_; } return $full_link; } 2) В файле engine/modules/functions.php найти: if (!function_exists('password_hash')) { добавить выше include (ENGINE_DIR . '/modules/teleport/functions.php'); 3) В файле engine/classes/comments.class.php найти: $tpl->set( '{news-link}', $full_link."#comment" ); заменить на $tpl->set( '{news-link}', getFullLink($row) ); Вот в принцепе и все. Проверил, работает на всех типах ЧПУ. Тестировал на CMS DLE 14.0
  12. Да это не поможет, быстрый поиск (вот та выпадалка что найдено) реализован AJAX (engine/ajax/search.php) и обычное добавление в форму скрытого инпута с нужной категорией не поможет. Как это можно решить? 1) в файле engine/classes/js/dle_js.js нужно немного пеработать функцию dle_do_search (нужно туда добавить параметр на какой мы сейчас категории) что бы мы понимали где мы находимся. 2) в файле engine/ajax/search.php нужно написать логику какие категории должны участвовать в быстром поиске (для настроек можно использовать масив данных) для категори на которой мы находимся Если вам нужно реализовать такое, пишите в ЛС
×
×
  • Create New...