Перейти к контенту

[2.3.x]Отметить людей; IP.Gallery; RC 1.3


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

вот эта строчка должна быть такая:

// этот кусок для определения вертикальная или горизонтальная, пока только для того, чтоп все были одного размера
// исправь на свой полный путь до файлов галереи
$img_size = $getimagesize( ROOT_PATH."/uploads/".$row['directory']."/tn_".$row['flnm']);

 

остальное вроде верно

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
  • Ответы 92
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Загружено фотографий

Немного переделал систему "Где я есть", для версии галереи 2.2:

/sources/api/gallery/api_gallery.php

находим:

}



?>

Перед этим добавляем:

	//Показываем где есть пользователь

	function return_gallery_who( $member_id = 0, $limit = 5, $do_pull = 1 )
{
	if( !$member_id )
	{
		return array();
	}

	//-----------------------------------------
	// INIT
	//-----------------------------------------

	$images = array();

	$member_id = intval($member_id);


	$categories = $this->category->get_allowed_cats( 0 );

		if( $this->ipsclass->vars['gallery_cache_albums'] )
		{
			$albums		= $this->glib->get_allowed_albums();
	}
	else
	{
		$albums		= true;
	}

	if( !count($categories) AND !count($albums) )
	{
		return array();
	}

	$where 				= array();
	$where_statement 	= "";

	if( count($categories) )
	{
		$where[] = "i.category_id IN (".implode( ',', $categories ).")";
	}

	if( is_array($albums) AND count($albums) )
	{
		$where[] = "i.album_id IN (".implode( ",", $albums ).")";
	}
	else if( $albums == true AND count($categories) )
	{
		$dewhere .= " ( i.album_id > 0 AND a.category_id IN ( ".implode( ",", $categories )." ) ";

		if( !$this->ipsclass->member['g_mod_albums'] )
		{
			$dewhere .= " AND ( a.public_album=1 OR a.member_id={$this->ipsclass->member['id']} ) ";
		}

		$dewhere .= ")";

		$where[] = $dewhere;
	}

	if( !count($where) )
	{
		return array();
	}
	else
	{
		$where_statement = implode( " OR ", $where );
	}


	$this->ipsclass->DB->build_query( array( 'select'	=> 'i.*',
											 'from'		=> array( 'gallery_images' => 'i' ),
											 'where'	=> "i.approved=1 AND e.member_id={$member_id} AND ({$where_statement})",
											 'add_join'	=> array( 
															1 => array( 'type'		=> 'left',
											 							'from'		=> array( 'gallery_peoples' => 'e' ),
											 							'where'		=> "e.member_id=i.member_id AND e.image_id = i.id",
											 						  ),
											 				2 => array( 'type'		=> 'left',
											 							'select'	=> 'a.name as album_name, a.public_album',
											 							'from'		=> array( 'gallery_albums' => 'a' ),
											 							'where'		=> 'a.id=i.album_id',
											 						  ),
											 				3 => array( 'type'		=> 'left',
											 							'select'	=> 'c.name as category_name',
											 							'from'		=> array( 'gallery_categories' => 'c' ),
											 							'where'		=> "c.id=i.category_id",
											 						  ),
											 				4 => array( 'type'		=> 'left',
											 							'select'	=> 'm.members_display_name',
											 							'from'		=> array( 'members' => 'm' ),
											 							'where'		=> "m.id=i.member_id",
											 						  ),
											 				5 => array( 'type'		=> 'left',
											 							'select'	=> 'r.id as rated, r.rate as _my_rate',
											 							'from'		=> array( 'gallery_ratings' => 'r' ),
											 							'where'		=> "r.img_id=i.id AND r.member_id={$this->ipsclass->member['id']}",
											 						  )
											 					),		
											 'order'	=> 'i.idate DESC',
											 'limit'	=> array( 0, $limit )
									)		);

	$this->res = $this->ipsclass->DB->exec_query();

	$this->total = $this->ipsclass->DB->get_num_rows( $this->res );
	//print_r($this->ipsclass->DB);

	if( $do_pull )
	{
		while( $r = $this->ipsclass->DB->fetch_row() )
		{
			$images[] = $r;
		}

		return $images;
	}

}

Далее идём суда:

/sources/components_public/profile/

Файл: gde.conf.php

<?php
$CONFIG['plugin_name']		= 'Где я есть'; // что будет написано на кнопке
$CONFIG['plugin_lang_bit']	= 'pp_tab_gde';
$CONFIG['plugin_key']		 = 'gde';
$CONFIG['plugin_enabled']	 = 1; // включение
$CONFIG['plugin_order'] = 9; // порядок вывода закладок
?>

Меняйте как хотите, пример взят выше.

Затем самое интересное, файл gde.php.

<?php

/*
+--------------------------------------------------------------------------
|   Invision Power Board v<{%dyn.down.var.human.version%}>
|   =============================================
|   by Matthew Mecham
|   (c) 2001 - 2005 Invision Power Services, Inc.
|   
|   =============================================
|   
|   
|   
|   
+---------------------------------------------------------------------------
|   > $Date: 2007-07-16 18:11:06 -0400 (Mon, 16 Jul 2007) $
|   > $Revision: 369 $
|   > $Author: bfarber $
+---------------------------------------------------------------------------
|
|   > Personal Profile Portal Class: Mark people
|   > Module written by Worbis
|   > Date started: 29nd June 2008
|
+--------------------------------------------------------------------------
*/

/**
* Main content
*
*/

if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'.";
exit();
}

class profile_gde
{
/**
* Global IPSCLASS
* @var	object
*/
var $ipsclass;

/*-------------------------------------------------------------------------*/
// Return data
/*-------------------------------------------------------------------------*/

/**
* Returns a block of HTML back to the ajax handler
* which then replaces the inline content with the HTML
* returned.
*
*/
function return_html_block( $member=array() ) 
{
	if( !$this->ipsclass->DB->field_exists( "id", "gallery_images" ) )
	{
		return $this->ipsclass->lang['err_no_posts_to_show'];
	}

	if( !$this->ipsclass->member['g_gallery_use'] )
	{
		return $this->ipsclass->lang['err_no_posts_to_show'];
	}

	define( 'GALLERY_PATH'	 , ROOT_PATH . 'sources/components_public/gallery/' );
	define( 'GALLERY_LIBS'	 , GALLERY_PATH . 'lib/' );

	$this->ipsclass->load_language( 'lang_gallery' );
	$this->ipsclass->load_template( 'skin_gallery_global' );

	//-----------------------------------------
	// Get gallery library and API
	//-----------------------------------------

	require_once( ROOT_PATH . 'sources/api/api_core.php' );
	require_once( ROOT_PATH . 'sources/api/gallery/api_gallery.php' );

	require( GALLERY_LIBS . 'lib_categories.php' );
	$this->category 			= new lib_categories();
	$this->category->ipsclass 	=& $this->ipsclass;
	$this->category->normal_init();

	require_once( GALLERY_LIBS . 'lib_gallery.php' );
	$this->glib 			= new lib_gallery();
	$this->glib->ipsclass 	=& $this->ipsclass;
	$this->glib->category	=& $this->category;

	//-----------------------------------------
	// Create API Object
	//-----------------------------------------

	$gal_api 			= new api_gallery;
	$gal_api->ipsclass 	= $this->ipsclass;
	$gal_api->glib 		= & $this->glib;
	$gal_api->category	= & $this->category;

	//-----------------------------------------
	// Get images
	//-----------------------------------------

	$images = $gal_api->return_gallery_who( $member['id'], 6, 0 );

	//-----------------------------------------
	// Get Image Library
	//-----------------------------------------

	require_once ( GALLERY_LIBS . 'lib_imagelisting.php' );
	$img_list = new lib_imagelisting();
	$img_list->ipsclass 	=& $this->ipsclass;
	$img_list->glib 		=& $this->glib;
	$img_list->category		=& $this->category;
	$img_list->init();

	//-----------------------------------------
	// Pass some values from API
	//-----------------------------------------

	$img_list->res 				= $gal_api->res;
	$img_list->total_images 	= $gal_api->total;

	//-----------------------------------------
	// Ready to pull formatted stuff?
	//-----------------------------------------

	$output = "<script type='text/javascript'>var ids_to_imgs = new Array();</script>";
	$output .= $this->ipsclass->compiled_templates['skin_gallery_global']->globals();

	$output .= $img_list->img_html->container_row_top( $this->ipsclass->compiled_templates['skin_gallery_global']->link_macro( $this->ipsclass->base_url . 'autocom=gallery&req=search&op=do_search&mid=' . $member['id'], $this->ipsclass->lang['where_all_member'] ) );

	$output .= $img_list->get_html_listing( array( 	'imgs_per_col'  => 3,
							'imgs_per_row'  => 2,
							'can_rate'=> ( $this->ipsclass->vars['gallery_use_rate'] AND $this->ipsclass->member['g_rate'] ) ? 1 : 0,
											   ) 		);	

	$output .= $img_list->img_html->container_row_bottom();

	$output .= "<script type='text/javascript'>menu_do_global_init();</script>";




	//-----------------------------------------
	// Macros...
	//-----------------------------------------

	if ( ! is_array( $this->ipsclass->skin['_macros'] ) OR ! count( $this->ipsclass->skin['_macros'] ) )
	{
		$this->ipsclass->skin['_macros'] = unserialize( stripslashes($this->ipsclass->skin['_macro']) );
	}

	if ( is_array( $this->ipsclass->skin['_macros'] ) )
	  {
		foreach( $this->ipsclass->skin['_macros'] as $row )
		{
			if ( $row['macro_value'] != "" )
			{
				$output = str_replace( "<{".$row['macro_value']."}>", $row['macro_replace'], $output );
			}
		}
	}

	$output = str_replace( "<#IMG_DIR#>", $this->ipsclass->skin['_imagedir'], $output );
	$output = str_replace( "<#EMO_DIR#>", $this->ipsclass->skin['_emodir']  , $output );		


	return $output;
}

}


?>

gde.php это переделаный модуль от галереи.

 

Так же немного переделал функции при отмечание людей на фото. При нажимание теперь не вылазиет LightBox AJAX, которое надоедало раньше, работает в IE Opera Mozilla, но делал на 2.2, на старых версиях вроде нет таких функций. Если кому нужно выложу. Просто вспоминать зря не хочеться, что менял.

 

Чуть не забыл сам пример:

post-51468-1217317146_thumb.jpg

Ссылка на комментарий
Поделиться на других сайтах

Выложи с удовольствием у себя обновлю )

 

Stiks, возможно глюк только у меня но у меня показываются фото только в моем профиле, т.е. если я просматриваю профиль другого пользователя, у которого тоже есть фотографии где он отмечен, то в этой вкладке пусто

Ссылка на комментарий
Поделиться на других сайтах

У меня тоже показывает только в моем профиле также если меня отметили на 100 картинках !?

Показывает только первые 4 нельзяли сделать внизу листинг страниц?

также в шапку вывод на скольки отметили меня

ПС

Вернул пока на стары вывод

Ссылка на комментарий
Поделиться на других сайтах

что то я не понял, как на 2.3.3 (2.1.1) должен отображаться отмечение людей? или что надо исправить? напишите толковый мануал))
Присоединяюсь к просьбе насчёт толкового мануала. В архиве gallerylivevk.rar много разных файлов, а описаний к ним нет. В названии файлов стоят обозначения каких-то версий (1.0 - 1.1, 1.1-1.2), но не понятно, то ли это версии форума, то ли версии галереи, то ли ещё что-то.

По всей видимости, мануала для установки мода на IP.Board 2.3.x и IP.Gallery 2.2.x не существует, либо я плохо искал таковой.

Ссылка на комментарий
Поделиться на других сайтах

а мне вот ничо не ясно. я так и не понял почему только один раз у меня появилась форма "отметить". как можно убить "УМЕНЬШИТЕЛЬ" картинок только в галереи??

 

да ещё такая вещь. пробую отметить на малой фотографии и какие то мифические блоки над фотографией появляються.

Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...
а мне вот ничо не ясно. я так и не понял почему только один раз у меня появилась форма "отметить". как можно убить "УМЕНЬШИТЕЛЬ" картинок только в галереи??

 

да ещё такая вещь. пробую отметить на малой фотографии и какие то мифические блоки над фотографией появляються.

У меня такое-же версия форума 2.2.2

Помогите.

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

не очень горю желанием делать усовершенствование для 2.2.х и выше

ибо делаю себе для 2.1.6

 

а так уже есть центр модераторов, только инструкции нет...

Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...
  • 4 недели спустя...

Arhar, спасибо за проделанную работу, очень интересный мод! Будешь ли ты его дальше поддерживать ?

Кто-то ставил его на ip.b_v2.3.6 && ip.gallery_v2.2.4 ?

Ссылка на комментарий
Поделиться на других сайтах

  • 6 месяцев спустя...

не появляется окошко после того, как выделяю. может быть дело в том, что код:

Find

<div class="fullimagewrap">
{$info['image']}
</div>

не в шаблоне skin_gallery_img -- show_image как написано в инструкции, а в skin_gallery_cats (нестандартная) -- ss_slide ?

в остальном все поставил как нужно.

форум 2.3.5. галерея 2.2.4.

Ссылка на комментарий
Поделиться на других сайтах

  • 10 месяцев спустя...

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.