Ejemplo n.º 1
0
 /**
  * save a record
  * @return void
  */
 function save()
 {
     $error = false;
     $errorMsg = "";
     $model = $this->getModel($this->get('suffix'));
     $config = Mysite::getInstance();
     $properties = $config->getProperties();
     foreach (@$properties as $key => $value) {
         unset($row);
         $row = $model->getTable('config');
         $newvalue = JRequest::getVar($key);
         $value_exists = array_key_exists($key, $_POST);
         if ($value_exists && !empty($key)) {
             // proceed if newvalue present in request. prevents overwriting for non-existent values.
             $row->load(array('config_name' => $key));
             $row->config_name = $key;
             $row->value = $newvalue;
             if (!$row->save()) {
                 $error = true;
                 $errorMsg .= JText::_("Could not store") . " {$key} :: " . $row->getError() . " - ";
             }
         }
     }
     if (!$error) {
         $this->messagetype = 'message';
         $this->message = JText::_('Saved');
         $dispatcher = JDispatcher::getInstance();
         $dispatcher->trigger('onAfterSave' . $this->get('suffix'), array($row));
     } else {
         $this->messagetype = 'notice';
         $this->message = JText::_('Save Failed') . " - " . $errorMsg;
     }
     $redirect = "index.php?option=com_mysite";
     $task = JRequest::getVar('task');
     switch ($task) {
         default:
             $redirect .= "&view=" . $this->get('suffix');
             break;
     }
     $redirect = JRoute::_($redirect, false);
     $this->setRedirect($redirect, $this->message, $this->messagetype);
 }
Ejemplo n.º 2
0
 /**
  * 
  * @return void
  **/
 function _default($tpl = null)
 {
     Mysite::load('DSCTools', 'library.tools');
     // check config
     $row = Mysite::getInstance();
     $this->assign('row', $row);
     // add toolbar buttons
     JToolBarHelper::save('save');
     JToolBarHelper::cancel('close', JText::_('Close'));
     // plugins
     $filtered = array();
     $items = DSCTools::getPlugins();
     for ($i = 0; $i < count($items); $i++) {
         $item =& $items[$i];
         // Check if they have an event
         if ($hasEvent = DSCTools::hasEvent($item, 'onListConfigMysite')) {
             // add item to filtered array
             $filtered[] = $item;
         }
     }
     $items = $filtered;
     $this->assign('items_sliders', $items);
     // Add pane
     jimport('joomla.html.pane');
     $sliders = JPane::getInstance('sliders');
     $this->assign('sliders', $sliders);
     // form
     $validate = JUtility::getToken();
     $form = array();
     $view = strtolower(JRequest::getVar('view'));
     $form['action'] = "index.php?option=com_mysite&controller={$view}&view={$view}";
     $form['validate'] = "<input type='hidden' name='{$validate}' value='1' />";
     $this->assign('form', $form);
     // set the required image
     // TODO Fix this to use defines
     $required = new stdClass();
     $required->text = JText::_('Required');
     $required->image = "<img src='" . JURI::root() . "/media/com_mysite/images/required_16.png' alt='{$required->text}'>";
     $this->assign('required', $required);
 }
Ejemplo n.º 3
0
			<?php 
echo JText::_("Copyright");
?>
: <?php 
echo Mysite::getInstance()->getCopyrightYear();
?>
 &copy; <a href="<?php 
echo $url;
?>
" target="_blank">Dioscouri Design</a>
			<br/>
			<?php 
echo JText::_("Version");
?>
: <?php 
echo Mysite::getInstance()->getVersion();
?>
		</td>
		<td style="text-align: right; width: 33%;">
			<a href="<?php 
echo $url;
?>
" target="_blank"><img src="<?php 
echo $img_path . "/" . $img_file;
?>
"></img></a>
		</td>
	</tr>
	</tbody>
	</table>
Ejemplo n.º 4
0
 /**
  * Generates the sitemap items for selected menus
  * 
  * @return unknown_type
  */
 function generateItems()
 {
     JLoader::import('com_mysite.tables.items', JPATH_ADMINISTRATOR . DS . 'components');
     $db =& JFactory::getDBO();
     $updated = 0;
     $cids = JRequest::getVar('cid', array(0), 'request', 'array');
     $config = Mysite::getInstance();
     $limit = $config->get('tree_depth', '0');
     if (!empty($limit)) {
         if (version_compare(JVERSION, '1.6.0', 'ge')) {
             // Joomla! 1.6+ code here
             $limit_query = "AND menu.level <= '{$limit}'";
         } else {
             // Joomla! 1.5 code here
             $limit_query = "AND menu.sublevel <= '{$limit}'";
         }
     }
     foreach (@$cids as $cid) {
         if ($cid != 0) {
             $db->setQuery("SELECT * FROM #__mysite_menus WHERE `menu_id` = '{$cid}'");
             $thismenu = $db->loadObject();
             $menutype = $thismenu->menutype;
             // collect all the itemids created from this menu
             $items_array = array();
             $db->setQuery("SELECT itemid FROM #__mysite_items WHERE menutype = '{$menutype}'");
             if ($items = $db->loadObjectList()) {
                 foreach ($items as $item) {
                     $items_array[] = $item->itemid;
                 }
             }
             // if any items exist for this menutype, do intelligent sync
             if (!empty($items_array)) {
                 //jimport('joomla.utilities.arrayhelper');
                 //$items_array = JArrayHelper::fromObject($items);
                 // get all the menu items for this menu type
                 $db->setQuery("\n                        SELECT menu.* \n                        FROM #__menu AS menu \n                        LEFT JOIN #__mysite_menus AS menutypes ON menu.menutype = menutypes.menutype \n                        WHERE menutypes.enabled = '1' \n                        AND menu.menutype = '{$menutype}'\n                        AND menu.published >= '0'\n                        {$limit_query}\n                        ORDER BY menu.parent ASC, menu.ordering ASC \n                        ");
                 $menus = $db->loadObjectList();
                 //update the menu
                 $did_update = false;
                 $do_reorder = false;
                 foreach ($menus as $menu) {
                     if (in_array($menu->id, $items_array)) {
                         // this menu item has already been synced, so just update some of the key parts
                         // TODO Add config options for:
                         // do update at all?
                         // update title?
                         // update published state?
                         // update menutype?
                         $db->setQuery("UPDATE #__mysite_items \n                              SET title = '" . $menu->name . "' ,  \n                              url = '" . $menu->link . "' \n                              WHERE itemid = '" . $menu->id . "'");
                         if ($db->query()) {
                             // TODO Track somethin?
                             $did_update = true;
                         }
                     } else {
                         // create a new record
                         $table = JTable::getInstance('Items', 'MysiteTable');
                         $parent_table = JTable::getInstance('Items', 'MysiteTable');
                         $parent_table->load(array('itemid' => $menu->parent));
                         $table->menutype = $menu->menutype;
                         $table->title = $menu->name;
                         $table->url = $menu->link;
                         $table->itemid = $menu->id;
                         $table->enabled = $menu->published;
                         $table->parent = !empty($parent_table->item_id) ? $parent_table->item_id : 0;
                         if ($table->store()) {
                             // TODO Track something?
                             $did_update = true;
                             $do_reorder = true;
                         }
                     }
                 }
                 if ($did_update) {
                     if ($do_reorder) {
                         $table = JTable::getInstance('Items', 'MysiteTable');
                         $table->reorder();
                     }
                     $updated++;
                 }
             } else {
                 // no Mysite items exist for this menutype, so
                 // rebuild the menu
                 // first create the parent sitemap item for the menu
                 unset($parent);
                 $parent = JTable::getInstance('Items', 'MysiteTable');
                 $parent->menutype = $thismenu->menutype;
                 $parent->title = $thismenu->title;
                 $parent->url = "";
                 $parent->itemid = "";
                 $parent->parent = 0;
                 $parent->store();
                 $db->setQuery("\n                        SELECT menu.* \n                        FROM #__menu AS menu \n                        LEFT JOIN #__mysite_menus AS menutypes ON menu.menutype = menutypes.menutype \n                        WHERE menutypes.enabled = '1' \n                        AND menu.menutype = '{$menutype}'\n                        AND menu.published >= '0' \n                        {$limit_query} \n                        ORDER BY menu.parent ASC, menu.ordering ASC \n                        ");
                 $menus = $db->loadObjectList();
                 $parentMap = array();
                 $parentMap[$parent->item_id] = array();
                 foreach ($menus as $menu) {
                     $table = JTable::getInstance('Items', 'MysiteTable');
                     $table->menutype = $menu->menutype;
                     $table->title = $menu->name;
                     $table->url = $menu->link;
                     $table->itemid = $menu->id;
                     $table->enabled = $menu->published;
                     $table->parent = $menu->parent ? $parentMap[$parent->item_id][$menu->parent] : $parent->item_id;
                     $table->store();
                     $parentMap[$parent->item_id][$menu->id] = $table->id;
                 }
                 $table->reorder();
                 JPluginHelper::importPlugin('mysite');
                 $dispatcher =& JDispatcher::getInstance();
                 $data = array($menutype);
                 $dispatcher->trigger('onGenerateItems', $data);
                 $updated++;
             }
         }
     }
     $message = '';
     $type = '';
     if ($updated) {
         if ($updated == 1) {
             $message = JText::_('Menu updated');
         } else {
             $message = JText::_('Menus updated');
         }
         $type = 'message';
     } else {
         $message = JText::_('No Sync Necessary');
         $type = 'notice';
     }
     JFactory::getApplication()->redirect('index.php?option=com_mysite&view=menus', $message, $type);
 }