kphp Опубликовано 18 февраля, 2022 Жалоба Поделиться Опубликовано 18 февраля, 2022 (изменено) P.S Обязательно вначале УСТАНАВЛИВАЕМ модуль "Поделиться заметкой на стену данного пользователя" 1. Открываем system/modules/notes.php Ищем: Спойлер default: $get_user_id = intval($_GET['get_user_id']); Выше вставляем: Спойлер //################### Просмотр полной заметки ajax ###################// case "view_box": $note_id = intval($_GET['note_id']); //SQL Запрос $row = $db->super_query("SELECT tb1.title, tb1.id, owner_user_id, full_text, comm_num, date, tb2.user_search_pref, tb2.user_photo, tb2.user_lastname FROM `".PREFIX."_notes` tb1, `".PREFIX."_users` tb2 WHERE id = '{$note_id}' AND tb1.owner_user_id = tb2.user_id"); //ЧС $CheckBlackList = CheckBlackList($row['owner_user_id']); if(!$CheckBlackList){ if($row){ //Формирование мета титле и спидбара $author_info = explode(' ', $row['user_search_pref']); $user_speedbar = $lang['notes_view']; $metatags['title'] = $lang['notes_view']; //Загружаем шаблон вывода полного просомтра заметки $tpl->load_template('notes/notes_full.tpl'); $tpl->set('{note-id}', $note_id); $tpl->set('{rid}', $row['id']); $tpl->set('{title}', stripslashes($row['title'])); $tpl->set('{full-text}', stripslashes($row['full_text'])); $tpl->set('{name}', $row['user_search_pref']); $tpl->set('{lastname}', $row['user_lastname']); if($row['owner_user_id'] == $user_id){ $tpl->set('[owner]', ''); $tpl->set('[/owner]', ''); $tpl->set_block("'\\[not-owner\\](.*?)\\[/not-owner\\]'si",""); } else { $tpl->set('[not-owner]', ''); $tpl->set('[/not-owner]', ''); $tpl->set_block("'\\[owner\\](.*?)\\[/owner\\]'si",""); } if($row['user_photo']){ $tpl->set('{ava}', '/uploads/users/'.$row['owner_user_id'].'/50_'.$row['user_photo']); } else { $tpl->set('{ava}', '{theme}/images/no_ava_50.png'); } $tpl->set('{name}', gramatikName($author_info[0])); $tpl->set_block("'\\[add\\](.*?)\\[/add\\]'si",""); $tpl->set_block("'\\[edit\\](.*?)\\[/edit\\]'si",""); $tpl->set_block("'\\[all\\](.*?)\\[/all\\]'si",""); $tpl->set('{user-id}', $row['owner_user_id']); $date_comm = strtotime($row['date']); if(date('Y-m-d', $date_comm) == date('Y-m-d', $yesterday_date)) $tpl->set('{date}', langdate('сегодня в H:i', $date_comm)); elseif(date('Y-m-d', $date_comm) == date('Y-m-d', ($yesterday_date-84600))) $tpl->set('{date}', langdate('вчера в H:i', $date_comm)); else $tpl->set('{date}', langdate('j F Y в H:i', $date_comm)); if($row['owner_user_id'] == $user_id){ $tpl->set('[owner]', ''); $tpl->set('[/owner]', ''); } else $tpl->set_block("'\\[owner\\](.*?)\\[/owner\\]'si",""); if($row['comm_num']) $tpl->set('{comm-num}', $row['comm_num'].' '.gram_record($row['comm_num'], 'comments')); else $tpl->set('{comm-num}', $lang['note_no_comments']); if($row['comm_num'] > 10){ $tpl->set('[all-comm]', ''); $tpl->set('[/all-comm]', ''); } else $tpl->set_block("'\\[all-comm\\](.*?)\\[/all-comm\\]'si",""); $tpl->set('{prev-text-comm}', gram_record(($row['comm_num']-10), 'prev').' '.($row['comm_num']-10).' '.gram_record(($row['comm_num']-10), 'comments')); $tpl->set('{num}', $row['comm_num']); $tpl->compile('content'); $tpl->result['content'] = str_replace('{note-id}', $note_id, $tpl->result['content']); } else { $user_speedbar = $lang['error']; $metatags['title'] = $lang['error']; msgbox('', $lang['no_notes'], 'info'); } } else { $user_speedbar = $lang['error']; msgbox('', $lang['no_notes'], 'info'); } break; 2. Далее там же ищем: $wall_text = <<<HTML <div class="notes_wall_title"><a onClick="Page.Go('/notes/view/{$db_id}'); return false" class="cursor_pointer">{$title}</a></div><div class="note_wall_text">{$poser}{$for_wall_text}</div><div class="button_div fl_l margin_top_5" style="line-height:15px"><button onClick="Page.Go('/notes/view/{$db_id}'); return false">Читать далее..</button></div><!--> HTML; И заменяем: Спойлер $wall_text = <<<HTML <div class="notes_wall_title"><a onClick="Page.Go('/notes/view/{$db_id}'); return false" class="cursor_pointer">{$title}</a></div><div class="note_wall_text">{$poser}{$for_wall_text}</div><div class="button_div fl_l margin_top_5" style="line-height:15px"><button onClick="Page.Go('/notes/view/{$db_id}'); return false">Читать далее..</button></div><!--> HTML; 3. Открываем templates/Default/js/profile.js Находим: //WALL Выше вставляем: //OTHERBOX var otherbox = { nview: function(id){ showBox.start(); $.post('/index.php?go=notes&act=view_box¬e_id='+id, function(d){ showBox.win('box_notes', d); }); } } 4. Файл notes_full.tpl кидаем в templates/Default/notes 5. Файл comm.js в templates/Default/js и подключаем его в main.tpl Вот так: <script type="text/javascript" src="{theme}/js/comm.js"></script> 6. Чистим кеш если вдруг понадобится (в редких случаях). Возможные баги: А. Не закрывается ajax окно? Ответов несколько... Есть 3 способа решения: 1. В сборке vii engine 2.0 и ранее: Ищем в файле index.php: //Если обращение к модулю регистрации или главной и юзер не авторизован то показываем регистрацию if($go == 'register' OR $go == 'main' AND !$logged) include ENGINE_DIR.'/modules/register_main.php'; $tpl->load_template('main.tpl'); И заменяем весь код: Спойлер //Если обращение к модулю регистрации или главной и юзер не авторизован то показываем регистрацию if($go == 'register' OR $go == 'main' AND !$logged) include ENGINE_DIR.'/modules/register_main.php'; if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){ $tpl->load_template('main2.tpl'); }else{ $tpl->set('{titles}', $metatag); $tpl->load_template('main.tpl'); } Так же ОБЯЗАТЕЛЬНО кидаем файл main2.tpl в папку с шаблоном (по умолчанию Default) 2. У Вас установлен хак вывод аватарки в main.tpl Находим: if($logged){ if($user_info['user_photo']) $ava = $config['home_url'].'uploads/users/'.$user_info['user_id'].'/100_'.$user_info['user_photo']; else $ava = 'templates/Default/images/no_ava_50.png'; $myphoto_header.='<img src="'.$ava.'" width="45" />'."\n"; $tpl->set('{myphoto_header}', $myphoto_header); $tpl->load_template('main.tpl'); } И удаляем оттуда: $tpl->load_template('main.tpl'); 3. У Вас не подключены файлы из папки templates/Default/js,вам необходимо прописать их в main.tpl (либо в index.php) Б. Не открываются заметки в ajax окне? Ответ: Ajax окно будет открываться только в новых созданных заметках,так что не пугайтесь. Автора не помню уже мод 2016 года Ajax просмотр для заметок.zip Изменено 19 февраля, 2022 пользователем kphp 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
SSapeRR Опубликовано 18 февраля, 2022 Жалоба Поделиться Опубликовано 18 февраля, 2022 Немножко ломаются заметки 😕 Ссылка на комментарий Поделиться на другие сайты Поделиться
SSapeRR Опубликовано 18 февраля, 2022 Жалоба Поделиться Опубликовано 18 февраля, 2022 Извиняюсь, я немного не туда впихнул строчки в notes.php Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения