Pz-LinkCard - Version 1.0.0

Version Description

    • URL
    • DB
    • 1
    • URL
  • 3
    • URL
    • *
Download this release

Release Info

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

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