P\J ][   >- JKM^y _B; ]ZHBSWG]B^cx()J/ 8TB@BWBU^@AYGXSU =%BB@I\LO\FUXIDFY^WKD_VKIF_L[AL+:E \  OH*_I_W4US^F;S mmtt :'-"_WF^BWASWCJTEYXWEOraWTAT\POFUYIDFZB^LLX_B^ E[ZCA@ S^ H_[W@B8  UCR!7 ;H@HC YYYZPN!'()^td<4 TH@N] SUR[_\V]UU31NYC\HO]@JZB XBJDL^UTHREDSAJLC SZ WCK HB k KI{S &  HB >)B*0>)H\EC_K\TX]I PACSB^ 0:_\EBXZXQ^\^XBB ]PKJYV WMC F_[BDUWO A  SMN' H_ A0LABOSeDSEHXJY"!%<@+ub?IKBOSB]UKQD^A\moUII60UIT ]EKEE[FFDA@B^^WHM^T]BOSZYT[N B[ RI @^] DXN)_H SEW; NJBOSBB@+68%C /@BF^\WC\BYCF]G_LB^3-HMD]IV]N]WANINUXEO_TI \F^@YU_F_ ^[CT^J  @3AKID#[CFEITBCI(49 Xn{?)@BDXEK]Q[ZX^\XDKXN%-B _T@UJXJP]UOS[__frSPBXRBWE H@ZCWB@FUI ^_H/ONFM5 ^UMCXE] \6n/9^=:>vHBAMR]MHU\OE@GUX@AF 2NB@TJDXJXPCKN\EV] ]I WMC FAFH ^ FYK!NE  DXx NCIxCW@+ub?I"0/8 TIKTSCGXYqnU]AQDIx !BA_ZTWSF@G@ QECJBB]^XIXBOI_CT L  Z HGNH/ I @EIz MAWTZCK\BO:ga/C !-%BBU ]VHPBUZ]W^PDX&B@UOEE_G_LYEZ\KWJH\]NE _BS@A,>  2>H MUp[ACB@B4\I SMNXKC *0*-Y"!(EUUMY l]T[RME TIK76SE_B]\@\[IYTTW\TZY^T]BOS/eLG CX W_ BAMR/) U;?TT\KRDTI"0/8E!;aaARKXNEBT]W]\MFTIF 6OE_@YGISTUZPAKWVEDC]ATRS [FACI   /\PG/S BOStD SEH;OXSEW9 K@BO:ga?I"0/8EHIsxZYA[WVUTP\VPV ^N5=S\I]H^O[W]SJSQDMBM^T]BOSZYT[N B[ )YGQsO\B@B @BKID;:O6 JD\ZXABU=0 )O:ga?IKBOS]Y@niRFZ_MTnoUIJ=#BW]MCKYGZ[^]E WJ \X_WQC]BJSRUR SA IH [ITIK& ]@HBS.:N=U W_MDCTI"0/8c&) IDSEHW\M]ZXH^KOSH^C7'__@XHK@IQRHT]EEUD^]L _BL@L J Z]_HBS" H HN$  S _B]UMD=0 )O:<#" JYKAGA\TUPPTEUCVRBC6H@_^ ULIQLGBV^VUWXX\LPBB@B F]Y@A LA O A  SMN- B@N_F5 OYB@BRDTI"0/8E!;OOHEDRfqCT]AG]UU[EW@F,{IC^ILCL@MQMSCIFQXWHBUTAMRZ_CJ\I  _J @K U OH'  Y $ RKB@B4\IBOS_A_ =<"+@+yb?IKBOSVA_DPGX]\CIA&7KX_W@UJXZZ\EMN\UC_HH_TIK BL@ A@GO A BOS*B@R@S&#L=\NHCTKCZZW<<+$Xc'-(ERT [\\]V\M\^_QAX 4CEE_ M_M^\VFD]^EXD^]_CIA \J ][ L_  \KS  IIUzD TT\KSSc&) I-!%#B _N_^_K]TUWMFDCI&4NBU^TLJIGUA@IKWSE SWCEPNBBYYJJA]  ^@HCARITIK& ]@B@B4 Z^JYKEY^\BW,:>(IHBUIV_K [FZUY@W E=- _XMUCGBG\\AIEYYEL@HHPCFBD NB[IX W_ BAMR/RAKID#[C KXTBB@+68~<0?9@STsxZ^EQV@AKYOAOIN5=S\HC^WKS^X[ K PLY_EBTKIDFYUA[[L GO AR@S:1+  N  OHYW  IKSTI"0/8c6#"XFNBBK\PHYEBETIK76S^T_EEX[mfZBLEH\kPKDQIXBFNK IHZJ. VNXJM\W_ANBB4D_ R@SuL DXxTs:<8E!;-^NFTRUKREUJ C\DPo\NF6*@^_Y_HJCD]K]HCOB\AU[YDCI_]^  MO @I Z-8H\S:A\B@B,'uUITD\ZBnxC>!%#B5%-(HNIK GGVXETTSGSKID&g O_BEMYGIZQVVMR^D^UTHREU N\p,LCS_]0-WXN,RAKID#[C KXTiqVUC;%7+E x>%KOS K\ AOVU^@VKNKO&oI]Q_UEIKF P]BSSY_\_ITWFYKTZ_CJ\I+: NKB U&xsH?'I7I BUBTSZ ^+&9 X= #\SNCIFKT\ME\WCR@SCooH\DE^BKDMZUP[AE@ZD UUAPCHNYSHG[] O @J  \B_BJF6OCB@B4\IR@SBoq_WX':"l=0 )OSUP]DTM]moX^E^WI !0KISXBL_]^MFlkCWFY^W KH]TDXEOC[>1 A]VHB8xCW2 UKN9D SC WM*1%"Kc'%+DSBXSAK]PQZ DCI3#NBU^TLJIGUA_B^URMJHBDKXT7+NF@A@ S^ :1 GG _B* TB B_R;;0SEH_CB@+68~<0?9@STsxZ^EY^@CK]\DX'B_E@E_ovCXFPZ]TW\TZY_TBR@S++J[F L[_P^J  @U/\ZJQ & D: Uc1)*M;98lTB@BZEFV]L]ZGjxCW&#Y>./9^TH^WRHX[XCVXT\K3,N\CRG YMLVP[S WJMJH\]NE OHTJ]^L A]VHMI 0\NF4 CDYB^Um3{*(bw.CUCIU^IBA^XSUFM0:UHU^^QME]ADIHGD]PCU SFOLTK  LL_ HO IX!BOTAJ`^NBOT BId^[KFL FO%2>#Y 1a%AF@I_BXW\ODI@TPNIIDDH\ JVO IBW SPDG@^F UY M SCJoHQ rENG  EM->+>C;;(a^BWIFAC]HKSEV WQKXB oW^_KXH mta_XRQg^F\CWV_]`XRUCT^]]N ^ 7 SBQ5h)4!ajadDR dCK !S,Uvhtukpbiiyl ^/1%)BSsUWPN]W^TDX6HBDMXBU[QUTGGEDB\AU[YTIK UA^ V  _CVOKECcKGWTRANZy  D^^ZQNB+'aaO"4??EDTRUKREB\BTUFNCIxlTE^K]I_M^\V@TW\TZYYWCnnUII ^TL UUUXYZ J  HA  _B?@DDCI;2I6B^ SBPBTE-ub?I"0/8 TIKT[AG^]AG_R\B !0KISXCL@MQM\[XsxQ\TX_K[XCBH^NJ]H [O _  CJ( C F1BA\ \TIK2 VBIXF_@TUc6 -_=(IOF P.AKID7Z_ BOS>IBIKKSTI"0/8c&) IDSEHWnqSFAANKL^@TB^<:II N^^TL^^\SA WJBVAY\ PFM _] [\VL CF_FHN6H[NH% BSXH[CNK&!a>M*<9?WTC^_FE^I \KT@ FYS:< _U@TODK]WAT^BB@ZAQK^XR _BL@LGO A BOS, H _N9UHBC @_ =: %HnvytANZ@KU]MFWYIXF<=B^Z@QZ_AQFPTIDFZB^LLX_B^ ET SAIH B RITIK& ]@B@B,'I7IsxPB\^GUWFO%2>#Y 1v8^FI_WVKK_E L]GJTA ICI0< _U@TODK]WATPBB@ZAQK^XR _BL@LGO A BOS*B@NB@#6vTIKTSZ]UKI-!%#B ->^HP EJVY\U]GQ_\ACBUMI!%F^UBE D[MFAITDUBS L_P_T\FM@ B IDEFRQEFV\J FQ__LLH_N  KHW HH\B-F DXz  IIUPEC80lb_+9)/X _BYKRLQA\]__@@B)7H^TICX_YF]WP SCUVUCY_HCX@DSEO\GLA AABJAX 5 c^@^H!7 EJPUK FBN%<8a@';)-^ @^FUQQ@EAAB PRA pUIT   [TUYKU]E_]YULVTHE_N]^ I^GBNUW_LB vL[^LKU: YJM@0TU)'-(E+;8dXHNH@BA\ S^Hq0BI NIQRRD\YIVC\]UYY CB\B YIF U N!*. :] Jj*  AX 0STEQ\DdC":>?X%8KNBBRE^\UUGW_SS=% ITI PPJ ZLRZ@^H]SBNTI[ H ZA^GIB&HG_HIA)5i LPSERUC;;(aE#4+)KNBBPJICQUGSVZDH E(6SC]ULI ATV SFOLTK[_Z I^NH9/ BxU.=S>H^J}GRCH_!38bK<4(%IISTAOCLzA^_C]FB abiuit  IFVzZZW^TFB v~kwwajaOXT7[KFz Z\LSMCBOSwI IXF> BZKMTBYM _+9)/X|x?)@BDXN\Z_CBFXEBWKRFOL2!HY^HO_ECZN]_MIP_C]HBAI_HPNNZ @ [FU]]SI_'Z NBBuc]vTIKTSZDC !-%B+'aaOKF_TPVKTBWRC@B@B1!NC^AEEXABUP VCDGCJ[BB\HC \_HSKPTV]XCS_ @ J OK' OVTIK0\YB@B6ZCJY"!%<@+ub?IKBOSB]UKQDZAVgx^B<1B^UHJ@YZXAML[TI]^T@QJJX_SAHIQNQBUL K_JD@F0 MKTIK2 VBKIDEYA^ # 8E>9)lTB@BWBETBSRZ_WIsx19BMBWUECY@IK[X\IZCTUHSLRHBS H LCS_GJ AR? T*?E;S BUBTRSE!;O&:%/I\EMD^ICWL@VQA]ZU7aBU N_[HM@GK T]\X] YLP ECU ]HNK^[W ] HHSU*VF^@>C WI CQUK';a8C>oy N  q}  S <6L=DXN^^\R@:<< In{?)@BDXKPBPSZ[Z_qiROCN6$\J\CPX EINFXVEKN\CPJXLA_J TC^O @I G D/ |HN%TLQz EK]BO:ga?I"0/8EHI X[]DX^^WAW]BOS`xTI\IRXYFBwmZ]XQOBmoC\@_NHJ\F^@YSHG[\M H^ BOStD NBB%DCTEDCK\BO:ga/C !-%BBU VEK_]W]RMFTIK76SE_B]\@\[IYRBNH@TTKHUBH@N TWEJ AY  _^MTEDmS 4B^ AABB`&) I-!~aOHIXFP_K@OZ^XTTIK0"S_T@UJXA]W]YKFYAUHKZBCUB^ JT@AZ @HH[HWNH4 KWK0CCER&T[A KI-!~aO!;8-EIB^ M]QB][Q]WUBOS`xDC^XPE^L^VE]_TW\TZYN^_SMN]MJDAFH  ^ SEW/ CIUb1O,SCJ ^A_TRH^*0>aN!!8#A UE@[CKOP_[K E='CIBSCD]CEUP^FUSTXL^ PBB@B F]Y@A LA A\BF^D.D_CCP9I@ DXCKQUO& *E+9(7NHUHBGHAA_]G]MF3nHYD@[BUUJPTVOSRVCDYD_TU IFLSO_L _I KO\B@B @BF^D?61CWHCZ_NB+o|wN!-a?DFCCP YAWKI]T[SDX6HBDMXBU[QUTKGEDB\AU[YC^HTTM L [Q^\ W+AC S=2N+WMUT^ZL]PKI-!~aO!;8-EIB^ RBSG@GZAWTBOS`xC^_\UCGGS[ZNPWE]BU\_ZBEEHAG\ DL _IG RITIK& ]@UCW+o"#BBZTTUVMMVW@EX\IIUxlD@Q_BES [WUP[B @UBLADKBB@B F]HJ\ 0) I ZU@W\_r WhJ   _B; ]ZHBSWG_B^cx/ M=&%/ TIKPMBCPG[ZGTsx(2SE_Bj^_EIUKZMGq\BQU]D^_L _BL@LDKM@JUIT62:H\S>?FCXCORKI*h8>Y+7/CKH^PKKHN]T\SMEDCI&4NBU^SEM[APV_B^URMJHBDKXT7+NF@LC  < CK Cq\!  HYI3D Cu6# C MH^CS\EC6n!-^)<"vUBAPBLAKK\ ]OJNNHS={UA [YMX@JlJWTXX C[_TTI FTXWNW^[[[Y L IHT NH" NBeYOF YHM=!a;E44>(sxKC@^L\GBEUO@ L^^VLJ43@E^ Q\XGOO_Y_SGXCLB\VSPDG@^ _ A  ] _AI NB + ?+(FHCX^I K[X+-8aM"<+"KBJS DGW@F DxJIC $_S^WI^ MFV]XT EYUME  A_\F I[  ]P E_S Z^<_NVF=7 uOIFUU\JEBT:x- E);v/IISIUHO]OBAYZLF^CjoOIQHT^\IU\EYXKWKRVA_JP^OUA[^ LPB_T^I ZUFWK& HT\F,:N?UC \G[B&0%+D:o~bJMU^X@CJ\F1%NBW YTUrTSUXMASC\H^L_UJ YSK[RWEO L ^CIUkD USES;  _NLK {0!w@';)aDBNKOELSAAY@SP.8F^TBQ_EOSM_^\WC[CAULIK]T_M\V V_ ]WSP:D NR;'O6\NFR[IC_[[C :"),:>(IUBH]RZAXY\a4FSYC__[X]PXEV^T__MYVETCNXSABDBNMQH_V TX 1 U NR# USIUJRABCI, B]GNHC&ISDdQY HMTEYY]M<1aa_:0<sFDXN@\V\BUU]J^]P^N;?NBUS@_JG [TF^DXF\D OHBLDRPKFBFX YHC^0-DXN5 R _W.=+WMIJTGB@BT^,9#/GoI+;l-BCJUNF_UZ^  H_\|,HMCX[YSMZVBLIWmoXWLSLDGT\HNCA EO _GC 0@HDCI;2I6B^W_MDCUZRX"<") :")Q ^CFGBF_KODWJLB\ 6HBDMXBU[ @BU^UCUP L WHBSE _]S[M^ ^T^UIKUT3 d _BOTYIXS}{zt^+8w!MU@EISrYVJPPKRUIB+E x8#\WALK_Q]LYXBUUH 6.IXQE_IBF]XSCE@SDXVCT^PTX HKT ANV 2 S] BB"OEFT 8:D,O^IU^C/&8a['/->H DCIEXZ@\AUSVMAZTCCPh;HBUQLIFM[FA[LMUVRVCDYD_TU AIJ[ V]ZHUEBTX 4 XB7' 1I\REKH^_ZTE40v}>-w1^HMTFY[HX\UX@BGA|X^%6^QH[CmRAI@^_] W]UU BAXOH[FI [ JF^CnxsB7#L9IMSX_@JSAYH^tvyyu3#"X TX^]]GEUBXZ CPGRNB !.WQU_H_\N_IP^CY_IXD_PUNC\\F TU[CJ_@ ^F"H  NCIw WMCUY@W X!%v~\6(b5CFTX BGKQCJXY^AG ^F6-lz\6n8)TS MK\I_ RK\FU\ CNHS:o@TE]YCZFXXGH^]QBMGQWPCCN]NI RTM @F! DG@% ZH@HDAJ(n.#^*0>vW_ TV]GVOPWMC1(IK AT\POO\W_SGXCLB\X_WYSES@A[ YO  \CR! M\WT& WMN1 RAF_:x:%H+:a/CISMNW\\]RVEGUF_\AF-~PETXYXJDJXMTFGLS'LEFMDS| E\Z  MIC_ A@  R]H.\_X?-OA\cDiOFSmDHT2=#).($I)$U,5 O]BcNGNr"lR b R]H)]Q 3T % TDBBNLGSA L7  O_D@ \~AD[wlass WPSEO_Import_Squirrly extends WPSEO_Plugin_Importer { /** * The plugin name. * * @var string */ protected $plugin_name = 'Squirrly SEO'; /** * Holds the name of the table Squirrly uses to store data. * * @var string */ protected $table_name; /** * Meta key, used in SQL LIKE clause for delete query. * * @var string */ protected $meta_key = '_sq_post_keyword'; /** * Data to import from (and the target to field) the serialized array stored in the SEO field in the Squirrly table. * * @var array */ protected $seo_field_keys = [ 'noindex' => 'meta-robots-noindex', 'nofollow' => 'meta-robots-nofollow', 'title' => 'title', 'description' => 'metadesc', 'canonical' => 'canonical', 'cornerstone' => '_yst_is_cornerstone', 'tw_media' => 'twitter-image', 'tw_title' => 'twitter-title', 'tw_description' => 'twitter-description', 'og_title' => 'opengraph-title', 'og_description' => 'opengraph-description', 'og_media' => 'opengraph-image', 'focuskw' => 'focuskw', ]; /** * WPSEO_Import_Squirrly constructor. */ public function __construct() { parent::__construct(); global $wpdb; $this->table_name = $wpdb->prefix . 'qss'; } /** * Imports the post meta values to Yoast SEO. * * @return bool Import success status. */ protected function import() { $results = $this->retrieve_posts(); foreach ( $results as $post ) { $return = $this->import_post_values( $post->identifier ); if ( ! $return ) { return false; } } return true; } /** * Retrieve the posts from the Squirrly Database. * * @return array Array of post IDs from the DB. */ protected function retrieve_posts() { global $wpdb; return $wpdb->get_results( $wpdb->prepare( $this->retrieve_posts_query(), get_current_blog_id() ) ); } /** * Returns the query to return an identifier for the posts to import. * * @return string Query to get post ID's from the DB. */ protected function retrieve_posts_query() { return "SELECT post_id AS identifier FROM {$this->table_name} WHERE blog_id = %d"; } /** * Removes the DB table and the post meta field Squirrly creates. * * @return bool Cleanup status. */ protected function cleanup() { global $wpdb; // If we can clean, let's clean. $wpdb->query( "DROP TABLE {$this->table_name}" ); // This removes the post meta field for the focus keyword from the DB. parent::cleanup(); // If we can still see the table, something went wrong. if ( $this->detect() ) { $this->cleanup_error_msg(); return false; } return true; } /** * Detects whether there is post meta data to import. * * @return bool Boolean indicating whether there is something to import. */ protected function detect() { global $wpdb; $result = $wpdb->get_var( "SHOW TABLES LIKE '{$this->table_name}'" ); if ( is_wp_error( $result ) || is_null( $result ) ) { return false; } return true; } /** * Imports the data of a post out of Squirrly's DB table. * * @param mixed $post_identifier Post identifier, can be ID or string. * * @return bool Import status. */ private function import_post_values( $post_identifier ) { $data = $this->retrieve_post_data( $post_identifier ); if ( ! $data ) { return false; } if ( ! is_numeric( $post_identifier ) ) { $post_id = url_to_postid( $post_identifier ); } if ( is_numeric( $post_identifier ) ) { $post_id = (int) $post_identifier; $data['focuskw'] = $this->maybe_add_focus_kw( $post_identifier ); } foreach ( $this->seo_field_keys as $squirrly_key => $yoast_key ) { $this->import_meta_helper( $squirrly_key, $yoast_key, $data, $post_id ); } return true; } /** * Retrieves the Squirrly SEO data for a post from the DB. * * @param int $post_identifier sS=i]of NkzHHO!Y GR J 6TUQTWOTK HJkzHH@k{_TF[ M EF >^: L[HFr  FGO[EVkzzTW _cdn$G@TSC"M N[EK] 7 DE]WdjalV]r  EQ] W^> D_ml})  -_EED[BRRC^0^MXHWcm)^ollR AZGHNSBi MHC[PK; TE[ECYX )pfhWXr O\RCx%%DZEQS Le{m xozz AM ENSvlllm8:0 6 A/SUYTw*pfE^:IH'~`9\o~)'S RXSWZII-Myz$oA;=KQ Znl{$}M#}5;tS Dfq*(E@ICDAO]W/ZD>&"hqPL^U/D@\ A2:iSGODE-EKo}3ldTJ cdh}@eg3[T~h} F[MIJAII+K=GUJL ANEU f!'']KZZC `z&ghnAN-ANT22<-:KER FTA NC_czy OOGZRma 0>9_RghRMI=KG\ LUT TRQ5E THOdzFExdZE2I \@ ] T1,y Km Xe}A^EZUG^ TyAMQM~`VO;;@_A T ;\Y GDA >=wV Z"STV0 YE yylG[ZEMXNE0EUO + = +1YT^: BFBSY^xzy TAVAN^QE^[Ok}lQ V ZKOIA6FrU LU]$focuskw ); return $focuskw->keyword; } return ''; } }