| @@ 156-180 (lines=25) @@ | ||
| 153 | * |
|
| 154 | * @return mixed |
|
| 155 | */ |
|
| 156 | public function sortByWeight($array) |
|
| 157 | { |
|
| 158 | $callback = function ($a, $b) { |
|
| 159 | if (!isset($a['weight'])) { |
|
| 160 | return 1; |
|
| 161 | } |
|
| 162 | if (!isset($b['weight'])) { |
|
| 163 | return -1; |
|
| 164 | } |
|
| 165 | if ($a['weight'] == $b['weight']) { |
|
| 166 | return 0; |
|
| 167 | } |
|
| 168 | ||
| 169 | return ($a['weight'] < $b['weight']) ? -1 : 1; |
|
| 170 | }; |
|
| 171 | ||
| 172 | if ($array instanceof Collection) { |
|
| 173 | $array = $array->toArray(); |
|
| 174 | } |
|
| 175 | if (is_array($array)) { |
|
| 176 | usort($array, $callback); |
|
| 177 | } |
|
| 178 | ||
| 179 | return $array; |
|
| 180 | } |
|
| 181 | ||
| 182 | /** |
|
| 183 | * Sort by date. |
|
| @@ 189-213 (lines=25) @@ | ||
| 186 | * |
|
| 187 | * @return mixed |
|
| 188 | */ |
|
| 189 | public function sortByDate($array) |
|
| 190 | { |
|
| 191 | $callback = function ($a, $b) { |
|
| 192 | if (!isset($a['date'])) { |
|
| 193 | return -1; |
|
| 194 | } |
|
| 195 | if (!isset($b['date'])) { |
|
| 196 | return 1; |
|
| 197 | } |
|
| 198 | if ($a['date'] == $b['date']) { |
|
| 199 | return 0; |
|
| 200 | } |
|
| 201 | ||
| 202 | return ($a['date'] > $b['date']) ? -1 : 1; |
|
| 203 | }; |
|
| 204 | ||
| 205 | if ($array instanceof Collection) { |
|
| 206 | $array = $array->toArray(); |
|
| 207 | } |
|
| 208 | if (is_array($array)) { |
|
| 209 | usort($array, $callback); |
|
| 210 | } |
|
| 211 | ||
| 212 | return $array; |
|
| 213 | } |
|
| 214 | ||
| 215 | /** |
|
| 216 | * Create an URL. |
|