0]); } static function check_bg_class($x){ return in_array($x,array_keys(eBackgroundClass::getArray())) ? $x : 0; } static function setBan($card_id,$is_ban){ self::updateById($card_id,[self::$BAN=>$is_ban?1:0]); } static function setAdult($card_id,$is_adult){ self::updateById($card_id,[self::$ADULT=>$is_adult?1:0]); } static function getAllByProfile($pid,$isAssoc = true){ $pid = intval($pid); $res = []; if($pid) { $res = self::select([ \Query::WHERE => new \Where(\Where::_and([ \Where::_operator(self::$PROFILE,'=',$pid), ])) ],$isAssoc); } return $res; } static function getByTextIDAndPortal($text_id,$portal){ $res = null; $r = self::select([ \Query::COUNT => 1, \Query::WHERE => new \Where(\Where::_and([ \Where::_operator(self::$TEXT_ID,'=',$text_id), \Where::_operator(self::$PORTAL,'=',$portal), ])) ],false); if(\DB::numRows($r)){ $res = \DB::fetch($r); } return $res; } public static function installUniques() { \DB::addIndex(self::$table_name,self::$TEXT_ID); \DB::addIndex(self::$table_name,self::$PORTAL); \DB::addIndex(self::$table_name,self::$PROFILE); \DB::addIndex(self::$table_name,self::$ACCOUNT); } static function getBlocks($card_id,$options=[]){ $r = Block::getByCard($card_id); $res = []; foreach ($r as $k=>$v){ $res[] = Block::format($v,$options); } return $res; } static function view($id){ $id = intval($id); $CARD = self::getByID($id); $newViews = $CARD[self::$VIEWS]+1; Card::updateById($id,[ self::$VIEWS => $newViews ]); } static function getCardLink($v){ return \Site::sectionUrl($v[self::$TEXT_ID],true); } static function format($v,$options=[]){ $images_ids = []; $images = []; $cloud = $options['cloud']; $profile = CardProfile::getByID($v[self::$PROFILE]); $isProfileExpire = CardProfile::isExpire($profile); if($c = intval($v[self::$AVATAR])) $images_ids[] = $c; if($c = intval($v[self::$PAGE_BACKGROUND])) $images_ids[] = $c; if($c = intval($v[self::$CARD_BACKGROUND])) $images_ids[] = $c; if($c = intval($v[self::$ICON])) $images_ids[] = $c; if($images_ids){ $images = Image::getByIDS($images_ids); //* if($images[$v[self::$PAGE_BACKGROUND]]) { $images[$v[self::$PAGE_BACKGROUND]] = Image::imageResize($images[$v[self::$PAGE_BACKGROUND]],1920,0,90,['cloud'=>$cloud]); } if($images[$v[self::$CARD_BACKGROUND]]) { //$images[$v[self::$CARD_BACKGROUND]] = Image::imageResize($images[$v[self::$CARD_BACKGROUND]],600,0,100,['crop'=>'center','cloud'=>$cloud]); $images[$v[self::$CARD_BACKGROUND]] = Image::imageResize($images[$v[self::$CARD_BACKGROUND]],0,0,90,['cloud'=>$cloud]);; } if($images[$v[self::$AVATAR]]) { $images[$v[self::$AVATAR]] = Image::imageResize($images[$v[self::$AVATAR]],82,82,100,['crop'=>'center','cloud'=>$cloud]); } if($images[$v[self::$ICON]]) { $images[$v[self::$ICON]] = Image::imageResize($images[$v[self::$ICON]],34,34,100,['crop'=>'center','cloud'=>$cloud]); } /**/ } $footer = ''; $isAdult = boolval($v[self::$ADULT]); $isBan = boolval($v[self::$BAN]); $ad = ''; if($isAdult) { if($isProfileExpire) { $ad = ''; } $footer = '
🔞 На данной странице размещён контент для взрослых или ссылается на таковой. Пожалуйста, покиньте страницу, если по закону вам нельзя наблюдать такой контент.
'; } return [ 'id' => intval($v[self::$ID]), // number 'title' => $v[self::$NAME], // string 'account' => intval($v[self::$ACCOUNT]), // number 'text_id' => $v[self::$TEXT_ID], // string 'link' => self::getCardLink($v), // string 'hello' => $v[self::$HELLO], // string 'text' => $v[self::$TEXT], // string 'page_bg' => ($c = $images[$v[self::$PAGE_BACKGROUND]]) ? $c : '', // string 'page_class' => intval($v[self::$PAGE_CLASS]), // number 'card_bg' => ($c = $images[$v[self::$CARD_BACKGROUND]]) ? $c : '', // string 'card_class' => intval($v[self::$CARD_CLASS]), // number 'avatar' => ($c = $images[$v[self::$AVATAR]]) ? $c : '', // string 'icon' => ($c = $images[$v[self::$ICON]]) ? $c : \Site::themeUrl('pics/logo.svg',true), // string 'template' => intval($v[self::$TEMPLATE]), // ETemplate 'is_logo_footer' => boolval($v[self::$IS_LOGO_FOOTER]), // boolean 'fb_pixel' => $v[self::$FB_PIXEL], // string 'vk_pixel' => $v[self::$VK_PIXEL], // string 'ya_metric' => $v[self::$YA_METRIC], // string 'ga_metric' => $v[self::$GA_METRIC], // string 'blocks' => self::getBlocks($v[self::$ID],$options), // string 'pay_type' => intval($v[self::$PAY_TYPE]), 'expire' => $v[self::$EXPIRE]!='0000-00-00' ? date('d.m.Y',strtotime($v[self::$EXPIRE])) : '0000-00-00', 'views' => intval($v[self::$VIEWS]), 'is_adult' => boolval($v[self::$ADULT]), 'is_ban' => boolval($v[self::$BAN]), 'ad' => $ad, 'footer' => $footer, ]; } static function getForm($values = [], $options = []) :array { return [ self::getCommonFormInputs(), [ Form::VIEW=>Form::ROW, Form::COLS => [ [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'col-12', Form::KEY_VALUE =>self::$NAME, Form::TYPE =>eInputType::TEXT, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$NAME), Input::LABEL => $c, ], ], ], ], [ Form::VIEW=>Form::ROW, Form::COLS => [ [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c-100 ', Form::KEY_VALUE =>self::$BAN, Form::TYPE =>eInputType::SWITCH_IOS, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$BAN), Input::LABEL => '', Input::VALUE => 1, Input::CHECKED => boolval($values[self::$BAN]), ], ], [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c-100 ', Form::KEY_VALUE =>self::$ADULT, Form::TYPE =>eInputType::SWITCH_IOS, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$ADULT), Input::LABEL => '', Input::VALUE => 1, Input::CHECKED => boolval($values[self::$ADULT]), ], ], [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c-100 ', Form::KEY_VALUE =>self::$MODERATE, Form::TYPE =>eInputType::SWITCH_IOS, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$MODERATE), Input::LABEL => '', Input::VALUE => 1, Input::CHECKED => boolval($values[self::$MODERATE]), ], ], [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c-100 ', Form::KEY_VALUE =>self::$ACCEPT, Form::TYPE =>eInputType::SWITCH_IOS, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$ACCEPT), Input::LABEL => '', Input::VALUE => 1, Input::CHECKED => boolval($values[self::$ACCEPT]), ], ], ], ], self::getCommonFormSubmits($values), ]; } static function columnInfo() : array { return [ new C([ C::VAR_NAME =>&self::$ID, C::TYPE =>eColumnType::INT, C::AUTO_INCREMENT =>true, C::PRIMARY =>true, C::DEFAULT =>0, C::HIDDEN =>true, C::TH =>V::get(Vars::$ID), ]), new C([ C::VAR_NAME => &self::$NAME, C::TYPE => eColumnType::VARCHAR, C::LENGTH => 1023, C::DEFAULT => 'Моё имя', C::TH => V::get(Vars::$NAME), C::FUNC_VALUE_DATA => function($v){ $profile = \Profile::getByID($v[self::$PROFILE]); return $v[self::$NAME]. ('
'.$profile[\Profile::$LOGIN]) ; } ]), new C([ C::VAR_NAME => &self::$PAY_TYPE, C::TYPE => eColumnType::TINYINT, C::LENGTH => 1, C::DEFAULT => eVcardPayType::FREE, C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$EXPIRE, C::TYPE => eColumnType::DATE, C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$VIEWS, C::TYPE => eColumnType::INT, C::DEFAULT => 0, C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$TEXT_ID, C::TYPE => eColumnType::VARCHAR, C::LENGTH => 127, C::DEFAULT => 'card'.time(), C::TH => V::get(Vars::$TEXT_ID), C::FUNC_VALUE_DATA => function($v){ //$img = Image::getByID($v[self::$AVATAR]); return ''.h($v[self::$TEXT_ID]).'';// Image::imageResize($img,100,100,90,['crop'=>'center','cloud'=>Mstome::$CLOUD]); } ]), new C([ C::VAR_NAME => &self::$HELLO, C::TYPE => eColumnType::TEXT, C::DEFAULT => 'Всем привет!😉', C::TH => V::get(Vars::$HELLO), C::TD_CLASS => 'text_wrap', ]), new C([ C::VAR_NAME => &self::$TEXT, C::TYPE => eColumnType::TEXT, C::DEFAULT => 'Мы на связи и отвечаем в течение 5 минут', C::TH => V::get(Vars::$TEXT), C::TD_CLASS => 'text_wrap', ]), new C([ C::VAR_NAME => &self::$PAGE_BACKGROUND, C::TYPE => eColumnType::INT, C::DEFAULT => 0, C::TH => V::get(Vars::$PAGE_BACKGROUND), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$PAGE_CLASS, C::TYPE => eColumnType::INT, C::DEFAULT => eBackgroundClass::PAPAYA, C::TH => V::get(Vars::$PAGE_CLASS), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$CARD_BACKGROUND, C::TYPE => eColumnType::INT, C::DEFAULT => 0, C::TH => V::get(Vars::$CARD_BACKGROUND), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$CARD_CLASS, C::TYPE => eColumnType::INT, C::DEFAULT => eBackgroundClass::PAPAYA, C::TH => V::get(Vars::$CARD_CLASS), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$AVATAR, C::TYPE => eColumnType::INT, C::DEFAULT => 0, C::TH => V::get(Vars::$AVATAR), C::FUNC_VALUE_DATA => function($v){ $img = Image::getByID($v[self::$AVATAR]); return Image::imageResize($img,100,100,90,['crop'=>'center','cloud'=>Mstome::$CLOUD]); } ]), new C([ C::VAR_NAME => &self::$ICON, C::TYPE => eColumnType::INT, C::DEFAULT => 0, C::TH => V::get(Vars::$ICON), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$TEMPLATE, C::TYPE => eColumnType::TINYINT, C::DEFAULT => eTemplate::CLASSIC, C::TH => V::get(Vars::$TEMPLATE), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$IS_LOGO_FOOTER, C::TYPE => eColumnType::TINYINT, C::LENGTH => 1, C::DEFAULT => 0, C::TH => V::get(Vars::$IS_LOGO_FOOTER), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$PROFILE, C::TYPE => eColumnType::INT, C::LENGTH => 11, C::DEFAULT => intval(PID), C::TH => V::get(Vars::$PROFILE), ]), new C([ C::VAR_NAME => &self::$PORTAL, C::TYPE => eColumnType::INT, C::LENGTH => 11, C::DEFAULT => intval(\Site::$portal_id), C::TH => V::get(Vars::$PORTAL), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$FB_PIXEL, C::TYPE => eColumnType::VARCHAR, C::LENGTH => 127, C::TH => V::get(Vars::$FB_PIXEL), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$VK_PIXEL, C::TYPE => eColumnType::VARCHAR, C::LENGTH => 127, C::TH => V::get(Vars::$VK_PIXEL), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$YA_METRIC, C::TYPE => eColumnType::VARCHAR, C::LENGTH => 127, C::TH => V::get(Vars::$YA_METRIC), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$GA_METRIC, C::TYPE => eColumnType::VARCHAR, C::LENGTH => 127, C::TH => V::get(Vars::$GA_METRIC), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$BAN, C::TYPE => eColumnType::TINYINT, C::DEFAULT => 0, C::LENGTH => 1, C::TH => V::get(Vars::$BAN), C::FUNC_VALUE_DATA => function($v){ return MS::getBoolValText($v[self::$BAN]); } ]), new C([ C::VAR_NAME => &self::$ADULT, C::TYPE => eColumnType::TINYINT, C::DEFAULT => 0, C::LENGTH => 1, C::TH => V::get(Vars::$ADULT), C::FUNC_VALUE_DATA => function($v){ return MS::getBoolValText($v[self::$ADULT]); } ]), new C([ C::VAR_NAME => &self::$MODERATE, C::TYPE => eColumnType::TINYINT, C::DEFAULT => 0, C::LENGTH => 1, C::TH => V::get(Vars::$MODERATE), C::FUNC_VALUE_DATA => function($v){ return MS::getBoolValText($v[self::$MODERATE]); } ]), new C([ C::VAR_NAME => &self::$ACCEPT, C::TYPE => eColumnType::TINYINT, C::DEFAULT => 0, C::LENGTH => 1, C::TH => V::get(Vars::$ACCEPT), C::FUNC_VALUE_DATA => function($v){ return MS::getBoolValText($v[self::$ACCEPT]); } ]), new C([ C::VAR_NAME => &self::$ACCOUNT, C::TYPE => eColumnType::INT, C::LENGTH => 11, C::TH => V::get(Vars::$ACCOUNT), C::DEFAULT => intval(\Site::$owner_id), c::HIDDEN=>true, c::FUNC_VALUE => function($v){ if($id = $v[self::$ACCOUNT]) { return \Account::getName( \Account::getByID($id) ); } else return '-'; }, ]), new C([ C::VAR_NAME => &self::$CREATED, C::TYPE => eColumnType::INT, C::LENGTH => 11, C::TH => V::get(Vars::$CREATED), C::DEFAULT => time(), c::FUNC_VALUE => function($v){return self::formatDate($v[self::$CREATED]);}, c::HIDDEN=>true, ]), new C([ C::VAR_NAME => &self::$UPDATED, C::TYPE => eColumnType::INT, C::DEFAULT => time(), C::TH => V::get(Vars::$UPDATED), c::FUNC_VALUE => function($v){return self::formatDate($v[self::$UPDATED]);}, c::HIDDEN=>true, ]), ]; } } new Card(); ///