kphp Опубликовано 18 февраля, 2022 Жалоба Поделиться Опубликовано 18 февраля, 2022 (изменено) 1. Открыть Default/notes/add.tpl Найти: <div class="button_div fl_l"><button onClick="notes.send(); return false" id="notes_sending">Опубликовать</button></div> Выше добавить: Спойлер <div class="html_checkbox" id="mywall" style="margin-top:10px;margin-bottom:10px;color:#555" onClick="myhtml.checkbox(this.id);">Опубликовать на моей стене</div> <div class="clear"></div> 2. Открыть system/notes.php Найти: Спойлер //################### Добавление заметки в БД ###################// case "save": NoAjaxQuery(); И после: Спойлер //Добавляем действия в ленту новостей $generateLastTime = $server_time-10800; $row = $db->super_query("SELECT ac_id, action_text FROM `".PREFIX."_news` WHERE action_time > '{$generateLastTime}' AND action_type = 5 AND ac_user_id = '{$user_id}'"); if($row) $db->query("UPDATE `".PREFIX."_news` SET action_text = '{$db_id}||{$row['action_text']}', action_time = '{$server_time}' WHERE ac_id = '{$row['ac_id']}'"); else $db->query("INSERT INTO `".PREFIX."_news` SET ac_user_id = '{$user_id}', action_type = 5, action_text = '{$db_id}', action_time = '{$server_time}'"); Добавить: Спойлер //Отправка заметки на стену if($_POST['mywall']){ //Парсим картинку $forexp = stripslashes(stripslashes($text)); $sexp = explode('<img', $forexp); $sexp2 = explode('src', $sexp[1]); $sexp3 = explode('"', $sexp2[1]); if(!$sexp3[1]) $sexp3 = explode("'", $sexp2[1]); $sexp3[1] = str_replace(array('http:', '"', "'", 'https:'), '', $sexp3[1]); $for_wall_text = strip_tags($text); $for_wall_text = iconv_substr($for_wall_text, 0, 265, 'utf-8'); //Разришенные форматы $allowed_files = array('jpg', 'jpeg', 'jpe', 'png', 'gif'); $epxfosl = end(explode('.', $sexp3[1])); if(in_array(strtolower($epxfosl), $allowed_files)){ $poser = '<div><img src="'.$sexp3[1].'" /></div>'; } $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 = $db->safesql($wall_text); //Вставляем саму запись в БД $db->query("INSERT INTO `".PREFIX."_wall` SET author_user_id = '{$user_id}', for_user_id = '{$user_id}', text = '{$wall_text}', add_date = '{$server_time}', type = 'запись из блога:'"); $dbid = $db->insert_id(); //Вставляем в ленту новостей $db->query("INSERT INTO `".PREFIX."_news` SET ac_user_id = '{$user_id}', action_type = 1, action_text = '{$wall_text}', obj_id = '{$dbid}', action_time = '{$server_time}'"); //Обновляем кол-во записей $db->query("UPDATE `".PREFIX."_users` SET user_wall_num = user_wall_num+1 WHERE user_id = '{$user_id}'"); mozg_clear_cache_file("user_{$user_id}/profile_{$user_id}"); } 3. Открыть Default/js/profile.js Найти: Спойлер //NOTES var notes = { send: function(){ var title = $('#title_n').val(); var text = $('#text').val(); Ниже добавить: var mywall = $('#mywall').val(); 4. В том же файле ищем: $.post('/index.php?go=notes&act=save', {title: title, text: text}, function(d){ И добавляем: , mywall: mywall Возможные баги: 1. В add.tpl возможно наложение текста,поэтому добавьте в этом случае ещё один <div class="clear"></div> 2. Если не ставится checkbox, то проверьте его наличие в файле profile.js и добавьте по необходимости(это редкий случай когда он отсутствует) Вот и всё)))Установка завершена.... Date add document: 20:26 12.02.2016 Автора не помню уже [Модуль] Поделиться заметкой на стену данного пользователя.zip Изменено 20 февраля, 2022 пользователем kphp 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения