|
From: Greg M. <bli...@us...> - 2008-01-26 14:49:10
|
Update of /cvsroot/phpwebsite-comm/modules/featuredphoto/class In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29204/class Modified Files: block.php manager.php Log Message: Improved block mode code. Index: manager.php =================================================================== RCS file: /cvsroot/phpwebsite-comm/modules/featuredphoto/class/manager.php,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** manager.php 23 Jan 2008 04:04:20 -0000 1.32 --- manager.php 26 Jan 2008 14:49:11 -0000 1.33 *************** *** 396,406 **** } - $form->addText('title', $block->getTitle()); - $form->setLabel('title', dgettext('featuredphoto', 'Title')); - $form->setSize('title', 50); - - $modes[0] = dgettext('featuredphoto', 'Increment'); - $modes[1] = dgettext('featuredphoto', 'Random'); - if (empty($block->id)) { --- 396,399 ---- *************** *** 411,437 **** $form->addHidden('block_id', $block->getId()); $form->addSubmit('submit', dgettext('featuredphoto', 'Update Photo Block')); ! $db = new PHPWS_DB('featuredphoto_photos'); ! $db->addWhere(array('active'=>1, 'block_id'=>$block->getId())); ! $db->addOrder('id'); ! $photos = $db->select(); ! if (!PHPWS_Error::logIfError($photos) && ($photos != NULL)) ! { ! PHPWS_Core::initModClass('filecabinet', 'Image.php'); ! $modes[2] = dgettext('featuredphoto', 'Fixed on the image'); ! foreach ($photos as $photo) ! { ! $image = new PHPWS_Image($photo['image_id']); ! $current_photos[$photo['id']] = $image->title; ! } ! $form->addSelect('current_photo', $current_photos); ! $form->setMatch('current_photo', $block->current_photo); } } ! ! $form->addRadioAssoc('mode', $modes); ! $form->setMatch('mode', $block->mode); ! $form->addTplTag('MODE_LABEL', dgettext('featuredphoto', 'Mode')); $form->addText('tn_width', $block->getTnWidth()); --- 404,437 ---- $form->addHidden('block_id', $block->getId()); $form->addSubmit('submit', dgettext('featuredphoto', 'Update Photo Block')); + } ! $form->addText('title', $block->getTitle()); ! $form->setLabel('title', dgettext('featuredphoto', 'Title')); ! $form->setSize('title', 50); ! $form->addRadioAssoc('mode', $block->allModes()); ! $form->setMatch('mode', $block->getMode(false)); ! $form->addTplTag('MODE_LABEL', dgettext('featuredphoto', 'Mode')); ! ! $db = new PHPWS_DB('featuredphoto_photos'); ! $db->addWhere(array('active'=>1, 'block_id'=>$block->getId())); ! $db->addOrder('id'); ! $photos = $db->select(); ! if (!PHPWS_Error::logIfError($photos) && ($photos != NULL)) ! { ! PHPWS_Core::initModClass('filecabinet', 'Image.php'); ! ! foreach ($photos as $photo) ! { ! $image = new PHPWS_Image($photo['image_id']); ! $current_photos[$photo['id']] = $image->title; } } ! else ! { ! $current_photos[0] = '(' . dgettext('featuredphoto', 'None') . ')'; ! } ! $form->addSelect('current_photo', $current_photos); ! $form->setMatch('current_photo', $block->current_photo); $form->addText('tn_width', $block->getTnWidth()); Index: block.php =================================================================== RCS file: /cvsroot/phpwebsite-comm/modules/featuredphoto/class/block.php,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** block.php 13 Oct 2007 15:11:50 -0000 1.19 --- block.php 26 Jan 2008 14:49:11 -0000 1.20 *************** *** 25,28 **** --- 25,32 ---- PHPWS_Core::initModClass('featuredphoto', 'photo.php'); + define('FEATUREDPHOTO_BLOCK_MODE_INCREMENT', 0); + define('FEATUREDPHOTO_BLOCK_MODE_RANDOM', 1); + define('FEATUREDPHOTO_BLOCK_MODE_FIXED', 2); + class FeaturedPhoto_Block { *************** *** 81,97 **** } ! function getMode() { ! $mode_labels = array(dgettext('featuredphoto', 'Increment'), ! dgettext('featuredphoto', 'Random'), ! dgettext('featuredphoto', 'Fixed on an image')); ! if ($this->mode < 3) ! { ! return $mode_labels[$this->mode]; ! } ! else { return dgettext('featuredphoto', 'N/A'); } } --- 85,106 ---- } ! function getMode($format=true) { ! if ($format) { + $modes = $this->allModes(); + + foreach ($modes as $num => $name) + { + if ($num == $this->mode) + { + return $name; + } + } + return dgettext('featuredphoto', 'N/A'); } + + return $this->mode; } *************** *** 157,160 **** --- 166,178 ---- } + function allModes() + { + $modes[FEATUREDPHOTO_BLOCK_MODE_INCREMENT] = dgettext('featuredphoto', 'Increment'); + $modes[FEATUREDPHOTO_BLOCK_MODE_RANDOM] = dgettext('featuredphoto', 'Random'); + $modes[FEATUREDPHOTO_BLOCK_MODE_FIXED] = dgettext('featuredphoto', 'Fixed on the image'); + + return $modes; + } + function save($save_key=TRUE) { *************** *** 263,309 **** $db->addWhere('block_id', $this->getId()); ! if($this->mode == 1) ! { ! $db->addOrder('random'); ! $db->setLimit(1); ! $photos = $db->getObjects('FeaturedPhoto'); ! $photo = &$photos[0]; ! } ! else if($this->mode == 2) ! { ! $db->addWhere('id', $this->current_photo); ! $db->setLimit(1); ! $photos = $db->getObjects('FeaturedPhoto'); ! $photo = &$photos[0]; ! } ! else { ! $db->addOrder('id'); ! $photos = $db->getObjects('FeaturedPhoto'); ! $newFound = FALSE; ! if ($photos != NULL) { ! foreach ($photos as $pic) { ! if (($pic->getId() > $this->current_photo) && (!$newFound)) { $newFound = TRUE; ! $photo = $pic; ! $this->current_photo = $pic->getId(); } } ! if (!$newFound) { ! $newFound = TRUE; ! $photo = &$photos[0]; ! $this->current_photo = $photo->getId(); } - } ! if($newFound) ! { ! $this->save(FALSE); } } --- 281,339 ---- $db->addWhere('block_id', $this->getId()); ! switch ($this->getMode(false)) { ! case FEATUREDPHOTO_BLOCK_MODE_RANDOM: ! { ! $db->addOrder('random'); ! $db->setLimit(1); ! $photos = $db->getObjects('FeaturedPhoto'); ! $photo = &$photos[0]; ! break; ! } ! case FEATUREDPHOTO_BLOCK_MODE_FIXED: { ! if ($this->current_photo > 0) { ! $db->addWhere('id', $this->current_photo); ! $db->setLimit(1); ! $photos = $db->getObjects('FeaturedPhoto'); ! $photo = &$photos[0]; ! } ! break; ! } ! ! default: ! { ! $db->addOrder('id'); ! $photos = $db->getObjects('FeaturedPhoto'); ! ! $newFound = FALSE; ! if ($photos != NULL) ! { ! foreach ($photos as $pic) ! { ! if (($pic->getId() > $this->current_photo) && (!$newFound)) ! { ! $newFound = TRUE; ! $photo = $pic; ! $this->current_photo = $pic->getId(); ! } ! } ! ! if (!$newFound) { $newFound = TRUE; ! $photo = &$photos[0]; ! $this->current_photo = $photo->getId(); } } ! if ($newFound) { ! $this->save(FALSE); } ! break; } } |