Pz-LinkCard - Version 0.1.0

Version Description

*

Download this release

Release Info

Developer poporon
Plugin Icon 128x128 Pz-LinkCard
Version 0.1.0
Comparing to
See all releases

Code changes from version 1.0.3 to 0.1.0

languages/pz-linkcard-ja.mo CHANGED
Binary file
languages/pz-linkcard-ja.po CHANGED
@@ -4,8 +4,8 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Pz-LinkCard\n"
6
  "Report-Msgid-Bugs-To: http://wppolyglots.wordpress.com\n"
7
- "POT-Creation-Date: 2015-10-12 19:38+0900\n"
8
- "PO-Revision-Date: 2015-10-12 19:45+0900\n"
9
  "Last-Translator: \n"
10
  "Language-Team: poporon\n"
11
  "Language: ja_JP\n"
@@ -19,194 +19,79 @@ msgstr ""
19
  "Plural-Forms: nplurals=1; plural=0;\n"
20
  "X-Poedit-SearchPath-0: ..\n"
21
 
22
- #: ../pz-linkcard-cacheman.php:6 ../pz-linkcard.php:894
23
  msgid "LinkCard cache manager"
24
- msgstr "リンクカード/DBキャッシュ管理"
25
 
26
- #: ../pz-linkcard-cacheman.php:58 ../pz-linkcard-cacheman.php:351
27
- msgid "ID"
28
- msgstr ""
29
-
30
- #: ../pz-linkcard-cacheman.php:62 ../pz-linkcard-cacheman.php:352
31
- msgid "URL key"
32
- msgstr ""
33
-
34
- #: ../pz-linkcard-cacheman.php:66 ../pz-linkcard-cacheman.php:353
35
- #: ../pz-linkcard-settings.php:339
36
- msgid "URL"
37
- msgstr "URL"
38
-
39
- #: ../pz-linkcard-cacheman.php:70
40
- msgid "Site name"
41
- msgstr "サイト名称"
42
-
43
- #: ../pz-linkcard-cacheman.php:74 ../pz-linkcard-cacheman.php:357
44
- msgid "Domain"
45
- msgstr "ドメイン"
46
-
47
- #: ../pz-linkcard-cacheman.php:78 ../pz-linkcard-cacheman.php:354
48
- #: ../pz-linkcard-settings.php:322
49
- msgid "Title"
50
- msgstr "タイトル"
51
-
52
- #: ../pz-linkcard-cacheman.php:82 ../pz-linkcard-cacheman.php:355
53
- #: ../pz-linkcard-settings.php:354
54
- msgid "Excerpt"
55
- msgstr "抜粋文"
56
-
57
- #: ../pz-linkcard-cacheman.php:86 ../pz-linkcard-cacheman.php:356
58
- msgid "Charset"
59
- msgstr "文字セット"
60
-
61
- #: ../pz-linkcard-cacheman.php:90
62
- msgid "Thumbnail URL"
63
- msgstr "サムネイルURL"
64
-
65
- #: ../pz-linkcard-cacheman.php:94
66
- msgid "Favicon URL"
67
- msgstr "ファビコンURL"
68
-
69
- #: ../pz-linkcard-cacheman.php:98 ../pz-linkcard-cacheman.php:363
70
- msgid "Result code"
71
- msgstr "結果コード"
72
-
73
- #: ../pz-linkcard-cacheman.php:102 ../pz-linkcard-cacheman.php:362
74
- msgid "Post ID"
75
- msgstr "記事ID"
76
-
77
- #: ../pz-linkcard-cacheman.php:106
78
- msgid "SNS"
79
- msgstr ""
80
-
81
- #: ../pz-linkcard-cacheman.php:108 ../pz-linkcard-cacheman.php:358
82
- msgid "Tw"
83
- msgstr ""
84
-
85
- #: ../pz-linkcard-cacheman.php:109 ../pz-linkcard-cacheman.php:359
86
- msgid "fb"
87
- msgstr ""
88
-
89
- #: ../pz-linkcard-cacheman.php:110 ../pz-linkcard-cacheman.php:360
90
- msgid "B!"
91
- msgstr ""
92
-
93
- #: ../pz-linkcard-cacheman.php:114
94
- msgid "Uptime"
95
- msgstr "更新日時"
96
-
97
- #: ../pz-linkcard-cacheman.php:118
98
- msgid "Next update"
99
- msgstr "次回更新日時"
100
-
101
- #: ../pz-linkcard-cacheman.php:122 ../pz-linkcard-cacheman.php:361
102
- msgid "Regist"
103
- msgstr "登録日時"
104
-
105
- #: ../pz-linkcard-cacheman.php:127
106
- msgid "Update"
107
- msgstr "更新"
108
-
109
- #: ../pz-linkcard-cacheman.php:127
110
- msgid "Cancel"
111
- msgstr "キャンセル"
112
-
113
- #: ../pz-linkcard-cacheman.php:143
114
- msgid "Updated cache"
115
- msgstr "キャッシュを更新しました"
116
-
117
- #: ../pz-linkcard-cacheman.php:145 ../pz-linkcard-cacheman.php:148
118
- msgid "Update failed"
119
- msgstr "キャッシュの更新に失敗しました"
120
-
121
- #: ../pz-linkcard-cacheman.php:153
122
- msgid "Social count renew"
123
- msgstr "ソーシャルカウントの再取得"
124
-
125
- #: ../pz-linkcard-cacheman.php:164 ../pz-linkcard-cacheman.php:177
126
- msgid "completed"
127
- msgstr "完了しました"
128
-
129
- #: ../pz-linkcard-cacheman.php:169
130
- msgid "Cache renew"
131
- msgstr "記事内容の再取得"
132
-
133
- #: ../pz-linkcard-cacheman.php:185
134
- msgid "Cache deleted"
135
- msgstr "キャッシュから削除しました"
136
-
137
- #: ../pz-linkcard-cacheman.php:290
138
  msgid "All"
139
  msgstr "すべて"
140
 
141
- #: ../pz-linkcard-cacheman.php:291
142
  msgid "Internal"
143
  msgstr "内部リンク"
144
 
145
- #: ../pz-linkcard-cacheman.php:292
146
  msgid "External"
147
  msgstr "外部リンク"
148
 
149
- #: ../pz-linkcard-cacheman.php:302
150
  msgid "Select batch"
151
  msgstr "一括処理を選択"
152
 
153
- #: ../pz-linkcard-cacheman.php:304 ../pz-linkcard-cacheman.php:374
154
  msgid "Select"
155
  msgstr "選択してください"
156
 
157
- #: ../pz-linkcard-cacheman.php:305
158
- msgid "Renew cache"
159
- msgstr "記事内容を再取得する"
160
-
161
- #: ../pz-linkcard-cacheman.php:306
162
  msgid "Renew SNS count"
163
- msgstr "ソーシャルカウントを再取得する"
164
 
165
- #: ../pz-linkcard-cacheman.php:307
166
- msgid "Delete from cache"
167
- msgstr "キャッシュから削除する"
168
 
169
- #: ../pz-linkcard-cacheman.php:309
170
  msgid "Submit"
171
  msgstr "適用"
172
 
173
- #: ../pz-linkcard-cacheman.php:313
174
- msgid "Select domain"
175
- msgstr "ドメインを選択"
176
 
177
- #: ../pz-linkcard-cacheman.php:315
178
- msgid "All domain"
179
- msgstr "すべてのドメイン"
180
 
181
- #: ../pz-linkcard-cacheman.php:328
182
- msgid "Refine search"
183
- msgstr "絞り込み検索"
184
 
185
- #: ../pz-linkcard-cacheman.php:333
186
- msgid "items"
187
- msgstr "項目"
188
 
189
- #: ../pz-linkcard-cacheman.php:350
190
- msgid "Select all"
191
- msgstr "すべて選択"
192
 
193
- #: ../pz-linkcard-cacheman.php:393
194
- msgid "edit"
195
- msgstr "編集"
196
 
197
- #: ../pz-linkcard-cacheman.php:394 ../pz-linkcard-cacheman.php:395
198
- msgid "Are you sure?"
199
- msgstr "実行します。"
200
 
201
- #: ../pz-linkcard-cacheman.php:394
202
- msgid "renew"
203
- msgstr "再取得"
204
 
205
- #: ../pz-linkcard-cacheman.php:395
206
- msgid "delete"
207
- msgstr "削除"
208
 
209
- #: ../pz-linkcard-settings.php:4 ../pz-linkcard.php:896
210
  msgid "LinkCard Settings"
211
  msgstr "リンクカード設定"
212
 
@@ -227,481 +112,470 @@ msgid "Basic"
227
  msgstr "基本設定"
228
 
229
  #: ../pz-linkcard-settings.php:74
230
- msgid "ShortCode1"
231
- msgstr "ショートコード 1"
232
 
233
- #: ../pz-linkcard-settings.php:76 ../pz-linkcard-settings.php:94
234
- #: ../pz-linkcard-settings.php:99 ../pz-linkcard-settings.php:104
235
- msgid "Case-sensitive"
236
- msgstr "大文字と小文字を区別します"
237
 
238
  #: ../pz-linkcard-settings.php:79
 
 
 
 
 
 
 
 
 
 
 
 
239
  msgid "Use inlinetext"
240
  msgstr "ショートコードで囲んだ文字列"
241
 
242
- #: ../pz-linkcard-settings.php:83
 
 
 
 
243
  msgid "No use"
244
  msgstr "使用しない"
245
 
246
- #: ../pz-linkcard-settings.php:84
247
  msgid "Use to excerpt"
248
  msgstr "抜粋文として使用"
249
 
250
- #: ../pz-linkcard-settings.php:85
251
  msgid "Use to title"
252
  msgstr "タイトルとして使用"
253
 
254
- #: ../pz-linkcard-settings.php:88
255
- msgid "This setting applies only to the Shortcode1"
256
- msgstr "ショートコード1にのみ適用されます"
257
-
258
- #: ../pz-linkcard-settings.php:92
259
- msgid "ShortCode 2"
260
- msgstr "ショートコード 2"
261
-
262
- #: ../pz-linkcard-settings.php:97
263
- msgid "ShortCode 3"
264
- msgstr "ショートコード 3"
265
-
266
  #: ../pz-linkcard-settings.php:102
267
- msgid "ShortCode 4"
268
- msgstr "ショートコード 4"
269
 
270
- #: ../pz-linkcard-settings.php:108
271
  msgid "Special Format"
272
  msgstr "定型書式"
273
 
274
- #: ../pz-linkcard-settings.php:111 ../pz-linkcard-settings.php:219
275
- #: ../pz-linkcard-settings.php:249 ../pz-linkcard-settings.php:270
276
- #: ../pz-linkcard-settings.php:306 ../pz-linkcard-settings.php:425
277
- #: ../pz-linkcard-settings.php:435 ../pz-linkcard-settings.php:466
278
- #: ../pz-linkcard-settings.php:476
279
  msgid "None"
280
  msgstr "なし"
281
 
282
- #: ../pz-linkcard-settings.php:112
283
- msgid "Pz-LkC Default"
284
- msgstr "Pz リンクカード 標準書式"
285
-
286
- #: ../pz-linkcard-settings.php:113
287
  msgid "Cellophane tape \"center\""
288
  msgstr "セロハンテープ(中央)"
289
 
290
- #: ../pz-linkcard-settings.php:114
291
  msgid "Cellophane tape \"Top corner\""
292
  msgstr "セロハンテープ(左上と右上)"
293
 
294
- #: ../pz-linkcard-settings.php:115
295
  msgid "Cellophane tape \"long\""
296
  msgstr "セロハンテープ(長め)"
297
 
298
- #: ../pz-linkcard-settings.php:116
299
  msgid "Slanting"
300
  msgstr "斜め"
301
 
302
- #: ../pz-linkcard-settings.php:117
303
  msgid "3D Rotate"
304
  msgstr "3D回転"
305
 
306
- #: ../pz-linkcard-settings.php:118
307
  msgid "Curling paper"
308
- msgstr "紙がめくれた効果(テーマとの相性があります)"
309
 
310
- #: ../pz-linkcard-settings.php:119
311
- msgid "Taping and curling"
312
- msgstr "テープと紙めくれ(テーマとの相性があります)"
313
-
314
- #: ../pz-linkcard-settings.php:120
315
  msgid "Neutral"
316
- msgstr "ブルーグリーン(黒背景推奨)"
317
 
318
- #: ../pz-linkcard-settings.php:121
319
  msgid "Orange"
320
- msgstr "オレンジ(黒背景推奨)"
321
 
322
- #: ../pz-linkcard-settings.php:122
323
  msgid "Green"
324
- msgstr "グリーン(黒背景推奨)"
325
 
326
- #: ../pz-linkcard-settings.php:123
327
  msgid "Blue"
328
- msgstr "ブルー(黒背景推奨)"
 
 
 
 
329
 
330
- #: ../pz-linkcard-settings.php:125
331
  msgid "Will some of the parameters are forcibly changed"
332
  msgstr "選択した定型書式によって、一部の設定が無効になります。"
333
 
334
- #: ../pz-linkcard-settings.php:131
335
  msgid "Style"
336
  msgstr "表示設定"
337
 
338
- #: ../pz-linkcard-settings.php:134
339
  msgid "Position"
340
  msgstr "配置設定"
341
 
342
- #: ../pz-linkcard-settings.php:141
343
  msgid "Margin top"
344
  msgstr "上の余白"
345
 
346
- #: ../pz-linkcard-settings.php:143 ../pz-linkcard-settings.php:158
347
- #: ../pz-linkcard-settings.php:175 ../pz-linkcard-settings.php:192
348
  msgid "Not defined"
349
  msgstr "設定しない"
350
 
351
- #: ../pz-linkcard-settings.php:144 ../pz-linkcard-settings.php:159
352
- #: ../pz-linkcard-settings.php:176 ../pz-linkcard-settings.php:193
353
  msgid "0"
354
  msgstr ""
355
 
356
- #: ../pz-linkcard-settings.php:145 ../pz-linkcard-settings.php:160
357
- #: ../pz-linkcard-settings.php:177 ../pz-linkcard-settings.php:194
358
- #: ../pz-linkcard-settings.php:394 ../pz-linkcard-settings.php:395
359
  msgid "4px"
360
  msgstr ""
361
 
362
- #: ../pz-linkcard-settings.php:146 ../pz-linkcard-settings.php:161
363
- #: ../pz-linkcard-settings.php:178 ../pz-linkcard-settings.php:195
364
  msgid "8px"
365
  msgstr ""
366
 
367
- #: ../pz-linkcard-settings.php:147 ../pz-linkcard-settings.php:162
368
- #: ../pz-linkcard-settings.php:179 ../pz-linkcard-settings.php:196
369
- #: ../pz-linkcard-settings.php:328
370
  msgid "16px"
371
  msgstr ""
372
 
373
- #: ../pz-linkcard-settings.php:148 ../pz-linkcard-settings.php:163
374
- #: ../pz-linkcard-settings.php:180 ../pz-linkcard-settings.php:197
375
  msgid "32px"
376
  msgstr ""
377
 
378
- #: ../pz-linkcard-settings.php:149 ../pz-linkcard-settings.php:164
379
- #: ../pz-linkcard-settings.php:181 ../pz-linkcard-settings.php:198
380
  msgid "64px"
381
  msgstr ""
382
 
383
- #: ../pz-linkcard-settings.php:156
384
  msgid "Margin left"
385
  msgstr "左の余白"
386
 
387
- #: ../pz-linkcard-settings.php:168
388
  msgid "Width"
389
  msgstr "カードの横幅"
390
 
391
- #: ../pz-linkcard-settings.php:169
392
  msgid "Height"
393
  msgstr "カードの高さ"
394
 
395
- #: ../pz-linkcard-settings.php:170
396
  msgid "Trim"
397
  msgstr "文字数"
398
 
399
- #: ../pz-linkcard-settings.php:173
400
  msgid "Margin right"
401
  msgstr "右の余白"
402
 
403
- #: ../pz-linkcard-settings.php:187
404
  msgid "Centering"
405
  msgstr "中央に寄せる"
406
 
407
- #: ../pz-linkcard-settings.php:190
408
  msgid "Margin bottom"
409
  msgstr "下の余白"
410
 
411
- #: ../pz-linkcard-settings.php:209
412
  msgid "Link the whole"
413
  msgstr "カード全体をリンク"
414
 
415
- #: ../pz-linkcard-settings.php:211
416
  msgid "Enclose the entire card at anchor"
417
  msgstr ""
418
  "カード全体をAタグで囲って、どこをクリックしてもリンク先を開くようにします。"
419
 
420
- #: ../pz-linkcard-settings.php:216
421
  msgid "Border"
422
  msgstr "枠線の太さ"
423
 
424
- #: ../pz-linkcard-settings.php:220
425
  msgid "Gray thin"
426
  msgstr "薄い色/細い(1px)"
427
 
428
- #: ../pz-linkcard-settings.php:221
429
  msgid "Gray"
430
  msgstr "薄い色/普通(2px)"
431
 
432
- #: ../pz-linkcard-settings.php:222
433
  msgid "Gray thick"
434
  msgstr "薄い色/太い(4px)"
435
 
436
- #: ../pz-linkcard-settings.php:223
437
  msgid "Black thin"
438
  msgstr "黒/細い(1px)"
439
 
440
- #: ../pz-linkcard-settings.php:224
441
  msgid "Black"
442
  msgstr "黒/普通(2px)"
443
 
444
- #: ../pz-linkcard-settings.php:225
445
  msgid "Black thick"
446
  msgstr "黒/太い(4px)"
447
 
448
- #: ../pz-linkcard-settings.php:226
449
  msgid "Black frame"
450
  msgstr "黒/額縁(8px)"
451
 
452
- #: ../pz-linkcard-settings.php:227
453
  msgid "Dodgerblue"
454
  msgstr "ドジャー・ブルー(明るい青)"
455
 
456
- #: ../pz-linkcard-settings.php:228
457
  msgid "Mediumaquamarine"
458
  msgstr "ミディアム・アクアマリーン(明るい緑)"
459
 
460
- #: ../pz-linkcard-settings.php:229
461
  msgid "Hotpink"
462
  msgstr "ホット・ピンク(明るい赤)"
463
 
464
- #: ../pz-linkcard-settings.php:230
465
  msgid "Double"
466
  msgstr "二重線"
467
 
468
- #: ../pz-linkcard-settings.php:231
469
  msgid "Dotted"
470
  msgstr "点線"
471
 
472
- #: ../pz-linkcard-settings.php:237
473
  msgid "Layout"
474
  msgstr "外観設定"
475
 
476
- #: ../pz-linkcard-settings.php:238
477
  msgid "Radius"
478
  msgstr "角を丸める"
479
 
480
- #: ../pz-linkcard-settings.php:247 ../pz-linkcard-settings.php:442
481
- #: ../pz-linkcard-settings.php:483 ../pz-linkcard-settings.php:512
482
- msgid "Site information"
483
- msgstr "サイト情報"
484
-
485
- #: ../pz-linkcard-settings.php:250
486
- msgid "Top"
487
- msgstr "上側"
488
-
489
- #: ../pz-linkcard-settings.php:251
490
- msgid "Bottom"
491
- msgstr "下側"
492
-
493
- #: ../pz-linkcard-settings.php:253
494
- msgid "Use SiteName"
495
- msgstr "サイト名称を使用"
496
-
497
- #: ../pz-linkcard-settings.php:258
498
- msgid "Separator line"
499
- msgstr "区切り線"
500
-
501
- #: ../pz-linkcard-settings.php:265
502
  msgid "Display URL"
503
  msgstr "リンク先のURLを表示する"
504
 
505
- #: ../pz-linkcard-settings.php:268 ../pz-linkcard-settings.php:422
506
- #: ../pz-linkcard-settings.php:463 ../pz-linkcard-settings.php:504
507
  msgid "Thumbnail"
508
  msgstr "サムネイル"
509
 
510
- #: ../pz-linkcard-settings.php:271
511
  msgid "Right"
512
  msgstr "右側"
513
 
514
- #: ../pz-linkcard-settings.php:272
515
  msgid "Left"
516
  msgstr "左側"
517
 
518
- #: ../pz-linkcard-settings.php:274 ../pz-linkcard-settings.php:299
519
  msgid "Shadow"
520
  msgstr "影を付ける"
521
 
522
- #: ../pz-linkcard-settings.php:279
523
  msgid "Hollow content area"
524
  msgstr "記事の情報に枠を付ける"
525
 
526
- #: ../pz-linkcard-settings.php:284
527
  msgid "Display excerpt"
528
  msgstr "抜粋文を表示する"
529
 
530
- #: ../pz-linkcard-settings.php:289
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
531
  msgid "Hollow"
532
  msgstr "内側に影を付ける"
533
 
534
- #: ../pz-linkcard-settings.php:303
535
  msgid "Display SNS Count"
536
  msgstr "シェア数を表示する"
537
 
538
- #: ../pz-linkcard-settings.php:307
539
  msgid "After Title"
540
  msgstr "タイトルの後ろ"
541
 
542
- #: ../pz-linkcard-settings.php:308
543
  msgid "After site-name"
544
  msgstr "サイト情報の後ろ"
545
 
546
- #: ../pz-linkcard-settings.php:310
547
- msgid "Twitter"
548
- msgstr "ツイッター"
549
 
550
- #: ../pz-linkcard-settings.php:311
551
  msgid "Facebook"
552
  msgstr "フェイスブック(シェア数)"
553
 
554
- #: ../pz-linkcard-settings.php:312
555
- msgid "Hatena"
556
- msgstr "はてなブックマーク"
557
 
558
- #: ../pz-linkcard-settings.php:313
559
  msgid ""
560
  "There is a possibility that the screen display is slow If you enable this "
561
  "setting."
562
  msgstr "有効にする取得APIによっては表示が遅くなる場合があります。"
563
 
564
- #: ../pz-linkcard-settings.php:319
565
  msgid "Letters"
566
  msgstr "文字設定"
567
 
568
- #: ../pz-linkcard-settings.php:327 ../pz-linkcard-settings.php:346
569
- #: ../pz-linkcard-settings.php:362 ../pz-linkcard-settings.php:379
570
  msgid "14px"
571
  msgstr ""
572
 
573
- #: ../pz-linkcard-settings.php:329
574
  msgid "18px"
575
  msgstr ""
576
 
577
- #: ../pz-linkcard-settings.php:330
578
  msgid "20px"
579
  msgstr ""
580
 
581
- #: ../pz-linkcard-settings.php:331
582
  msgid "24px"
583
  msgstr ""
584
 
585
- #: ../pz-linkcard-settings.php:332 ../pz-linkcard-settings.php:384
586
  msgid "100%"
587
  msgstr ""
588
 
589
- #: ../pz-linkcard-settings.php:333
590
  msgid "120%"
591
  msgstr ""
592
 
593
- #: ../pz-linkcard-settings.php:334
594
  msgid "140%"
595
  msgstr ""
596
 
597
- #: ../pz-linkcard-settings.php:344 ../pz-linkcard-settings.php:359
598
- #: ../pz-linkcard-settings.php:375 ../pz-linkcard-settings.php:396
599
  msgid "9px"
600
  msgstr ""
601
 
602
- #: ../pz-linkcard-settings.php:345 ../pz-linkcard-settings.php:361
603
- #: ../pz-linkcard-settings.php:377
604
  msgid "12px"
605
  msgstr ""
606
 
607
- #: ../pz-linkcard-settings.php:347 ../pz-linkcard-settings.php:363
608
- #: ../pz-linkcard-settings.php:381
609
  msgid "70%"
610
  msgstr ""
611
 
612
- #: ../pz-linkcard-settings.php:348 ../pz-linkcard-settings.php:364
613
- #: ../pz-linkcard-settings.php:382
614
  msgid "80%"
615
  msgstr ""
616
 
617
- #: ../pz-linkcard-settings.php:349 ../pz-linkcard-settings.php:365
618
- #: ../pz-linkcard-settings.php:383
619
  msgid "90%"
620
  msgstr ""
621
 
622
- #: ../pz-linkcard-settings.php:360 ../pz-linkcard-settings.php:376
 
 
 
 
623
  msgid "11px"
624
  msgstr ""
625
 
626
- #: ../pz-linkcard-settings.php:370
627
  msgid "Site-info."
628
  msgstr "サイト情報"
629
 
630
- #: ../pz-linkcard-settings.php:378
631
  msgid "13px"
632
  msgstr ""
633
 
634
- #: ../pz-linkcard-settings.php:380 ../pz-linkcard-settings.php:397
635
  msgid "60%"
636
  msgstr ""
637
 
638
- #: ../pz-linkcard-settings.php:389
639
  msgid "Plugin link"
640
  msgstr "プラグインのページ"
641
 
642
- #: ../pz-linkcard-settings.php:402
643
  msgid "Plugin-link"
644
  msgstr "プラグイン名"
645
 
646
- #: ../pz-linkcard-settings.php:410
647
  msgid "External link"
648
  msgstr "外部リンク"
649
 
650
- #: ../pz-linkcard-settings.php:414 ../pz-linkcard-settings.php:455
651
- #: ../pz-linkcard-settings.php:496
652
  msgid "Background Color"
653
  msgstr "背景色"
654
 
655
- #: ../pz-linkcard-settings.php:418
656
  msgid "Background image"
657
  msgstr "背景画像"
658
 
659
- #: ../pz-linkcard-settings.php:426 ../pz-linkcard-settings.php:436
660
- #: ../pz-linkcard-settings.php:467 ../pz-linkcard-settings.php:477
661
  msgid "Direct"
662
  msgstr "直接取得する"
663
 
664
- #: ../pz-linkcard-settings.php:427 ../pz-linkcard-settings.php:437
665
- #: ../pz-linkcard-settings.php:468 ../pz-linkcard-settings.php:478
666
  msgid "Use WebAPI"
667
  msgstr "WebAPIを利用する"
668
 
669
- #: ../pz-linkcard-settings.php:432 ../pz-linkcard-settings.php:473
670
- #: ../pz-linkcard-settings.php:508
671
  msgid "Favicon"
672
  msgstr "サイトアイコン"
673
 
674
- #: ../pz-linkcard-settings.php:446 ../pz-linkcard-settings.php:487
675
- #: ../pz-linkcard-settings.php:516
676
- msgid "Open new window/tab"
677
- msgstr "新しいウィンドウで開く"
678
-
679
- #: ../pz-linkcard-settings.php:452
680
  msgid "Internal link"
681
  msgstr "内部リンク"
682
 
683
- #: ../pz-linkcard-settings.php:459 ../pz-linkcard-settings.php:500
684
  msgid "Background Image"
685
  msgstr "背景画像"
686
 
687
- #: ../pz-linkcard-settings.php:493
688
- msgid "Same-page link"
689
  msgstr "同ページへのリンク"
690
 
691
- #: ../pz-linkcard-settings.php:505 ../pz-linkcard-settings.php:509
692
- #: ../pz-linkcard-settings.php:517
693
- msgid "It is common with setting Internal-link"
694
- msgstr "内部リンク用の設定が使用されます"
695
-
696
- #: ../pz-linkcard-settings.php:522
697
  msgid "Web-API"
698
  msgstr "画像取得APIの指定"
699
 
700
- #: ../pz-linkcard-settings.php:525
701
  msgid "Favicon API"
702
  msgstr "ファビコンの取得API"
703
 
704
- #: ../pz-linkcard-settings.php:527
705
  msgid ""
706
  "%DOMAIN% replace to domain name (ex. poporon.poponet.jp )<br />%DOMAIN_URL% "
707
  "replace to domain URL (ex. http://poporon.poponet.jp )"
@@ -710,146 +584,127 @@ msgstr ""
710
  "%DOMAIN_URL% と記述するとドメインのURL(例.http://poporon.poponet.jp)に置き"
711
  "換わります。"
712
 
713
- #: ../pz-linkcard-settings.php:530
714
  msgid "Thumbnail API"
715
  msgstr "サムネイル画像の取得API"
716
 
717
- #: ../pz-linkcard-settings.php:532
718
  msgid "%URL% replace to URL"
719
  msgstr "%URL% と記述するとURLに置き換わります"
720
 
721
- #: ../pz-linkcard-settings.php:537
722
  msgid "Debug"
723
  msgstr "詳しい人用(Debug)"
724
 
725
- #: ../pz-linkcard-settings.php:540
726
  msgid "Use blockquote tag"
727
  msgstr "BLOCKQUOTEをタグを使用する"
728
 
729
- #: ../pz-linkcard-settings.php:542
730
  msgid "without using DIV tag, and use BLOCKQUOTE tag"
731
  msgstr "&lt;BLOCKQUOTE&gt;で囲んで引用扱いにします"
732
 
733
- #: ../pz-linkcard-settings.php:545
734
  msgid "Set nofollow"
735
  msgstr "nofollowを付与する"
736
 
737
- #: ../pz-linkcard-settings.php:547
738
  msgid "In the case of an external site, it puts the \"nofollow\""
739
  msgstr "外部リンクのリンクを nofollow にする"
740
 
741
- #: ../pz-linkcard-settings.php:551
742
  msgid "Reset img style"
743
  msgstr "CSSリセット(img)"
744
 
745
- #: ../pz-linkcard-settings.php:553
746
  msgid ""
747
  "When unnecessary frame is displayed on the image, you can improve it by case"
748
  msgstr "画像がずれて表示されるときに改善される可能性が有ります(推奨)"
749
 
750
- #: ../pz-linkcard-settings.php:557
751
  msgid "specified CSS"
752
  msgstr "指定したCSSを使用"
753
 
754
- #: ../pz-linkcard-settings.php:559
755
  msgid "Use specified CSS file"
756
  msgstr "指定したCSSファイルを使用する"
757
 
758
- #: ../pz-linkcard-settings.php:562 ../pz-linkcard-settings.php:567
759
  msgid "CSS file"
760
  msgstr "CSSファイル名"
761
 
762
- #: ../pz-linkcard-settings.php:564
763
  msgid "(ex. http://exsample.com/style.css )"
764
  msgstr "例.http://exsample.com/style.css"
765
 
766
- #: ../pz-linkcard-settings.php:571
767
  msgid "CSS URL"
768
  msgstr "CSSファイルのURL"
769
 
770
- #: ../pz-linkcard-settings.php:576
771
  msgid "Use HatenaBlogCard"
772
  msgstr "はてなブログカードを利用する"
773
 
774
- #: ../pz-linkcard-settings.php:578
775
  msgid "External links will use Always HatenaBlogCard (Not recommended)"
776
  msgstr "外部リンクは「はてなブログカード」を利用する(非推奨)"
777
 
778
- #: ../pz-linkcard-settings.php:582
779
  msgid "Display link to author page"
780
  msgstr "プラグイン名を表示する"
781
 
782
- #: ../pz-linkcard-settings.php:587
783
  msgid "Plugin URL"
784
  msgstr "プラグインページURL"
785
 
786
- #: ../pz-linkcard-settings.php:591
787
  msgid "Plugin name"
788
  msgstr "プラグイン名"
789
 
790
- #: ../pz-linkcard-settings.php:595
791
  msgid "Plugin version"
792
  msgstr "プラグインバージョン"
793
 
794
- #: ../pz-linkcard-settings.php:599
795
  msgid "Saved datetime"
796
  msgstr "保存した日時"
797
 
798
- #: ../pz-linkcard-settings.php:604
799
  msgid "Display elapsed time"
800
  msgstr "実行時間の表示"
801
 
802
- #: ../pz-linkcard-settings.php:606
803
  msgid "Output the elapsed time to HTML comment."
804
  msgstr "作成にかかった時間をコメントとしてHTMLへ出力する"
805
 
806
- #: ../pz-linkcard-settings.php:612
807
  msgid "Initialize"
808
  msgstr "初期化"
809
 
810
- #: ../pz-linkcard-settings.php:615
811
  msgid "Return to the initial setting"
812
  msgstr "設定を初期状態へ戻す"
813
 
814
- #: ../pz-linkcard-style.php:338
815
  msgid "Style sheet saved."
816
  msgstr "設定を元にスタイルシートを自動生成しました。"
817
 
818
- #: ../pz-linkcard-style.php:340
819
  msgid "Style sheet failed."
820
  msgstr "スタイルシートの自動生成に失敗しました。"
821
 
822
- #: ../pz-linkcard.php:894
823
  msgid "Pz LkC Cache"
824
  msgstr "Pz カード管理"
825
 
826
- #: ../pz-linkcard.php:896
827
  msgid "Pz LinkCard"
828
  msgstr "Pz カード設定"
829
 
830
- #: ../pz-linkcard.php:957
831
  msgid "Settings"
832
  msgstr "設定"
833
 
834
- #: ../pz-linkcard.php:957
835
- msgid "Manage"
836
- msgstr "管理"
837
-
838
- #~ msgid "Instructed to get the number again"
839
- #~ msgstr "ソーシャルカウントの再取得を指示しました"
840
-
841
- #~ msgid "Site icon"
842
- #~ msgstr "サイトアイコン"
843
-
844
- #~ msgid "Sorry. This feature is not implemented yet..."
845
- #~ msgstr "もうしわけありません。この機能は未実装です。"
846
-
847
- #~ msgid "distinguish between uppercase and lowercase letters"
848
- #~ msgstr "大文字と小文字は区別されます"
849
-
850
- #~ msgid "This page"
851
- #~ msgstr "同ページへのリンク"
852
-
853
  #~ msgid "Refresh"
854
  #~ msgstr "再取得"
855
 
@@ -886,6 +741,9 @@ msgstr "管理"
886
  #~ msgid "gray"
887
  #~ msgstr "薄い色/普通(2px)"
888
 
 
 
 
889
  #~ msgid "Display information"
890
  #~ msgstr "サイト情報を表示する"
891
 
@@ -944,12 +802,18 @@ msgstr "管理"
944
  #~ msgid "Display thumbnail"
945
  #~ msgstr "サムネイル画像"
946
 
 
 
 
947
  #~ msgid "Number of seconds to keep cache"
948
  #~ msgstr "取得したタイトルと概要を保管しておく秒数"
949
 
950
  #~ msgid "(Unimplemented)"
951
  #~ msgstr "(未実装)※設定は反映されません。"
952
 
 
 
 
953
  #~ msgid "After the invalidation of the plug-in , please activate again"
954
  #~ msgstr "→プラグインの無効化を行った後、再度有効化してください"
955
 
4
  msgstr ""
5
  "Project-Id-Version: Pz-LinkCard\n"
6
  "Report-Msgid-Bugs-To: http://wppolyglots.wordpress.com\n"
7
+ "POT-Creation-Date: 2015-10-04 16:05+0900\n"
8
+ "PO-Revision-Date: 2015-10-04 16:06+0900\n"
9
  "Last-Translator: \n"
10
  "Language-Team: poporon\n"
11
  "Language: ja_JP\n"
19
  "Plural-Forms: nplurals=1; plural=0;\n"
20
  "X-Poedit-SearchPath-0: ..\n"
21
 
22
+ #: ../pz-linkcard-cacheman.php:129 ../pz-linkcard.php:185
23
  msgid "LinkCard cache manager"
24
+ msgstr "リンクカード DBキャッシュ マネージャ"
25
 
26
+ #: ../pz-linkcard-cacheman.php:132
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  msgid "All"
28
  msgstr "すべて"
29
 
30
+ #: ../pz-linkcard-cacheman.php:133
31
  msgid "Internal"
32
  msgstr "内部リンク"
33
 
34
+ #: ../pz-linkcard-cacheman.php:134
35
  msgid "External"
36
  msgstr "外部リンク"
37
 
38
+ #: ../pz-linkcard-cacheman.php:155
39
  msgid "Select batch"
40
  msgstr "一括処理を選択"
41
 
42
+ #: ../pz-linkcard-cacheman.php:157 ../pz-linkcard-cacheman.php:209
43
  msgid "Select"
44
  msgstr "選択してください"
45
 
46
+ #: ../pz-linkcard-cacheman.php:158
 
 
 
 
47
  msgid "Renew SNS count"
48
+ msgstr "ソーシャルカウントを再取得"
49
 
50
+ #: ../pz-linkcard-cacheman.php:159
51
+ msgid "Delete"
52
+ msgstr "削除"
53
 
54
+ #: ../pz-linkcard-cacheman.php:161
55
  msgid "Submit"
56
  msgstr "適用"
57
 
58
+ #: ../pz-linkcard-cacheman.php:175 ../pz-linkcard-settings.php:330
59
+ msgid "URL"
60
+ msgstr "URL"
61
 
62
+ #: ../pz-linkcard-cacheman.php:178 ../pz-linkcard-settings.php:313
63
+ msgid "Title"
64
+ msgstr "タイトル"
65
 
66
+ #: ../pz-linkcard-cacheman.php:181
67
+ msgid "Site name"
68
+ msgstr "サイト名称"
69
 
70
+ #: ../pz-linkcard-cacheman.php:184
71
+ msgid "Tw"
72
+ msgstr ""
73
 
74
+ #: ../pz-linkcard-cacheman.php:187
75
+ msgid "f"
76
+ msgstr ""
77
 
78
+ #: ../pz-linkcard-cacheman.php:190
79
+ msgid "B!"
80
+ msgstr ""
81
 
82
+ #: ../pz-linkcard-cacheman.php:193
83
+ msgid "Regist"
84
+ msgstr "登録日時"
85
 
86
+ #: ../pz-linkcard-cacheman.php:196
87
+ msgid "Post ID"
88
+ msgstr "記事ID"
89
 
90
+ #: ../pz-linkcard-cacheman.php:199
91
+ msgid "Result code"
92
+ msgstr "結果コード"
93
 
94
+ #: ../pz-linkcard-settings.php:4 ../pz-linkcard.php:186
95
  msgid "LinkCard Settings"
96
  msgstr "リンクカード設定"
97
 
112
  msgstr "基本設定"
113
 
114
  #: ../pz-linkcard-settings.php:74
115
+ msgid "ShortCode"
116
+ msgstr "ショートコード"
117
 
118
+ #: ../pz-linkcard-settings.php:76 ../pz-linkcard-settings.php:81
119
+ #: ../pz-linkcard-settings.php:86 ../pz-linkcard-settings.php:91
120
+ msgid "distinguish between uppercase and lowercase letters"
121
+ msgstr "大文字と小文字は区別されます"
122
 
123
  #: ../pz-linkcard-settings.php:79
124
+ msgid "ShortCode 2"
125
+ msgstr "ショートコード 2"
126
+
127
+ #: ../pz-linkcard-settings.php:84
128
+ msgid "ShortCode 3"
129
+ msgstr "ショートコード 3"
130
+
131
+ #: ../pz-linkcard-settings.php:89
132
+ msgid "ShortCode 4"
133
+ msgstr "ショートコード 4"
134
+
135
+ #: ../pz-linkcard-settings.php:94
136
  msgid "Use inlinetext"
137
  msgstr "ショートコードで囲んだ文字列"
138
 
139
+ #: ../pz-linkcard-settings.php:96
140
+ msgid "[Shortcode url=\"xxx\"]"
141
+ msgstr ""
142
+
143
+ #: ../pz-linkcard-settings.php:98
144
  msgid "No use"
145
  msgstr "使用しない"
146
 
147
+ #: ../pz-linkcard-settings.php:99
148
  msgid "Use to excerpt"
149
  msgstr "抜粋文として使用"
150
 
151
+ #: ../pz-linkcard-settings.php:100
152
  msgid "Use to title"
153
  msgstr "タイトルとして使用"
154
 
 
 
 
 
 
 
 
 
 
 
 
 
155
  #: ../pz-linkcard-settings.php:102
156
+ msgid "[/Shortcode]"
157
+ msgstr ""
158
 
159
+ #: ../pz-linkcard-settings.php:107
160
  msgid "Special Format"
161
  msgstr "定型書式"
162
 
163
+ #: ../pz-linkcard-settings.php:110 ../pz-linkcard-settings.php:217
164
+ #: ../pz-linkcard-settings.php:250 ../pz-linkcard-settings.php:271
165
+ #: ../pz-linkcard-settings.php:297 ../pz-linkcard-settings.php:416
166
+ #: ../pz-linkcard-settings.php:426 ../pz-linkcard-settings.php:455
167
+ #: ../pz-linkcard-settings.php:465
168
  msgid "None"
169
  msgstr "なし"
170
 
171
+ #: ../pz-linkcard-settings.php:111
 
 
 
 
172
  msgid "Cellophane tape \"center\""
173
  msgstr "セロハンテープ(中央)"
174
 
175
+ #: ../pz-linkcard-settings.php:112
176
  msgid "Cellophane tape \"Top corner\""
177
  msgstr "セロハンテープ(左上と右上)"
178
 
179
+ #: ../pz-linkcard-settings.php:113
180
  msgid "Cellophane tape \"long\""
181
  msgstr "セロハンテープ(長め)"
182
 
183
+ #: ../pz-linkcard-settings.php:114
184
  msgid "Slanting"
185
  msgstr "斜め"
186
 
187
+ #: ../pz-linkcard-settings.php:115
188
  msgid "3D Rotate"
189
  msgstr "3D回転"
190
 
191
+ #: ../pz-linkcard-settings.php:116
192
  msgid "Curling paper"
193
+ msgstr "紙がめくれた効果(ほとんどのテーマで正しく表示されません)"
194
 
195
+ #: ../pz-linkcard-settings.php:117
 
 
 
 
196
  msgid "Neutral"
197
+ msgstr "ブルーグリーン"
198
 
199
+ #: ../pz-linkcard-settings.php:118
200
  msgid "Orange"
201
+ msgstr "オレンジ"
202
 
203
+ #: ../pz-linkcard-settings.php:119
204
  msgid "Green"
205
+ msgstr "グリーン"
206
 
207
+ #: ../pz-linkcard-settings.php:120
208
  msgid "Blue"
209
+ msgstr "ブルー"
210
+
211
+ #: ../pz-linkcard-settings.php:121
212
+ msgid "Pz-LkC Default"
213
+ msgstr "Pz リンクカード 標準書式"
214
 
215
+ #: ../pz-linkcard-settings.php:123
216
  msgid "Will some of the parameters are forcibly changed"
217
  msgstr "選択した定型書式によって、一部の設定が無効になります。"
218
 
219
+ #: ../pz-linkcard-settings.php:129
220
  msgid "Style"
221
  msgstr "表示設定"
222
 
223
+ #: ../pz-linkcard-settings.php:132
224
  msgid "Position"
225
  msgstr "配置設定"
226
 
227
+ #: ../pz-linkcard-settings.php:139
228
  msgid "Margin top"
229
  msgstr "上の余白"
230
 
231
+ #: ../pz-linkcard-settings.php:141 ../pz-linkcard-settings.php:156
232
+ #: ../pz-linkcard-settings.php:173 ../pz-linkcard-settings.php:190
233
  msgid "Not defined"
234
  msgstr "設定しない"
235
 
236
+ #: ../pz-linkcard-settings.php:142 ../pz-linkcard-settings.php:157
237
+ #: ../pz-linkcard-settings.php:174 ../pz-linkcard-settings.php:191
238
  msgid "0"
239
  msgstr ""
240
 
241
+ #: ../pz-linkcard-settings.php:143 ../pz-linkcard-settings.php:158
242
+ #: ../pz-linkcard-settings.php:175 ../pz-linkcard-settings.php:192
243
+ #: ../pz-linkcard-settings.php:385 ../pz-linkcard-settings.php:386
244
  msgid "4px"
245
  msgstr ""
246
 
247
+ #: ../pz-linkcard-settings.php:144 ../pz-linkcard-settings.php:159
248
+ #: ../pz-linkcard-settings.php:176 ../pz-linkcard-settings.php:193
249
  msgid "8px"
250
  msgstr ""
251
 
252
+ #: ../pz-linkcard-settings.php:145 ../pz-linkcard-settings.php:160
253
+ #: ../pz-linkcard-settings.php:177 ../pz-linkcard-settings.php:194
254
+ #: ../pz-linkcard-settings.php:319
255
  msgid "16px"
256
  msgstr ""
257
 
258
+ #: ../pz-linkcard-settings.php:146 ../pz-linkcard-settings.php:161
259
+ #: ../pz-linkcard-settings.php:178 ../pz-linkcard-settings.php:195
260
  msgid "32px"
261
  msgstr ""
262
 
263
+ #: ../pz-linkcard-settings.php:147 ../pz-linkcard-settings.php:162
264
+ #: ../pz-linkcard-settings.php:179 ../pz-linkcard-settings.php:196
265
  msgid "64px"
266
  msgstr ""
267
 
268
+ #: ../pz-linkcard-settings.php:154
269
  msgid "Margin left"
270
  msgstr "左の余白"
271
 
272
+ #: ../pz-linkcard-settings.php:166
273
  msgid "Width"
274
  msgstr "カードの横幅"
275
 
276
+ #: ../pz-linkcard-settings.php:167
277
  msgid "Height"
278
  msgstr "カードの高さ"
279
 
280
+ #: ../pz-linkcard-settings.php:168
281
  msgid "Trim"
282
  msgstr "文字数"
283
 
284
+ #: ../pz-linkcard-settings.php:171
285
  msgid "Margin right"
286
  msgstr "右の余白"
287
 
288
+ #: ../pz-linkcard-settings.php:185
289
  msgid "Centering"
290
  msgstr "中央に寄せる"
291
 
292
+ #: ../pz-linkcard-settings.php:188
293
  msgid "Margin bottom"
294
  msgstr "下の余白"
295
 
296
+ #: ../pz-linkcard-settings.php:207
297
  msgid "Link the whole"
298
  msgstr "カード全体をリンク"
299
 
300
+ #: ../pz-linkcard-settings.php:209
301
  msgid "Enclose the entire card at anchor"
302
  msgstr ""
303
  "カード全体をAタグで囲って、どこをクリックしてもリンク先を開くようにします。"
304
 
305
+ #: ../pz-linkcard-settings.php:214
306
  msgid "Border"
307
  msgstr "枠線の太さ"
308
 
309
+ #: ../pz-linkcard-settings.php:218
310
  msgid "Gray thin"
311
  msgstr "薄い色/細い(1px)"
312
 
313
+ #: ../pz-linkcard-settings.php:219
314
  msgid "Gray"
315
  msgstr "薄い色/普通(2px)"
316
 
317
+ #: ../pz-linkcard-settings.php:220
318
  msgid "Gray thick"
319
  msgstr "薄い色/太い(4px)"
320
 
321
+ #: ../pz-linkcard-settings.php:221
322
  msgid "Black thin"
323
  msgstr "黒/細い(1px)"
324
 
325
+ #: ../pz-linkcard-settings.php:222
326
  msgid "Black"
327
  msgstr "黒/普通(2px)"
328
 
329
+ #: ../pz-linkcard-settings.php:223
330
  msgid "Black thick"
331
  msgstr "黒/太い(4px)"
332
 
333
+ #: ../pz-linkcard-settings.php:224
334
  msgid "Black frame"
335
  msgstr "黒/額縁(8px)"
336
 
337
+ #: ../pz-linkcard-settings.php:225
338
  msgid "Dodgerblue"
339
  msgstr "ドジャー・ブルー(明るい青)"
340
 
341
+ #: ../pz-linkcard-settings.php:226
342
  msgid "Mediumaquamarine"
343
  msgstr "ミディアム・アクアマリーン(明るい緑)"
344
 
345
+ #: ../pz-linkcard-settings.php:227
346
  msgid "Hotpink"
347
  msgstr "ホット・ピンク(明るい赤)"
348
 
349
+ #: ../pz-linkcard-settings.php:228
350
  msgid "Double"
351
  msgstr "二重線"
352
 
353
+ #: ../pz-linkcard-settings.php:229
354
  msgid "Dotted"
355
  msgstr "点線"
356
 
357
+ #: ../pz-linkcard-settings.php:235
358
  msgid "Layout"
359
  msgstr "外観設定"
360
 
361
+ #: ../pz-linkcard-settings.php:236
362
  msgid "Radius"
363
  msgstr "角を丸める"
364
 
365
+ #: ../pz-linkcard-settings.php:245
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
366
  msgid "Display URL"
367
  msgstr "リンク先のURLを表示する"
368
 
369
+ #: ../pz-linkcard-settings.php:248 ../pz-linkcard-settings.php:413
370
+ #: ../pz-linkcard-settings.php:452
371
  msgid "Thumbnail"
372
  msgstr "サムネイル"
373
 
374
+ #: ../pz-linkcard-settings.php:251
375
  msgid "Right"
376
  msgstr "右側"
377
 
378
+ #: ../pz-linkcard-settings.php:252
379
  msgid "Left"
380
  msgstr "左側"
381
 
382
+ #: ../pz-linkcard-settings.php:254 ../pz-linkcard-settings.php:290
383
  msgid "Shadow"
384
  msgstr "影を付ける"
385
 
386
+ #: ../pz-linkcard-settings.php:259
387
  msgid "Hollow content area"
388
  msgstr "記事の情報に枠を付ける"
389
 
390
+ #: ../pz-linkcard-settings.php:264
391
  msgid "Display excerpt"
392
  msgstr "抜粋文を表示する"
393
 
394
+ #: ../pz-linkcard-settings.php:269 ../pz-linkcard-settings.php:433
395
+ #: ../pz-linkcard-settings.php:472 ../pz-linkcard-settings.php:488
396
+ msgid "Site information"
397
+ msgstr "サイト情報"
398
+
399
+ #: ../pz-linkcard-settings.php:272
400
+ msgid "Top"
401
+ msgstr "上側"
402
+
403
+ #: ../pz-linkcard-settings.php:273
404
+ msgid "Bottom"
405
+ msgstr "下側"
406
+
407
+ #: ../pz-linkcard-settings.php:275
408
+ msgid "Use SiteName"
409
+ msgstr "サイト名称を使用"
410
+
411
+ #: ../pz-linkcard-settings.php:280
412
  msgid "Hollow"
413
  msgstr "内側に影を付ける"
414
 
415
+ #: ../pz-linkcard-settings.php:294
416
  msgid "Display SNS Count"
417
  msgstr "シェア数を表示する"
418
 
419
+ #: ../pz-linkcard-settings.php:298
420
  msgid "After Title"
421
  msgstr "タイトルの後ろ"
422
 
423
+ #: ../pz-linkcard-settings.php:299
424
  msgid "After site-name"
425
  msgstr "サイト情報の後ろ"
426
 
427
+ #: ../pz-linkcard-settings.php:301
428
+ msgid "Hatena"
429
+ msgstr "はてなブックマーク"
430
 
431
+ #: ../pz-linkcard-settings.php:302
432
  msgid "Facebook"
433
  msgstr "フェイスブック(シェア数)"
434
 
435
+ #: ../pz-linkcard-settings.php:303
436
+ msgid "Twitter"
437
+ msgstr "ツイッター"
438
 
439
+ #: ../pz-linkcard-settings.php:304
440
  msgid ""
441
  "There is a possibility that the screen display is slow If you enable this "
442
  "setting."
443
  msgstr "有効にする取得APIによっては表示が遅くなる場合があります。"
444
 
445
+ #: ../pz-linkcard-settings.php:310
446
  msgid "Letters"
447
  msgstr "文字設定"
448
 
449
+ #: ../pz-linkcard-settings.php:318 ../pz-linkcard-settings.php:337
450
+ #: ../pz-linkcard-settings.php:353 ../pz-linkcard-settings.php:370
451
  msgid "14px"
452
  msgstr ""
453
 
454
+ #: ../pz-linkcard-settings.php:320
455
  msgid "18px"
456
  msgstr ""
457
 
458
+ #: ../pz-linkcard-settings.php:321
459
  msgid "20px"
460
  msgstr ""
461
 
462
+ #: ../pz-linkcard-settings.php:322
463
  msgid "24px"
464
  msgstr ""
465
 
466
+ #: ../pz-linkcard-settings.php:323 ../pz-linkcard-settings.php:375
467
  msgid "100%"
468
  msgstr ""
469
 
470
+ #: ../pz-linkcard-settings.php:324
471
  msgid "120%"
472
  msgstr ""
473
 
474
+ #: ../pz-linkcard-settings.php:325
475
  msgid "140%"
476
  msgstr ""
477
 
478
+ #: ../pz-linkcard-settings.php:335 ../pz-linkcard-settings.php:350
479
+ #: ../pz-linkcard-settings.php:366 ../pz-linkcard-settings.php:387
480
  msgid "9px"
481
  msgstr ""
482
 
483
+ #: ../pz-linkcard-settings.php:336 ../pz-linkcard-settings.php:352
484
+ #: ../pz-linkcard-settings.php:368
485
  msgid "12px"
486
  msgstr ""
487
 
488
+ #: ../pz-linkcard-settings.php:338 ../pz-linkcard-settings.php:354
489
+ #: ../pz-linkcard-settings.php:372
490
  msgid "70%"
491
  msgstr ""
492
 
493
+ #: ../pz-linkcard-settings.php:339 ../pz-linkcard-settings.php:355
494
+ #: ../pz-linkcard-settings.php:373
495
  msgid "80%"
496
  msgstr ""
497
 
498
+ #: ../pz-linkcard-settings.php:340 ../pz-linkcard-settings.php:356
499
+ #: ../pz-linkcard-settings.php:374
500
  msgid "90%"
501
  msgstr ""
502
 
503
+ #: ../pz-linkcard-settings.php:345
504
+ msgid "Excerpt"
505
+ msgstr "抜粋文"
506
+
507
+ #: ../pz-linkcard-settings.php:351 ../pz-linkcard-settings.php:367
508
  msgid "11px"
509
  msgstr ""
510
 
511
+ #: ../pz-linkcard-settings.php:361
512
  msgid "Site-info."
513
  msgstr "サイト情報"
514
 
515
+ #: ../pz-linkcard-settings.php:369
516
  msgid "13px"
517
  msgstr ""
518
 
519
+ #: ../pz-linkcard-settings.php:371 ../pz-linkcard-settings.php:388
520
  msgid "60%"
521
  msgstr ""
522
 
523
+ #: ../pz-linkcard-settings.php:380
524
  msgid "Plugin link"
525
  msgstr "プラグインのページ"
526
 
527
+ #: ../pz-linkcard-settings.php:393
528
  msgid "Plugin-link"
529
  msgstr "プラグイン名"
530
 
531
+ #: ../pz-linkcard-settings.php:401
532
  msgid "External link"
533
  msgstr "外部リンク"
534
 
535
+ #: ../pz-linkcard-settings.php:405 ../pz-linkcard-settings.php:444
536
+ #: ../pz-linkcard-settings.php:480
537
  msgid "Background Color"
538
  msgstr "背景色"
539
 
540
+ #: ../pz-linkcard-settings.php:409
541
  msgid "Background image"
542
  msgstr "背景画像"
543
 
544
+ #: ../pz-linkcard-settings.php:417 ../pz-linkcard-settings.php:427
545
+ #: ../pz-linkcard-settings.php:456 ../pz-linkcard-settings.php:466
546
  msgid "Direct"
547
  msgstr "直接取得する"
548
 
549
+ #: ../pz-linkcard-settings.php:418 ../pz-linkcard-settings.php:428
550
+ #: ../pz-linkcard-settings.php:457 ../pz-linkcard-settings.php:467
551
  msgid "Use WebAPI"
552
  msgstr "WebAPIを利用する"
553
 
554
+ #: ../pz-linkcard-settings.php:423 ../pz-linkcard-settings.php:462
 
555
  msgid "Favicon"
556
  msgstr "サイトアイコン"
557
 
558
+ #: ../pz-linkcard-settings.php:440
 
 
 
 
 
559
  msgid "Internal link"
560
  msgstr "内部リンク"
561
 
562
+ #: ../pz-linkcard-settings.php:448 ../pz-linkcard-settings.php:484
563
  msgid "Background Image"
564
  msgstr "背景画像"
565
 
566
+ #: ../pz-linkcard-settings.php:477
567
+ msgid "This page"
568
  msgstr "同ページへのリンク"
569
 
570
+ #: ../pz-linkcard-settings.php:495
 
 
 
 
 
571
  msgid "Web-API"
572
  msgstr "画像取得APIの指定"
573
 
574
+ #: ../pz-linkcard-settings.php:498
575
  msgid "Favicon API"
576
  msgstr "ファビコンの取得API"
577
 
578
+ #: ../pz-linkcard-settings.php:500
579
  msgid ""
580
  "%DOMAIN% replace to domain name (ex. poporon.poponet.jp )<br />%DOMAIN_URL% "
581
  "replace to domain URL (ex. http://poporon.poponet.jp )"
584
  "%DOMAIN_URL% と記述するとドメインのURL(例.http://poporon.poponet.jp)に置き"
585
  "換わります。"
586
 
587
+ #: ../pz-linkcard-settings.php:503
588
  msgid "Thumbnail API"
589
  msgstr "サムネイル画像の取得API"
590
 
591
+ #: ../pz-linkcard-settings.php:505
592
  msgid "%URL% replace to URL"
593
  msgstr "%URL% と記述するとURLに置き換わります"
594
 
595
+ #: ../pz-linkcard-settings.php:510
596
  msgid "Debug"
597
  msgstr "詳しい人用(Debug)"
598
 
599
+ #: ../pz-linkcard-settings.php:513
600
  msgid "Use blockquote tag"
601
  msgstr "BLOCKQUOTEをタグを使用する"
602
 
603
+ #: ../pz-linkcard-settings.php:515
604
  msgid "without using DIV tag, and use BLOCKQUOTE tag"
605
  msgstr "&lt;BLOCKQUOTE&gt;で囲んで引用扱いにします"
606
 
607
+ #: ../pz-linkcard-settings.php:518
608
  msgid "Set nofollow"
609
  msgstr "nofollowを付与する"
610
 
611
+ #: ../pz-linkcard-settings.php:520
612
  msgid "In the case of an external site, it puts the \"nofollow\""
613
  msgstr "外部リンクのリンクを nofollow にする"
614
 
615
+ #: ../pz-linkcard-settings.php:524
616
  msgid "Reset img style"
617
  msgstr "CSSリセット(img)"
618
 
619
+ #: ../pz-linkcard-settings.php:526
620
  msgid ""
621
  "When unnecessary frame is displayed on the image, you can improve it by case"
622
  msgstr "画像がずれて表示されるときに改善される可能性が有ります(推奨)"
623
 
624
+ #: ../pz-linkcard-settings.php:530
625
  msgid "specified CSS"
626
  msgstr "指定したCSSを使用"
627
 
628
+ #: ../pz-linkcard-settings.php:532
629
  msgid "Use specified CSS file"
630
  msgstr "指定したCSSファイルを使用する"
631
 
632
+ #: ../pz-linkcard-settings.php:535 ../pz-linkcard-settings.php:540
633
  msgid "CSS file"
634
  msgstr "CSSファイル名"
635
 
636
+ #: ../pz-linkcard-settings.php:537
637
  msgid "(ex. http://exsample.com/style.css )"
638
  msgstr "例.http://exsample.com/style.css"
639
 
640
+ #: ../pz-linkcard-settings.php:544
641
  msgid "CSS URL"
642
  msgstr "CSSファイルのURL"
643
 
644
+ #: ../pz-linkcard-settings.php:549
645
  msgid "Use HatenaBlogCard"
646
  msgstr "はてなブログカードを利用する"
647
 
648
+ #: ../pz-linkcard-settings.php:551
649
  msgid "External links will use Always HatenaBlogCard (Not recommended)"
650
  msgstr "外部リンクは「はてなブログカード」を利用する(非推奨)"
651
 
652
+ #: ../pz-linkcard-settings.php:555
653
  msgid "Display link to author page"
654
  msgstr "プラグイン名を表示する"
655
 
656
+ #: ../pz-linkcard-settings.php:560
657
  msgid "Plugin URL"
658
  msgstr "プラグインページURL"
659
 
660
+ #: ../pz-linkcard-settings.php:564
661
  msgid "Plugin name"
662
  msgstr "プラグイン名"
663
 
664
+ #: ../pz-linkcard-settings.php:568
665
  msgid "Plugin version"
666
  msgstr "プラグインバージョン"
667
 
668
+ #: ../pz-linkcard-settings.php:572
669
  msgid "Saved datetime"
670
  msgstr "保存した日時"
671
 
672
+ #: ../pz-linkcard-settings.php:577
673
  msgid "Display elapsed time"
674
  msgstr "実行時間の表示"
675
 
676
+ #: ../pz-linkcard-settings.php:579
677
  msgid "Output the elapsed time to HTML comment."
678
  msgstr "作成にかかった時間をコメントとしてHTMLへ出力する"
679
 
680
+ #: ../pz-linkcard-settings.php:585
681
  msgid "Initialize"
682
  msgstr "初期化"
683
 
684
+ #: ../pz-linkcard-settings.php:588
685
  msgid "Return to the initial setting"
686
  msgstr "設定を初期状態へ戻す"
687
 
688
+ #: ../pz-linkcard-style.php:316
689
  msgid "Style sheet saved."
690
  msgstr "設定を元にスタイルシートを自動生成しました。"
691
 
692
+ #: ../pz-linkcard-style.php:318
693
  msgid "Style sheet failed."
694
  msgstr "スタイルシートの自動生成に失敗しました。"
695
 
696
+ #: ../pz-linkcard.php:185
697
  msgid "Pz LkC Cache"
698
  msgstr "Pz カード管理"
699
 
700
+ #: ../pz-linkcard.php:186
701
  msgid "Pz LinkCard"
702
  msgstr "Pz カード設定"
703
 
704
+ #: ../pz-linkcard.php:240
705
  msgid "Settings"
706
  msgstr "設定"
707
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
708
  #~ msgid "Refresh"
709
  #~ msgstr "再取得"
710
 
741
  #~ msgid "gray"
742
  #~ msgstr "薄い色/普通(2px)"
743
 
744
+ #~ msgid "This setting will be applied only if you specify a \"title\""
745
+ #~ msgstr "title を指定した場合のみ適用されます"
746
+
747
  #~ msgid "Display information"
748
  #~ msgstr "サイト情報を表示する"
749
 
802
  #~ msgid "Display thumbnail"
803
  #~ msgstr "サムネイル画像"
804
 
805
+ #~ msgid "Cache time"
806
+ #~ msgstr "キャッシュ時間"
807
+
808
  #~ msgid "Number of seconds to keep cache"
809
  #~ msgstr "取得したタイトルと概要を保管しておく秒数"
810
 
811
  #~ msgid "(Unimplemented)"
812
  #~ msgstr "(未実装)※設定は反映されません。"
813
 
814
+ #~ msgid "Clear text cache"
815
+ #~ msgstr "キャッシュのクリア"
816
+
817
  #~ msgid "After the invalidation of the plug-in , please activate again"
818
  #~ msgstr "→プラグインの無効化を行った後、再度有効化してください"
819
 
pz-linkcard-cacheman.php CHANGED
@@ -1,208 +1,79 @@
1
  <?php
2
  if (!function_exists('get_option')) die;
3
  if (!is_user_logged_in()) die;
4
-
5
- echo '<div class="wrap">';
6
- echo '<h1>'.__('LinkCard cache manager', $this->text_domain).'</h1>';
7
-
8
- // echo '<pre>';
9
- // print_r($_REQUEST);
10
- // echo '</pre>';
11
-
12
- $update = isset($_REQUEST['update'] ) ? $_REQUEST['update'] : null;
13
- $cancel = isset($_REQUEST['cancel'] ) ? $_REQUEST['cancel'] : null;
14
- $data = null;
15
- if ($update || $cancel) {
16
- if ($update) {
17
- $action = 'update';
18
- if (isset($_REQUEST['data']) && is_array($_REQUEST['data'])) {
19
- $data = $_REQUEST['data'];
20
- }
21
- } else {
22
- $action = null;
23
- }
24
- // $refine = null;
25
- $bulk_id = null;
26
- } else {
27
- $action = isset($_REQUEST['action'] ) ? $_REQUEST['action'] : null;
28
- // $refine = isset($_REQUEST['refine'] ) ? $_REQUEST['refine'] : null;
29
- $bulk_id = isset($_REQUEST['id'] ) ? $_REQUEST['id'] : null;
30
- }
31
- $refine = isset($_REQUEST['refine'] ) ? $_REQUEST['refine'] : null;
32
- $orderby = isset($_REQUEST['orderby'] ) ? $_REQUEST['orderby'] : null;
33
- $order = isset($_REQUEST['order'] ) ? $_REQUEST['order'] : null;
34
- $orderby_now = isset($_REQUEST['orderby_now'] ) ? $_REQUEST['orderby_now'] : null;
35
- $order_now = isset($_REQUEST['order_now'] ) ? $_REQUEST['order_now'] : null;
36
- $link_type = isset($_REQUEST['link_type'] ) ? $_REQUEST['link_type'] : null;
37
- $cache_id = isset($_REQUEST['cache_id'] ) ? $_REQUEST['cache_id'] : null;
38
- $confirm = isset($_REQUEST['confirm'] ) ? $_REQUEST['confirm'] : null;
39
- $result_code = isset($_REQUEST['result_code'] ) ? $_REQUEST['result_code'] : null;
40
- $paged = (isset($_REQUEST['paged'] ) ? $_REQUEST['paged'] : 1) - 0;
41
-
42
 
43
  global $wpdb;
44
 
45
- if (isset($action)) {
46
- check_admin_referer('pz_cacheman');
47
 
48
  switch ($action) {
49
- case 'edit':
50
- if (isset($bulk_id) && is_array($bulk_id)) {
51
- $data = $this->pz_GetCache(array('id' => $bulk_id[0]));
52
- if (isset($data) && is_array($data)) {
53
- ?>
54
- <form action="" method="post">
55
- <?php wp_nonce_field('pz_cacheman'); ?>
56
- <input type="hidden" name="page" value="pz-linkcard-cache">
57
- <input type="hidden" name="paged" value="<?php echo $page_now; ?>">
58
- <input type="hidden" name="refine" value="<?php echo $refine; ?>">
59
- <input type="hidden" name="link_type" value="<?php echo $link_type; ?>">
60
- <input type="hidden" name="orderby" value="<?php echo $orderby; ?>">
61
- <input type="hidden" name="order" value="<?php echo $order; ?>">
62
- <div>
63
- <table name="cachelist" class="wp-list-table widefat fixed">
64
- <tr>
65
- <th style="width: 12em;"><?php _e('ID', $this->text_domain) ?></th>
66
- <td><input name="data[id]" type="text" id="inputtext" value="<?php echo $data['id']; ?>" size="5" readonly="readonly" /></td>
67
- </tr>
68
- <tr style="display: none;">
69
- <th><?php _e('URL key', $this->text_domain) ?></th>
70
- <td><input name="key_text" type="text" id="inputtext" value="<?php echo bin2hex($data['url_key']); ?>" size="71" readonly="readonly" /></td>
71
- </tr>
72
- <tr>
73
- <th><?php _e('URL', $this->text_domain) ?></th>
74
- <td><input name="data[url]" type="text" id="inputtext" value="<?php echo $data['url']; ?>" size="71" readonly="readonly" /></td>
75
- </tr>
76
- <tr>
77
- <th><?php _e('Site name', $this->text_domain) ?></th>
78
- <td><input name="data[site_name]" type="text" id="inputtext" value="<?php echo esc_attr($data['site_name']); ?>" size="71" /></td>
79
- </tr>
80
- <tr>
81
- <th><?php _e('Domain', $this->text_domain) ?></th>
82
- <td><input name="data[domain]" type="text" id="inputtext" value="<?php echo $data['domain']; ?>" size="71" readonly="readonly" /></td>
83
- </tr>
84
- <tr>
85
- <th><?php _e('Title', $this->text_domain) ?></th>
86
- <td><input name="data[title]" type="text" id="inputtext" value="<?php echo esc_attr($data['title']); ?>" size="71" /></td>
87
- </tr>
88
- <tr>
89
- <th><?php _e('Excerpt', $this->text_domain) ?></th>
90
- <td><input name="data[excerpt]" type="text" id="inputtext" value="<?php echo esc_attr($data['excerpt']); ?>" size="71" /></td>
91
- </tr>
92
- <tr>
93
- <th><?php _e('Charset', $this->text_domain) ?></th>
94
- <td><?php echo $data['charset']; ?>→<input name="data[charset]" type="text" id="inputtext" value="edit" size="8" readonly="readonly" /></td>
95
- </tr>
96
- <tr>
97
- <th><?php _e('Thumbnail URL', $this->text_domain) ?></th>
98
- <td><input name="data[thumbnail]" type="text" id="inputtext" value="<?php echo $data['thumbnail']; ?>" size="71" readonly="readonly" /></td>
99
- </tr>
100
- <tr>
101
- <th><?php _e('Favicon URL', $this->text_domain) ?></th>
102
- <td><input name="data[favicon]" type="text" id="inputtext" value="<?php echo $data['favicon']; ?>" size="71" readonly="readonly" /></td>
103
- </tr>
104
- <tr>
105
- <th><?php _e('Result code', $this->text_domain) ?></th>
106
- <td><input name="data[result_code]" type="text" id="inputtext" value="<?php echo $data['result_code']; ?>" size="5" readonly="readonly" /></td>
107
- </tr>
108
- <tr>
109
- <th><?php _e('Post ID', $this->text_domain) ?></th>
110
- <td><input name="data[post_id]" type="text" id="inputtext" value="<?php echo $data['post_id']; ?>" size="5" readonly="readonly" /></td>
111
- </tr>
112
- <tr>
113
- <th><?php _e('SNS', $this->text_domain) ?></th>
114
- <td>
115
- <?php _e('Tw', $this->text_domain) ?>:<input name="data[sns_twitter]" type="text" id="inputtext" value="<?php echo $data['sns_twitter']; ?>" size="5" readonly="readonly" />
116
- <?php _e('fb', $this->text_domain) ?>:<input name="data[sns_facebook]" type="text" id="inputtext" value="<?php echo $data['sns_facebook']; ?>" size="5" readonly="readonly" />
117
- <?php _e('B!', $this->text_domain) ?>:<input name="data[sns_hatena]" type="text" id="inputtext" value="<?php echo $data['sns_hatena']; ?>" size="5" readonly="readonly" />
118
- </td>
119
- </tr>
120
- <tr>
121
- <th><?php _e('Uptime', $this->text_domain) ?></th>
122
- <td><input name="data[uptime]" type="text" id="inputtext" value="<?php echo $data['uptime']; ?>" size="10" readonly="readonly" /><?php echo date('Y-m-d H:i:s', $data['uptime']); ?></td>
123
- </tr>
124
- <tr>
125
- <th><?php _e('Next update', $this->text_domain) ?></th>
126
- <td><input name="data[nexttime]" type="text" id="inputtext" value="<?php echo $data['nexttime']; ?>" size="10" readonly="readonly" /><?php echo date('Y-m-d H:i:s', $data['nexttime']); ?></td>
127
- </tr>
128
- <tr>
129
- <th><?php _e('Regist', $this->text_domain) ?></th>
130
- <td><input name="data[regist]" type="text" id="inputtext" value="<?php echo current_time('mysql'); ?>" size="17" readonly="readonly" /><?php echo $data['regist']; ?></td>
131
- </tr>
132
- <tr>
133
- <th></th>
134
- <td><input name="update" type="submit" class="button button-primary button-large" id="publish" value="<?php _e('Update', $this->text_domain) ?>" /> <input name="cancel" type="submit" class="button button-large" id="publish" value="<?php _e('Cancel', $this->text_domain) ?>" /></td>
135
- </tr>
136
- </table>
137
- </div>
138
- </form>
139
- <?php
140
- }
141
- }
142
- break;
143
- case 'update':
144
- if (isset($data) && is_array($data) && isset($data['id'])) {
145
- $data['title'] = stripslashes($data['title']);
146
- $data['excerpt'] = stripslashes($data['excerpt']);
147
- $data['site_name'] = stripslashes($data['site_name']);
148
- $data = $this->pz_SetCache($data);
149
- if (isset($data) && is_array($data) && isset($data['id'])) {
150
- echo '<div class="updated fade"><p><strong>'.__('Updated cache', $this->text_domain).'</strong></p></div>';
151
- } else {
152
- echo '<div class="error fade"><p><strong>'.__('Update failed', $this->text_domain).'</strong></p></div>';
153
- }
154
- } else {
155
- echo '<div class="error fade"><p><strong>'.__('Update failed', $this->text_domain).'</strong></p></div>';
156
- }
157
- break;
158
- case 'renew_sns':
159
- if (isset($bulk_id) && is_array($bulk_id)) {
160
- echo '<div class="updated fade"><p><strong>'.__('Social count renew', $this->text_domain).'...';
161
- foreach ($bulk_id as $data_id) {
162
- $data = $this->pz_GetCache(array('id' => $data_id));
163
- if (isset($data) && is_array($data)) {
164
- $data['nexttime'] = 0;
165
- $data = $this->pz_SetCache($data);
166
- $this->pz_getHTML(array('url' => $data['url']));
167
- }
168
- echo '..';
169
- }
170
- echo __('completed', $this->text_domain).'</strong></p></div>';
171
- }
172
- break;
173
  case 'renew':
174
  if (isset($bulk_id) && is_array($bulk_id)) {
175
- echo '<div class="updated fade"><p><strong>'.__('Cache renew', $this->text_domain).'...';
176
- foreach ($bulk_id as $data_id) {
177
- $data = $this->pz_GetCache(array('id' => $data_id));
178
- if (isset($data) && is_array($data)) {
179
- $this->pz_getHTML(array('url' => $data['url'], 'force' => true));
180
- }
181
- echo '..';
 
182
  }
183
- echo __('completed', $this->text_domain).'</strong></p></div>';
184
  }
185
  break;
 
186
  case 'delete':
187
  if (isset($bulk_id) && is_array($bulk_id)) {
188
- foreach ($bulk_id as $data_id) {
189
- $this->pz_DelCache(array('id' => $data_id) );
 
 
 
 
190
  }
191
- echo '<div class="updated fade"><p><strong>'.__('Cache deleted', $this->text_domain).'</strong></p></div>';
192
  }
193
  break;
194
  }
195
  }
196
 
197
- $orderby = strtolower($orderby); // 気持ち程度のインジェクション対策
198
- switch ($orderby) {
 
 
 
 
 
 
 
 
 
 
 
199
  case 'id':
200
  case 'url':
201
  case 'url_key':
202
  case 'link_type':
203
  case 'site_name':
204
  case 'domain':
205
- case 'charset':
206
  case 'title':
207
  case 'excerpt':
208
  case 'result_code':
@@ -214,253 +85,201 @@ case 'regist':
214
  case 'nexttime':
215
  break;
216
  default:
217
- $orderby = 'regist';
218
  }
219
 
220
- $order = strtoupper($order);
221
- if ($order != 'ASC' && $orderby == $orderby_now) {
222
  $order = 'DESC';
223
- }
224
-
225
- // 抽出条件
226
- $where = null;
227
- $link_type = strtolower($link_type);
228
- switch ($link_type) {
229
- case 'internal':
230
- $where = 'link_type<>0';
231
- break;
232
- case 'external':
233
- $where = 'link_type=0';
234
  break;
235
  default:
236
- $link_type = 'all';
237
- }
238
- if (isset($refine) && $refine) {
239
- if ($where) {
240
- $where .= " AND domain='$refine'";
241
- } else {
242
- $where .= " domain='$refine'";
243
- }
244
  }
245
 
246
- // 検索SQL作成
247
- $sql = "SELECT * FROM $this->db_name";
248
- if (isset($where) && $where) {
249
- $sql .= " WHERE $where";
250
- }
251
- if (isset($orderby) && $orderby) {
252
- $sql .= " ORDER BY $orderby $order";
253
  }
254
- if (strpos($sql, '--') || strpos($sql, 'UPDATE') || strpos($sql, 'UNION') ) { // 気持ち程度のインジェクション対策
255
- die;
256
  }
257
- $data_all = $wpdb->get_results($sql); // テーブルデータ
258
- $count_now = count($data_all);
259
-
260
- // ページ数
261
- $page_min = ($count_now > 0) ? 1 : 0;
262
- $page_max = ceil($count_now / 10);
263
- $page_now = ($paged < $page_min) ? $page_min : (($paged > $page_max) ? $page_max : $paged);
264
- $page_prev = ($page_now > 1) ? $page_now - 1 : null;
265
- $page_next = ($page_now < $page_max) ? $page_now + 1 : null;
266
-
267
- $page_top = ($page_now < 1) ? 0 : (($page_now - 1) * 10); // 0 origin
268
- $page_limit = isset($page_limit) ? intval($page_limit) : 10 ;
269
 
270
- // 表示用データ
271
- if (isset($page_limit)) {
272
- $page_top = intval($page_top);
273
- $page_limit = intval($page_limit);
274
- $sql .= ' LIMIT '.$page_top.' , '.$page_limit;
275
- }
276
- $data_all = $wpdb->get_results($sql); // テーブルデータ
277
-
278
- // ドメイン一覧作成
279
- $sql = "SELECT domain, site_name, count(*) as count FROM $this->db_name GROUP BY domain ASC";
280
- if (strpos($sql, '--') || strpos($sql, 'UPDATE') || strpos($sql, 'UNION') ) { // 気持ち程度のインジェクション対策
281
- die;
282
- }
283
- $domain_list = $wpdb->get_results($sql); // テーブルデータ
284
 
285
  // SUB(CASE WHEN ... END) で一気に取れないぽい?
286
- $result = $wpdb->get_row("SELECT COUNT(*) AS count FROM $this->db_name");
287
  $count_all = $result->count;
288
- $result = $wpdb->get_row("SELECT COUNT(*) AS count FROM $this->db_name WHERE link_type<>0");
289
  $count_internal = $result->count;
290
- $result = $wpdb->get_row("SELECT COUNT(*) AS count FROM $this->db_name WHERE link_type=0");
291
  $count_external = $result->count;
 
 
 
 
 
 
 
 
292
 
293
  ?>
 
 
 
294
 
295
  <ul class='subsubsub'>
296
- <li class="all"><a href="?page=pz-linkcard-cache&link_type=all&orderby=regist&order=desc" <?php if ($link_type == 'all') echo 'class="current"'; ?>><? _e('All', $this->text_domain); ?> <span class="count">(<?php echo $count_all; ?>)</span></a> |</li>
297
- <li class="all"><a href="?page=pz-linkcard-cache&link_type=internal&orderby=regist&order=desc" <?php if ($link_type == 'internal') echo 'class="current"'; ?>><? _e('Internal', $this->text_domain); ?> <span class="count">(<?php echo $count_internal; ?>)</span></a> |</li>
298
- <li class="all"><a href="?page=pz-linkcard-cache&link_type=external&orderby=regist&order=desc" <?php if ($link_type == 'external') echo 'class="current"'; ?>><? _e('External', $this->text_domain); ?> <span class="count">(<?php echo $count_external; ?>)</span></a></li>
299
  </ul>
300
 
301
- <form id="posts-filter" action="" method="post">
302
- <?php wp_nonce_field('pz_cacheman'); ?>
 
 
 
 
 
 
 
 
 
 
 
 
303
  <input type="hidden" name="page" value="pz-linkcard-cache">
304
  <input type="hidden" name="paged" value="<?php echo $page_now; ?>">
305
 
306
- <div class="tablenav top">
307
- <div class="alignleft actions bulkactions">
308
- <label for="bulk-action-selector-top" class="screen-reader-text"><?php _e('Select batch', $this->text_domain); ?></label>
309
- <select name="action" id="bulk-action-selector-top">
310
- <option value="-1" selected="selected"><?php _e('Select', $this->text_domain); ?></option>
311
- <option value="renew"><?php _e('Renew cache', $this->text_domain); ?></option>
312
- <option value="renew_sns"><?php _e('Renew SNS count', $this->text_domain); ?></option>
313
- <option value="delete"><?php _e('Delete from cache', $this->text_domain); ?></option>
314
- </select>
315
- <input type="submit" id="doaction" class="button action" value="<?php _e('Submit', $this->text_domain); ?>" onclick="return confirm(\''.__('Are you sure?', $this->text_domain).'\');" />
316
- </div>
317
-
318
- <div class="alignleft actions bulkactions">
319
- <label for="bulk-action-selector-top" class="screen-reader-text"><?php _e('Select domain', $this->text_domain); ?></label>
320
- <select name="refine" id="bulk-action-selector-top">
321
- <option value="" selected="selected"><?php _e('All domain', $this->text_domain); ?></option>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
322
  <?php
323
- $i = 0;
324
- foreach ($domain_list as $rec) {
325
- $i++;
326
- echo '<option value="'.$rec->domain.'"';
327
- if ($rec->domain == $refine) {
328
- echo 'selected="selecter"';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
329
  }
330
- echo '>'.$rec->domain.' ('.$rec->count.')</option>';
331
- }
332
  ?>
333
- </select>
334
- <input type="submit" id="doaction" class="button action" value="<?php _e('Refine search', $this->text_domain); ?>" />
335
  </div>
336
-
337
- <?php // ページング
338
- echo '<div class="tablenav-pages">';
339
- echo ' <span class="displaying-num">'.$count_all.__('items').'</span>';
340
- echo ' <span class="pagination-links">';
341
- echo_PageButton($page_min, $paged, '&laquo;', 'first-page');
342
- echo_PageButton($page_prev, $paged, '&lsaquo;', 'prev-page');
343
- echo ' <span class="paging-input"><label for="current-page-selector" class="screen-reader-text"></label><input class="current-page" id="current-page-selector" type="text" name="paged" value="'.$page_now.'" size="2" aria-describedby="table-paging" /> / <span class="total-pages">'.$page_max.'</span></span>';
344
- echo_PageButton($page_next, $paged, '&rsaquo;', 'first-page');
345
- echo_PageButton($page_max, $paged, '&raquo;', 'last-page');
346
- echo ' </span>';
347
- echo '</div>';
348
- ?>
349
- <br class="clear">
350
- </div>
351
-
352
- <div id="settings" style="clear:both;">
353
- <table name="cachelist" class="wp-list-table widefat fixed striped posts">
354
- <thead>
355
- <tr>
356
- <td id="cb" class="manage-column column-cb check-column"><label class="screen-reader-text" for="cb-select-all-1"><?php _e('Select all', $this->text_domain); ?></label><input id="cb-select-all-1" type="checkbox" /></td>
357
- <th class="id" style="width: 3em;"><?php echo_THC('id', __('ID', $this->text_domain) ); ?></th>
358
- <th class="url_key" style="width: 9em; display: none;"><?php echo_THC('url_key', __('URL key', $this->text_domain) ); ?></th>
359
- <th class="url" style="min-width: 10em;"><?php echo_THC('url', __('URL', $this->text_domain) ); ?></th>
360
- <th class="title" style="min-width: 10em;"><?php echo_THC('title', __('Title', $this->text_domain) ); ?></th>
361
- <th class="excerpt" style="min-width: 20em;"><?php echo_THC('excerpt', __('Excerpt', $this->text_domain) ); ?></th>
362
- <th class="charset" style="width: 4em;"><?php echo_THC('charset', __('Charset', $this->text_domain) ); ?></th>
363
- <th class="domain" style="min-width: 6em;"><?php echo_THC('domain', __('Domain', $this->text_domain) ); ?></th>
364
- <th class="tw" style="width: 2em;"><?php echo_THC('sns_twitter', __('Tw', $this->text_domain) ); ?></th>
365
- <th class="fb" style="width: 2em;"><?php echo_THC('sns_facebook', __('fb', $this->text_domain) ); ?></th>
366
- <th class="hb" style="width: 2em;"><?php echo_THC('sns_hatena', __('B!', $this->text_domain) ); ?></th>
367
- <th class="regist" style="width: 5em;"><?php echo_THC('regist', __('Regist', $this->text_domain) ); ?></th>
368
- <th class="postid" style="width: 3em;"><?php echo_THC('post_id', __('Post ID', $this->text_domain) ); ?></th>
369
- <th class="result" style="width: 2em;"><?php echo_THC('result_code', __('Result code', $this->text_domain) ); ?></th>
370
- </tr>
371
- </thead>
372
- <tbody>
373
- <?php
374
- foreach ($data_all as $data) {
375
- echo '<tr>';
376
- // echo '<td colspan=12">'.Pz_LinkCard::pz_getHTML(array('url' => $data->url)).'</td>';
377
-
378
- $data_id = $data->id;
379
- echo ' <th scope="row" class="check-column">';
380
- echo ' <label class="screen-reader-text" for="cb-select-'.$data_id.'">'.__('Select', $this->text_domain).'</label>';
381
- echo ' <input id="cb-select-'.$data_id.'" type="checkbox" name="id[]" value="'.$data_id.'" />';
382
- echo ' <div class="locked-indicator"></div>';
383
- echo ' </th>';
384
-
385
- echo ' <td>'.$data_id.'</td>';
386
- echo ' <td style="display: none;">'.bin2hex($data->url_key).'</td>';
387
-
388
- $url = esc_url($data->url);
389
- $title = htmlentities($data->title);
390
- echo ' <td colspan="2">';
391
- echo ' <div style="word-break: break-all; font-size: 60%;">';
392
- if ($data->link_type) {
393
- echo '<a href="'.$url.'">'.$url.'</a>';
394
- } else {
395
- echo $url;
396
- }
397
- echo '</div><div>'.$title.'</div>';
398
- echo ' <div id="inline_'.$data_id.'"style="font-size: 90%;">';
399
- echo '<a href="'.wp_nonce_url('?page=pz-linkcard-cache&link_type='.$link_type.'&orderby='.$orderby.'&order='.$order.'&paged='.$page_now.'&refine='.$refine.'&action=edit&id[0]='.$data_id, 'pz_cacheman').'">'.__('edit',$this->text_domain).'</a> | ';
400
- echo '<a href="'.wp_nonce_url('?page=pz-linkcard-cache&link_type='.$link_type.'&orderby='.$orderby.'&order='.$order.'&paged='.$page_now.'&refine='.$refine.'&action=renew&id[0]='.$data_id, 'pz_cacheman').'" onclick="return confirm(\''.__('Are you sure?', $this->text_domain).'\');">'.__('renew',$this->text_domain).'</a> | ';
401
- echo '<a href="'.wp_nonce_url('?page=pz-linkcard-cache&link_type='.$link_type.'&orderby='.$orderby.'&order='.$order.'&paged='.$page_now.'&refine='.$refine.'&action=delete&id[0]='.$data_id, 'pz_cacheman').'" onclick="return confirm(\''.__('Are you sure?', $this->text_domain).'\');">'.__('delete',$this->text_domain).'</a>';
402
- echo '</div>';
403
- echo ' </td>';
404
-
405
- $excerpt= htmlentities(mb_strimwidth(html_entity_decode($data->excerpt), 0, 100, '...'));
406
- echo ' <td>'.$excerpt.'</td>';
407
- echo ' <td>'.$data->charset.'</td>';
408
-
409
- echo ' <td><div title="'.$data->domain.'">'.$data->domain.'</div><div><span style="background-color: #888; color: #fff; font-size: 9px;">'.$data->site_name.'</span></div></td>';
410
- // echo ' <td><img src="'.$data->thumbnail.'" style="max-height: 100px; max-width: 100px;"></td>';
411
- // echo ' <td style="word-break: break-all;">'.$data->thumbnail.'</td>';
412
- // echo ' <td></td>';
413
- // echo ' <td><img src="'.$data->favicon.'" style="max-height: 100px; max-width: 100px;"></td>';
414
- // echo ' <td style="word-break: break-all;">'.$data->favicon.'</td>';
415
- // echo ' <td></td>';
416
- $sns_count = $data->sns_twitter;
417
- echo ' <td style="font-size: 60%;">'.(($sns_count >= 0) ? $sns_count : '-').'</td>';
418
- $sns_count = $data->sns_facebook;
419
- echo ' <td style="font-size: 60%;">'.(($sns_count >= 0) ? $sns_count : '-').'</td>';
420
- $sns_count = $data->sns_hatena;
421
- echo ' <td style="font-size: 60%;">'.(($sns_count >= 0) ? $sns_count : '-').'</td>';
422
- echo ' <td>'.$data->regist.'</td>';
423
- echo ' <td style="word-break: break-all;"><a href="'.get_permalink($data->post_id).'" target="_blank" title="'.get_the_title($data->post_id).'">'.$data->post_id.'</td>';
424
- echo ' <td>'.$data->result_code.'</td>';
425
- echo '</tr>';
426
- }
427
-
428
- ?>
429
- </tbody>
430
- </table>
431
  </div>
432
  </div>
433
 
434
  <?php
435
- function echo_PageButton($page_link, $page_now, $text, $class_name) {
436
- $orderby = isset($_REQUEST['orderby'] ) ? $_REQUEST['orderby'] : null;
437
- $order = isset($_REQUEST['order'] ) ? $_REQUEST['order'] : null;
438
- $link_type = isset($_REQUEST['link_type'] ) ? $_REQUEST['link_type'] : null;
439
 
440
- if ($page_link != $page_now && !is_null($page_link)) {
441
- echo '<a class="'.$class_name.'" href="?page=pz-linkcard-cache&link_type='.$link_type.'&orderby='.$orderby.'&order='.$order.'&paged='.$page_link.'">'.$text.'</a>';
442
- } else {
443
- echo '<span class="tablenav-pages-navspan">'.$text.'</span>';
444
  }
445
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
446
 
447
- function echo_THC($item, $text) {
448
- $orderby = isset($_REQUEST['orderby'] ) ? $_REQUEST['orderby'] : null;
449
- $order = isset($_REQUEST['order'] ) ? $_REQUEST['order'] : null;
450
- $refine = isset($_REQUEST['refine'] ) ? $_REQUEST['refine'] : null;
451
- $link_type = isset($_REQUEST['link_type'] ) ? $_REQUEST['link_type'] : null;
452
 
453
- if ($item == $orderby) {
454
- if ($order == 'DESC') {
455
- $mark = '▼';
456
- $order = 'ASC';
457
- } else {
458
- $mark = '▲';
459
- $order = 'DESC';
460
  }
461
- } else {
462
- $mark = '';
463
- $order = 'DESC';
 
464
  }
465
- echo '<a href="?page=pz-linkcard-cache&link_type='.$link_type.'&orderby='.$item.'&order='.$order.'&refine='.$refine.'">'.$text.$mark.'</a>';
466
- }
1
  <?php
2
  if (!function_exists('get_option')) die;
3
  if (!is_user_logged_in()) die;
4
+
5
+ $action = isset($_GET['action']) ? $_GET['action'] : null;
6
+ $sort_key = isset($_GET['sort_key']) ? $_GET['sort_key'] : null;
7
+ $order = isset($_GET['order']) ? $_GET['order'] : null;
8
+ $link_type = isset($_GET['link_type']) ? $_GET['link_type'] : null;
9
+ $cache_id = isset($_GET['cache_id']) ? $_GET['cache_id'] : null;
10
+ $confirm = isset($_GET['confirm']) ? $_GET['confirm'] : null;
11
+ $result_code = isset($_GET['result_code']) ? $_GET['result_code'] : null;
12
+ $paged = isset($_GET['paged']) ? $_GET['paged'] : null;
13
+
14
+ $bulk_id = isset($_REQUEST['id']) ? $_REQUEST['id'] : null;
15
+
16
+ // echo 'action='.$action.'<br />';
17
+ // echo 'sort_key='.$sort_key.'<br />';
18
+ // echo 'order='.$order.'<br />';
19
+ // echo 'link_type='.$link_type.'<br />';
20
+ // echo 'bulk_id=<pre>';
21
+ // print_r($bulk_id);
22
+ // echo '</pre><br />';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
  global $wpdb;
25
 
26
+ if ($action) {
27
+ // check_admin_referer('pz_cacheman');
28
 
29
  switch ($action) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  case 'renew':
31
  if (isset($bulk_id) && is_array($bulk_id)) {
32
+ foreach ($bulk_id as $value) {
33
+ $wpdb->update(
34
+ $this->db,
35
+ array('nexttime' => 0),
36
+ array('id' => $value),
37
+ null,
38
+ array('%d')
39
+ );
40
  }
 
41
  }
42
  break;
43
+
44
  case 'delete':
45
  if (isset($bulk_id) && is_array($bulk_id)) {
46
+ foreach ($bulk_id as $value) {
47
+ $wpdb->delete(
48
+ $this->db,
49
+ array('id' => $value),
50
+ array('%d')
51
+ );
52
  }
 
53
  }
54
  break;
55
  }
56
  }
57
 
58
+ switch ($link_type) {
59
+ case 1:
60
+ $where = 'link_type<>0';
61
+ break;
62
+ case 2:
63
+ $where = 'link_type=0';
64
+ break;
65
+ default:
66
+ $link_tyle = 0;
67
+ $where = null;
68
+ }
69
+
70
+ switch ($sort_key) {
71
  case 'id':
72
  case 'url':
73
  case 'url_key':
74
  case 'link_type':
75
  case 'site_name':
76
  case 'domain':
 
77
  case 'title':
78
  case 'excerpt':
79
  case 'result_code':
85
  case 'nexttime':
86
  break;
87
  default:
88
+ $sort_key = 'uptime';
89
  }
90
 
91
+ switch ($order) {
92
+ case 'desc':
93
  $order = 'DESC';
 
 
 
 
 
 
 
 
 
 
 
94
  break;
95
  default:
96
+ $order = 'DESC';
 
 
 
 
 
 
 
97
  }
98
 
99
+ $sql = "SELECT * FROM $this->db";
100
+ if (isset($where)) {
101
+ $sql .= ' WHERE '.$where;
 
 
 
 
102
  }
103
+ if (isset($sort_key)) {
104
+ $sql .= ' ORDER BY '.$sort_key.' '.$order;
105
  }
 
 
 
 
 
 
 
 
 
 
 
 
106
 
107
+ // テーブルデータ
108
+ $data_all = $wpdb->get_results($sql);
 
 
 
 
 
 
 
 
 
 
 
 
109
 
110
  // SUB(CASE WHEN ... END) で一気に取れないぽい?
111
+ $result = $wpdb->get_row("SELECT COUNT(*) AS count FROM $this->db");
112
  $count_all = $result->count;
113
+ $result = $wpdb->get_row("SELECT COUNT(*) AS count FROM $this->db WHERE link_type<>0");
114
  $count_internal = $result->count;
115
+ $result = $wpdb->get_row("SELECT COUNT(*) AS count FROM $this->db WHERE link_type=0");
116
  $count_external = $result->count;
117
+ $count_now = count($data_all);
118
+
119
+ $page_min = 1;
120
+ $page_max = ceil($count_now / 5);
121
+ $page_now = $paged;
122
+ $page_now = 2;
123
+ $page_prev = ($page_now > 1) ? $page_now - 1 : null;
124
+ $page_next = ($page_now < $page_max) ? $page_now + 1 : null;
125
 
126
  ?>
127
+ <div class="wrap">
128
+
129
+ <h1><?php _e('LinkCard cache manager', $this->text_domain); ?></h1>
130
 
131
  <ul class='subsubsub'>
132
+ <li class="all"><a href="tools.php?page=pz-linkcard-cache&sort_key=<?php echo $sortkey; ?>&link_type=0" <?php if ($link_type == 0) echo 'class="current"'; ?>><? _e('All', $this->text_domain); ?> <span class="count">(<?php echo $count_all; ?>)</span></a> |</li>
133
+ <li class="all"><a href="tools.php?page=pz-linkcard-cache&sort_key=<?php echo $sortkey; ?>&link_type=1" <?php if ($link_type == 1) echo 'class="current"'; ?>><? _e('Internal', $this->text_domain); ?> <span class="count">(<?php echo $count_internal; ?>)</span></a> |</li>
134
+ <li class="all"><a href="tools.php?page=pz-linkcard-cache&sort_key=<?php echo $sortkey; ?>&link_type=2" <?php if ($link_type == 2) echo 'class="current"'; ?>><? _e('External', $this->text_domain); ?> <span class="count">(<?php echo $count_external; ?>)</span></a></li>
135
  </ul>
136
 
137
+ <?php /*
138
+ <div class='tablenav-pages'>
139
+ <span class="displaying-num"><?php echo $count_all.__('items'); ?></span>
140
+ <span class='pagination-links'>
141
+ <span class="tablenav-pages-navspan" aria-hidden="true">&laquo;</span>
142
+ <span class="tablenav-pages-navspan" aria-hidden="true">&lsaquo;<?php echo $page_prev;?></span>
143
+ <span class="paging-input"><label for="current-page-selector" class="screen-reader-text"></label><input class='current-page' id='current-page-selector' type='text' name='paged' value='<?php echo $page_now; ?>' size='2' aria-describedby='table-paging' /> / <span class='total-pages'><?php echo $page_max; ?></span></span>
144
+ <span class="tablenav-pages-navspan" aria-hidden="true">&rsaquo;<?php echo $page_next;?></span>
145
+ <span class="tablenav-pages-navspan" aria-hidden="true">&raquo;</span>
146
+ </div>
147
+ */ ?>
148
+
149
+ <form id="posts-filter" action="" method="get">
150
+ <?php /* wp_nonce_field('pz_cacheman'); */ ?>
151
  <input type="hidden" name="page" value="pz-linkcard-cache">
152
  <input type="hidden" name="paged" value="<?php echo $page_now; ?>">
153
 
154
+ <div class="alignleft actions bulkactions">
155
+ <label for='bulk-action-selector-top' class='screen-reader-text'><?php _e('Select batch', $this->text_domain); ?></label>
156
+ <select name='action' id='bulk-action-selector-top'>
157
+ <option value='-1' selected='selected'><?php _e('Select', $this->text_domain); ?></option>
158
+ <option value='renew' class="hide-if-no-js"><?php _e('Renew SNS count', $this->text_domain); ?></option>
159
+ <option value='delete'><?php _e('Delete', $this->text_domain); ?></option>
160
+ </select>
161
+ <input type="submit" id="doaction" class="button action" value="<?php _e('Submit', $this->text_domain); ?>" />
162
+
163
+ <div id="settings" style="clear:both;">
164
+
165
+ <table name="cachelist" class="wp-list-table widefat fixed striped posts">
166
+ <thead>
167
+ <tr>
168
+
169
+ <td id='cb' class='manage-column column-cb check-column'>
170
+ <label class="screen-reader-text" for="cb-select-all-1">'.__('Select all', $this->text_domain).'</label>
171
+ <input id="cb-select-all-1" type="checkbox" />
172
+ </td>
173
+
174
+ <th>
175
+ <a href="tools.php?page=pz-linkcard-cache&sort_key=url&link_type=<?php echo $link_type; ?>"><?php _e('URL', $this->text_domain); ?></a>
176
+ </th>
177
+ <th>
178
+ <a href="tools.php?page=pz-linkcard-cache&sort_key=title&link_type=<?php echo $link_type; ?>"><?php _e('Title', $this->text_domain); ?></a>
179
+ </th>
180
+ <th>
181
+ <a href="tools.php?page=pz-linkcard-cache&sort_key=site_name&link_type=<?php echo $link_type; ?>"><?php _e('Site name', $this->text_domain); ?></a>
182
+ </th>
183
+ <th style="word-break: keep-all; width: 50px;">
184
+ <?php _e('Tw', $this->text_domain); ?>
185
+ </th>
186
+ <th style="word-break: keep-all; width: 50px;">
187
+ <?php _e('f', $this->text_domain); ?>
188
+ </th>
189
+ <th style="word-break: keep-all; width: 50px;">
190
+ <?php _e('B!', $this->text_domain); ?>
191
+ </th>
192
+ <th style="word-break: keep-all; width: 70px;">
193
+ <a href="tools.php?page=pz-linkcard-cache&sort_key=regist&link_type=<?php echo $link_type; ?>"><?php _e('Regist', $this->text_domain); ?></a>
194
+ </th>
195
+ <th style="word-break: keep-all; width: 60px;">
196
+ <a href="tools.php?page=pz-linkcard-cache&sort_key=post_id&link_type=<?php echo $link_type; ?>"><?php _e('Post ID', $this->text_domain); ?></a>
197
+ </th>
198
+ <th style="word-break: keep-all; width: 45px;">
199
+ <a href="tools.php?page=pz-linkcard-cache&sort_key=result_code&link_type=<?php echo $link_type; ?>"><?php _e('Result code', $this->text_domain); ?></a>
200
+ </th>
201
+ </tr>
202
+ </thead>
203
+ <tbody>
204
  <?php
205
+ foreach ($data_all as $data) {
206
+ echo '<tr>';
207
+
208
+ echo ' <th scope="row" class="check-column">';
209
+ echo ' <label class="screen-reader-text" for="cb-select-'.$data->id.'">'.__('Select', $this->text_domain).'</label>';
210
+ echo ' <input id="cb-select-'.$data->id.'" type="checkbox" name="id[]" value="'.$data->id.'" />';
211
+ echo ' <div class="locked-indicator"></div>';
212
+ echo ' </th>';
213
+
214
+
215
+ // echo ' <td align="center"><a href="tools.php?page=pz-linkcard-cache&action=delete&cache_id='.$data->id.'&confirm='.$data->uptime.'">'.__('Delete', $text_domain).'</a></td>';
216
+ // echo ' <td align="center"><a href="tools.php?page=pz-linkcard-cache&action=delete&cache_id='.$data->id.'&confirm='.$data->uptime.'">'.__('Delete', $text_domain).'</a></td>';
217
+
218
+ echo ' <td style="word-break: break-all;">'.esc_url($data->url).'</td>';
219
+ echo ' <td>'.htmlentities($data->title).'</td>';
220
+ echo ' <td><span title="'.$data->domain.'">'.$data->site_name.'</span></td>';
221
+ // echo ' <td><img src="'.$data->thumbnail.'" style="max-height: 100px; max-width: 100px;"></td>';
222
+ // echo ' <td style="word-break: break-all;">'.$data->thumbnail.'</td>';
223
+ // echo ' <td></td>';
224
+ // echo ' <td><img src="'.$data->favicon.'" style="max-height: 100px; max-width: 100px;"></td>';
225
+ // echo ' <td style="word-break: break-all;">'.$data->favicon.'</td>';
226
+ // echo ' <td></td>';
227
+ $sns_count = $data->sns_twitter;
228
+ echo ' <td>'.(($sns_count >= 0) ? $sns_count : '-').'</td>';
229
+ $sns_count = $data->sns_facebook;
230
+ echo ' <td>'.(($sns_count >= 0) ? $sns_count : '-').'</td>';
231
+ $sns_count = $data->sns_hatena;
232
+ echo ' <td>'.(($sns_count >= 0) ? $sns_count : '-').'</td>';
233
+ echo ' <td>'.$data->regist.'</td>';
234
+ echo ' <td><a href="'.get_permalink($data->post_id).'" target="_blank" title="'.get_the_title($data->post_id).'">'.$data->post_id.'</td>';
235
+ echo ' <td>'.$data->result_code.'</td>';
236
+ echo '</tr>';
237
  }
 
 
238
  ?>
239
+ </tbody>
240
+ </table>
241
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
242
  </div>
243
  </div>
244
 
245
  <?php
246
+ function paging($pages = '', $range = 2) {
247
+ $showitems = ($range * 2)+1;
 
 
248
 
249
+ global $paged;
250
+ if(empty($paged)) {
251
+ $paged = 1;
 
252
  }
253
+ if($pages == '') {
254
+ global $wp_query;
255
+ $pages = $wp_query->max_num_pages;
256
+ if (!$pages) {
257
+ $pages = 1;
258
+ }
259
+ }
260
+
261
+ if(1 != $pages) {
262
+ echo "<div class='pagination'>";
263
+ if($paged > 2 && $paged > $range+1 && $showitems < $pages) {
264
+ echo "<a href='".get_pagenum_link(1)."'>&laquo;</a>";
265
+ }
266
+ if($paged > 1 && $showitems < $pages) {
267
+ echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo;</a>";
268
+ }
269
 
270
+ for ($i=1; $i <= $pages; $i++) {
271
+ if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )) {
272
+ echo ($paged == $i)? "<span class='current'>".$i."</span>":"<a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a>";
273
+ }
274
+ }
275
 
276
+ if ($paged < $pages && $showitems < $pages) {
277
+ echo "<a href='".get_pagenum_link($paged + 1)."'>&rsaquo;</a>";
 
 
 
 
 
278
  }
279
+ if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) {
280
+ echo "<a href='".get_pagenum_link($pages)."'>&raquo;</a>";
281
+ }
282
+ echo "</div>\n";
283
  }
284
+ }
285
+ ?>
pz-linkcard-settings.php CHANGED
@@ -71,37 +71,36 @@
71
  <h3><?php _e('Basic', $this->text_domain); ?></h3>
72
  <table class="form-table">
73
  <tr valign="top">
74
- <th scope="row"><label for="inputtext"><?php _e('ShortCode1', $this->text_domain); ?></label></th>
75
  <td><input name="properties[code1]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['code1']); ?>" class="regular-text" />
76
- <p><?php _e('Case-sensitive', $this->text_domain); ?></p></td>
77
- </tr>
78
- <tr valign="top">
79
- <th scope="row"><label for="inputtext"><?php _e('Use inlinetext', $this->text_domain); ?></label></th>
80
- <td>
81
- [<?php echo esc_attr($this->options['code1']); ?> url="xxx"]
82
- <select name="properties[use-inline]">
83
- <option value="" <?php if($this->options['use-inline'] == '') echo 'selected="selected"'; ?>><?php _e('No use', $this->text_domain); ?></option>
84
- <option value="1" <?php if($this->options['use-inline'] == '1') echo 'selected="selected"'; ?>><?php _e('Use to excerpt', $this->text_domain); ?></option>
85
- <option value="2" <?php if($this->options['use-inline'] == '2') echo 'selected="selected"'; ?>><?php _e('Use to title', $this->text_domain); ?></option>
86
- </select>
87
- [/<?php echo esc_attr($this->options['code1']); ?>]
88
- <p><?php _e('This setting applies only to the Shortcode1', $this->text_domain); ?></p></td>
89
- </td>
90
  </tr>
91
  <tr valign="top">
92
  <th scope="row"><label for="inputtext"><?php _e('ShortCode 2', $this->text_domain); ?></label></th>
93
  <td><input name="properties[code2]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['code2']); ?>" class="regular-text" />
94
- <p><?php _e('Case-sensitive', $this->text_domain); ?></p></td>
95
  </tr>
96
- <tr valign="top">
97
  <th scope="row"><label for="inputtext"><?php _e('ShortCode 3', $this->text_domain); ?></label></th>
98
  <td><input name="properties[code3]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['code3']); ?>" class="regular-text" />
99
- <p><?php _e('Case-sensitive', $this->text_domain); ?></p></td>
100
  </tr>
101
  <tr valign="top" style="display: none;">
102
  <th scope="row"><label for="inputtext"><?php _e('ShortCode 4', $this->text_domain); ?></label></th>
103
  <td><input name="properties[code4]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['code4']); ?>" class="regular-text" />
104
- <p><?php _e('Case-sensitive', $this->text_domain); ?></p></td>
 
 
 
 
 
 
 
 
 
 
 
 
105
  </tr>
106
 
107
  <tr valign="top">
@@ -116,7 +115,6 @@
116
  <option value="slt" <?php if($this->options['special-format'] == 'slt') echo 'selected="selected"'; ?>><?php _e('Slanting', $this->text_domain); ?></option>
117
  <option value="3Dr" <?php if($this->options['special-format'] == '3Dr') echo 'selected="selected"'; ?>><?php _e('3D Rotate', $this->text_domain); ?></option>
118
  <option value="ppc" <?php if($this->options['special-format'] == 'ppc') echo 'selected="selected"'; ?>><?php _e('Curling paper', $this->text_domain); ?></option>
119
- <option value="tac" <?php if($this->options['special-format'] == 'tac') echo 'selected="selected"'; ?>><?php _e('Taping and curling', $this->text_domain); ?></option>
120
  <option value="inN" <?php if($this->options['special-format'] == 'inN') echo 'selected="selected"'; ?>><?php _e('Neutral', $this->text_domain); ?></option>
121
  <option value="inI" <?php if($this->options['special-format'] == 'inI') echo 'selected="selected"'; ?>><?php _e('Orange', $this->text_domain); ?></option>
122
  <option value="inE" <?php if($this->options['special-format'] == 'inE') echo 'selected="selected"'; ?>><?php _e('Green', $this->text_domain); ?></option>
@@ -242,24 +240,6 @@
242
  <td>
243
 
244
  <table style="border: 1px solid #000; background-color: #fff;">
245
- <tr>
246
- <td colspan="2">
247
- <?php _e('Site information', $this->text_domain); ?>
248
- <select name="properties[info-position]">
249
- <option value="" <?php if($this->options['info-position'] == '') echo 'selected="selected"'; ?>><?php _e('None', $this->text_domain); ?></option>
250
- <option value="1" <?php if($this->options['info-position'] == '1') echo 'selected="selected"'; ?>><?php _e('Top', $this->text_domain); ?></option>
251
- <option value="2" <?php if($this->options['info-position'] == '2') echo 'selected="selected"'; ?>><?php _e('Bottom', $this->text_domain); ?></option>
252
- </select>
253
- <input name="properties[use-sitename]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['use-sitename']) ? $this->options['use-sitename'] : null, 1); ?> /><?php _e('Use SiteName', $this->text_domain); ?>
254
- </td>
255
- </tr>
256
- <tr>
257
- <td>
258
- <input name="properties[separator]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['separator']) ? $this->options['separator'] : null, 1); ?> /><?php _e('Separator line', $this->text_domain); ?>
259
- </td>
260
- <td>
261
- </td>
262
- </tr>
263
  <tr>
264
  <td>
265
  <input name="properties[display-url]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['display-url']) ? $this->options['display-url'] : null, 1); ?> /><?php _e('Display URL', $this->text_domain); ?>
@@ -284,6 +264,17 @@
284
  <input name="properties[display-excerpt]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['display-excerpt']) ? $this->options['display-excerpt'] : null, 1); ?> /><?php _e('Display excerpt', $this->text_domain); ?>
285
  </td>
286
  </tr>
 
 
 
 
 
 
 
 
 
 
 
287
  <tr>
288
  <td>
289
  <input name="properties[shadow-inset]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['shadow-inset']) ? $this->options['shadow-inset'] : null, 1); ?> /><?php _e('Hollow', $this->text_domain); ?>
@@ -307,9 +298,9 @@
307
  <option value="1" <?php if($this->options['sns-position'] == '1') echo 'selected="selected"'; ?>><?php _e('After Title', $this->text_domain); ?></option>
308
  <option value="2" <?php if($this->options['sns-position'] == '2') echo 'selected="selected"'; ?>><?php _e('After site-name', $this->text_domain); ?></option>
309
  </select>
310
- <input name="properties[sns-tw]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['sns-tw']) ? $this->options['sns-tw'] : null, 1); ?> /><?php _e('Twitter', $this->text_domain); ?>
311
- <input name="properties[sns-fb]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['sns-fb']) ? $this->options['sns-fb'] : null, 1); ?> /><?php _e('Facebook', $this->text_domain); ?>
312
- <input name="properties[sns-hb]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['sns-hb']) ? $this->options['sns-hb'] : null, 1); ?> /><?php _e('Hatena', $this->text_domain); ?>
313
  <br /><?php _e('There is a possibility that the screen display is slow If you enable this setting.', $this->text_domain); ?>
314
  </td>
315
  </tr>
@@ -442,15 +433,13 @@
442
  <th scope="row"><label for="inputtext"><?php _e('Site information', $this->text_domain); ?></label></th>
443
  <td><input name="properties[ex-info]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['ex-info']); ?>" class="regular-text" /></td>
444
  </tr>
445
- <tr valign="top">
446
- <th scope="row"><label for="inputtext"><?php _e('Open new window/tab', $this->text_domain); ?></label></th>
447
- <td><input name="properties[ex-target]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['ex-target']) ? $this->options['ex-target'] : null, 1); ?> /></td>
448
- </tr>
449
  </table>
450
  <?php submit_button(); ?>
451
 
452
  <h3><?php _e('Internal link', $this->text_domain); ?></h3>
453
  <table class="form-table">
 
454
  <tr valign="top">
455
  <th scope="row"><label for="inputtext"><?php _e('Background Color', $this->text_domain); ?></label></th>
456
  <td><input name="properties[in-bgcolor]" type="text" class="color-picker" id="pickedcolor" value="<?php echo esc_attr($this->options['in-bgcolor']); ?>" /></td>
@@ -483,15 +472,10 @@
483
  <th scope="row"><label for="inputtext"><?php _e('Site information', $this->text_domain); ?></label></th>
484
  <td><input name="properties[in-info]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['in-info']); ?>" class="regular-text" /><br /></td>
485
  </tr>
 
486
  <tr valign="top">
487
- <th scope="row"><label for="inputtext"><?php _e('Open new window/tab', $this->text_domain); ?></label></th>
488
- <td><input name="properties[in-target]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['in-target']) ? $this->options['in-target'] : null, 1); ?> /></td>
489
  </tr>
490
- </table>
491
- <?php submit_button(); ?>
492
-
493
- <h3><?php _e('Same-page link', $this->text_domain); ?></h3>
494
- <table class="form-table">
495
  <tr valign="top">
496
  <th scope="row"><label for="inputtext"><?php _e('Background Color', $this->text_domain); ?></label></th>
497
  <td><input name="properties[th-bgcolor]" type="text" class="color-picker" id="pickedcolor" value="<?php echo esc_attr($this->options['th-bgcolor']); ?>" /></td>
@@ -500,22 +484,11 @@
500
  <th scope="row"><label for="inputtext"><?php _e('Background Image', $this->text_domain); ?></label></th>
501
  <td><input name="properties[th-image]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['th-image']); ?>" size="80" /></td>
502
  </tr>
503
- <tr valign="top">
504
- <th scope="row"><label for="inputtext"><?php _e('Thumbnail', $this->text_domain); ?></label></th>
505
- <td><?php _e('It is common with setting Internal-link', $this->text_domain); ?></td>
506
- </re>
507
- <tr valign="top">
508
- <th scope="row"><label for="inputtext"><?php _e('Favicon', $this->text_domain); ?></label></th>
509
- <td><?php _e('It is common with setting Internal-link', $this->text_domain); ?></td>
510
- </re>
511
  <tr valign="top">
512
  <th scope="row"><label for="inputtext"><?php _e('Site information', $this->text_domain); ?></label></th>
513
  <td><input name="properties[th-info]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['th-info']); ?>" class="regular-text" /></td>
514
  </tr>
515
- <tr valign="top">
516
- <th scope="row"><label for="inputtext"><?php _e('Open new window/tab', $this->text_domain); ?></label></th>
517
- <td><?php _e('It is common with setting Internal-link', $this->text_domain); ?></td>
518
- </re>
519
  </table>
520
  <?php submit_button(); ?>
521
 
71
  <h3><?php _e('Basic', $this->text_domain); ?></h3>
72
  <table class="form-table">
73
  <tr valign="top">
74
+ <th scope="row"><label for="inputtext"><?php _e('ShortCode', $this->text_domain); ?></label></th>
75
  <td><input name="properties[code1]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['code1']); ?>" class="regular-text" />
76
+ <p><?php _e('distinguish between uppercase and lowercase letters', $this->text_domain); ?></p></td>
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  </tr>
78
  <tr valign="top">
79
  <th scope="row"><label for="inputtext"><?php _e('ShortCode 2', $this->text_domain); ?></label></th>
80
  <td><input name="properties[code2]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['code2']); ?>" class="regular-text" />
81
+ <p><?php _e('distinguish between uppercase and lowercase letters', $this->text_domain); ?></p></td>
82
  </tr>
83
+ <tr valign="top" style="display: none;">
84
  <th scope="row"><label for="inputtext"><?php _e('ShortCode 3', $this->text_domain); ?></label></th>
85
  <td><input name="properties[code3]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['code3']); ?>" class="regular-text" />
86
+ <p><?php _e('distinguish between uppercase and lowercase letters', $this->text_domain); ?></p></td>
87
  </tr>
88
  <tr valign="top" style="display: none;">
89
  <th scope="row"><label for="inputtext"><?php _e('ShortCode 4', $this->text_domain); ?></label></th>
90
  <td><input name="properties[code4]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['code4']); ?>" class="regular-text" />
91
+ <p><?php _e('distinguish between uppercase and lowercase letters', $this->text_domain); ?></p></td>
92
+ </tr>
93
+ <tr valign="top">
94
+ <th scope="row"><label for="inputtext"><?php _e('Use inlinetext', $this->text_domain); ?></label></th>
95
+ <td>
96
+ <?php _e('[Shortcode url="xxx"]', $this->text_domain); ?>
97
+ <select name="properties[use-inline]">
98
+ <option value="" <?php if($this->options['use-inline'] == '') echo 'selected="selected"'; ?>><?php _e('No use', $this->text_domain); ?></option>
99
+ <option value="1" <?php if($this->options['use-inline'] == '1') echo 'selected="selected"'; ?>><?php _e('Use to excerpt', $this->text_domain); ?></option>
100
+ <option value="2" <?php if($this->options['use-inline'] == '2') echo 'selected="selected"'; ?>><?php _e('Use to title', $this->text_domain); ?></option>
101
+ </select>
102
+ <?php _e('[/Shortcode]', $this->text_domain); ?>
103
+ </td>
104
  </tr>
105
 
106
  <tr valign="top">
115
  <option value="slt" <?php if($this->options['special-format'] == 'slt') echo 'selected="selected"'; ?>><?php _e('Slanting', $this->text_domain); ?></option>
116
  <option value="3Dr" <?php if($this->options['special-format'] == '3Dr') echo 'selected="selected"'; ?>><?php _e('3D Rotate', $this->text_domain); ?></option>
117
  <option value="ppc" <?php if($this->options['special-format'] == 'ppc') echo 'selected="selected"'; ?>><?php _e('Curling paper', $this->text_domain); ?></option>
 
118
  <option value="inN" <?php if($this->options['special-format'] == 'inN') echo 'selected="selected"'; ?>><?php _e('Neutral', $this->text_domain); ?></option>
119
  <option value="inI" <?php if($this->options['special-format'] == 'inI') echo 'selected="selected"'; ?>><?php _e('Orange', $this->text_domain); ?></option>
120
  <option value="inE" <?php if($this->options['special-format'] == 'inE') echo 'selected="selected"'; ?>><?php _e('Green', $this->text_domain); ?></option>
240
  <td>
241
 
242
  <table style="border: 1px solid #000; background-color: #fff;">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
243
  <tr>
244
  <td>
245
  <input name="properties[display-url]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['display-url']) ? $this->options['display-url'] : null, 1); ?> /><?php _e('Display URL', $this->text_domain); ?>
264
  <input name="properties[display-excerpt]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['display-excerpt']) ? $this->options['display-excerpt'] : null, 1); ?> /><?php _e('Display excerpt', $this->text_domain); ?>
265
  </td>
266
  </tr>
267
+ <tr>
268
+ <td colspan="2">
269
+ <?php _e('Site information', $this->text_domain); ?>
270
+ <select name="properties[info-position]">
271
+ <option value="" <?php if($this->options['info-position'] == '') echo 'selected="selected"'; ?>><?php _e('None', $this->text_domain); ?></option>
272
+ <option value="1" <?php if($this->options['info-position'] == '1') echo 'selected="selected"'; ?>><?php _e('Top', $this->text_domain); ?></option>
273
+ <option value="2" <?php if($this->options['info-position'] == '2') echo 'selected="selected"'; ?>><?php _e('Bottom', $this->text_domain); ?></option>
274
+ </select>
275
+ <input name="properties[use-sitename]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['use-sitename']) ? $this->options['use-sitename'] : null, 1); ?> /><?php _e('Use SiteName', $this->text_domain); ?>
276
+ </td>
277
+ </tr>
278
  <tr>
279
  <td>
280
  <input name="properties[shadow-inset]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['shadow-inset']) ? $this->options['shadow-inset'] : null, 1); ?> /><?php _e('Hollow', $this->text_domain); ?>
298
  <option value="1" <?php if($this->options['sns-position'] == '1') echo 'selected="selected"'; ?>><?php _e('After Title', $this->text_domain); ?></option>
299
  <option value="2" <?php if($this->options['sns-position'] == '2') echo 'selected="selected"'; ?>><?php _e('After site-name', $this->text_domain); ?></option>
300
  </select>
301
+ <input name="properties[sns-hatena]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['sns-hatena']) ? $this->options['sns-hatena'] : null, 1); ?> /><?php _e('Hatena', $this->text_domain); ?>
302
+ <input name="properties[sns-facebook]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['sns-facebook']) ? $this->options['sns-facebook'] : null, 1); ?> /><?php _e('Facebook', $this->text_domain); ?>
303
+ <input name="properties[sns-twitter]" type="checkbox" id="check" value="1" <?php checked(isset($this->options['sns-twitter']) ? $this->options['sns-twitter'] : null, 1); ?> /><?php _e('Twitter', $this->text_domain); ?>
304
  <br /><?php _e('There is a possibility that the screen display is slow If you enable this setting.', $this->text_domain); ?>
305
  </td>
306
  </tr>
433
  <th scope="row"><label for="inputtext"><?php _e('Site information', $this->text_domain); ?></label></th>
434
  <td><input name="properties[ex-info]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['ex-info']); ?>" class="regular-text" /></td>
435
  </tr>
436
+
 
 
 
437
  </table>
438
  <?php submit_button(); ?>
439
 
440
  <h3><?php _e('Internal link', $this->text_domain); ?></h3>
441
  <table class="form-table">
442
+
443
  <tr valign="top">
444
  <th scope="row"><label for="inputtext"><?php _e('Background Color', $this->text_domain); ?></label></th>
445
  <td><input name="properties[in-bgcolor]" type="text" class="color-picker" id="pickedcolor" value="<?php echo esc_attr($this->options['in-bgcolor']); ?>" /></td>
472
  <th scope="row"><label for="inputtext"><?php _e('Site information', $this->text_domain); ?></label></th>
473
  <td><input name="properties[in-info]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['in-info']); ?>" class="regular-text" /><br /></td>
474
  </tr>
475
+
476
  <tr valign="top">
477
+ <th scope="row"><label for="inputtext"><?php _e('This page', $this->text_domain); ?></label></th>
 
478
  </tr>
 
 
 
 
 
479
  <tr valign="top">
480
  <th scope="row"><label for="inputtext"><?php _e('Background Color', $this->text_domain); ?></label></th>
481
  <td><input name="properties[th-bgcolor]" type="text" class="color-picker" id="pickedcolor" value="<?php echo esc_attr($this->options['th-bgcolor']); ?>" /></td>
484
  <th scope="row"><label for="inputtext"><?php _e('Background Image', $this->text_domain); ?></label></th>
485
  <td><input name="properties[th-image]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['th-image']); ?>" size="80" /></td>
486
  </tr>
 
 
 
 
 
 
 
 
487
  <tr valign="top">
488
  <th scope="row"><label for="inputtext"><?php _e('Site information', $this->text_domain); ?></label></th>
489
  <td><input name="properties[th-info]" type="text" id="inputtext" value="<?php echo esc_attr($this->options['th-info']); ?>" class="regular-text" /></td>
490
  </tr>
491
+
 
 
 
492
  </table>
493
  <?php submit_button(); ?>
494
 
pz-linkcard-style.php CHANGED
@@ -31,16 +31,13 @@
31
  $file_text = str_replace('/*EX-IMAGE*/', 'background-image: linear-gradient(#78f 0%, #78f 10%, #fff 30%);',$file_text );
32
  $file_text = str_replace('/*IN-IMAGE*/', 'background-image: linear-gradient(#ca4 0%, #ca4 10%, #fff 30%);',$file_text );
33
  $file_text = str_replace('/*TH-IMAGE*/', 'background-image: linear-gradient(#ca4 0%, #ca4 10%, #eee 30%);',$file_text );
34
- switch ($this->options['info-position']) {
35
- case '1':
36
- $file_text = str_replace('/*COLOR-INFO*/', 'color: #fff;',$file_text );
37
- }
38
  $file_text = str_replace('/*THUMBNAIL_POSITION*/', 'float: left;',$file_text );
39
  break;
40
  case 'ct1': // Cellophane tape center
41
  $file_text = str_replace('/*WRAP*/', 'position: relative;',$file_text );
42
  $file_text = str_replace('/*WRAP-BEFORE*/', 'content: "";display: block;position: absolute;left: 40%;top: -16px;width: 95px;height: 25px;z-index: 2;background-color: rgba(243,245,228,0.5);border: 2px solid rgba(255,255,255,0.5);-webkit-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-moz-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-webkit-transform: rotate(3deg);-moz-transform: rotate(3deg);-o-transform: rotate(3deg);', $file_text );
43
- $file_text = str_replace('/*SHADOW*/', 'box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2) , 0px 0px 8px rgba(0, 0, 0, 0.2) inset;', $file_text );
44
  break;
45
  case 'ct2': // Cellophane tape left right
46
  $file_text = str_replace('/*WRAP*/', 'position: relative;',$file_text );
@@ -48,14 +45,14 @@
48
  $file_text = str_replace('/*WRAP-BEFORE*/', 'content: "";display: block;position: absolute;left: -40px;top: -4px;width: 75px;height: 25px;z-index: 2;background-color: rgba(243,245,228,0.5);border: 2px solid rgba(255,255,255,0.5);-webkit-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-moz-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-webkit-transform: rotate(-45deg);-moz-transform: rotate(-45deg);-o-transform: rotate(-45deg);', $file_text );
49
  $file_text = str_replace('/*WRAP-AFTER*/', 'content: "";display: block;position: absolute;right: -20px;top: -2px;width: 75px;height: 25px;z-index: 2;background-color: rgba(243,245,228,0.5);border: 2px solid rgba(255,255,255,0.5);-webkit-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-moz-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-webkit-transform: rotate(16deg);-moz-transform: rotate(16deg);-o-transform: rotate(16deg);transform: rotate(16deg);', $file_text );
50
  $file_text = str_replace('/*MARGIN-RIGHT*/', 'margin-right: 25px;',$file_text );
51
- $file_text = str_replace('/*SHADOW*/', 'box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2) , 0px 0px 8px rgba(0, 0, 0, 0.2) inset;', $file_text );
52
  break;
53
  case 'ct3': // Cellophane long
54
  $file_text = str_replace('/*WRAP*/', 'position: relative;',$file_text );
55
  $file_text = str_replace('/*WRAP-BEFORE*/', 'content: "";display: block;position: absolute;left: -5%;top: -12px;width: 110%;height: 25px;z-index: 2;background-color: rgba(243,245,228,0.5);border: 2px solid rgba(255,255,255,0.5);-webkit-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-moz-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-webkit-transform: rotate(-3deg);-moz-transform: rotate(-3deg);-o-transform: rotate(-3deg);', $file_text );
56
  $file_text = str_replace('/*MARGIN-LEFT*/', 'margin-left: 32px;',$file_text );
57
  $file_text = str_replace('/*MARGIN-RIGHT*/', 'margin-right: 32px;',$file_text );
58
- $file_text = str_replace('/*SHADOW*/', 'box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2) , 0px 0px 8px rgba(0, 0, 0, 0.2) inset;', $file_text );
59
  break;
60
  case 'slt': // Slanting
61
  $file_text = str_replace('/*WRAP*/', 'transform:skew(-10deg) rotate(1deg);-webkit-transform: skew(-10deg) rotate(1deg);-moz-transform:skew(-10deg) rotate(1deg);', $file_text );
@@ -67,18 +64,9 @@
67
  $file_text = str_replace('/*SHADOW*/', 'box-shadow: 0 20px 16px rgba(0, 0, 0, 0.6) , 0px 32px 32px rgba(0, 0, 0, 0.2) inset;', $file_text );
68
  break;
69
  case 'ppc': // Paper Curling
70
- $file_text = str_replace('/*WRAP*/', 'position: relative;',$file_text );
71
- $file_text = str_replace('/*WRAP-AFTER*/', 'z-index: -1; content:""; height: 10px; width: 60%; position: absolute; right: 16px; bottom: 14px; left: auto; transform: skew(5deg) rotate(3deg); -webkit-transform: skew(5deg) rotate(3deg); -moz-transform: skew(5deg) rotate(3deg); box-shadow: 0 16px 16px rgba(0,0,0,1); -webkit-box-shadow: 0 16px 16px rgba(0,0,0,1); -moz-box-shadow: 0 16px 12px rgba(0,0,0,1);', $file_text );
72
- $file_text = str_replace('/*SHADOW*/', 'box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.8) , 0px 0px 12px rgba(0, 0, 0, 0.3) inset;', $file_text );
73
- $file_text = str_replace('/*OPTION*/', 'article { position: relative; z-index: 0; }', $file_text );
74
- break;
75
- case 'tac': // Taping and curling
76
- $file_text = str_replace('/*WRAP*/', 'position: relative;',$file_text );
77
- $file_text = str_replace('/*WRAP-BEFORE*/', 'content: ""; display: block; position: absolute; left: -24px; top: 0px; width: 200px; height: 25px; z-index: 2; background-color: rgba(243,245,228,0.5); border: 2px solid rgba(255,255,255,0.5); -webkit-box-shadow: 1px 1px 4px rgba(200,200,180,0.8); -moz-box-shadow: 1px 1px 4px rgba(200,200,180,0.8); box-shadow: 1px 1px 4px rgba(200,200,180,0.8); -webkit-transform: rotate(-8deg); -moz-transform: rotate(-8deg); -o-transform: rotate(-8deg);', $file_text );
78
- $file_text = str_replace('/*WRAP-AFTER*/', 'z-index: -1; content:""; height: 10px; width: 60%; position: absolute; right: 16px; bottom: 14px; left: auto; transform: skew(5deg) rotate(3deg); -webkit-transform: skew(5deg) rotate(3deg); -moz-transform: skew(5deg) rotate(3deg); box-shadow: 0 16px 16px rgba(0,0,0,1); -webkit-box-shadow: 0 16px 16px rgba(0,0,0,1); -moz-box-shadow: 0 16px 12px rgba(0,0,0,1);', $file_text );
79
- $file_text = str_replace('/*MARGIN-LEFT*/', 'margin-left: 24px;',$file_text );
80
- $file_text = str_replace('/*SHADOW*/', 'box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.8) , 0px 0px 12px rgba(0, 0, 0, 0.3) inset;', $file_text );
81
- $file_text = str_replace('/*OPTION*/', 'article { position: relative; z-index: 0; }', $file_text );
82
  break;
83
  case 'inN': // Neutral
84
  $file_text = str_replace('/*BORDER*/', 'border: 4px solid #59fbea;',$file_text );
@@ -314,16 +302,6 @@
314
  $file_text = str_replace('/*CONTENT-BGCOLOR*/', 'background-color: rgba(255, 255, 255, 0.8 );',$file_text );
315
  }
316
 
317
- // サイト情報の区切り線
318
- if (isset($this->options['separator']) && $this->options['separator'] == '1') {
319
- switch ($this->options['info-position']) {
320
- case '1':
321
- $file_text = str_replace('/*SEPARATOR*/', 'border-top: 1px solid '.$this->options['color-info'].';',$file_text );
322
- case '2':
323
- $file_text = str_replace('/*SEPARATOR*/', 'border-bottom: 1px solid '.$this->options['color-info'].';',$file_text );
324
- }
325
- }
326
-
327
  // ぽぽづれ。へのリンクを表示する
328
  if (isset($this->options['plugin-link']) && $this->options['plugin-link'] == '1') {
329
  $file_text = str_replace('/*CREDIT*/', 'display: block;',$file_text );
31
  $file_text = str_replace('/*EX-IMAGE*/', 'background-image: linear-gradient(#78f 0%, #78f 10%, #fff 30%);',$file_text );
32
  $file_text = str_replace('/*IN-IMAGE*/', 'background-image: linear-gradient(#ca4 0%, #ca4 10%, #fff 30%);',$file_text );
33
  $file_text = str_replace('/*TH-IMAGE*/', 'background-image: linear-gradient(#ca4 0%, #ca4 10%, #eee 30%);',$file_text );
34
+ $file_text = str_replace('/*COLOR-INFO*/', 'color: #ffffff;',$file_text );
 
 
 
35
  $file_text = str_replace('/*THUMBNAIL_POSITION*/', 'float: left;',$file_text );
36
  break;
37
  case 'ct1': // Cellophane tape center
38
  $file_text = str_replace('/*WRAP*/', 'position: relative;',$file_text );
39
  $file_text = str_replace('/*WRAP-BEFORE*/', 'content: "";display: block;position: absolute;left: 40%;top: -16px;width: 95px;height: 25px;z-index: 2;background-color: rgba(243,245,228,0.5);border: 2px solid rgba(255,255,255,0.5);-webkit-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-moz-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-webkit-transform: rotate(3deg);-moz-transform: rotate(3deg);-o-transform: rotate(3deg);', $file_text );
40
+ $file_text = str_replace('/*SHADOW*/', 'box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2) , 0px 0px 16px rgba(0, 0, 0, 0.2) inset;', $file_text );
41
  break;
42
  case 'ct2': // Cellophane tape left right
43
  $file_text = str_replace('/*WRAP*/', 'position: relative;',$file_text );
45
  $file_text = str_replace('/*WRAP-BEFORE*/', 'content: "";display: block;position: absolute;left: -40px;top: -4px;width: 75px;height: 25px;z-index: 2;background-color: rgba(243,245,228,0.5);border: 2px solid rgba(255,255,255,0.5);-webkit-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-moz-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-webkit-transform: rotate(-45deg);-moz-transform: rotate(-45deg);-o-transform: rotate(-45deg);', $file_text );
46
  $file_text = str_replace('/*WRAP-AFTER*/', 'content: "";display: block;position: absolute;right: -20px;top: -2px;width: 75px;height: 25px;z-index: 2;background-color: rgba(243,245,228,0.5);border: 2px solid rgba(255,255,255,0.5);-webkit-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-moz-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-webkit-transform: rotate(16deg);-moz-transform: rotate(16deg);-o-transform: rotate(16deg);transform: rotate(16deg);', $file_text );
47
  $file_text = str_replace('/*MARGIN-RIGHT*/', 'margin-right: 25px;',$file_text );
48
+ $file_text = str_replace('/*SHADOW*/', 'box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2) , 0px 0px 16px rgba(0, 0, 0, 0.2) inset;', $file_text );
49
  break;
50
  case 'ct3': // Cellophane long
51
  $file_text = str_replace('/*WRAP*/', 'position: relative;',$file_text );
52
  $file_text = str_replace('/*WRAP-BEFORE*/', 'content: "";display: block;position: absolute;left: -5%;top: -12px;width: 110%;height: 25px;z-index: 2;background-color: rgba(243,245,228,0.5);border: 2px solid rgba(255,255,255,0.5);-webkit-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-moz-box-shadow: 1px 1px 4px rgba(200,200,180,0.8);box-shadow: 1px 1px 4px rgba(200,200,180,0.8);-webkit-transform: rotate(-3deg);-moz-transform: rotate(-3deg);-o-transform: rotate(-3deg);', $file_text );
53
  $file_text = str_replace('/*MARGIN-LEFT*/', 'margin-left: 32px;',$file_text );
54
  $file_text = str_replace('/*MARGIN-RIGHT*/', 'margin-right: 32px;',$file_text );
55
+ $file_text = str_replace('/*SHADOW*/', 'box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2) , 0px 0px 16px rgba(0, 0, 0, 0.2) inset;', $file_text );
56
  break;
57
  case 'slt': // Slanting
58
  $file_text = str_replace('/*WRAP*/', 'transform:skew(-10deg) rotate(1deg);-webkit-transform: skew(-10deg) rotate(1deg);-moz-transform:skew(-10deg) rotate(1deg);', $file_text );
64
  $file_text = str_replace('/*SHADOW*/', 'box-shadow: 0 20px 16px rgba(0, 0, 0, 0.6) , 0px 32px 32px rgba(0, 0, 0, 0.2) inset;', $file_text );
65
  break;
66
  case 'ppc': // Paper Curling
67
+ $file_text = str_replace('/*WRAP*/', 'position: relative;',$file_text );
68
+ $file_text = str_replace('/*WRAP-AFTER*/', 'z-index:-1;content:"";height:10px;width:60%;position:absolute;right:12px;bottom:11px;left:auto;transform:skew(5deg) rotate(5deg);-webkit-transform:skew(3deg) rotate(3deg);-moz-transform:skew(5deg) rotate(5deg);box-shadow:0 16px 16px rgba(0,0,0,1);-webkit-box-shadow:0 16px 16px rgba(0,0,0,1);-moz-box-shadow:0 16px 12px rgba(0,0,0,1);', $file_text );
69
+ $file_text = str_replace('/*SHADOW*/', 'box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.8) , 0px 0px 16px rgba(0, 0, 0, 0.3) inset;', $file_text );
 
 
 
 
 
 
 
 
 
70
  break;
71
  case 'inN': // Neutral
72
  $file_text = str_replace('/*BORDER*/', 'border: 4px solid #59fbea;',$file_text );
302
  $file_text = str_replace('/*CONTENT-BGCOLOR*/', 'background-color: rgba(255, 255, 255, 0.8 );',$file_text );
303
  }
304
 
 
 
 
 
 
 
 
 
 
 
305
  // ぽぽづれ。へのリンクを表示する
306
  if (isset($this->options['plugin-link']) && $this->options['plugin-link'] == '1') {
307
  $file_text = str_replace('/*CREDIT*/', 'display: block;',$file_text );
pz-linkcard-templete.css CHANGED
@@ -1,4 +1,4 @@
1
- /* [Pz-LkC][1.0.3] CSS */
2
  .linkcard {
3
  /*MARGIN-TOP*/
4
  /*MARGIN-BOTTOM*/
@@ -80,7 +80,6 @@
80
  word-break: break-all;
81
  white-space: normal;
82
  overflow: hidden;
83
- /*SEPARATOR*/
84
  }
85
  .linkcard-title {
86
  /*COLOR-TITLE*/
@@ -252,5 +251,4 @@ blockquote.linkcard-quote {
252
  margin: 0;
253
  width: 100%;
254
  height: 149px;
255
- }
256
- /*OPTION*/
1
+ /* [Pz-LKC][0.0.1] CSS */
2
  .linkcard {
3
  /*MARGIN-TOP*/
4
  /*MARGIN-BOTTOM*/
80
  word-break: break-all;
81
  white-space: normal;
82
  overflow: hidden;
 
83
  }
84
  .linkcard-title {
85
  /*COLOR-TITLE*/
251
  margin: 0;
252
  width: 100%;
253
  height: 149px;
254
+ }
 
pz-linkcard.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Pz-LinkCard
4
  Plugin URI: http://poporon.poponet.jp/pz-linkcard
5
  Description: リンクをカード形式で表示します。
6
- Version: 1.0.3
7
  Author: poporon
8
  Author URI: http://poporon.poponet.jp
9
  License: GPLv2 or later
@@ -12,19 +12,33 @@ License: GPLv2 or later
12
  defined('ABSPATH') || die;
13
 
14
  class Pz_LinkCard {
15
- public $slug; // slug
16
- public $text_domain; // as slug
17
 
18
- public $charset;
19
 
20
- public $plugin_basename;
21
- public $plugin_dir_path;
22
- public $plugin_dir_url;
23
- public $plugin_link; // link to plugin page
24
- private $db_name;
25
 
26
  public $options;
27
- protected $defaults = array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  'code1' => 'blogcard',
29
  'code2' => null,
30
  'code3' => null,
@@ -48,7 +62,6 @@ class Pz_LinkCard {
48
  'display-excerpt' => '1',
49
  'trim-count' => 250,
50
  'info-position' => '1',
51
- 'separator' => null,
52
  'size-info' => '12px',
53
  'size-title' => '16px',
54
  'size-url' => '9px',
@@ -69,56 +82,45 @@ class Pz_LinkCard {
69
  'ex-info' => null,
70
  'in-info' => null,
71
  'th-info' => null,
72
- 'in-target' => null,
73
- 'ex-target' => '1',
74
  'ex-thumbnail' => '0',
75
  'in-thumbnail' => '1',
76
  'ex-favicon' => '3',
77
  'in-favicon' => '1',
78
  'favicon-api' => 'http://www.google.com/s2/favicons?domain=%DOMAIN%',
79
- 'thumbnail-api' => 'http://s.wordpress.com/mshots/v1/%URL%?w=100',
80
  'thumbnail-position'=> '2',
81
  'thumbnail-shadow' => '1',
82
- 'cache-time' => 31536000,
83
  'style-reset-img' => '1',
84
  'style' => null,
85
  'css-file' => null,
86
  'css-path' => null,
87
  'css-url' => null,
 
88
  'sns-position' => '2',
89
- 'sns-tw' => '1',
90
- 'sns-fb' => '1',
91
- 'sns-hb' => '1',
92
  'link-all' => '1',
93
  'blockquote' => null,
94
  'nofollow' => null,
95
  'plugin-link' => null,
96
  'plugin-name' => 'Pz-LinkCard',
97
- 'plugin-version' => '1.0.3',
98
  'plugin-url' => 'http://poporon.poponet.jp/pz-linkcard',
99
  'pz-hbc-options' => null,
100
- 'debug-time' => null
 
101
  );
102
-
103
- public function __construct() {
104
- $this->slug = basename(dirname(__FILE__));
105
- $this->text_domain = $this->slug;
106
-
107
- $this->charset = get_bloginfo('charset');
108
-
109
- $this->plugin_basename = plugin_basename(__FILE__);
110
- $this->plugin_dir_path = plugin_dir_path(__FILE__);
111
- $this->plugin_dir_url = plugin_dir_url (__FILE__);
112
-
113
  $this->options = get_option('Pz_LinkCard_options', $this->defaults );
114
 
115
  // DB
116
  global $wpdb;
117
- $this->db_name = $wpdb->prefix.'pz_linkcard';
118
 
119
  // バージョンが上がっていたら、オプションを更新する
120
  if ($this->options['plugin-version'] < $this->defaults['plugin-version']) {
121
- $this->activation();
122
  }
123
 
124
  // CSS URLが空だったら生成
@@ -128,26 +130,26 @@ class Pz_LinkCard {
128
 
129
  // ショートコードの設定
130
  if ($this->options['code1'] <> '') {
131
- add_shortcode($this->options['code1'], array($this, 'shortcode'));
132
  }
133
  if ($this->options['code2'] <> '') {
134
- add_shortcode($this->options['code2'], array($this, 'shortcode'));
135
  }
136
  if ($this->options['code3'] <> '') {
137
- add_shortcode($this->options['code3'], array($this, 'shortcode'));
138
  }
139
  if ($this->options['code4'] <> '') {
140
- add_shortcode($this->options['code4'], array($this, 'shortcode'));
141
  }
142
 
143
  // 管理画面のとき
144
  if (is_admin()) {
145
- load_plugin_textdomain ($this->text_domain, false, $this->slug.'/languages' ); // 管理画面のみ日本語化
146
- register_activation_hook (__FILE__, array($this, 'activation')); // 有効化したときの処理
147
- register_deactivation_hook (__FILE__, array($this, 'deactivation')); // 無効化したときの処理
148
- add_action ('admin_menu', array($this, 'add_menu')); // 設定メニュー
149
- add_action ('admin_enqueue_scripts', array($this, 'enqueue_admin')); // 設定メニュー用スクリプト
150
- add_filter ('plugin_action_links_'.$this->plugin_basename, array($this, 'action_links')); // プラグイン画面
151
 
152
  if ((isset($this->options['style']) ? $this->options['style'] : '') == '') {
153
  if (is_null($this->options['css-path']) || !file_exists($this->options['css-path'])) {
@@ -160,71 +162,100 @@ class Pz_LinkCard {
160
  require_once ('pz-linkcard-style.php');
161
  }
162
  }
163
- add_action ('wp_enqueue_scripts', array($this, 'enqueue'));
164
  }
165
  }
166
 
167
- public function shortcode($atts, $content = null, $shortcode) {
168
- $url = isset($atts['url']) ? $this->pz_TrimURL($atts['url']) : null;
169
-
170
- // パラメータ
171
- $s_title = isset($atts['title']) ? $atts['title'] : null;
172
- if (isset($atts['content'])) {
173
- $s_excerpt = $atts['content'];
174
- } elseif (isset($atts['contents'])) {
175
- $s_excerpt = $atts['contents'];
176
- } elseif (isset($atts['description'])) {
177
- $s_excerpt = $atts['description'];
178
- } else {
179
- $s_excerpt = null;
180
- }
181
 
182
- // 囲まれ文字(ショートコード1のみ有効)
183
- if ($shortcode == $this->options['code1']) {
184
- switch (isset($this->options['use-inline']) ? $this->options['use-inline'] : null) {
185
- case '1':
186
- $s_excerpt = isset($content) ? $content : '';
187
- break;
188
- case '2':
189
- $s_title = isset($content) ? $content : '';
190
- break;
191
  }
192
  }
 
193
 
194
- $tag = $this->pz_GetHTML(array('url' => $url, 'title' => $s_title, 'content' => $s_excerpt));
195
- return $tag;
 
196
  }
197
 
198
- function pz_TrimURL($url = null) {
199
- if (!isset($url) || $url == '') {
200
- $url = null;
201
- } else {
202
- $url = html_entity_decode($url);
203
- $url = preg_replace('/^[\s \'\"‘’“”″]*(.*?)[\s \'\"‘’“”″]*$/u', '\1', $url);
204
- $url = htmlentities($url);
205
- $url = esc_url($url); // プロトコル除外など
206
- }
207
- return $url;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
  }
209
 
210
- function pz_GetHTML($atts,$content = null) {
211
  global $wpdb;
212
 
213
  $update = false;
214
  $update_cnt = false;
215
  $error = false;
216
- $data = null;
217
 
218
- // リンク先URL
219
- $url = isset($atts['url']) ? $this->pz_TrimURL($atts['url']) : null;
220
-
221
- // 時間計測
222
  if (is_user_logged_in()) {
 
223
  $start_time = microtime(true);
224
  }
225
 
226
- // URLエンコード
227
- $url_esc = urlencode($url);
 
228
 
229
  // リンク先URLからドメイン名を抽出
230
  if (preg_match('{https?://(.+?)/}i', $url.'/',$m)) {
@@ -238,68 +269,50 @@ class Pz_LinkCard {
238
 
239
  // 自サイトチェック
240
  if (preg_match('{'.home_url().'\/.*?}', $url.'/')) {
241
- if (get_permalink() == $url) {
242
  $link_type = 1; // 自ページ
243
  } else {
244
  $link_type = 2; // 自サイト内
245
  }
246
- if (isset($this->options['in-target']) ? $this->options['in-target'] : null == '1') {
247
- $target = ' target="_blank"'; // 新しいページで開く
248
- } else {
249
- $target = ''; // 同ページに開く
250
- }
251
  $nofollow = '';
252
  } else {
253
  $link_type = 0; // 外部サイト
254
- if (isset($this->options['ex-target']) ? $this->options['ex-target'] : null == '1') {
255
- $target = ' target="_blank"'; // 新しいページで開く
256
- } else {
257
- $target = ''; // 同ページに開く
258
- }
259
  $nofollow = isset($this->options['nofollow']) ? ' rel="nofollow"' : '';
260
  }
261
 
262
  // URLをキーにしてDBからキャッシュ取得
263
- $data['id'] = null;
264
- $data['url_key'] = null;
265
- $data['site_name'] = null;
266
- $data['title'] = null;
267
- $data['excerpt'] = null;
268
- $data['charset'] = null;
269
- $data['thumbnail'] = null;
270
- $data['favicon'] = null;
271
- $data['result_code'] = null;
272
- $data['post_id'] = get_the_ID();
273
- $data['sns_twitter'] = -1;
274
- $data['sns_facebook'] = -1;
275
- $data['sns_hatena'] = -1;
276
- $data['uptime'] = null;
277
- $data['nexttime'] = 0;
278
- if (isset($url) && $url) {
279
- $data['url'] = $url;
280
- $result = $this->pz_GetCache($data);
281
- if (isset($result) && is_array($result) && isset($result['url'])) {
282
- $data = $result;
283
- }
284
- }
285
- $data_id = $data['id'];
286
- $url_key = $data['url_key'];
287
- $site_name = $data['site_name'];
288
- $title = $data['title'];
289
- $excerpt = $data['excerpt'];
290
- $charset = $data['charset'];
291
- $thumbnail_url = $data['thumbnail'];
292
- $favicon_url = $data['favicon'];
293
- $result_code = $data['result_code'];
294
- $post_id = $data['post_id'];
295
- $sns_tw = $data['sns_twitter'];
296
- $sns_fb = $data['sns_facebook'];
297
- $sns_hb = $data['sns_hatena'];
298
- $uptime = $data['uptime'];
299
- $nexttime = $data['nexttime'];
300
-
301
- $thumbnail = null;
302
- $favicon = null;
303
 
304
  if ($link_type) { // 自サイト内はキャッシュがあっても常に取得する
305
  if (is_null($data_id)) {
@@ -308,21 +321,17 @@ class Pz_LinkCard {
308
 
309
  if ($link_type == '1') {
310
  $info = isset($this->options['th-info']) ? $this->options['th-info'] : '' ;
311
- $wrap_op = '<div class="linkcard-this-wrapper">';
312
  $wrap_cl = '</div>';
313
  } else {
314
  $info = isset($this->options['in-info']) ? $this->options['in-info'] : '' ;
315
- $wrap_op = '<div class="linkcard-internal-wrapper">';
316
  $wrap_cl = '</div>';
317
  }
318
- $site_name = get_bloginfo('name'); // サイト名
319
- $id = url_to_postid($url); // 記事ID
320
- if ($id) {
321
- $post = get_post($id); // 記事情報
322
- } else {
323
- $post = null;
324
- }
325
 
 
 
326
  // タイトル取得
327
  if ($id) {
328
  if (!$title) {
@@ -332,7 +341,6 @@ class Pz_LinkCard {
332
  }
333
  }
334
  } else {
335
- $result_code = -1;
336
  if (!$title) {
337
  $title = get_bloginfo('name'); // サイト名
338
  if (!$excerpt) {
@@ -348,7 +356,7 @@ class Pz_LinkCard {
348
  $sw_favicon = isset($this->options['in-favicon']) ? $this->options['in-favicon'] : '0' ;
349
  if ($sw_favicon == '1') {
350
  if (function_exists('has_site_icon')) {
351
- $favicon = '<img class="linkcard-favicon" src="'.get_site_icon_url(16, '', 0).'" alt="" />';
352
  } else {
353
  $sw_favicon = isset($this->options['ex-favicon']) ? $this->options['ex-favicon'] : '0' ;
354
  }
@@ -371,7 +379,7 @@ class Pz_LinkCard {
371
  }
372
  return $tag;
373
 
374
- } elseif (is_null($data_id) || (isset($atts['force']) && $atts['force'] == true)) { // キャッシュ無、または前回エラー
375
  // リンク先サイト取得
376
  $html = null;
377
  $error = true;
@@ -382,61 +390,86 @@ class Pz_LinkCard {
382
  $error = false;
383
  $update = true;
384
 
385
- $result_code = -1;
386
  } else {
387
  $result_code = $result['response']['code'];
388
- if ($result_code >= 100 && $result_code <= 499 ) {
389
  $error = false;
390
  $update = true;
391
 
392
- $html = $result['body'];
393
- $charset = null;
394
- foreach(array('UTF-8','SJIS','EUC-JP','ASCII','JIS') as $c_charset) {
395
- if (mb_convert_encoding($html, $this->charset, $c_charset) == $html) {
396
- $charset = $c_charset;
397
- $html = mb_convert_encoding($html, $this->charset, $charset);
398
- }
399
- }
400
- if (is_null($charset)) {
401
- $charset = 'auto';
402
- $html = mb_convert_encoding($html, $this->charset, 'ASCII,JIS,UTF-7,EUC-JP,SJIS,UTF-8');
403
- }
404
  $tags = null;
405
 
406
  // HEADタグ
407
  $head = null;
408
- if (preg_match('/<\s*head\s*[^>]*>(.*)<\s*\/head\s*>/si', $html, $m)) {
409
  $head = $m[1];
410
  }
411
 
412
- $tags = null;
413
- $tags = $this->pz_GetMeta($head);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
414
 
415
  // タイトル
416
- if (isset( $tags['og:title'] ) && $tags['og:title'] ) {
417
- $title = $tags['og:title'] ;
418
- } elseif (isset( $tags['title'] ) && $tags['title'] ) {
419
- $title = $tags['title'] ;
420
  }
421
 
422
  // 抜粋文・概要文
423
- if (isset( $tags['og:description'] ) && $tags['og:description'] ) {
424
- $excerpt = $tags['og:description'] ;
425
- } elseif (isset( $tags['description'] ) && $tags['description'] ) {
426
- $excerpt = $tags['description'] ;
427
- } elseif (isset( $tags['first-p'] ) && $tags['first-p'] ) {
428
- $excerpt = $tags['first-p'] ;
429
  }
430
 
431
  // // OGPから画像URL取得
432
  // if ($sw_thumbnail == '1' && isset($tags['og:image'])) {
433
  // $thumbnail_url = $tags['og:image'];
434
- // $thumbnail = '<img class="linkcard-thumbnail-image" src="'.$thumbnail_url.'" alt="" />';
435
  // }
436
 
437
  // // サイト名
438
- if (isset( $tags['og:site_name'] ) && $tags['og:site_name'] ) {
439
- $site_name = $tags['og:site_name'] ;
440
  }
441
 
442
  }
@@ -446,75 +479,97 @@ class Pz_LinkCard {
446
 
447
  // タイトル整形
448
  if (isset($title)) {
449
- $str = $title;
450
- $str = strip_tags($str); // タグの除去
451
- $str = str_replace(array("\r", "\n"), '', $str); // 改行削除
452
- $str = esc_html($str); // 念のためエスケープ
453
- $str = mb_strimwidth($str, 0, 200, '...'); // タイトルは無条件で200文字で切る
454
- $title = $str;
455
  }
 
456
  // 抜粋文整形
457
  if (isset($excerpt)) {
458
- $str = $excerpt;
459
- $str = strip_tags($str); // タグの除去
460
- $str = preg_replace('/<!--more-->.+/is', '', $str); // moreタグ以降削除
461
- $str = preg_replace('/\[[^]]*\]/', '', $str); // ショートコードすべて除去
462
- $str = str_replace(array("\r", "\n"), '', $str); // 改行削除
463
- $str = esc_html($str); // 念のためエスケープ
464
- $str = mb_strimwidth($str, 0, 500, '...'); // ここでは500文字で切る
465
- $excerpt = $str;
466
  }
467
 
468
  // 取得エラーなし・取得または更新あり
469
  if (!$error && $update && $url) {
470
- if (isset($data_id) && !is_null($data_id)) {
471
- $data['id'] = $data_id;
472
- }
473
- if (isset($url_key) && !is_null($url_key)) {
474
- $data['url_key'] = $url_key;
475
- }
476
- $data['url'] = $url;
477
- $data['link_type'] = $link_type;
478
- $data['site_name'] = $site_name;
479
- $data['domain'] = $domain;
480
- $data['title'] = $title;
481
- $data['excerpt'] = $excerpt;
482
- $data['charset'] = $charset;
483
- $data['thumbnail'] = $thumbnail_url;
484
- $data['favicon'] = $favicon_url;
485
- $data['result_code'] = $result_code;
486
- $data['sns_twitter'] = $sns_tw;
487
- $data['sns_facebook'] = $sns_fb;
488
- $data['sns_hatena'] = $sns_hb;
489
- $data['uptime'] = $uptime;
490
- $data['nexttime'] = $nexttime;
491
- if (isset($atts['force']) && $atts['force'] == true) {
492
- $data['regist'] = current_time('mysql'); // 登録日
493
  }
494
 
495
- $data = $this->pz_SetCache($data);
496
-
497
- if (isset($data['id'])) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
498
  $update = false;
499
  }
500
  }
501
 
 
 
 
 
 
 
 
 
 
 
502
  // ソーシャルカウント
503
  $sns = null;
504
  $sns_info = null;
505
  $sns_title = null;
506
- $sns_renew = false;
507
  if (!$error && (isset($this->options['sns-position']) ? $this->options['sns-position'] : null)) {
508
  $opt = array( 'timeout' => 5 );
509
 
510
- // 保存期間満了でソーシャルカウントをリセット
511
- if (current_time('U') > $nexttime && $result_code <= 200) {
512
- $sns_renew = true;
513
- $update_cnt = true;
514
- }
515
-
516
- if (isset($this->options['sns-tw']) && !is_null($this->options['sns-tw'])) {
517
- $count = $sns_tw;
518
  $count_before = $count;
519
  if ($sns_renew || $count < 0) {
520
  $result = wp_remote_get( 'http://urls.api.twitter.com/1/urls/count.json?url=' .rawurlencode($url), $opt );
@@ -526,13 +581,13 @@ class Pz_LinkCard {
526
  $count = json_decode($result['body'])->count - 0;
527
  }
528
  if ($count <> $count_before) {
529
- $sns_tw = $count;
530
  $update_cnt = true;
531
  }
532
  }
533
  }
534
- if (isset($this->options['sns-fb']) && !is_null($this->options['sns-fb'])) {
535
- $count = $sns_fb;
536
  $count_before = $count;
537
  if ($sns_renew || $count < 0) {
538
  $result = wp_remote_get( 'http://graph.facebook.com/?id=' .rawurlencode($url), $opt );
@@ -545,13 +600,13 @@ class Pz_LinkCard {
545
  $count = (isset($json->shares) ? isset($json->shares) : 0) - 0;
546
  }
547
  if ($count <> $count_before) {
548
- $sns_fb = $count;
549
  $update_cnt = true;
550
  }
551
  }
552
  }
553
- if (isset($this->options['sns-hb']) && !is_null($this->options['sns-hb'])) {
554
- $count = $sns_hb;
555
  $count_before = $count;
556
  if ($sns_renew || $count < 0) {
557
  $result = wp_remote_get( 'http://api.b.st-hatena.com/entry.count?url=' .rawurlencode($url), $opt );
@@ -563,7 +618,7 @@ class Pz_LinkCard {
563
  $count = $result['body'] - 0;
564
  }
565
  if ($count <> $count_before) {
566
- $sns_hb = $count;
567
  $update_cnt = true;
568
  }
569
  }
@@ -571,25 +626,13 @@ class Pz_LinkCard {
571
 
572
  $sns = '<span class="linkcard-share">';
573
  if ((isset($this->options['link-all']) ? $this->options['link-all'] : null) == '1') {
574
- if (isset($this->options['sns-tw']) && !is_null($this->options['sns-tw']) && $sns_tw > 0) {
575
- $sns .= ' <span class="linkcard-sns-twitter no_icon">' .$sns_tw .'&nbsp;tweet' .(($sns_tw > 1) ? 's' : '').'</span>';
576
- }
577
- if (isset($this->options['sns-fb']) && !is_null($this->options['sns-fb']) && $sns_fb > 0) {
578
- $sns .= ' <span class="linkcard-sns-facebook no_icon">' .$sns_fb .'&nbsp;share' .(($sns_fb > 1) ? 's' : '').'</span>';
579
- }
580
- if (isset($this->options['sns-hb']) && !is_null($this->options['sns-hb']) && $sns_hb > 0) {
581
- $sns .= ' <span class="linkcard-sns-hatena no_icon">' .$sns_hb .'&nbsp;user' .(($sns_hb > 1) ? 's' : '').'</span>';
582
- }
583
  } else {
584
- if (isset($this->options['sns-tw']) && !is_null($this->options['sns-tw']) && $sns_tw > 0) {
585
- $sns .= ' <a class="linkcard-sns-twitter no_icon" href="https://twitter.com/intent/tweet?url=' .rawurlencode($url).'&text='.esc_html($title).'" target="_blank">' .$sns_tw .'&nbsp;tweet' .(($count > 1) ? 's' : '').'</a>';
586
- }
587
- if (isset($this->options['sns-fb']) && !is_null($this->options['sns-fb']) && $sns_fb > 0) {
588
- $sns .= ' <a class="linkcard-sns-facebook no_icon" href="https://www.facebook.com/sharer/sharer.php?u="' .rawurlencode($url).' target="_blank">' .$sns_fb .'&nbsp;share' .(($count > 1) ? 's' : '').'</a>';
589
- }
590
- if (isset($this->options['sns-hb']) && !is_null($this->options['sns-hb']) && $sns_hb > 0) {
591
- $sns .= ' <a class="linkcard-sns-hatena no_icon" href="http://b.hatena.ne.jp/entry/' .rawurlencode($url).'" target="_blank">' .$sns_hb .'&nbsp;user' .(($count > 1) ? 's' : '').'</a>';
592
- }
593
  }
594
  $sns .= '</span>';
595
 
@@ -609,8 +652,8 @@ class Pz_LinkCard {
609
  if (isset($this->options['thumbnail-api'])) {
610
  $thumbnail = preg_replace('/%DOMAIN_URL%/', $domain_url, $this->options['thumbnail-api'] );
611
  $thumbnail = preg_replace('/%DOMAIN%/', $domain, $thumbnail);
612
- $thumbnail = preg_replace('/%URL%/', rawurlencode($url), $thumbnail);
613
- $thumbnail = '<img class="linkcard-thumbnail-image" src="'.$thumbnail.'" alt="" />';
614
  }
615
  }
616
  }
@@ -624,19 +667,19 @@ class Pz_LinkCard {
624
  if (isset($this->options['favicon-api'])) {
625
  $favicon = preg_replace('/%DOMAIN_URL%/', $domain_url, $this->options['favicon-api'] );
626
  $favicon = preg_replace('/%DOMAIN%/', $domain, $favicon);
627
- $favicon = preg_replace('/%URL%/', rawurlencode($url), $favicon);
628
- $favicon = '<img class="linkcard-favicon" src="'.$favicon.'" alt="" />';
629
  }
630
  }
631
  }
632
 
633
  if ($update_cnt) { // ソーシャルカウントのみ更新
634
  $wpdb->update(
635
- $this->db_name,
636
  array(
637
- 'sns_twitter' => $sns_tw,
638
- 'sns_facebook' => $sns_fb,
639
- 'sns_hatena' => $sns_hb,
640
  'uptime' => current_time('U'),
641
  'nexttime' => current_time('U') + 43200 + rand(0, 21600),
642
  ),
@@ -650,10 +693,21 @@ class Pz_LinkCard {
650
 
651
  // タイトル
652
  if (!isset($title) || $title == '') {
653
- $title = esc_html($url); // タイトル取得できていなかったらURLをセットする
 
654
  }
655
 
656
  // パラメータ取得(タイトル・抜粋文)
 
 
 
 
 
 
 
 
 
 
657
  if (isset($atts['title'])) { // titleパラメータ
658
  $title = $atts['title'];
659
  $excerpt = '';
@@ -668,28 +722,6 @@ class Pz_LinkCard {
668
  }
669
  }
670
 
671
- // タイトル整形
672
- if (isset($title)) {
673
- $str = $title;
674
- $str = strip_tags($str); // タグの除去
675
- $str = str_replace(array("\r", "\n"), '', $str); // 改行削除
676
- $str = esc_html($str); // 念のためエスケープ
677
- $str = mb_strimwidth($str, 0, 200, '...'); // タイトルは無条件で200文字で切る
678
- $title = $str;
679
- }
680
-
681
- // 抜粋文整形
682
- if (isset($excerpt)) {
683
- $str = $excerpt;
684
- $str = strip_tags($str); // タグの除去
685
- $str = preg_replace('/<!--more-->.+/is', '', $str); // moreタグ以降削除
686
- $str = preg_replace('/\[[^]]*\]/', '', $str); // ショートコードすべて除去
687
- $str = str_replace(array("\r", "\n"), '', $str); // 改行削除
688
- $str = esc_html($str); // 念のためエスケープ
689
- $str = mb_strimwidth($str, 0, 500, '...'); // ここでは500文字で切る
690
- $excerpt = $str;
691
- }
692
-
693
  // サイト名称を使わない場合、ドメイン名で上書き
694
  if (is_null($this->options['use-sitename']) || $site_name == '') {
695
  $site_name = $domain;
@@ -751,221 +783,5 @@ class Pz_LinkCard {
751
  }
752
  return $tag;
753
  }
754
-
755
- public function pz_GetCache($data) {
756
- global $wpdb;
757
- if (!isset($data) || !is_array($data)) {
758
- return null;
759
- }
760
- if (isset($data['url']) && !is_null($data['url'])) {
761
- $url = $this->pz_TrimURL($data['url']);
762
- $data = $wpdb->get_row($wpdb->prepare("SELECT * FROM $this->db_name WHERE url=%s", $url));
763
- } elseif (isset($data['id']) && !is_null($data['id'])) {
764
- $id = intval($data['id']);
765
- $data = $wpdb->get_row($wpdb->prepare("SELECT * FROM $this->db_name WHERE id=%d", $id));
766
- } else {
767
- return null;
768
- }
769
- if (is_wp_error($data)) {
770
- return null;
771
- }
772
- return (array) $data; // Arrayに直して戻す
773
- }
774
-
775
- public function pz_SetCache($data) {
776
- global $wpdb;
777
- if (!isset($data) || !is_array($data)) {
778
- return null;
779
- }
780
- if (!isset($data['url']) || is_null($data['url'])) {
781
- return null;
782
- }
783
- $url = $this->pz_TrimURL($data['url']);
784
- $data['url'] = $url;
785
-
786
- if (!isset($data['url_key']) || is_null($data['url_key']) || $data['url_key'] == '' ) {
787
- $data['url_key'] = hash('sha256', esc_url($url), true);
788
- }
789
-
790
- $data['uptime'] = current_time('U');
791
- // 更新してみる
792
- if (isset($data['id']) && !is_null(isset($data['id']))) {
793
- $result = $wpdb->update(
794
- $this->db_name,
795
- $data,
796
- array(
797
- 'id' => $data['id']
798
- )
799
- );
800
- } else {
801
- $result = $wpdb->update(
802
- $this->db_name,
803
- $data,
804
- array(
805
- 'url_key' => $data['url_key']
806
- )
807
- );
808
- }
809
- if (!$result) {
810
- $data['regist'] = current_time('mysql'); // 登録日
811
- // 更新できなかったら挿入
812
- unset($data['id']);
813
- $result = $wpdb->insert(
814
- $this->db_name,
815
- $data
816
- );
817
- // 挿入できなかったらエラー終了
818
- if (!$result) {
819
- return null;
820
- }
821
- }
822
- return $this->pz_GetCache($data);
823
- }
824
-
825
- public function pz_DelCache($data) {
826
- global $wpdb;
827
- if (!isset($data) || !is_array($data)) {
828
- return null;
829
- }
830
- if (isset($data['url']) && !is_null($data['url'])) {
831
- $url = $this->pz_TrimURL($data['url']);
832
- $result = $wpdb->delete($this->db_name, array('url' => $url), array('%s') );
833
- return $result;
834
- } elseif (isset($data['id']) && !is_null($data['id'])) {
835
- $data_id = intval($data['id']);
836
- $result = $wpdb->delete($this->db_name, array('id' => $data_id), array('%d') );
837
- return $result;
838
- }
839
- return null;
840
- }
841
-
842
- function pz_GetMeta($html, $tags = null) {
843
- // TITLEタグ
844
- if (preg_match('/<\s*title\s*.*>\s*(.*)\s*<\s*\/title\s*>/si', $html, $m)) {
845
- $tags['title'] = esc_html($m[1]);
846
- }
847
-
848
- // // 最初のPタグ(これは全体から)/ヘッダやメニューに<p>があることがあるので停止
849
- // if (preg_match('/<p>\s*(.*)<\/p>/i', $html, $m)) {
850
- // $tags['first-p'] = esc_html($m[1]);
851
- // }
852
-
853
- // metaタグ パース
854
- $match = null;
855
- preg_match_all('/\s*meta\s*name\s*=\s*([^>\/]*)\s+content\s*=\s*([^>\/]*)\s*\/?>/si', $html, $match);
856
- if (isset($match) && is_array($match) && count($match) == 3) {
857
- for ($i=0, $to_i=count($match[1]); $i < $to_i; $i++) {
858
- $match[1][$i] = trim(trim($match[1][$i]), '\'\"' );
859
- $match[2][$i] = trim(trim($match[2][$i]), '\'\"' );
860
- $tags[$match[1][$i]] = esc_html($match[2][$i]);
861
- }
862
- }
863
-
864
- // OGPパース
865
- $match = null;
866
- preg_match_all('/\s*meta\s*property\s*=\s*([^>\/]*)\s+content\s*=\s*([^>\/]*)\s*\/?>/si', $html, $match);
867
- if (isset($match) && is_array($match) && count($match) == 3) {
868
- for ($i=0, $to_i=count($match[1]); $i < $to_i; $i++) {
869
- $match[1][$i] = trim(trim($match[1][$i]), '\'\"' );
870
- $match[2][$i] = trim(trim($match[2][$i]), '\'\"' );
871
- $tags[$match[1][$i]] = esc_html($match[2][$i]);
872
- }
873
- }
874
-
875
- // OGPパース(順序逆パターン)
876
- $match = null;
877
- preg_match_all('/\s*meta\s*content\s*=\s*([^>\/]*)\s+property\s*=\s*([^>\/]*)\s*\/?>/si', $html, $match);
878
- if (isset($match) && is_array($match) && count($match) == 3) {
879
- for ($i=0, $to_i=count($match[1]); $i < $to_i; $i++) {
880
- $match[1][$i] = trim(trim($match[1][$i]), '\'\"' );
881
- $match[2][$i] = trim(trim($match[2][$i]), '\'\"' );
882
- $tags[$match[1][$i]] = esc_html($match[2][$i]);
883
- }
884
- }
885
- return $tags;
886
- }
887
-
888
- public function enqueue_admin($hook) {
889
- wp_enqueue_style ('wp-color-picker');
890
- wp_enqueue_script ('colorpicker-script', plugins_url('color-picker.js', __FILE__), array('wp-color-picker'), false, true);
891
- }
892
-
893
- public function enqueue($hook) {
894
- if (!isset($this->options['style'])) {
895
- wp_enqueue_style ('Pz-LinkCard', $this->options['css-url']);
896
- } else {
897
- if (isset($this->options['css-file'])) {
898
- wp_enqueue_style('Pz-LinkCard', $this->options['css-file']);
899
- }
900
- }
901
- }
902
-
903
- public function add_menu() {
904
- add_management_page (__('LinkCard cache manager', $this->text_domain),__('Pz LkC Cache', $this->text_domain),'manage_options', 'pz-linkcard-cache', array($this, 'page_cacheman') );
905
- // add_management_page (__('LinkCard cache manager', $this->text_domain),__('Pz LkC Cache', $this->text_domain),'manage_options', 'pz-linkcard-cache', array('Pz_LinkCard_CacheMan', 'manager') );
906
- add_options_page (__('LinkCard Settings', $this->text_domain),__('Pz LinkCard', $this->text_domain),'manage_options', 'pz-linkcard-settings', array($this, 'page_settings') );
907
- }
908
-
909
- public function page_cacheman() {
910
- require_once('pz-linkcard-cacheman.php');
911
- }
912
-
913
- public function page_settings() {
914
- require_once('pz-linkcard-settings.php');
915
- }
916
-
917
- public function activation() {
918
- $this->options = get_option('Pz_LinkCard_options', $this->defaults);
919
- if ($this->options['plugin-version'] < '1.0.2') {
920
- $this->options['sns-tw'] =$this->options['sns-twitter'];
921
- $this->options['sns-fb'] =$this->options['sns-facebook'];
922
- $this->options['sns-hb'] =$this->options['sns-hatena'];
923
- }
924
- // $this->options += $this->defaults;
925
-
926
- $this->options['plugin-version'] = $this->defaults['plugin-version'];
927
- update_option('Pz_LinkCard_options', $this->options);
928
-
929
- require_once('pz-linkcard-style.php');
930
-
931
- global $wpdb;
932
- $wpdb->hide_errors();
933
- $this->db_name = $wpdb->prefix.'pz_linkcard';
934
- $sql = "CREATE TABLE ".$this->db_name." (
935
- id INT UNSIGNED NOT NULL AUTO_INCREMENT,
936
- url_key VARBINARY(255) NOT NULL,
937
- url VARCHAR(2048) NOT NULL DEFAULT '',
938
- link_type INT UNSIGNED,
939
- site_name VARCHAR(100) ,
940
- domain VARCHAR(253) ,
941
- title VARCHAR(200) ,
942
- excerpt VARCHAR(500) ,
943
- charset VARCHAR(32) ,
944
- thumbnail VARCHAR(2048) ,
945
- favicon VARCHAR(2048) ,
946
- result_code INT ,
947
- post_id INT UNSIGNED,
948
- sns_twitter INT ,
949
- sns_facebook INT ,
950
- sns_hatena INT ,
951
- sns_pocket INT ,
952
- sns_gplus INT ,
953
- uptime BIGINT UNSIGNED NOT NULL DEFAULT 0,
954
- nexttime BIGINT UNSIGNED NOT NULL DEFAULT 0,
955
- regist DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
956
- PRIMARY KEY ( id ),
957
- UNIQUE KEY ( url_key )
958
- ) ".$wpdb->get_charset_collate()." ;";
959
- require_once(ABSPATH.'wp-admin/includes/upgrade.php');
960
- dbDelta($sql);
961
- }
962
-
963
- public function deactivation() {
964
- }
965
-
966
- public function action_links($links) {
967
- $links = array( '<a href="options-general.php?page=pz-linkcard-settings">'.__('Settings', $this->text_domain).'</a>' , '<a href="tools.php?page=pz-linkcard-cache">'.__('Manage', $this->text_domain).'</a>' ) + $links;
968
- return $links;
969
- }
970
  }
971
- $Pz_LinkCard = new Pz_LinkCard;
3
  Plugin Name: Pz-LinkCard
4
  Plugin URI: http://poporon.poponet.jp/pz-linkcard
5
  Description: リンクをカード形式で表示します。
6
+ Version: 0.1.0
7
  Author: poporon
8
  Author URI: http://poporon.poponet.jp
9
  License: GPLv2 or later
12
  defined('ABSPATH') || die;
13
 
14
  class Pz_LinkCard {
15
+ public $slug; // slug
16
+ public $text_domain; // as slug
17
 
18
+ public $charset;
19
 
20
+ public $plugin_basename;
21
+ public $plugin_dir_path;
22
+ public $plugin_dir_url;
 
 
23
 
24
  public $options;
25
+ public $defaults;
26
+
27
+ public $plugin_link; // link to plugin page
28
+
29
+ private $db;
30
+
31
+ public function __construct() {
32
+ $this->charset = get_bloginfo('charset');
33
+
34
+ $this->slug = basename(dirname(__FILE__));
35
+ $this->text_domain = $this->slug;
36
+
37
+ $this->plugin_basename = plugin_basename(__FILE__);
38
+ $this->plugin_dir_path = plugin_dir_path(__FILE__);
39
+ $this->plugin_dir_url = plugin_dir_url (__FILE__);
40
+
41
+ $this->defaults = array(
42
  'code1' => 'blogcard',
43
  'code2' => null,
44
  'code3' => null,
62
  'display-excerpt' => '1',
63
  'trim-count' => 250,
64
  'info-position' => '1',
 
65
  'size-info' => '12px',
66
  'size-title' => '16px',
67
  'size-url' => '9px',
82
  'ex-info' => null,
83
  'in-info' => null,
84
  'th-info' => null,
 
 
85
  'ex-thumbnail' => '0',
86
  'in-thumbnail' => '1',
87
  'ex-favicon' => '3',
88
  'in-favicon' => '1',
89
  'favicon-api' => 'http://www.google.com/s2/favicons?domain=%DOMAIN%',
90
+ 'thumbnail-api' => 'http://capture.heartrails.com/100x100/delay=3?%URL%',
91
  'thumbnail-position'=> '2',
92
  'thumbnail-shadow' => '1',
93
+ 'cache-time' => 365*24*60*60,
94
  'style-reset-img' => '1',
95
  'style' => null,
96
  'css-file' => null,
97
  'css-path' => null,
98
  'css-url' => null,
99
+ 'use-snscache' => '1',
100
  'sns-position' => '2',
101
+ 'sns-twitter' => '1',
102
+ 'sns-facebook' => '1',
103
+ 'sns-hatena' => '1',
104
  'link-all' => '1',
105
  'blockquote' => null,
106
  'nofollow' => null,
107
  'plugin-link' => null,
108
  'plugin-name' => 'Pz-LinkCard',
109
+ 'plugin-version' => '0.1.0',
110
  'plugin-url' => 'http://poporon.poponet.jp/pz-linkcard',
111
  'pz-hbc-options' => null,
112
+ 'debug-time' => null,
113
+ 'saved-date' => time()
114
  );
 
 
 
 
 
 
 
 
 
 
 
115
  $this->options = get_option('Pz_LinkCard_options', $this->defaults );
116
 
117
  // DB
118
  global $wpdb;
119
+ $this->db = $wpdb->prefix.'pz_linkcard';
120
 
121
  // バージョンが上がっていたら、オプションを更新する
122
  if ($this->options['plugin-version'] < $this->defaults['plugin-version']) {
123
+ $this->Pz_LinkCard_activation();
124
  }
125
 
126
  // CSS URLが空だったら生成
130
 
131
  // ショートコードの設定
132
  if ($this->options['code1'] <> '') {
133
+ add_shortcode($this->options['code1'], array($this, 'Pz_LinkCard_ShortCode'));
134
  }
135
  if ($this->options['code2'] <> '') {
136
+ add_shortcode($this->options['code2'], array($this, 'Pz_LinkCard_ShortCode'));
137
  }
138
  if ($this->options['code3'] <> '') {
139
+ add_shortcode($this->options['code3'], array($this, 'Pz_LinkCard_ShortCode'));
140
  }
141
  if ($this->options['code4'] <> '') {
142
+ add_shortcode($this->options['code4'], array($this, 'Pz_LinkCard_ShortCode'));
143
  }
144
 
145
  // 管理画面のとき
146
  if (is_admin()) {
147
+ load_plugin_textdomain ($this->text_domain, false, $this->slug.'/languages' ); // 管理画面のみ日本語化
148
+ register_activation_hook (__FILE__, array($this, 'Pz_LinkCard_activation')); // 有効化したときの処理
149
+ register_deactivation_hook (__FILE__, array($this, 'Pz_LinkCard_deactivation')); // 無効化したときの処理
150
+ add_action ('admin_menu', array($this, 'Pz_LinkCard_add_menu')); // 設定メニュー
151
+ add_action ('admin_enqueue_scripts', array($this, 'Pz_LinkCard_scripts_admin')); // 設定メニュー用スクリプト
152
+ add_filter ('plugin_action_links_'.$this->plugin_basename, array($this, 'Pz_LinkCard_action_links')); // プラグイン画面
153
 
154
  if ((isset($this->options['style']) ? $this->options['style'] : '') == '') {
155
  if (is_null($this->options['css-path']) || !file_exists($this->options['css-path'])) {
162
  require_once ('pz-linkcard-style.php');
163
  }
164
  }
165
+ add_action ('wp_enqueue_scripts', array($this, 'Pz_LinkCard_scripts'));
166
  }
167
  }
168
 
169
+ public function Pz_LinkCard_scripts_admin($hook) {
170
+ wp_enqueue_style ('wp-color-picker');
171
+ wp_enqueue_script ('colorpicker-script', plugins_url('color-picker.js', __FILE__), array('wp-color-picker'), false, true);
172
+ }
 
 
 
 
 
 
 
 
 
 
173
 
174
+ public function Pz_LinkCard_scripts($hook) {
175
+ if (!isset($this->options['style'])) {
176
+ wp_enqueue_style ('Pz-LinkCard', $this->options['css-url']);
177
+ } else {
178
+ if (isset($this->options['css-file'])) {
179
+ wp_enqueue_style('Pz-LinkCard', $this->options['css-file']);
 
 
 
180
  }
181
  }
182
+ }
183
 
184
+ public function Pz_LinkCard_add_menu() {
185
+ add_management_page (__('LinkCard cache manager', $this->text_domain),__('Pz LkC Cache', $this->text_domain),'manage_options', 'pz-linkcard-cache', array($this, 'Pz_LinkCard_cache_list') );
186
+ add_options_page (__('LinkCard Settings', $this->text_domain),__('Pz LinkCard', $this->text_domain),'manage_options', 'pz-linkcard-settings', array($this, 'Pz_LinkCard_option_page') );
187
  }
188
 
189
+ public function Pz_LinkCard_activation() {
190
+ $this->options = get_option('Pz_LinkCard_options', $this->defaults);
191
+ $this->options += $this->defaults;
192
+ $this->options['plugin-version'] = $this->defaults['plugin-version'];
193
+ update_option('Pz_LinkCard_options', $this->options);
194
+
195
+ require_once('pz-linkcard-style.php');
196
+
197
+ global $wpdb;
198
+ $wpdb->hide_errors();
199
+ $this->db = $wpdb->prefix.'pz_linkcard';
200
+ $sql = "CREATE TABLE ".$this->db." (
201
+ id INT UNSIGNED NOT NULL AUTO_INCREMENT,
202
+ url_key VARBINARY(255) NOT NULL,
203
+ url VARCHAR(2048) NOT NULL DEFAULT '',
204
+ link_type INT UNSIGNED,
205
+ site_name VARCHAR(100) ,
206
+ domain VARCHAR(253) ,
207
+ title VARCHAR(200) ,
208
+ excerpt VARCHAR(500) ,
209
+ thumbnail VARCHAR(2048) ,
210
+ favicon VARCHAR(2048) ,
211
+ result_code INT ,
212
+ post_id INT UNSIGNED,
213
+ sns_twitter INT ,
214
+ sns_facebook INT ,
215
+ sns_hatena INT ,
216
+ sns_pocket INT ,
217
+ sns_gplus INT ,
218
+ uptime BIGINT UNSIGNED NOT NULL DEFAULT 0,
219
+ nexttime BIGINT UNSIGNED NOT NULL DEFAULT 0,
220
+ regist DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
221
+ PRIMARY KEY ( id ),
222
+ UNIQUE KEY ( url_key )
223
+ ) ".$wpdb->get_charset_collate()." ;";
224
+ require_once(ABSPATH.'wp-admin/includes/upgrade.php');
225
+ dbDelta($sql);
226
+ }
227
+
228
+ public function Pz_LinkCard_deactivation() {
229
+ }
230
+
231
+ public function Pz_LinkCard_cache_list() {
232
+ require_once('pz-linkcard-cacheman.php');
233
+ }
234
+
235
+ public function Pz_LinkCard_option_page() {
236
+ require_once('pz-linkcard-settings.php');
237
+ }
238
+
239
+ public function Pz_LinkCard_action_links($links) {
240
+ $links = array( '<a href="options-general.php?page=pz-linkcard-settings">'.__('Settings', $this->text_domain).'</a>' ) + $links;
241
+ return $links;
242
  }
243
 
244
+ public function Pz_LinkCard_ShortCode($atts, $content = null ) {
245
  global $wpdb;
246
 
247
  $update = false;
248
  $update_cnt = false;
249
  $error = false;
 
250
 
 
 
 
 
251
  if (is_user_logged_in()) {
252
+ // 時間計測
253
  $start_time = microtime(true);
254
  }
255
 
256
+ // リンク先URL
257
+ $url = isset($atts['url']) ? $atts['url'] : null;
258
+ $url_esc = esc_url($url);
259
 
260
  // リンク先URLからドメイン名を抽出
261
  if (preg_match('{https?://(.+?)/}i', $url.'/',$m)) {
269
 
270
  // 自サイトチェック
271
  if (preg_match('{'.home_url().'\/.*?}', $url.'/')) {
272
+ if (preg_match('{'.get_permalink().'\/*}',$url)) {
273
  $link_type = 1; // 自ページ
274
  } else {
275
  $link_type = 2; // 自サイト内
276
  }
277
+ $target = ''; // 同ページに開く
 
 
 
 
278
  $nofollow = '';
279
  } else {
280
  $link_type = 0; // 外部サイト
281
+ $target = ' target="_blank"'; // 新しいページで開く
 
 
 
 
282
  $nofollow = isset($this->options['nofollow']) ? ' rel="nofollow"' : '';
283
  }
284
 
285
  // URLをキーにしてDBからキャッシュ取得
286
+ if (isset($url)) {
287
+ $data = $wpdb->get_row($wpdb->prepare("SELECT * FROM $this->db WHERE url=%s", $url));
288
+ if (is_wp_error($data) || !isset($data)) {
289
+ $data_id = null;
290
+ $title = null;
291
+ $url_key = null;
292
+ $excerpt = null;
293
+ $site_name = null;
294
+ $result_code = null;
295
+ $sns_twitter = -1;
296
+ $sns_facebook = -1;
297
+ $sns_hatena = -1;
298
+ $uptime = null;
299
+ $nexttime = 0;
300
+ } else {
301
+ $data_id = $data->id;
302
+ $title = $data->title;
303
+ $url_key = $data->url_key;
304
+ $excerpt = $data->excerpt;
305
+ $site_name = $data->site_name;
306
+ $result_code = $data->result_code;
307
+ $sns_twitter = $data->sns_twitter;
308
+ $sns_facebook = $data->sns_facebook;
309
+ $sns_hatena = $data->sns_hatena;
310
+ $uptime = $data->uptime;
311
+ $nexttime = $data->nexttime;
312
+ }
313
+ }
314
+ $thumbnail = null;
315
+ $thumbnail_url = null;
 
 
 
 
 
 
 
 
 
 
316
 
317
  if ($link_type) { // 自サイト内はキャッシュがあっても常に取得する
318
  if (is_null($data_id)) {
321
 
322
  if ($link_type == '1') {
323
  $info = isset($this->options['th-info']) ? $this->options['th-info'] : '' ;
324
+ $wrap_op = '<div class="linkcard-this-wrapper">'; // ラッピング
325
  $wrap_cl = '</div>';
326
  } else {
327
  $info = isset($this->options['in-info']) ? $this->options['in-info'] : '' ;
328
+ $wrap_op = '<div class="linkcard-internal-wrapper">'; // ラッピング
329
  $wrap_cl = '</div>';
330
  }
331
+ $site_name = get_bloginfo('name'); // サイト名
 
 
 
 
 
 
332
 
333
+ $id = url_to_postid(strip_tags($url)); // 記事ID
334
+ $post = get_post($id); // 記事情報
335
  // タイトル取得
336
  if ($id) {
337
  if (!$title) {
341
  }
342
  }
343
  } else {
 
344
  if (!$title) {
345
  $title = get_bloginfo('name'); // サイト名
346
  if (!$excerpt) {
356
  $sw_favicon = isset($this->options['in-favicon']) ? $this->options['in-favicon'] : '0' ;
357
  if ($sw_favicon == '1') {
358
  if (function_exists('has_site_icon')) {
359
+ $favicon = '<img class="linkcard-favicon" src="'.get_site_icon_url(16, '', 0).'" />';
360
  } else {
361
  $sw_favicon = isset($this->options['ex-favicon']) ? $this->options['ex-favicon'] : '0' ;
362
  }
379
  }
380
  return $tag;
381
 
382
+ } elseif (is_null($data_id) || ($result_code <> 200 && $result_code <> 999)) { // キャッシュ無、または前回エラー
383
  // リンク先サイト取得
384
  $html = null;
385
  $error = true;
390
  $error = false;
391
  $update = true;
392
 
393
+ $result_code = 999;
394
  } else {
395
  $result_code = $result['response']['code'];
396
+ if ($result_code >= 200 && $result_code <= 399 ) {
397
  $error = false;
398
  $update = true;
399
 
400
+ $html = $result['body'];
401
+ $html = mb_convert_encoding($html, $this->charset, "ASCII,JIS,UTF-7,EUC-JP,SJIS,UTF-8");
402
+
 
 
 
 
 
 
 
 
 
403
  $tags = null;
404
 
405
  // HEADタグ
406
  $head = null;
407
+ if (preg_match('/<head>(.*)<\/head>/si', $html, $m)) {
408
  $head = $m[1];
409
  }
410
 
411
+ // TITLEタグ
412
+ if (preg_match('/<\s*title\s*.*>\s*(.*)\s*<\s*\/title\s*>/si', $head, $m)) {
413
+ $tags['title'] = esc_html($m[1]);
414
+ }
415
+
416
+ // // 最初のPタグ(これは全体から)
417
+ // if (preg_match('/<p>\s*(.*)<\/p>/i', $html, $m)) {
418
+ // $tags['first-p'] = esc_html($m[1]);
419
+ // }
420
+
421
+ // metaタグ パース
422
+ $match = null;
423
+ preg_match_all('/\s*meta\s*name="?([^>"]*)"?\s*content="?([^>"]*)"?\s*\/?>/si', $head, $match);
424
+ if (isset($match) && is_array($match) && count($match) == 3) {
425
+ for ($i=0, $to_i=count($match[1]); $i < $to_i; $i++) {
426
+ $tags[$match[1][$i]] = esc_html($match[2][$i]);
427
+ }
428
+ }
429
+
430
+ // OGPパース
431
+ $match = null;
432
+ preg_match_all('/\s*meta\s*property="?([^>"]*)"?\s*content="?([^>"]*)"?\s*\/?>/si', $head, $match);
433
+ if (isset($match) && is_array($match) && count($match) == 3) {
434
+ for ($i=0, $to_i=count($match[1]); $i < $to_i; $i++) {
435
+ $tags[$match[1][$i]] = esc_html($match[2][$i]);
436
+ }
437
+ }
438
+
439
+ // OGPパース(順序逆パターン)
440
+ $match = null;
441
+ preg_match_all('/\s*meta\s*content="?([^>"]*)"?\s*property="?([^>"]*)"?\s*\/?>/si', $head, $match);
442
+ if (isset($match) && is_array($match) && count($match) == 3) {
443
+ for ($i=0, $to_i=count($match[1]); $i < $to_i; $i++) {
444
+ $tags[$match[1][$i]] = esc_html($match[2][$i]);
445
+ }
446
+ }
447
 
448
  // タイトル
449
+ if (isset($tags['og:title'])) {
450
+ $title = $tags['og:title'];
451
+ } elseif (isset($tags['title'])) {
452
+ $title = $tags['title'];
453
  }
454
 
455
  // 抜粋文・概要文
456
+ if (isset($tags['og:description'])) {
457
+ $excerpt = $tags['og:description'];
458
+ } elseif (isset($tags['description'])) {
459
+ $excerpt = $tags['description'];
460
+ } elseif (isset($tags['first-p'])) {
461
+ $excerpt = $tags['first-p'];
462
  }
463
 
464
  // // OGPから画像URL取得
465
  // if ($sw_thumbnail == '1' && isset($tags['og:image'])) {
466
  // $thumbnail_url = $tags['og:image'];
467
+ // $thumbnail = '<img class="linkcard-thumbnail-image" src="'.$thumbnail_url.'">';
468
  // }
469
 
470
  // // サイト名
471
+ if (isset($tags['og:site_name'])) {
472
+ $site_name = $tags['og:site_name'];
473
  }
474
 
475
  }
479
 
480
  // タイトル整形
481
  if (isset($title)) {
482
+ $title = esc_html($title); // 念のためエスケープ
483
+ $title = mb_strimwidth($title, 0, 200, '...'); // タイトルは無条件で200文字で切る
 
 
 
 
484
  }
485
+
486
  // 抜粋文整形
487
  if (isset($excerpt)) {
488
+ $excerpt = strip_tags($excerpt); // タグの除去
489
+ $excerpt = preg_replace('/<!--more-->.+/is', '', $excerpt); // moreタグ以降削除
490
+ $excerpt = preg_replace('/\[[^]]*\]/', '', $excerpt); // ショートコードすべて除去
491
+ $excerpt = str_replace(array("\r", "\n"), '', $excerpt); // 改行削除
492
+ $excerpt = esc_html($excerpt); // 念のためエスケープ
493
+ $excerpt = mb_strimwidth($excerpt, 0, 500, '...'); // ここでは500文字で切る
 
 
494
  }
495
 
496
  // 取得エラーなし・取得または更新あり
497
  if (!$error && $update && $url) {
498
+ if (!isset($url_key)) {
499
+ $url_key = hash('sha256', esc_url($url), true);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
500
  }
501
 
502
+ // とりあえず更新して見る
503
+ $result = $wpdb->update(
504
+ $this->db,
505
+ array(
506
+ 'id' => $data_id,
507
+ 'url_key' => $url_key,
508
+ 'url' => $url,
509
+ 'site_name' => $site_name,
510
+ 'domain' => $domain,
511
+ 'link_type' => $link_type,
512
+ 'title' => $title,
513
+ 'excerpt' => $excerpt,
514
+ 'result_code' => $result_code,
515
+ 'post_id' => get_the_ID(),
516
+ 'sns_twitter' => $sns_twitter,
517
+ 'sns_facebook' => $sns_facebook,
518
+ 'sns_hatena' => $sns_hatena,
519
+ 'uptime' => current_time('U'),
520
+ 'nexttime' => current_time('U') + 43200 + rand(0, 21600),
521
+ ),
522
+ array(
523
+ 'url_key' => $url_key
524
+ )
525
+ );
526
+ if (!$result) {
527
+ // 更新できなかったら挿入
528
+ $result = $wpdb->insert(
529
+ $this->db,
530
+ array(
531
+ 'url_key' => $url_key,
532
+ 'url' => $url,
533
+ 'site_name' => $site_name,
534
+ 'domain' => $domain,
535
+ 'link_type' => $link_type,
536
+ 'title' => $title,
537
+ 'excerpt' => $excerpt,
538
+ 'result_code' => $result_code,
539
+ 'post_id' => get_the_ID(),
540
+ 'sns_twitter' => $sns_twitter,
541
+ 'sns_facebook' => $sns_facebook,
542
+ 'sns_hatena' => $sns_hatena,
543
+ 'uptime' => current_time('U'),
544
+ 'nexttime' => current_time('U') + 7200 + rand(0, 3600),
545
+ 'regist' => current_time('mysql')
546
+ )
547
+ );
548
+ }
549
+ if ($result) {
550
  $update = false;
551
  }
552
  }
553
 
554
+ // 保存期間満了でソーシャルカウントをリセット
555
+ // if (current_time('U') - $uptime > $this->options['cache-time']) {
556
+ // if (current_time('U') - $uptime > 10) {
557
+ if (current_time('U') > $nexttime && $result_code <= 200) {
558
+ $sns_renew = true;
559
+ $update_cnt = true;
560
+ } else {
561
+ $sns_renew = false;
562
+ }
563
+
564
  // ソーシャルカウント
565
  $sns = null;
566
  $sns_info = null;
567
  $sns_title = null;
 
568
  if (!$error && (isset($this->options['sns-position']) ? $this->options['sns-position'] : null)) {
569
  $opt = array( 'timeout' => 5 );
570
 
571
+ if (isset($this->options['sns-twitter'])) {
572
+ $count = $sns_twitter;
 
 
 
 
 
 
573
  $count_before = $count;
574
  if ($sns_renew || $count < 0) {
575
  $result = wp_remote_get( 'http://urls.api.twitter.com/1/urls/count.json?url=' .rawurlencode($url), $opt );
581
  $count = json_decode($result['body'])->count - 0;
582
  }
583
  if ($count <> $count_before) {
584
+ $sns_twitter = $count;
585
  $update_cnt = true;
586
  }
587
  }
588
  }
589
+ if (isset($this->options['sns-facebook'])) {
590
+ $count = $sns_facebook;
591
  $count_before = $count;
592
  if ($sns_renew || $count < 0) {
593
  $result = wp_remote_get( 'http://graph.facebook.com/?id=' .rawurlencode($url), $opt );
600
  $count = (isset($json->shares) ? isset($json->shares) : 0) - 0;
601
  }
602
  if ($count <> $count_before) {
603
+ $sns_facebook = $count;
604
  $update_cnt = true;
605
  }
606
  }
607
  }
608
+ if (isset($this->options['sns-hatena'])) {
609
+ $count = $sns_hatena;
610
  $count_before = $count;
611
  if ($sns_renew || $count < 0) {
612
  $result = wp_remote_get( 'http://api.b.st-hatena.com/entry.count?url=' .rawurlencode($url), $opt );
618
  $count = $result['body'] - 0;
619
  }
620
  if ($count <> $count_before) {
621
+ $sns_hatena = $count;
622
  $update_cnt = true;
623
  }
624
  }
626
 
627
  $sns = '<span class="linkcard-share">';
628
  if ((isset($this->options['link-all']) ? $this->options['link-all'] : null) == '1') {
629
+ if ($sns_twitter > 0) $sns .= ' <span class="linkcard-sns-twitter no_icon">' .$sns_twitter .'&nbsp;tweet' .(($sns_twitter > 1) ? 's' : '').'</span>';
630
+ if ($sns_facebook > 0) $sns .= ' <span class="linkcard-sns-facebook no_icon">' .$sns_facebook .'&nbsp;share' .(($sns_facebook > 1) ? 's' : '').'</span>';
631
+ if ($sns_hatena > 0) $sns .= ' <span class="linkcard-sns-hatena no_icon">' .$sns_hatena .'&nbsp;user' .(($sns_hatena > 1) ? 's' : '').'</span>';
 
 
 
 
 
 
632
  } else {
633
+ if ($sns_twitter > 0) $sns .= ' <a class="linkcard-sns-twitter no_icon" href="https://twitter.com/intent/tweet?url=' .rawurlencode($url).'&text='.esc_html($title).'" target="_blank">' .$sns_twitter .'&nbsp;tweet' .(($count > 1) ? 's' : '').'</a>';
634
+ if ($sns_facebook > 0) $sns .= ' <a class="linkcard-sns-facebook no_icon" href="https://www.facebook.com/sharer/sharer.php?u="' .rawurlencode($url).' target="_blank">' .$sns_facebook .'&nbsp;share' .(($count > 1) ? 's' : '').'</a>';
635
+ if ($sns_hatena > 0) $sns .= ' <a class="linkcard-sns-hatena no_icon" href="http://b.hatena.ne.jp/entry/' .rawurlencode($url).'" target="_blank">' .$sns_hatena .'&nbsp;user' .(($count > 1) ? 's' : '').'</a>';
 
 
 
 
 
 
636
  }
637
  $sns .= '</span>';
638
 
652
  if (isset($this->options['thumbnail-api'])) {
653
  $thumbnail = preg_replace('/%DOMAIN_URL%/', $domain_url, $this->options['thumbnail-api'] );
654
  $thumbnail = preg_replace('/%DOMAIN%/', $domain, $thumbnail);
655
+ $thumbnail = preg_replace('/%URL%/', $url_esc, $thumbnail);
656
+ $thumbnail = '<img class="linkcard-thumbnail-image" src="'.$thumbnail.'">';
657
  }
658
  }
659
  }
667
  if (isset($this->options['favicon-api'])) {
668
  $favicon = preg_replace('/%DOMAIN_URL%/', $domain_url, $this->options['favicon-api'] );
669
  $favicon = preg_replace('/%DOMAIN%/', $domain, $favicon);
670
+ $favicon = preg_replace('/%URL%/', $url_esc, $favicon);
671
+ $favicon = '<img class="linkcard-favicon" src="'.$favicon.'" />';
672
  }
673
  }
674
  }
675
 
676
  if ($update_cnt) { // ソーシャルカウントのみ更新
677
  $wpdb->update(
678
+ $this->db,
679
  array(
680
+ 'sns_twitter' => $sns_twitter,
681
+ 'sns_facebook' => $sns_facebook,
682
+ 'sns_hatena' => $sns_hatena,
683
  'uptime' => current_time('U'),
684
  'nexttime' => current_time('U') + 43200 + rand(0, 21600),
685
  ),
693
 
694
  // タイトル
695
  if (!isset($title) || $title == '') {
696
+ $title = esc_html($url); // タイトル取得できていなかったらURLをセットする
697
+ $title = mb_strimwidth($title, 0, 200, '...'); // 200文字で切る
698
  }
699
 
700
  // パラメータ取得(タイトル・抜粋文)
701
+ switch (isset($this->options['use-inline']) ? $this->options['use-inline'] : null) {
702
+ case '1':
703
+ $title = '';
704
+ $excerpt = isset($content) ? $content : '';
705
+ break;
706
+ case '2':
707
+ $title = isset($content) ? $content : '';
708
+ $excerpt = '';
709
+ break;
710
+ }
711
  if (isset($atts['title'])) { // titleパラメータ
712
  $title = $atts['title'];
713
  $excerpt = '';
722
  }
723
  }
724
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
725
  // サイト名称を使わない場合、ドメイン名で上書き
726
  if (is_null($this->options['use-sitename']) || $site_name == '') {
727
  $site_name = $domain;
783
  }
784
  return $tag;
785
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
786
  }
787
+ $Pz_LinkCard = new Pz_LinkCard;
readme.txt CHANGED
@@ -1,4 +1,4 @@
1
- === Pz-LinkCard ===
2
  Contributors: poporon
3
  Tags: post, internal link, external link, blogcard, linkcard
4
  Requires at least: 4.3.0
@@ -7,204 +7,139 @@ Stable tag: trunk
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
10
- This plugin is intended to display a link in a blog card format. The goodbye to the text-only link.
11
 
12
  == Description ==
 
13
 
14
- This plugin is intended to display a link in a blog card format.
15
 
16
- Easy to use. Just to write a short code.
17
 
18
- You can change the appearance in the `settings` screen .
19
 
20
- You can edit or delete the cache on the `manage` screen .
21
 
22
- The goodbye to the text-only link.
23
 
 
24
 
25
- このプラグインはショートコードでURLを指定することで、リンクをブログカード形式で表示させるものです。
26
 
27
- 外部リンクと内部リンクで、カードの色や新しくウィンドウを開くかなど、設定を変更することができます。
28
 
29
- リンク先の情報はキャッシュされるため、ソーシャルカウント等も表示されるカード形式のリンクとしては高速に表示されます。
30
 
31
- キャッシュ管理画面から、キャッシュされた情報の再取得や直接編集、削除が行えます。
32
 
33
- テキストにリンク設定しただけでは物足りないと感じていたら、ぜひお試しください。
34
 
35
- (ショートコード内にURLを記述した場合、ピンバックは飛びません。ピンバックを使用したい方は記事中にテキストリンクを張るなどで対応してください。)
36
 
 
37
 
38
- まだ成熟したプラグインでは無いので、ご意見やご要望があればなるべくお応えしていきたいと思います。
39
 
 
40
 
41
- == Installation ==
42
 
43
- WordPressダッシュボードからのインストール
44
 
45
- (From your WordPress dashboard)
46
 
 
47
 
48
- 1. 「プラグイン」→「新規追加」を選びます
49
 
50
- (Plugins menu > Add New)
51
 
52
- 2. 「Pz-LinkCard」を検索します
53
 
54
- (Search for Pz-HatenaBlogCard)
55
 
56
- 3. プラグイン名と作者を確認していただき、「今すぐインストール」を押します
57
 
58
- (Install)
59
 
60
- 4. 「有効化する」を選び、有効化します
61
 
62
- (Activate)
63
 
 
64
 
65
- WordPress.org からのダウンロードおよびインストール
66
 
67
- (From WordPress.org)
68
 
69
- 1. WordPress.orgのプラグイン一覧から「Pz-LinkCard」を検索します
70
 
71
- (Download ZIP file from http://poporon.poponet.jp/pz-hatenablogcard )
72
 
73
- 2. プラグイン名と作者を確認していただき、ダウンロードします
74
 
75
- 3. WordPressをインストールしているディレクトリ配下の、「/wp-content/plugins」ディレクトリ配下に「pz-linkcard」ディレクトリを作成します
76
 
77
- (Upload pz-hatenablogcard folder to the /wp-content/plugins/ directory)
78
 
79
- 4. ダウンロードしたZIPファイルを展開します
80
 
81
- 5. プラグイン一覧から「有効化」を選んで、有効化します
82
 
83
- (Activate the plugin through the 'Plugins' menu in WordPress)
84
 
85
 
86
- 当サイトからのダウンロードおよびインストール
87
 
88
- 1. 当サイト「ぽぽづれ。」へアクセスしてください http://poporon.poponet.jp
89
 
90
- 2. リンクを辿るか、直接プラグインのページを開きます http://poporon.poponet.jp/pz-linkcard
91
 
92
- 3. 下の方にZIPファイルのダウンロードリンクがあるので、ダウンロードします
93
 
94
- 4. WordPressをインストールしているディレクトリ配下の、「/wp-content/plugins」ディレクトリ配下に「pz-linkcard」ディレクトリを作成します
95
 
96
- 5. ダウンロードしたZIPファイルを展開します
97
 
98
- 6. プラグイン一覧から「有効化」を選んで、有効化します
 
 
 
 
 
99
 
 
 
 
 
 
 
100
 
101
- 新しいバージョンを有効化したら動作しなくなった場合
 
 
 
 
 
 
102
 
 
103
  1. Pz-LinkCard がインストールされているディレクトリ名を変更もしくは削除します
104
-
105
  2. WordPressダッシュボードに入ると、プラグインが無効化されたというメッセージが表示されます
106
-
107
  3. 先ほど変更したディレクトリ名を戻します(戻してもプラグインは勝手に有効化されません)
108
-
109
  4. 当サイトから古い安定版をダウンロードします
110
-
111
  5. 上書きコピーを行ったあと、有効化を選んで、有効化します
112
-
113
  6. 不具合が起きた状態や状況、テストサイトであれば、アクセスするためのURLを教えていただけると早急に修正できる場合があります
114
 
115
-
116
  == Frequently asked questions ==
117
 
118
- Q1.
119
- データベースの容量を圧迫しませんか?
120
 
121
- A1.
122
- リンク先サイトのURL、タイトル、抜粋文を取得してデータベースに格納します。
123
- URLごとに保存されるため、複数の記事に同一のURLを指定してもデータは増えません。
124
- 結果として記事内にタイトルや抜粋文を記述してリンクを設定するのと大きな差は無いと思います。
125
- ただし、リンクを削除したとしてもデータベースからキャッシュ情報は削除されません。
126
- これは「Pz カード管理」画面から個別で削除することができます。
127
- また、アンインストール時にプラグインとともにキャッシュ用のデータベースは削除されます。
128
-
129
- Q2.
130
- ページの表示が遅くなりました。
131
-
132
- A2.
133
- リンク先のURLを使ったリンクカードを「初めて表示」するときにタイトルや抜粋文、ソーシャルカウント等を取得します。
134
- このため、複数のリンクカードを埋め込んだ記事を最初に表示するときには非常に時間がかかる場合があります。
135
- ソーシャルカウントを取得する場合にはリンクカード1個につき、2~10秒ほどかかる場合があります。
136
- ただし、2回目以降の表示はキャッシュから取得するので高速に表示されます。
137
- つまり、投稿直後もしくは執筆中にプレビューをすることで自分で記事を1回表示しておけば、閲覧者は遅延無く記事を見ることができます。
138
-
139
- Q3.
140
- 自サイト内への記事でも新しいウィンドウで開きたいのですが?
141
-
142
- A3.
143
- 「Pz カード設定」の画面から、外部リンク、内部リンク、それぞれ「新しいウィンドウで開く」のチェックボックスが用意されています。
144
- 外部サイトも同一ウィンドウで開くこともできます。
145
-
146
- Q4.
147
- WordPressピンバックが飛びません。
148
-
149
- A4.
150
- WordPressピンバックは記事中にリンクを直接記述しないと飛びません。
151
- 当プラグインはショートコードをカードの書式とリンクを展開するのでピンバックは飛びません。
152
 
153
  == Screenshots ==
154
 
155
- == Changelog ==
 
 
 
 
 
 
 
 
 
156
 
157
- = 1.0.3 =
158
- * キャッシュ保存時にキーが正しく設定されないことがあったのを修正。
159
- * 「カード管理」画面で内部ID(連番)を表示するように修正。
160
- * 定型書式「紙がめくれる効果」を修正。(テーマによってはレイアウトが崩れる可能性があります)
161
- * 定型書式「テープと紙めくれ」を追加。(テーマによってはレイアウトが崩れる可能性があります)
162
-
163
- = 1.0.2 =
164
- * 「カード管理」でキャッシュを編集したとき、一部の文字をエスケープしていなかったのを修正。
165
- * バージョンアップの度に一部のパラメータがデフォルトに戻らないように修正。
166
- * プログラム内でのキャッシュの読み書き方法の改善。
167
-
168
- = 1.0.1 =
169
- * 「カード管理」でキャッシュを編集したとき、内部IDがクリアされてしまう不具合を修正。
170
-
171
- = 1.0.0 =
172
- * 全体的なプログラムの見直し。
173
- * URLが空欄などの場合の対応。
174
- * 文字エンコードまわりを修正。
175
- * DBキャッシュまわりを修正。
176
- * ショートコードの囲い文字の扱いの仕様変更。
177
- * ショートコード1にのみ適用されるように修正。
178
- * タイトルがURLになってしまう不具合修正。
179
- * ショートコード3を解放。
180
- * キャッシュ管理画面を修正。
181
- * リンク先単体の「編集」「再取得」「削除」が行えるように修正。
182
- * 一括処理に「再取得」を追加。
183
- * 内部リンクのURLにリンクを設定。
184
- * ドメインで抽出できるように修正。
185
- * ページング機能を追加。
186
-
187
- = 0.1.4 =
188
- * <head>にprefixなどがあるときに、metaタグの解析に失敗していたのを修正。
189
- * パラメータに閉じの「半角角かっこ(大かっこ)」がある場合に、URLに余分なコードが入ってしまったのを改善。
190
-
191
- = 0.1.3 =
192
- * content=''になっているOGP情報は無視するように修正。
193
- * サムネイル取得APIをWordPress.comのものを初期値に変更。
194
- * metaタグ表記にシングルクォートが使われている場合、取得できていなかったため対応。
195
- * タイトルや抜粋文をパラメータ等で設定した場合にもHTML等を除去するように変更。
196
- * 「カード管理」の画面のセキュリティを強化。
197
- * サイト情報を下側にしているときに定型書式「Pzカード標準書式」を使用したときサイト名が見えなくなる現象に対応。
198
- * 設定画面の「サイト情報」の位置を変更。
199
- * 設定画面にサイト情報と記事内容の間を区切るための「区切り線」を変更。
200
-
201
- = 0.1.2 =
202
- * 「新しいウィンドウで開く」の設定を追加。
203
- * カード管理画面のソート順を修正。
204
- * フェイスブックの表記を「f」から「fb」へ変更。
205
-
206
- = 0.1.1 =
207
- * 公開後発見されたバグを修正。
208
 
209
  = 0.1.0 =
210
  * 公式プラグインディレクトリでの最初の公開バージョン。
@@ -218,102 +153,3 @@ WordPressピンバックは記事中にリンクを直接記述しないと飛
218
  * 当サイトでの本番環境での動作検証。
219
 
220
  == Upgrade notice ==
221
-
222
- == Arbitrary section ==
223
-
224
- = Display and DB cache =
225
-
226
- This plug-in one create a DB table when you have activated. ( Prefix + "pz_linkcard")
227
-
228
- Open the pages of the article when the "For the first time it appears " , and caches by obtaining the title excerpt from the linked site to the DB.
229
-
230
- Therefore , the display for the first time is slow , the second and subsequent display is fast.
231
-
232
-
233
- = Create files =
234
-
235
- CSS file are stored in a custom folder under `/wp-content/Uploads` .
236
-
237
-
238
- = Use API =
239
-
240
- Number of SNS share have been acquired by the JSON request.
241
-
242
- * Twitter ... http://urls.api.twitter.com/1/urls/count.json?url=[URL]
243
-
244
- * Facebook ... http://graph.facebook.com/?id=[URL]
245
-
246
- * Hatena ... http://api.b.st-hatena.com/entry.count?url=[URL]
247
-
248
-
249
- Displays using the `Google-favicon API` to get the favicon. This can be changed.
250
-
251
-
252
- Displays using the `WordPress.org mshots API` to get the thumbnail. This can be changed.
253
-
254
-
255
- = 表示とキャッシュ =
256
-
257
- このプラグインは、有効化したときにDBテーブルを一つ作成します。(プレフィックス+「pz_linkcard」)
258
-
259
- 外部リンクを設定した場合、記事のページを開いて「初めて表示された」ときに、リンク先のサイトからタイトル・抜粋文を取得してDBへキャッシュします。
260
-
261
-
262
- カードの枚数分、外部サイトへのアクセスが発生するため多量のリンクを作成すると表示に時間がかかります。
263
-
264
- 次回の表示はDBキャッシュから行うので高速に表示を行います。
265
-
266
- (内部でのDBアクセスが発生しますが、通常は軽微なものです。カード1枚表示のたびに、取得のために1クエリ発行します。更新が発生した場合には挿入・更新のためのクエリが1回発生します。)
267
-
268
-
269
- = ソーシャルカウントの取得 =
270
-
271
- ソーシャルカウントについては、「ツイッターのツイート数」「フェイスブックのシェア数」「はてなブックマークのブックマーク数」の3種類に対応しています。
272
-
273
- それぞれAPIへのJSONリクエストにより値を取得します。
274
-
275
- これらのアクセスも遅い場合がありますが、取得した値はタイトルや抜粋文と同様、DBへキャッシュを行うため、直近の表示にはAPIアクセスが発生しません。
276
-
277
- ソーシャルカウントの再取得は、最後の取得から4時間~36時間程度のランダムな時間で行います。
278
-
279
- この間隔については、改善の余地があります。
280
-
281
- また、各APIについては、仕様変更やサービス終了に伴い、正常に取得できなくなる場合があります。
282
-
283
-
284
- = 画像取得APIの利用 =
285
-
286
- サムネイルの取得については、「取得しない」を標準での設定としています。
287
-
288
- 画像取得APIのURLを指定した上で、「WebAPIを利用する」にすることで、画像も取得できます。
289
-
290
- 画像取得APIの設定については、下記のページを参照ください。
291
-
292
- http://poporon.poponet.jp/20151004/9317
293
-
294
-
295
- サイトアイコン(ファビコン)についても、同様にWebAPIを使用して取得しています。
296
-
297
- こちらは標準設定で「WebAPIで取得する」になっており、Googleのファビコン取得APIのアドレスを設定しています。
298
-
299
- これは、リンク先のURLを入力することによって、サイトアイコンの画像を取得できるものです。
300
-
301
- 公式なサービスでは無いため、仕様変更やサービス終了に伴い、正常に取得できなくなく場合があります。
302
-
303
-
304
- = その他 =
305
-
306
- Pz-HatenaBlogCard からの設定引き継ぎ機能はありません。この機会に触ったことのなかった設定項目にも触れていただければ幸いです。
307
-
308
- ショートコードを変えることで、Pz-HatenaBlogCard と併用利用することができますが、通常はリソース消費が増えるだけなので、推奨はしません。
309
-
310
-
311
- ショートコード内にURLを記述した場合、WordPressピンバックは飛びません。
312
-
313
-
314
- 設定項目については、WordPress標準の options に設定内容を保存します。キーは「Pz-LinkCard_options」の1レコードです。
315
-
316
-
317
- なお、アンインストールを行う際には、キャッシュを保管するDBテーブルと、options内の設定ファイルは削除されます。
318
-
319
- アンインストール時の削除に関してはプラグインディレクトリ内の uninstall.php で行っています。
1
+ === Pz-HatenaBlogCard ===
2
  Contributors: poporon
3
  Tags: post, internal link, external link, blogcard, linkcard
4
  Requires at least: 4.3.0
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
10
+ このプラグインはリンク先をブログカード形式で表示するものです。
11
 
12
  == Description ==
13
+ このプラグインはショートコードでURLを指定することで、リンクをブログカード形式で表示させるものです。
14
 
15
+ ショートコードは複数設定することができ、変更することができます。
16
 
17
+ 外部リンクの場合をクリックすることで「新しいウィンドウ(タブ)」でリンクが開きます。
18
 
19
+ 内部リンクの場合をクリックするとそのままのウィンドウでリンクが開きます。
20
 
 
21
 
22
+ このプラグインは、有効化したときにDBテーブルを一つ作成します。(プレフィックス+「pz_linkcard」)
23
 
24
+ 外部リンクを設定した場合、記事のページを開いて「初めて表示された」ときに、リンク先のサイトからタイトル・抜粋文を取得してDBへキャッシュします。
25
 
 
26
 
27
+ カードの枚数分、外部サイトへのアクセスが発生するため、多量のカードを作成すると、サイト全体が重くなる可能性があります。
28
 
29
+ 次回の表示はDBキャッシュから行うので高速に表示を行います。
30
 
31
+ (内部でのDBアクセスが発生しますが、通常は軽微なものです。カード1枚表示のたびに、取得のために1クエリ発行します。更新が発生した場合には挿入・更新のためのクエリが1回発生します。)
32
 
 
33
 
34
+ ソーシャルカウントについては、「ツイッターのツイート数」「フェイスブックのシェア数」「はてなブックマークのブックマーク数」の3種類に対応しています。
35
 
36
+ それぞれAPIへのJSONリクエストにより値を取得します。
37
 
38
+ これらのアクセスも遅い場合がありますが、取得した値はタイトルや抜粋文と同様、DBへキャッシュを行うため、直近の表示にはAPIアクセスが発生しません。
39
 
40
+ ソーシャルカウントの再取得は、最後の取得から4時間~36時間程度のランダムな時間で行います。
41
 
42
+ この間隔については、改善の余地があります。
43
 
44
+ また、各APIについては、仕様変更やサービス終了に伴い、正常に取得できなくなる場合があります。
45
 
 
46
 
47
+ サムネイルの取得については、相手サイトへの負担を考慮して、「取得しない」を標準での設定としています。
48
 
49
+ ただし、「HeartRails」様のフリーで使用できるキャプチャ作成APIのアドレスを設定してあるので、「取得しない」→「WebAPIで取得」へ変更することで、キャプチャ付で表示することができます。
50
 
51
+ HeartRails様のキャプチャ機能を使用する場合には、利用規約などを一読されてください。(通常に使用する場合には特に制限は無いかと思われます)
52
 
53
+ http://capture.heartrails.com/
54
 
55
+ 他の画像取得APIの設定については、Pz-HatenaBlogCard もしくは、Pz-LinkCard のページを参考にしてください。
56
 
 
57
 
58
+ サイトアイコン(ファビコン)についても、同様にWebAPIを使用して取得しています。
59
 
60
+ こちらは標準設定で「WebAPIで取得する」になっており、「Hatena::Favicon」のアドレスを設定しています。
61
 
62
+ これは、リンク先のURLを入力することによって、サイトアイコンの画像が取得できるものです。
63
 
64
+ 公式なサービスでは無いため、仕様変更やサービス終了に伴い、正常に取得できなくなく場合があります。
65
 
 
66
 
67
+ Pz-HatenaBlogCard との互換性を持たせるため、外部リンクの場合にのみ「はてなブログカード」へ置き換えて表示する機能もあります。
68
 
69
+ こちらの機能については、Pz-LinkCard の機能が活かせないため、非推奨とさせていただきます。Pz-HatenaBlogCard をご利用ください。
70
 
 
71
 
72
+ Pz-HatenaBlogCard からの設定引き継ぎ機能はありません。この機会に触ったことのなかった設定項目にも触れていただければ幸いです。
73
 
74
+ ショートコードを変えることで、Pz-HatenaBlogCard と併用利用することができますが、通常はリソースの消費が増えるだけなので、推奨はしません。
75
 
 
76
 
77
+ リンクをクリックした場合、リンク元は記事のサイトになりますが、リンクそのものはショートコード内のため、WordPressピンバックは飛ばないようですのでご了承ください。
78
 
 
79
 
80
+ 設定項目については、WordPress標準の options に設定内容を保存します。キーは「Pz-LinkCard_options」の1レコードです。
81
 
82
 
83
+ なお、アンインストールを行う際には、キャッシュを保管するDBテーブルと、options内の設定ファイルは削除されます。
84
 
85
+ アンインストール時の削除に関してはプラグインディレクトリ内の uninstall.php で行っています。
86
 
 
87
 
88
+ まだ成熟したプラグインでは無いので、ご意見やご要望があればありがたくいただきたいと思います。
89
 
90
+ しかしながら、趣味で行っているプログラムであるため、対応能力にも限界があることを了承いただけると幸いです。
91
 
 
92
 
93
+ == Installation ==
94
+ WordPressダッシュボードからのインストール
95
+ 1. 「プラグイン」→「新規追加」を選びます
96
+ 2. 「Pz-LinkCard」を検索します
97
+ 3. プラグイン名と作者を確認していただき、「今すぐインストール」を押します
98
+ 4. 「有効化する」を選び、有効化します
99
 
100
+ WordPress.org からのダウンロードおよびインストール
101
+ 1. WordPress.orgのプラグイン一覧から「Pz-LinkCard」を検索します
102
+ 2. プラグイン名と作者を確認していただき、ダウンロードします
103
+ 3. WordPressをインストールしているディレクトリ配下の、「/wp-content/plugins」ディレクトリ配下に「pz-linkcard」ディレクトリを作成します
104
+ 4. ダウンロードしたZIPファイルを展開します
105
+ 5. プラグイン一覧から「有効化」を選んで、有効化します
106
 
107
+ 当サイトからのダウンロードおよびインストール
108
+ 1. 当サイト「ぽぽづれ。」へアクセスしてください http://poporon.poponet.jp
109
+ 2. リンクを辿るか、直接プラグインのページを開きます http://poporon.poponet.jp/pz-linkcard
110
+ 3. 下の方にZIPファイルのダウンロードリンクがあるので、ダウンロードします
111
+ 4. WordPressをインストールしているディレクトリ配下の、「/wp-content/plugins」ディレクトリ配下に「pz-linkcard」ディレクトリを作成します
112
+ 5. ダウンロードしたZIPファイルを展開します
113
+ 6. プラグイン一覧から「有効化」を選んで、有効化します
114
 
115
+ 新しいバージョンを有効化したら動作しなくなった場合
116
  1. Pz-LinkCard がインストールされているディレクトリ名を変更もしくは削除します
 
117
  2. WordPressダッシュボードに入ると、プラグインが無効化されたというメッセージが表示されます
 
118
  3. 先ほど変更したディレクトリ名を戻します(戻してもプラグインは勝手に有効化されません)
 
119
  4. 当サイトから古い安定版をダウンロードします
 
120
  5. 上書きコピーを行ったあと、有効化を選んで、有効化します
 
121
  6. 不具合が起きた状態や状況、テストサイトであれば、アクセスするためのURLを教えていただけると早急に修正できる場合があります
122
 
 
123
  == Frequently asked questions ==
124
 
125
+ = A question that someone might have =
 
126
 
127
+ An answer to that question.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
 
129
  == Screenshots ==
130
 
131
+ 1. "Use shortcode [blogcard]"
132
+ 2. "Display blogcard"
133
+ 3. "Display blogcard with setting"
134
+ 4. "Basic settings"
135
+ 5. "Style settings"
136
+ 6. "External link settings"
137
+ 7. "Internal link settings"
138
+ 8. "Use WebAPI settings"
139
+ 9. "For debug settings"
140
+ 10. "Initializing settings"
141
 
142
+ == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
 
144
  = 0.1.0 =
145
  * 公式プラグインディレクトリでの最初の公開バージョン。
153
  * 当サイトでの本番環境での動作検証。
154
 
155
  == Upgrade notice ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
uninstall.php CHANGED
@@ -17,5 +17,6 @@ if (file_exists($css_dir)) rmdir ($css_dir);
17
 
18
  // Drop DB-table
19
  global $wpdb;
20
- $sql = "DROP TABLE ".$wpdb->prefix.'pz_linkcard';
 
21
  $wpdb->query($sql);
17
 
18
  // Drop DB-table
19
  global $wpdb;
20
+ $this->db = $wpdb->prefix.'pz_linkcard';
21
+ $sql = "DROP TABLE ".$this->db;
22
  $wpdb->query($sql);