Перейти к содержанию
CMSTOOLS.org - форум поддержки и развития CMS

[Модуль] Поделиться заметкой на стену


Рекомендуемые сообщения

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

Автора не помню уже 

Image_12_02_2016.png

Image1_12_02_2016.png

[Модуль] Поделиться заметкой на стену данного пользователя.zip

Изменено пользователем kphp
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...