Hallo,
arbeite mit der Extension DJ-Flyer, wo mir schon einmal hier bezüglich der Sortierung aus der Patsche geholfen wurde.
Jetzt hätte ich noch ein kleines Problem zu beseitigen:
Ich kann immer nur eine Kategorie eingeben, manche Produkte sollen aber noch unter einer anderen Kategorie aufscheinen.
So muß ich jetzt das Produkt doppelt anlegen und unter den verschiedenen Kategorien speichern, das möchte ich aber vereinfachen.
Hier sind eine categories.php:
defined ('_JEXEC') or die('Restricted access');
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_djflyer'.DS.'tables');
jimport('joomla.application.component.controlleradmin');
class DJFlyerControllerCategories extends JControllerAdmin
{
public function getModel($name = 'Category', $prefix = 'DJFlyerModel', $config = array('ignore_request' => true))
{
$model = parent::getModel($name, $prefix, $config);
return $model;
}
function delete()
{
$app = JFactory::getApplication();
$cid = JRequest::getVar('cid', array (), '', 'array');
$db = & JFactory::getDBO();
if (count($cid))
{
$cids = implode(',', $cid);
$query = "DELETE FROM #__djflyer_categories WHERE ID IN ( ".$cids." )";
$db->setQuery($query);
if (!$db->query())
{
echo "script alert('".$db->getErrorMsg()."');
window.history.go(-1); </script>\n";
}
}
$app->redirect('index.php?option=com_djflyer&view=categories', JText::_('COM_DJFLYER_CATEGORIES_DELETED'));
}
}
und eine category.php:
jimport('joomla.application.component.controller');
jimport( 'joomla.database.table' );
class DJFlyerControllerCategory extends JControllerLegacy {
public function getModel($name = 'Category', $prefix = 'DJFlyerModel', $config = array('ignore_request' => true))
{
$model = parent::getModel($name, $prefix, $config);
return $model;
}
public function getTable($type = 'Category', $prefix = 'DJFlyerTable', $config = array())
{
return JTable::getInstance($type, $prefix, $config);
}
function __construct($default = array ())
{
parent::__construct($default);
$this->registerTask('apply', 'save');
$this->registerTask('save2new', 'save');
$this->registerTask('edit', 'add');
}
function display($cachable = false, $urlparams = false){
JRequest::setVar('view', JRequest::getCmd('view', 'category'));
parent::display($cachable);
}
public function add(){
//$data = JFactory::getApplication();
JRequest::setVar('view','category');
parent::display();
}
public function cancel() {
$app = JFactory::getApplication();
$app->redirect( 'index.php?option=com_djflyer&view=categories' );
}
public function save(){
$app = JFactory::getApplication();
$model = $this->getModel('category');
$row = &JTable::getInstance('Categories', 'DJFlyerTable');
$par = &JComponentHelper::getParams( 'com_djflyer' );
if (!$row->bind(JRequest::get('post')))
{
echo "<script> alert('".$row->getError()."');
window.history.go(-1); </script>\n";
exit ();
}
if (!$row->store())
{
echo "<script> alert('".$row->getError()."');
window.history.go(-1); </script>\n";
exit ();
}
switch(JRequest::getVar('task'))
{
case 'apply':
$link = 'index.php?option=com_djflyer&task=category.edit&id='.$row->id;
$msg = JText::_('COM_DJFLYER_CATEGORY_SAVED');
break;
case 'save2new':
$link = 'index.php?option=com_djflyer&task=category.add';
$msg = JText::_('COM_DJFLYER_CATEGORY_SAVED');
break;
case 'saveItem':
default:
$link = 'index.php?option=com_djflyer&view=categories';
$msg = JText::_('COM_DJFLYER_CATEGORY_SAVED');
break;
}
$app->redirect($link, $msg);
}
}
?>
angegeben.
Da ich in PHP nicht bewandert bin würde es mich freuen, wenn mir jemand helfen könnte, das Skript so abzuändern, daß ich noch eine zweite Kategorie bzw. Unterkategorien eingeben kann.
Herzlichen Dank im Voraus
Mike
arbeite mit der Extension DJ-Flyer, wo mir schon einmal hier bezüglich der Sortierung aus der Patsche geholfen wurde.
Jetzt hätte ich noch ein kleines Problem zu beseitigen:
Ich kann immer nur eine Kategorie eingeben, manche Produkte sollen aber noch unter einer anderen Kategorie aufscheinen.
So muß ich jetzt das Produkt doppelt anlegen und unter den verschiedenen Kategorien speichern, das möchte ich aber vereinfachen.
Hier sind eine categories.php:
defined ('_JEXEC') or die('Restricted access');
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_djflyer'.DS.'tables');
jimport('joomla.application.component.controlleradmin');
class DJFlyerControllerCategories extends JControllerAdmin
{
public function getModel($name = 'Category', $prefix = 'DJFlyerModel', $config = array('ignore_request' => true))
{
$model = parent::getModel($name, $prefix, $config);
return $model;
}
function delete()
{
$app = JFactory::getApplication();
$cid = JRequest::getVar('cid', array (), '', 'array');
$db = & JFactory::getDBO();
if (count($cid))
{
$cids = implode(',', $cid);
$query = "DELETE FROM #__djflyer_categories WHERE ID IN ( ".$cids." )";
$db->setQuery($query);
if (!$db->query())
{
echo "script alert('".$db->getErrorMsg()."');
window.history.go(-1); </script>\n";
}
}
$app->redirect('index.php?option=com_djflyer&view=categories', JText::_('COM_DJFLYER_CATEGORIES_DELETED'));
}
}
und eine category.php:
jimport('joomla.application.component.controller');
jimport( 'joomla.database.table' );
class DJFlyerControllerCategory extends JControllerLegacy {
public function getModel($name = 'Category', $prefix = 'DJFlyerModel', $config = array('ignore_request' => true))
{
$model = parent::getModel($name, $prefix, $config);
return $model;
}
public function getTable($type = 'Category', $prefix = 'DJFlyerTable', $config = array())
{
return JTable::getInstance($type, $prefix, $config);
}
function __construct($default = array ())
{
parent::__construct($default);
$this->registerTask('apply', 'save');
$this->registerTask('save2new', 'save');
$this->registerTask('edit', 'add');
}
function display($cachable = false, $urlparams = false){
JRequest::setVar('view', JRequest::getCmd('view', 'category'));
parent::display($cachable);
}
public function add(){
//$data = JFactory::getApplication();
JRequest::setVar('view','category');
parent::display();
}
public function cancel() {
$app = JFactory::getApplication();
$app->redirect( 'index.php?option=com_djflyer&view=categories' );
}
public function save(){
$app = JFactory::getApplication();
$model = $this->getModel('category');
$row = &JTable::getInstance('Categories', 'DJFlyerTable');
$par = &JComponentHelper::getParams( 'com_djflyer' );
if (!$row->bind(JRequest::get('post')))
{
echo "<script> alert('".$row->getError()."');
window.history.go(-1); </script>\n";
exit ();
}
if (!$row->store())
{
echo "<script> alert('".$row->getError()."');
window.history.go(-1); </script>\n";
exit ();
}
switch(JRequest::getVar('task'))
{
case 'apply':
$link = 'index.php?option=com_djflyer&task=category.edit&id='.$row->id;
$msg = JText::_('COM_DJFLYER_CATEGORY_SAVED');
break;
case 'save2new':
$link = 'index.php?option=com_djflyer&task=category.add';
$msg = JText::_('COM_DJFLYER_CATEGORY_SAVED');
break;
case 'saveItem':
default:
$link = 'index.php?option=com_djflyer&view=categories';
$msg = JText::_('COM_DJFLYER_CATEGORY_SAVED');
break;
}
$app->redirect($link, $msg);
}
}
?>
angegeben.
Da ich in PHP nicht bewandert bin würde es mich freuen, wenn mir jemand helfen könnte, das Skript so abzuändern, daß ich noch eine zweite Kategorie bzw. Unterkategorien eingeben kann.
Herzlichen Dank im Voraus
Mike