Last active
August 29, 2015 13:56
-
-
Save autumned/9139481 to your computer and use it in GitHub Desktop.
modx GroupSeperator
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Here is the snippet code: | |
<?php | |
$output = ''; | |
$groupTag = $scriptProperties['groupTag']; | |
$snip = $scriptProperties['snippet']; | |
if(!isset($scriptProperties['outputSeparator'])) { | |
$scriptProperties['outputSeparator'] = '||'; | |
} | |
if(!isset($groupTag)) { | |
$groupTag = 'ul'; | |
} | |
if(isset($scriptProperties['groupClass'])) { | |
$markupOpen = $groupTag.' class="'.$scriptProperties['groupClass'].'"'; | |
} else { | |
$markupOpen = $groupTag; | |
} | |
$rows = $modx->runSnippet($snip, $scriptProperties); | |
$rows = explode($scriptProperties['outputSeparator'],$rows); | |
$numItems = count($rows); | |
foreach ($rows as $i => $row) { | |
$output .= $row; | |
if ($i == 0){ | |
echo '<'.$markupOpen.'>'; | |
} | |
if (($i + 1) % $scriptProperties['group'] == 0) { | |
if($i != $numItems-1) { | |
$output .= "\n</".$groupTag.">\n<".$markupOpen.">\n"; | |
} else { | |
$output .= "\n</".$groupTag.">\n"; | |
} | |
} | |
} | |
return $output; | |
//This is the snippet call: | |
[[!GroupSeperator? &groupTag=`div` &groupClass=`row` &group=`3` &snippet=`getPage` &...getpage properties...]] | |
//so i guess your snippet call should look something like this: | |
[[!GroupSeperator? | |
&groupTag=`div` | |
&groupClass=`row` | |
&group=`3` | |
&snippet=`getPage` | |
&elementClass=`modSnippet` | |
&element=`getResources` | |
&parents=`[[*id]]` | |
&limit=`32` | |
&sortby=`RAND()` | |
&includeContent=`0` | |
&includeTVs=`1` | |
&showHidden=`1` | |
&hideContainers=`1` | |
&tpl=`shopRowTpl` | |
]] | |
[[!+page.nav:notempty=`<div class="paging"><div class="page-list">[[!+page.nav]]</div></div>`]] | |
// My update with class count | |
<?php | |
$output = ''; | |
$groupTag = $scriptProperties['groupTag']; | |
$snip = $scriptProperties['snippet']; | |
if(!isset($scriptProperties['outputSeparator'])) { | |
$scriptProperties['outputSeparator'] = '||'; | |
} | |
if(!isset($groupTag)) { | |
$groupTag = 'ul'; | |
} | |
if(isset($scriptProperties['groupClass'])) { | |
//$markupOpen = $groupTag.' class="'.$scriptProperties['groupClass'].'"'; | |
$markupOpen; | |
$addClass = $scriptProperties['groupClass']; | |
function classCount($tag, $class, $id){ | |
$newClass = $class.' '.$class.'_00'.$id; | |
$result = $tag.' class="'.$newClass.'"'; | |
return $result; | |
} | |
} else { | |
$markupOpen = $groupTag; | |
} | |
$rows = $modx->runSnippet($snip, $scriptProperties); | |
$rows = explode($scriptProperties['outputSeparator'],$rows); | |
$numItems = count($rows); | |
$numBlocks = 0; | |
foreach ($rows as $i => $row) { | |
$output .= $row; | |
if ($i == 0){ | |
//echo '<'.$markupOpen.'>'; | |
$numBlocks++; | |
echo '<'.classCount($groupTag, $addClass, $numBlocks).'>'; | |
} | |
if (($i + 1) % $scriptProperties['group'] == 0 OR $numItems <= $scriptProperties['group']) { | |
if($i != $numItems-1) { | |
$numBlocks++; | |
$output .= "\n</".$groupTag.">\n<".classCount($groupTag, $addClass, $numBlocks)." >\n"; | |
} else { | |
$output .= "\n</".$groupTag.">\n"; | |
} | |
} | |
} | |
return $output; | |
// full fix + upgrafe for interesnoo | |
<?php | |
$output = ''; | |
$groupTag = $scriptProperties['groupTag']; | |
$snip = $scriptProperties['snippet']; | |
if(!isset($scriptProperties['outputSeparator'])) { | |
$scriptProperties['outputSeparator'] = '||'; | |
} | |
if(!isset($groupTag)) { | |
$groupTag = 'ul'; | |
} | |
if(isset($scriptProperties['groupClass'])) { | |
//$markupOpen = $groupTag.' class="'.$scriptProperties['groupClass'].'"'; | |
$markupOpen; | |
$addClass = $scriptProperties['groupClass']; | |
function classCount($tag, $class, $id){ | |
$newClass = $class.' '.$class.'_00'.$id; | |
$result = $tag.' class="'.$newClass.'"'; | |
return $result; | |
} | |
} else { | |
$markupOpen = $groupTag; | |
} | |
$rows = $modx->runSnippet($snip, $scriptProperties); | |
$rows = explode($scriptProperties['outputSeparator'],$rows); | |
$numItems = count($rows); | |
$numBlocks = 0; | |
$soc_block; | |
foreach ($rows as $i => $row) { | |
$output .= $row; | |
if ($i == 0){ | |
//echo '<'.$markupOpen.'>'; | |
$numBlocks++; | |
echo '<'.classCount($groupTag, $addClass, $numBlocks).'">'; | |
} | |
if (($i + 1) % $scriptProperties['group'] == 0) { | |
// || ($i + 1) == $scriptProperties['mylimit'] || $numItems <= $scriptProperties['group'] || ($i + 1) == $numItems | |
if($i != $numItems-1) { | |
$numBlocks++; | |
if($numBlocks == 3){ | |
$soc_block = $modx->getChunk('right_banner',$properties); | |
} | |
$output .= "\n</".$groupTag.">\n<".classCount($groupTag, $addClass, $numBlocks)." >\n".$soc_block.""; | |
}elseif (($i + 1) == $scriptProperties['mylimit']) { | |
$output .= "\n</".$groupTag.">\n"; | |
}elseif(($i + 1) == $numItems){ | |
$output .= "\n</".$groupTag.">\n"; | |
}else { | |
$output .= "\n</".$groupTag.">\n"; | |
} | |
}else{ | |
if(($i + 1) == $numItems){ | |
$output .= "\n</".$groupTag.">\n"; | |
} | |
} | |
} | |
return $output; | |
// UPDATED: горизонтальный вывод по датам в 3 колонки: | |
<?php | |
$output = ''; | |
$colRowsOne = ''; | |
$colRowsTwo = ''; | |
$colRowsThree = ''; | |
$soc_block = $modx->getChunk('right_banner',$properties); | |
$snip = $scriptProperties['snippet']; | |
if(!isset($scriptProperties['outputSeparator'])) { | |
$scriptProperties['outputSeparator'] = '||'; | |
} | |
$rows = $modx->runSnippet($snip, $scriptProperties); | |
$rows = explode($scriptProperties['outputSeparator'],$rows); | |
$numItems = count($rows); | |
foreach ($rows as $i => $row) { | |
if(!$itemNum || $itemNum == 0){ | |
$itemNum = 1; | |
} | |
if($itemNum == 1){ | |
$colRowsOne .= $row; | |
} | |
if($itemNum == 2){ | |
$colRowsTwo .= $row; | |
} | |
if($itemNum == 3){ | |
$colRowsThree .= $row; | |
$itemNum = 0; | |
} | |
$itemNum += 1; | |
} | |
$output .= '<div class="block block_001">'.$colRowsOne.'</div>'; | |
$output .= '<div class="block block_002">'.$colRowsTwo.'</div>'; | |
$output .= '<div class="block block_003">'.$soc_block.''.$colRowsThree.'</div>'; | |
return $output; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment