Plugin Individuelle Kategorien

Hallo, wir haben unser Artikellistung als 4col, das Plugin individuelle Kategorien ist jedoch in 3col. Wo lässt sich dies in ein 4col abändern? Danke schonmal :slight_smile:

An diese Frage möchte ich mich gerne anschließen und Fragen, ob es auch möglich ist eine Überschrift + Beschreibungstext einzufügen, eine Blätterfunktion und eine Sortierfunktion umzusetzen?

Hallo TonyD, das ist so derzeit leider noch nicht möglich. Wir denken aber auch, dass dies eine sinnvolle Anpassung ist und werden eine Funktion dazu mit dem nächsten Plugin-Update bringen. Ich setze mich jetzt direkt an das Plugin und das Update dürfte dann entsprechend innerhalb der nächsten Tage verfügbar sein. [quote=„sfquadrat“]An diese Frage möchte ich mich gerne anschließen und Fragen, ob es auch möglich ist eine Überschrift + Beschreibungstext einzufügen, eine Blätterfunktion und eine Sortierfunktion umzusetzen?[/quote] Ich schaue mal, was sich da auf die Schnelle machen lässt. Zumindest eine Überschrift und ein Beschreibungstext dürfte dabei sein. Bezüglich der Sortierung kann ich leider nichts versprechen, da ich befürchte, dass dies einen größeren Aufwand bedeutet. Gruß, Patrick :shopware:

Hallo TonyD, das Listing kannst Du schon beeinflussen, dazu müsstest Du aber im default Template Hand anlegen und das wäre beim nächsten Update Geschichte. Das Plugin erbt nunmal grundsätzlich vom default. In der _default\fronted\listing\index.tpl kannst Du in Zeile 42 {else} {assign var="sTemplate" value="listing-3col"} {assign var="sBoxMode" value="table"} {/if} so abändern {else} {assign var="sTemplate" value="listing"} {assign var="sBoxMode" value="table"} {/if} ist aber nur für den schnellen Einsatz gedacht. Hoffe SW überarbeitet dieses Plugin schnellstens. Grüße Erik!

hi, das Template kannst du natürlich, wie Erik schon treffend geschrieben hat, nach belieben beeinflussen. Eine blätterfunktion habe ich auf die Schnelle auch nciht hinbekommen aber die Sortierung habe ich bereits integriert: Beipiel Bei Interesse kann ich den entsprechenden Code hier zur Verfügung stellen. Viele Grüße,

Uns würde der Code für die Sortierung intressieren. Patrick, gibt es schon neues zu dem Update des Plugins? Gruß, Tony

hi, hier meine Controller/frontend/SwagCustomCategories.php. und die Views/frontend/plugins/swag_custom_categories/index.tpl. Hoffe das Hilft. Viele Grüße, H. Controller: [code]<?php /**

  • Plugin-Controller to display the special article-groups in the frontend

  • @link http://www.shopware.de

  • @copyright Copyright © 2011, shopware AG

  • @author Patrick Stahl

  • @package Plugins

  • @subpackage Frontend_Controller
    */
    class Shopware_Controllers_Frontend_SwagCustomCategories extends Enlight_Controller_Action
    {

    /**

    • Adds the default template directory ‚Views‘ to use the new templates
    • @return void
      */
      public function init()
      {
      $this->View()->addTemplateDir(dirname(__FILE__) . „…/…/Views/“); } /** * Function to create the whole listing by the given parameter * * @return void */ public function indexAction() { $this->View()->loadTemplate(„frontend/plugins/swag_custom_categories/index.tpl“); // Check which articles shall be shown switch($this->Request()->filterMode) { case ‚newest‘: $maxArticles = Shopware()->Plugins()->Frontend()->SwagCustomCategories()->Config()->maxArticles; $sql=„SELECT id FROM s_articles WHERE IF(DATEDIFF(NOW(), datum)<=60,1,0)>0 ORDER BY datum DESC“; $results = Shopware()->Db()->fetchCol($sql, array()); $articles = array(); foreach($results as $result) { $article = Shopware()->Modules()->Articles()->sGetPromotionById(‚fix‘, 0, $result); if(!empty($article)) { $articles = $article; } if(count($articles) == $maxArticles) { break; } } $this->View()->sArticles = $articles; break; case ‚pseudo‘: $maxArticles = Shopware()->Plugins()->Frontend()->SwagCustomCategories()->Config()->maxArticles; $sql = „SELECT articleID FROM s_articles_prices WHERE pseudoprice > 0 ORDER BY id DESC“; $results = Shopware()->Db()->fetchCol($sql); $articles = array(); foreach($results as $result) { $article = Shopware()->Modules()->Articles()->sGetPromotionById(‚fix‘, 0, $result); if(!empty($article)) { $articles = $article; } if(count($articles) == $maxArticles) { break; } } $this->View()->sArticles = $articles; break; case ‚filter‘: $maxArticles = Shopware()->Plugins()->Frontend()->SwagCustomCategories()->Config()->maxArticles; $attrArr = explode(’,’,$this->Request()->attr); $contentArr = explode(’,’,$this->Request()->content); if(count($attrArr) >=1){ $sqlAdd = ‚‘; if($attrArr[0] == ‚all‘){ $sqlAdd = „WHERE 1“; }else{ $sqlAdd = "WHERE {addslashes(attr$attrArr[0])} = ‚{$contentArr[0]}‘ "; foreach($attrArr as $k=>$v){ if($k >0) $sqlAdd .= „AND {addslashes(attr$attrArr[$k])} = ‚{$contentArr[$k]}‘“; } } } $sql = „SELECT articleID FROM s_articles_attributes {$sqlAdd} ORDER BY id DESC“; $results = Shopware()->Db()->fetchCol($sql, array()); $articles = array(); foreach($results as $result) { $article = Shopware()->Modules()->Articles()->sGetPromotionById(‚fix‘, 0, $result); if(!empty($article)) { $articles = $article; } //if(count($articles) == $maxArticles) { // break; // } } $direction = ‚ASC‘; switch ($this->Request()->sSort){ case 1: $orderBy = „datum, articleID“; $direction = ‚DESC‘; break; case 2: $orderBy = „sales,articleID“; break; case 3: $orderBy = „price,articleID“; break; case 4: $orderBy = „price,articleID“; $direction = ‚DESC‘; break; case 5: $orderBy = „articleName,articleID“; break; case 6: $orderBy = „articleName,articleID“; $direction = ‚DESC‘; break; case 7: $orderBy = „attr2“; $direction = ‚DESC‘; break; default: $orderBy = ‚datum,articleID‘; $direction = ‚DESC‘; } $this->masort(&$articles, $orderBy, $direction); $this->View()->sSort = $this->Request()->sSort; $this->View()->content = $this->Request()->content; $this->View()->filterMode = $this->Request()->filterMode; $this->View()->attr = $this->Request()->attr; $this->View()->sArticles = $articles; // DEBUG /*echo ’

    '; echo „// DEBUG --------------------------------------------------------------------------\n\n“; print_r($attrArr); print_r($contentArr); print_r($articles); echo „\n\n// DEBUG ENDE----------------------------------------------------------------------“; echo ’

‚; die();// */ break; default: $maxArticles = Shopware()->Plugins()->Frontend()->SwagCustomCategories()->Config()->maxArticles; $attr = addslashes($this->Request()->filterMode); $strposCheck = strpos($attr, „attr“); if($strposCheck !== false) { if($this->Request()->content){ $content = addslashes($this->Request()->content); //$this->view->assign(‚myCategoryName‘, $myCategoryName); $this->View()->myCategoryName = $this->Request()->categoryName; print_r($categoryBreadcrumb); $sqlAdd = "AND {$attr} = ‚{$content}‘ "; }else{ $sqlAdd = "AND {$attr} <> ‚0‘ "; } $sql="SELECT articleID FROM s_articles_attributes WHERE NULLIF({$attr},‘’) IS NOT NULL {$sqlAdd} ORDER BY id DESC"; $results = Shopware()->Db()->fetchCol($sql, array()); $articles = array(); foreach($results as $result) { $article = Shopware()->Modules()->Articles()->sGetPromotionById(‚fix‘, 0, $result); if(!empty($article)) { $articles = $article; } if(count($articles) == $maxArticles) { break; } } } $direction = ‚ASC‘; switch ($this->Request()->sSort){ case 1: $orderBy = „datum, articleID“; $direction = ‚DESC‘; break; case 2: $orderBy = „sales,articleID“; break; case 3: $orderBy = „price,articleID“; break; case 4: $orderBy = „price,articleID“; $direction = ‚DESC‘; break; case 5: $orderBy = „articleName,articleID“; break; case 6: $orderBy = „articleName,articleID“; $direction = ‚DESC‘; break; case 7: $orderBy = „attr2“; $direction = ‚DESC‘; break; default: $orderBy = ‚datum,articleID‘; $direction = ‚DESC‘; } $this->masort(&$articles, $orderBy, $direction); $this->View()->sSort = $this->Request()->sSort; $this->View()->content = $this->Request()->content; $this->View()->filterMode = $this->Request()->filterMode; $this->View()->sArticles = $articles; // DEBUG /*echo ’

'; echo "// DEBUG --------------------------------------------------------------------------\n\n"; print\_r($articles); echo "\n\n// DEBUG ENDE----------------------------------------------------------------------"; echo '

‚; die();// */ break; } } private function masort(&$data, $sortby,$direction) { static $sort_funcs = array(); if (empty($sort_funcs[$sortby])) { $code = „$c=0;“; foreach (split(‘,’, $sortby) as $key) { $array = array_pop($data); array_push($data, $array); if(is_numeric($array[$key])) $code .= „if ( $c = (($a[’$key’] == $b[’$key’]) ? 0:(($a[’$key’] < $b[’$key’]) ? -1 : 1 )) );“; else $code .= „if ( ($c = strnatcasecmp($a[’$key’],$b[’$key’])) != 0 ) return $c;\n“; } $code .= ‚return $c;‘; if($direction == ‚ASC‘){ $sort_func = $sort_funcs[$sortby] = create_function(’$a, $b’, $code); }else{ $sort_func = $sort_funcs[$sortby] = create_function(’$b, $a’, $code); } } else { $sort_func = $sort_funcs[$sortby]; } $sort_func = $sort_funcs[$sortby]; uasort($data, $sort_func); } } [/code] View: [code] {extends file=‚frontend/listing/index.tpl‘} {block name=„frontend_listing_top_actions“}


{s name=‚ListingLabelSort‘}{/s}

{if $content|strstr:„herren“ || $content|strstr:„damen“ || $content|strstr:„kids“}

		 	{else}
		 	<div id="filterCustomCategory" style="position: absolute;top: 5px;left: 250px;">
                <li style="float: left;padding: 5px;">

Alle anzeigen |


  • nur Herren |


  • nur Damen |

  • nur Kids


  • {/if}

    {/block} {block name=„frontend_listing_bottom_paging“} {/block} {block name=‚frontend_campaign_box‘} {/block} [/code]

    Hallo, ich kann euch leider noch nicht sagen, wann genau das Update vorhanden sein wird. Jedoch werden damit folgende Änderungen übernommen: - Implentierung einer Paging-/Sortierungs-Funktion - Auswahl eines eigenen Templates(Liste, Zweispaltig, Dreispaltig, Vierspaltig) - Filterung nach mehreren Attributen (Nähere Infos) Das Update ist auch fast schon intern komplett vorhanden. Das Ganze muss im Anschluß noch durch unsere Qualitätssicherung und wird dann in den nächsten Tagen verfügbar sein. Gruß, Patrick :shopware:

    1 „Gefällt mir“

    Gibt es hier schon Neuigkeiten bezüglich des Updates?

    Hallo TonyD, das Plugin befindet sich derzeit in unserer Qualitätssicherung. Sofern dort keine Fehler mehr auftauchen, wird das Update im Store erscheinen. Ich werde diesen Thread automatisch aktualisieren, sobald ich von dem Update erfahre. Gruß, Patrick :shopware:

    Hallo, das Plugin ist nun soweit durch und auch schon im Store erhältlich. Darin enthalten sind nun eine Sortierungs- und Paginierungs-Funktion, so wie pro FilterModus definierbare Titel und Beschreibungen und noch ein kleiner Zusatz, den man hier findet. Gruß, Patrick :shopware:

    Hallo, habe das Update durchgeführt, erhalte bei den „Individuellen Kategorien“ jedoch immer ein Time-Out vom Gateway. Mit der letzten Version hat der Abruf funktioniert. Woran könnte das liegen? Bsp: http://www.buerolieferant.de/SwagCustom … ode=newest

    Hallo Patrick, mich würde interessieren, ob man die Pseudo-Artikel mit einem Attribut kombinieren kann. Ich möchte mehrere Artikel-Gruppen dadurch trennen. Z.B. Artikelgruppe: Bekleidung Artikelgruppe: Schuhe usw., aber ausgegeben sollen nur die Pseudo-Artikel sein. Danke