Skip to content

Instantly share code, notes, and snippets.

View AgelxNash's full-sized avatar
Open to suggestions

Евгений Борисов AgelxNash

Open to suggestions
View GitHub Profile
<?php
/**
* PHP: Detect location by IP
* http://www.catswhocode.com/blog/10-super-useful-php-snippets-you-probably-havent-seen
*/
function detect_city($ip) {
$default = 'UNKNOWN';
if (!is_string($ip) || strlen($ip) < 1 || $ip == '127.0.0.1' || $ip == 'localhost')
@AgelxNash
AgelxNash / TagPopular.snippet.php
Created April 1, 2013 18:06
[Evo] Облако тегов
<?php
/**
* TagPopular
*
* [[TagPopular? &tpl=`TagCloudItem` &tv=`7` &count=`15`]]
*
* TagCloudItem:
* <a href="/[~11~]?tag=[[urlencode? &input=`[+name+]`]]" title="Статьи с тегом [+name+]" class="label">[+name+] ([+count+])</a>
*
* @category snippet
@AgelxNash
AgelxNash / TagList.snippet.php
Created April 1, 2013 18:11
[Evo] Список тегов текущей статьи (Внимание! Необходим сниппет urlencode)
<?php
/**
* TagList
*
* [[TagList? &data=`[*tag*]` &sep=`,` &tpl=`PostTagList` &outSep=`, `]]
*
* PostTagList:
* <a href="/[~11~]?tag=[+encode+]" title="Все статьи с тегом [+tag+]">[+tag+]</a>
*
* @category snippet
<?php
trait HiddenCaller{
public function __call($key, $params){
try{
if(self::_checkMethod($key)){
self::_getMethod($this,$key,$params);
}
}catch(Exception $e){die($e->getMessage());}
}
public static function __callStatic($key, $params){
<?php
function close_tag_html($text) {
preg_match_all("/<[^>]*>/", $text, $bal);
$liste = array();
foreach($bal[0] as $balise) {
if ($balise{1} != "/") { // opening tag
preg_match("/<([a-z]+)/i", $balise, $type);
// add the tag
$liste[] = $type[1];
} else { // closing tag
@AgelxNash
AgelxNash / moto-detals.plugin.php
Created November 1, 2013 07:20
Документ 270400 имеет ссылку вида /detals/
//<?php
$DOC = 270400;
switch($modx->event->name){
case 'OnPageNotFound':{
$brand = '';
$q = explode('/', ltrim($_SERVER['REQUEST_URI'], '/'));
if(!isset($modx->motoDocID) && count($q)==2 && isset($q[0],$q[1])){
$motoID = (int)rtrim($q[1],$modx->config['friendly_url_suffix']);
if($motoID.$modx->config['friendly_url_suffix'] == $q[1]){
include_once(MODX_BASE_PATH.'assets/lib/modResource.php');
@AgelxNash
AgelxNash / plugin.mailnotify.php
Last active April 17, 2019 12:21
Плагин для MODX Evolution отправляющий уведомление на почту указанную в документе при сохранении этого же документа (имеется проверка на заполненность обязательного поля во время сохранения). Помимо этого плагин сохраняет в ТВ параметр статус отправки письма. И если все хорошо, то при повторном редактировании письмо не отправляется. Но для этого…
<?php
/**
* MailNotify
*
* Отправка уведомлений на почту пользователю при публикации документа
*
* @license GNU General Public License (GPL), http://www.gnu.org/copyleft/gpl.html
* @author Agel_Nash <Agel_Nash@xaker.ru>
* @version 0.1
*
@AgelxNash
AgelxNash / tv2prop.modx.php
Last active December 27, 2015 17:09
Скрипт для сохранения значений ТВ параметров в properties документа
<?php
$data = array(
array(
'id' => '8', //ID TV параметра с числом просмотров
'name' => 'hitts',
'key' => 'hitspage',
'int' => true
),
array(
'id' => '15', //ID TV параметра с числом комментариев
@AgelxNash
AgelxNash / customRoute.plugin.php
Last active September 13, 2019 09:35
Плагин для кастомной маршрутизации в MODX Evolution + сниппет для формирования ссылок. Данная реализация работает только при кэше с учетом ID и $_GET
//<?php
/**
* Onetable Route
*
* Плагин для кастомной маршрутизации
*
* @license GNU General Public License (GPL), http://www.gnu.org/copyleft/gpl.html
* @author Agel_Nash <Agel_Nash@xaker.ru>
* @version 0.1
*
@AgelxNash
AgelxNash / betweenTag.function.php
Created November 21, 2013 18:31
Вырезание текста между HTML тэгов. Корректно воспринимает любые уровни вложенности тэгов
<?php
/**
* Вырезание текста между HTML тэгов
*
* @author Agel_Nash <Agel_Nash@xaker.ru>
* @version 0.1
*
* @param string $html HTML текст
* @param string $tag HTML тэг в котором производить поиск
* @return array