Jump to content
CMSTOOLS.ru - форум поддержки и развития CMS

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


Recommended Posts

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

Edited by kphp
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...