122 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /*
 | |
|  * phpMyEdit - instant MySQL table editor and code generator
 | |
|  *
 | |
|  * extensions/phpMyEdit-slide.class.php - slide show extension for phpMyEdit
 | |
|  * ____________________________________________________________
 | |
|  *
 | |
|  * Developed by Ondrej Jombik <nepto@platon.sk>
 | |
|  * Copyright (c) 2002-2006 Platon Group, http://platon.sk/
 | |
|  * All rights reserved.
 | |
|  *
 | |
|  * See README file for more information about this software.
 | |
|  * See COPYING file for license information.
 | |
|  *
 | |
|  * Download the latest version from
 | |
|  * http://platon.sk/projects/phpMyEdit/
 | |
|  */
 | |
| 
 | |
| /* $Platon: phpMyEdit/extensions/phpMyEdit-slide.class.php,v 1.11 2007-09-02 22:30:00 nepto Exp $ */
 | |
| 
 | |
| /*
 | |
|  * Coding elapsed time: from 8:30 to 10:30 at 30th October 2002
 | |
|  * with heavy patching phpMyEdit core class.
 | |
|  *
 | |
|  * Music used: E-Type (Campione, This is the Way and others)
 | |
|  */
 | |
| 
 | |
| require_once dirname(__FILE__).'/../phpMyEdit.class.php';
 | |
| 
 | |
| class phpMyEdit_slide extends phpMyEdit
 | |
| {
 | |
| 	// Extension options array
 | |
| 	var $ext;
 | |
| 
 | |
| 	function phpMyEdit_slide($opts) /* {{{ */
 | |
| 	{
 | |
| 		$execute = 1;
 | |
| 		isset($opts['execute']) && $execute = $opts['execute'];
 | |
| 		$opts['execute'] = 0;
 | |
| 		parent::phpMyEdit($opts);
 | |
| 
 | |
| 		$this->ext = $opts['ext'];
 | |
| 
 | |
| 		$execute && $this->execute($opts);
 | |
| 	} /* }}} */
 | |
| 
 | |
| 	function execute($opts) /* {{{ */
 | |
| 	{
 | |
| 		if ($this->get_sys_cgi_var('rec_change')
 | |
| 				&& ($this->next_operation() || $this->prev_operation())) {
 | |
| 			$this->operation = $this->labels['Change'];
 | |
| 		}
 | |
| 		if (! $this->change_operation()) {
 | |
| 			$this->operation = $this->labels['View'];
 | |
| 		}
 | |
| 		if ($this->prev_operation()) {
 | |
| 			! $this->ext['prev_disabled'] && $this->rec = $this->get_sys_cgi_var('rec_prev');
 | |
| 			$this->prev = '';
 | |
| 		}
 | |
| 		if ($this->next_operation()) {
 | |
| 			! $this->ext['next_disabled'] && $this->rec = $this->get_sys_cgi_var('rec_next');
 | |
| 			$this->next = '';
 | |
| 		}
 | |
| 		if (! $this->rec) {
 | |
| 			$this->rec = $this->ext['rec'];
 | |
| 		}
 | |
| 
 | |
| 		if (! $this->rec
 | |
| 				|| (! $this->ext['prev_disable'] && ! $this->ext['prev'])
 | |
| 				|| (! $this->ext['next_disable'] && ! $this->ext['next'])) {
 | |
| 			if ($this->connect() == false) {
 | |
| 				return false;
 | |
| 			}
 | |
| 			$query_parts = array(
 | |
| 					'type'   => 'select',
 | |
| 					// XXX FIXME - simplify query
 | |
| 					'select' => 'PMEtable0.'.$this->key,
 | |
| 					'from'   => $this->get_SQL_join_clause(),
 | |
| 					'where'  => $this->get_SQL_where_from_query_opts());
 | |
| 			// TODO: order by clausule according to default sort order options
 | |
| 			$res = $this->myquery($this->get_SQL_query($query_parts), __LINE__);
 | |
| 			$ids = array();
 | |
| 			while (($row = @mysql_fetch_array($res, MYSQL_NUM)) !== false) {
 | |
| 				$ids[] = $row[0];
 | |
| 			}
 | |
| 			@mysql_free_result($res);
 | |
| 			if ($this->rec) {
 | |
| 				$idx = array_search($this->rec, $ids);
 | |
| 				$idx === false && $idx = 0;
 | |
| 			} else {
 | |
| 				$idx = 0;
 | |
| 			}
 | |
| 
 | |
| 			$this->rec = $ids[$idx];
 | |
| 			! $this->ext['prev'] && $this->ext['prev'] = $ids[$idx - 1];
 | |
| 			! $this->ext['next'] && $this->ext['next'] = $ids[$idx + 1];
 | |
| 		}
 | |
| 
 | |
| 		$this->default_buttons['V'] = array('change', 'cancel',
 | |
| 				(isset($this->ext['prev']) ? '+prev' : 'prev'),
 | |
| 				(isset($this->ext['next']) ? '+next' : 'next'),
 | |
| 				array('code'=>'<input type="hidden" name="'
 | |
| 					.$this->cgi['prefix']['sys'].'rec_prev" value="'.$this->ext['prev'].'">'),
 | |
| 				array('code'=>'<input type="hidden" name="'
 | |
| 					.$this->cgi['prefix']['sys'].'rec_next" value="'.$this->ext['next'].'">')
 | |
| 				);
 | |
| 	
 | |
| 		$this->recreate_fdd();
 | |
| 		$this->recreate_displayed();
 | |
| 		parent::execute();
 | |
| 	} /* }}} */
 | |
| 
 | |
| }
 | |
| 
 | |
| /* Modeline for ViM {{{
 | |
|  * vim:set ts=4:
 | |
|  * vim600:fdm=marker fdl=0 fdc=0:
 | |
|  * }}} */
 | |
| 
 | |
| ?>
 |