Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace Drupal\nordicpaper_custom\Plugin\Block;
- use Drupal\Core\Block\BlockBase;
- use Drupal\node\Entity\Node;
- use Drupal\file\Entity\File;
- use Drupal\taxonomy\Entity\Term;
- use Drupal\Core\Database\Database;
- use Drupal\user\Entity\User;
- /**
- * @Block(
- * id = "nordicpaper_custom_products_filter",
- * subject = @Translation("Products filter block"),
- * admin_label = @Translation("Products filter block")
- * )
- */
- class ProductsFilterBlock extends BlockBase {
- public function build() {
- $node = \Drupal::routeMatch()->getParameter('node');
- $filterVocabulary = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadTree('filters');
- $filterTerms = array();
- foreach ($filterVocabulary as $term) {
- $filterTerms[$term->name] = array(
- "id" => $term->tid,
- );
- }
- $filters = array();
- $content = '';
- /* Filter config */
- $release = $node->get('field_list_release')->getValue()[0]['value'];
- if($release){
- $releaseValues = explode(',',$release);
- $releaseParts = 100/count($releaseValues);
- $release = array(0);
- $releaseWeight = $node->get('field_list_release_weight')->getValue()[0]['value'];
- $y = 1;
- $x = 0;
- for($i=0;$i<100;$i++){
- if($i > $releaseParts){
- $y++;
- $releaseParts = $releaseParts*$y;
- $x++;
- }
- array_push($release, $releaseValues[$x]);
- }
- $releaseInfo = Term::load($filterTerms['Release']['id']);
- $filters[$releaseWeight] = array(
- 'content' => '<div class="filter" data-values="'.implode(',',$release).'"><label>RELEASE:</label><div class="popup"><div class="close"></div><span class="title">'.$releaseInfo->description->value.'<img src="/themes/nordicpaper/images/popup_point.png" /></div><a class="question" title="'.$releaseInfo->description->value.'"></a><div class="slider" id="release"></div></div>',
- );
- }
- $grease = $node->get('field_list_grease_barrier')->getValue()[0]['value'];
- if($grease){
- $greaseValues = explode(',',$grease);
- $greaseParts = 100/count($greaseValues);
- $grease = array(0);
- $greasebarrierWeight = $node->get('field_list_grease_barrier_weight')->getValue()[0]['value'];
- $y = 1;
- $x = 0;
- for($i=0;$i<100;$i++){
- if($i > $greaseParts){
- $y++;
- $greaseParts = $greaseParts*$y;
- $x++;
- }
- array_push($grease, $greaseValues[$x]);
- }
- $greaseInfo = Term::load($filters['Grease barrier']['id']);
- $filters[$greasebarrierWeight] = array(
- 'content' => '<div class="filter" data-values="'.implode(',',$grease).'"><label>GREASE BARRIER:</label><div class="popup"><div class="close"></div>'.$greaseInfo->description->value.'<img src="/themes/nordicpaper/images/popup_point.png" /></div><a class="question" title="'.$greaseInfo->description->value.'"></a><div class="slider" id="greasebarrier"></div></div>',
- );
- }
- $lamination = $node->get('field_list_lamination')->getValue()[0]['value'];
- if($lamination){
- $laminationValues = explode(',',$lamination);
- $laminationParts = 100/count($laminationValues);
- $lamination = array(0);
- $laminationWeight = $node->get('field_list_lamination_weight')->getValue()[0]['value'];
- $y = 1;
- $x = 0;
- for($i=0;$i<100;$i++){
- if($i > $laminationParts){
- $y++;
- $laminationParts = $laminationParts*$y;
- $x++;
- }
- array_push($lamination, $laminationValues[$x]);
- }
- $laminationInfo = Term::load($filters['Lamination']['id']);
- $filters[$laminationWeight] = array(
- 'content' => '<div class="filter" data-values="'.implode(',',$lamination).'"><label>LAMINATION:</label><div class="popup"><div class="close"></div>'.$laminationInfo->description->value.'<img src="/themes/nordicpaper/images/popup_point.png" /></div><a class="question" title="'.$laminationInfo->description->value.'"></a><div class="slider" id="lamination"></div></div>',
- );
- }
- $printability = $node->get('field_list_printability')->getValue()[0]['value'];
- if($printability){
- $printabilityValues = explode(',',$printability);
- $printabilityParts = 100/count($printabilityValues);
- $printability = array(0);
- $printabilityWeight = $node->get('field_list_printability_weight')->getValue()[0]['value'];
- $y = 1;
- $x = 0;
- for($i=0;$i<100;$i++){
- if($i > $printabilityParts){
- $y++;
- $printabilityParts = $printabilityParts*$y;
- $x++;
- }
- array_push($printability, $printabilityValues[$x]);
- }
- $printabilityInfo = Term::load($filters['Printability']['id']);
- $filters[$printabilityWeight] = array(
- 'content' => '<div class="filter" data-values="'.implode(',',$printability).'"><label>PRINTABILITY:</label><div class="popup"><div class="close"></div>'.$printabilityInfo->description->value.'<img src="/themes/nordicpaper/images/popup_point.png" /></div><a class="question" title="'.$printabilityInfo->description->value.'"></a><div class="slider" id="printability"></div></div>',
- );
- }
- $frozen = $node->get('field_list_frozen_foods')->getValue()[0]['value'];
- if($frozen){
- $frozenValues = explode(',',$frozen);
- $frozenParts = 100/count($frozenValues);
- $frozen = array(0);
- $frozenFoodWeight = $node->get('field_list_frozen_food_weight')->getValue()[0]['value'];
- $y = 1;
- $x = 0;
- for($i=0;$i<100;$i++){
- if($i > $frozenParts){
- $y++;
- $frozenParts = $frozenParts*$y;
- $x++;
- }
- array_push($frozen, $frozenValues[$x]);
- }
- $frozenfoodInfo = Term::load($filters['Frozen food']['id']);
- $filters[$frozenFoodWeight] = array(
- 'content' => '<div class="filter" data-values="'.implode(',',$frozen).'"><label>FROZEN FOOD:</label><div class="popup"><div class="close"></div>'.$frozenfoodInfo->description->value.'<img src="/themes/nordicpaper/images/popup_point.png" /></div><a class="question" title="'.$frozenfoodInfo->description->value.'"></a><div class="slider" id="frozenfoods"></div></div>',
- );
- }
- $food = $node->get('field_list_food_interleaving')->getValue()[0]['value'];
- if($food){
- $foodValues = explode(',',$food);
- $foodParts = 100/count($foodValues);
- $food = array(0);
- $foodInterleavingWeight = $node->get('field_food_interleaving_weight')->getValue()[0]['value'];
- $y = 1;
- $x = 0;
- for($i=0;$i<100;$i++){
- if($i > $foodParts){
- $y++;
- $foodParts = $foodParts*$y;
- $x++;
- }
- array_push($food, $foodValues[$x]);
- }
- $foodinterleavingInfo = Term::load($filters['Food interleaving']['id']);
- $filters[$foodInterleavingWeight] = array(
- 'content' => '<div class="filter" data-values="'.implode(',',$food).'"><label>FOOD INTERLEAVING:</label><div class="popup"><div class="close"></div>'.$foodinterleavingInfo->description->value.'<img src="/themes/nordicpaper/images/popup_point.png" /></div><a class="question" title="'.$foodinterleavingInfo->description->value.'"></a><div class="slider" id="foodinterleaving"></div></div>',
- );
- }
- $denesting = $node->get('field_list_denesting')->getValue()[0]['value'];
- if($denesting){
- $denestingValues = explode(',',$denesting);
- $denestingParts = 100/count($denestingValues);
- $denesting = array(0);
- $denestingWeight = $node->get('field_list_denesting_weight')->getValue()[0]['value'];
- $y = 1;
- $x = 0;
- for($i=0;$i<100;$i++){
- if($i > $denestingParts){
- $y++;
- $denestingParts = $denestingParts*$y;
- $x++;
- }
- array_push($denesting, $denestingValues[$x]);
- }
- $denestingInfo = Term::load($filters['Denesting']['id']);
- $filters[$denestingWeight] = array(
- 'content' => '<div class="filter" data-values="'.implode(',',$denesting).'"><label>DENESTING:</label><div class="popup"><div class="close"></div>'.$denestingInfo->description->value.'<img src="/themes/nordicpaper/images/popup_point.png" /></div><a class="question" title="'.$denestingInfo->description->value.'"></a><div class="slider" id="denesting"></div></div>',
- );
- }
- $corrugating = $node->get('field_list_corrugating')->getValue()[0]['value'];
- if($corrugating){
- $corrugatingValues = explode(',',$corrugating);
- $corrugatingParts = 100/count($corrugatingValues);
- $corrugating = array(0);
- $corrugatingWeight = $node->get('field_list_corrugating_weight')->getValue()[0]['value'];
- $y = 1;
- $x = 0;
- for($i=0;$i<100;$i++){
- if($i > $corrugatingParts){
- $y++;
- $corrugatingParts = $corrugatingParts*$y;
- $x++;
- }
- array_push($corrugating, $corrugatingValues[$x]);
- }
- $corrugatingInfo = Term::load($filters['Corrugating']['id']);
- $filters[$corrugatingWeight] = array(
- 'content' => '<div class="filter" data-values="'.implode(',',$corrugating).'"><label>CORRUGATING:</label><div class="popup"><div class="close"></div>'.$corrugatingInfo->description->value.'<img src="/themes/nordicpaper/images/popup_point.png" /></div><a class="question" title="'.$corrugatingInfo->description->value.'"></a><div class="slider" id="corrugating"></div></div>',
- );
- }
- $weight = array();
- for($i=0;$i<101;$i++){
- array_push($weight, $i);
- }
- $content .= '<a href="javascript:void()" class="filterClear">Clear filter</a><br />';
- $content .= '<div class="filters">';
- $content .= '<div id="amount"></div>';
- $content .= $filters[1]['content'];
- $content .= $filters[2]['content'];
- $content .= '<div class="showmore"><a href="javascript:void(0)" class="showMoreFilters"><span>More options</span><span style="display:none;">Less options</span></a></div>';
- $content .= '<div class="moreFilters">';
- for($i=3;$i<count($filters)+1;$i++){
- $content .= $filters[$i]['content'];
- }
- $weightInfo = Term::load($filters['Gram weight']['id']);
- $content .= '<div class="filter" data-values="'.implode(',',$weight).'"><label>GRAM WEIGHT:</label><div class="popup"><div class="close"></div>'.$weightInfo->description->value.'<img src="/themes/nordicpaper/images/popup_point.png" /></div><a class="question" title="'.$weightInfo->description->value.'"></a><div class="slider" id="weight"></div></div>';
- $content .= '</div>';
- $content .= '</div>';
- $output = array(
- '#type' => 'markup',
- '#children' => $content,
- '#cache' => array(
- 'max-age' => '0',
- ),
- '#attached' => array(
- 'library' => array(
- 'nordicpaper_custom/nordicpaper-custom',
- ),
- ),
- );
- return $output;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement