kphp Posted February 18 Report Share Posted February 18 (edited) 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 Edited February 19 by kphp 1 Quote Link to comment Share on other sites More sharing options...
SSapeRR Posted February 18 Report Share Posted February 18 Немножко ломаются заметки 😕 Quote Link to comment Share on other sites More sharing options...
SSapeRR Posted February 18 Report Share Posted February 18 Извиняюсь, я немного не туда впихнул строчки в notes.php Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.